Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/mode-min-unit' into mode-min-unit

xiahan 11 mēneši atpakaļ
vecāks
revīzija
2d9c969423

+ 15 - 5
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsServiceImpl.java

@@ -807,6 +807,16 @@ public class ApsServiceImpl implements ApsService {
 
     private List<String> equipmentListInit(ApsProcessOperationDo operationDo,List<Equipment> equipmentList,Map<String, AspCheckItemsDo> eqMaps
             ,List<String> blankids,Set<String> opId,ProductionScheduleVo productionScheduleVo,ApsScheduleConfigDo apsScheduleConfig){
+        // 当前工序排程开始时间
+        Date apsPlanStartDate = productionScheduleVo.getApsPlanStartDate();
+        if(productionScheduleVo.getProcesses() != null && productionScheduleVo.getProcesses().size()>0){
+            List<ProductionProcesses> bsProcess = productionScheduleVo.getProcesses().stream().filter(v -> v.getBsProcessesId().get(0).equals(operationDo.getId())).collect(Collectors.toList());
+            if(bsProcess != null && bsProcess.size()>0){
+                if(bsProcess.get(0).getApsOverallConfig() != null && bsProcess.get(0).getApsOverallConfig().getStartTime() != null){
+                    apsPlanStartDate = Date.from(bsProcess.get(0).getApsOverallConfig().getStartTime().atZone(ZoneId.systemDefault()).toInstant());
+                }
+            }
+        }
         // 设备列表
         List<String> optionalEquipments = new ArrayList<>();
         if (StringUtils.isNotBlank(operationDo.getCanchoosedeviceid())) {
@@ -843,7 +853,7 @@ public class ApsServiceImpl implements ApsService {
                                     .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, equIds)
                                     .eq(ApsProcessOperationProcessEquDo::getLockmark, "y")
 //                                    .notIn(ApsProcessOperationProcessEquDo::getBlankid, blankids)
-                                    .ge(ApsProcessOperationProcessEquDo::getPlanenddate, productionScheduleVo.getApsPlanStartDate())
+                                    .ge(ApsProcessOperationProcessEquDo::getPlanenddate, apsPlanStartDate)
                                     .orderByAsc(ApsProcessOperationProcessEquDo::getPlanstartdate)
                             );
                         }else if(opId != null && opId.size()>0){
@@ -851,7 +861,7 @@ public class ApsServiceImpl implements ApsService {
                                     .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, equIds)
                                     .eq(ApsProcessOperationProcessEquDo::getLockmark, "y")
 //                                    .notIn(ApsProcessOperationProcessEquDo::getProcessid, opId)
-                                    .ge(ApsProcessOperationProcessEquDo::getPlanenddate, productionScheduleVo.getApsPlanStartDate())
+                                    .ge(ApsProcessOperationProcessEquDo::getPlanenddate, apsPlanStartDate)
                                     .orderByAsc(ApsProcessOperationProcessEquDo::getPlanstartdate)
                             );
                         }
@@ -863,7 +873,7 @@ public class ApsServiceImpl implements ApsService {
                                     .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, equIds)
                                     .eq(ApsProcessOperationProcessEquDo::getLockmark, "y")
 //                                    .notIn(ApsProcessOperationProcessEquDo::getBlankid, blankids)
-                                    .lt(ApsProcessOperationProcessEquDo::getPlanstartdate, productionScheduleVo.getApsPlanStartDate())
+                                    .lt(ApsProcessOperationProcessEquDo::getPlanstartdate, apsPlanStartDate)
                                     .orderByDesc(ApsProcessOperationProcessEquDo::getPlanstartdate).last(" limit 100")
                             );
                         }else if(opId != null && opId.size()>0){
@@ -871,7 +881,7 @@ public class ApsServiceImpl implements ApsService {
                                     .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, equIds)
                                     .eq(ApsProcessOperationProcessEquDo::getLockmark, "y")
 //                                    .notIn(ApsProcessOperationProcessEquDo::getProcessid, opId)
-                                    .lt(ApsProcessOperationProcessEquDo::getPlanstartdate, productionScheduleVo.getApsPlanStartDate())
+                                    .lt(ApsProcessOperationProcessEquDo::getPlanstartdate, apsPlanStartDate)
                                     .orderByDesc(ApsProcessOperationProcessEquDo::getPlanstartdate).last(" limit 100")
                             );
                         }
@@ -987,7 +997,7 @@ public class ApsServiceImpl implements ApsService {
                             }
                             // 设备日历不可用时间段
                             List<ApsEquipmentCalendarDo> equipmentCalendarDos = apsEquipmentCalendarService.list(
-                                    new LambdaQueryWrapper<ApsEquipmentCalendarDo>().ge(ApsEquipmentCalendarDo::getSdstarttime, productionScheduleVo.getApsPlanStartDate())
+                                    new LambdaQueryWrapper<ApsEquipmentCalendarDo>().ge(ApsEquipmentCalendarDo::getSdstarttime, apsPlanStartDate)
                                             .eq(ApsEquipmentCalendarDo::getProcessdeviceid, equipment.getBsEquipmentId()));
                             if (equipmentCalendarDos != null && equipmentCalendarDos.size() > 0) {
                                 for (ApsEquipmentCalendarDo equipmentCalendarDo : equipmentCalendarDos) {