From 4747e5dcb4066161b42a7a54cab542949ad5826c Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 29 九月 2025 13:36:00 +0800
Subject: [PATCH] #和得服务器

---
 src/main/java/com/zy/asrs/controller/RgvController.java |  123 ++++++++++++++++++++++------------------
 1 files changed, 67 insertions(+), 56 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index ee4a2ac..380b8ca 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -22,6 +22,7 @@
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.RgvModeType;
 import com.zy.core.enums.RgvTaskModeType;
+import com.zy.core.enums.RgvTaskStatusType;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.RgvSlave;
 import com.zy.core.model.Task;
@@ -89,16 +90,16 @@
             if (rgvProtocol == null) continue;
 
             vo.setStatusType(rgvProtocol.modeType.desc);   // 妯″紡鐘舵��
-            vo.setStatus(rgvProtocol.getStatusType().desc); // 鐘舵��
+            vo.setStatus(String.valueOf(rgvProtocol.getMode())); // 鐘舵��
             vo.setWorkNo1(rgvProtocol.getTaskNo1());      // 宸ヤ綅1浠诲姟鍙�
             vo.setStatus1(rgvProtocol.getStatusType1().desc); // 宸ヤ綅1鐘舵��
             vo.setLoading1(rgvProtocol.getLoaded1() ? "鏈夌墿" : "鏃犵墿"); // 宸ヤ綅1鏈夌墿
             vo.setRgvPos(rgvProtocol.getRgvPos());
-            vo.setRgvPos1(rgvProtocol.getRgvPosI());
+            vo.setRgvPos1(rgvProtocol.getRgvPosI2());
             vo.setWalkPos(Objects.equals(rgvProtocol.getWalkPos(), 1) ? "鍦ㄥ畾浣�" : "涓嶅湪瀹氫綅");
             vo.setPakMk(rgvThread.isPakMk() ? "鏃犻攣" : "閿佸畾");
             vo.setWorkNo2(rgvProtocol.getTaskNo2());      // 宸ヤ綅2浠诲姟鍙�
-            vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵��
+//            vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵��
             vo.setLoading2(rgvProtocol.getLoaded2() ? "鏈夌墿" : "鏃犵墿"); // 宸ヤ綅2鏈夌墿
 
             // --- 閬嶅巻 errX 瀛楁鐢熸垚 warnCode 鍜� alarm ---
@@ -152,22 +153,11 @@
                 continue;
             }
 
-            vo.setWorkNo(rgvProtocol.getTaskNo1());  //  浠诲姟鍙�
-            if (rgvProtocol.getTaskNo1()>0) {
-                WrkMast wrkMast = wrkMastService.selectById(rgvProtocol.getTaskNo1());
-                if (wrkMast != null) {
-                    vo.setStatus(RgvStatusType.process(wrkMast.getIoType()).getDesc());   //  妯″紡鐘舵��
-                    vo.setSourceStaNo(wrkMast.getSourceStaNo$());    //  婧愮珯
-                    vo.setStaNo(wrkMast.getStaNo$());   //  鐩爣绔�
-                    vo.setSourceLocNo(wrkMast.getSourceLocNo());    //  婧愬簱浣�
-                    vo.setLocNo(wrkMast.getLocNo());    //  鐩爣搴撲綅
-                }
-            } else {
-                vo.setStatus(rgvProtocol.modeType.equals(RgvModeType.AUTO)? rgvProtocol.modeType.desc: RgvModeType.HAND.desc);   //  妯″紡鐘舵��
-            }
-            vo.setXspeed(rgvProtocol.getXSpeed());  //  璧拌閫熷害锛坢/min)
-            vo.setXdistance(rgvProtocol.getXDistance());  //  璧拌璺濈(Km)
-            vo.setXduration(rgvProtocol.getXDuration());    //  璧拌鏃堕暱(H)
+            vo.setWorkNo1(rgvProtocol.getTaskNo1());  //  宸ヤ綅1宸ヤ綔鍙�
+            vo.setWorkNo2(rgvProtocol.getTaskNo2()); //宸ヤ綅2 宸ヤ綔鍙�
+            vo.setStaNo(String.valueOf(rgvProtocol.getRgvPosDestination())); //灏忚溅鐩爣绔�
+            vo.setStatus(rgvProtocol.modeType.equals(RgvModeType.AUTO)? rgvProtocol.modeType.desc: RgvModeType.HAND.desc);   //  妯″紡鐘舵��
+
         }
         return R.ok().add(list);
     }
@@ -195,15 +185,15 @@
         RgvCommand command = new RgvCommand();
         command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
         command.setAckFinish1(false);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskNo1(0); // 宸ヤ綔鍙�
+        command.setTaskNo(0); // 宸ヤ綔鍙�
         command.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
         command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
-        command.setDestinationStaNo1(param.getStaNo1());  // 鐩爣绔�
+//        command.setDestinationStaNo1(param.getStaNo1());  // 鐩爣绔�
         command.setAckFinish2(false);  // 浠诲姟瀹屾垚纭浣�
         command.setTaskNo2(0); // 宸ヤ綔鍙�
         command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
         command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
-        command.setDestinationStaNo2(param.getStaNo2());  // 鐩爣绔�
+//        command.setDestinationStaNo2(param.getStaNo2());  // 鐩爣绔�
         command.setCommand(true);
 
         return rgvControl(command)? R.ok(): R.error();
@@ -214,16 +204,17 @@
     public R rgvFetch(RgvOperatorParam param){
         RgvCommand command = new RgvCommand();
         command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
-        command.setAckFinish1(false);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskNo1(0); // 宸ヤ綔鍙�
-        command.setTaskMode1(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栬揣
-        command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
-        command.setDestinationStaNo1(param.getStaNo1());  // 鐩爣绔�
-        command.setAckFinish2(false);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskNo2( 0); // 宸ヤ綔鍙�
-        command.setTaskMode2(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栨斁璐�
-        command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
-        command.setDestinationStaNo2(param.getStaNo2());  // 鐩爣绔�
+        command.setWrkTaskPri(param.getWorkSta());  //鎵ц宸ヤ綅
+        command.setTaskNo(Math.toIntExact(param.getWorkNo())); // 宸ヤ綔鍙�
+        command.setTaskStatus(RgvTaskStatusType.FETCH); // 浠诲姟妯″紡: 鍙栬揣
+        command.setTargetPosition(Integer.valueOf(param.getStaNo()));  // 鐩爣绔�
+//        command.setTaskMode2(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栨斁璐�
+//        command.setAckFinish1(false);  // 浠诲姟瀹屾垚纭浣�
+//        command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
+//        command.setAckFinish2(false);  // 浠诲姟瀹屾垚纭浣�
+//        command.setTaskNo2( 0); // 宸ヤ綔鍙�
+//        command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
+//        command.setDestinationStaNo2(param.getStaNo2());  // 鐩爣绔�
         command.setCommand(true);
 
         return rgvControl(command)? R.ok(): R.error();
@@ -234,16 +225,17 @@
     public R rgvPut(RgvOperatorParam param){
         RgvCommand command = new RgvCommand();
         command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
-        command.setAckFinish1(false);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskNo1(0); // 宸ヤ綔鍙�
-        command.setTaskMode1(RgvTaskModeType.PUT); // 浠诲姟妯″紡: 鏀捐揣
-        command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
-        command.setDestinationStaNo1(param.getStaNo1());  // 鐩爣绔�
-        command.setAckFinish2(false);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskNo2( 0); // 宸ヤ綔鍙�
-        command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
-        command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
-        command.setDestinationStaNo2(param.getStaNo2());  // 鐩爣绔�
+        command.setWrkTaskPri(param.getWorkSta());  //鎵ц宸ヤ綅
+        command.setTaskNo(Math.toIntExact(param.getWorkNo())); // 宸ヤ綔鍙�
+        command.setTaskStatus(RgvTaskStatusType.PUT); // 浠诲姟妯″紡: 鍙栬揣
+        command.setTargetPosition(Integer.valueOf(param.getStaNo()));  // 鐩爣绔�
+//        command.setAckFinish1(false);  // 浠诲姟瀹屾垚纭浣�
+//        command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
+//        command.setAckFinish2(false);  // 浠诲姟瀹屾垚纭浣�
+//        command.setTaskNo2( 0); // 宸ヤ綔鍙�
+//        command.setTaskMode2(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栨斁璐�
+//        command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
+//        command.setDestinationStaNo2(param.getStaNo2());  // 鐩爣绔�
         command.setCommand(true);
 
         return rgvControl(command)? R.ok(): R.error();
@@ -257,7 +249,7 @@
         RgvCommand command = new RgvCommand();
         command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
         command.setAckFinish1(true);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskNo1(0); // 宸ヤ綔鍙�
+//        command.setTaskNo1(0); // 宸ヤ綔鍙�
         command.setTaskMode1(RgvTaskModeType.NONE); // 浠诲姟妯″紡
         command.setSourceStaNo1((short) 0); // 婧愮珯
         command.setDestinationStaNo1((short) 0);  // 鐩爣绔�
@@ -279,19 +271,12 @@
         }
         RgvCommand command = new RgvCommand();
         command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
-        command.setAckFinish1(true);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskNo1( 0); // 宸ヤ綔鍙�
-        command.setTaskMode1(RgvTaskModeType.NONE); // 浠诲姟妯″紡
-        command.setSourceStaNo1((short) 0); // 婧愮珯
-        command.setDestinationStaNo1((short) 0);  // 鐩爣绔�
-        command.setAckFinish2(true);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskNo2(0); // 宸ヤ綔鍙�
-        command.setTaskMode2(RgvTaskModeType.NONE); // 浠诲姟妯″紡
-        command.setSourceStaNo2((short) 0); // 婧愮珯
-        command.setDestinationStaNo2((short) 0);  // 鐩爣绔�
-        command.setCommand(true);
+        command.setWrkTaskPri(0);  //鎵ц宸ヤ綅
+        command.setTaskNo(Math.toIntExact(0)); // 宸ヤ綔鍙�
+        command.setTaskStatus((short)0); // 浠诲姟妯″紡: 鍙栬揣
+        command.setTargetPosition(0);  // 鐩爣绔�
 
-        return rgvControl(command)? R.ok(): R.error();
+        return rgvClear(command)? R.ok(): R.error();
     }
 
     @ManagerAuth(memo = "鎵嬪姩澶嶄綅")
@@ -346,7 +331,7 @@
                 if (rgvProtocol == null) {
                     throw new CoolException("RGV涓嶅湪绾�");
                 }
-                if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(4, command))) {
+                if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(2, command))) {
                     return true;
                 } else {
                     throw new CoolException("鍛戒护涓嬪彂澶辫触");
@@ -356,4 +341,30 @@
         return false;
     }
 
+    private boolean rgvClear(RgvCommand command){
+        if (command.getRgvNo() == null) {
+            throw new CoolException("璇烽�夋嫨RGV");
+        }
+        for (RgvSlave rgv : slaveProperties.getRgv()) {
+            // 鑾峰彇RGV淇℃伅
+            if (command.getRgvNo().equals(rgv.getId())) {
+                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+                if (rgvThread == null) {
+                    throw new CoolException("RGV涓嶅湪绾�");
+                }
+                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+                if (rgvProtocol == null) {
+                    throw new CoolException("RGV涓嶅湪绾�");
+                }
+                if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(3, command))) {
+                    return true;
+                } else {
+                    throw new CoolException("鍛戒护涓嬪彂澶辫触");
+                }
+            }
+        }
+        return false;
+
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.9.1