From a4fdbb852841fcc9bcc78676e4551efcff384494 Mon Sep 17 00:00:00 2001
From: LSH <1>
Date: 星期六, 08 六月 2024 11:17:43 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  120 +++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 71 insertions(+), 49 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 5a41296..64ccc7f 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -109,7 +109,8 @@
 
     @Value("${wms.url}")
     private String wmsUrl;
-    private WrkMastSplitTwinServiceImpl wrkMastSplitTwinService;
+    @Autowired
+    private WrkMastSplitTwinService wrkMastSplitTwinService;
 
     /**
      * 缁勬墭
@@ -1406,13 +1407,13 @@
                             && crnProtocol.statusType == CrnStatusType.WAITING
                             && crnProtocol.forkPosType == CrnForkPosType.HOME
                             && crnProtocol.getLoaded()==0) {
-                        List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(wrkMast.getCrnNo(), 1, null, 2, 3);
-                        if (!wrkMastSplitTwinList.isEmpty() && wrkMastSplitTwinList.size()!=1){
-                            log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",1,2,3);
+                        List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(wrkMast.getCrnNo(), conStation, null, 2, 3);
+                        if (wrkMastSplitTwinList.size()!=1){
+                            log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",conStation,2,3);
                         }
                         for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                             if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
-                                log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={},宸ヤ綔浠诲姟鍙�={},鎵ц浠诲姟鍙�={}",wrkMast.getCrnNo(),"宸ヤ綔浠诲姟涓庢墽琛屼换鍔′笉鍖归厤",1,2,3,wrkMast.getWrkNo(),wrkMastSplitTwin.getWrkNo());
+                                log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={},宸ヤ綔浠诲姟鍙�={},鎵ц浠诲姟鍙�={}",wrkMast.getCrnNo(),"宸ヤ綔浠诲姟涓庢墽琛屼换鍔′笉鍖归厤",conStation,2,3,wrkMast.getWrkNo(),wrkMastSplitTwin.getWrkNo());
                                 return false;
                             }
                             // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
@@ -1434,7 +1435,7 @@
                                     crnThread.setResetFlag(true);
                                     return true;
                                 }else {
-                                    log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"淇敼鎵ц妗f澶辫触",1,2,3);
+                                    log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"淇敼鎵ц妗f澶辫触",conStation,2,3);
                                 }
                             } else {
                                 log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
@@ -1451,20 +1452,20 @@
                             && crnProtocol.statusTypeTwo == CrnStatusType.WAITING
                             && crnProtocol.forkPosTypeTwo == CrnForkPosType.HOME
                             && crnProtocol.getLoadedTwo()==0) {
-                        List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(wrkMast.getCrnNo(), 1, null, 2, 3);
-                        if (!wrkMastSplitTwinList.isEmpty() && wrkMastSplitTwinList.size()!=1){
-                            log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",1,2,3);
+                        List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(wrkMast.getCrnNo(), conStation, null, 2, 3);
+                        if (wrkMastSplitTwinList.size()!=1){
+                            log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",conStation,2,3);
                         }
                         for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                             if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
-                                log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={},宸ヤ綔浠诲姟鍙�={},鎵ц浠诲姟鍙�={}",wrkMast.getCrnNo(),"宸ヤ綔浠诲姟涓庢墽琛屼换鍔′笉鍖归厤",1,2,3,wrkMast.getWrkNo(),wrkMastSplitTwin.getWrkNo());
+                                log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={},宸ヤ綔浠诲姟鍙�={},鎵ц浠诲姟鍙�={}",wrkMast.getCrnNo(),"宸ヤ綔浠诲姟涓庢墽琛屼换鍔′笉鍖归厤",conStation,2,3,wrkMast.getWrkNo(),wrkMastSplitTwin.getWrkNo());
                                 return false;
                             }
                             // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                             // 涓嬪彂绔欑偣淇℃伅
                             staProtocol.setWorkNo(wrkMast.getWrkNo());
                             staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
-                            if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(5, staProtocol))) {
+                            if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
                                 return false;
                             }
                             // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
@@ -1479,7 +1480,7 @@
                                     crnThread.setResetFlagTwo(true);
                                     return true;
                                 }else {
-                                    log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"淇敼鎵ц妗f澶辫触",1,2,3);
+                                    log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"淇敼鎵ц妗f澶辫触",conStation,2,3);
                                 }
                             } else {
                                 log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
@@ -3453,8 +3454,8 @@
                     wrkMast.setModiTime(now);
                     // 鍫嗗灈鏈哄浣�
                     List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 1, null, 2, 3);
-                    if (!wrkMastSplitTwinList.isEmpty() && wrkMastSplitTwinList.size()!=1){
-                        log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",1,2,3);
+                    if (wrkMastSplitTwinList.size()!=1){
+                        log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",1,2,3);
                     }
                     for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                         if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
@@ -3486,8 +3487,8 @@
                     return true;
                 } else {
                     List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 1, null, 1, 1);
-                    if (!wrkMastSplitTwinList.isEmpty() && wrkMastSplitTwinList.size()!=1){
-                        log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",1,1,1);
+                    if (wrkMastSplitTwinList.size()!=1){
+                        log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",1,1,1);
                     }
                     for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                         Date now = new Date();
@@ -3606,8 +3607,8 @@
                     wrkMast.setModiTime(now);
                     // 鍫嗗灈鏈哄浣�
                     List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 2, null, 2, 3);
-                    if (!wrkMastSplitTwinList.isEmpty() && wrkMastSplitTwinList.size()!=1){
-                        log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",2,2,3);
+                    if (wrkMastSplitTwinList.size()!=1){
+                        log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",2,2,3);
                     }
                     for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                         if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
@@ -3638,8 +3639,8 @@
                     crnThread.setResetFlagTwo(true);
                 } else {
                     List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 2, null, 1, 1);
-                    if (!wrkMastSplitTwinList.isEmpty() && wrkMastSplitTwinList.size()!=1){
-                        log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",2,1,1);
+                    if (wrkMastSplitTwinList.size()!=1){
+                        log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",2,1,1);
                     }
                     for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
                         Date now = new Date();
@@ -6235,14 +6236,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 +6255,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 +6274,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.isEmpty() && 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