From 9fb7c7678174c0fea9bf7c96dca8c24b165d0a48 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 04 一月 2025 13:20:57 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvDetailServiceImpl.java |    3 
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java               |    5 
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java              |    6 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/ActionServiceImpl.java    |    5 
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java               |   11 +-
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java          |   41 ----------
 /dev/null                                                                                      |   69 -----------------
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java               |   12 +-
 zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/MapDataUtils.java                 |    5 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java       |   11 +-
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java                |    9 +-
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java                |    5 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java       |   35 +++++++-
 13 files changed, 66 insertions(+), 151 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/MapDataUtils.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/MapDataUtils.java
index 8afc00d..979dfa9 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/MapDataUtils.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/utils/MapDataUtils.java
@@ -1,7 +1,6 @@
 package com.zy.acs.manager.common.utils;
 
 import com.alibaba.fastjson.JSON;
-import com.zy.acs.common.utils.GsonUtils;
 import com.zy.acs.framework.common.Cools;
 
 import java.util.*;
@@ -36,10 +35,10 @@
     }
 
     public static String generateWaveNode(String originStr, String waveNode) {
-        List<String> originNode = GsonUtils.fromJsonToList(originStr, String.class);
+        List<String> originNode = JSON.parseArray(originStr, String.class);
         Set<String> set = new HashSet<>(originNode);
         set.add(waveNode);
-        return GsonUtils.toJson(set);
+        return JSON.toJSONString(set);
     }
 
     public static Double getVehicleWaveSafeDistance(Integer diameter, Double factor) {
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java
index d6805f7..4918fd8 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java
@@ -12,7 +12,6 @@
 import com.zy.acs.manager.core.constant.MapDataConstant;
 import com.zy.acs.manager.core.domain.BackpackDto;
 import com.zy.acs.manager.core.domain.VehicleFaultDto;
-import com.zy.acs.manager.manager.entity.Agv;
 import com.zy.acs.manager.manager.entity.AgvDetail;
 import com.zy.acs.manager.manager.entity.Code;
 import com.zy.acs.manager.manager.service.*;
@@ -64,15 +63,15 @@
         IMessageBody msgBody = protocol.getMessageBody();
         assert msgBody != null;
 
-        Agv agv = agvService.selectByUuid(protocol.getAgvNo());
-        if (null == agv) {
+        Long agvId = agvService.getAgvId(protocol.getAgvNo());
+        if (null == agvId) {
             log.warn("Agv [{}] 灏氭湭閴存潈 锛侊紒锛�", protocol.getAgvNo());
             return;
         }
-        AgvDetail detail = agvDetailService.selectByAgvId(agv.getId());
+        AgvDetail detail = agvDetailService.selectByAgvId(agvId);
         if (null == detail) {
             detail = new AgvDetail();
-            detail.setAgvId(agv.getId());
+            detail.setAgvId(agvId);
             if (!agvDetailService.save(detail)) {
                 log.error("Agv [{}] 璇︽儏鏇存柊澶辫触 锛侊紒锛�", protocol.getAgvNo());
                 return;
@@ -89,7 +88,7 @@
                 mapService.unlockPath(protocol.getAgvNo(), agv_12_up.getQrCode());
             });
             // finish jam
-            threadPoolRegulator.getInstance().execute(() -> jamService.checkIfFinish(agv.getId(), agv_12_up.getQrCode()));
+            threadPoolRegulator.getInstance().execute(() -> jamService.checkIfFinish(agvId, agv_12_up.getQrCode()));
 
 //            websocketService.agvInfoBroadcastOnPos(new WebsocketDto<AGV_12_UP>("agv", agv.getUuid(), agv_12_up));
             this.sync(agv_12_up, detail);
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
index 69163e1..b389fe9 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
@@ -187,17 +187,17 @@
     // calculate wight = backpack + distance
     private int calcAllocateWeight(String agvNo, Task task) {
         int weight = 0;
-        Agv agv = agvService.selectByUuid(agvNo);
+        Long agvId = agvService.getAgvId(agvNo);
 
         // backpack
-        List<Task> transportTasks = taskService.findTransportTasksByAgv(agv.getId());
+        List<Task> transportTasks = taskService.findTransportTasksByAgv(agvId);
         if (!Cools.isEmpty(transportTasks)) {
             weight = weight + transportTasks.size() * 100000;
         }
 
         // distance
         // from
-        AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId());
+        AgvDetail agvDetail = agvDetailService.selectByAgvId(agvId);
         Code agvCurrCode = codeService.getById(agvDetail.getRecentCode());
         Double[] fromPosition = new Double[]{agvCurrCode.getX(), agvCurrCode.getY()};
         // to
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java
index 3a76b5a..00eed5b 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java
@@ -7,7 +7,6 @@
 import com.zy.acs.framework.common.RadixTools;
 import com.zy.acs.framework.common.SnowflakeIdWorker;
 import com.zy.acs.manager.core.domain.VehicleFaultDto;
-import com.zy.acs.manager.manager.entity.Agv;
 import com.zy.acs.manager.manager.entity.VehFaultRec;
 import com.zy.acs.manager.manager.service.AgvDetailService;
 import com.zy.acs.manager.manager.service.AgvService;
@@ -44,11 +43,11 @@
 
             AgvErrorType errorType = AgvErrorType.query(agv_04_up.getHexFaultId());
 
-            Agv agv = agvService.selectByUuid(vehicle);
+            Long agvId = agvService.getAgvId(vehicle);
 
             VehFaultRec vehFaultRec = new VehFaultRec();
             vehFaultRec.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
-            vehFaultRec.setAgvId(agv.getId());
+            vehFaultRec.setAgvId(agvId);
             vehFaultRec.setFaultNo(String.valueOf(agv_04_up.getFaultId()));
             vehFaultRec.setFaultHex(agv_04_up.getHexFaultId());
             vehFaultRec.setFaultName(null != errorType ? errorType.desc : "undefined");
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
index d213f35..bbc1028 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
@@ -66,17 +66,18 @@
     }
 
     private void patrolOfMove(String agvNo) {
-        Agv agv = agvService.selectByUuid(agvNo);
-        AgvDetail agvDetail = agvDetailService.selectMajorByAgvId(agv.getId());
+        Long agvId = agvService.getAgvId(agvNo);
+        AgvDetail agvDetail = agvDetailService.selectMajorByAgvId(agvId);
         if (taskService.count(new LambdaQueryWrapper<Task>()
-                .eq(Task::getAgvId, agv.getId())
+                .eq(Task::getAgvId, agvId)
                 .in(Task::getTaskSts, TaskStsType.ASSIGN.val(), TaskStsType.PROGRESS.val())
                 ) > 0) {
             return;
         }
-        if (!agvService.judgeEnable(agv.getId())) {
+        if (!agvService.judgeEnable(agvId)) {
             return;
         }
+        Agv agv = agvService.getById(agvId);
         Code destinationCode = this.getDestinationCode(agv, agvDetail);
         if (null == destinationCode) {
             return;
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
index 8f7ed9f..e556498 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -304,25 +304,25 @@
                             } else {
 
                                 // block vehicle info
-                                Agv blockAgv = agvService.selectByUuid(blockAgvNo);
-                                String blockAgvCode = codeService.getById(agvDetailService.selectByAgvId(blockAgv.getId()).getRecentCode()).getData();
+                                Long blockAgvId = agvService.getAgvId(blockAgvNo);
+                                String blockAgvCode = codeService.getById(agvDetailService.selectByAgvId(blockAgvId).getRecentCode()).getData();
 
                                 // create new jam if already notify the avoid vehicle
-                                if (!Cools.isEmpty(jam.getAvoAgv(), jam.getAvoSeg()) && !blockAgv.getId().equals(jam.getAvoAgv())) {
+                                if (!Cools.isEmpty(jam.getAvoAgv(), jam.getAvoSeg()) && !blockAgvId.equals(jam.getAvoAgv())) {
                                     jam = this.setupNewJam(jam, agv, startCode, segment, draftPath);
                                 }
 
                                 do {
 
                                     // 闃诲杞﹁締姝e湪鍘熷湴浣滀笟锛岀瓑寰� ===>> 瓒呰繃绛夊緟鏃堕棿锛岀粫璺�
-                                    List<Segment> runningSegList = segmentService.getByAgvAndState(blockAgv.getId(), SegmentStateType.RUNNING.toString());
+                                    List<Segment> runningSegList = segmentService.getByAgvAndState(blockAgvId, SegmentStateType.RUNNING.toString());
                                     if (!Cools.isEmpty(runningSegList)) {
                                         maxJamTimeoutFactor = 1;
                                         break;
                                     }
 
                                     // 鍒ゆ柇涓嬩釜浠诲姟鏄惁涓哄師鍦颁换鍔★紝濡傛灉鏄垯绛夊緟 ===>> 瓒呰繃绛夊緟鏃堕棿锛岀粫璺紱濡傛灉涓嶆槸锛岃闃诲杞﹁締閬胯
-                                    List<Segment> waitingSegList = segmentService.getJustWaitingSeg(blockAgv.getId());
+                                    List<Segment> waitingSegList = segmentService.getJustWaitingSeg(blockAgvId);
                                     if (null != waitingSegList
                                             && waitingSegList.stream().anyMatch(
                                             waitingSeg -> waitingSeg.getEndNode().equals(codeService.selectByData(blockAgvCode).getId())
@@ -336,7 +336,7 @@
                                         if (jam.getCycleAvo() == 1) {
                                             jam.setCycleCode(endCode.getId());
                                         }
-                                        jam.setAvoAgv(blockAgv.getId());
+                                        jam.setAvoAgv(blockAgvId);
                                         jam.setNotifyTime(new Date());
                                         if (!jamService.updateById(jam)) {
                                             throw new CoolException(jam.getUuid() + "-jam failed to update锛侊紒锛�");
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java
index 0210277..d202df8 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java
@@ -4,10 +4,9 @@
 
 import java.io.Serializable;
 import java.util.Objects;
-import java.util.Optional;
 
 /**
- * A*瀵昏矾绠楁硶Node鑺傜偣
+ * Node鑺傜偣
  */
 @Data
 public class NavigateNode implements Comparable<NavigateNode>, Cloneable, Serializable {
@@ -19,14 +18,8 @@
     private int z;  //鍧愭爣z(楂樺害)
 
     private int F;  //缁煎悎鑺辫垂鐨勬鏁�
-    private int G;  //宸茬粡鑺辫垂鐨勬鏁�
-    private int H;  //灏嗚鑺辫垂鐨勬鏁�
 
     private NavigateNode parent;    //鐖惰妭鐐�
-    private Boolean turningPoint;   //鏄惁涓烘嫄鐐�
-    private String direction;   //琛岃蛋鏂瑰悜
-    private Integer lastDistance;   // 璺濈涓婁釜鑺傜偣璺濈
-    private Integer moveDistance;   // 鎬昏璧拌窛绂�
     private Integer weight;        // G 鏉冮噸
 
     private String codeData;
@@ -40,25 +33,6 @@
         this.x = x;
         this.y = y;
         this.codeData = codeData;
-    }
-
-    //閫氳繃缁撶偣鐨勫潗鏍囧拰鐩爣缁撶偣鐨勫潗鏍囧彲浠ヨ绠楀嚭F锛� G锛� H涓変釜灞炴��
-    //闇�瑕佷紶鍏ヨ繖涓妭鐐圭殑涓婁竴涓妭鐐瑰拰鏈�缁堢殑缁撶偣
-    public void initNode(NavigateNode father, NavigateNode end) {
-        this.parent = father;
-        if (this.parent != null) {
-            //璧拌繃鐨勬鏁扮瓑浜庣埗鑺傜偣璧拌繃鐨勬鏁板姞涓�
-            this.G = father.G
-                    + Optional.ofNullable(this.lastDistance).orElse(0)
-                    + Optional.ofNullable(this.weight).orElse(0);
-        } else { //鐖惰妭鐐逛负绌轰唬琛ㄥ畠鏄涓�涓粨鐐�
-            this.G = 0;
-        }
-
-        //浠ヤ笅璁$畻鏂规涓虹畻娉曞師濮嬫柟妗堬紝娌℃湁鍘绘嫄鐐规柟妗堛�傚凡琚玈olution璁$畻鏃惰嚜鍔ㄨ鐩栥��
-        //璁$畻閫氳繃鐜板湪鐨勭粨鐐圭殑浣嶇疆鍜屾渶缁堢粨鐐圭殑浣嶇疆璁$畻H鍊�(鏇煎搱椤挎硶锛氬潗鏍囧垎鍒彇宸�肩浉鍔�)
-        this.H = Math.abs(this.x - end.x) + Math.abs(this.y - end.y);
-        this.F = this.G + this.H;
     }
 
     @Override
@@ -87,19 +61,6 @@
     @Override
     public int hashCode() {
         return Objects.hash(x, y);
-    }
-
-    public void reset() {
-        this.F = 0;
-        this.G = 0;
-        this.H = 0;
-        this.parent = null;
-        this.turningPoint = null;
-        this.direction = null;
-        this.lastDistance = null;
-        this.moveDistance = null;
-        this.weight = null;
-        this.codeData = null;
     }
 
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java
deleted file mode 100644
index 9834a0a..0000000
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.zy.acs.manager.core.service.astart;
-
-import org.apache.commons.pool2.BasePooledObjectFactory;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.impl.DefaultPooledObject;
-
-public class NavigateNodeFactory extends BasePooledObjectFactory<NavigateNode> {
-
-    @Override
-    public NavigateNode create() throws Exception {
-        // 鍒涘缓涓�涓粯璁ょ殑 NavigateNode 瀹炰緥锛屽潗鏍囧皢鍦ㄤ娇鐢ㄦ椂璁剧疆
-        return new NavigateNode(0, 0);
-    }
-
-    @Override
-    public PooledObject<NavigateNode> wrap(NavigateNode node) {
-        return new DefaultPooledObject<>(node);
-    }
-
-    @Override
-    public void passivateObject(PooledObject<NavigateNode> p) throws Exception {
-        // 鍦ㄥ璞¤褰掕繕鍒版睜涓椂閲嶇疆鍏剁姸鎬�
-        p.getObject().reset();
-    }
-}
\ No newline at end of file
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java
deleted file mode 100644
index 7a51eb7..0000000
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.zy.acs.manager.core.service.astart;
-
-import com.alibaba.fastjson.JSON;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.pool2.ObjectPool;
-import org.apache.commons.pool2.impl.GenericObjectPool;
-import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PostConstruct;
-
-@Slf4j
-@Component
-public class NavigateNodePool {
-
-    private ObjectPool<NavigateNode> pool;
-
-    @PostConstruct
-    public void init() {
-        GenericObjectPoolConfig<NavigateNode> config = new GenericObjectPoolConfig<>();
-        config.setMaxTotal(30000); // 閰嶇疆姹犵殑鏈�澶у璞℃暟閲�
-        config.setMinIdle(30000); // 鏈�灏忕┖闂插璞℃暟锛屽彲浠ユ牴鎹渶姹傝皟鏁�
-        config.setMaxIdle(30000); // 鏈�澶х┖闂插璞℃暟锛屽彲浠ユ牴鎹渶姹傝皟鏁�
-        config.setBlockWhenExhausted(true); // 姹犺�楀敖鏃堕樆濉�
-        config.setMaxWaitMillis(1000); // 姹犺�楀敖鏃舵渶澶х瓑寰呮椂闂�
-        pool = new GenericObjectPool<>(new NavigateNodeFactory(), config);
-    }
-
-
-    // 鑾峰彇瀵硅薄
-    public NavigateNode borrowObject() {
-        try {
-//            System.out.println("numActive:" + pool.getNumActive());
-//            System.out.println("numIdle:" + pool.getNumIdle());
-            return pool.borrowObject();
-        } catch (Exception e) {
-            log.error("borrowObject", e);
-            throw new RuntimeException("Failed to borrow NavigateNode from pool", e);
-        }
-    }
-
-    // 褰掕繕瀵硅薄
-    public void returnObject(NavigateNode node) {
-        if (node != null) {
-            try {
-                pool.returnObject(node);
-                System.out.println("numIdle:" + pool.getNumIdle());
-            } catch (Exception e) {
-                log.error("returnObject", e);
-                // 濡傛灉褰掕繕澶辫触锛屽彲浠ラ�夋嫨閿�姣佸璞�
-                try {
-                    pool.invalidateObject(node);
-                } catch (Exception ex) {
-                    throw new RuntimeException(ex);
-                }
-            }
-        }
-    }
-
-
-    // 閿�姣佸璞℃睜
-    public void close() {
-        try {
-            pool.close();
-        } catch (Exception e) {
-            log.error("close", e);
-        }
-    }
-}
\ No newline at end of file
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java
index 82a11cc..521c282 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java
@@ -7,7 +7,6 @@
 import com.zy.acs.manager.core.domain.VehicleDto;
 import com.zy.acs.manager.manager.controller.result.AgvResult;
 import com.zy.acs.manager.manager.entity.Agv;
-import com.zy.acs.manager.manager.entity.Task;
 
 import java.util.List;
 
@@ -23,7 +22,9 @@
 
     Agv selectByUuid(String uuid);
 
-    Agv queryIdle(Task task);
+    Long getAgvId(String uuid);
+
+    String getAgvNo(Long agvId);
 
     Boolean judgeEnable(Long agvId);
 
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/ActionServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/ActionServiceImpl.java
index 80c01df..b65be67 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/ActionServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/ActionServiceImpl.java
@@ -2,7 +2,6 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zy.acs.manager.manager.entity.Action;
-import com.zy.acs.manager.manager.entity.Agv;
 import com.zy.acs.manager.manager.enums.ActionStsType;
 import com.zy.acs.manager.manager.enums.ActionTypeType;
 import com.zy.acs.manager.manager.mapper.ActionMapper;
@@ -108,8 +107,8 @@
 
     @Override
     public List<String> getPathListByAgv(String agvNo) {
-        Agv agv = agvService.selectByUuid(agvNo);
-        return this.baseMapper.selectSortCodeByAgv(agv.getId());
+        Long agvId = agvService.getAgvId(agvNo);
+        return this.baseMapper.selectSortCodeByAgv(agvId);
     }
 
     @Override
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvDetailServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvDetailServiceImpl.java
index ee09499..df6f396 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvDetailServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvDetailServiceImpl.java
@@ -32,8 +32,7 @@
 
     @Override
     public AgvDetail selectByAgvNo(String agvNo) {
-        Agv agv = agvService.selectByUuid(agvNo);
-        return this.selectByAgvId(agv.getId());
+        return this.selectByAgvId(agvService.getAgvId(agvNo));
     }
 
     @Override
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
index 296f944..d30882b 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
@@ -11,7 +11,10 @@
 import com.zy.acs.manager.common.domain.PageResult;
 import com.zy.acs.manager.core.domain.VehicleDto;
 import com.zy.acs.manager.manager.controller.result.AgvResult;
-import com.zy.acs.manager.manager.entity.*;
+import com.zy.acs.manager.manager.entity.Agv;
+import com.zy.acs.manager.manager.entity.AgvDetail;
+import com.zy.acs.manager.manager.entity.AgvModel;
+import com.zy.acs.manager.manager.entity.Segment;
 import com.zy.acs.manager.manager.enums.SegmentStateType;
 import com.zy.acs.manager.manager.mapper.AgvMapper;
 import com.zy.acs.manager.manager.service.*;
@@ -20,8 +23,11 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.PostConstruct;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 瀛楀吀鏁版嵁Service瀹炵幇
@@ -34,6 +40,10 @@
 public class AgvServiceImpl extends ServiceImpl<AgvMapper, Agv> implements AgvService {
 
     private final RedisSupport redis = RedisSupport.defaultRedisSupport;
+
+    private static final Map<String, Long> AGV_ID_MAP = new HashMap<>();
+
+    private static final Map<Long, String> AGV_NO_MAP = new HashMap<>();
 
     @Autowired
     private AgvDetailService agvDetailService;
@@ -48,6 +58,14 @@
     @Autowired
     private TaskService taskService;
 
+    @PostConstruct
+    public void init() {
+        for (Agv agv : this.list()) {
+            AGV_ID_MAP.put(agv.getUuid(), agv.getId());
+            AGV_NO_MAP.put(agv.getId(), agv.getUuid());
+        }
+    }
+
     @Override
     public PageResult<AgvResult> pageRel(PageParam<Agv, BaseParam> pageParam) {
         return new PageResult<>(this.baseMapper.selectPageRel(pageParam, pageParam.checkoutMap()), pageParam.getTotal());
@@ -59,14 +77,23 @@
     }
 
     @Override
-    public Agv queryIdle(Task task) {
-        if (Cools.isEmpty(task)) {
+    public Long getAgvId(String uuid) {
+        if (Cools.isEmpty(uuid)) {
             return null;
         }
-        return null;
+        return AGV_ID_MAP.get(uuid);
     }
 
     @Override
+    public String getAgvNo(Long agvId) {
+        if (Cools.isEmpty(agvId)) {
+            return null;
+        }
+        return AGV_NO_MAP.get(agvId);
+    }
+
+
+    @Override
     public Boolean judgeEnable(Long agvId) {
         return this.judgeEnable(agvId, false);
     }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java
index 137f08f..7f37644 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java
@@ -3,7 +3,6 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zy.acs.framework.common.Cools;
-import com.zy.acs.manager.manager.entity.Agv;
 import com.zy.acs.manager.manager.entity.Code;
 import com.zy.acs.manager.manager.entity.Jam;
 import com.zy.acs.manager.manager.entity.Segment;
@@ -56,7 +55,7 @@
         List<Jam> jams = this.list(new LambdaQueryWrapper<Jam>()
                 .eq(Jam::getJamAgv, jamAgv)
                 .eq(Jam::getJamSeg, jamSeg)
-                .eq(Jam::getAvoAgv, agvService.selectByUuid(avoAgvNo).getId())
+                .eq(Jam::getAvoAgv, agvService.getAgvId(avoAgvNo))
                 .eq(Jam::getCycleAvo, 1)
                 .ne(Jam::getState, JamStateType.DEPRECATED.toString())
 //                .eq(Jam::getState, JamStateType.RUNNING.toString())
@@ -69,14 +68,14 @@
 
     @Override
     public List<Jam> getJamFromSegmentByAvo(Segment jamSeg, String avoAgvNo) {
-        Agv avoAgv = agvService.selectByUuid(avoAgvNo);
-        return this.baseMapper.selectJamFromSegmentByAvo(jamSeg.getId(), avoAgv.getId());
+        Long avoAgvId = agvService.getAgvId(avoAgvNo);
+        return this.baseMapper.selectJamFromSegmentByAvo(jamSeg.getId(), avoAgvId);
     }
 
     @Override
     public List<Jam> getUnfinishedAvoSegByAvo(String avoAgvNo, Segment currSeg) {
-        Agv avoAgv = agvService.selectByUuid(avoAgvNo);
-        return this.baseMapper.selectUnfinishedAvoSegByAvo(avoAgv.getId(), null);
+        Long agvId = agvService.getAgvId(avoAgvNo);
+        return this.baseMapper.selectUnfinishedAvoSegByAvo(agvId, null);
     }
 
     @Override

--
Gitblit v1.9.1