|
@@ -568,7 +568,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
inspectionEquipmentIsAvailable(apsProcessOperationProcessEquDo,
|
|
|
apsProcessOperationProcessEquDo.getProcessdeviceid(),
|
|
|
apsProcessOperationProcessEquDo.getPlanstartdate(),
|
|
|
- apsProcessOperationProcessEquDo.getPlanenddate());
|
|
|
+ apsProcessOperationProcessEquDo.getPlanenddate(),
|
|
|
+ affectedIdList);
|
|
|
});
|
|
|
}
|
|
|
List<String> aboutIds = affectedIdList.stream().distinct().collect(Collectors.toList());
|
|
@@ -586,7 +587,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void checkSomeNewInspection(ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo) {
|
|
|
+ private void checkSomeNewInspection(ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo,List<String> affectedIdList) {
|
|
|
/*
|
|
|
如果加工设备不是工序作业指定的可选设备,记录冲突:加工设备不是工艺要求的可选设备
|
|
|
如果作业明细计划开工时间<前道作业明细计划完工时间,记录冲突:计划开工时间早于前道计划完工时间
|
|
@@ -675,22 +676,27 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
newConflictdes = removeConflictsDesc(newConflictdes, SMALL_THAN_MIN_RETURN_TIME);
|
|
|
}
|
|
|
}
|
|
|
- //存在前道工序作业明细
|
|
|
+ //存在后道工序作业明细
|
|
|
if (StringUtils.isNotBlank(apsProcessOperationProcessEquDo.getNextprocessesids())) {
|
|
|
for (String nextProcessEquId : apsProcessOperationProcessEquDo.getNextprocessesids().split(",")) {
|
|
|
+ affectedIdList.add(nextProcessEquId);
|
|
|
//此时前道的明细为当前明细
|
|
|
ApsProcessOperationProcessEquDo previousProcessEqu = apsProcessOperationProcessEquDo;
|
|
|
//查询后道的明细
|
|
|
ApsProcessOperationProcessEquDo nextProcessEqu = this.getById(nextProcessEquId);
|
|
|
+ //查询后道的工序作业
|
|
|
+ ApsProcessOperationDo nextProcessOperation = apsProcessOperationService.getById(nextProcessEqu.getProcessid());
|
|
|
+ //后道的冲突
|
|
|
+ String nextNewConflictdes = nextProcessEqu.getConflictdes();
|
|
|
//如果作业计划开工时间<前道作业计划完工时间,记录冲突:计划开工时间早于前道计划完工时间
|
|
|
if (nextProcessEqu.getPlanstartdate().compareTo(previousProcessEqu.getPlanenddate()) < 0) {
|
|
|
apsConflictLogService.recordLog(nextProcessEqu.getId(),
|
|
|
"作业明细计划开工时间:" + nextProcessEqu.getPlanstartdate() + ",前道作业明细计划完工时间:" + previousProcessEqu.getPlanenddate(), PREVIOUS_ENDTIME_AFTER_NOW, 1, null);
|
|
|
- newConflictdes = addNewConflictsDesc(newConflictdes, PREVIOUS_ENDTIME_AFTER_NOW);
|
|
|
+ nextNewConflictdes = addNewConflictsDesc(nextNewConflictdes, PREVIOUS_ENDTIME_AFTER_NOW);
|
|
|
} else {
|
|
|
apsConflictLogService.recordLog(nextProcessEqu.getId(),
|
|
|
"作业明细计划开工时间:" + nextProcessEqu.getPlanstartdate() + ",前道作业明细计划完工时间:" + previousProcessEqu.getPlanenddate(), PREVIOUS_ENDTIME_AFTER_NOW, 2, null);
|
|
|
- newConflictdes = removeConflictsDesc(newConflictdes, PREVIOUS_ENDTIME_AFTER_NOW);
|
|
|
+ nextNewConflictdes = removeConflictsDesc(nextNewConflictdes, PREVIOUS_ENDTIME_AFTER_NOW);
|
|
|
}
|
|
|
|
|
|
//与前道作业明细间隔时间=该作业明细计划开工时间-前道作业明细计划完工时间
|
|
@@ -703,7 +709,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
//排程设置
|
|
|
ApsScheduleConfigDo apsScheduleConfigDo = apsScheduleConfigService.getById("1");
|
|
|
//最小流转时间
|
|
|
- long minReturnTime = apsProcessOperationDo.getMinflowwaitmin().longValue();
|
|
|
+ long minReturnTime = nextProcessOperation.getMinflowwaitmin().longValue();
|
|
|
//作业明细加工设备相同
|
|
|
if (!previousProcessEqu.getProcessdeviceid().equals(nextProcessEqu.getProcessdeviceid())) {
|
|
|
if (apsScheduleConfigDo.getWorkshopin().longValue() > minReturnTime) {
|
|
@@ -728,12 +734,19 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
if (betweenPrevious < minReturnTime) {
|
|
|
apsConflictLogService.recordLog(nextProcessEqu.getId(),
|
|
|
"与前道工序作业间隔时间:" + betweenPrevious + ",作业最小流转时间:" + minReturnTime, SMALL_THAN_MIN_RETURN_TIME, 1, null);
|
|
|
- newConflictdes = addNewConflictsDesc(newConflictdes, SMALL_THAN_MIN_RETURN_TIME);
|
|
|
+ nextNewConflictdes = addNewConflictsDesc(nextNewConflictdes, SMALL_THAN_MIN_RETURN_TIME);
|
|
|
} else {
|
|
|
apsConflictLogService.recordLog(nextProcessEqu.getId(),
|
|
|
"与前道工序作业间隔时间:" + betweenPrevious + ",作业最小流转时间:" + minReturnTime, SMALL_THAN_MIN_RETURN_TIME, 2, null);
|
|
|
- newConflictdes = removeConflictsDesc(newConflictdes, SMALL_THAN_MIN_RETURN_TIME);
|
|
|
+ nextNewConflictdes = removeConflictsDesc(nextNewConflictdes, SMALL_THAN_MIN_RETURN_TIME);
|
|
|
}
|
|
|
+ this.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
+ .eq(ApsProcessOperationProcessEquDo::getId, nextProcessEqu.getId())
|
|
|
+ .set(ApsProcessOperationProcessEquDo::getConflictdes, nextNewConflictdes)
|
|
|
+ .set(BaseDo::getModifydate, new Date())
|
|
|
+ .set(ApsProcessOperationProcessEquDo::getHasconflict, StringUtils.isBlank(nextNewConflictdes) &&
|
|
|
+ StringUtils.isBlank(nextProcessEqu.getSoftconflictdes()) ? LOCKMARK_N : LOCKMARK_Y)
|
|
|
+ );
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -902,7 +915,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
inspectionEquipmentIsAvailable(apsProcessOperationProcessEquDo,
|
|
|
apsProcessOperationProcessEquDo.getProcessdeviceid(),
|
|
|
apsProcessOperationProcessEquDo.getPlanstartdate(),
|
|
|
- apsProcessOperationProcessEquDo.getPlanenddate());
|
|
|
+ apsProcessOperationProcessEquDo.getPlanenddate(),
|
|
|
+ affectedIdList);
|
|
|
});
|
|
|
// blankIdSet.forEach(blankId -> {
|
|
|
// // 更新坯料交货期
|
|
@@ -1002,7 +1016,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
oldPlanenddate, oldEquId, apsProcessOperationDo.getProcessway(), new ArrayList<>()));
|
|
|
// 判断是否存在设备不可用
|
|
|
inspectionEquipmentIsAvailable(detail, detail.getProcessdeviceid()
|
|
|
- , detail.getPlanstartdate(), detail.getPlanenddate());
|
|
|
+ , detail.getPlanstartdate(), detail.getPlanenddate(),
|
|
|
+ affectedIdList);
|
|
|
if (!detail.getId().equals(apsProcessOperationProcessEquDo.getId())) {
|
|
|
mergeWorkerIdList.add(detail.getId());
|
|
|
}
|
|
@@ -1043,7 +1058,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
// 判断是否存在设备不可用
|
|
|
apsProcessOperationProcessEquDo = this.getById(apsProcessOperationProcessEquDo.getId());
|
|
|
inspectionEquipmentIsAvailable(apsProcessOperationProcessEquDo, apsProcessOperationProcessEquDo.getProcessdeviceid()
|
|
|
- , apsProcessOperationProcessEquDo.getPlanstartdate(), apsProcessOperationProcessEquDo.getPlanenddate());
|
|
|
+ , apsProcessOperationProcessEquDo.getPlanstartdate(), apsProcessOperationProcessEquDo.getPlanenddate(),
|
|
|
+ affectedIdList);
|
|
|
}
|
|
|
// 更新坯料交货期
|
|
|
// apsBlankOrderService.updateBlankDeliveryDate(null, apsProcessOperationDo.getBlankid());
|
|
@@ -1324,7 +1340,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
newDataList.forEach(newDo -> {
|
|
|
// 判断是否存在设备不可用
|
|
|
inspectionEquipmentIsAvailable(newDo, newDo.getProcessdeviceid()
|
|
|
- , newDo.getPlanstartdate(), newDo.getPlanenddate());
|
|
|
+ , newDo.getPlanstartdate(), newDo.getPlanenddate(),
|
|
|
+ affectedIdList);
|
|
|
});
|
|
|
List<String> aboutIds = affectedIdList.stream().distinct().collect(Collectors.toList());
|
|
|
apsProcessOperationDos.forEach(data -> {
|
|
@@ -1691,7 +1708,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
* @param endDate
|
|
|
*/
|
|
|
public void inspectionEquipmentIsAvailable(ApsProcessOperationProcessEquDo processEquDo,
|
|
|
- String equId, Date startDate, Date endDate) {
|
|
|
+ String equId, Date startDate, Date endDate,
|
|
|
+ List<String> affectedIdList) {
|
|
|
// 查询当前设备是否存在不可以用设备的停机时间为空的数据
|
|
|
List<ApsEquipmentCalendarDo> nullSdTimeList = apsEquipmentCalendarService.list(new LambdaQueryWrapper<ApsEquipmentCalendarDo>()
|
|
|
.eq(ApsEquipmentCalendarDo::getProcessdeviceid, equId)
|
|
@@ -1730,7 +1748,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
);
|
|
|
processEquDo.setConflictdes(newConflictdes);
|
|
|
//新增的冲突判断
|
|
|
- checkSomeNewInspection(processEquDo);
|
|
|
+ checkSomeNewInspection(processEquDo,affectedIdList);
|
|
|
}
|
|
|
|
|
|
/**
|