From 6de5d93c41f03d477f805f35d14a98f267430d6e Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 24 十月 2024 16:13:13 +0800
Subject: [PATCH] 备货区按层列排放

---
 src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java |  306 ++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 243 insertions(+), 63 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java b/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java
index 75f8e67..b97a3f1 100644
--- a/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java
@@ -2,17 +2,13 @@
 
 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.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;
 
 import java.util.ArrayList;
@@ -25,6 +21,8 @@
 @Component
 public class WrkMastStaInItScheduler {
 
+    private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
+
     @Autowired
     private WrkMastStaInItHandler wrkMastStaInItHandler;
     @Autowired
@@ -33,77 +31,97 @@
     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);
+        add(101);add(102);add(104);add(105);add(107);add(108);
+    }};
+
+    public static final List<Integer> STA_WORK_CU_CAR = new ArrayList<Integer>() {{
+        add(119);add(118);
+    }};
+
+    public static final List<Integer> STA_WORK_CU_CAR_TWO = new ArrayList<Integer>() {{
+
+    }};
+    public static final List<Integer> STA_WORK_CU_CAR_THREE  = new ArrayList<Integer>() {{
+        add(118);
+    }};
+    public static final List<Integer> STA_WORK_CU_CAR_FOUR  = new ArrayList<Integer>() {{
+        add(119);
     }};
 
     public static final List<Integer> STA_WORK_RU = new ArrayList<Integer>() {{
-        add(118);add(119);add(120);add(121);add(122);add(123);
+        add(119);add(118);add(122);
     }};
 
 
-    @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 && 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){
-                    if (!wrkMast.getStaNo().equals(122)){
+            try{
+                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.getWrkSts()!=14 && wrkMast.getWrkSts()!=15){
-                    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;
-//                    }
-//                }
-                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){
+                    if (wrkMast.getIoType()<100 || wrkMast.getIoType()==110){
+                        if (!wrkMast.getStaNo().equals(122)){
                             continue;
-                        }else {
-                            System.out.println(staNo+"澶辫触锛�");
                         }
-                    } else {
-                        ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,13);//3锛氬彇鏀�
-                        if (result.getCode()==200){
-                            continue;
-                        }else {
-                            System.out.println(staNo+"澶辫触锛�");
+                    }
+                    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,13);//3锛氬彇鏀�
+                            if (result.getCode()==200){
+                                continue;
+                            }else {
+                                System.out.println(staNo+"澶辫触锛�");
+                            }
+                        } else {
+                            ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,23);//5锛氭弧鍙�
+                            if (result.getCode()==200){
+                                continue;
+                            }else {
+                                System.out.println(staNo+"澶辫触锛�");
+                            }
                         }
                     }
                 }
+            }catch (Exception e){
+                log.error("鑷姩琛ョ┖鏉縎TA_WORK_CU澶勭悊澶辫触锛屽綋鍓嶇珯鐐瑰彿锛�"+staNo+"寮傚父淇℃伅"+e);
             }
         }
 
         for(Integer staNo : STA_WORK_RU){
-            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 (wrkMast.getWrkSts()!=2 || wrkMast.getIoType()==10){
-                    continue;
-                }
+            try{
+                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.getWrkSts()!=2 || wrkMast.getIoType()==10){
+                        continue;
+                    }
 //                boolean wrkTypeSign = fullKM(wrkMast);
 
-                if (!Cools.isEmpty(wrkMast)){
+                    if (!Cools.isEmpty(wrkMast)){
 //                    if (wrkTypeSign){
                         ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,13);
                         if (result.getCode()==200) {
@@ -111,16 +129,178 @@
                         } else {
                             System.out.println(staNo+"澶辫触锛�");
                         }
-//                    }else {
-//                        ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,23);
-//                        if (result.getCode()==200) {
-//                            continue;
-//                        } else {
-//                            System.out.println(staNo+"澶辫触锛�");
-//                        }
-//                    }
+                    }
+                }
+            }catch (Exception e){
+                log.error("鑷姩琛ョ┖鏉縎TA_WORK_RU澶勭悊澶辫触锛屽綋鍓嶇珯鐐瑰彿锛�"+staNo+"寮傚父淇℃伅"+e);
+            }
+        }
+    }
+
+//    @Scheduled(cron = "0/3 * * * * ? ")
+    private void execute2(){
+        try{
+            for(Integer staNo : STA_WORK_CU){
+                try{
+                    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()!=103){
+                            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.getAutoing().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+"澶辫触锛�");
+                                }
+                            }
+                        }
+                    }
+                }catch (Exception e){
+                    log.error("STA_WORK_CU澶勭悊澶辫触锛屽綋鍓嶇珯鐐瑰彿锛�"+staNo+"寮傚父淇℃伅"+e);
                 }
             }
+
+            for(Integer staNo : STA_WORK_CU){
+                try{
+                    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()!=103){
+                            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.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 (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.getAutoing().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("STA_WORK_CU澶勭悊澶辫触锛屽綋鍓嶇珯鐐瑰彿锛�"+staNo+"寮傚父淇℃伅"+e);
+                }
+            }
+        }catch (Exception e){
+            log.error("鐩爣涓烘媶鍨涗綅缃殑浠诲姟鐢熸垚灏忚溅宸ヤ綔妗f澶辫触锛侊紒"+e);
         }
     }
 

--
Gitblit v1.9.1