From 382d9f2df47c0e26b9a86077ad70c1c317f3d52d Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期一, 11 八月 2025 10:07:03 +0800
Subject: [PATCH] 优化界面

---
 src/main/java/com/zy/core/enums/RgvStatusType.java          |   32 ++++++----
 src/main/java/com/zy/core/enums/RgvModeType.java            |   10 +-
 src/main/java/com/zy/asrs/controller/RgvController.java     |   35 +++++++++--
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   65 +++------------------
 src/main/webapp/views/index.html                            |    4 
 5 files changed, 63 insertions(+), 83 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index 35fe0b3..10af29a 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -11,10 +11,7 @@
 import com.zy.asrs.domain.vo.RgvStateTableVo;
 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.Utils;
 import com.zy.core.cache.MessageQueue;
@@ -60,6 +57,8 @@
     private BasRgvErrMapper basRgvErrMapper;
     @Autowired
     private BasRgvService basRgvService;
+    @Autowired
+    private BasDevpService basDevpService;
     @Autowired
     private MainServiceImpl mainService;
     @Autowired
@@ -371,10 +370,32 @@
         List<RingThroughParam> result = new ArrayList<>();
         List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<>());
         for (BasDevpPosition basDevpPosition : basDevpPositions){
-            if (basDevpPosition.getDevNo() == 134){
-                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(perimeter, perimeter-basDevpPosition.getPlcPosition());
 //            ringThroughParam.setValueX(doubles[0]>50? doubles[0]+6:doubles[0]-1);
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 9417bed..79458bd 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -380,10 +380,6 @@
             runRgv:
             for (WrkMast wrkMast : wrkMasts) {
                 Integer rgvSstaNo = wrkMast.getRgvSstaNo();
-                // 1090锛�1089,1086,1083 鎸�1083绔欑偣浣嶇疆璁$畻锛岃兘鍙�1083锛屽氨鑳藉彇1090锛�1089锛�1086锛岄伩鍏嶄换鍔″欢杩熶笅鍙戞柟妗堜竴鐩寸粰1083鍙�
-//                if (rgvSstaNo == 1090 || rgvSstaNo == 1089 || rgvSstaNo == 1086 || rgvSstaNo == 1105) {
-//                    rgvSstaNo = 1083;
-//                }
                 BasDevpPosition basDevpPositions = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("dev_no", rgvSstaNo)); // 绔欑偣
                 long position = basDevpPositions.getPlcPosition(); // 璧峰绔欎綅缃�
                 position += 50; // 灏忚溅鍙栬揣瀹氫綅绮惧害 +- 50,绔欑偣浣嶇疆10000锛屽皬杞﹀湪10050涔熸槸鍙互鍙栫殑
@@ -397,6 +393,7 @@
                     }
                     map.put(distance, rgvProtocol);
                 }
+                position -= 50;
                 log.info("鍙栬揣绔欑偣锛歿}锛屽悗闈㈠皬杞︽帓搴�", basDevpPositions.getDevNo());
                 StringBuilder sb = new StringBuilder();
                 for (Map.Entry<Long, RgvProtocol> rgvProtocolMap : map.entrySet()) {
@@ -409,7 +406,6 @@
                     RgvProtocol rgvProtocol = rgvProtocolMap.getValue(); // 鏈�杩戣窛绂诲皬杞�
 //                    log.info("鍙栬揣绔欑偣锛歿}锛屽悗闈㈡渶杩戝皬杞︼細{},鐘舵��:{}", basDevpPositions.getDevNo(), rgvProtocol.getRgvNo(), rgvProtocol.getStatusType().desc);
                     int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("rgv_no", rgvProtocol.getRgvNo()).eq("wrk_sts", 10));
-                    if(wrkMast.getIoType() == 10 || wrkMast.getIoType() == 110 || wrkMast.getSourceStaNo() == 1034) {
                         if (rgvProtocol.modeType == RgvModeType.AUTO
                                 && (rgvProtocol.getStatusType() == RgvStatusType.IDLE || rgvProtocol.getStatusType() == RgvStatusType.ROAM)
                                 && rgvProtocol.getTaskNo1() == 0
@@ -444,64 +440,23 @@
                                 // 褰撳墠rgv浠诲姟鐩爣绔欑偣
                                 BasDevpPosition rgvDstaNoDevPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("dev_no", wrkMast1.getRgvDstaNo()));
                                 long rgvDstaNoPosition = rgvDstaNoDevPosition.getPlcPosition(); // 褰撳墠rgv浠诲姟鐩爣绔欑偣浣嶇疆
-                                if(rgvProtocol.getRgvPos() < rgvDstaNoPosition  || Math.abs(rgvProtocol.getRgvPos() - rgvDstaNoPosition) <= 50) { // 灏忚溅褰撳墠浣嶇疆 < rgv鐩爣浣嶇疆
-                                    if(!(rgvProtocol.getRgvPos() < position && position < rgvDstaNoPosition)) { // 杩欎釜浠诲姟浣嶇疆鏄湪褰撳墠rgv浣嶇疆鍓嶉潰骞朵笖杩欎釜浠诲姟璧风偣鍦ㄥ綋鍓峳gv鐩爣绔欑偣涔嬪悗
+                                // 鑾峰彇RGV褰撳墠浣嶇疆鍜岀姸鎬�
+                                long currentRgvPos = rgvProtocol.getRgvPos();
+                                int rgvStatus = rgvProtocol.getStatusType().id;
+
+                                // 瀹氫箟娴姩鑼冨洿锛堜粎鍋滈潬鐘舵�侀�傜敤锛�
+                                long posTolerance = (rgvStatus == 0 || rgvStatus == 2 || rgvStatus == 3 || rgvStatus == 6 || rgvStatus == 7 || rgvStatus == 8 || rgvStatus == 100) ? 50 : 0;
+                                if(currentRgvPos < rgvDstaNoPosition + posTolerance) { // 灏忚溅褰撳墠浣嶇疆 < rgv鐩爣浣嶇疆
+                                    if(!(currentRgvPos - posTolerance < position && position < rgvDstaNoPosition + posTolerance)) { // 杩欎釜浠诲姟浣嶇疆鏄湪褰撳墠rgv浣嶇疆鍓嶉潰骞朵笖杩欎釜浠诲姟璧风偣鍦ㄥ綋鍓峳gv鐩爣绔欑偣涔嬪悗
                                         break; // 褰撳墠rgv鏀捐揣瀹屾垚鍚庯紝鍙互鍙栧綋鍓嶄换鍔�
                                     }
                                 } else {
-                                    if(!(rgvProtocol.getRgvPos() < position || position < rgvDstaNoPosition)) {
+                                    if(!(currentRgvPos + posTolerance < position || position < rgvDstaNoPosition - posTolerance)) {
                                         break;
                                     }
                                 }
                             }
                         }
-                    } else {
-                        if (rgvProtocol.modeType == RgvModeType.AUTO
-                                && (rgvProtocol.getStatusType() == RgvStatusType.IDLE || rgvProtocol.getStatusType() == RgvStatusType.ROAM)
-                                && rgvProtocol.getTaskNo1() == 0
-                                && rgvProtocol.getAlarm() == 0) {
-                            if (count != 0) {
-                                log.error("{}鍛煎彨灏忚溅锛歿}鍙峰皬杞︾┖闂诧紝浣嗗伐浣滄。鏄剧ず璇ュ皬杞︽湁浠诲姟",wrkMast.getWrkNo(),rgvProtocol.getRgvNo());
-                                break;
-                            }
-                            RgvCommand rgvCommand = new RgvCommand();
-                            rgvCommand.setRgvNo(rgvProtocol.getRgvNo());
-                            rgvCommand.setAckFinish1((short) 0);  // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
-                            rgvCommand.setTaskNo1(wrkMast.getWrkNo().shortValue());
-                            rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡:  鍙栨斁璐�
-                            rgvCommand.setSourceStaNo1(wrkMast.getRgvSstaNo().shortValue());   //宸ヤ綅1璧风偣
-                            rgvCommand.setDestinationStaNo1(wrkMast.getRgvDstaNo().shortValue());   //宸ヤ綅1鐩爣绔欑偣
-                            rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
-                            if (!MessageQueue.offer(SlaveType.Rgv, rgvProtocol.getRgvNo(), new Task(2, rgvCommand))) {
-                                log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand));
-                                break runRgv;
-                            }
-                            log.info("RGV鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand));
-                            Date now = new Date();
-                            wrkMast.setRgvNo(rgvProtocol.getRgvNo());
-                            wrkMast.setWrkSts(10L);
-                            wrkMast.setRgvCreateTime(now);
-                            wrkMastService.updateById(wrkMast);
-                            break runRgv;
-                        } else  if(rgvProtocol.modeType == RgvModeType.AUTO
-                                && rgvProtocol.getTaskNo1() != 0){ // 褰撳墠灏忚溅鏀捐揣鐩爣浣嶇疆鍦ㄥ綋鍓嶄换鍔″彇璐х偣涔嬪悗锛岃烦杩囦换鍔″垎閰嶏紝涓嶅啀鍒欏垽鏂笅涓皬杞︾洰鏍囦綅缃�
-                            WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", rgvProtocol.getTaskNo1())); // 褰撳墠rgv浠诲姟
-                            if(wrkMast1!= null && !Cools.isEmpty(wrkMast1.getRgvDstaNo())) {
-                                // 褰撳墠rgv浠诲姟鐩爣绔欑偣
-                                BasDevpPosition rgvDstaNoDevPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("dev_no", wrkMast1.getRgvDstaNo()));
-                                long rgvDstaNoPosition = rgvDstaNoDevPosition.getPlcPosition(); // 褰撳墠rgv浠诲姟鐩爣绔欑偣浣嶇疆
-                                if(rgvProtocol.getRgvPos() <= rgvDstaNoPosition || Math.abs(rgvProtocol.getRgvPos() - rgvDstaNoPosition) <= 50) { // 灏忚溅褰撳墠浣嶇疆 < rgv鐩爣浣嶇疆
-                                    if(!(rgvProtocol.getRgvPos() < position && position < rgvDstaNoPosition)) { // 杩欎釜浠诲姟浣嶇疆鏄湪褰撳墠rgv浣嶇疆鍓嶉潰骞朵笖杩欎釜浠诲姟璧风偣鍦ㄥ綋鍓峳gv鐩爣绔欑偣涔嬪悗
-                                        break; // 褰撳墠rgv鏀捐揣瀹屾垚鍚庯紝鍙互鍙栧綋鍓嶄换鍔�
-                                    }
-                                } else {
-                                    if(!(rgvProtocol.getRgvPos() < position || position < rgvDstaNoPosition)) {
-                                        break;
-                                    }
-                                }
-                            }
-                        }
-                    }
                 }
             }
         } catch (Exception e) {
diff --git a/src/main/java/com/zy/core/enums/RgvModeType.java b/src/main/java/com/zy/core/enums/RgvModeType.java
index 337eaa1..17802e1 100644
--- a/src/main/java/com/zy/core/enums/RgvModeType.java
+++ b/src/main/java/com/zy/core/enums/RgvModeType.java
@@ -3,12 +3,12 @@
 public enum RgvModeType {
 
     NONE(-1, "绂荤嚎","#4A4035"),
-    STOP(0, "缁翠慨","#E2C027"),
-    HAND(1, "鎵嬪姩","#2196F3"),
-    HALF_AUTO(2, "鍗婅嚜鍔�","#E2C027"),
-    AUTO(3, "鑷姩","#4B5CC4"),
+    STOP(0, "缁翠慨","#FFA500"),
+    HAND(1, "鎵嬪姩","#FFD700"),
+    HALF_AUTO(2, "鍗婅嚜鍔�","#20B2AA"),
+    AUTO(3, "鑷姩","#4169E1"),
     AUTO2(100, "鍏跺畠","#2196F3"),
-    SOS(999, "鍏跺畠","#2196F3")
+    SOS(999, "鍏跺畠","#FF0000")
     ;
 
     public Integer id;
diff --git a/src/main/java/com/zy/core/enums/RgvStatusType.java b/src/main/java/com/zy/core/enums/RgvStatusType.java
index 6c93c3a..5881d15 100644
--- a/src/main/java/com/zy/core/enums/RgvStatusType.java
+++ b/src/main/java/com/zy/core/enums/RgvStatusType.java
@@ -2,21 +2,25 @@
 
 public enum RgvStatusType {
 
-    NONE(-1, "绂荤嚎","#4A4035"),
-    IDLE(0, "鏃犱换鍔�","#1F3696"),
-    PICK_UP_WALK(1, "鍙栬揣琛岃蛋","#2196F3"),
-    IN_STATION_OPERATION(2, "杩涚珯杩愯涓�","#2196F3"),
-    STATION_ENTRY_COMPLETED(3, "杩涚珯瀹屾垚","#2196F3"),
-    There_IS_something_waiting_to_leave_the_station(4, "鏈夌墿寰呭嚭绔�","#2196F3"),
-    Exit_walking(5, "鍑虹珯琛岃蛋","#E2C027"),
-    Outbound_request(6, "鍑虹珯璇锋眰","#2196F3"),
-    Outbound_operation_in_progress(7, "鍑虹珯杩愯涓�","#2196F3"),
-    Outbound_completed(8, "鍑虹珯瀹屾垚","#2196F3"),
     PICK_UP_OFFSIDE(9, "灏忚溅鍙栬揣瓒婁綅","#2196F3"),
-    ROAM(11, "婕父","#2196F3"),
-    WAITING(100, "浠诲姟鎵ц瀹屾垚绛夊緟纭","#2196F3"),
-    SOS110(110, "鎶ヨ","#2196F3"),
-    SOS(999, "鏈煡","#2196F3")
+
+    NONE(-1, "绂荤嚎","#C0392B"),
+    IDLE(0, "鏃犱换鍔�","#27AE60"),
+    PICK_UP_WALK(1, "鍙栬揣琛岃蛋","#F39C12"),
+    IN_STATION_OPERATION(2, "杩涚珯杩愯涓�","#3498DB"),
+    STATION_ENTRY_COMPLETED(3, "杩涚珯瀹屾垚","#2980B9"),
+    There_IS_something_waiting_to_leave_the_station(4, "鏈夌墿寰呭嚭绔�","#5DADE2"),
+    Exit_walking(5, "鍑虹珯琛岃蛋","#E67E22"),
+    Outbound_request(6, "鍑虹珯璇锋眰","#2196F3"),
+    Outbound_operation_in_progress(7, "鍑虹珯杩愯涓�","#21618C"),
+    Outbound_completed(8, "鍑虹珯瀹屾垚","#85C1E9"),
+    ROAM(11, "婕父","#95A5A6"),
+    CANCEL(12, "绛夊緟鍙栨秷","#95A5A6"),
+    WALK(20, "璧拌","#F1C40F"),
+    WAITING(100, "浠诲姟鎵ц瀹屾垚绛夊緟纭","#AED6F1"),
+    WAITING101(101, "浠诲姟鎵ц瀹屾垚绛夊緟纭","#AED6F1"),
+    SOS110(110, "鎶ヨ","#E74C3C"),
+    SOS(999, "鏈煡","#FF0000")
     ;
 
     public Integer id;
diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html
index b39d309..6cced2e 100644
--- a/src/main/webapp/views/index.html
+++ b/src/main/webapp/views/index.html
@@ -59,7 +59,7 @@
         }
         .station {
             position: absolute;
-            width: 20px;
+            width: 26px;
             height: 14px;
             text-align: center;
             line-height: 1.5; /* 璋冩暣琛岄珮涓庡瓧浣撳ぇ灏忕殑姣斿�� */
@@ -230,7 +230,7 @@
 <!--                <div v-for="(item,i) in devpPos3" class="bus-item-left2" :style="'top:' + (100 + i * 10) + 'px'">{{item.dev_no}}</div>-->
 <!--            </div>-->
 <!--             Stations on outer ring-->
-            <div v-for="station in tableDataDev" class="station" :style="{ top: station.valueY + 'px', left: station.valueX + 'px' }">{{ station.index }}</div>
+            <div v-for="station in tableDataDev" class="station" :style="{ top: station.valueY + 'px', left: station.valueX + 'px' , backgroundColor: station.modeColor}">{{ station.index }}</div>
 <!--            <div>-->
 <!--                <el-switch-->
 <!--                        style="display: block"-->

--
Gitblit v1.9.1