From 21b80e79792b800eb3e409340d31be1354878a24 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期二, 17 六月 2025 12:03:34 +0800 Subject: [PATCH] 1 --- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/OpenAlgorithmController.java | 1 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/OpenAlgorithmServiceImpl.java | 50 ++++++++++++++++++++----- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/BackpackVo.java | 29 ++++++++++++++ zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/OpenAgvInfo.java | 3 + zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java | 10 +++++ zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java | 2 + 6 files changed, 83 insertions(+), 12 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/OpenAlgorithmController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/OpenAlgorithmController.java index ac3d0e1..24dd8a0 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/OpenAlgorithmController.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/OpenAlgorithmController.java @@ -49,7 +49,6 @@ navigation.getCodeList().forEach(codeDTO -> { }); - return null; } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/BackpackVo.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/BackpackVo.java new file mode 100644 index 0000000..31ab571 --- /dev/null +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/BackpackVo.java @@ -0,0 +1,29 @@ +package com.zy.acs.manager.manager.controller.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * Created by vincent on 10/17/2024 + */ +@Data +public class BackpackVo implements Serializable { + + private Integer index; + + private Boolean loaded; + + private Boolean execute; + + private String taskId; + + public BackpackVo() { + } + + public BackpackVo(Integer index, Boolean loaded) { + this.index = index; + this.loaded = loaded; + } + +} diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/OpenAgvInfo.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/OpenAgvInfo.java index 022ccf4..634355d 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/OpenAgvInfo.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/OpenAgvInfo.java @@ -1,5 +1,6 @@ package com.zy.acs.manager.manager.controller.result; +import com.zy.acs.manager.core.domain.BackpackDto; import lombok.Data; import java.util.List; @@ -28,7 +29,7 @@ */ private String error; - private List<Backpack> backpack; + private List<BackpackVo> backpack; /** * 褰撳墠鎵�鍦ㄤ綅缃� */ diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java index 39115c1..b88d1b8 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java @@ -20,6 +20,8 @@ List<Segment> getByAgvAndState(Long agvId, String state); + List<Segment> getByAgvAndTaskAndBackpack(Long agvId,List<Long> taskIds, Integer backpack); + List<String> getGroupNo(SegmentStateType state, Long agvId, String groupNo); List<Segment> getRunningByEndCode(Long codeId); diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/OpenAlgorithmServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/OpenAlgorithmServiceImpl.java index 66d5f99..e3f930e 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/OpenAlgorithmServiceImpl.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/OpenAlgorithmServiceImpl.java @@ -1,18 +1,20 @@ package com.zy.acs.manager.manager.service.impl; +import com.zy.acs.common.utils.GsonUtils; +import com.zy.acs.manager.core.domain.BackpackDto; import com.zy.acs.manager.manager.controller.param.OpenAgvParam; +import com.zy.acs.manager.manager.controller.result.BackpackVo; import com.zy.acs.manager.manager.controller.result.OpenAgvInfo; -import com.zy.acs.manager.manager.entity.AgvDetail; -import com.zy.acs.manager.manager.service.AgvDetailService; -import com.zy.acs.manager.manager.service.AgvModelService; -import com.zy.acs.manager.manager.service.OpenAlgorithmService; -import com.zy.acs.manager.manager.service.TaskService; +import com.zy.acs.manager.manager.entity.*; +import com.zy.acs.manager.manager.enums.SegmentStateType; +import com.zy.acs.manager.manager.service.*; import com.zy.acs.manager.system.service.ConfigService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; @Service("openAlgorithmService") public class OpenAlgorithmServiceImpl implements OpenAlgorithmService { @@ -24,22 +26,50 @@ @Autowired private AgvModelService agvModelService; @Autowired + private AgvService agvService; + @Autowired + private SegmentService segmentService; + @Autowired private ConfigService configService; @Override public List<OpenAgvInfo> listAgv(OpenAgvParam param) { - List<AgvDetail> list = agvDetailService.list(); + List<Agv> agvList = agvService.list(); List<OpenAgvInfo> result = new ArrayList<>(); - for (AgvDetail agvDetail : list) { - taskService.findTransportTasksByAgv(agvDetail.getId()); + AgvDetail agvDetail; + AgvModel agvModel; + for (Agv agv : agvList) { + agvDetail = agvDetailService.getById(agv.getId()); + List<Task> taskList = taskService.findTransportTasksByAgv(agvDetail.getId()); + agvModel = agvModelService.getByAgvId(agv.getAgvModel()); OpenAgvInfo info = new OpenAgvInfo(); info.setAgvNo(agvDetail.getUuid()); info.setStatus(agvDetail.getStatus()); + info.setPosition(agvDetail.getCode$()); info.setDirection(agvDetail.getAgvAngle()); - info.setPosition(agvDetail.getCode$() ); info.setVol(agvDetail.getVol()); - //info.setEmpty(agvDetail.getBackpack()); + info.setEmpty(agvModel.getBackpack() - (taskList == null ? 0 : taskList.size())); + info.setError(agvDetail.getError()); + info.setLowVol(agvModel.getLowBattery()); + info.setAutoCharge(agvModel.getQuaBattery()); + List<BackpackVo> backpackVos = new ArrayList<>(); + BackpackVo backpackVo; + List<Long> taskIds = taskList.stream().map(Task::getId).collect(Collectors.toList()); + List<BackpackDto> backpackDtos = GsonUtils.fromJsonToList(agvDetail.getBackpack(), BackpackDto.class); + for (int i = 0; i < agvModel.getBackpack(); i++) { + BackpackDto backpackDto = backpackDtos.get(i); + backpackVo = new BackpackVo(); + List<Segment> segments = segmentService.getByAgvAndTaskAndBackpack(agvDetail.getAgvId(), taskIds, backpackVo.getIndex()); + for (Segment segment : segments) { + backpackVo.setTaskId(segment.getTaskId() + ""); + } + backpackVo.setIndex(i); + backpackVo.setLoaded(backpackDto.getLoaded()); + backpackVo.setExecute(segments.stream().anyMatch(segment -> segment.getState().equals(SegmentStateType.RUNNING.toString()))); + backpackVos.add(backpackVo); + } + info.setBackpack(backpackVos); result.add(info); } return result; diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java index 58cafeb..d797b58 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java @@ -105,6 +105,16 @@ } @Override + public List<Segment> getByAgvAndTaskAndBackpack(Long agvId,List<Long> taskIds, Integer backpack) { + return this.list(new LambdaQueryWrapper<Segment>() + .eq(Segment::getAgvId, agvId) + .eq(Segment::getBackpack, backpack) + .in(Segment::getTaskId, taskIds) + .orderByAsc(Segment::getSerial) + ); + } + + @Override public List<String> getGroupNo(SegmentStateType state, Long agvId, String groupNo) { return this.baseMapper.getGroupNo(state.toString(), agvId, groupNo); } -- Gitblit v1.9.1