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 |  104 ++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 73 insertions(+), 31 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index 0df3a98..29e0663 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -4,6 +4,7 @@
 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;
@@ -11,13 +12,16 @@
 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;
@@ -63,41 +67,78 @@
     private MainServiceImpl mainService;
     @Autowired
     private LocMastService locMastService;
+    @Autowired
+    private TaskWrkService taskWrkService;
 
 
     @ManagerAuth(memo = "澶嶄綅")
-    @PostMapping("/rgv/operator/reset")
+    @PostMapping("/operator/reset")
     public R crnReset(RgvOperatorParam param){
-        // 绯荤粺杩愯鐘舵�佸垽鏂�
-//        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
-//            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
-//        }
-        short[] array = new short[9];
         RgvCommand command = new RgvCommand();
         command.setRgvNo(param.getRgvNo()); // 鍫嗗灈鏈虹紪鍙�
         command.setReset(true);
-
-        return rgvControl(command)?R.ok():R.error();
+        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();
     }
 
-    private boolean rgvControl(CrnCommand command){
-        if (command.getCrnNo() == null) {
+    @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.getCrnNo().equals(rgv.getId())) {
-                CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
-                if (crnThread == null) {
+            if (command.getRgvNo().equals(rgv.getId())) {
+                SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+                if (rgvThread == null) {
                     throw new CoolException("RGV涓嶅湪绾�");
                 }
-                CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-                if (crnProtocol == null) {
+                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(4, command))) {
+                if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(2, command))) {
                     return true;
                 } else {
                     throw new CoolException("鍛戒护涓嬪彂澶辫触");
@@ -132,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());
@@ -173,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);   //  妯″紡鐘舵��

--
Gitblit v1.9.1