|
@@ -2003,6 +2003,48 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
|
|
|
return apsBlankOrderService.processDetailLock(orderLockVo);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public R scheduling(ChangingScheduleVo req) {
|
|
|
+ ApsUtils.checkScheduling(null);
|
|
|
+
|
|
|
+ //作业明细集合
|
|
|
+ List<String> processEquIdList = req.getProcessEquIdList();
|
|
|
+ List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDos = apsProcessOperationProcessEquService.listByIds(processEquIdList).stream().collect(Collectors.toList());
|
|
|
+
|
|
|
+// List<String> blankIdList = apsProcessOperationProcessEquDos.stream().map(ApsProcessOperationProcessEquDo::getBlankid).distinct().collect(Collectors.toList());
|
|
|
+ apsProcessOperationProcessEquDos.sort(Comparator.comparing(ApsProcessOperationProcessEquDo::getPlanstartdate));
|
|
|
+ //需要更新的集合
|
|
|
+// List<ApsProcessOperationProcessEquDo> needUpdateList = new LinkedList<>();
|
|
|
+ //下一道明细的开始时间
|
|
|
+ Date nextStartDate = req.getProcessingTime();
|
|
|
+ for (ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo : apsProcessOperationProcessEquDos) {
|
|
|
+ Date planstartdate = apsProcessOperationProcessEquDo.getPlanstartdate();
|
|
|
+ Date planenddate = apsProcessOperationProcessEquDo.getPlanenddate();
|
|
|
+ ApsProcessOperationProcessEquDo needUpdate = new ApsProcessOperationProcessEquDo();
|
|
|
+ needUpdate.setId(apsProcessOperationProcessEquDo.getId());
|
|
|
+ needUpdate.setProcessdeviceid(req.getEquId());
|
|
|
+ needUpdate.setProcessdevice(req.getEquName());
|
|
|
+ needUpdate.setProcessworkshopid(req.getWorkshopId());
|
|
|
+ needUpdate.setProcessworkshop(req.getWorkshopName());
|
|
|
+ needUpdate.setPlanstartdate(nextStartDate);
|
|
|
+ needUpdate.setPlanenddate(DateUtil.offsetSecond(nextStartDate,(int)DateUtil.between(planstartdate,planenddate,DateUnit.SECOND)));
|
|
|
+ nextStartDate = needUpdate.getPlanenddate();
|
|
|
+// needUpdateList.add(needUpdate);
|
|
|
+ apsProcessOperationProcessEquService.updateById(needUpdate);
|
|
|
+ checkProcessingTimeConflict(apsProcessOperationProcessEquDo,
|
|
|
+ planstartdate, planenddate, apsProcessOperationProcessEquDo.getProcessdeviceid(), "非合并加工", new LinkedList<>());
|
|
|
+ // 判断是否存在设备不可用
|
|
|
+ apsProcessOperationProcessEquDo = this.getById(apsProcessOperationProcessEquDo.getId());
|
|
|
+ inspectionEquipmentIsAvailable(apsProcessOperationProcessEquDo,
|
|
|
+ apsProcessOperationProcessEquDo.getProcessdeviceid(),
|
|
|
+ apsProcessOperationProcessEquDo.getPlanstartdate(),
|
|
|
+ apsProcessOperationProcessEquDo.getPlanenddate(),
|
|
|
+ new LinkedList<>());
|
|
|
+ }
|
|
|
+
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|
|
|
|