From 28ea25cc817e78f1023b8a7c7826441a4acadfc1 Mon Sep 17 00:00:00 2001
From: zzgtfwq <zzgtfwq>
Date: 星期一, 08 十二月 2025 15:59:08 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/RgvController.java |  851 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 557 insertions(+), 294 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index 380b8ca..5fe0cb4 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -2,53 +2,45 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.annotations.ManagerAuth;
+import com.core.common.Cools;
 import com.core.common.R;
-import com.core.exception.CoolException;
-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.WrkMast;
+import com.zy.asrs.domain.param.EnergyGatheringRingParam;
+import com.zy.asrs.domain.param.RgvCircularShuttleParam;
+import com.zy.asrs.domain.param.RgvWrkMastParam;
+import com.zy.asrs.domain.param.RingThroughParam;
+import com.zy.asrs.entity.*;
 import com.zy.asrs.mapper.BasRgvErrMapper;
-import com.zy.asrs.service.BasRgvService;
-import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.*;
 import com.zy.asrs.service.impl.MainServiceImpl;
-import com.zy.core.cache.MessageQueue;
-import com.zy.core.cache.OutputQueue;
-import com.zy.core.cache.SlaveConnection;
+import com.zy.asrs.utils.Utils;
+import com.zy.core.cache.*;
 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.DevpSlave;
 import com.zy.core.model.RgvSlave;
-import com.zy.core.model.Task;
-import com.zy.core.model.command.RgvCommand;
 import com.zy.core.model.protocol.RgvProtocol;
+import com.zy.core.model.protocol.RgvTaskProtocol;
+import com.zy.core.model.protocol.TaskProtocol;
 import com.zy.core.properties.SlaveProperties;
 import com.zy.core.thread.RgvThread;
-import lombok.extern.slf4j.Slf4j;
+import com.zy.core.thread.SiemensDevpThread;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
 
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
- * RGV鎺ュ彛
+ * 杈撻�佽澶囨帴鍙�
  * Created by vincent on 2020-06-01
  */
-@Slf4j
 @RestController
 @RequestMapping("/rgv")
 public class RgvController {
+
+    @Autowired
+    private BasDevpPositionService basDevpPositionService;
 
     @Autowired
     private SlaveProperties slaveProperties;
@@ -57,314 +49,585 @@
     @Autowired
     private BasRgvErrMapper basRgvErrMapper;
     @Autowired
+    private BasRgvOptService basRgvOptService;
+    @Autowired
     private BasRgvService basRgvService;
     @Autowired
-    private MainServiceImpl mainService;
+    private BasDevpService basDevpService;
     @Autowired
-    private LocMastService locMastService;
+    private MainServiceImpl mainService;
 
-    @ManagerAuth(memo = "瑙i攣灏忚溅")
-    @PostMapping("/lock")
-    public R lock(CrnOperatorParam param){
-        RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, param.getRgvNo());
-        rgvThread.setPakMk(true);
-        return R.ok();
+
+    @Value("${constant-parameters.trackEntireLength}")
+    private Long trackEntireLength;
+    @GetMapping("/status/all")
+//    @ManagerAuth(memo = "鍏ㄩ儴淇℃伅")
+    public R allStatus(){
+        List<Map<String, Object>> res = new ArrayList<>();
+        ConcurrentHashMap<Integer, RgvProtocol> allRgvStatus = RgvStatusCache.getAllRgvStatus();
+        for (RgvProtocol rgvProtocol : allRgvStatus.values()){
+            Map<String, Object> map2 = new HashMap<>();
+            map2.put("rgvNo", rgvProtocol.getRgvNo());
+            map2.put("taskNo", rgvProtocol.getTaskNo());
+            map2.put("mode", rgvProtocol.getModeType().desc);
+            map2.put("status", rgvProtocol.getStatusType().desc);
+            map2.put("rgvPos", rgvProtocol.getRgvPos());
+            map2.put("rgvPosDestination", rgvProtocol.getRgvPosDestination());
+            map2.put("loaded", rgvProtocol.getLoaded().equals((short)-1)? "鏈煡":rgvProtocol.getLoaded()==1? "鏈夌墿":"鏃犵墿");
+            map2.put("errorRgv", RgvErrCache.getErrorDev(rgvProtocol.getRgvNo()));
+            res.add(map2);
+        }
+        return R.ok().add(res);
     }
 
-    @PostMapping("/table/rgv/state")
-    @ManagerAuth(memo = "RGV淇℃伅琛�")
-    public R rgvStateTable() {
-        List<RgvStateTableVo> list = new ArrayList<>();
-        List<BasRgv> rgvs = basRgvService.selectList(new EntityWrapper<BasRgv>().orderBy("rgv_no"));
+    @PostMapping("/task/cache/all")
+//    @ManagerAuth(memo = "鍏ㄩ儴淇℃伅")
+    public R allTaskCache(@RequestParam(defaultValue = "0")  Integer rgvNo){
+        List<Map<String, Object>> res = new ArrayList<>();
+        try{
+            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+            TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+            ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+            for (TaskProtocol taskProtocol : allTaskProtocol.values()){
+                Map<String, Object> map2 = new HashMap<>();
+                map2.put("rgvNo", rgvNo);
+                map2.put("taskNo", taskProtocol.getTaskNo());
+                map2.put("targetPosition", taskProtocol.getTargetPosition());
+                map2.put("isRunning", taskProtocol.getIsRunning());
+                map2.put("taskStatus", taskProtocol.getTaskStatus());
+                map2.put("direction", taskProtocol.isDirection());
+                res.add(map2);
+            }
+        } catch (Exception e){
+//            return R.error("寮傚父"+e.getMessage());
+        }
+        return R.ok().add(res);
+    }
 
-        for (BasRgv basRgv : rgvs) {
-            RgvStateTableVo vo = new RgvStateTableVo();
-            vo.setRgvNo(basRgv.getRgvNo());   //  RGV鍙�
-            list.add(vo);
+    @PostMapping("/run/del")//Take  Put  Walk
+//    @ManagerAuth(memo = "娓呯┖浠诲姟")
+    public R rgvRunDel(@RequestParam(defaultValue = "0")  Integer rgvNo
+    ) {
+        if (rgvNo==null || rgvNo==0){
+            return R.error("璇烽�夋嫨灏忚溅");
+        }
+        RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+        TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
 
-            // 鑾峰彇RGV淇℃伅
-            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basRgv.getRgvNo());
-            if (rgvThread == null) continue;
-
-            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-            if (rgvProtocol == null) continue;
-
-            vo.setStatusType(rgvProtocol.modeType.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.getRgvPosI2());
-            vo.setWalkPos(Objects.equals(rgvProtocol.getWalkPos(), 1) ? "鍦ㄥ畾浣�" : "涓嶅湪瀹氫綅");
-            vo.setPakMk(rgvThread.isPakMk() ? "鏃犻攣" : "閿佸畾");
-            vo.setWorkNo2(rgvProtocol.getTaskNo2());      // 宸ヤ綅2浠诲姟鍙�
-//            vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵��
-            vo.setLoading2(rgvProtocol.getLoaded2() ? "鏈夌墿" : "鏃犵墿"); // 宸ヤ綅2鏈夌墿
-
-            // --- 閬嶅巻 errX 瀛楁鐢熸垚 warnCode 鍜� alarm ---
-            List<String> alarms = new ArrayList<>();
-            List<String> warnCodes = new ArrayList<>();
-            Field[] fields = rgvProtocol.getClass().getDeclaredFields();
-            for (Field field : fields) {
-                if (field.getName().startsWith("err") && field.getType().equals(Boolean.class)) {
-                    field.setAccessible(true);
-                    try {
-                        Boolean value = (Boolean) field.get(rgvProtocol);
-                        if (Boolean.TRUE.equals(value)) {
-                            String numPart = field.getName().substring(3);
-                            int errId = Integer.parseInt(numPart);
-                            warnCodes.add(String.valueOf(errId));
-
-                            BasRgvErr rgvErr = basRgvErrMapper.selectById(errId);
-                            alarms.add(rgvErr == null ? "鏈煡寮傚父(" + errId + ")" : rgvErr.getErrName());
-                        }
-                    } catch (IllegalAccessException e) {
-                        e.printStackTrace();
-                    }
-                }
+        try {
+            ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+            for (TaskProtocol taskProtocol : allTaskProtocol.values()){
+                taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection());
             }
 
-            vo.setWarnCode(String.join(",", warnCodes));
-            vo.setAlarm(alarms.isEmpty() ? "" : String.join("锛�", alarms));
+        } catch (Exception e) {
+            return R.error("浠诲姟鍒犻櫎澶辫触"+e.getMessage());
         }
 
-        return R.ok().add(list);
+        return R.ok("浠诲姟娓呯┖鎴愬姛");
     }
 
+    @PostMapping("/run/del2")//Take  Put  Walk
+//    @ManagerAuth(memo = "娓呴櫎浣滀笟鍚姩涓�")
+    public R rgvRunDel2(@RequestParam(defaultValue = "0")  Integer rgvNo
+    ) {
+        if (rgvNo==null || rgvNo==0){
+            return R.error("璇烽�夋嫨灏忚溅");
+        }
+        RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+        try {
+            rgvThread.setWrkSign();
+        } catch (Exception e) {
+            return R.error("娓呴櫎浣滀笟鍚姩涓け璐�"+e.getMessage());
+        }
 
-    @PostMapping("/table/rgv/msg")
-    @ManagerAuth(memo = "RGV鏁版嵁琛�")
-    public R rgvMsgTable(){
-        List<RgvMsgTableVo> list = new ArrayList<>();
-        List<BasRgv> rgvs = basRgvService.selectList(new EntityWrapper<BasRgv>().orderBy("rgv_no"));
-        for (BasRgv basRgv : rgvs) {
-            // 琛ㄦ牸琛�
-            RgvMsgTableVo vo = new RgvMsgTableVo();
-            vo.setRgvNo(basRgv.getRgvNo());   //  RGV鍙�
-            list.add(vo);
-            // 鑾峰彇RGV淇℃伅
-            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basRgv.getRgvNo());
+        return R.ok("浠诲姟娓呯┖鎴愬姛");
+    }
+
+    @PostMapping("/run/walk")//Take  Put  Walk
+//    @ManagerAuth(memo = "灏忚溅琛岃蛋")
+    public R rgvRunWalk(@RequestParam(defaultValue = "0")  Integer rgvNo,
+                        @RequestParam(defaultValue = "9999")  Integer taskNo,
+                        @RequestParam(defaultValue = "0")  Integer rgvStaNoPut,
+                        @RequestParam(defaultValue = "0")  Long rgvPosDestination
+    ) {
+        if (rgvNo==null || rgvNo==0){
+            return R.error("璇烽�夋嫨灏忚溅");
+        }
+        if ((rgvStaNoPut == null || rgvStaNoPut == 0) && (rgvPosDestination==null || rgvPosDestination==0L)){
+            return R.error("鐩爣绔欑偣璇峰~鍐�");
+        }
+        if (rgvPosDestination == null || rgvPosDestination == 0){
+            BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut));
+            if (Cools.isEmpty(basDevpPosition)){
+                return R.error("鐩爣绔欑偣涓嶅瓨鍦�");
+            }
+            rgvPosDestination = basDevpPosition.getPlcPosition();
+        }
+        RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+        TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+
+        TaskProtocol issued = new TaskProtocol();
+
+        try {
+            ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+            if (allTaskProtocol.size() > 0) {
+                return R.error("瀛樺湪鎵ц涓换鍔★紝璇峰厛澶勭悊锛侊紒锛�");
+            }
+
+            //鎵ц
+            issued.setTaskNo(Long.valueOf(taskNo));
+            issued.setTaskStatus(1);
+            issued.setTaskNoDirection(issued.gettaskNoDirection$(issued.getTaskNo(), issued.getTaskStatus()));
+            issued.setTargetPosition(rgvPosDestination);
+            issued.setIsRunning(1);
+            issued.setDirection(true);
+
+            taskProtocolCache.updateTaskProtocol(issued);
+
+        } catch (Exception e) {
+            return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+        }
+
+        return R.ok("浠诲姟鐢熸垚鎴愬姛");
+    }
+
+    @PostMapping("/run/put")//Take  Put  Walk
+//    @ManagerAuth(memo = "灏忚溅鏀捐揣")
+    public R rgvPutWalk(@RequestParam(defaultValue = "0")  Integer rgvNo,
+                        @RequestParam(defaultValue = "9999")  Integer taskNo,
+                        @RequestParam(defaultValue = "0")  Integer rgvStaNoPut,
+                        @RequestParam(defaultValue = "0")  Long rgvPosDestination
+    ) {
+        if (rgvNo==null || rgvNo==0){
+            return R.error("璇烽�夋嫨灏忚溅");
+        }
+        if (rgvStaNoPut == null || rgvStaNoPut == 0){
+            return R.error("鐩爣绔欑偣璇峰~鍐�");
+        }
+        RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+        TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+
+        TaskProtocol issuedPut = new TaskProtocol();
+
+        try {
+            ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+            if (allTaskProtocol.size() > 0) {
+                return R.error("瀛樺湪鎵ц涓换鍔★紝璇峰厛澶勭悊锛侊紒锛�");
+            }
+
+            BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut));
+            if (Cools.isEmpty(basDevpPosition)){
+                return R.error("鐩爣绔欑偣涓嶅瓨鍦�");
+            }
+            //鎵ц
+            issuedPut.setTaskNo(Long.valueOf(taskNo));
+            issuedPut.setTaskStatus(3);
+            issuedPut.setTargetPositionStaNo(basDevpPosition.getDevNo());
+            issuedPut.setTargetPositionStaNoEnd(basDevpPosition.getDevNo$());
+            issuedPut.setTargetPositionStaNoPlcId(basDevpPosition.getPlcId());
+            issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus()));
+            issuedPut.setTargetPosition(basDevpPosition.getPlcPosition());
+            issuedPut.setIsRunning(1);
+            issuedPut.setDirection(basDevpPosition.getRgvSign()==1);
+
+            taskProtocolCache.updateTaskProtocol(issuedPut);
+        } catch (Exception e) {
+            return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+        }
+
+        return R.ok("浠诲姟鐢熸垚鎴愬姛");
+    }
+
+    @PostMapping("/run/take")//Take  Put  Walk
+//    @ManagerAuth(memo = "灏忚溅鍙栬揣")
+    public R rgvTakeWalk(@RequestParam(defaultValue = "0") Integer rgvNo,
+                         @RequestParam(defaultValue = "9999") Integer taskNo,
+                         @RequestParam(defaultValue = "0") Integer rgvStaNoTake,
+                         @RequestParam(defaultValue = "0") Long rgvPosDestination
+    ) {
+        if (rgvNo==null || rgvNo==0){
+            return R.error("璇烽�夋嫨灏忚溅");
+        }
+        if (rgvStaNoTake == null || rgvStaNoTake == 0){
+            return R.error("鍙栬揣绔欑偣璇峰~鍐�");
+        }
+        RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+        TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+
+        TaskProtocol issuedTake = new TaskProtocol();
+        try {
+            ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+            if (allTaskProtocol.size() > 0) {
+                return R.error("瀛樺湪鎵ц涓换鍔★紝璇峰厛澶勭悊锛侊紒锛�");
+            }
+
+            BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoTake));
+            if (Cools.isEmpty(basDevpPosition)){
+                return R.error("鍙栬揣绔欑偣涓嶅瓨鍦�");
+            }
+            //鎵ц
+            issuedTake.setTaskNo(Long.valueOf(taskNo));
+            issuedTake.setTaskStatus(2);
+            issuedTake.setTargetPositionStaNo(basDevpPosition.getDevNo());
+            issuedTake.setTargetPositionStaNoPlcId(basDevpPosition.getPlcId());
+            issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus()));
+            issuedTake.setTargetPosition(basDevpPosition.getPlcPosition());
+            issuedTake.setIsRunning(1);
+            issuedTake.setDirection(basDevpPosition.getRgvSign()==1);
+
+            taskProtocolCache.updateTaskProtocol(issuedTake);
+        } catch (Exception e) {
+            return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+        }
+
+        return R.ok("浠诲姟鐢熸垚鎴愬姛");
+    }
+
+    @PostMapping("/run/TakeAndPut")//Take  Put  Walk
+//    @ManagerAuth(memo = "灏忚溅鍙栬揣")
+    public R rgvTakeAndPut(@RequestParam(defaultValue = "0") Integer rgvNo,
+                           @RequestParam(defaultValue = "9999") Integer taskNo,
+                           @RequestParam(defaultValue = "0") Integer rgvStaNoTake,
+                           @RequestParam(defaultValue = "0") Integer rgvStaNoPut,
+                           @RequestParam(defaultValue = "0") Long rgvPosDestination
+    ) {
+        if (rgvNo==null || rgvNo==0){
+            return R.error("璇烽�夋嫨灏忚溅");
+        }
+        if (rgvStaNoTake == null || rgvStaNoTake == 0){
+            return R.error("鍙栬揣绔欑偣璇峰~鍐�");
+        }
+        if (rgvStaNoPut == null || rgvStaNoPut == 0){
+            return R.error("鏀捐揣绔欑偣璇峰~鍐�");
+        }
+        RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+        TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+
+        TaskProtocol issuedTake = new TaskProtocol();
+        TaskProtocol issuedPut = new TaskProtocol();
+        try {
+            ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+            if (allTaskProtocol.size() > 0) {
+                return R.error("瀛樺湪鎵ц涓换鍔★紝璇峰厛澶勭悊锛侊紒锛�");
+            }
+
+            BasDevpPosition basDevpPositionTake = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoTake));
+            if (Cools.isEmpty(basDevpPositionTake)){
+                return R.error("鍙栬揣绔欑偣涓嶅瓨鍦�");
+            }
+            //鎵ц
+            issuedTake.setTaskNo(Long.valueOf(taskNo));
+            issuedTake.setTaskStatus(2);
+            issuedTake.setTargetPositionStaNo(basDevpPositionTake.getDevNo());
+            issuedTake.setTargetPositionStaNoPlcId(basDevpPositionTake.getPlcId());
+            issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus()));
+            issuedTake.setTargetPosition(basDevpPositionTake.getPlcPosition());
+            issuedTake.setIsRunning(1);
+            issuedTake.setDirection(basDevpPositionTake.getRgvSign()==1);
+
+            BasDevpPosition basDevpPositionPut = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut));
+            if (Cools.isEmpty(basDevpPositionPut)){
+                return R.error("鐩爣绔欑偣涓嶅瓨鍦�");
+            }
+            //鎵ц
+            issuedPut.setTaskNo(Long.valueOf(taskNo));
+            issuedPut.setTaskStatus(3);
+            issuedPut.setTargetPositionStaNo(basDevpPositionPut.getDevNo());
+            issuedPut.setTargetPositionStaNoEnd(basDevpPositionPut.getDevNo$());
+            issuedPut.setTargetPositionStaNoPlcId(basDevpPositionPut.getPlcId());
+            issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus()));
+            issuedPut.setTargetPosition(basDevpPositionPut.getPlcPosition());
+            issuedPut.setIsRunning(1);
+            issuedPut.setDirection(basDevpPositionPut.getRgvSign()==1);
+
+            taskProtocolCache.updateTaskProtocol(issuedTake);
+            taskProtocolCache.updateTaskProtocol(issuedPut);
+
+        } catch (Exception e) {
+            return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+        }
+
+        return R.ok("浠诲姟鐢熸垚鎴愬姛");
+    }
+
+    @PostMapping("/run/delRgvTask")//Take  Put  Walk
+//    @ManagerAuth(memo = "灏忚溅鍙栬揣")
+    public R rgvDelRgvTask(@RequestParam(defaultValue = "0") Integer rgvNo
+    ) {
+        if (rgvNo==null || rgvNo==0){
+            return R.error("璇烽�夋嫨灏忚溅");
+        }
+
+        try {
+            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+            rgvThread.setDelRgvTask();
+        } catch (Exception e) {
+            return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+        }
+
+        return R.ok("浠诲姟鐢熸垚鎴愬姛");
+    }
+
+    @PostMapping("/ring/through/rgv/position/data")
+//    @ManagerAuth(memo = "鐜┛浣嶇疆淇℃伅")
+    public R ringThroughRgv(){
+        List<RingThroughParam> result = new ArrayList<>();
+        for (RgvSlave rgv : slaveProperties.getRgv()) {
+//        for (int i = 1;i<2;i++) {
+//            // 鑾峰彇RGV淇℃伅
+            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
             if (rgvThread == null) {
                 continue;
             }
-            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-            if (rgvProtocol == null) {
+            RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(rgv.getId());
+            RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(rgv.getId());
+            if (rgvTaskProtocol == null) {
                 continue;
             }
+            RingThroughParam ringThroughParam = new RingThroughParam();
 
-            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);   //  妯″紡鐘舵��
+            ringThroughParam.setIndex(rgv.getId());
+//            ringThroughParam.setIndex(i);
+//            double[] doubles = Utils.RingThroughXY2(perimeter, NumUtils.GetRandomIntInRange(183));
+//            double[] doubles = Utils.RingThroughXYRgv(perimeter, perimeter-rgvProtocol.RgvPos.doubleValue());
+            double[] doubles = Utils.getRgvPosNew(trackEntireLength, rgvProtocol.RgvPos.doubleValue());
 
+            ringThroughParam.setValueX(doubles[0]);
+            ringThroughParam.setValueY(doubles[1]);
+            ringThroughParam.setModeColor(rgvProtocol.modeType.color);
+            ringThroughParam.setStatusColor(rgvProtocol.statusType.color);
+            if (rgvProtocol.getModeType() == RgvModeType.AUTO){
+                ringThroughParam.setAnimation(2);
+            }
+            result.add(ringThroughParam);
         }
-        return R.ok().add(list);
+        return R.ok().add(result);
     }
 
-    @PostMapping("/output/site")
-    @ManagerAuth(memo = "RGV鎶ユ枃鏃ュ織杈撳嚭")
-    public R rgvOutput(){
-        StringBuilder str = new StringBuilder();
-        String s;
-        int i = 0;
-        while((s = OutputQueue.RGV.poll()) != null && i <=10) {
-            str.append("\n").append(s);
-            i++;
-        }
-        return R.ok().add(str.toString());
-    }
+    @PostMapping("/ring/through/dev/position/data")
+//    @ManagerAuth(memo = "绔欑偣淇℃伅")
+    //  绔欑偣浣嶇疆淇℃伅
+    public R ringThroughDev(){
+        List<RingThroughParam> result = new ArrayList<>();
+        List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<>());
+        for (BasDevpPosition basDevpPosition : basDevpPositions){
+//            if (basDevpPosition.getDevRegion() == 0){
+//                continue;
+//            }
+            RingThroughParam ringThroughParam = new RingThroughParam();
 
-    /****************************************************************/
-    /************************** 鎵嬪姩鎿嶄綔 ******************************/
-    /****************************************************************/
-
-    @ManagerAuth(memo = "鍙栨斁璐�")
-    @PostMapping("/operator/put")
-    public R rgvFetchPut(RgvOperatorParam param){
-        RgvCommand command = new RgvCommand();
-        command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
-        command.setAckFinish1(false);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskNo(0); // 宸ヤ綔鍙�
-        command.setTaskMode1(RgvTaskModeType.FETCH_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.setCommand(true);
-
-        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.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();
-    }
-
-    @ManagerAuth(memo = "鏀捐揣")
-    @PostMapping("/operator/stockMove")
-    public R rgvPut(RgvOperatorParam param){
-        RgvCommand command = new RgvCommand();
-        command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
-        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();
-    }
-
-
-
-    @ManagerAuth(memo = "浠诲姟瀹屾垚")
-    @PostMapping("/operator/taskComplete")
-    public R rgvTaskComplete(RgvOperatorParam param){
-        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);
-
-        return rgvControl(command)? R.ok(): R.error();
-    }
-
-    @ManagerAuth(memo = "娓呴櫎鍛戒护")
-    @PostMapping("/operator/clearCommand")
-    public R rgvClearCommand(RgvOperatorParam param){
-        if (param.getRgvNo() == null) {
-            throw new CoolException("璇烽�夋嫨RGV鍙�");
-        }
-        RgvCommand command = new RgvCommand();
-        command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
-        command.setWrkTaskPri(0);  //鎵ц宸ヤ綅
-        command.setTaskNo(Math.toIntExact(0)); // 宸ヤ綔鍙�
-        command.setTaskStatus((short)0); // 浠诲姟妯″紡: 鍙栬揣
-        command.setTargetPosition(0);  // 鐩爣绔�
-
-        return rgvClear(command)? R.ok(): R.error();
-    }
-
-    @ManagerAuth(memo = "鎵嬪姩澶嶄綅")
-    @PostMapping("/operator/handleReset")
-    public R handleReset(RgvOperatorParam param) throws Exception {
-        if (param.getRgvNo() == null) {
-            throw new CoolException("璇烽�夋嫨RGV");
-        }
-        // 鑾峰彇RGV缂撳瓨
-        for (RgvSlave rgv : slaveProperties.getRgv()) {
-            // 鑾峰彇RGV淇℃伅
-            if (param.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涓嶅湪绾�");
-                }
-                RgvCommand Command = new RgvCommand();
-                Command.setRgvNo(rgv.getId()); // RGV缂栧彿
-                Command.setTaskMode1(RgvTaskModeType.NONE);
-                Command.setAckFinish1(true);  // 浠诲姟瀹屾垚纭浣�
-                Command.setAckFinish2(true);  // 浠诲姟瀹屾垚纭浣�
-                Command.setCommand(true);  // 浠诲姟瀹屾垚纭浣�
-                // 寤舵椂鍙戦��
-                Thread.sleep(1000L);
-                if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(4, Command))) {
-                    return R.ok();
+            ringThroughParam.setModeColor("#FFFFFF");
+            ringThroughParam.setStatusColor("#FFFFFF");
+            try{
+                BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",basDevpPosition.getDevNo()));
+                if (basDevp.getAutoing().equals("Y")){
+                    if (basDevp.getLoading().equals("Y")){
+                        ringThroughParam.setModeColor("#ab1839");
+                        ringThroughParam.setStatusColor("#ab1839");
+                    }
+                    if (basDevp.getLoading().equals("N")){
+                        ringThroughParam.setModeColor("#27AE60");
+                        ringThroughParam.setStatusColor("#27AE60");
+                    }
                 } else {
-                    throw new CoolException("鍛戒护涓嬪彂澶辫触");
+                    ringThroughParam.setModeColor("#C0392B");
+                    ringThroughParam.setStatusColor("#C0392B");
                 }
+
+            } catch (Exception e){
+                System.out.println(e.getMessage());
+                ringThroughParam.setModeColor("#000000");
+                ringThroughParam.setStatusColor("#000000");
 
             }
+            ringThroughParam.setIndex(basDevpPosition.getDevNo());
+//            double[] doubles = Utils.RingThroughXYSta(perimeter, perimeter-basDevpPosition.getPlcPosition());
+//            ringThroughParam.setValueX(doubles[0]>50? doubles[0]+6:doubles[0]-1);
+//            ringThroughParam.setValueY(doubles[1]>50? doubles[1]+6:doubles[1]-1);
+            double[] doubles = Utils.getRgvPosNew(basDevpPosition.getDevNo(),trackEntireLength, basDevpPosition.getPlcPosition());
+            ringThroughParam.setValueX(doubles[0]);
+            ringThroughParam.setValueY(doubles[1]);
+            result.add(ringThroughParam);
         }
-        return R.error();
+        return R.ok().add(result);
     }
 
-    private boolean rgvControl(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涓嶅湪绾�");
+    @PostMapping("/ring/through/track/position/data")
+//    @ManagerAuth(memo = "杞ㄩ亾PLC鐘舵�佷俊鎭�")
+    public R wnergyGatheringRingParamTrack(){
+        List<EnergyGatheringRingParam> result = new ArrayList<>();
+        try{
+            for (DevpSlave devp : slaveProperties.getDevp()) {
+                if (devp.getId()!=1){
+                    break;
                 }
-                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-                if (rgvProtocol == null) {
-                    throw new CoolException("RGV涓嶅湪绾�");
-                }
-                if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(2, command))) {
-                    return true;
-                } else {
-                    throw new CoolException("鍛戒护涓嬪彂澶辫触");
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                if (devpThread.isResult()){
+                    if (true){
+                        EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam();
+                        energyGatheringRingParam.setTrackColor("rgba(0, 230, 118, 0.5)");
+                        energyGatheringRingParam.setRadiationColor("rgba(0, 230, 118, 0.5)");
+                        result.add(energyGatheringRingParam);
+                    } else {
+                        EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam();
+                        energyGatheringRingParam.setTrackColor("rgba(0, 230, 118, 0.5)");
+                        energyGatheringRingParam.setRadiationColor("rgba(0, 230, 118, 0.5)");
+                        result.add(energyGatheringRingParam);
+                    }
                 }
             }
+            if (result.isEmpty()){
+                EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam();
+                energyGatheringRingParam.setTrackColor("rgba(0, 0, 0, 81)");
+                energyGatheringRingParam.setRadiationColor("rgba(0, 0, 0, 81)");
+                result.add(energyGatheringRingParam);
+            }
+        } catch (Exception e){
+            EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam();
+            energyGatheringRingParam.setTrackColor("rgba(0, 0, 0, 81)");
+            energyGatheringRingParam.setRadiationColor("rgba(0, 0, 0, 81)");
+            result.add(energyGatheringRingParam);
         }
-        return false;
+        return R.ok().add(result);
     }
 
-    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());
+    @PostMapping("/ring/through/task/wrk/mast/position/data")
+//    @ManagerAuth(memo = "浣滀笟淇℃伅")
+    public R ringThroughTaskWrkMast(){
+        List<RgvWrkMastParam> result = new ArrayList<>();
+        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<>());
+        for (WrkMast wrkMast : wrkMasts){
+            RgvWrkMastParam rgvWrkMastParam = new RgvWrkMastParam(wrkMast);
+            if (Cools.isEmpty(rgvWrkMastParam.getRgvNo())){
+                rgvWrkMastParam.setRgvSts("鏈粦瀹�");
+            } else {
+                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvWrkMastParam.getRgvNo());
                 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;
+                    rgvWrkMastParam.setRgvSts("鏈煡");
                 } else {
-                    throw new CoolException("鍛戒护涓嬪彂澶辫触");
+                    RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(rgvWrkMastParam.getRgvNo());
+                    RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(rgvWrkMastParam.getRgvNo());
+                    if (rgvTaskProtocol == null) {
+                        rgvWrkMastParam.setRgvSts("鏈煡");
+                    } else {
+                        rgvWrkMastParam.setRgvSts(rgvProtocol.statusType.desc);
+                    }
                 }
             }
+            result.add(rgvWrkMastParam);
         }
-        return false;
-
+        return R.ok().add(result);
     }
 
-}
\ No newline at end of file
+    @PostMapping("/ring/through/task/wrk/mast/position/data/v1")
+//    @ManagerAuth(memo = "浣滀笟淇℃伅")
+    public R ringThroughTaskWrkMastV1(){
+        List<BasRgvOpt> result = new ArrayList<>();
+        for (int i = 1 ; i<11; i ++){
+            BasRgvOpt basRgvOpt = basRgvOptService.selectOne(new EntityWrapper<BasRgvOpt>().eq("rgv_no", i).orderBy("id", false));
+            if (basRgvOpt!=null){
+                result.add(basRgvOpt);
+            }
+        }
+        return R.ok().add(result);
+    }
+
+    @PostMapping("/task/rgv/circular/shuttle/mast/position/data")
+//    @ManagerAuth(memo = "浣滀笟淇℃伅")
+    public R rgvCircularShuttle(){
+        List<RgvCircularShuttleParam> result = new ArrayList<>();
+//        List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<>());
+//        for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){
+//            RgvCircularShuttleParam rgvCircularShuttleParam = new RgvCircularShuttleParam(basCircularShuttle);
+//            if (!Cools.isEmpty(rgvCircularShuttleParam.getRgvNo())){
+//                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvCircularShuttleParam.getRgvNo());
+//                if (rgvThread != null) {
+//                    RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+//                    if (rgvProtocol != null) {
+//                        rgvCircularShuttleParam.setPosition(rgvProtocol.getRgvPos());
+//                        if (rgvCircularShuttleParam.getStatus()==0){
+//                            rgvCircularShuttleParam.setStatus$(rgvProtocol.statusType.desc);
+//                        }
+//                        if (rgvProtocol.getAlarmList().isEmpty()){
+//                            rgvCircularShuttleParam.setError(0);
+//                            rgvCircularShuttleParam.setError$("-");
+//                        } else {
+//                            StringBuilder alarmList = new StringBuilder();
+//                            for (Integer alarm : rgvProtocol.getAlarmList()){
+//                                BasRgvErr rgvErr = basRgvErrMapper.selectById(alarm);
+//                                alarmList.append((rgvErr==null || rgvErr.getErrName()==null)? "鏈煡寮傚父:"+alarm:rgvErr.getErrName());
+//                                if (alarm.equals(rgvProtocol.getAlarmList().get(rgvProtocol.getAlarmList().size() - 1))){
+//                                    break;
+//                                }
+//                                alarmList.append("---");
+//                            }
+//                            rgvCircularShuttleParam.setError$(alarmList.toString());
+//                        }
+//                    }
+//                }
+//            }
+//            result.add(rgvCircularShuttleParam);
+//        }
+        return R.ok().add(result);
+    }
+
+    @PostMapping("/task/rgv/circular/shuttle/mast/position/data/v1")
+//    @ManagerAuth(memo = "浣滀笟淇℃伅")
+    public R rgvCircularShuttleV1(){
+//        List<BasRgvErrLog> result = new ArrayList<>();
+//        for (int i = 1 ; i<11; i ++){
+//            BasRgvErrLog basRgvErrLog = basRgvErrLogService.selectOne(new EntityWrapper<BasRgvErrLog>().eq("rgv_no", i).orderBy("id", false));
+//            if (basRgvErrLog!=null){
+//                result.add(basRgvErrLog);
+//            }
+//        }
+        return R.ok();
+    }
+
+
+    @PostMapping("/disable/rgv/status")
+//    @ManagerAuth(memo = "淇敼RGV鐘舵��")
+    public R rgvDisableStatus(@RequestParam Integer rgvNo,
+                              @RequestParam Integer status){
+//        log.info("/disable/rgv/status===銆嬩慨鏀筊GV鐘舵�侊紒锛侊紒rgvNo:{},status:{},data:{}",rgvNo,status,new Date());
+//        BasCircularShuttle basCircularShuttle = basCircularShuttleService.selectOne(new EntityWrapper<BasCircularShuttle>().eq("rgv_no", rgvNo));
+//        if (basCircularShuttle == null){
+//            return R.error().add("鏈壘鍒版RGV锛屽紓甯革紒锛侊紒");
+//        }
+//        basCircularShuttle.setStatus(status);
+//        basCircularShuttleService.updateById(basCircularShuttle);
+        return R.ok();
+    }
+
+    @PostMapping("/disable/task/delete")
+//    @ManagerAuth(memo = "鍒犻櫎浠诲姟")
+    public R taskDisabledelete(@RequestParam Long wrkNo){
+//        log.info("/disable/task/delete===銆嬪垹闄や换鍔★紒锛侊紒wrkNo:{},data:{}",wrkNo,new Date());
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkNo));
+        if (Cools.isEmpty(wrkMast)){
+            return R.error().add("鏈壘鍒版浠诲姟锛屽紓甯革紒锛侊紒");
+        }
+        wrkMastService.deleteById(wrkMast);
+        return R.ok();
+    }
+
+    @PostMapping("/disable/task/delete1")
+//    @ManagerAuth(memo = "鍒濆鍖栦换鍔�")
+    public R taskDisabledelete1(@RequestParam Long wrkNo){
+        Date now = new Date();
+//        log.info("/disable/task/delete1===銆嬪垵濮嬪寲浠诲姟锛侊紒锛亀rkNo:{},data:{}",wrkNo,new Date());
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkNo));
+        if (Cools.isEmpty(wrkMast)){
+            return R.error().add("鏈壘鍒版浠诲姟锛屽紓甯革紒锛侊紒");
+        }
+        wrkMast.setWrkSts(1L);
+//        wrkMast.setRgvNo(0);
+        wrkMast.setAppeTime(now);
+        wrkMast.setLogErrTime(now);
+        if (wrkMastService.updateById(wrkMast)){
+            return R.ok();
+        }
+        return R.error("鍒濆鍖栧け璐ワ紒锛侊紒");
+    }
+}

--
Gitblit v1.9.1