浏览代码

调度排程开发

fangpy 5 月之前
父节点
当前提交
6080bd068b

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

@@ -95,6 +95,9 @@ public class ApsServiceImpl implements ApsService {
     @Override
     public void apsSchedule(List<ApsBlankOrderVo> apsBlankOrders,ApsTypeVo apsType,SysUserVo currentUser,List<String> needUnLockProcessIdList) {
         logger.info("**********排程请求开始**********");
+        if(apsType.getScheduleType() == null){
+            apsType.setScheduleType("default");
+        }
         // 当前等路人所属工厂
         if(currentUser == null){
             currentUser = CXCommonUtils.getCurrentUser();
@@ -299,7 +302,7 @@ public class ApsServiceImpl implements ApsService {
                 List<String> blankids = new ArrayList<>();
                 blankids.add(bo.getId());
                 for (ApsProcessOperationDo operationDo : operationDos1) {
-                    List<String> optionalEquipments = equipmentListInit(operationDo,equipmentList1,eqMaps,blankids,null,productionScheduleVo,apsConfigs.get(0),null);
+                    List<String> optionalEquipments = equipmentListInit(operationDo,equipmentList1,eqMaps,blankids,null,productionScheduleVo,apsConfigs.get(0),null,null);
                 }
                 productionScheduleVo.setEquipmentList(equipmentList1);
                 apsProductionSchedules.add(productionScheduleVo);
@@ -667,7 +670,7 @@ public class ApsServiceImpl implements ApsService {
                 List<String> blankids = new ArrayList<>();
                 blankids.add(bo.getId());
                 for (ApsProcessOperationDo operationDo : operationDos1) {
-                    List<String> optionalEquipments = equipmentListInit(operationDo,equipmentList1,eqMaps,blankids,null,productionScheduleVo,apsConfigs.get(0),allEqs);
+                    List<String> optionalEquipments = equipmentListInit(operationDo,equipmentList1,eqMaps,blankids,null,productionScheduleVo,apsConfigs.get(0),allEqs,apsType);
                 }
                 productionScheduleVo.setEquipmentList(equipmentList1);
                 apsProductionSchedules.add(productionScheduleVo);
@@ -973,7 +976,8 @@ 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,Map<String,Equipment> allEqs){
+            ,List<String> blankids,Set<String> opId,ProductionScheduleVo productionScheduleVo
+            ,ApsScheduleConfigDo apsScheduleConfig,Map<String,Equipment> allEqs,ApsTypeVo apsType){
         // 当前工序排程开始时间
         Date apsPlanStartDate = productionScheduleVo.getApsPlanStartDate();
         if(productionScheduleVo.getProcesses() != null && productionScheduleVo.getProcesses().size()>0){
@@ -1039,22 +1043,41 @@ public class ApsServiceImpl implements ApsService {
                         equipment.setEquipmentParameter(ep);
                         // 查询设备锁定的已排程的时间段
                         List<ApsProcessOperationProcessEquDo> processEqus = null;
+                        DateTime nextStartDate = DateUtil.offsetDay(apsPlanStartDate, 1);
                         if(blankids != null && blankids.size()>0){
-                            processEqus = processOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
-                                    .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, equIds)
-                                    .eq(ApsProcessOperationProcessEquDo::getLockmark, "y")
-//                                    .notIn(ApsProcessOperationProcessEquDo::getBlankid, blankids)
-                                    .ge(ApsProcessOperationProcessEquDo::getPlanenddate, apsPlanStartDate)
-                                    .orderByAsc(ApsProcessOperationProcessEquDo::getPlanstartdate)
-                            );
+                            if("dd".equals(apsType.getScheduleType())){
+                                processEqus = processOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
+                                                .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, equIds)
+                                                .eq(ApsProcessOperationProcessEquDo::getLockmark, "y")
+                                                .ge(ApsProcessOperationProcessEquDo::getPlanenddate, apsPlanStartDate)
+                                                .le(ApsProcessOperationProcessEquDo::getPlanstartdate, nextStartDate)
+                                                .orderByAsc(ApsProcessOperationProcessEquDo::getPlanstartdate)
+                                );
+                            }else{
+                                processEqus = processOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
+                                                .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, equIds)
+                                                .eq(ApsProcessOperationProcessEquDo::getLockmark, "y")
+                                                .ge(ApsProcessOperationProcessEquDo::getPlanenddate, apsPlanStartDate)
+                                                .orderByAsc(ApsProcessOperationProcessEquDo::getPlanstartdate)
+                                );
+                            }
                         }else if(opId != null && opId.size()>0){
-                            processEqus = processOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
-                                    .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, equIds)
-                                    .eq(ApsProcessOperationProcessEquDo::getLockmark, "y")
-//                                    .notIn(ApsProcessOperationProcessEquDo::getProcessid, opId)
-                                    .ge(ApsProcessOperationProcessEquDo::getPlanenddate, apsPlanStartDate)
-                                    .orderByAsc(ApsProcessOperationProcessEquDo::getPlanstartdate)
-                            );
+                            if("dd".equals(apsType.getScheduleType())){
+                                processEqus = processOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
+                                                .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, equIds)
+                                                .eq(ApsProcessOperationProcessEquDo::getLockmark, "y")
+                                                .ge(ApsProcessOperationProcessEquDo::getPlanenddate, apsPlanStartDate)
+                                                .le(ApsProcessOperationProcessEquDo::getPlanstartdate, nextStartDate)
+                                                .orderByAsc(ApsProcessOperationProcessEquDo::getPlanstartdate)
+                                );
+                            }else{
+                                processEqus = processOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
+                                                .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, equIds)
+                                                .eq(ApsProcessOperationProcessEquDo::getLockmark, "y")
+                                                .ge(ApsProcessOperationProcessEquDo::getPlanenddate, apsPlanStartDate)
+                                                .orderByAsc(ApsProcessOperationProcessEquDo::getPlanstartdate)
+                                );
+                            }
                         }
                         // 过滤设备为空的明细
                         if(processEqus != null && processEqus.size()>0){