From 93d8a38f9fd0746b9ce6ac7541bf2b8b48f7c63c Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期三, 18 十二月 2024 13:11:24 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java | 50 ++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 36 insertions(+), 14 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 336317f..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 @@ -45,6 +45,8 @@ private CodeService codeService; @Autowired private SegmentService segmentService; + @Autowired + private TaskService taskService; @Override public PageResult<AgvResult> pageRel(PageParam<Agv, BaseParam> pageParam) { @@ -70,17 +72,17 @@ } @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 (segmentService.count(new LambdaQueryWrapper<Segment>() + 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) { - log.warn("[{}]鍙稟gv姝e湪蹇欑 -segment......", agv.getUuid()); + )) { + log.warn("[{}]鍙稟gv姝e湪蹇欑 - segment......", agv.getUuid()); return false; } if (!this.judgeOnline(agv.getId())) { @@ -100,7 +102,7 @@ return false; } if (agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) { - if (agvDetail.getVol() <= agvModel.getQuaBattery()) { + if (agvDetail.getVol() < agvModel.getQuaBattery()) { return false; } } @@ -109,14 +111,14 @@ log.warn("[{}]鍙稟gv褰撳墠涓嶅湪瀹氫綅......", agv.getUuid()); return false; } - } - // with battery - if (withBattery) { - if (agvDetail.getVol() < agv.getChargeLine()) { - log.warn("[{}]鍙稟gv鐢甸噺涓嶈冻......", agv.getUuid()); + if (null == agvDetail.getRecentCode()) { + log.warn("[{}]鍙稟gv褰撳墠涓嶅湪瀹氫綅......", agv.getUuid()); return false; } - if (agvDetail.getVol() < agvModel.getLowBattery()) { + } + // with battery + if (isLowBattery) { + if (agvDetailService.isPowerLoss(agv, agvDetail, agvModel)) { log.warn("[{}]鍙稟gv鐢甸噺涓嶈冻......", agv.getUuid()); return false; } @@ -152,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