From 7d42dc149401791c84c70abec853edf7e900e034 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期三, 24 十二月 2025 08:39:30 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/WrkMastStaInIt2Scheduler.java |  210 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 194 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/WrkMastStaInIt2Scheduler.java b/src/main/java/com/zy/asrs/task/WrkMastStaInIt2Scheduler.java
index 18521d3..169c87f 100644
--- a/src/main/java/com/zy/asrs/task/WrkMastStaInIt2Scheduler.java
+++ b/src/main/java/com/zy/asrs/task/WrkMastStaInIt2Scheduler.java
@@ -13,6 +13,7 @@
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -50,7 +51,7 @@
     }};
 
     public static final List<Integer> STA_WORK_CU_CAR_TWO = new ArrayList<Integer>() {{
-        add(120);add(121);
+        add(1901);
     }};
     public static final List<Integer> STA_WORK_CU_CAR_THREE  = new ArrayList<Integer>() {{
         add(120);
@@ -60,13 +61,32 @@
     }};
 
     public static final List<Integer> STA_WORK_RU = new ArrayList<Integer>() {{
-        add(120);add(121);add(122);add(123);
+        add(120);add(121);add(123);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()!=0){
+            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});
+        }
+
+// 鎸塻electCount闄嶅簭鎺掑簭锛堟渶澶х殑鎺掔涓�浣嶏級
+        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")){
@@ -75,14 +95,14 @@
                         continue;
                     }
                     if (wrkMast.getIoType()<100 || wrkMast.getIoType()==110){
-                        if (!wrkMast.getStaNo().equals(122)){
+                        if (!wrkMast.getStaNoCar$().equals(122)){
                             continue;
                         }
                     }
                     if (wrkMast.getWrkSts()!=14 && wrkMast.getWrkSts()!=15){
                         continue;
                     }
-                    if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119 || wrkMast.getStaNo()==120 || wrkMast.getStaNo()==121){
+                    if (wrkMast.getStaNoCar$()==118 || wrkMast.getStaNoCar$()==119 || wrkMast.getStaNoCar$()==120 || wrkMast.getStaNoCar$()==121){
                         continue;
                     }
                     boolean wrkTypeSign = fullKM(wrkMast);
@@ -134,15 +154,31 @@
                     }
                 }
             }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()!=0){
+            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")){
@@ -156,10 +192,10 @@
                         if (wrkMast.getWrkSts()!=14 && wrkMast.getWrkSts()!=15){
                             continue;
                         }
-                        if (wrkMast.getStaNo()<118 || wrkMast.getStaNo()>121){
+                        if (wrkMast.getStaNoCar$()<118 || wrkMast.getStaNoCar$()>121){
                             continue;
                         }
-                        int count = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", wrkMast.getStaNo()).or().eq("sta_end", wrkMast.getStaNo()));
+                        int count = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", wrkMast.getStaNoCar$()).or().eq("sta_end", wrkMast.getStaNoCar$()));
                         if (count!=0){
                             continue;
                         }
@@ -167,11 +203,96 @@
                         if (countStart!=0){
                             continue;
                         }
-                        BasDevp basDevpEnd = basDevpService.selectById(wrkMast.getStaNo());
-                        if (!basDevpEnd.getAutoing().equals("Y") || basDevpEnd.getWrkNo()!=0 || basDevpEnd.getLoading().equals("Y") || basDevpEnd.getReportSign()!=0){
+                        BasDevp basDevpEnd = basDevpService.selectById(wrkMast.getStaNoCar$());
+                        if (!basDevpEnd.getAutoing().equals("Y")){
                             continue;
                         }
-                        if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){
+                        if (basDevpEnd.getWrkNo()!=0 || basDevpEnd.getLoading().equals("Y") || basDevpEnd.getReportSign()!=0){
+                            if (basDevpEnd.getWrkNo()!=0 && basDevpEnd.getLoading().equals("Y") && basDevpEnd.getReportSign()!=0){
+                                WrkMast wrkMastEnd = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevpEnd.getWrkNo()));
+                                if (Cools.isEmpty(wrkMastEnd) || wrkMastEnd.getIoType()!=101 || Cools.isEmpty(wrkMastEnd.getSheetNo()) || wrkMastEnd.getSheetNo().equals("0")){
+                                    continue;
+                                }
+                                if (wrkMast.getStaNoCar$()==121){
+                                    BasDevp basDevpEnd120 = basDevpService.selectById(120);
+                                    if (Cools.isEmpty(basDevpEnd120)){
+                                        continue;
+                                    }
+                                    if (basDevpEnd120.getAutoing().equals("Y")){
+                                        if (basDevpEnd120.getLoading().equals("N")){
+                                            boolean signQQ = false;
+                                            for (Integer staNoQQ : STA_WORK_CU){
+                                                BasDevp basDevpEndQQ = basDevpService.selectById(staNoQQ);
+                                                if (!Cools.isEmpty(basDevpEndQQ) && basDevpEndQQ.getWrkNo()!=0){
+                                                    WrkMast wrkMastEndQQ = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevpEndQQ.getWrkNo()));
+                                                    if (!Cools.isEmpty(wrkMastEndQQ) && wrkMastEndQQ.getIoType()==101){
+                                                        signQQ = true;
+                                                        break;
+                                                    }
+                                                    if (!Cools.isEmpty(wrkMastEndQQ) && wrkMastEndQQ.getIoType()==103){
+                                                        List<WrkDetl> wrkDetlsQQ = wrkDetlService.selectByWrkNo(wrkMastEndQQ.getWrkNo());
+                                                        for (WrkDetl wrkDetlQQ: wrkDetlsQQ){
+                                                            String originQQ = wrkDetlQQ.getOrigin();
+                                                            if (originQQ.equals("2")){
+                                                                signQQ = true;
+                                                                break;
+                                                            }
+                                                        }
+                                                        if (signQQ){
+                                                            break;
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                            if (signQQ){
+                                                continue;
+                                            }
+                                        }
+                                    }
+                                }
+
+                                if (wrkMast.getStaNoCar$()==120){
+                                    BasDevp basDevpEnd121 = basDevpService.selectById(121);
+                                    if (Cools.isEmpty(basDevpEnd121)){
+                                        continue;
+                                    }
+                                    if (basDevpEnd121.getAutoing().equals("Y")){
+                                        if (basDevpEnd121.getLoading().equals("N")){
+                                            boolean signQQ = false;
+                                            for (Integer staNoQQ : STA_WORK_CU){
+                                                BasDevp basDevpEndQQ = basDevpService.selectById(staNoQQ);
+                                                if (!Cools.isEmpty(basDevpEndQQ) && basDevpEndQQ.getWrkNo()!=0){
+                                                    WrkMast wrkMastEndQQ = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevpEndQQ.getWrkNo()));
+                                                    if (!Cools.isEmpty(wrkMastEndQQ) && wrkMastEndQQ.getIoType()==101){
+                                                        signQQ = true;
+                                                        break;
+                                                    }
+                                                    if (!Cools.isEmpty(wrkMastEndQQ) && wrkMastEndQQ.getIoType()==103){
+                                                        List<WrkDetl> wrkDetlsQQ = wrkDetlService.selectByWrkNo(wrkMastEndQQ.getWrkNo());
+                                                        for (WrkDetl wrkDetlQQ: wrkDetlsQQ){
+                                                            String originQQ = wrkDetlQQ.getOrigin();
+                                                            if (originQQ.equals("1")){
+                                                                signQQ = true;
+                                                                break;
+                                                            }
+                                                        }
+                                                        if (signQQ){
+                                                            break;
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                            if (signQQ){
+                                                continue;
+                                            }
+                                        }
+                                    }
+                                }
+                            } else {
+                                continue;
+                            }
+                        }
+                        if (wrkMast.getStaNoCar$()==118 || wrkMast.getStaNoCar$()==119){
                             RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","oneSign"));
                             if (rgvOneSign.getRgvOneSign()==1){
                                 continue;
@@ -182,11 +303,11 @@
                             if (wrkDetls.size()!=0){
                                 String origin = wrkDetls.get(0).getOrigin();
                                 if (origin.equals("1")){
-                                    if (!STA_WORK_CU_CAR_FOUR.contains(wrkMast.getStaNo())){
+                                    if (!STA_WORK_CU_CAR_FOUR.contains(wrkMast.getStaNoCar$())){
                                         continue;
                                     }
                                 }else {
-                                    if (!STA_WORK_CU_CAR_THREE.contains(wrkMast.getStaNo())){
+                                    if (!STA_WORK_CU_CAR_THREE.contains(wrkMast.getStaNoCar$())){
                                         continue;
                                     }
                                 }
@@ -213,7 +334,7 @@
                 }
             }
 
-            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")){
@@ -222,13 +343,32 @@
                         if(Cools.isEmpty(wrkMast)){
                             continue;
                         }
+//                        if (wrkMast.getStaNo()==1901){
+//                            boolean sign1901 = false;
+//                            List<WrkDetl> wrkDetlList1901 = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+//                            for (WrkDetl wrkDetl : wrkDetlList1901){
+//                                if (wrkDetl.getBrandArmType$()==999){
+//                                    sign1901 = true;
+//                                    break;
+//                                }
+//                            }
+//                            if (sign1901){
+//                                continue;
+//                            }
+//                        }
                         if (wrkMast.getIoType()!=101 && wrkMast.getIoType()!=103){
                             continue;
                         }
                         if (wrkMast.getWrkSts()!=14 && wrkMast.getWrkSts()!=15){
                             continue;
                         }
-                        Integer wrkMastStaNo = wrkMast.getStaNo();
+                        Integer wrkMastStaNo = wrkMast.getStaNoCar$();
+//                        if (wrkMastStaNo==1901){
+//                            wrkMastStaNo = 122;
+//                        }
+//                        if ((wrkMastStaNo<118 || wrkMastStaNo>121) && wrkMastStaNo!=122){
+//                            continue;
+//                        }
                         if (wrkMastStaNo<118 || wrkMastStaNo>121){
                             continue;
                         }
@@ -281,6 +421,9 @@
                                         }
                                     }
                                 }
+                                if (staNoOther==1901){
+                                    staNoOther = 122;
+                                }
 
                                 int countOther = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", staNoOther).or().eq("sta_end", staNoOther));
                                 if (countOther!=0){
@@ -289,6 +432,10 @@
                                 BasDevp basDevpOther = basDevpService.selectById(staNoOther);
                                 if (!basDevpOther.getAutoing().equals("Y") || basDevpOther.getWrkNo()!=0 || basDevpOther.getLoading().equals("Y") || basDevpOther.getReportSign()!=0) {
                                     continue;
+                                }
+                                if (staNoOther==122){
+                                    wrkMast.setSheetNo("3");
+                                    staNoOther = 1901;
                                 }
                                 wrkMast.setStaNo(staNoOther);
                                 wrkMastService.updateById(wrkMast);
@@ -313,4 +460,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