From 21e9b4b7d15e10cec7c8ad0b14006f225e16de1c Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期六, 08 六月 2024 09:24:54 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/entity/WrkMastSplitTwin.java                  |    2 
 src/main/java/com/zy/asrs/task/handler/WrkMastSplitTwinInItHandler.java |  107 ++++++++-------
 src/main/java/com/zy/asrs/task/WrkMastSplitTwinInItScheduler.java       |  183 +++++--------------------
 src/main/java/com/zy/asrs/utils/CodeDetectionUtil.java                  |   38 +++++
 src/main/java/com/zy/asrs/utils/LocAndStaCodeUtil.java                  |   52 +++++++
 5 files changed, 186 insertions(+), 196 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/WrkMastSplitTwin.java b/src/main/java/com/zy/asrs/entity/WrkMastSplitTwin.java
index 2ef6006..3005012 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMastSplitTwin.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMastSplitTwin.java
@@ -297,7 +297,7 @@
             case 2:
                 return "鍑哄簱";
             default:
-                return String.valueOf(this.ioType);
+                return "鏈煡:"+this.ioType;
         }
     }
 
diff --git a/src/main/java/com/zy/asrs/task/WrkMastSplitTwinInItScheduler.java b/src/main/java/com/zy/asrs/task/WrkMastSplitTwinInItScheduler.java
index 6026252..b5aca80 100644
--- a/src/main/java/com/zy/asrs/task/WrkMastSplitTwinInItScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WrkMastSplitTwinInItScheduler.java
@@ -12,6 +12,7 @@
 import com.zy.asrs.service.impl.BasDevpServiceImpl;
 import com.zy.asrs.service.impl.WrkMastServiceImpl;
 import com.zy.asrs.task.handler.WrkMastSplitTwinInItHandler;
+import com.zy.asrs.utils.LocAndStaCodeUtil;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.enums.CrnStnType;
 import com.zy.common.model.enums.WrkMastExecuteType;
@@ -56,7 +57,6 @@
     private void execute() {
         for (Integer crnNo : SplitTwin_CRN_NO) {
             try {
-                Date now = new Date();
                 List<Integer> integers = WrkMastExecuteType.get(crnNo);
                 BasCrnp basCrnp = basCrnpService.selectById(crnNo);
                 if (!Cools.isEmpty(basCrnp)) {
@@ -66,7 +66,7 @@
                     if (((basCrnp.getCrnStatusOne() > 0 && basCrnp.getCrnStatusOne() <= 3) || basCrnp.getCrnStatusOne() == 20) && basCrnp.getCrnStatusTwo() == 0) {//鍫嗗灈鏈哄伐浣�1鍙栬揣杩愯涓� //鍫嗗灈鏈哄伐浣�1鏈夌墿寰呬綔涓�
                         List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinService.getWrkMastSplitTwinNoComplete(crnNo, 1, null, null, 4);
                         if (wrkMastSplitTwinList.size() != 1){
-                            log.error("鍓嶅悗鍙屽伐浣嶆媶鍒嗗爢鍨涙満鎵ц浣滀笟鐢熸垚,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crnNo,"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",1);
+                            log.error("鍓嶅悗鍙屽伐浣嶆媶鍒嗗爢鍨涙満鎵ц浣滀笟鐢熸垚,浣滀笟鏁伴噺={},鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",wrkMastSplitTwinList.size(),crnNo,"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃缁存姢鎵ц浣滀笟锛侊紒锛�",1);
                             continue;
                         }
                         WrkMastSplitTwin wrkMastSplitTwin = wrkMastSplitTwinList.get(0);
@@ -75,7 +75,7 @@
                         }
                         wrkMastSplitTwinList = wrkMastSplitTwinService.getWrkMastSplitTwinNoComplete(crnNo, 2, null, null, 4);
                         if (wrkMastSplitTwinList.size() > 1){
-                            log.error("鍓嶅悗鍙屽伐浣嶆媶鍒嗗爢鍨涙満鎵ц浣滀笟鐢熸垚,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crnNo,"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",2);
+                            log.error("鍓嶅悗鍙屽伐浣嶆媶鍒嗗爢鍨涙満鎵ц浣滀笟鐢熸垚,浣滀笟鏁伴噺={},鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",wrkMastSplitTwinList.size(),crnNo,"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇风淮鎶ゆ墽琛屼綔涓氾紒锛侊紒",2);
                             continue;
                         } else if (wrkMastSplitTwinList.size()==1){
                             continue;
@@ -84,53 +84,24 @@
                             case 1:
                                 Integer count = basDevpService.selectWaitNecessary(integers,wrkMastSplitTwin.getWrkNo().intValue());
                                 if (basCrnp.getCrnStatusOne() != 20) {//鍫嗗灈鏈哄伐浣�1鏈夌墿寰呬綔涓�
-                                    continue;
+                                    break;
                                 }
                                 if (wrkMastSplitTwin.getWrkSts()!=2){
-                                    continue;
+                                    break;
                                 }
                                 if (count==0){
-
-                                    wrkMastSplitTwin.setWrkSts(4);
-                                    wrkMastSplitTwin.setUpdateTime(now);
-                                    wrkMastSplitTwinService.updateById(wrkMastSplitTwin);
-
-                                    WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMastSplitTwin);
-                                    wrkMastSplitTwinNew.setCreateTime(now);
-                                    wrkMastSplitTwinNew.setUpdateTime(now);
-                                    wrkMastSplitTwinNew.setWrkSts(0);
-                                    wrkMastSplitTwinNew.setWrkType(2);
-                                    wrkMastSplitTwinService.insert(wrkMastSplitTwinNew);
-                                }else {
-                                    BasDevp basDevp = basDevpService.selectById(CrnStnType.getDevNo(crnNo, true));
+                                    wrkMastSplitTwinInItHandler.start(wrkMastSplitTwin);
+                                    break;
+                                } else {
+                                    BasDevp basDevp = basDevpService.selectById(CrnStnType.getDevNo(crnNo, true));//鍏ュ簱绔欑偣
                                     if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()==0){
-                                        continue;
+                                        break;
                                     }
                                     WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
-                                    if (wrkMast.getIoType()>10 || wrkMast.getWrkSts()!=2){
-                                        continue;
+                                    if (wrkMast.getIoType()>100 || wrkMast.getWrkSts()!=2){
+                                        break;
                                     }
-                                    WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMast,2,now);
-                                    wrkMastSplitTwinNew.setWrkStart(wrkMast.getSourceLocNo());
-                                    wrkMastSplitTwinNew.setWrkEnd(wrkMast.getIoType()==11? wrkMast.getLocNo():wrkMast.getSourceStaNo().toString());
-                                    wrkMastSplitTwinNew.setStartRow(Utils.getRow(wrkMast.getSourceLocNo()));
-                                    wrkMastSplitTwinNew.setStartBay(Utils.getBay(wrkMast.getSourceLocNo()));
-                                    wrkMastSplitTwinNew.setStartLev(Utils.getLev(wrkMast.getSourceLocNo()));
-                                    int[] ints = new int[3];
-                                    if (wrkMast.getIoType()!=11){
-                                        ints = CrnStnType.get(wrkMast.getSourceStaNo());
-                                        if (ints == null){
-                                            log.error("鍓嶅悗鍙屽伐浣嶆媶鍒嗗爢鍨涙満鎵ц浣滀笟鐢熸垚,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綔鍙�={},绔欑偣鍙�={}",crnNo,"鏈煡绔欑偣鍙�",wrkMast.getSourceStaNo(),wrkMast.getSourceStaNo());
-                                            continue;
-                                        }
-                                    }
-                                    wrkMastSplitTwinNew.setEndRow(wrkMast.getIoType()==11? Utils.getRow(wrkMast.getLocNo()): ints[0]);
-                                    wrkMastSplitTwinNew.setEndBay(wrkMast.getIoType()==11? Utils.getBay(wrkMast.getLocNo()): ints[1]);
-                                    wrkMastSplitTwinNew.setEndLev(wrkMast.getIoType()==11? Utils.getLev(wrkMast.getLocNo()): ints[2]);
-                                    wrkMastSplitTwinNew.setWrkType(1);
-                                    wrkMastSplitTwinNew.setIoType(1);
-                                    wrkMastSplitTwinNew.setWrkSts(0);
-                                    wrkMastSplitTwinService.insert(wrkMastSplitTwinNew);
+                                    wrkMastSplitTwinInItHandler.start(wrkMastSplitTwin,wrkMast,2);
                                 }
                                 break;
                             case 2:
@@ -139,45 +110,19 @@
                                     wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 11L).eq("crn_no", crnNo));
                                     if (wrkMasts.isEmpty()){
                                         if (basCrnp.getCrnStatusOne() != 20) {//鍫嗗灈鏈哄伐浣�1鏈夌墿寰呬綔涓�
-                                            continue;
+                                            break;
                                         }
                                         if (wrkMastSplitTwin.getWrkSts()!=2){
-                                            continue;
+                                            break;
                                         }
-                                        wrkMastSplitTwin.setWrkSts(4);
-                                        wrkMastSplitTwin.setUpdateTime(now);
-                                        wrkMastSplitTwinService.updateById(wrkMastSplitTwin);
-
-                                        WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMastSplitTwin);
-                                        wrkMastSplitTwinNew.setCreateTime(now);
-                                        wrkMastSplitTwinNew.setUpdateTime(now);
-                                        wrkMastSplitTwinNew.setWrkSts(0);
-                                        wrkMastSplitTwinNew.setWrkType(2);
-                                        wrkMastSplitTwinService.insert(wrkMastSplitTwinNew);
+                                        wrkMastSplitTwinInItHandler.start(wrkMastSplitTwin);
+                                        break;
                                     }else {
                                         for (WrkMast wrkMast:wrkMasts){
-                                            WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMast,2,now);
-                                            wrkMastSplitTwinNew.setWrkStart(wrkMast.getSourceLocNo());
-                                            wrkMastSplitTwinNew.setWrkEnd(wrkMast.getIoType()==11? wrkMast.getLocNo():wrkMast.getSourceStaNo().toString());
-                                            wrkMastSplitTwinNew.setStartRow(Utils.getRow(wrkMast.getSourceLocNo()));
-                                            wrkMastSplitTwinNew.setStartBay(Utils.getBay(wrkMast.getSourceLocNo()));
-                                            wrkMastSplitTwinNew.setStartLev(Utils.getLev(wrkMast.getSourceLocNo()));
-                                            int[] ints = new int[3];
-                                            if (wrkMast.getIoType()!=11){
-                                                ints = CrnStnType.get(wrkMast.getSourceStaNo());
-                                                if (ints == null){
-                                                    log.error("鍓嶅悗鍙屽伐浣嶆媶鍒嗗爢鍨涙満鎵ц浣滀笟鐢熸垚,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綔鍙�={},绔欑偣鍙�={}",crnNo,"鏈煡绔欑偣鍙�",wrkMast.getSourceStaNo(),wrkMast.getSourceStaNo());
-                                                    continue;
-                                                }
-                                            }
-                                            wrkMastSplitTwinNew.setEndRow(wrkMast.getIoType()==11? Utils.getRow(wrkMast.getLocNo()): ints[0]);
-                                            wrkMastSplitTwinNew.setEndBay(wrkMast.getIoType()==11? Utils.getBay(wrkMast.getLocNo()): ints[1]);
-                                            wrkMastSplitTwinNew.setEndLev(wrkMast.getIoType()==11? Utils.getLev(wrkMast.getLocNo()): ints[2]);
-                                            wrkMastSplitTwinNew.setWrkType(1);
-                                            wrkMastSplitTwinNew.setIoType(2);
-                                            wrkMastSplitTwinNew.setWrkSts(0);
-                                            wrkMastSplitTwinService.insert(wrkMastSplitTwinNew);
+                                            wrkMastSplitTwinInItHandler.start(wrkMastSplitTwin,wrkMast,2);
+                                            break;
                                         }
+                                        break;
                                     }
                                 }
                                 break;
@@ -192,92 +137,42 @@
         }
     }
 
-//    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/3 * * * * ? ")
     private void executeTwo() {
         for (Integer crnNo : SplitTwin_CRN_NO) {
             try {
-                Date now = new Date();
-                List<Integer> integers = WrkMastExecuteType.get(crnNo);
                 BasCrnp basCrnp = basCrnpService.selectById(crnNo);
                 if (!Cools.isEmpty(basCrnp)) {
                     if (basCrnp.getWrkNo() == 0 && basCrnp.getCrnSts() != 3) {
                         continue;
                     }
-                    if (basCrnp.getCrnStatusOne() == 20 && basCrnp.getCrnStatusTwo() == 0) {//鍫嗗灈鏈哄伐浣�1鏈夌墿寰呬綔涓�
+                    if (basCrnp.getCrnStatusOne() == 20 && basCrnp.getCrnStatusTwo() == 20) {//鍫嗗灈鏈哄伐浣�1鏈夌墿寰呬綔涓�  宸ヤ綅2鏈夌墿寰呬綔涓�
                         List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinService.getWrkMastSplitTwinNoComplete(crnNo, 1, null, null, 4);
-                        if (wrkMastSplitTwinList.size() != 1){
-                            log.error("鍓嶅悗鍙屽伐浣嶆媶鍒嗗爢鍨涙満鎵ц浣滀笟鐢熸垚,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crnNo,"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",1);
+                        if (wrkMastSplitTwinList.isEmpty()){
+                            continue;
+                        }
+                        if (wrkMastSplitTwinList.size() > 1){
+                            log.error("鍓嶅悗鍙屽伐浣嶆媶鍒嗗爢鍨涙満鎵ц浣滀笟鐢熸垚,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crnNo,"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃缁存姢鎵ц浣滀笟锛侊紒锛�",1);
                             continue;
                         }
                         WrkMastSplitTwin wrkMastSplitTwin = wrkMastSplitTwinList.get(0);
-                        if (wrkMastSplitTwin.getWrkType()!=1){
+                        if (wrkMastSplitTwin.getWrkType()!=1 || wrkMastSplitTwin.getWrkSts()!=2){//宸ヤ綔绫诲瀷 0: 鏈煡  1: 鍙�  2: 鏀�  3: 鍙栨斁  4: 瀹屾垚
                             continue;
                         }
-                        wrkMastSplitTwinList = wrkMastSplitTwinService.getWrkMastSplitTwinNoComplete(crnNo, 2, null, null, 4);
-                        if (wrkMastSplitTwinList.size() > 1){
-                            log.error("鍓嶅悗鍙屽伐浣嶆媶鍒嗗爢鍨涙満鎵ц浣滀笟鐢熸垚,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crnNo,"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",2);
-                            continue;
-                        } else if (wrkMastSplitTwinList.size()==1){
+                        List<WrkMastSplitTwin> wrkMastSplitTwinListTwo = wrkMastSplitTwinService.getWrkMastSplitTwinNoComplete(crnNo, 2, null, null, 4);
+                        if (wrkMastSplitTwinListTwo.isEmpty()){
                             continue;
                         }
-                        switch (wrkMastSplitTwin.getIoType()){
-                            case 1:
-                                Integer count = basDevpService.selectWaitNecessary(integers,wrkMastSplitTwin.getWrkNo().intValue());
-                                if (count!=0){
-
-                                }
-                                break;
-                            case 2:
-                                List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 12L).eq("crn_no", crnNo));
-                                if (wrkMasts.size()==1){
-                                    wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 11L).eq("crn_no", crnNo));
-                                    if (wrkMasts.isEmpty()){
-                                        if (basCrnp.getCrnStatusOne() != 20) {//鍫嗗灈鏈哄伐浣�1鏈夌墿寰呬綔涓�
-                                            continue;
-                                        }
-                                        if (wrkMastSplitTwin.getWrkSts()!=2){
-                                            continue;
-                                        }
-                                        wrkMastSplitTwin.setWrkSts(4);
-                                        wrkMastSplitTwin.setUpdateTime(now);
-                                        wrkMastSplitTwinService.updateById(wrkMastSplitTwin);
-
-                                        WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMastSplitTwin);
-                                        wrkMastSplitTwinNew.setCreateTime(now);
-                                        wrkMastSplitTwinNew.setUpdateTime(now);
-                                        wrkMastSplitTwinNew.setWrkSts(0);
-                                        wrkMastSplitTwinNew.setWrkType(2);
-                                        wrkMastSplitTwinService.insert(wrkMastSplitTwinNew);
-                                    }else {
-                                        for (WrkMast wrkMast:wrkMasts){
-                                            WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMast,2,now);
-                                            wrkMastSplitTwinNew.setWrkStart(wrkMast.getSourceLocNo());
-                                            wrkMastSplitTwinNew.setWrkEnd(wrkMast.getIoType()==11? wrkMast.getLocNo():wrkMast.getSourceStaNo().toString());
-                                            wrkMastSplitTwinNew.setStartRow(Utils.getRow(wrkMast.getSourceLocNo()));
-                                            wrkMastSplitTwinNew.setStartBay(Utils.getBay(wrkMast.getSourceLocNo()));
-                                            wrkMastSplitTwinNew.setStartLev(Utils.getLev(wrkMast.getSourceLocNo()));
-                                            int[] ints = new int[3];
-                                            if (wrkMast.getIoType()!=11){
-                                                ints = CrnStnType.get(wrkMast.getSourceStaNo());
-                                                if (ints == null){
-                                                    log.error("鍓嶅悗鍙屽伐浣嶆媶鍒嗗爢鍨涙満鎵ц浣滀笟鐢熸垚,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綔鍙�={},绔欑偣鍙�={}",crnNo,"鏈煡绔欑偣鍙�",wrkMast.getSourceStaNo(),wrkMast.getSourceStaNo());
-                                                    continue;
-                                                }
-                                            }
-                                            wrkMastSplitTwinNew.setEndRow(wrkMast.getIoType()==11? Utils.getRow(wrkMast.getLocNo()): ints[0]);
-                                            wrkMastSplitTwinNew.setEndBay(wrkMast.getIoType()==11? Utils.getBay(wrkMast.getLocNo()): ints[1]);
-                                            wrkMastSplitTwinNew.setEndLev(wrkMast.getIoType()==11? Utils.getLev(wrkMast.getLocNo()): ints[2]);
-                                            wrkMastSplitTwinNew.setWrkType(0);
-                                            wrkMastSplitTwinNew.setIoType(1);
-                                            wrkMastSplitTwinNew.setWrkSts(0);
-                                            wrkMastSplitTwinService.insert(wrkMastSplitTwinNew);
-                                        }
-                                    }
-                                }
-                                break;
-                            default:
-                                log.error("鍓嶅悗鍙屽伐浣嶆媶鍒嗗爢鍨涙満鎵ц浣滀笟鐢熸垚,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crnNo,"浠诲姟绫诲瀷鏈煡",1,1,1);
+                        if (wrkMastSplitTwinListTwo.size() > 1){
+                            log.error("鍓嶅悗鍙屽伐浣嶆媶鍒嗗爢鍨涙満鎵ц浣滀笟鐢熸垚,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crnNo,"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃缁存姢鎵ц浣滀笟锛侊紒锛�",2);
+                            continue;
                         }
+                        WrkMastSplitTwin wrkMastSplitTwinTwo = wrkMastSplitTwinListTwo.get(0);
+                        if (wrkMastSplitTwinTwo.getWrkType()!=1 || wrkMastSplitTwinTwo.getWrkSts()!=2){//宸ヤ綔绫诲瀷 0: 鏈煡  1: 鍙�  2: 鏀�  3: 鍙栨斁  4: 瀹屾垚   //宸ヤ綔鐘舵�� 0: 鍒濆  1: 绛夊緟鍙栬揣瀹屾垚  2: 鍙栬揣瀹屾垚寰呬綔涓�  3: 绛夊緟鏀捐揣瀹屾垚  4: 瀹屾垚
+                            continue;
+                        }
+                        wrkMastSplitTwinInItHandler.start(wrkMastSplitTwin);
+                        wrkMastSplitTwinInItHandler.start(wrkMastSplitTwinTwo);
                     }
                 }
             } catch (Exception e) {
diff --git a/src/main/java/com/zy/asrs/task/handler/WrkMastSplitTwinInItHandler.java b/src/main/java/com/zy/asrs/task/handler/WrkMastSplitTwinInItHandler.java
index 8f879a8..722738b 100644
--- a/src/main/java/com/zy/asrs/task/handler/WrkMastSplitTwinInItHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WrkMastSplitTwinInItHandler.java
@@ -1,13 +1,12 @@
 package com.zy.asrs.task.handler;
 
-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.WrkMastStaService;
+import com.zy.asrs.entity.WrkMastSplitTwin;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.WrkMastSplitTwinService;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.utils.LocAndStaCodeUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -24,61 +23,67 @@
 @Transactional
 public class WrkMastSplitTwinInItHandler extends AbstractHandler<String> {
     @Autowired
-    private WrkMastStaService wrkMastStaService;
+    private WrkMastSplitTwinService wrkMastSplitTwinService;
+    @Autowired
+    private WrkMastService wrkMastService;
 
-    public ReturnT<String> start(WrkMast wrkMast,BasDevp basDevp,Integer type) {
+    public ReturnT<String> start(WrkMastSplitTwin wrkMastSplitTwin) {  //鍙栬揣浠诲姟瀹屾垚  鏀捐揣
         try {
-            WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkMast.getWrkNo().longValue()));
-            if (!Cools.isEmpty(wrkMastSta)){
-                return SUCCESS;
-            }
-            switch (type){
-                case 13://鍑�  3锛氬彇鏀�
-                    if (Cools.isEmpty(wrkMastSta)){
-                        WrkMastSta wrkMastSta1 = new WrkMastSta(wrkMast,new Date(),basDevp);
-                        wrkMastSta1.setType(1);      //绫诲瀷 1:闈炵┖  2:绌烘澘
-                        wrkMastSta1.setWrkType(3);                    //宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  3锛氬彇鏀� 5锛氭弧鍙�  6锛氭弧鏀�
-                        wrkMastStaService.insert(wrkMastSta1);
-                    }
-                    break;
-                case 21://1:鍙栵紙鍙犵洏锛�
-                    if (Cools.isEmpty(wrkMastSta)){
-                        WrkMastSta wrkMastSta1 = new WrkMastSta(wrkMast,new Date(),basDevp);
-                        wrkMastSta1.setType(fullKM(wrkMast)? 1:2);
-                        wrkMastSta1.setWrkType(1);//宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  3锛氬彇鏀� 5锛氭弧鍙�  6锛氭弧鏀�
-                        wrkMastStaService.insert(wrkMastSta1);
-                    };
-                    break;
-                case 22://2锛氭斁(鎷嗙洏)
-                    if (Cools.isEmpty(wrkMastSta)){
-                        WrkMastSta wrkMastSta1 = new WrkMastSta(wrkMast,new Date(),basDevp);
-                        wrkMastSta1.setType(fullKM(wrkMast)? 1:2);
-                        wrkMastSta1.setWrkType(5);//宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  3锛氬彇鏀� 5锛氭弧鍙�  6锛氭弧鏀�
-                        wrkMastStaService.insert(wrkMastSta1);
-                    };
-                    break;
-                case 23://3锛氭弧鍙�
-                    if (Cools.isEmpty(wrkMastSta)){
-                        WrkMastSta wrkMastSta1 = new WrkMastSta(wrkMast,new Date(),basDevp);
-                        wrkMastSta1.setType(fullKM(wrkMast)? 1:2);
-                        wrkMastSta1.setWrkType(5);
-                        wrkMastStaService.insert(wrkMastSta1);
-                    }
-                default:
-                    return SUCCESS;
-            }
+            Date now = new Date();
+            WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMastSplitTwin);
 
+            wrkMastSplitTwin.setWrkSts(4);//宸ヤ綔鐘舵�� 0: 鍒濆  1: 绛夊緟鍙栬揣瀹屾垚  2: 鍙栬揣瀹屾垚寰呬綔涓�  3: 绛夊緟鏀捐揣瀹屾垚  4: 瀹屾垚
+            wrkMastSplitTwin.setUpdateTime(now);
+            wrkMastSplitTwinService.updateById(wrkMastSplitTwin);
+
+            wrkMastSplitTwinNew.setCreateTime(now);
+            wrkMastSplitTwinNew.setUpdateTime(now);
+            wrkMastSplitTwinNew.setWrkSts(0);//宸ヤ綔鐘舵�� 0: 鍒濆  1: 绛夊緟鍙栬揣瀹屾垚  2: 鍙栬揣瀹屾垚寰呬綔涓�  3: 绛夊緟鏀捐揣瀹屾垚  4: 瀹屾垚
+            wrkMastSplitTwinNew.setWrkType(2);//宸ヤ綔绫诲瀷 0: 鏈煡  1: 鍙�  2: 鏀�  3: 鍙栨斁  4: 瀹屾垚
+            wrkMastSplitTwinService.insert(wrkMastSplitTwinNew);
         }catch (Exception e){
-            log.error("寮傚父锛侊紒锛�"+e);
+            log.error("鍓嶅悗鍙屽伐浣嶆媶鍒嗗爢鍨涙満鎵ц浣滀笟鐢熸垚寮傚父锛侊紒锛�"+e.getMessage());
             return FAIL;
         }
         return SUCCESS;
     }
 
-    public boolean fullKM(WrkMast wrkMast){
-        if (wrkMast.getIoType()!=10 && wrkMast.getIoType()!=110){
-            return true;
+    public ReturnT<String> start(WrkMastSplitTwin wrkMastSplitTwin,WrkMast wrkMast,Integer crnStation) {  //鍙栬揣浠诲姟瀹屾垚  鏀捐揣
+        try {
+            Date now = new Date();
+            WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMast,crnStation,now);
+            switch (wrkMastSplitTwin.getIoType()){
+                case 1:
+                    wrkMastSplitTwinNew.setWrkStart(wrkMast.getStaNo().toString());
+                    wrkMastSplitTwinNew.setWrkEnd(wrkMast.getLocNo());
+                    break;
+                case 2:
+                    wrkMastSplitTwinNew.setWrkStart(wrkMast.getSourceLocNo());
+                    wrkMastSplitTwinNew.setWrkEnd(wrkMast.getIoType()==11? wrkMast.getLocNo():wrkMast.getSourceStaNo().toString());
+                    break;
+                default:
+                    log.error("鍓嶅悗鍙屽伐浣嶆媶鍒嗗爢鍨涙満鎵ц浣滀笟鐢熸垚寮傚父锛侊紒锛�====>宸ヤ綔鍙�={},浠诲姟绫诲瀷={},浠诲姟绫诲瀷寮傚父锛�",wrkMastSplitTwin.getWrkNo(),wrkMastSplitTwin.getIoType$());
+                    return FAIL;
+            }
+            wrkMastSplitTwinNew.setStartRow(LocAndStaCodeUtil.getRow(wrkMastSplitTwin.getWrkStart()));
+            wrkMastSplitTwinNew.setStartBay(LocAndStaCodeUtil.getBay(wrkMastSplitTwin.getWrkStart()));
+            wrkMastSplitTwinNew.setStartLev(LocAndStaCodeUtil.getLev(wrkMastSplitTwin.getWrkStart()));
+            wrkMastSplitTwinNew.setEndRow(LocAndStaCodeUtil.getRow(wrkMastSplitTwin.getWrkStart()));
+            wrkMastSplitTwinNew.setEndBay(LocAndStaCodeUtil.getBay(wrkMastSplitTwin.getWrkStart()));
+            wrkMastSplitTwinNew.setEndLev(LocAndStaCodeUtil.getLev(wrkMastSplitTwin.getWrkStart()));
+            wrkMastSplitTwinNew.setWrkType(1);//宸ヤ綔绫诲瀷 0: 鏈煡  1: 鍙�  2: 鏀�  3: 鍙栨斁  4: 瀹屾垚
+            wrkMastSplitTwinNew.setIoType(wrkMastSplitTwin.getIoType());//浠诲姟绫诲瀷 0: 鏈煡  1: 鍏ュ簱  2: 鍑哄簱
+            wrkMastSplitTwinNew.setWrkSts(0);//宸ヤ綔鐘舵�� 0: 鍒濆  1: 绛夊緟鍙栬揣瀹屾垚  2: 鍙栬揣瀹屾垚寰呬綔涓�  3: 绛夊緟鏀捐揣瀹屾垚  4: 瀹屾垚
+            wrkMastSplitTwinService.insert(wrkMastSplitTwinNew);
+
+            wrkMast.setWrkSts(wrkMast.getWrkSts()+1);
+            wrkMast.setAppeTime(now);
+            wrkMastService.updateById(wrkMast);
+        }catch (Exception e){
+            log.error("鍓嶅悗鍙屽伐浣嶆媶鍒嗗爢鍨涙満鎵ц浣滀笟鐢熸垚寮傚父锛侊紒锛�"+e.getMessage());
+            return FAIL;
         }
-        return false;
+        return SUCCESS;
     }
+
 }
diff --git a/src/main/java/com/zy/asrs/utils/CodeDetectionUtil.java b/src/main/java/com/zy/asrs/utils/CodeDetectionUtil.java
new file mode 100644
index 0000000..22afa1f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/utils/CodeDetectionUtil.java
@@ -0,0 +1,38 @@
+package com.zy.asrs.utils;
+
+import java.util.regex.Pattern;
+
+public class CodeDetectionUtil {
+
+    /**
+     * 妫�娴嬭揣鏋剁爜
+     */
+    public static boolean barcodeDetection(String barcode,int code){
+        Pattern pattern = Pattern.compile("\\d{"+code+"}");//浣嶆暟瀛�
+        return pattern.matcher(barcode).matches();
+    }
+
+    /**
+     * 妫�娴嬪皬杞﹀湴鐮�
+     */
+    public static boolean carCodeDetection(String carCode){
+        return carCode.contains("_");
+    }
+
+    public static void main(String[] args) {
+        System.out.println("barcodeDetection:"+"22222222===>"+barcodeDetection("22222222",7));
+        System.out.println("barcodeDetection:"+"222222===>"+barcodeDetection("222222",7));
+        System.out.println("barcodeDetection:"+"111===>"+barcodeDetection("111",7));
+        System.out.println("barcodeDetection:"+"DB_123ss===>"+barcodeDetection("DB_123ss",7));
+        System.out.println("barcodeDetection:"+"12_1231===>"+barcodeDetection("12_1231",7));
+        System.out.println("barcodeDetection:"+"DB_123456===>"+barcodeDetection("DB_123456",7));
+
+        System.out.println("carCodeDetection:"+"22222222===>"+carCodeDetection("22222222"));
+        System.out.println("carCodeDetection:"+"222222===>"+carCodeDetection("222222"));
+        System.out.println("carCodeDetection:"+"111===>"+carCodeDetection("111"));
+        System.out.println("carCodeDetection:"+"DB_123ss===>"+carCodeDetection("DB_123ss"));
+        System.out.println("carCodeDetection:"+"12_1231===>"+carCodeDetection("12_1231"));
+        System.out.println("carCodeDetection:"+"DB_123456===>"+carCodeDetection("DB_123456"));
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/utils/LocAndStaCodeUtil.java b/src/main/java/com/zy/asrs/utils/LocAndStaCodeUtil.java
new file mode 100644
index 0000000..858443f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/utils/LocAndStaCodeUtil.java
@@ -0,0 +1,52 @@
+package com.zy.asrs.utils;
+
+import com.core.common.Cools;
+import com.zy.common.model.enums.CrnStnType;
+
+import java.util.Objects;
+
+public class LocAndStaCodeUtil {
+
+    /**
+     * 閫氳繃搴撲綅鍙疯幏鍙� 鎺�
+     */
+    public static int getRow(String parameter) {
+        if (!Cools.isEmpty(parameter)) {
+            if (CodeDetectionUtil.barcodeDetection(parameter,7)){
+                return Integer.parseInt(parameter.substring(0, 2));
+            } else if (CodeDetectionUtil.barcodeDetection(parameter,3)){
+                return Objects.requireNonNull(CrnStnType.get(Integer.parseInt(parameter)))[0];
+            }
+        }
+        throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+    }
+
+    /**
+     * 閫氳繃搴撲綅鍙疯幏鍙� 鍒�
+     */
+    public static int getBay(String parameter) {
+        if (!Cools.isEmpty(parameter)) {
+            if (CodeDetectionUtil.barcodeDetection(parameter,7)){
+                return Integer.parseInt(parameter.substring(2, 5));
+            } else if (CodeDetectionUtil.barcodeDetection(parameter,3)){
+                return Objects.requireNonNull(CrnStnType.get(Integer.parseInt(parameter)))[1];
+            }
+        }
+        throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+    }
+
+    /**
+     * 閫氳繃搴撲綅鍙疯幏鍙� 灞�
+     */
+    public static int getLev(String parameter) {
+        if (!Cools.isEmpty(parameter)) {
+            if (CodeDetectionUtil.barcodeDetection(parameter,7)){
+                return Integer.parseInt(parameter.substring(5, 7));
+            } else if (CodeDetectionUtil.barcodeDetection(parameter,3)){
+                return Objects.requireNonNull(CrnStnType.get(Integer.parseInt(parameter)))[2];
+            }
+        }
+        throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+    }
+
+}

--
Gitblit v1.9.1