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