From 60201c8530488c402b8b44b215b8d48c60d6679a Mon Sep 17 00:00:00 2001
From: cpT <1@123>
Date: 星期四, 19 六月 2025 19:43:21 +0800
Subject: [PATCH] #改造

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 53 insertions(+), 5 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 be3cfa5..bf37cde 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -374,6 +374,7 @@
                                     && rgvProtocol.modeType == RgvModeType.AUTO
                                     && (rgvProtocol.getStatusType() == RgvStatusType.IDLE || rgvProtocol.getStatusType() == RgvStatusType.ROAM)
                                     && rgvProtocol.getTaskNo1() == 0
+                                    && rgvProtocol.getRgvPosInt() != 0
                                     && rgvProtocol.getAlarm() == 0) {
                                 BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("dev_no", wrkMast.getSourceStaNo()));
                                 if (basDevpPosition.getPlcPosition()>rgvProtocol.getRgvPos()){
@@ -503,8 +504,8 @@
 
     //浠诲姟瀹屾垚
     public synchronized void rgvCompleteWrkMastSta(int[] autoZ) {
-        try {
-            for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
+        for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
+            try {
                 RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
                 RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
                 if (rgvProtocol == null) {
@@ -524,7 +525,7 @@
                         && rgvProtocol.getTaskNo1() != 0
                 ) {
 //                    log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
-                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", rgvProtocol.getTaskNo1().longValue()));
+                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", rgvProtocol.getTaskNo1().longValue()).eq("rgv_no",rgvProtocol.getRgvNo()));
                     if (Cools.isEmpty(wrkMast) || !wrkMast.getWrkSts().equals(2L)) {
                         log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�" + wrkMast);
                         continue;
@@ -577,9 +578,56 @@
                     } catch (Exception e){}
                     wrkMastService.updateById(wrkMast);
                 }
+            } catch (Exception e) {
+                log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�" + e);
             }
-        } catch (Exception e) {
-            log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�" + e);
+        }
+    }
+    public synchronized void rgvCancelWrkMastSta() {
+        for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
+            try {
+                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+                if (rgvProtocol == null) {
+                    continue;
+                }
+                if (rgvProtocol.getStatusType() == RgvStatusType.CANCEL) {
+                    log.info("{}鍙峰皬杞︾瓑寰厀cs鍙栨秷锛岀姸鎬亄}锛屽弬鏁皗}", rgvProtocol.getRgvNo(), rgvProtocol.getStatusType(), rgvProtocol);
+                }
+                // 鍙湁褰揜GV绛夊緟WCS纭銆佽嚜鍔�
+                if (rgvProtocol.getStatusType() == RgvStatusType.CANCEL
+                        && rgvProtocol.getModeType() == RgvModeType.AUTO
+                        && rgvProtocol.getTaskNo1() != 0
+                ) {
+
+                    RgvCommand rgvCommand = new RgvCommand();
+                    if (!MessageQueue.offer(SlaveType.Rgv, rgvProtocol.getRgvNo(), new Task(6, rgvCommand))) {
+                        //
+                        log.error("RGV鍙栨秷鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand));
+                        continue;
+                    }
+                    log.info("RGV鍙栨秷鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand));
+
+                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", rgvProtocol.getTaskNo1().longValue()).eq("rgv_no",rgvProtocol.getRgvNo()));
+                    if (Cools.isEmpty(wrkMast) || !wrkMast.getWrkSts().equals(2L)) {
+                        log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�" + wrkMast);
+                        continue;
+                    }
+
+                    Date now = new Date();
+                    wrkMast.setWrkSts(1L);
+                    wrkMast.setRgvNo(0);
+                    wrkMast.setAppeTime(now);
+                    wrkMast.setLogErrTime(now);
+
+                    wrkMast.setLogErrMemo("RGV鐢宠鍙栨秷浠诲姟锛孯GV鍙�={"+rgvProtocol.getRgvNo()+"}锛屽彇娑堟椂闂达細"+now);
+
+                    wrkMastService.updateById(wrkMast);
+
+                }
+            } catch (Exception e) {
+                log.error("灏忚溅鍙栨秷绾跨▼鎶ラ敊锛�" + e);
+            }
         }
     }
 

--
Gitblit v1.9.1