From 2af6ef4a9c654040138bc846d5fa1396e0305975 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期日, 28 一月 2024 14:33:30 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java |   81 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 72 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java b/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java
index d6c7630..8775600 100644
--- a/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java
@@ -2,14 +2,8 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
-import com.zy.asrs.entity.BasDevp;
-import com.zy.asrs.entity.RgvOneSign;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.entity.WrkMastSta;
-import com.zy.asrs.service.BasDevpService;
-import com.zy.asrs.service.RgvOneSignService;
-import com.zy.asrs.service.WrkMastService;
-import com.zy.asrs.service.WrkMastStaService;
+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;
@@ -40,6 +34,10 @@
     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>() {{
@@ -52,6 +50,12 @@
 
     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>() {{
@@ -149,6 +153,10 @@
                     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;
@@ -156,6 +164,24 @@
                     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;
                         }
                     }
@@ -192,8 +218,32 @@
                     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"));
@@ -202,9 +252,22 @@
                     }
 
                     BasDevp basDevpEnd = basDevpService.selectById(wrkMastStaNo);
-                    if (!basDevpEnd.getLoading().equals("Y") || basDevpEnd.getWrkNo()!=0 || basDevpEnd.getLoading().equals("Y") || basDevpEnd.getReportSign()!=0) {
+                    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;

--
Gitblit v1.9.1