From 7e11c0b06cb884c5748dc8e522a67e20c9b00d52 Mon Sep 17 00:00:00 2001
From: LSH <1>
Date: 星期日, 16 六月 2024 14:56:03 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  227 ++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 144 insertions(+), 83 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 7c79839..d595267 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -32,6 +32,7 @@
 import com.zy.core.model.command.CrnCommand;
 import com.zy.core.model.command.LedCommand;
 import com.zy.core.model.command.RgvCommand;
+import com.zy.core.model.cpmmandParam.CrnCommandParam;
 import com.zy.core.model.protocol.CrnProtocol;
 import com.zy.core.model.protocol.RgvProtocol;
 import com.zy.core.model.protocol.StaProtocol;
@@ -109,7 +110,8 @@
 
     @Value("${wms.url}")
     private String wmsUrl;
-    private WrkMastSplitTwinServiceImpl wrkMastSplitTwinService;
+    @Autowired
+    private WrkMastSplitTwinService wrkMastSplitTwinService;
 
     /**
      * 缁勬墭
@@ -1408,7 +1410,7 @@
                             && crnProtocol.getLoaded()==0) {
                         List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(wrkMast.getCrnNo(), conStation, null, 2, 3);
                         if (wrkMastSplitTwinList.size()!=1){
-                            log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",conStation,2,3);
+                            log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",conStation,2,3);
                         }
                         for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                             if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
@@ -1453,7 +1455,7 @@
                             && crnProtocol.getLoadedTwo()==0) {
                         List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(wrkMast.getCrnNo(), conStation, null, 2, 3);
                         if (wrkMastSplitTwinList.size()!=1){
-                            log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",conStation,2,3);
+                            log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",conStation,2,3);
                         }
                         for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                             if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
@@ -1696,8 +1698,6 @@
                             && crnProtocol.getTaskNo() == 0
                             && crnProtocol.getLoaded() == 0
                             && crnProtocol.getForkPos() == 0) {
-//                        sign[0] = 1;
-//                        sign[1] = 1;
                         /*
                         * 浠诲姟鎷嗗垎鐗规畩澶勭悊
                         * */
@@ -1708,16 +1708,10 @@
                             sign[0] = 1;
                             sign[1] = 1;
                         }
-                    }else if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
-                            && crnProtocol.getTaskNoTwo() == 0
-                            && crnProtocol.getLoadedTwo() == 0
-                            && crnProtocol.getForkPosTwo() == 0){
-                        sign[0] = 1;
-                        sign[1] = 2;
                     }
                 }
 
-                if (sign[0]==1 && sign[1] == 1){
+                if (sign[0]==1){
                     // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
                     if (crnProtocol.getLastIo().equals("I")) {
                         if (basCrnp.getInEnable().equals("Y")) {
@@ -3072,47 +3066,93 @@
 //                        return;
                 }
 
-                // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
-                CrnCommand crnCommand = new CrnCommand();
-                crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-                crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-                crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-                crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡:  鍗曞彇璐�
-                crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
-                crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
-                crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
-                crnCommand.setDestinationPosX((short)0);     // 鐩爣搴撲綅鎺�
-                crnCommand.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
-                crnCommand.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
-                if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
-                    log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
-                } else {
-                    // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
-                    Date now = new Date();
-                    wrkMast.setWrkSts(12L);
-                    wrkMast.setCrnStrTime(now);
-                    wrkMast.setModiTime(now);
-                    WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,crnStation,now);
-                    wrkMastSplitTwin.setWrkSts(1);
-                    wrkMastSplitTwin.setWrkStart(wrkMast.getSourceLocNo());
-                    wrkMastSplitTwin.setWrkEnd(wrkMast.getSourceStaNo().toString());
-                    wrkMastSplitTwin.setStartRow(sourceSta.getRow1());
-                    wrkMastSplitTwin.setStartBay(sourceSta.getBay1());
-                    wrkMastSplitTwin.setStartLev(sourceSta.getLev1());
-                    wrkMastSplitTwin.setEndRow(crnStn.getRow());
-                    wrkMastSplitTwin.setEndBay(crnStn.getBay());
-                    wrkMastSplitTwin.setEndLev(crnStn.getLev());
-                    wrkMastSplitTwin.setWrkType(1);
-                    wrkMastSplitTwin.setIoType(2);
-                    if (wrkMastMapper.updateById(wrkMast) == 0) {
-                        log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-                    }
+                if (true){
+                    // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+                    CrnCommand crnCommand = new CrnCommand();
+                    crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+                    crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+                    crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+                    crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡:  鍗曞彇璐�
+                    crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
+                    crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
+                    crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
+                    crnCommand.setDestinationPosX((short)0);     // 鐩爣搴撲綅鎺�
+                    crnCommand.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
+                    crnCommand.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
+                    if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
+                        log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+                    } else {
+                        // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+                        Date now = new Date();
+                        wrkMast.setWrkSts(12L);
+                        wrkMast.setCrnStrTime(now);
+                        wrkMast.setModiTime(now);
+                        WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,crnStation,now);
+                        wrkMastSplitTwin.setWrkSts(1);
+                        wrkMastSplitTwin.setWrkStart(wrkMast.getSourceLocNo());
+                        wrkMastSplitTwin.setWrkEnd(wrkMast.getSourceStaNo().toString());
+                        wrkMastSplitTwin.setStartRow(sourceSta.getRow1());
+                        wrkMastSplitTwin.setStartBay(sourceSta.getBay1());
+                        wrkMastSplitTwin.setStartLev(sourceSta.getLev1());
+                        wrkMastSplitTwin.setEndRow(crnStn.getRow());
+                        wrkMastSplitTwin.setEndBay(crnStn.getBay());
+                        wrkMastSplitTwin.setEndLev(crnStn.getLev());
+                        wrkMastSplitTwin.setWrkType(1);
+                        wrkMastSplitTwin.setIoType(2);
+                        if (wrkMastMapper.updateById(wrkMast) == 0) {
+                            log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                        }
 
-                    if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){
-                        log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo());
+                        if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){
+                            log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo());
+                        }
+                        break;
                     }
-                    break;
                 }
+//                else {
+//                    // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+//                    CrnCommandParam crnCommandParam = new CrnCommandParam();
+//                    CrnCommand crnCommand = new CrnCommand();
+//                    crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+//                    crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+//                    crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+//                    crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡:  鍗曞彇璐�
+//                    crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
+//                    crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
+//                    crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
+//                    crnCommand.setDestinationPosX((short)0);     // 鐩爣搴撲綅鎺�
+//                    crnCommand.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
+//                    crnCommand.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
+//                    if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
+//                        log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+//                    } else {
+//                        // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+//                        Date now = new Date();
+//                        wrkMast.setWrkSts(12L);
+//                        wrkMast.setCrnStrTime(now);
+//                        wrkMast.setModiTime(now);
+//                        WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,crnStation,now);
+//                        wrkMastSplitTwin.setWrkSts(1);
+//                        wrkMastSplitTwin.setWrkStart(wrkMast.getSourceLocNo());
+//                        wrkMastSplitTwin.setWrkEnd(wrkMast.getSourceStaNo().toString());
+//                        wrkMastSplitTwin.setStartRow(sourceSta.getRow1());
+//                        wrkMastSplitTwin.setStartBay(sourceSta.getBay1());
+//                        wrkMastSplitTwin.setStartLev(sourceSta.getLev1());
+//                        wrkMastSplitTwin.setEndRow(crnStn.getRow());
+//                        wrkMastSplitTwin.setEndBay(crnStn.getBay());
+//                        wrkMastSplitTwin.setEndLev(crnStn.getLev());
+//                        wrkMastSplitTwin.setWrkType(1);
+//                        wrkMastSplitTwin.setIoType(2);
+//                        if (wrkMastMapper.updateById(wrkMast) == 0) {
+//                            log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+//                        }
+//
+//                        if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){
+//                            log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo());
+//                        }
+//                        break;
+//                    }
+//                }
             }
         }
 
@@ -3454,7 +3494,7 @@
                     // 鍫嗗灈鏈哄浣�
                     List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 1, null, 2, 3);
                     if (wrkMastSplitTwinList.size()!=1){
-                        log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",1,2,3);
+                        log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",1,2,3);
                     }
                     for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                         if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
@@ -3487,7 +3527,7 @@
                 } else {
                     List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 1, null, 1, 1);
                     if (wrkMastSplitTwinList.size()!=1){
-                        log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",1,1,1);
+                        log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",1,1,1);
                     }
                     for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                         Date now = new Date();
@@ -3607,7 +3647,7 @@
                     // 鍫嗗灈鏈哄浣�
                     List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 2, null, 2, 3);
                     if (wrkMastSplitTwinList.size()!=1){
-                        log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",2,2,3);
+                        log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",2,2,3);
                     }
                     for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                         if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
@@ -3639,7 +3679,7 @@
                 } else {
                     List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 2, null, 1, 1);
                     if (wrkMastSplitTwinList.size()!=1){
-                        log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",2,1,1);
+                        log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",2,1,1);
                     }
                     for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                         Date now = new Date();
@@ -6235,14 +6275,14 @@
     /**
      * 鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
      */
-    public synchronized void crnIoExecuteTwoExecute() {
+    public synchronized void crnIoExecuteTwoExecute(Integer i) {
         for (CrnSlave crn : slaveProperties.getCrn()) {
             try{
                 switch (crn.getId()){
                     case 3:
                     case 4:
                     case 5:
-                        crnWrkMastSplitTwinExecute(crn);
+                        crnWrkMastSplitTwinExecute(crn,i);
                         continue;
                     default:
                         continue;
@@ -6254,7 +6294,7 @@
     }
 
 
-    public synchronized boolean crnWrkMastSplitTwinExecute(CrnSlave crn){
+    public synchronized boolean crnWrkMastSplitTwinExecute(CrnSlave crn,Integer i){
         try{
             // 鑾峰彇鍫嗗灈鏈轰俊鎭�
             CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
@@ -6273,40 +6313,61 @@
             // 鍙湁褰撳爢鍨涙満鑷姩鏃舵墠缁х画鎵ц
             if (crnProtocol.getModeType() == CrnModeType.AUTO) {
                 // 鍙湁褰撳爢鍨涙満宸ヤ綅1鍙栬揣鎴栬�呮湁鐗� 骞朵笖 宸ヤ綅2鏃犱换鍔℃椂鎵嶇户缁墽琛�
-                if (crnProtocol.getStatusType() == CrnStatusType.IDLE
-                        && crnProtocol.getTaskNo() == 0
-                        && crnProtocol.getLoaded() == 0
-                        && crnProtocol.getForkPos() == 0) {
-                    sign[0] = 1;
-                    sign[1] = 1;
-                } else if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
-                        && crnProtocol.getTaskNoTwo() == 0
-                        && crnProtocol.getLoadedTwo() == 0
-                        && crnProtocol.getForkPosTwo() == 0){
-                    sign[0] = 1;
-                    sign[1] = 2;
-                } else if (crnProtocol.getStatusType() == CrnStatusType.SEPARATE_IDLE
-                        && crnProtocol.getTaskNo() == 0
-                        && crnProtocol.getLoaded() == 1
-                        && crnProtocol.getForkPos() == 0) {
-                    sign[0] = 2;
-                    sign[1] = 1;
-                } else if (crnProtocol.getStatusTypeTwo() == CrnStatusType.SEPARATE_IDLE
-                        && crnProtocol.getTaskNoTwo() == 0
-                        && crnProtocol.getLoadedTwo() == 1
-                        && crnProtocol.getForkPosTwo() == 0){
-                    sign[0] = 2;
-                    sign[1] = 2;
+                switch (i){
+                    case 1:
+                        if (crnProtocol.getStatusType() == CrnStatusType.IDLE
+                                && crnProtocol.getTaskNo() == 0
+                                && crnProtocol.getLoaded() == 0
+                                && crnProtocol.getForkPos() == 0) {
+                            sign[0] = 1;
+                            sign[1] = 1;
+                        }
+                        break;
+                    case 2:
+                        if (crnProtocol.getStatusType() == CrnStatusType.SEPARATE_IDLE
+                                && crnProtocol.getTaskNo() == 0
+                                && crnProtocol.getLoaded() == 1
+                                && crnProtocol.getForkPos() == 0) {
+                            sign[0] = 2;
+                            sign[1] = 1;
+                        }
+                        break;
+                    case 3:
+                        if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
+                                && crnProtocol.getTaskNoTwo() == 0
+                                && crnProtocol.getLoadedTwo() == 0
+                                && crnProtocol.getForkPosTwo() == 0){
+                            sign[0] = 1;
+                            sign[1] = 2;
+                        }
+                        break;
+                    case 4:
+                        if (crnProtocol.getStatusTypeTwo() == CrnStatusType.SEPARATE_IDLE
+                                && crnProtocol.getTaskNoTwo() == 0
+                                && crnProtocol.getLoadedTwo() == 1
+                                && crnProtocol.getForkPosTwo() == 0){
+                            sign[0] = 2;
+                            sign[1] = 2;
+                        }
+                        break;
+                    default:
                 }
             }
 
             if (sign[0]!=0){
                 List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinService.getWrkMastSplitTwin(crn.getId(),sign[1],null,sign[0],0);
-                if (wrkMastSplitTwinList.size()!=1){
+                if (wrkMastSplitTwinList.size()>1){
                     log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={}",crn.getId(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",sign[1],sign[0]);
+                    return false;
                 }
                 for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
-                    return sign[0] == 1? crnExecuteTakeFull(crn.getId(), wrkMastSplitTwin, sign[1]) : crnExecutePutFull(crn.getId(), wrkMastSplitTwin, sign[1]);
+                    boolean ack = sign[0] == 1 ? crnExecuteTakeFull(crn.getId(), wrkMastSplitTwin, sign[1]) : crnExecutePutFull(crn.getId(), wrkMastSplitTwin, sign[1]);
+                    if (ack){
+                        wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkType()==1? 1:3);
+                        wrkMastSplitTwinService.updateById(wrkMastSplitTwin);
+                    }else {
+                        log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂鎶ラ敊,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={}",crn.getId(),"涓嬪彂浠诲姟杩斿洖鍊间负锛�"+ack);
+                    }
                 }
             }
         }catch (Exception e){

--
Gitblit v1.9.1