From dbc2514aad6b2b70b08e81f33d45f64aae175ccf Mon Sep 17 00:00:00 2001
From: yxFwq <1>
Date: 星期二, 19 十一月 2024 16:31:34 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java |  227 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 202 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java b/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java
index 3c4f475..8ff7df8 100644
--- a/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java
@@ -2,13 +2,12 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
-import com.zy.asrs.entity.BasDevp;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.entity.WrkMastSta;
-import com.zy.asrs.service.BasDevpService;
-import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.service.*;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.task.handler.WrkMastStaInItHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
@@ -18,10 +17,12 @@
 
 /**
  * Created by Monkey D. Luffy on 2023.07.25
- * 寰愬伐姹変簯..............浠ヤ笅.............涓婇ザ姹熼摐.............鑷姩琛ョ┖鏉�
+ * 寰愬伐姹変簯..............浠ヤ笅.............涓婇ザ姹熼摐.............灏忚溅鎵ц浣滀笟鐢熸垚
  */
 @Component
 public class WrkMastStaInItScheduler {
+
+    private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
 
     @Autowired
     private WrkMastStaInItHandler wrkMastStaInItHandler;
@@ -29,10 +30,32 @@
     private BasDevpService basDevpService;
     @Autowired
     private WrkMastService wrkMastService;
+    @Autowired
+    private RgvOneSignService rgvOneSignService;
+    @Autowired
+    private WrkMastStaService wrkMastStaService;
+    @Autowired
+    private WrkDetlService wrkDetlService;
+    @Autowired
+    private LocDetlService locDetlService;
 
 
     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);
+    }};
+
+    public static final List<Integer> STA_WORK_CU_CAR = new ArrayList<Integer>() {{
+        add(118);add(119);add(120);add(121);
+    }};
+
+    public static final List<Integer> STA_WORK_CU_CAR_TWO = new ArrayList<Integer>() {{
+        add(120);add(121);
+    }};
+    public static final List<Integer> STA_WORK_CU_CAR_THREE  = new ArrayList<Integer>() {{
+        add(118);add(120);
+    }};
+    public static final List<Integer> STA_WORK_CU_CAR_FOUR  = new ArrayList<Integer>() {{
+        add(119);add(121);
     }};
 
     public static final List<Integer> STA_WORK_RU = new ArrayList<Integer>() {{
@@ -40,30 +63,29 @@
     }};
 
 
-    @Scheduled(cron = "0/3 * * * * ? ")
+//    @Scheduled(cron = "0/3 * * * * ? ")
     private void execute(){
         for(Integer staNo : STA_WORK_CU){
             BasDevp basDevp = basDevpService.selectById(staNo);
-            if (basDevp.getWrkNo()!=0){
+            if (basDevp.getWrkNo()!=0 && basDevp.getLoading().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.getIoType()<100 || wrkMast.getIoType()==110){
-                    continue;
+                    if (!wrkMast.getStaNo().equals(122)){
+                        continue;
+                    }
                 }
                 if (wrkMast.getWrkSts()!=14 && wrkMast.getWrkSts()!=15){
+                    continue;
+                }
+                if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119 || wrkMast.getStaNo()==120 || wrkMast.getStaNo()==121){
                     continue;
                 }
                 boolean wrkTypeSign = fullKM(wrkMast);
                 if (!Cools.isEmpty(wrkMast)){
                     if (wrkTypeSign) {
-//                        ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,11);//1:鍙栵紙鍙犵洏锛�
-//                        if (result.getCode()==200){
-//                            continue;
-//                        }else {
-//                            System.out.println(staNo+"澶辫触锛�");
-//                        }
                         ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,13);//3锛氬彇鏀�
                         if (result.getCode()==200){
                             continue;
@@ -71,7 +93,7 @@
                             System.out.println(staNo+"澶辫触锛�");
                         }
                     } else {
-                        ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,13);//3锛氬彇鏀�
+                        ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,23);//5锛氭弧鍙�
                         if (result.getCode()==200){
                             continue;
                         }else {
@@ -84,8 +106,12 @@
 
         for(Integer staNo : STA_WORK_RU){
             BasDevp basDevp = basDevpService.selectById(staNo);
-            if (basDevp.getWrkNo()!=0){
+            if (basDevp.getWrkNo()!=0 && basDevp.getLoading().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;
                 }
@@ -99,19 +125,170 @@
                         } else {
                             System.out.println(staNo+"澶辫触锛�");
                         }
-//                    }else {
-//                        ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,23);
-//                        if (result.getCode()==200) {
-//                            continue;
-//                        } else {
-//                            System.out.println(staNo+"澶辫触锛�");
-//                        }
-//                    }
                 }
             }
         }
     }
 
+//    @Scheduled(cron = "0/3 * * * * ? ")
+    private void execute2(){
+        try{
+            for(Integer staNo : STA_WORK_CU){
+                BasDevp basDevp = basDevpService.selectById(staNo);
+                if (basDevp.getWrkNo()!=0 && basDevp.getLoading().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.getIoType()!=101 && wrkMast.getIoType()!=104){
+                        continue;
+                    }
+                    if (wrkMast.getWrkSts()!=14 && wrkMast.getWrkSts()!=15){
+                        continue;
+                    }
+                    if (wrkMast.getStaNo()<118 || wrkMast.getStaNo()>121){
+                        continue;
+                    }
+                    int count = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", wrkMast.getStaNo()).or().eq("sta_end", wrkMast.getStaNo()));
+                    if (count!=0){
+                        continue;
+                    }
+                    int countStart = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", staNo).or().eq("sta_end", staNo).or().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (countStart!=0){
+                        continue;
+                    }
+                    BasDevp basDevpEnd = basDevpService.selectById(wrkMast.getStaNo());
+                    if (!basDevpEnd.getLoading().equals("Y") || basDevpEnd.getWrkNo()!=0 || basDevpEnd.getLoading().equals("Y") || basDevpEnd.getReportSign()!=0){
+                        continue;
+                    }
+                    if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){
+                        RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","oneSign"));
+                        if (rgvOneSign.getRgvOneSign()==1){
+                            continue;
+                        }
+                    }
+                    if (wrkMast.getIoType()!=101){
+                        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+                        if (wrkDetls.size()!=0){
+                            String origin = wrkDetls.get(0).getOrigin();
+                            if (origin.equals("1")){
+                                if (!STA_WORK_CU_CAR_FOUR.contains(wrkMast.getStaNo())){
+                                    continue;
+                                }
+                            }else {
+                                if (!STA_WORK_CU_CAR_THREE.contains(wrkMast.getStaNo())){
+                                    continue;
+                                }
+                            }
+                        }else {
+                            log.error("鏈煡璇㈠埌宸ヤ綔鏄庣粏");
+                            continue;
+                        }
+                    }
+//
+                    boolean wrkTypeSign = fullKM(wrkMast);
+                    if (!Cools.isEmpty(wrkMast)){
+                        if (wrkTypeSign) {
+                            ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,13);//3锛氬彇鏀�
+                            if (result.getCode()==200){
+                                continue;
+                            }else {
+                                System.out.println(staNo+"澶辫触锛�");
+                            }
+                        }
+                    }
+                }
+            }
+
+            for(Integer staNo : STA_WORK_CU){
+                BasDevp basDevp = basDevpService.selectById(staNo);
+                if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){
+                    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)){
+                        continue;
+                    }
+                    if (wrkMast.getIoType()!=101 && wrkMast.getIoType()!=104){
+                        continue;
+                    }
+                    if (wrkMast.getWrkSts()!=14 && wrkMast.getWrkSts()!=15){
+                        continue;
+                    }
+                    Integer wrkMastStaNo = wrkMast.getStaNo();
+                    if (wrkMastStaNo<118 || wrkMastStaNo>121){
+                        continue;
+                    }
+                    String origin = null;
+                    boolean sign = false;
+                    if (wrkMast.getIoType()!=101){
+                        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+                        if (wrkDetls.size()!=0){
+                            origin = wrkDetls.get(0).getOrigin();
+                            if (origin.equals("1")){
+                                if (!STA_WORK_CU_CAR_FOUR.contains(wrkMastStaNo)){
+                                    sign = true;
+                                }
+                            }else {
+                                if (!STA_WORK_CU_CAR_THREE.contains(wrkMastStaNo)){
+                                    sign = true;
+                                }
+                            }
+                        }else {
+                            log.error("鏈煡璇㈠埌宸ヤ綔鏄庣粏");
+                            continue;
+                        }
+                    }
+                    int count = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", wrkMastStaNo).or().eq("sta_end", wrkMastStaNo));
+                    if (count!=0){
+                        continue;
+                    }
+                    int countStart = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", staNo).or().eq("sta_end", staNo).or().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (countStart!=0){
+                        continue;
+                    }
+                    RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","oneSign"));
+                    if (rgvOneSign.getRgvOneSign()==1){
+                        STA_WORK_CU_CAR_NOW = STA_WORK_CU_CAR_TWO;
+                    }
+
+                    BasDevp basDevpEnd = basDevpService.selectById(wrkMastStaNo);
+                    if (sign || !basDevpEnd.getLoading().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 (origin.equals("1")){
+                                    if (!STA_WORK_CU_CAR_FOUR.contains(staNoOther)){
+                                        continue;
+                                    }
+                                }else {
+                                    if (!STA_WORK_CU_CAR_THREE.contains(staNoOther)){
+                                        continue;
+                                    }
+                                }
+                            }
+
+                            int countOther = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", staNoOther).or().eq("sta_end", staNoOther));
+                            if (countOther!=0){
+                                continue;
+                            }
+                            BasDevp basDevpOther = basDevpService.selectById(staNoOther);
+                            if (!basDevpOther.getLoading().equals("Y") || basDevpOther.getWrkNo()!=0 || basDevpOther.getLoading().equals("Y") || basDevpOther.getReportSign()!=0) {
+                                continue;
+                            }
+                            wrkMast.setStaNo(staNoOther);
+                            wrkMastService.updateById(wrkMast);
+                            log.info("宸ヤ綔鍙�"+wrkMast.getWrkNo()+"淇敼鐩爣绔欎负:"+staNoOther+";鍘熺洰鏍囩珯涓�:"+wrkMastStaNo);
+                            return;
+                        }
+                    }
+                }
+            }
+        }catch (Exception e){
+            log.error("鐩爣涓烘媶鍨涗綅缃殑浠诲姟鐢熸垚灏忚溅宸ヤ綔妗f澶辫触锛侊紒"+e);
+        }
+    }
+
     public boolean fullKM(WrkMast wrkMast){
         if (wrkMast.getIoType()!=10 && wrkMast.getIoType()!=110){
             return true;

--
Gitblit v1.9.1