From b9eef68cc85d30b892a1cd50829341d3dae743b9 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 06 一月 2025 13:00:47 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java | 56 ++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 36 insertions(+), 20 deletions(-) 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 b3ec895..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,12 +77,21 @@ } @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) { @@ -72,32 +99,21 @@ } @Override - public Boolean judgeEnable(Long agvId, Boolean withBattery) { + public Boolean judgeEnable(Long agvId, Boolean isLowBattery) { Agv agv = this.getById(agvId); AgvModel agvModel = agvModelService.getById(agv.getAgvModel()); if (0 < segmentService.count(new LambdaQueryWrapper<Segment>() .eq(Segment::getAgvId, agvId) - .and( i -> { -// i.eq(Segment::getState, SegmentStateType.WAITING.toString()).or() - i.eq(Segment::getState, SegmentStateType.RUNNING.toString()); - }) + .eq(Segment::getState, SegmentStateType.RUNNING.toString()) )) { log.warn("[{}]鍙稟gv姝e湪蹇欑 - segment......", agv.getUuid()); return false; } -// if (0 < taskService.count(new LambdaQueryWrapper<Task>() -// .eq(Task::getAgvId, agvId) -// .eq(Task::getTaskType, TaskTypeType.TO_CHARGE.val()) -// .in(Task::getTaskSts, TaskStsType.ASSIGN.val(), TaskStsType.PROGRESS.val()) -// )){ -// log.warn("[{}]鍙稟gv姝e湪鍘诲厖鐢� - task......", agv.getUuid()); -// return false; -// } if (!this.judgeOnline(agv.getId())) { log.warn("[{}]鍙稟gv涓嶆槸鍦ㄧ嚎鐘舵��......", agv.getUuid()); return false; } - AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId()); + AgvDetail agvDetail = agvDetailService.selectMajorByAgvId(agv.getId()); if (null == agvDetail) { log.warn("[{}]鍙稟gv鏈敹鍒扮姸鎬佸寘......", agv.getUuid()); return false; @@ -110,7 +126,7 @@ return false; } if (agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) { - if (agvDetail.getVol() <= agvModel.getQuaBattery()) { + if (agvDetail.getVol() < agvModel.getQuaBattery()) { return false; } } @@ -125,7 +141,7 @@ } } // with battery - if (withBattery) { + if (isLowBattery) { if (agvDetailService.isPowerLoss(agv, agvDetail, agvModel)) { log.warn("[{}]鍙稟gv鐢甸噺涓嶈冻......", agv.getUuid()); return false; -- Gitblit v1.9.1