From 13ea8b334572c2423abb8d156fd8428f8d074172 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期四, 03 七月 2025 08:24:58 +0800 Subject: [PATCH] 1 --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainZkdService.java | 119 +++++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 75 insertions(+), 44 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainZkdService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainZkdService.java index 04391b8..540b950 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainZkdService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainZkdService.java @@ -2,17 +2,22 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zy.acs.framework.common.Cools; import com.zy.acs.framework.common.SnowflakeIdWorker; import com.zy.acs.manager.common.domain.param.HandlerPublishParam; import com.zy.acs.manager.common.exception.BusinessException; +import com.zy.acs.manager.core.domain.TaskPosDto; import com.zy.acs.manager.core.service.astart.MapDataDispatcher; import com.zy.acs.manager.core.third.zkd.HttpUtils; import com.zy.acs.manager.core.third.zkd.dto.AllocateTask; import com.zy.acs.manager.core.third.zkd.dto.AllocateTaskResponse; import com.zy.acs.manager.core.third.zkd.dto.Navigation; import com.zy.acs.manager.manager.entity.*; -import com.zy.acs.manager.manager.enums.*; +import com.zy.acs.manager.manager.enums.BusStsType; +import com.zy.acs.manager.manager.enums.SegmentStateType; +import com.zy.acs.manager.manager.enums.TaskStsType; +import com.zy.acs.manager.manager.enums.TaskTypeType; import com.zy.acs.manager.manager.service.*; import com.zy.acs.manager.manager.utils.ActionSorter; import com.zy.acs.manager.system.service.ConfigService; @@ -74,8 +79,8 @@ private TravelService travelService; @Autowired private SegmentService segmentService; - @Autowired - private TrafficService trafficService; + // @Autowired +// private TrafficService trafficService; @Autowired private AgvModelService agvModelService; @Autowired @@ -149,20 +154,33 @@ allocateTask.setEnd(endCode); allocateTask.setType("1"); allocateTask.setPriority(task.getPriority()); + allocateTasks.add(allocateTask); } - allocateTasks.add(allocateTask); - String post = HttpUtils.post("http://localhost:8080/zy-acs-manager/api/v1/zkd/allocateTask", JSON.toJSONString(allocateTasks)); - List<AllocateTaskResponse> allocateTaskResponses = JSON.parseArray(post, AllocateTaskResponse.class); - for (AllocateTaskResponse allocateTaskResponse : allocateTaskResponses) { - Task task = taskService.getById(allocateTaskResponse.getTaskId()); - task.setAgvId(Long.parseLong(allocateTaskResponse.getAgvId())); - task.setTaskSts(TaskStsType.WAITING.val()); - task.setIoTime(now); - task.setUpdateTime(now); - if (!taskService.updateById(task)) { - throw new BusinessException("seqNum: " + task.getSeqNum() + " failed to update"); + log.info("allocateTask:{}", JSON.toJSONString(allocateTasks)); + String post = HttpUtils.post("http://10.10.10.239:8002/open/task/send/v1", JSON.toJSONString(allocateTasks)); + if (post == null) { + return; + } + Object data = JSON.parseObject(post).get("data"); + if (data != null) { + List<AllocateTaskResponse> allocateTaskResponses = JSON.parseArray(data.toString(), AllocateTaskResponse.class); + if (Cools.isEmpty(allocateTaskResponses)) { + log.error("allocateTaskResponses is null,{}", post); + throw new BusinessException("浠诲姟涓嬪彂澶辫触"); + } + for (AllocateTaskResponse allocateTaskResponse : allocateTaskResponses) { + Task task = taskService.getById(allocateTaskResponse.getTaskId()); + task.setAgvId(agvService.getAgvId(allocateTaskResponse.getAgvId())); + task.setBack(allocateTaskResponse.getLev_id()); + task.setTaskSts(TaskStsType.WAITING.val()); + task.setIoTime(now); + task.setUpdateTime(now); + if (!taskService.updateById(task)) { + throw new BusinessException("seqNum: " + task.getSeqNum() + " failed to update"); + } } } + } catch (Exception e) { log.error("mainService.allocateTaskByZkd", e); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); @@ -175,37 +193,53 @@ * todo: {@link com.zy.acs.manager.core.HandlerController#controlAgv(String, HandlerPublishParam)} */ @Transactional(propagation = Propagation.REQUIRES_NEW) - public void buildMajorTask(Long agvId, Navigation navigation) { + public boolean buildMajorTask(Long agvId, Navigation navigation) { try { // generate travel - Travel travel = new Travel(); - travel.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); - travel.setTravelId(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); - travel.setAgvId(agvId); - travel.setTaskContent(JSON.toJSONString(navigation)); - //travel.setTaskIds(JSON.toJSONString(taskList.stream().map(Task::getId).collect(Collectors.toList()))); - travel.setState(TravelStateType.RUNNING.toString()); - if (!travelService.save(travel)) { - throw new BusinessException("浠诲姟缁勪繚瀛樺け璐�"); - } +// Travel travel = new Travel(); +// travel.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); +// travel.setTravelId(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); +// travel.setAgvId(agvId); +// travel.setTaskContent(JSON.toJSONString(navigation)); +// //travel.setTaskIds(JSON.toJSONString(taskList.stream().map(Task::getId).collect(Collectors.toList()))); +// travel.setState(TravelStateType.RUNNING.toString()); +// if (!travelService.save(travel)) { +// throw new BusinessException("浠诲姟缁勪繚瀛樺け璐�"); +// } // generate segment - int segSerial = 0; - List<Segment> segmentList = new ArrayList<>(); + Segment segment = segmentService.getOne(new QueryWrapper<Segment>().eq("uuid", navigation.getSegId())); + if (segment == null) { + segment = new Segment(); + } + int segSerial = 1; + //segment.setTravelId(travel.getId()); + segment.setAgvId(agvId); + + segment.setSerial(segSerial); for (Navigation.CodeDTO codeDTO : navigation.getCodeList()) { - segSerial++; + //segSerial++; Task task = taskService.getById(Long.parseLong(codeDTO.getTaskId())); - Segment segment = new Segment(); - segment.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); - segment.setTravelId(travel.getId()); - segment.setAgvId(agvId); + segment.setUuid(navigation.getSegId()); segment.setTaskId(task.getId()); - segment.setSerial(segSerial); - Code cacheByData = codeService.getCacheByData(codeDTO.getCode()); + Code cacheByData = codeService.getCacheById(Long.parseLong(codeDTO.getCode())); + if (cacheByData == null) { + throw new BusinessException(codeDTO.getCode() + "鐐逛綅涓嶅瓨鍦�"); + } segment.setEndNode(cacheByData.getId()); - segment.setPosType(codeDTO.getPosType()); + if (codeDTO.getPosType() != null) { + if (task.getTaskType().equals(TaskTypeType.LOC_TO_STA.val())) { + segment.setPosType(codeDTO.getPosType().equals("1") ? TaskPosDto.PosType.ORI_LOC.toString() : TaskPosDto.PosType.DEST_STA.toString()); + } else if (task.getTaskType().equals(TaskTypeType.STA_TO_LOC.val())) { + segment.setPosType(codeDTO.getPosType().equals("1") ? TaskPosDto.PosType.ORI_STA.toString() : TaskPosDto.PosType.DEST_LOC.toString()); + } else if (task.getTaskType().equals(TaskTypeType.STA_TO_STA.val())) { + segment.setPosType(codeDTO.getPosType().equals("1") ? TaskPosDto.PosType.ORI_STA.toString() : TaskPosDto.PosType.DEST_STA.toString()); + } else if (task.getTaskType().equals(TaskTypeType.LOC_TO_LOC.val())) { + segment.setPosType(codeDTO.getPosType().equals("1") ? TaskPosDto.PosType.ORI_LOC.toString() : TaskPosDto.PosType.DEST_LOC.toString()); + } + } segment.setBackpack(codeDTO.getLev()); segment.setState(SegmentStateType.INIT.toString()); - segmentList.add(segment); + segment.setPath((Cools.isEmpty(segment.getPath()) ? "" : segment.getPath()) + cacheByData.getData() + ","); task.setTaskSts(TaskStsType.ASSIGN.val()); task.setStartTime(new Date()); @@ -214,20 +248,17 @@ throw new BusinessException(task.getUuid() + "浠诲姟鏇存柊澶辫触"); } } - for (int i = 0; i < segmentList.size(); i++) { - Segment segment = segmentList.get(i); - if (i == 0) { - segment.setState(SegmentStateType.WAITING.toString()); - } - if (!segmentService.save(segment)) { - throw new BusinessException("浠诲姟缁勪繚瀛樺け璐�"); - } + + segment.setState(SegmentStateType.WAITING.toString()); + if (!segmentService.save(segment)) { + throw new BusinessException("浠诲姟缁勪繚瀛樺け璐�"); } } catch (Exception e) { log.error("mainService.buildMajorTask[task]", e); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } + return true; } -- Gitblit v1.9.1