From e128bbc4a9df1491257320884169ba813d461f63 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期六, 20 十二月 2025 10:33:20 +0800
Subject: [PATCH] #1

---
 src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java |  147 +++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 129 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java b/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java
index eb36dc9..f93d9dd 100644
--- a/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java
@@ -13,6 +13,7 @@
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -41,11 +42,12 @@
 
 
     public static final List<Integer> STA_WORK_CU = new ArrayList<Integer>() {{
-        add(101);add(102);add(104);add(105);add(107);add(108);add(110);add(111);add(113);add(114);add(116);add(117);
+        add(101);add(102);add(104);add(105);add(107);add(108);add(110);add(111);add(113);add(114);
     }};
+//        add(116);add(117);
 
     public static final List<Integer> STA_WORK_CU_CAR = new ArrayList<Integer>() {{
-        add(118);add(119);add(120);add(121);
+        add(118);add(120);add(121);
     }};
 
     public static final List<Integer> STA_WORK_CU_CAR_TWO = new ArrayList<Integer>() {{
@@ -55,26 +57,48 @@
         add(118);add(120);
     }};
     public static final List<Integer> STA_WORK_CU_CAR_FOUR  = new ArrayList<Integer>() {{
-        add(119);add(121);
+        add(121);add(118);
     }};
 
     public static final List<Integer> STA_WORK_RU = new ArrayList<Integer>() {{
-        add(118);add(119);add(120);add(121);add(122);add(123);
+        add(118);add(120);add(121);add(122);add(123);add(1907);
     }};
+//    add(171);
 
 
-    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/1 * * * * ? ")
     private void execute(){
+        RgvOneSign rgvTwoSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","rgvTwo"));
+        if (Cools.isEmpty(rgvTwoSign) || rgvTwoSign.getRgvOneSign()!=2){
+            return;
+        }
+        List<Integer> integersStaArr = new ArrayList<>();
+        List<int[]> stalistArr = new ArrayList<>();
         for(Integer staNo : STA_WORK_CU){
+            Integer crnNo = getCrnNo(staNo);
+            int selectCount = wrkMastService.selectCount(
+                    new EntityWrapper<WrkMast>().eq("crn_no", crnNo).eq("wrk_sts", 11L));
+            stalistArr.add(new int[]{staNo, selectCount});
+        }
+        Collections.sort(stalistArr, (a, b) -> b[1] - a[1]);  // 闄嶅簭鎺掑垪
+        for (int[] staNowArr : stalistArr){
+            integersStaArr.add(staNowArr[0]);
+        }
+        for(Integer staNo : integersStaArr){
             try{
                 BasDevp basDevp = basDevpService.selectById(staNo);
                 if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){
+                    if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
+                        if (!basDevp.getLoadingSuper().equals("Y")){
+                            continue;
+                        }
+                    }
                     WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
                     if(Cools.isEmpty(wrkMast)){
                         continue;
                     }
                     if (wrkMast.getIoType()<100 || wrkMast.getIoType()==110){
-                        if (!wrkMast.getStaNo().equals(122)){
+                        if (!wrkMast.getStaNo().equals(122) && !wrkMast.getStaNo().equals(1901)){
                             continue;
                         }
                     }
@@ -84,13 +108,14 @@
                     if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119 || wrkMast.getStaNo()==120 || wrkMast.getStaNo()==121){
                         continue;
                     }
-                    boolean wrkTypeSign = fullKM(wrkMast);
+//                    boolean wrkTypeSign = fullKM(wrkMast);
+                    boolean wrkTypeSign = true;
                     if (!Cools.isEmpty(wrkMast)){
                         if (wrkTypeSign) {
                             ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,13);//3锛氬彇鏀�
                             if (result.getCode()==200){
                                 continue;
-                            }else {
+                            } else {
                                 System.out.println(staNo+"澶辫触锛�");
                             }
                         } else {
@@ -111,14 +136,19 @@
         for(Integer staNo : STA_WORK_RU){
             try{
                 BasDevp basDevp = basDevpService.selectById(staNo);
-                if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){
+                if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getLoadingSuper().equals("Y") && basDevp.getAutoing().equals("Y")){
                     WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
                     if (Cools.isEmpty(wrkMast)){
                         continue;
                     }
-
-                    if (wrkMast.getWrkSts()!=2 || wrkMast.getIoType()==10){
-                        continue;
+                    if (staNo==1907){
+                        if (wrkMast.getWrkSts()!=2){
+                            continue;
+                        }
+                    } else {
+                        if (wrkMast.getWrkSts()!=2 || wrkMast.getIoType()==10){
+                            continue;
+                        }
                     }
 //                boolean wrkTypeSign = fullKM(wrkMast);
 
@@ -133,18 +163,39 @@
                     }
                 }
             }catch (Exception e){
-                log.error("鑷姩琛ョ┖鏉縎TA_WORK_RU澶勭悊澶辫触锛屽綋鍓嶇珯鐐瑰彿锛�"+staNo+"寮傚父淇℃伅"+e);
+                log.error("STA_WORK_RU澶勭悊澶辫触锛屽綋鍓嶇珯鐐瑰彿锛�"+staNo+"寮傚父淇℃伅"+e);
             }
         }
     }
 
-    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/1 * * * * ? ")
     private void execute2(){
+        RgvOneSign rgvTwoSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","rgvTwo"));
+        if (Cools.isEmpty(rgvTwoSign) || rgvTwoSign.getRgvOneSign()!=2){
+            return;
+        }
         try{
+            List<Integer> integersStaArr = new ArrayList<>();
+            List<int[]> stalistArr = new ArrayList<>();
             for(Integer staNo : STA_WORK_CU){
+                Integer crnNo = getCrnNo(staNo);
+                int selectCount = wrkMastService.selectCount(
+                        new EntityWrapper<WrkMast>().eq("crn_no", crnNo).eq("wrk_sts", 11L));
+                stalistArr.add(new int[]{staNo, selectCount});
+            }
+            Collections.sort(stalistArr, (a, b) -> b[1] - a[1]);
+            for (int[] staNowArr : stalistArr){
+                integersStaArr.add(staNowArr[0]);
+            }
+            for(Integer staNo : integersStaArr){
                 try{
                     BasDevp basDevp = basDevpService.selectById(staNo);
                     if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){
+                        if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
+                            if (!basDevp.getLoadingSuper().equals("Y")){
+                                continue;
+                            }
+                        }
                         WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
                         if(Cools.isEmpty(wrkMast)){
                             continue;
@@ -170,6 +221,11 @@
                         if (!basDevpEnd.getAutoing().equals("Y") || basDevpEnd.getWrkNo()!=0 || basDevpEnd.getLoading().equals("Y") || basDevpEnd.getReportSign()!=0){
                             continue;
                         }
+                        if (basDevpEnd.getDevNo()>117 && basDevpEnd.getDevNo()<124){
+                            if (basDevpEnd.getLoadingSuper().equals("Y")){
+                                continue;
+                            }
+                        }
                         if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){
                             RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","oneSign"));
                             if (rgvOneSign.getRgvOneSign()==1){
@@ -178,7 +234,7 @@
                         }
                         if (wrkMast.getIoType()!=101){
                             List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
-                            if (wrkDetls.size()!=0){
+                            if (!Cools.isEmpty(wrkDetls) && !wrkDetls.isEmpty()){
                                 String origin = wrkDetls.get(0).getOrigin();
                                 if (origin.equals("1")){
                                     if (!STA_WORK_CU_CAR_FOUR.contains(wrkMast.getStaNo())){
@@ -212,10 +268,15 @@
                 }
             }
 
-            for(Integer staNo : STA_WORK_CU){
+            for(Integer staNo : integersStaArr){
                 try{
                     BasDevp basDevp = basDevpService.selectById(staNo);
                     if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){
+                        if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
+                            if (!basDevp.getLoadingSuper().equals("Y")){
+                                continue;
+                            }
+                        }
                         List<Integer> STA_WORK_CU_CAR_NOW = STA_WORK_CU_CAR;
                         WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
                         if(Cools.isEmpty(wrkMast)){
@@ -233,9 +294,10 @@
                         }
                         String origin = null;
                         boolean sign = false;
+                        boolean sign101 = false;
                         if (wrkMast.getIoType()!=101){
                             List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
-                            if (wrkDetls.size()!=0){
+                            if (!Cools.isEmpty(wrkDetls) && !wrkDetls.isEmpty()){
                                 origin = wrkDetls.get(0).getOrigin();
                                 if (origin.equals("1")){
                                     if (!STA_WORK_CU_CAR_FOUR.contains(wrkMastStaNo)){
@@ -250,6 +312,8 @@
                                 log.error("鏈煡璇㈠埌宸ヤ綔鏄庣粏");
                                 continue;
                             }
+                        }else {
+                            sign101 = true;
                         }
                         int count = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", wrkMastStaNo).or().eq("sta_end", wrkMastStaNo));
                         if (count!=0){
@@ -265,11 +329,22 @@
                         }
 
                         BasDevp basDevpEnd = basDevpService.selectById(wrkMastStaNo);
+                        if (Cools.isEmpty(basDevpEnd)){
+                            sign = true;
+                        }
+                        if (!sign && basDevpEnd.getDevNo()>117 && basDevpEnd.getDevNo()<124){
+                            if (basDevpEnd.getLoadingSuper().equals("Y")){
+                                sign = true;
+                            }
+                        }
                         if (sign || !basDevpEnd.getAutoing().equals("Y") || basDevpEnd.getWrkNo()!=0 || basDevpEnd.getLoading().equals("Y") || basDevpEnd.getReportSign()!=0) {
                             for (Integer staNoOther : STA_WORK_CU_CAR_NOW) {
                                 if (staNoOther.equals(wrkMastStaNo)) continue;
 
-                                if (sign){
+                                if (sign && !sign101){
+                                    if (Cools.isEmpty(origin)){
+                                        continue;
+                                    }
                                     if (origin.equals("1")){
                                         if (!STA_WORK_CU_CAR_FOUR.contains(staNoOther)){
                                             continue;
@@ -288,6 +363,11 @@
                                 BasDevp basDevpOther = basDevpService.selectById(staNoOther);
                                 if (!basDevpOther.getAutoing().equals("Y") || basDevpOther.getWrkNo()!=0 || basDevpOther.getLoading().equals("Y") || basDevpOther.getReportSign()!=0) {
                                     continue;
+                                }
+                                if (basDevpOther.getDevNo()>117 && basDevpOther.getDevNo()<124){
+                                    if (basDevpOther.getLoadingSuper().equals("Y")){
+                                        continue;
+                                    }
                                 }
                                 wrkMast.setStaNo(staNoOther);
                                 wrkMastService.updateById(wrkMast);
@@ -312,4 +392,35 @@
         return false;
     }
 
+    public Integer getCrnNo(Integer staNo){
+        switch (staNo){
+            case 100:
+            case 101:
+            case 102:
+                return 1;
+            case 103:
+            case 104:
+            case 105:
+                return 2;
+            case 106:
+            case 107:
+            case 108:
+                return 3;
+            case 109:
+            case 110:
+            case 111:
+                return 4;
+            case 112:
+            case 113:
+            case 114:
+                return 5;
+            case 115:
+            case 116:
+            case 117:
+                return 6;
+            default:
+                return 0;
+        }
+    }
+
 }

--
Gitblit v1.9.1