|
@@ -389,12 +389,12 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
processEqus.setProcessworkshop(changingWiresVo.getWorkshopName());
|
|
|
processEqus.setProcessdeviceid(changingWiresVo.getEquId());
|
|
|
processEqus.setProcessdevice(changingWiresVo.getEquName());
|
|
|
- if (equIds.contains(changingWiresVo.getEquId())){
|
|
|
+ if (equIds.contains(changingWiresVo.getEquId())) {
|
|
|
ApsProcessOperationEquDo apsProcessOperationEquDo = processOperationEquDos.stream().filter(item -> item.getResourceid().equals(changingWiresVo.getEquId())).findFirst().orElse(null);
|
|
|
if (ObjectUtil.isNotEmpty(apsProcessOperationEquDo)) {
|
|
|
processEqus.setRollerid(apsProcessOperationEquDo.getRollerid());
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
processEqus.setRollerid("");
|
|
|
}
|
|
|
// 计划开工时间=计划开工时间-开工时间间隔
|
|
@@ -451,12 +451,12 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
newProcessEqu.setProcessworkshop(changingWiresVo.getWorkshopName());
|
|
|
newProcessEqu.setProcessdeviceid(changingWiresVo.getEquId());
|
|
|
newProcessEqu.setProcessdevice(changingWiresVo.getEquName());
|
|
|
- if (equIds.contains(changingWiresVo.getEquId())){
|
|
|
+ if (equIds.contains(changingWiresVo.getEquId())) {
|
|
|
ApsProcessOperationEquDo apsProcessOperationEquDo = processOperationEquDos.stream().filter(item -> item.getResourceid().equals(changingWiresVo.getEquId())).findFirst().orElse(null);
|
|
|
if (ObjectUtil.isNotEmpty(apsProcessOperationEquDo)) {
|
|
|
newProcessEqu.setRollerid(apsProcessOperationEquDo.getRollerid());
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
processEqus.setRollerid("");
|
|
|
}
|
|
|
newProcessEqu.setActualstartdate(null);
|
|
@@ -607,7 +607,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void checkSomeNewInspection(ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo,List<String> affectedIdList) {
|
|
|
+ private void checkSomeNewInspection(ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo, List<String> affectedIdList) {
|
|
|
/*
|
|
|
如果加工设备不是工序作业指定的可选设备,记录冲突:加工设备不是工艺要求的可选设备
|
|
|
如果作业明细计划开工时间<前道作业明细计划完工时间,记录冲突:计划开工时间早于前道计划完工时间
|
|
@@ -1084,7 +1084,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
// 增加受影响的工序作业信息
|
|
|
affectedIdList.addAll(checkProcessingTimeConflict(apsProcessOperationProcessEquDo, oldPlanstartdate,
|
|
|
oldPlanenddate, oldEquId, apsProcessOperationDo.getProcessway(), new ArrayList<>()));
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
this.updateById(apsProcessOperationProcessEquDo);
|
|
|
}
|
|
|
// this.updateById(apsProcessOperationProcessEquDo);
|
|
@@ -1743,35 +1743,75 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
public void inspectionEquipmentIsAvailable(ApsProcessOperationProcessEquDo processEquDo,
|
|
|
String equId, Date startDate, Date endDate,
|
|
|
List<String> affectedIdList) {
|
|
|
- // 查询当前设备是否存在不可以用设备的停机时间为空的数据
|
|
|
- List<ApsEquipmentCalendarDo> nullSdTimeList = apsEquipmentCalendarService.list(new LambdaQueryWrapper<ApsEquipmentCalendarDo>()
|
|
|
+ // 查询当前设备 在开始时间之后,是否存在不可用设备数据
|
|
|
+ List<ApsEquipmentCalendarDo> equUnUseList = apsEquipmentCalendarService.list(new LambdaQueryWrapper<ApsEquipmentCalendarDo>()
|
|
|
.eq(ApsEquipmentCalendarDo::getProcessdeviceid, equId)
|
|
|
- .isNull(ApsEquipmentCalendarDo::getSdendtime));
|
|
|
- List<ApsEquipmentCalendarDo> list = new ArrayList<>();
|
|
|
- //注意不可用结束时间为空,表示后面一直不可用
|
|
|
- if (nullSdTimeList.isEmpty()) {
|
|
|
- // 查询当前设备当前时间段是否存在不可用设备
|
|
|
- list = apsEquipmentCalendarService.list(new LambdaQueryWrapper<ApsEquipmentCalendarDo>()
|
|
|
- .eq(ApsEquipmentCalendarDo::getProcessdeviceid, equId)
|
|
|
- .and(wapper -> wapper.apply("{0} BETWEEN sdstarttime AND sdendtime", startDate)
|
|
|
- .or()
|
|
|
- .apply("{0} BETWEEN sdstarttime AND sdendtime", endDate)));
|
|
|
- } else {
|
|
|
- list = apsEquipmentCalendarService.list(new LambdaQueryWrapper<ApsEquipmentCalendarDo>()
|
|
|
- .eq(ApsEquipmentCalendarDo::getProcessdeviceid, equId)
|
|
|
- .and(wapper -> wapper.apply("sdstarttime<={0}", startDate)
|
|
|
- .or()
|
|
|
- .apply("sdstarttime<={0}", endDate)));
|
|
|
- }
|
|
|
- String newConflictdes;
|
|
|
- if (list.isEmpty()) {
|
|
|
+ .ge(ApsEquipmentCalendarDo::getSdstarttime, startDate));
|
|
|
+ String newConflictdes = processEquDo.getConflictdes();
|
|
|
+ //时间不可用是否有冲突
|
|
|
+ boolean isAdd = false;
|
|
|
+ for (ApsEquipmentCalendarDo apsEquipmentCalendarDo : equUnUseList) {
|
|
|
+ Date sdstarttime = apsEquipmentCalendarDo.getSdstarttime();
|
|
|
+ Date sdendtime = apsEquipmentCalendarDo.getSdendtime();
|
|
|
+
|
|
|
+ //没有结束时间,表示开始时间以后都不可用
|
|
|
+ if (ObjectUtil.isEmpty(sdendtime)) {
|
|
|
+ //计划结束时间在不可用片段
|
|
|
+ if (endDate.after(sdstarttime)) {
|
|
|
+ apsConflictLogService.recordLog(processEquDo.getId(),
|
|
|
+ apsEquipmentCalendarDo.getId(), EQUIPMENT_RUN_TIME, 1, null);
|
|
|
+ newConflictdes = addNewConflictsDesc(processEquDo.getConflictdes(), EQUIPMENT_RUN_TIME);
|
|
|
+ isAdd = true;
|
|
|
+ break;
|
|
|
+ } else {
|
|
|
+ isAdd = false;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //计划开始时间/计划结束时间在停用开始时间和停用结束时间之间
|
|
|
+ if ((startDate.after(sdstarttime) && startDate.before(sdendtime))
|
|
|
+ || (endDate.after(sdstarttime) && endDate.before(sdendtime))) {
|
|
|
+ apsConflictLogService.recordLog(processEquDo.getId(),
|
|
|
+ apsEquipmentCalendarDo.getId(), EQUIPMENT_RUN_TIME, 1, null);
|
|
|
+ newConflictdes = addNewConflictsDesc(processEquDo.getConflictdes(), EQUIPMENT_RUN_TIME);
|
|
|
+ isAdd = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ isAdd = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!isAdd) {
|
|
|
apsConflictLogService.recordLog(processEquDo.getId(), "", EQUIPMENT_RUN_TIME, 2, null);
|
|
|
newConflictdes = removeConflictsDesc(processEquDo.getConflictdes(), EQUIPMENT_RUN_TIME);
|
|
|
- } else {
|
|
|
- apsConflictLogService.recordLog(processEquDo.getId(),
|
|
|
- list.stream().map(ApsEquipmentCalendarDo::getId).collect(Collectors.joining(",")), EQUIPMENT_RUN_TIME, 1, null);
|
|
|
- newConflictdes = addNewConflictsDesc(processEquDo.getConflictdes(), EQUIPMENT_RUN_TIME);
|
|
|
}
|
|
|
+// //查询其中没有停机结束时间的数据
|
|
|
+// List<ApsEquipmentCalendarDo> nullSdEndTimeList = equUnUseList.stream().filter(item -> ObjectUtil.isEmpty(item.getSdendtime())).collect(Collectors.toList());
|
|
|
+//
|
|
|
+//
|
|
|
+// List<ApsEquipmentCalendarDo> list = new ArrayList<>();
|
|
|
+// //注意不可用结束时间为空,表示后面一直不可用
|
|
|
+// if (nullSdTimeList.isEmpty()) {
|
|
|
+// // 查询当前设备当前时间段是否存在不可用设备
|
|
|
+// list = apsEquipmentCalendarService.list(new LambdaQueryWrapper<ApsEquipmentCalendarDo>()
|
|
|
+// .eq(ApsEquipmentCalendarDo::getProcessdeviceid, equId)
|
|
|
+// .and(wapper -> wapper.apply("{0} BETWEEN sdstarttime AND sdendtime", startDate)
|
|
|
+// .or()
|
|
|
+// .apply("{0} BETWEEN sdstarttime AND sdendtime", endDate)));
|
|
|
+// } else {
|
|
|
+// list = apsEquipmentCalendarService.list(new LambdaQueryWrapper<ApsEquipmentCalendarDo>()
|
|
|
+// .eq(ApsEquipmentCalendarDo::getProcessdeviceid, equId)
|
|
|
+// .and(wapper -> wapper.apply("sdstarttime<={0}", startDate)
|
|
|
+// .or()
|
|
|
+// .apply("sdstarttime<={0}", endDate)));
|
|
|
+// }
|
|
|
+//
|
|
|
+// if (list.isEmpty()) {
|
|
|
+// apsConflictLogService.recordLog(processEquDo.getId(), "", EQUIPMENT_RUN_TIME, 2, null);
|
|
|
+// newConflictdes = removeConflictsDesc(processEquDo.getConflictdes(), EQUIPMENT_RUN_TIME);
|
|
|
+// } else {
|
|
|
+// apsConflictLogService.recordLog(processEquDo.getId(),
|
|
|
+// list.stream().map(ApsEquipmentCalendarDo::getId).collect(Collectors.joining(",")), EQUIPMENT_RUN_TIME, 1, null);
|
|
|
+// newConflictdes = addNewConflictsDesc(processEquDo.getConflictdes(), EQUIPMENT_RUN_TIME);
|
|
|
+// }
|
|
|
this.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
.eq(ApsProcessOperationProcessEquDo::getId, processEquDo.getId())
|
|
|
.set(ApsProcessOperationProcessEquDo::getConflictdes, newConflictdes)
|
|
@@ -1781,7 +1821,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
);
|
|
|
processEquDo.setConflictdes(newConflictdes);
|
|
|
//新增的冲突判断
|
|
|
- checkSomeNewInspection(processEquDo,affectedIdList);
|
|
|
+ checkSomeNewInspection(processEquDo, affectedIdList);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -2008,7 +2048,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
ApsUtils.checkScheduling(null);
|
|
|
|
|
|
Date processingTime = req.getProcessingTime();
|
|
|
- if (processingTime.before(DateUtil.date())){
|
|
|
+ if (processingTime.before(DateUtil.date())) {
|
|
|
return R.error("开始时间必须大于当前时间");
|
|
|
}
|
|
|
|
|
@@ -2036,13 +2076,13 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
//对应的辊赋值
|
|
|
String processid = apsProcessOperationProcessEquDo.getProcessid();
|
|
|
List<ApsProcessOperationEquDo> myEquList = processOperationEquDos.stream().filter(item -> item.getMainid().equals(processid)).collect(Collectors.toList());
|
|
|
- if (myEquList.isEmpty()){
|
|
|
+ if (myEquList.isEmpty()) {
|
|
|
needUpdate.setRollerid("");
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
ApsProcessOperationEquDo apsProcessOperationEquDo = myEquList.stream().filter(item -> item.getResourceid().equals(req.getEquId())).findFirst().orElse(null);
|
|
|
- if (ObjectUtil.isEmpty(apsProcessOperationEquDo)){
|
|
|
+ if (ObjectUtil.isEmpty(apsProcessOperationEquDo)) {
|
|
|
needUpdate.setRollerid("");
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
needUpdate.setRollerid(apsProcessOperationEquDo.getRollerid());
|
|
|
}
|
|
|
}
|
|
@@ -2050,7 +2090,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
needUpdate.setProcessworkshopid(req.getWorkshopId());
|
|
|
needUpdate.setProcessworkshop(req.getWorkshopName());
|
|
|
needUpdate.setPlanstartdate(nextStartDate);
|
|
|
- needUpdate.setPlanenddate(DateUtil.offsetSecond(nextStartDate,(int)DateUtil.between(planstartdate,planenddate,DateUnit.SECOND)));
|
|
|
+ needUpdate.setPlanenddate(DateUtil.offsetSecond(nextStartDate, (int) DateUtil.between(planstartdate, planenddate, DateUnit.SECOND)));
|
|
|
nextStartDate = needUpdate.getPlanenddate();
|
|
|
// needUpdateList.add(needUpdate);
|
|
|
apsProcessOperationProcessEquService.updateById(needUpdate);
|
|
@@ -2064,7 +2104,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
apsProcessOperationProcessEquDo.getPlanenddate(),
|
|
|
new LinkedList<>());
|
|
|
}
|
|
|
- blankIdList.forEach(item->apsBlankOrderService.updateBlankDeliveryDate(null, item));
|
|
|
+ blankIdList.forEach(item -> apsBlankOrderService.updateBlankDeliveryDate(null, item));
|
|
|
|
|
|
|
|
|
return R.ok();
|