From 2bdbfd1ac24d4e9a87daf6fb8b99ec32264d5752 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期六, 21 十二月 2024 11:25:27 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java | 67 ++++++++++++++++++++++++--------- 1 files changed, 48 insertions(+), 19 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..1136ac6 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; @@ -46,6 +45,8 @@ private CodeService codeService; @Autowired private SegmentService segmentService; + @Autowired + private TaskService taskService; @Override public PageResult<AgvResult> pageRel(PageParam<Agv, BaseParam> pageParam) { @@ -67,20 +68,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 isLowBattery) { Agv agv = this.getById(agvId); AgvModel agvModel = agvModelService.getById(agv.getAgvModel()); - if (segmentService.count(new LambdaQueryWrapper<Segment>() - .eq(Segment::getAgvId, agvId) - .and( i -> { + 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()); - }) - ) > 0) { + i.eq(Segment::getState, SegmentStateType.RUNNING.toString()); + }) + )) { + log.warn("[{}]鍙稟gv姝e湪蹇欑 - segment......", agv.getUuid()); return false; } if (!this.judgeOnline(agv.getId())) { @@ -100,21 +102,28 @@ return false; } if (agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) { - if (agvDetail.getVol() <= agvModel.getQuaBattery()) { - return false; - } - } - if (support != null) { - if (!support.execute(agvDetail)) { + if (agvDetail.getVol() < agvModel.getQuaBattery()) { return false; } } if (!agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) { if (agvDetail.getPos() != 1) { - log.warn("[{}]鍙稟gv璇风Щ鍔ㄥ埌瀹氫綅......", agv.getUuid()); + log.warn("[{}]鍙稟gv褰撳墠涓嶅湪瀹氫綅......", agv.getUuid()); + return false; + } + if (null == agvDetail.getRecentCode()) { + log.warn("[{}]鍙稟gv褰撳墠涓嶅湪瀹氫綅......", agv.getUuid()); return false; } } + // with battery + if (isLowBattery) { + if (agvDetailService.isPowerLoss(agv, agvDetail, agvModel)) { + log.warn("[{}]鍙稟gv鐢甸噺涓嶈冻......", agv.getUuid()); + return false; + } + } + return true; } @@ -145,12 +154,32 @@ @Override public Integer getBackpack(Agv agv) { - if (null != agv.getStage()) { - return agv.getStage(); - } +// if (null != agv.getStage()) { +// return agv.getStage(); +// } AgvModel agvModel = agvModelService.getById(agv.getAgvModel()); assert null != agvModel; 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 (null == agvDetail.getRecentCode()) { + continue; + } + if (agvDetail.getRecentCode().equals(codeId)) { + return agv; + } + } + return null; + } + } -- Gitblit v1.9.1