From 595af06b3640ff57137602d9bcfeed9e97f9994c Mon Sep 17 00:00:00 2001 From: "HUOJIN\\92525" Date: Fri, 7 Mar 2025 12:44:11 +0800 Subject: [PATCH] no message --- .../businessdata/service/AgvTaskService.java | 8 ++++++ .../service/impl/AgvTaskServiceImpl.java | 12 +++++++++ .../service/impl/TaskServiceImpl.java | 27 +++++++------------ 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/AgvTaskService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/AgvTaskService.java index 799e11e..9f1ea21 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/AgvTaskService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/AgvTaskService.java @@ -191,4 +191,12 @@ public interface AgvTaskService { */ boolean isEndPointAvailable(String endPointCode, String type, String jobType); + /** + * 验证容器是否有任务 + * + * @param stockCode 终点点位代码 + * @return boolean + */ + boolean isStockAvailable(String stockCode, String type, String jobType); + } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java index eca6dc2..565c654 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java @@ -234,6 +234,18 @@ public class AgvTaskServiceImpl implements AgvTaskService { return findByEndSlotCode(endPointCode, type, jobType); } + @Override + public boolean isStockAvailable(String stockCode, String type, String jobType) { + String hql = " from AgvTask agv " + + " where agv.stockCode='" + stockCode + "' " + + " and agv.type='" + type + "' " + + " and agv.jobType='" + jobType + "' " + + " and agv.status in ('OPEN','ATCALL','UP_CONTAINER') "; + Query query = entityMapper.createQuery(hql); + List agvTaskList = query.getResultList(); + return agvTaskList.isEmpty(); + } + public boolean isSrcPointAvailable(String startSlotCode, String type, String jobType) { return findByStartSlotCode(startSlotCode, type, jobType); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java index 3019cc7..6d548eb 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java @@ -275,27 +275,20 @@ public class TaskServiceImpl implements TaskService { Map pointMap = pointService.findByCodes(endPointList); List endPoints = getValuesFromMap(endPointList, pointMap); - int taskCount = 0; for (Task task : taskList) { - for (String endPointCode : endPoints) { - if (agvTaskService.isEndPointAvailable(endPointCode, BizStatus.CALL_PICK, "RACK_MOVE")) { - AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.CALL_PICK, task.getDstStock(), task.getDstPointCode(), endPointCode, "RACK_MOVE"); - agvTask.setLineSlotCode(pick.getCode()); - agvTaskService.update(agvTask); - task.setCallAgvTaskId(agvTask.getId()); - taskRepository.save(task); + boolean isStockAvailable = agvTaskService.isStockAvailable(task.getDstStockCode(), BizStatus.CALL_PICK, "RACK_MOVE"); + if (isStockAvailable) { + for (String endPointCode : endPoints) { + if (agvTaskService.findByEndSlotCode(endPointCode, BizStatus.CALL_PICK, "RACK_MOVE")) { + AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.CALL_PICK, task.getDstStock(), task.getDstPointCode(), endPointCode, "RACK_MOVE"); + agvTask.setLineSlotCode(pick.getCode()); + agvTaskService.update(agvTask); + task.setCallAgvTaskId(agvTask.getId()); + taskRepository.save(task); + } } - taskCount++; - if (taskCount >= taskList.size()) { - break; // 当处理的任务数量达到 taskList 的长度时,跳出内层循环 - } - } - if (taskCount >= taskList.size()) { - break; // 当处理的任务数量达到 taskList 的长度时,跳出外层循环 } } - - } public static List getValuesFromMap(Set endPointList, Map map) {