From e152c4ce3a8d1eceaebbee79642729059bbdc133 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 25 七月 2025 13:55:41 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   67 ++++++++++++++++++++++-----------
 1 files changed, 44 insertions(+), 23 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 93b0d30..6ca5ebb 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -204,6 +204,7 @@
                         staProtocol.setWorkNo(9999);
                         staProtocol.setStaNo(inSta.getBackSta());
                         devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        devpThread.setPakMkRun(staProtocol.getSiteId(), false);
                         devpThread.setErrorDev(staProtocol.getSiteId(), errMsg);
                         MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                         TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo));
@@ -781,11 +782,11 @@
                         crnCommand.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙�
                         crnCommand.setTaskNo((short)999); // 宸ヤ綔鍙�
                         crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-                        crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-                        crnCommand.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
-                        crnCommand.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
-                        crnCommand.setSourcePosZ((short) 0);   // 婧愬簱浣嶅眰
+                        crnCommand.setTaskMode(CrnTaskModeType.SITE_MOVE); // 浠诲姟妯″紡:  绔欎綅绉昏浆4
                         int row = crnProtocol.getLaneNo() * 2;
+                        crnCommand.setSourcePosX((short) row);     // 婧愬簱浣嶆帓
+                        crnCommand.setSourcePosY((short) 1);     // 婧愬簱浣嶅垪
+                        crnCommand.setSourcePosZ((short) 1);   // 婧愬簱浣嶅眰
                         crnCommand.setDestinationPosX((short) row);     // 鐩爣搴撲綅鎺�
                         crnCommand.setDestinationPosY((short) 1);     // 鐩爣搴撲綅灞�
                         crnCommand.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅鍒�
@@ -988,22 +989,22 @@
 //                }
 
                 // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-                CrnCommand crnCommand = new CrnCommand();
-                crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-                crnCommand.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙�
-                crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-                crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-                crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-                crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
-                crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
-                crnCommand.setSourcePosZ(crnStn.getLev().shortValue());   // 婧愬簱浣嶅眰
-                crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鍒�
+                CrnCommand crnCommand1 = new CrnCommand();
+                crnCommand1.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+                crnCommand1.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙�
+                crnCommand1.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+                crnCommand1.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+                crnCommand1.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+                crnCommand1.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
+                crnCommand1.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
+                crnCommand1.setSourcePosZ(crnStn.getLev().shortValue());   // 婧愬簱浣嶅眰
+                crnCommand1.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鍒�
                 int bay1 = Utils.getBayShort(taskWrk.getTargetPoint()) + 1;
-                crnCommand.setDestinationPosY((short)bay1);     // 鐩爣搴撲綅灞�
-                crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鎺�
+                crnCommand1.setDestinationPosY((short)bay1);     // 鐩爣搴撲綅灞�
+                crnCommand1.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鎺�
 //                crnCommand.setCommand((short) 1);
-                if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) {
-                    log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
+                if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand1))) {
+                    log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand1));
                     devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
                     CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "杩愯鍛戒护涓嬪彂澶辫触");
 
@@ -1096,11 +1097,11 @@
                     }
 
                     // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-                    if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
+//                    if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
 
 //                    // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-//                    if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
-//                            && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+                    if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+                            && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
                         // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
 
                         // 鍫嗗灈鏈烘帶鍒惰繃婊�
@@ -1202,6 +1203,9 @@
                             if (staProtocol.isOutEnable()){
                                 CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "娌℃湁鍙嚭");
                             }
+                            if (staProtocol.isLoading()){
+                                CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍑哄簱绔欐湁鐗�");
+                            }
                         } else {
                             CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍑哄簱绔欑偣锛氶潪鑷姩");
                         }
@@ -1240,6 +1244,7 @@
 
                 // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
                 if (taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo()) != null) {
+                    CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄瓨鍦ㄦ墽琛屼腑鍚婅溅浠诲姟");
                     continue;
                 }
 
@@ -1883,6 +1888,11 @@
             return null;
         }
         // 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢
+        if (!staProtocol.isPakMkTask()) {
+            devpThread.setErrorDev(staProtocol.getSiteId(), "浠诲姟宸蹭笅鍙戠瓑寰呭皬杞﹀彇");
+            return null;
+        }
+        // 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢
         if (staProtocol.isAutoing()
 //                && staProtocol.isLoading()
 //                && staProtocol.isStaOk()
@@ -1891,7 +1901,10 @@
             if (taskWrk != null) {
                 Integer stano = staProtocol.getStaNo();
                 if (staProtocol.getSiteId() == 1004 || staProtocol.getSiteId()==1020){
-                    // 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢
+                    if (!staProtocol.isPakMkRun()) {
+                        devpThread.setErrorDev(staProtocol.getSiteId(), "寮傚父鍥為��鏍囪锛岄渶瑕佸洖閫�");
+                        return null;
+                    }
                     if (!staProtocol.isLoading()) {
                         devpThread.setErrorDev(staProtocol.getSiteId(), "鏃犵墿");
                         return null;
@@ -1976,6 +1989,8 @@
                         staProtocol.setWorkNo(9999);
                         staProtocol.setStaNo(staProtocol.getStaNo()+1);
                         devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        devpThread.setPakMkRun(staProtocol.getSiteId(), false);
+                        devpThread.setPakMkTask(staProtocol.getSiteId(), false);
                         devpThread.setErrorDev(staProtocol.getSiteId(), errMsg);
                         MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
                         try{
@@ -1987,7 +2002,6 @@
                         }
                         return null;
                     }
-                    return null;
                 }
                 return taskWrk;
             }
@@ -2443,6 +2457,7 @@
         try {
             RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
             TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
 
             TaskProtocol issuedTake = new TaskProtocol();
             TaskProtocol issuedPut = new TaskProtocol();
@@ -2465,6 +2480,12 @@
                         return false;
                     }
                 }
+                try{
+                    devpThread.setPakMkTask(rgvStn.getStaNo(), false);
+                } catch (Exception e2){
+                    RgvErrCache.updateRgvErr(rgvSlave.getId(),rgvStn.getStaNo()+"灏忚溅浠诲姟涓嬪彂鏍囪鏇存柊澶辫触");
+                }
+
 
                 BasDevpPosition basDevpPositionSou = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStn.getStaNo()));
                 BasDevpPosition basDevpPositionEnd = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", targetPointConvert));

--
Gitblit v1.9.1