From d3f3d4b309cfb285fcbbc48b91c4046111c7e9cd Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期三, 02 七月 2025 13:45:54 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/RgvController.java |  180 ++++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 108 insertions(+), 72 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index 5e1fc13..29e0663 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -4,27 +4,36 @@
 import com.core.annotations.ManagerAuth;
 import com.core.common.R;
 import com.core.exception.CoolException;
+import com.zy.asrs.domain.enums.CrnStatusType;
 import com.zy.asrs.domain.enums.RgvStatusType;
+import com.zy.asrs.domain.param.CrnOperatorParam;
 import com.zy.asrs.domain.param.RgvOperatorParam;
 import com.zy.asrs.domain.vo.RgvMsgTableVo;
 import com.zy.asrs.domain.vo.RgvStateTableVo;
 import com.zy.asrs.entity.BasRgv;
 import com.zy.asrs.entity.BasRgvErr;
+import com.zy.asrs.entity.TaskWrk;
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.mapper.BasRgvErrMapper;
 import com.zy.asrs.service.BasRgvService;
 import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.TaskWrkService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.service.impl.MainServiceImpl;
+import com.zy.core.CrnThread;
+import com.zy.core.RgvThread;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.RgvModeType;
 import com.zy.core.enums.RgvTaskModeType;
 import com.zy.core.enums.SlaveType;
+import com.zy.core.model.CrnSlave;
 import com.zy.core.model.RgvSlave;
 import com.zy.core.model.Task;
+import com.zy.core.model.command.CrnCommand;
 import com.zy.core.model.command.RgvCommand;
+import com.zy.core.model.protocol.CrnProtocol;
 import com.zy.core.model.protocol.RgvProtocol;
 import com.zy.core.properties.SlaveProperties;
 import com.zy.core.thread.SiemensRgvThread;
@@ -58,6 +67,89 @@
     private MainServiceImpl mainService;
     @Autowired
     private LocMastService locMastService;
+    @Autowired
+    private TaskWrkService taskWrkService;
+
+
+    @ManagerAuth(memo = "澶嶄綅")
+    @PostMapping("/operator/reset")
+    public R crnReset(RgvOperatorParam param){
+        RgvCommand command = new RgvCommand();
+        command.setRgvNo(param.getRgvNo()); // 鍫嗗灈鏈虹紪鍙�
+        command.setReset(true);
+        return rgvControl2(command)?R.ok():R.error();
+    }
+    @ManagerAuth(memo = "鑱旀満")
+    @PostMapping("/operator/auto")
+    public R crnAuto(RgvOperatorParam param){
+        RgvCommand command = new RgvCommand();
+        command.setRgvNo(param.getRgvNo()); // 鍫嗗灈鏈虹紪鍙�
+        command.setAuto(true);
+        return rgvControl2(command)?R.ok():R.error();
+    }
+    @ManagerAuth(memo = "鎭㈠浠诲姟")
+    @PostMapping("/operator/restoreTask")
+    public R crnRestoreTask(RgvOperatorParam param){
+        RgvCommand command = new RgvCommand();
+        command.setRgvNo(param.getRgvNo()); // 鍫嗗灈鏈虹紪鍙�
+        command.setRestoreTask(true);
+        return rgvControl2(command)?R.ok():R.error();
+    }
+    @ManagerAuth(memo = "瀹屾垚浠诲姟")
+    @PostMapping("/operator/compTask")
+    public R rgvCompTask(RgvOperatorParam param){
+        RgvCommand command = new RgvCommand();
+        command.setRgvNo(param.getRgvNo()); // 鍫嗗灈鏈虹紪鍙�
+        command.setCompTask(true);
+        return rgvControl2(command)?R.ok():R.error();
+    }
+    @ManagerAuth(memo = "鎬ュ仠")
+    @PostMapping("/operator/stop")
+    public R rgvStop(RgvOperatorParam param){
+        RgvCommand command = new RgvCommand();
+        command.setRgvNo(param.getRgvNo()); // 鍫嗗灈鏈虹紪鍙�
+        command.setStop(true);
+        return rgvControl2(command)?R.ok():R.error();
+    }
+
+    @ManagerAuth(memo = "鍙栨秷鎬ュ仠")
+    @PostMapping("/operator/noStop")
+    public R rgvNoStop(RgvOperatorParam param){
+        RgvCommand command = new RgvCommand();
+        command.setRgvNo(param.getRgvNo()); // 鍫嗗灈鏈虹紪鍙�
+        command.setNoStop(true);
+        return rgvControl2(command)?R.ok():R.error();
+    }
+
+    private boolean rgvControl2(RgvCommand command){
+        if (command.getRgvNo() == null) {
+            throw new CoolException("璇烽�夋嫨RGV");
+        }
+        for (RgvSlave rgv : slaveProperties.getRgv()) {
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            if (command.getRgvNo().equals(rgv.getId())) {
+                SiemensRgvThread rgvThread = (SiemensRgvThread) 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 (crnProtocol.getStatusType().equals(com.zy.core.enums.CrnStatusType.IDLE) && crnProtocol.getTaskNo() == 0) {
+                if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(2, command))) {
+                    return true;
+                } else {
+                    throw new CoolException("鍛戒护涓嬪彂澶辫触");
+                }
+//                } else {
+//                    throw new CoolException("鍫嗗灈鏈轰笉鍦ㄧ┖闂茬姸鎬�");
+//                }
+            }
+        }
+        return false;
+    }
 
     @PostMapping("/table/rgv/state")
     @ManagerAuth(memo = "RGV淇℃伅琛�")
@@ -81,17 +173,19 @@
             vo.setStatusType(rgvProtocol.modeType.desc);   //  妯″紡鐘舵��
             vo.setStatus(rgvProtocol.getStatusType().desc);     //  鐘舵��
             vo.setWorkNo1(rgvProtocol.getTaskNo1());  //  宸ヤ綅1浠诲姟鍙�
-            vo.setStatus1(rgvProtocol.getStatusType1().desc);  // 宸ヤ綅1鐘舵��
-            vo.setLoading1(rgvProtocol.getLoaded1()==1?"鏈夌墿":"鏃犵墿");  // 宸ヤ綅1鏈夌墿
             vo.setRgvPos(rgvProtocol.getRgvPos());
-            vo.setRgvPos1(rgvProtocol.getRgvPosI());
-            vo.setWalkPos(rgvProtocol.getWalkPos()==1?"鍦ㄥ畾浣�":"涓嶅湪瀹氫綅");
             vo.setPakMk(rgvThread.isPakMk()?"鏃犻攣":"閿佸畾");
-//            vo.setWorkNo2(rgvProtocol.getTaskNo2());  //  宸ヤ綅2浠诲姟鍙�
-//            vo.setStatus2(rgvProtocol.getStatusType2().desc);  // 宸ヤ綅2鐘舵��
-//            vo.setLoading2(rgvProtocol.getLoaded2()==1?"鏈夌墿":"鏃犵墿");  // 宸ヤ綅2鏈夌墿
-
+            vo.setWalkPos(rgvProtocol.getAlarm() == 0?"姝e父":"鎶ヨ");
             vo.setWarnCode(String.valueOf(rgvProtocol.getAlarm()));
+            if (rgvProtocol.getTaskNo1()>0) {
+                TaskWrk taskWrk = taskWrkService.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
+                if (taskWrk != null) {
+                    vo.setStatus(CrnStatusType.process(taskWrk.getIoType()).getDesc());   //  妯″紡鐘舵��
+                    vo.setSourceStaNo(taskWrk.getStartPoint());    //  婧愮珯
+                    vo.setStaNo(taskWrk.getTargetPoint());   //  鐩爣绔�
+                    vo.setBarcode(taskWrk.getBarcode());
+                }
+            }
             if (rgvProtocol.getAlarm() > 0) {
                 BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm());
                 vo.setAlarm(rgvErr==null?"鏈煡寮傚父":rgvErr.getErrName());
@@ -122,13 +216,12 @@
 
             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());    //  鐩爣搴撲綅
+                TaskWrk taskWrk = taskWrkService.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
+                if (taskWrk != null) {
+                    vo.setStatus(CrnStatusType.process(taskWrk.getIoType()).getDesc());   //  妯″紡鐘舵��
+                    vo.setSourceStaNo(taskWrk.getStartPoint());    //  婧愮珯
+                    vo.setStaNo(taskWrk.getTargetPoint());   //  鐩爣绔�
+                    vo.setOrigin(taskWrk.getBarcode());
                 }
             } else {
                 vo.setStatus(rgvProtocol.modeType.equals(RgvModeType.AUTO)? rgvProtocol.modeType.desc: RgvModeType.HAND.desc);   //  妯″紡鐘舵��
@@ -157,65 +250,8 @@
     /************************** 鎵嬪姩鎿嶄綔 ******************************/
     /****************************************************************/
 
-    @ManagerAuth(memo = "鍙栨斁璐�")
-    @PostMapping("/operator/put")
-    public R rgvFetchPut(RgvOperatorParam param){
-        RgvCommand command = new RgvCommand();
-        command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
-        command.setAckFinish1((short) 0);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
-        command.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
-        command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
-        command.setDestinationStaNo1(param.getStaNo1());  // 鐩爣绔�
-//        command.setAckFinish2((short) 0);  // 浠诲姟瀹屾垚纭浣�
-//        command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
-//        command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
-//        command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
-//        command.setDestinationStaNo2(param.getStaNo2());  // 鐩爣绔�
-        command.setCommand((short) 0);
 
-        return rgvControl(command)? R.ok(): R.error();
-    }
 
-    @ManagerAuth(memo = "鍙栬揣")
-    @PostMapping("/operator/take")
-    public R rgvFetch(RgvOperatorParam param){
-        RgvCommand command = new RgvCommand();
-        command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
-        command.setAckFinish1((short) 0);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
-        command.setTaskMode1(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栬揣
-        command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
-        command.setDestinationStaNo1(param.getStaNo1());  // 鐩爣绔�
-        command.setAckFinish2((short) 0);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
-        command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
-        command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
-        command.setDestinationStaNo2(param.getStaNo2());  // 鐩爣绔�
-        command.setCommand((short) 0);
-
-        return rgvControl(command)? R.ok(): R.error();
-    }
-
-    @ManagerAuth(memo = "鏀捐揣")
-    @PostMapping("/operator/stockMove")
-    public R rgvPut(RgvOperatorParam param){
-        RgvCommand command = new RgvCommand();
-        command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
-        command.setAckFinish1((short) 0);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
-        command.setTaskMode1(RgvTaskModeType.PUT); // 浠诲姟妯″紡: 鏀捐揣
-        command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
-        command.setDestinationStaNo1(param.getStaNo1());  // 鐩爣绔�
-        command.setAckFinish2((short) 0);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
-        command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
-        command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
-        command.setDestinationStaNo2(param.getStaNo2());  // 鐩爣绔�
-        command.setCommand((short) 0);
-
-        return rgvControl(command)? R.ok(): R.error();
-    }
 
     @ManagerAuth(memo = "浠诲姟瀹屾垚")
     @PostMapping("/operator/taskComplete")

--
Gitblit v1.9.1