From 7f70cb15d035f0c233b9e62b9e43aa985317c908 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 04 十一月 2024 10:22:45 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java | 49 ++++++++++++++++++++++++++++++++++++------------- 1 files changed, 36 insertions(+), 13 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 e710b8e..844be39 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zy.acs.common.constant.RedisConstant; import com.zy.acs.common.enums.AgvStatusType; -import com.zy.acs.common.utils.JudgeSupport; import com.zy.acs.common.utils.RedisSupport; import com.zy.acs.framework.common.Cools; import com.zy.acs.manager.common.domain.BaseParam; @@ -14,6 +13,7 @@ import com.zy.acs.manager.manager.controller.result.AgvResult; import com.zy.acs.manager.manager.entity.*; import com.zy.acs.manager.manager.enums.SegmentStateType; +import com.zy.acs.manager.manager.enums.StatusType; import com.zy.acs.manager.manager.mapper.AgvMapper; import com.zy.acs.manager.manager.service.*; import com.zy.acs.manager.system.service.ConfigService; @@ -67,20 +67,21 @@ @Override public Boolean judgeEnable(Long agvId) { - return this.judgeEnable(agvId, null); + return this.judgeEnable(agvId, false); } @Override - public Boolean judgeEnable(Long agvId, JudgeSupport<AgvDetail> support) { + public Boolean judgeEnable(Long agvId, Boolean withBattery) { Agv agv = this.getById(agvId); AgvModel agvModel = agvModelService.getById(agv.getAgvModel()); if (segmentService.count(new LambdaQueryWrapper<Segment>() - .eq(Segment::getAgvId, agvId) - .and( i -> { + .eq(Segment::getAgvId, agvId) + .and( i -> { // i.eq(Segment::getState, SegmentStateType.WAITING.toString()).or() - i.eq(Segment::getState, SegmentStateType.RUNNING.toString()); - }) + i.eq(Segment::getState, SegmentStateType.RUNNING.toString()); + }) ) > 0) { + log.warn("[{}]鍙稟gv姝e湪蹇欑 -segment......", agv.getUuid()); return false; } if (!this.judgeOnline(agv.getId())) { @@ -104,17 +105,24 @@ return false; } } - if (support != null) { - if (!support.execute(agvDetail)) { - return false; - } - } if (!agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) { if (agvDetail.getPos() != 1) { - log.warn("[{}]鍙稟gv璇风Щ鍔ㄥ埌瀹氫綅......", agv.getUuid()); + log.warn("[{}]鍙稟gv褰撳墠涓嶅湪瀹氫綅......", agv.getUuid()); return false; } } + // with battery + if (withBattery) { + if (agvDetail.getVol() < agv.getChargeLine()) { + log.warn("[{}]鍙稟gv鐢甸噺涓嶈冻......", agv.getUuid()); + return false; + } + if (agvDetail.getVol() < agvModel.getLowBattery()) { + log.warn("[{}]鍙稟gv鐢甸噺涓嶈冻......", agv.getUuid()); + return false; + } + } + return true; } @@ -153,4 +161,19 @@ return agvModel.getBackpack(); } + @Override + public Agv findByPosition(Long codeId) { + List<Agv> agvList = this.list(new LambdaQueryWrapper<Agv>().eq(Agv::getStatus, StatusType.ENABLE.val)); + for (Agv agv : agvList) { + AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId()); + if (null == agvDetail) { + continue; + } + if (agvDetail.getRecentCode().equals(codeId)) { + return agv; + } + } + return null; + } + } -- Gitblit v1.9.1