From 45dd3bfd08d2c95ae284bae369507a19a2e524b7 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期一, 24 二月 2025 15:24:27 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/controller/RgvController.java |  202 ++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 146 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 07d6cb9..639cbd7 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -2,17 +2,20 @@
 
 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.RgvOperatorParam;
-import com.zy.asrs.domain.param.RingThroughParam;
+import com.zy.asrs.domain.param.*;
 import com.zy.asrs.domain.vo.*;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.mapper.BasRgvErrMapper;
+import com.zy.asrs.service.BasCircularShuttleService;
+import com.zy.asrs.service.BasDevpPositionService;
 import com.zy.asrs.service.BasRgvService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.service.impl.MainServiceImpl;
+import com.zy.asrs.utils.NumUtils;
 import com.zy.asrs.utils.Utils;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
@@ -20,16 +23,20 @@
 import com.zy.core.enums.RgvModeType;
 import com.zy.core.enums.RgvTaskModeType;
 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.properties.SlaveProperties;
 import com.zy.core.thread.RgvThread;
+import com.zy.core.thread.SiemensDevpThread;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.rmi.CORBA.Util;
@@ -57,6 +64,13 @@
     private BasRgvService basRgvService;
     @Autowired
     private MainServiceImpl mainService;
+    @Autowired
+    private BasDevpPositionService basDevpPositionService;
+    @Autowired
+    private BasCircularShuttleService basCircularShuttleService;
+
+    @Value("${constant-parameters.perimeter}")
+    private Long perimeter;
 
     @PostMapping("/table/rgv/state")
     @ManagerAuth(memo = "RGV淇℃伅琛�")
@@ -319,79 +333,155 @@
         return false;
     }
 
-    @PostMapping("/console/rgv/site/data")
-    @ManagerAuth(memo = "灏忚溅瀹炴椂浣嶇疆")
-    public R scaleLatestData(){
-        List<Map> result = new ArrayList<>();
-        for (RgvSlave rgv : slaveProperties.getRgv()) {
-            // 鑾峰彇RGV淇℃伅
-            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涓嶅湪绾�");
-            }
-            Map<String, Object> rgvMap = new HashMap<>();
-            rgvMap.put("title", rgvProtocol.getRgvPosI());
-            rgvMap.put("id", rgvProtocol.getRgvNo());
-            result.add(rgvMap);
-        }
-        return R.ok().add(result);
-    }
     @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<100;i++) {
+        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) {
-//                continue;
-//            }
+            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+            if (rgvThread == null) {
+                continue;
+            }
+            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+            if (rgvProtocol == null) {
+                continue;
+            }
             RingThroughParam ringThroughParam = new RingThroughParam();
 
-//            ringThroughParam.setIndex(rgv.getId());
-            ringThroughParam.setIndex(i);
-            double[] doubles = Utils.RingThroughXY2(183.0, 100.0*i);
-            ringThroughParam.setValueX(doubles[0]);
-            ringThroughParam.setValueY(doubles[1]);
+            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(perimeter, rgvProtocol.RgvPos.doubleValue());
+//            double[] doubles = Utils.RingThroughXY2(183.0, 100*i );
+
+            ringThroughParam.setValueX(doubles[0]-2.94);
+            ringThroughParam.setValueY(doubles[1]-2.94);
+            ringThroughParam.setModeColor(rgvProtocol.modeType.color);
+            ringThroughParam.setStatusColor(rgvProtocol.statusType.color);
             result.add(ringThroughParam);
         }
         return R.ok().add(result);
     }
 
     @PostMapping("/ring/through/dev/position/data")
-//    @ManagerAuth(memo = "鐜┛浣嶇疆淇℃伅")
+//    @ManagerAuth(memo = "绔欑偣淇℃伅")
+    //  绔欑偣浣嶇疆淇℃伅
     public R ringThroughDev(){
         List<RingThroughParam> result = new ArrayList<>();
-//        for (RgvSlave rgv : slaveProperties.getRgv()) {
-        for (int i = 1;i<10;i++) {
-//            // 鑾峰彇RGV淇℃伅
-//            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
-//            if (rgvThread == null) {
-//                continue;
-//            }
-//            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-//            if (rgvProtocol == null) {
-//                continue;
-//            }
+        List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<>());
+        for (BasDevpPosition basDevpPosition : basDevpPositions){
             RingThroughParam ringThroughParam = new RingThroughParam();
-
-//            ringThroughParam.setIndex(rgv.getId());
-            ringThroughParam.setIndex(i);
-            double[] doubles = Utils.RingThroughXY2(183.0, 100.0*i);
-            ringThroughParam.setValueX(doubles[0]);
-            ringThroughParam.setValueY(doubles[1]);
+            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);
             result.add(ringThroughParam);
         }
         return R.ok().add(result);
     }
 
+    @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;
+                }
+                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 R.ok().add(result);
+    }
+
+    @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) {
+                    rgvWrkMastParam.setRgvSts("鏈煡");
+                } else {
+                    RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+                    if (rgvProtocol == null) {
+                        rgvWrkMastParam.setRgvSts("鏈煡");
+                    } else {
+                        rgvWrkMastParam.setRgvSts(rgvProtocol.statusType.desc);
+                    }
+                }
+            }
+            result.add(rgvWrkMastParam);
+        }
+        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);
+                        }
+                    }
+                }
+            }
+            result.add(rgvCircularShuttleParam);
+        }
+        return R.ok().add(result);
+    }
+
+
+    @PostMapping("/disable/rgv/status")
+//    @ManagerAuth(memo = "浣滀笟淇℃伅")
+    public R rgvDisableStatus(@RequestParam Integer rgvId,
+                              @RequestParam Integer status){
+        BasCircularShuttle basCircularShuttle = basCircularShuttleService.selectOne(new EntityWrapper<BasCircularShuttle>().eq("rgv_id", rgvId));
+        basCircularShuttle.setStatus(status);
+        basCircularShuttleService.updateById(basCircularShuttle);
+        return R.ok();
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.9.1