From c449e50c5643c3fdda0ed9bf66936c6285cc1314 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期六, 07 十二月 2024 09:05:48 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java | 90 ++++++++++++++++++++++++++++++++++++-------- 1 files changed, 73 insertions(+), 17 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 bf4fd1e..068c61b 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,15 +4,18 @@ 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; +import com.zy.acs.manager.common.domain.PageParam; +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.enums.SegmentStateType; import com.zy.acs.manager.manager.mapper.AgvMapper; import com.zy.acs.manager.manager.service.*; import com.zy.acs.manager.system.service.ConfigService; -import com.zy.acs.framework.common.Cools; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -42,6 +45,13 @@ private CodeService codeService; @Autowired private SegmentService segmentService; + @Autowired + private TaskService taskService; + + @Override + public PageResult<AgvResult> pageRel(PageParam<Agv, BaseParam> pageParam) { + return new PageResult<>(this.baseMapper.selectPageRel(pageParam, pageParam.checkoutMap()), pageParam.getTotal()); + } @Override public Agv selectByUuid(String uuid) { @@ -58,22 +68,31 @@ @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 -> { + 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 (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; @@ -91,21 +110,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 (withBattery) { + if (agvDetailService.isPowerLoss(agv, agvDetail, agvModel)) { + log.warn("[{}]鍙稟gv鐢甸噺涓嶈冻......", agv.getUuid()); + return false; + } + } + return true; } @@ -134,4 +160,34 @@ return res; } + @Override + public Integer getBackpack(Agv agv) { +// 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