sucheng 5 mesi fa
parent
commit
649f9ab2fe

+ 22 - 6
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsBlankOrderServiceImpl.java

@@ -44,6 +44,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.Collator;
+import java.time.LocalTime;
 import java.time.ZoneId;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -739,6 +740,21 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
     @Override
     public void blankOrderAps(List<ApsBlankOrderVo> apsBlankOrders) {
         apsService.apsSchedule(apsBlankOrders, new ApsTypeVo(), null, null);
+        //调度排程
+        //判断是否是 18:00:00-24:00:00/00:00:00-5:00:00
+        // 获取当前时间
+        LocalTime now = LocalTime.now();
+        // 定义时间段
+        LocalTime startTime1 = LocalTime.of(18, 0); // 18:00:00
+        LocalTime endTime1 = LocalTime.of(23, 59, 59); // 23:59:59 (24:00:00 - 1 second)
+        LocalTime startTime2 = LocalTime.MIDNIGHT; // 00:00:00
+        LocalTime endTime2 = LocalTime.of(5, 0); // 05:00:00
+        // 检查当前时间是否在两个时间段之一内
+        boolean isInFirstRange = (now.isAfter(startTime1) || now.equals(startTime1)) && (now.isBefore(endTime1) || now.equals(endTime1));
+        boolean isInSecondRange = (now.isAfter(startTime2) || now.equals(startTime2)) && (now.isBefore(endTime2) || now.equals(endTime2));
+        if (isInFirstRange || isInSecondRange) {
+            apsScheduleRestart(null);
+        }
     }
 
     /**
@@ -4165,7 +4181,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             //冷轧重排
             lenzhaChongpai(chongpaiStartDate, chongpaiEndDate, apsScheduleConfigDo);
             //退火重排
-//            tuihuoChongpai(chongpaiStartDate, chongpaiEndDate, apsScheduleConfigDo);
+            tuihuoChongpai(chongpaiStartDate, chongpaiEndDate, apsScheduleConfigDo);
 
         }
     }
@@ -4387,7 +4403,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         for (ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo : cleanNeedUnLockList) {
             if (ObjectUtil.isNotEmpty(apsProcessOperationProcessEquDo.getNextprocessesids())) {
                 notNeedUnLockList.add(apsProcessOperationProcessEquDo);
-                getCleanNextProcess(apsProcessOperationProcessEquDo,apsProcessOperationProcessEquDo.getNextprocessesids(), allProcessEquList, allProcessEquIdList, notNeedUnLockList, allProcessList,processOperationEquDoList);
+                getCleanNextProcess(apsProcessOperationProcessEquDo, apsProcessOperationProcessEquDo.getNextprocessesids(), allProcessEquList, allProcessEquIdList, notNeedUnLockList, allProcessList, processOperationEquDoList);
             }
         }
 
@@ -4472,7 +4488,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
 
     }
 
-    private void getCleanNextProcess(ApsProcessOperationProcessEquDo nowEqu,String nextprocessesids, List<ApsProcessOperationProcessEquDo> allProcessEquList, List<String> allProcessEquIdList, List<ApsProcessOperationProcessEquDo> notNeedUnLockList, List<ApsProcessOperationDo> allProcessList,List<ApsProcessOperationEquDo> processOperationEquDoList) {
+    private void getCleanNextProcess(ApsProcessOperationProcessEquDo nowEqu, String nextprocessesids, List<ApsProcessOperationProcessEquDo> allProcessEquList, List<String> allProcessEquIdList, List<ApsProcessOperationProcessEquDo> notNeedUnLockList, List<ApsProcessOperationDo> allProcessList, List<ApsProcessOperationEquDo> processOperationEquDoList) {
         if (ObjectUtil.isEmpty(nextprocessesids)) {
             return;
         }
@@ -4488,14 +4504,14 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                 //判断是否连续
                 boolean isConnect = isConnectProcess(nextProcess, nowProcess, processOperationEquDoList);
                 //是连续
-                if (isConnect){
+                if (isConnect) {
                     //下道不解锁,继续迭代
                     notNeedUnLockList.add(nowEqu);
                     if (ObjectUtil.isNotEmpty(nextEqu.getNextprocessesids())) {
                         String nextNewProcessesids = nextEqu.getNextprocessesids();
-                        getCleanNextProcess(nextEqu,nextNewProcessesids, allProcessEquList, allProcessEquIdList, notNeedUnLockList, allProcessList,processOperationEquDoList);
+                        getCleanNextProcess(nextEqu, nextNewProcessesids, allProcessEquList, allProcessEquIdList, notNeedUnLockList, allProcessList, processOperationEquDoList);
                     }
-                }else {
+                } else {
                     //结束迭代
                     return;
                 }

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

@@ -3,6 +3,7 @@ package com.rongwei.bscommon.sys.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -569,20 +570,35 @@ public class ApsServiceImpl implements ApsService {
         Map<String,Equipment> allEqs = new HashMap<>();
         // 统一排程开始时间
         List<ApsScheduleConfigDo> apsConfigs = apsScheduleConfigService.list();
-        Date apsPlanStartDate = new Date();
-        if(apsConfigs != null && apsConfigs.size()>0){
-            ApsScheduleConfigDo apsScheduleConfig = apsConfigs.get(0);
-            int a = 8;
-            if (apsScheduleConfig.getStartschedulerun() != null) {
-                a = apsScheduleConfig.getStartschedulerun();
-            }
-            if (apsScheduleConfig.getApsplanstartdate() != null) {
-                apsPlanStartDate = apsScheduleConfig.getApsplanstartdate();
-            } else {
-                apsPlanStartDate = DateUtil.date().offset(DateField.HOUR, a);
-            }
+//        Date apsPlanStartDate = new Date();
+//        if(apsConfigs != null && apsConfigs.size()>0){
+//            ApsScheduleConfigDo apsScheduleConfig = apsConfigs.get(0);
+//            int a = 8;
+//            if (apsScheduleConfig.getStartschedulerun() != null) {
+//                a = apsScheduleConfig.getStartschedulerun();
+//            }
+//            if (apsScheduleConfig.getApsplanstartdate() != null) {
+//                apsPlanStartDate = apsScheduleConfig.getApsplanstartdate();
+//            } else {
+//                apsPlanStartDate = DateUtil.date().offset(DateField.HOUR, a);
+//            }
+//        }
+        String needScheduleDate = "";
+        DateTime nowDate = DateUtil.date();
+        String time1 = DateUtil.format(nowDate, "yyyy-MM-dd 00:00:00");
+        String time2 = DateUtil.format(nowDate, "yyyy-MM-dd 12:00:00");
+        String time3 = DateUtil.format(nowDate, "yyyy-MM-dd 23:59:59");
+        String now = DateUtil.format(nowDate, "yyyy-MM-dd HH:mm:ss");
+        //如果当前时间在0-12点,重排明天的
+        //如果当前时间在12-24点,重排后天的
+        if (now.compareTo(time1) >= 0 && now.compareTo(time2) < 0) {
+            needScheduleDate = DateUtil.format(DateUtil.offsetDay(nowDate, 1), "yyyy-MM-dd");
         }
-        Date finalApsPlanStartDate = apsPlanStartDate;
+        if (now.compareTo(time2) >= 0 && now.compareTo(time3) <= 0) {
+            needScheduleDate = DateUtil.format(DateUtil.offsetDay(nowDate, 2), "yyyy-MM-dd");
+        }
+        DateTime chongpaiStartDate = DateUtil.parseDate(needScheduleDate);
+        Date finalApsPlanStartDate = chongpaiStartDate;
         apsOrderScheduleApsNew(apsBlankOrders,currentUser,allEqs, finalApsPlanStartDate,apsType,needUnLockProcessIdList);
     }