From 1dacf2305187f5c2fb44f03b6b754c46cb73ba25 Mon Sep 17 00:00:00 2001
From: L <L@132>
Date: 星期四, 19 三月 2026 08:53:59 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/controller/RgvController.java |  183 ++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 161 insertions(+), 22 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index 9820ee0..cf6679d 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -10,10 +10,7 @@
 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.*;
 import com.zy.asrs.service.impl.MainServiceImpl;
 import com.zy.asrs.utils.NumUtils;
 import com.zy.asrs.utils.Utils;
@@ -33,15 +30,14 @@
 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;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * RGV鎺ュ彛
@@ -59,13 +55,22 @@
     @Autowired
     private BasRgvErrMapper basRgvErrMapper;
     @Autowired
+    private BasRgvErrLogService basRgvErrLogService;
+    @Autowired
+    private BasRgvOptService basRgvOptService;
+    @Autowired
     private BasRgvService basRgvService;
+    @Autowired
+    private BasDevpService basDevpService;
     @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淇℃伅琛�")
@@ -343,34 +348,78 @@
             if (rgvProtocol == null) {
                 continue;
             }
-            RingThroughParam ringThroughParam = new RingThroughParam();
+            try {
+                if (rgvProtocol.getRgvPos() == null || rgvProtocol.getModeType() == null || rgvProtocol.getStatusType() == null) {
+                    log.warn("鐜┛浣嶇疆淇℃伅瀛樺湪绌哄瓧娈碉紝璺宠繃璇GV: rgvNo={}", rgv.getId());
+                    continue;
+                }
+                RingThroughParam ringThroughParam = new RingThroughParam();
 
-            ringThroughParam.setIndex(rgv.getId());
+                ringThroughParam.setIndex(rgv.getId());
 //            ringThroughParam.setIndex(i);
-//            double[] doubles = Utils.RingThroughXY2(1737000.0, NumUtils.GetRandomIntInRange(183));
-            double[] doubles = Utils.RingThroughXYRgv(1737000.0, 1737000.0-rgvProtocol.RgvPos.doubleValue());
-//            double[] doubles = Utils.RingThroughXY2(183.0, 100*i );
+//            double[] doubles = Utils.RingThroughXY2(perimeter, NumUtils.GetRandomIntInRange(183));
+//            double[] doubles = Utils.RingThroughXYRgv(perimeter, perimeter-rgvProtocol.RgvPos.doubleValue());
+                double[] doubles = Utils.getRgvPosNew(perimeter, rgvProtocol.getRgvPos().doubleValue());
 
-            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);
+                ringThroughParam.setValueX(doubles[0]);
+                ringThroughParam.setValueY(doubles[1]);
+                ringThroughParam.setModeColor(rgvProtocol.getModeType().color);
+                ringThroughParam.setStatusColor(rgvProtocol.getStatusType().color);
+                if (rgvProtocol.getModeType() == RgvModeType.AUTO){
+                    ringThroughParam.setAnimation(2);
+                }
+                result.add(ringThroughParam);
+            } catch (Exception e) {
+                // 鍗曞彴RGV鏁版嵁寮傚父涓嶅奖鍝嶅叾瀹僐GV缁樺埗
+                log.error("鐜┛浣嶇疆淇℃伅澶勭悊寮傚父锛岃烦杩囪RGV: rgvNo={}", rgv.getId(), e);
+            }
         }
         return R.ok().add(result);
     }
 
     @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();
+
+            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 {
+                    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(1737000.0, 1737000.0-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.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(),perimeter, basDevpPosition.getPlcPosition());
+            ringThroughParam.setValueX(doubles[0]);
+            ringThroughParam.setValueY(doubles[1]);
             result.add(ringThroughParam);
         }
         return R.ok().add(result);
@@ -442,6 +491,19 @@
         return R.ok().add(result);
     }
 
+    @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(){
@@ -455,6 +517,24 @@
                     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());
+                        }
                     }
                 }
             }
@@ -463,4 +543,63 @@
         return R.ok().add(result);
     }
 
-}
\ No newline at end of file
+    @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().add(result);
+    }
+
+
+    @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