From e1b28ec44188d3168557f132f1301b468c46de85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9A=B4=E7=82=B3=E6=9E=97?= <15237758276@163.com> Date: Mon, 17 Jun 2024 11:35:10 +0800 Subject: [PATCH] no message --- .../repository/AgvTaskRepository.java | 4 +++ .../repository/TaskRepository.java | 2 +- .../businessdata/service/AgvTaskService.java | 2 ++ .../service/impl/AgvTaskServiceImpl.java | 29 +++++++++++++++++-- .../service/impl/InventoryServiceImpl.java | 2 +- .../modules/quartz/task/pickTask.java | 5 ++-- 6 files changed, 37 insertions(+), 7 deletions(-) diff --git a/youchain-system/src/main/java/com/youchain/businessdata/repository/AgvTaskRepository.java b/youchain-system/src/main/java/com/youchain/businessdata/repository/AgvTaskRepository.java index 2cc11cf..c003887 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/repository/AgvTaskRepository.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/repository/AgvTaskRepository.java @@ -62,4 +62,8 @@ public interface AgvTaskRepository extends JpaRepository, JpaS */ @Query(value = "select * from data_agv_task where line_slot_code=?1 and type='PICK' and `status`='OPEN' and line_slot_code is not null ORDER BY create_time ", nativeQuery = true) List queryLineAgvTask(String line_slot_code); + + /** 去重*/ + @Query(value = "SELECT agv FROM AgvTask agv where agv.startSlotCode=?1 and agv.endSlotCode=?2 and agv.status in ('OPEN','ATCALL','ATWORK')", nativeQuery = false) + List findRepeat(String startSlotCode, String endSlotCode); } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java b/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java index aff5a79..2b0b113 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java @@ -30,6 +30,6 @@ import java.util.Map; * @date 2023-08-16 **/ public interface TaskRepository extends JpaRepository, JpaSpecificationExecutor { - @Query(value = "SELECT t FROM Task t WHERE t.pickDetail.pick.id=?1 and t.taskStatus='PICK'", nativeQuery = false) + @Query(value = "SELECT t FROM Task t WHERE t.pickDetail.pick.id=?1 and t.taskType='PICK'", nativeQuery = false) List findByPick(Long pickId); } 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 32adfac..7f0ee16 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 @@ -132,4 +132,6 @@ public interface AgvTaskService { boolean findByendSlotCode(String endSlotCode,String type,String jobType); List findById(List ids); + + AgvTask addAgvTask(String pick, String srcStockCode, String srcPointCode, String dstPointCode, String open, String s); } 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 02e626d..a108e65 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 @@ -24,6 +24,7 @@ import com.youchain.basicdata.repository.StockRepository; import com.youchain.basicdata.service.PointService; import com.youchain.basicdata.service.StockService; import com.youchain.businessdata.domain.*; +import com.youchain.businessdata.repository.TaskRepository; import com.youchain.businessdata.service.*; import com.youchain.modules.quartz.utils.TimeNumberUtils; import com.youchain.utils.*; @@ -60,6 +61,7 @@ public class AgvTaskServiceImpl implements AgvTaskService { private final AgvTaskRepository agvTaskRepository; private final AgvTaskMapper agvTaskMapper; private final TaskService taskService; + private final TaskRepository taskRepository; private final InventoryService inventoryService; private final InventoryLogService inventoryLogService; private final PointService pointService; @@ -417,7 +419,7 @@ public class AgvTaskServiceImpl implements AgvTaskService { handleUpContainer(agvTask, containerCode);//容器顶升 break; case "COMPLETED": - handleComContainer(agvTask, containerCode);//容器完成 + handleComContainer(agvTask, containerCode);//搬运任务完成 break; case "CANCELED": handleCanceledTask(agvTask, containerCode);//容器取消 @@ -438,6 +440,7 @@ public class AgvTaskServiceImpl implements AgvTaskService { this.update(agvTask); } + /** 搬运任务完成*/ private void handleComContainer(AgvTask agvTask, String containerCode) { //任务完成;根据AGV任务的目标点位走对应流程 Point endPoint = pointService.findByCode(agvTask.getEndSlotCode(), null, null, null, null,null); @@ -449,13 +452,21 @@ public class AgvTaskServiceImpl implements AgvTaskService { List taskList = taskService.getAgvTaskList(agvTask.getId()); switch (endAreaName) { case AreaNameDic.JLQ: - handleJL(taskList, endPoint, stock);//满车出库 +// handleJL(taskList, endPoint, stock);//满车出库 break; case AreaNameDic.XJQ: case AreaNameDic.DJQ: handleFBFC(taskList, stock);//满车入库 break; } + /* 备料任务完成*/ + if (agvTask.getType().equals(BizStatus.PICK)){ + /* 更新Task任务状态*/ + for(Task task:taskList){ + task.setTaskStatus(BizStatus.PICKUP); + taskRepository.save(task); + } + } agvTask.setStatus(BizStatus.FINISH); agvTask.setStockCode(containerCode); agvTask.setEndTime(new Timestamp(new Date().getTime())); @@ -816,4 +827,18 @@ public class AgvTaskServiceImpl implements AgvTaskService { return agvTaskList; } + @Override + public AgvTask addAgvTask(String pick, String srcStockCode, String srcPointCode, String dstPointCode, String open, String s) { + AgvTask agvTask=new AgvTask(); + List agvTaskList=agvTaskRepository.findRepeat(srcPointCode,dstPointCode); + if (agvTaskList.size()>0){ + agvTask=agvTaskList.get(0); + }else { + agvTask =agvTaskRepository.save( + new AgvTask(BizStatus.PICK, srcStockCode, srcPointCode, dstPointCode, BizStatus.OPEN, s) + ); + } + return agvTask; + } + } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/InventoryServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/InventoryServiceImpl.java index b1760b0..00a9e27 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/InventoryServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/InventoryServiceImpl.java @@ -138,7 +138,7 @@ public class InventoryServiceImpl implements InventoryService { @Override public List queryInventory(long itemId, String areaName) { - StringBuilder hql = new StringBuilder("FROM Inventory inv WHERE inv.itemKey.item.id = :itemId AND inv.quantity > 0 AND inv.queuedQty = 0"); + StringBuilder hql = new StringBuilder("FROM Inventory inv WHERE inv.itemKey.item.id = :itemId AND inv.quantity > inv.queuedQty "); Map params = new HashMap<>(); params.put("itemId", itemId); if (areaName.contains(",")) { diff --git a/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java b/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java index a0bf1a6..cd090d4 100644 --- a/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java +++ b/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java @@ -84,9 +84,8 @@ public class pickTask { for (Pick pick:pickList){ List taskList=taskRepository.findByPick(pick.getId()); for (Task task:taskList){ - /*申城搬运任务*/ - AgvTask agvTask = new AgvTask(BizStatus.PICK, task.getSrcStockCode(), task.getSrcPointCode(), task.getDstPointCode(), BizStatus.OPEN, "01"); - agvTaskRepository.save(agvTask); + /*生成搬运任务*/ + AgvTask agvTask = agvTaskService.addAgvTask(BizStatus.PICK, task.getSrcStockCode(), task.getSrcPointCode(), task.getDstPointCode(), BizStatus.OPEN, "01"); /*更新Task任务*/ task.setTaskStatus(BizStatus.ATWORK); task.setAgvTask(agvTask);