|
@@ -4568,7 +4568,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
canUnLock = false;
|
|
|
} else {
|
|
|
//判断是否连续
|
|
|
- boolean isConnect = isConnectProcess(nowProcess, previousProcess, processOperationEquDoList);
|
|
|
+ boolean isConnect = isConnectProcess(nowProcess, previousProcess, processOperationEquDoList, apsProcessOperationProcessEquDo, previousEqu);
|
|
|
//如果连续
|
|
|
if (isConnect) {
|
|
|
//如果连续的上一道在重排开始时间之前,不解锁,并且不解锁后道与其连续的
|
|
@@ -4665,10 +4665,15 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
|
|
|
}
|
|
|
|
|
|
- private boolean isConnectProcess(ApsProcessOperationDo nowProcess, ApsProcessOperationDo previousProcess, List<ApsProcessOperationEquDo> processOperationEquDoList) {
|
|
|
- //如果本道工序和前道工序 的工序类型相同,并且最小等待时间为空/0,并且可选设备和辊相同 ,加入待解锁集合
|
|
|
+ private boolean isConnectProcess(ApsProcessOperationDo nowProcess,
|
|
|
+ ApsProcessOperationDo previousProcess,
|
|
|
+ List<ApsProcessOperationEquDo> processOperationEquDoList,
|
|
|
+ ApsProcessOperationProcessEquDo nowEqu,
|
|
|
+ ApsProcessOperationProcessEquDo previousEqu) {
|
|
|
+ //如果本道工序和前道工序 的工序类型相同,并且最小等待时间为空/0,并且可选设备和辊相同 ,并且本道工序开始时间和前道工序结束时间差<11分钟,加入待解锁集合
|
|
|
if (nowProcess.getProcess().equals(previousProcess.getProcess())
|
|
|
- && (nowProcess.getMinflowwaitmin() == null || nowProcess.getMinflowwaitmin().intValue() == 0)) {
|
|
|
+ && (nowProcess.getMinflowwaitmin() == null || nowProcess.getMinflowwaitmin().intValue() == 0)
|
|
|
+ && DateUtil.between(previousEqu.getPlanenddate(), nowEqu.getPlanstartdate(), DateUnit.MINUTE) < 11) {
|
|
|
//对比确认是否存在相同的设备和辊
|
|
|
boolean have = false;
|
|
|
//查询当前工序作业的可选设备
|
|
@@ -4720,7 +4725,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
//当前作业
|
|
|
ApsProcessOperationDo nowProcess = allProcessList.stream().filter(item -> item.getId().equals(nowEqu.getProcessid())).findFirst().orElse(null);
|
|
|
//判断是否连续
|
|
|
- boolean isConnect = isConnectProcess(nextProcess, nowProcess, processOperationEquDoList);
|
|
|
+ boolean isConnect = isConnectProcess(nextProcess, nowProcess, processOperationEquDoList, nextEqu, nowEqu);
|
|
|
//是连续
|
|
|
if (isConnect) {
|
|
|
//下道不解锁,继续迭代
|