From 481c47f602eb0ec69d4f740f84680348f2d86b79 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 24 十二月 2024 09:49:47 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/StaStsType.java                  |   20 ++-
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/StaTypeType.java                 |   19 ++-
 zy-acs-fake/src/main/java/com/zy/acs/fake/service/impl/AgvDetailServiceImpl.java               |   10 +
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/ActionTypeType.java              |   19 ++-
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/TaskTypeType.java                |   19 ++-
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/ActionStsType.java               |   19 ++-
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/TaskStsType.java                 |   18 ++-
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/AgvDetailMapper.java            |    4 
 zy-acs-fake/src/main/resources/mapper/ActionStsMapper.xml                                      |    2 
 zy-acs-fake/src/main/resources/mapper/ActionTypeMapper.xml                                     |    2 
 zy-acs-manager/src/main/resources/mapper/manager/AgvDetailMapper.xml                           |   15 ++
 zy-acs-fake/src/main/java/com/zy/acs/fake/service/AgvDetailService.java                        |    3 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/AgvStsType.java                  |   19 ++-
 zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java                     |   26 +--
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/BusStsType.java                  |   18 ++-
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvDetailService.java          |    4 
 zy-acs-fake/src/main/java/com/zy/acs/fake/mapper/AgvDetailMapper.java                          |    4 
 zy-acs-fake/src/main/resources/mapper/AgvMapper.xml                                            |    2 
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java            |    2 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvDetailServiceImpl.java |   10 +
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/LocTypeType.java                 |   19 ++-
 zy-acs-fake/src/main/resources/mapper/CodeMapper.xml                                           |    2 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/AgvModelType.java                |   19 ++-
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/LocStsType.java                  |   19 ++-
 zy-acs-fake/src/main/resources/mapper/AgvDetailMapper.xml                                      |   15 +-
 25 files changed, 211 insertions(+), 98 deletions(-)

diff --git a/zy-acs-fake/src/main/java/com/zy/acs/fake/mapper/AgvDetailMapper.java b/zy-acs-fake/src/main/java/com/zy/acs/fake/mapper/AgvDetailMapper.java
index e1ed4b3..ad203e4 100644
--- a/zy-acs-fake/src/main/java/com/zy/acs/fake/mapper/AgvDetailMapper.java
+++ b/zy-acs-fake/src/main/java/com/zy/acs/fake/mapper/AgvDetailMapper.java
@@ -6,8 +6,8 @@
 
 public interface AgvDetailMapper extends BaseMapper<AgvDetail> {
 
-    int updatePosCode(@Param("id") Long id, @Param("codeId") Long codeId);
+    int updatePosCodeByAgvId(@Param("agvId") Long agvId, @Param("codeId") Long codeId);
 
-    int updateUnPosCode(@Param("id") Long id, @Param("lastCode") Long lastCode);
+    Boolean updateAngleByAgvId(@Param("agvId") Long agvId, @Param("angle") Double angle);
 
 }
diff --git a/zy-acs-fake/src/main/java/com/zy/acs/fake/service/AgvDetailService.java b/zy-acs-fake/src/main/java/com/zy/acs/fake/service/AgvDetailService.java
index 0fe1eb0..44ace1f 100644
--- a/zy-acs-fake/src/main/java/com/zy/acs/fake/service/AgvDetailService.java
+++ b/zy-acs-fake/src/main/java/com/zy/acs/fake/service/AgvDetailService.java
@@ -8,5 +8,8 @@
 
     AgvDetail selectByAgvId(Long agvId);
 
+    Boolean updatePosCodeByAgvId(Long agvId, Long codeId);
+
+    Boolean updateAngleByAgvId(Long agvId, Double angle);
 
 }
diff --git a/zy-acs-fake/src/main/java/com/zy/acs/fake/service/impl/AgvDetailServiceImpl.java b/zy-acs-fake/src/main/java/com/zy/acs/fake/service/impl/AgvDetailServiceImpl.java
index 71c1438..f2cf335 100644
--- a/zy-acs-fake/src/main/java/com/zy/acs/fake/service/impl/AgvDetailServiceImpl.java
+++ b/zy-acs-fake/src/main/java/com/zy/acs/fake/service/impl/AgvDetailServiceImpl.java
@@ -20,4 +20,14 @@
         return this.getOne(new LambdaQueryWrapper<AgvDetail>().eq(AgvDetail::getAgvId, agvId));
     }
 
+    @Override
+    public Boolean updatePosCodeByAgvId(Long agvId, Long codeId) {
+        return this.baseMapper.updatePosCodeByAgvId(agvId, codeId) > 0;
+    }
+
+    @Override
+    public Boolean updateAngleByAgvId(Long agvId, Double angle) {
+        return this.baseMapper.updateAngleByAgvId(agvId, angle);
+    }
+
 }
diff --git a/zy-acs-fake/src/main/resources/mapper/ActionStsMapper.xml b/zy-acs-fake/src/main/resources/mapper/ActionStsMapper.xml
index 6ca6bac..c47afae 100644
--- a/zy-acs-fake/src/main/resources/mapper/ActionStsMapper.xml
+++ b/zy-acs-fake/src/main/resources/mapper/ActionStsMapper.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.zy.acs.manager.fake.ActionStsMapper">
+<mapper namespace="com.zy.acs.fake.mapper.ActionStsMapper">
 
     <!-- 鍏宠仈鏌ヨsql -->
     <sql id="selectSql">
diff --git a/zy-acs-fake/src/main/resources/mapper/ActionTypeMapper.xml b/zy-acs-fake/src/main/resources/mapper/ActionTypeMapper.xml
index 89e6e7a..21b93ff 100644
--- a/zy-acs-fake/src/main/resources/mapper/ActionTypeMapper.xml
+++ b/zy-acs-fake/src/main/resources/mapper/ActionTypeMapper.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.zy.acs.manager.fake.ActionTypeMapper">
+<mapper namespace="com.zy.acs.fake.mapper.ActionTypeMapper">
 
     <!-- 鍏宠仈鏌ヨsql -->
     <sql id="selectSql">
diff --git a/zy-acs-fake/src/main/resources/mapper/AgvDetailMapper.xml b/zy-acs-fake/src/main/resources/mapper/AgvDetailMapper.xml
index a5dd373..5de09ec 100644
--- a/zy-acs-fake/src/main/resources/mapper/AgvDetailMapper.xml
+++ b/zy-acs-fake/src/main/resources/mapper/AgvDetailMapper.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.zy.acs.manager.fake.AgvDetailMapper">
+<mapper namespace="com.zy.acs.fake.mapper.AgvDetailMapper">
 
     <!-- 鍏宠仈鏌ヨsql -->
     <sql id="selectSql">
@@ -26,22 +26,19 @@
         </where>
     </sql>
 
-    <update id="updatePosCode">
+    <update id="updatePosCodeByAgvId">
         update man_agv_detail
         set code = #{codeId},
-        last_code = null,
         pos = 1
         where 1=1
-        and id = #{id}
+        and agv_id = #{agvId}
     </update>
 
-    <update id="updateUnPosCode">
+    <update id="updateAngleByAgvId">
         update man_agv_detail
-        set last_code = #{lastCode},
-        code = null,
-        pos = 0
+        set agv_angle = #{angle}
         where 1=1
-        and id = #{id}
+        and agv_id = #{agvId}
     </update>
 
 </mapper>
diff --git a/zy-acs-fake/src/main/resources/mapper/AgvMapper.xml b/zy-acs-fake/src/main/resources/mapper/AgvMapper.xml
index 74419aa..f76e441 100644
--- a/zy-acs-fake/src/main/resources/mapper/AgvMapper.xml
+++ b/zy-acs-fake/src/main/resources/mapper/AgvMapper.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.zy.acs.manager.fake.AgvMapper">
+<mapper namespace="com.zy.acs.fake.mapper.AgvMapper">
 
 </mapper>
diff --git a/zy-acs-fake/src/main/resources/mapper/CodeMapper.xml b/zy-acs-fake/src/main/resources/mapper/CodeMapper.xml
index 4489d70..d1cf62f 100644
--- a/zy-acs-fake/src/main/resources/mapper/CodeMapper.xml
+++ b/zy-acs-fake/src/main/resources/mapper/CodeMapper.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.zy.acs.manager.fake.CodeMapper">
+<mapper namespace="com.zy.acs.fake.mapper.CodeMapper">
 
     <!-- 鍏宠仈鏌ヨsql -->
     <sql id="selectSql">
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
index 10adeb2..79e4062 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
@@ -136,9 +136,7 @@
 
                     List<String> actionGroupIds = actionService.selectPrepareGroup();
                     for (String actionGroupId : actionGroupIds) {
-                        long startTime = System.currentTimeMillis();
                         mainService.publishAction(actionGroupId);
-                        log.info("publish action calculation spend {} ms", System.currentTimeMillis() - startTime);
                     }
 
                 } catch (Exception e) {
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java
index a09ad38..0cb4de9 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java
@@ -79,15 +79,11 @@
     }
 
     private void processAction(Agv agv, Action action) throws InterruptedException {
-        AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId());
-        if (agvDetail == null) {
-            return;
-        }
 
         switch (Objects.requireNonNull(ActionTypeType.get(action.getActionTypeEl()))) {
             case TurnCorner:
-                simulateWalking(agv, agvDetail, action);
-                simulateRotating(agv, agvDetail, action);
+                simulateWalking(agv, action);
+                simulateRotating(agv, action);
                 break;
             case StraightBackUnturnable:
             case StraightBackTurnable:
@@ -95,7 +91,7 @@
             case StraightAheadTurnable:
             case FinishPath:
             case DockingCharge:
-                simulateWalking(agv, agvDetail, action);
+                simulateWalking(agv, action);
                 break;
             case ReadyTakeFromShelvesLoc:
             case ReadyReleaseToShelvesLoc:
@@ -107,16 +103,17 @@
     }
 
 
-    private void simulateWalking(Agv agv, AgvDetail agvDetail, Action action) throws InterruptedException {
+    private void simulateWalking(Agv agv, Action action) throws InterruptedException {
         Code code = codeService.selectByData(action.getCode());
-        agvDetail.setPos(1);
-        agvDetail.setCode(code.getId());
+//        agvDetail.setPos(1);
+//        agvDetail.setCode(code.getId());
         // 妯℃嫙鐢甸噺娑堣��
 //        agvDetail.setVol(agvDetail.getVol() - 0.1 * distanceToMove); // 鏍规嵁璺濈娑堣�楃數閲�
 
         Thread.sleep(MapDataWsScheduler.WEBSOCKET_BROADCAST_INTERVAL);
 
-        agvDetailService.updateById(agvDetail);
+        agvDetailService.updatePosCodeByAgvId(agv.getId(), code.getId());
+//        agvDetailService.updateById(agvDetail);
 
         mapService.unlockPath(agv.getUuid(), code.getData());
         jamService.checkIfFinish(agv.getId(), code.getData());
@@ -129,17 +126,16 @@
      * 妯℃嫙AGV鏃嬭浆
      *
      * @param agv        褰撳墠AGV
-     * @param agvDetail  AGV璇︾粏淇℃伅
      * @param action     褰撳墠鍔ㄤ綔
      */
-    private void simulateRotating(Agv agv, AgvDetail agvDetail, Action action) throws InterruptedException {
+    private void simulateRotating(Agv agv, Action action) throws InterruptedException {
         double actionAngle = Double.parseDouble(action.getParams());
-        agvDetail.setAgvAngle(actionAngle);
+//        agvDetail.setAgvAngle(actionAngle);
         // 妯℃嫙鐢甸噺娑堣��?
 //        agvDetail.setVol(agvDetail.getVol() - 0.05 * (angleToRotate / 15.0)); // 鏍规嵁瑙掑害娑堣�楃數閲�
 
         Thread.sleep(MapDataWsScheduler.WEBSOCKET_BROADCAST_INTERVAL);
-        agvDetailService.updateById(agvDetail);
+        agvDetailService.updateAngleByAgvId(agv.getId(), actionAngle);
         action.setActionSts(ActionStsType.FINISH.val());
         actionService.updateById(action);
     }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/ActionStsType.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/ActionStsType.java
index 1e94e9b..db6930c 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/ActionStsType.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/ActionStsType.java
@@ -5,6 +5,9 @@
 import com.zy.acs.manager.manager.entity.ActionSts;
 import com.zy.acs.manager.manager.service.ActionStsService;
 
+import java.util.EnumMap;
+import java.util.Map;
+
 public enum ActionStsType {
 
     PREPARE,
@@ -16,13 +19,17 @@
     ActionStsType() {
     }
 
+    private static final Map<ActionStsType, Long> cache = new EnumMap<>(ActionStsType.class);
+
     public long val() {
-        ActionStsService service = SpringUtils.getBean(ActionStsService.class);
-        ActionSts actionSts = service.selectByUuid(this.toString());
-        if (actionSts == null) {
-            throw new BusinessException("ActionStsType Error!");
-        }
-        return actionSts.getId();
+        return cache.computeIfAbsent(this, key -> {
+            ActionStsService service = SpringUtils.getBean(ActionStsService.class);
+            ActionSts actionSts = service.selectByUuid(this.toString());
+            if (actionSts == null) {
+                throw new BusinessException("ActionStsType Error!");
+            }
+            return actionSts.getId();
+        });
     }
 
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/ActionTypeType.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/ActionTypeType.java
index aaac6b4..94af12f 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/ActionTypeType.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/ActionTypeType.java
@@ -5,6 +5,9 @@
 import com.zy.acs.manager.manager.entity.ActionType;
 import com.zy.acs.manager.manager.service.ActionTypeService;
 
+import java.util.EnumMap;
+import java.util.Map;
+
 public enum ActionTypeType {
 
     TurnCorner("杞集"), // 杞集
@@ -25,13 +28,17 @@
     }
     public String desc;
 
+    private static final Map<ActionTypeType, Long> cache = new EnumMap<>(ActionTypeType.class);
+
     public long val() {
-        ActionTypeService service = SpringUtils.getBean(ActionTypeService.class);
-        ActionType actionType = service.selectByUuid(this.toString());
-        if (actionType == null) {
-            throw new BusinessException("ActionTypeType Error!");
-        }
-        return actionType.getId();
+        return cache.computeIfAbsent(this, key -> {
+            ActionTypeService service = SpringUtils.getBean(ActionTypeService.class);
+            ActionType actionType = service.selectByUuid(this.toString());
+            if (actionType == null) {
+                throw new BusinessException("ActionTypeType Error!");
+            }
+            return actionType.getId();
+        });
     }
 
     public static ActionTypeType get(String el) {
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/AgvModelType.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/AgvModelType.java
index ab1bcd1..3b9bbbd 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/AgvModelType.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/AgvModelType.java
@@ -5,6 +5,9 @@
 import com.zy.acs.manager.manager.entity.AgvModel;
 import com.zy.acs.manager.manager.service.AgvModelService;
 
+import java.util.EnumMap;
+import java.util.Map;
+
 public enum AgvModelType {
 
     CTU_BOX_TRANSPORT_AGV,
@@ -17,13 +20,17 @@
     AgvModelType() {
     }
 
+    private static final Map<AgvModelType, Long> cache = new EnumMap<>(AgvModelType.class);
+
     public long val() {
-        AgvModelService service = SpringUtils.getBean(AgvModelService.class);
-        AgvModel agvModel = service.selectByType(this.toString());
-        if (agvModel == null) {
-            throw new BusinessException("AgvModelType Error!");
-        }
-        return agvModel.getId();
+        return cache.computeIfAbsent(this, key -> {
+            AgvModelService service = SpringUtils.getBean(AgvModelService.class);
+            AgvModel agvModel = service.selectByType(this.toString());
+            if (agvModel == null) {
+                throw new BusinessException("AgvModelType Error!");
+            }
+            return agvModel.getId();
+        });
     }
 
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/AgvStsType.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/AgvStsType.java
index c713884..2ffded5 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/AgvStsType.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/AgvStsType.java
@@ -5,6 +5,9 @@
 import com.zy.acs.manager.manager.entity.AgvSts;
 import com.zy.acs.manager.manager.service.AgvStsService;
 
+import java.util.EnumMap;
+import java.util.Map;
+
 public enum AgvStsType {
 
     IDLE,
@@ -14,13 +17,17 @@
     AgvStsType() {
     }
 
+    private static final Map<AgvStsType, Long> cache = new EnumMap<>(AgvStsType.class);
+
     public long val() {
-        AgvStsService service = SpringUtils.getBean(AgvStsService.class);
-        AgvSts agvSts = service.selectByUuid(this.toString());
-        if (agvSts == null) {
-            throw new BusinessException("AgvStsType Error!");
-        }
-        return agvSts.getId();
+        return cache.computeIfAbsent(this, key -> {
+            AgvStsService service = SpringUtils.getBean(AgvStsService.class);
+            AgvSts agvSts = service.selectByUuid(this.toString());
+            if (agvSts == null) {
+                throw new BusinessException("AgvStsType Error!");
+            }
+            return agvSts.getId();
+        });
     }
 
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/BusStsType.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/BusStsType.java
index 478694d..c5602f7 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/BusStsType.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/BusStsType.java
@@ -7,7 +7,9 @@
 import com.zy.acs.manager.manager.service.BusStsService;
 
 import java.util.Arrays;
+import java.util.EnumMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 public enum BusStsType implements DataFieldSortFunc {
@@ -24,13 +26,17 @@
         this.dataSort = dataSort;
     }
 
+    private static final Map<BusStsType, Long> cache = new EnumMap<>(BusStsType.class);
+
     public long val() {
-        BusStsService service = SpringUtils.getBean(BusStsService.class);
-        BusSts busSts = service.selectByUuid(this.toString());
-        if (busSts == null) {
-            throw new BusinessException("BusStsType Error!");
-        }
-        return busSts.getId();
+        return cache.computeIfAbsent(this, key -> {
+            BusStsService service = SpringUtils.getBean(BusStsService.class);
+            BusSts busSts = service.selectByUuid(this.toString());
+            if (busSts == null) {
+                throw new BusinessException("BusStsType Error!");
+            }
+            return busSts.getId();
+        });
     }
 
     @Override
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/LocStsType.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/LocStsType.java
index e83ab60..e314173 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/LocStsType.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/LocStsType.java
@@ -5,6 +5,9 @@
 import com.zy.acs.manager.manager.entity.LocSts;
 import com.zy.acs.manager.manager.service.LocStsService;
 
+import java.util.EnumMap;
+import java.util.Map;
+
 public enum LocStsType {
 
     IDLE,
@@ -18,13 +21,17 @@
     LocStsType() {
     }
 
+    private static final Map<LocStsType, Long> cache = new EnumMap<>(LocStsType.class);
+
     public long val() {
-        LocStsService service = SpringUtils.getBean(LocStsService.class);
-        LocSts locSts = service.selectByUuid(this.toString());
-        if (locSts == null) {
-            throw new BusinessException("LocStsType Error!");
-        }
-        return locSts.getId();
+        return cache.computeIfAbsent(this, key -> {
+            LocStsService service = SpringUtils.getBean(LocStsService.class);
+            LocSts locSts = service.selectByUuid(this.toString());
+            if (locSts == null) {
+                throw new BusinessException("LocStsType Error!");
+            }
+            return locSts.getId();
+        });
     }
 
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/LocTypeType.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/LocTypeType.java
index d9ed8c7..9589269 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/LocTypeType.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/LocTypeType.java
@@ -5,6 +5,9 @@
 import com.zy.acs.manager.manager.entity.LocType;
 import com.zy.acs.manager.manager.service.LocTypeService;
 
+import java.util.EnumMap;
+import java.util.Map;
+
 public enum LocTypeType {
 
     ;
@@ -12,13 +15,17 @@
     LocTypeType() {
     }
 
+    private static final Map<LocTypeType, Long> cache = new EnumMap<>(LocTypeType.class);
+
     public long val() {
-        LocTypeService service = SpringUtils.getBean(LocTypeService.class);
-        LocType locType = service.selectByUuid(this.toString());
-        if (locType == null) {
-            throw new BusinessException("LocTypeType Error!");
-        }
-        return locType.getId();
+        return cache.computeIfAbsent(this, key -> {
+            LocTypeService service = SpringUtils.getBean(LocTypeService.class);
+            LocType locType = service.selectByUuid(this.toString());
+            if (locType == null) {
+                throw new BusinessException("LocTypeType Error!");
+            }
+            return locType.getId();
+        });
     }
 
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/StaStsType.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/StaStsType.java
index 00adde1..1c7a039 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/StaStsType.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/StaStsType.java
@@ -5,6 +5,9 @@
 import com.zy.acs.manager.manager.entity.StaSts;
 import com.zy.acs.manager.manager.service.StaStsService;
 
+import java.util.EnumMap;
+import java.util.Map;
+
 public enum StaStsType {
 
     ;
@@ -12,13 +15,18 @@
     StaStsType() {
     }
 
+    private static final Map<StaStsType, Long> cache = new EnumMap<>(StaStsType.class);
+
+
     public long val() {
-        StaStsService service = SpringUtils.getBean(StaStsService.class);
-        StaSts staSts = service.selectByUuid(this.toString());
-        if (staSts == null) {
-            throw new BusinessException("StaStsType Error!");
-        }
-        return staSts.getId();
+        return cache.computeIfAbsent(this, key -> {
+            StaStsService service = SpringUtils.getBean(StaStsService.class);
+            StaSts staSts = service.selectByUuid(this.toString());
+            if (staSts == null) {
+                throw new BusinessException("StaStsType Error!");
+            }
+            return staSts.getId();
+        });
     }
 
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/StaTypeType.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/StaTypeType.java
index 6af0e78..7eef594 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/StaTypeType.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/StaTypeType.java
@@ -5,6 +5,9 @@
 import com.zy.acs.manager.manager.entity.StaType;
 import com.zy.acs.manager.manager.service.StaTypeService;
 
+import java.util.EnumMap;
+import java.util.Map;
+
 public enum StaTypeType {
 
     IDLE,
@@ -13,13 +16,17 @@
     StaTypeType() {
     }
 
+    private static final Map<StaTypeType, Long> cache = new EnumMap<>(StaTypeType.class);
+
     public long val() {
-        StaTypeService service = SpringUtils.getBean(StaTypeService.class);
-        StaType staType = service.selectByUuid(this.toString());
-        if (staType == null) {
-            throw new BusinessException("StaTypeType Error!");
-        }
-        return staType.getId();
+        return cache.computeIfAbsent(this, key -> {
+            StaTypeService service = SpringUtils.getBean(StaTypeService.class);
+            StaType staType = service.selectByUuid(this.toString());
+            if (staType == null) {
+                throw new BusinessException("StaTypeType Error!");
+            }
+            return staType.getId();
+        });
     }
 
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/TaskStsType.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/TaskStsType.java
index 9ef7231..7b67ea4 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/TaskStsType.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/TaskStsType.java
@@ -7,7 +7,9 @@
 import com.zy.acs.manager.manager.service.TaskStsService;
 
 import java.util.Arrays;
+import java.util.EnumMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 public enum TaskStsType implements DataFieldSortFunc {
@@ -26,13 +28,17 @@
         this.dataSort = dataSort;
     }
 
+    private static final Map<TaskStsType, Long> cache = new EnumMap<>(TaskStsType.class);
+
     public long val() {
-        TaskStsService service = SpringUtils.getBean(TaskStsService.class);
-        TaskSts taskSts = service.selectByUuid(this.toString());
-        if (taskSts == null) {
-            throw new BusinessException("TaskStsType Error!");
-        }
-        return taskSts.getId();
+        return cache.computeIfAbsent(this, key -> {
+            TaskStsService service = SpringUtils.getBean(TaskStsService.class);
+            TaskSts taskSts = service.selectByUuid(key.toString());
+            if (taskSts == null) {
+                throw new BusinessException("TaskStsType Error for " + key);
+            }
+            return taskSts.getId();
+        });
     }
 
     @Override
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/TaskTypeType.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/TaskTypeType.java
index e5695b4..9fe987b 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/TaskTypeType.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/TaskTypeType.java
@@ -5,6 +5,9 @@
 import com.zy.acs.manager.manager.entity.TaskType;
 import com.zy.acs.manager.manager.service.TaskTypeService;
 
+import java.util.EnumMap;
+import java.util.Map;
+
 public enum TaskTypeType {
 
     MOVE,
@@ -19,13 +22,17 @@
     TaskTypeType() {
     }
 
+    private static final Map<TaskTypeType, Long> cache = new EnumMap<>(TaskTypeType.class);
+
     public long val() {
-        TaskTypeService service = SpringUtils.getBean(TaskTypeService.class);
-        TaskType taskType = service.selectByUuid(this.toString());
-        if (taskType == null) {
-            throw new BusinessException("TaskTypeType Error!");
-        }
-        return taskType.getId();
+        return cache.computeIfAbsent(this, key -> {
+            TaskTypeService service = SpringUtils.getBean(TaskTypeService.class);
+            TaskType taskType = service.selectByUuid(this.toString());
+            if (taskType == null) {
+                throw new BusinessException("TaskTypeType Error!");
+            }
+            return taskType.getId();
+        });
     }
 
     public static TaskTypeType get(String el) {
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/AgvDetailMapper.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/AgvDetailMapper.java
index b1a0d27..b0e24ed 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/AgvDetailMapper.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/AgvDetailMapper.java
@@ -10,4 +10,8 @@
 
     int updateUnPosCode(@Param("id") Long id, @Param("lastCode") Long lastCode);
 
+    int updatePosCodeByAgvId(@Param("agvId") Long agvId, @Param("codeId") Long codeId);
+
+    Boolean updateAngleByAgvId(@Param("agvId") Long agvId, @Param("angle") Double angle);
+
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvDetailService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvDetailService.java
index 0a5d90c..cacb293 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvDetailService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvDetailService.java
@@ -13,8 +13,12 @@
 
     Boolean updatePosCode(Long id, Long codeId);
 
+    Boolean updatePosCodeByAgvId(Long agvId, Long codeId);
+
     Boolean updateUnPosCode(Long id, Long codeId);
 
+    Boolean updateAngleByAgvId(Long agvId, Double angle);
+
     Boolean removeByAgvId(Long agvId);
 
     Boolean isPowerLoss(Agv agv, AgvDetail agvDetail, AgvModel agvModel);
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 96fdae3..816efbd 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
@@ -37,11 +37,21 @@
     }
 
     @Override
+    public Boolean updatePosCodeByAgvId(Long agvId, Long codeId) {
+        return this.baseMapper.updatePosCodeByAgvId(agvId, codeId) > 0;
+    }
+
+    @Override
     public Boolean updateUnPosCode(Long id, Long codeId) {
         return this.baseMapper.updateUnPosCode(id, codeId) > 0;
     }
 
     @Override
+    public Boolean updateAngleByAgvId(Long agvId, Double angle) {
+        return this.baseMapper.updateAngleByAgvId(agvId, angle);
+    }
+
+    @Override
     public Boolean removeByAgvId(Long agvId) {
         return baseMapper.delete(new LambdaQueryWrapper<AgvDetail>().eq(AgvDetail::getAgvId, agvId)) > 0;
     }
diff --git a/zy-acs-manager/src/main/resources/mapper/manager/AgvDetailMapper.xml b/zy-acs-manager/src/main/resources/mapper/manager/AgvDetailMapper.xml
index 8af6baa..2239272 100644
--- a/zy-acs-manager/src/main/resources/mapper/manager/AgvDetailMapper.xml
+++ b/zy-acs-manager/src/main/resources/mapper/manager/AgvDetailMapper.xml
@@ -44,4 +44,19 @@
         and id = #{id}
     </update>
 
+    <update id="updatePosCodeByAgvId">
+        update man_agv_detail
+        set code = #{codeId},
+        pos = 1
+        where 1=1
+        and agv_id = #{agvId}
+    </update>
+
+    <update id="updateAngleByAgvId">
+        update man_agv_detail
+        set agv_angle = #{angle}
+        where 1=1
+        and agv_id = #{agvId}
+    </update>
+
 </mapper>

--
Gitblit v1.9.1