From 57e8dd114987fcf1f21435153bcef1b48a96c991 Mon Sep 17 00:00:00 2001 From: "HUOJIN\\92525" Date: Mon, 17 Feb 2025 11:31:00 +0800 Subject: [PATCH] no message --- .../repository/TaskRepository.java | 2 +- .../service/impl/InventoryServiceImpl.java | 10 +------ .../service/impl/TaskServiceImpl.java | 24 +++++++-------- .../modules/quartz/task/pickTask.java | 29 +++++++++++-------- 4 files changed, 31 insertions(+), 34 deletions(-) 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 c903474..839f64d 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 @@ -59,7 +59,7 @@ public interface TaskRepository extends JpaRepository, JpaSpecificat * * @param pickId 出库单ID */ - @Query("from Task t where t.pickDetail.pick.id =:pickId and t.planQty - t.moveQty>=0 and t.moveQty!=0 ") + @Query("from Task t where t.pickDetail.pick.id =:pickId and t.planQty - t.moveQty=0 and t.callAgvTaskId is null ") List findByPickAllTask(Long pickId); /** 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 e42bf29..810bf0c 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 @@ -111,15 +111,7 @@ public class InventoryServiceImpl implements InventoryService { @Override public void deleteAll(Long[] ids) { for (Long id : ids) { - Inventory inventory = this.findById(id); - Stock stock = inventory.getStock(); - Point point = inventory.getPoint(); - inventoryRepository.deleteById(inventory.getId()); - List inventoryList = this.findByStockCode(stock.getCode()); - if (inventoryList.isEmpty()) { - pointService.freePoint(point); - stockService.usedStock(stock, null, BaseStatus.FREE); - } + inventoryRepository.deleteById(id); } } 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 3ce21f9..9226bf7 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 @@ -200,23 +200,19 @@ public class TaskServiceImpl implements TaskService { //查询出待分配的pickDetail List pickDetails = pickDetailService.findByPickDetailNoAllocate(pick.getId()); for (PickDetail pickDetail : pickDetails) { - synchronized (pickDetail.getId()) { - msgList.add(this.allocate(pickDetail.getId(), pickDetail.getOrderQty() - pickDetail.getAllocatedQty(), endPoint)); - } + msgList.add(this.allocate(pickDetail.getId(), pickDetail.getOrderQty() - pickDetail.getAllocatedQty(), endPoint)); } /* 更新出库单状态*/ - synchronized (pick.getId()) { - pickService.refreshPickStatus(pick); + pickService.refreshPickStatus(pick); - if (BizStatus.ALLOCATE.equals(pick.getStatus()) || BizStatus.ASSIGN.equals(pick.getStatus())) { - //绑定点位 - pick.setPoint(endPoint); - pickService.update(pick); + if (BizStatus.ALLOCATE.equals(pick.getStatus()) || BizStatus.ASSIGN.equals(pick.getStatus())) { + //绑定点位 + pick.setPoint(endPoint); + pickService.update(pick); - //占用点位 - pointService.usedPoint(endPoint); - } + //占用点位 + pointService.usedPoint(endPoint); } @@ -576,6 +572,10 @@ public class TaskServiceImpl implements TaskService { inventory.setQueuedQty(inventory.getQueuedQty() - moveQty); inventory.setQuantity(inventory.getQuantity() - moveQty); inventoryService.update(inventory); + + if (inventory.getQuantity() == 0) { + inventoryService.deleteAll(new Long[]{inventory.getId()}); + } } //生成新库存 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 4c6f439..5cfa159 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 @@ -54,7 +54,9 @@ public class pickTask { throw new BadRequestException("无待分配的成品出库单,分配失败!"); } for (Pick pick : pickList) { - taskService.allocatePick(pick); + synchronized (pick) { + taskService.allocatePick(pick); + } } } @@ -75,7 +77,7 @@ public class pickTask { } /** - * 轮询拣货完成的出库单,自动叫料 + * 生成叫料搬运任务 */ public void callJlTask() { /*查询拣货完成完成的出库单*/ @@ -98,19 +100,22 @@ public class pickTask { throw new BadRequestException("无备料任务或无叫料任务!"); } for (AgvTask agvTask : agvTaskList) { - if (BizStatus.PICK.equals(agvTask.getType())) { - //目标点没有托盘继续下发下一个任务 - String endSlotCode = agvTask.getEndSlotCode(); - Stock stock = stockService.findByPointCode(endSlotCode); - if (stock == null) { - boolean isTaskFound = agvTaskService.findByCcEndSlotCode(endSlotCode, BizStatus.PICK, "FORKLIFT_MOVE"); - if (isTaskFound) { - kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskCcJson(agvTask)); + synchronized (agvTask) { + if (BizStatus.PICK.equals(agvTask.getType())) { + //目标点没有托盘继续下发下一个任务 + String endSlotCode = agvTask.getEndSlotCode(); + Stock stock = stockService.findByPointCode(endSlotCode); + if (stock == null) { + boolean isTaskFound = agvTaskService.findByCcEndSlotCode(endSlotCode, BizStatus.PICK, "FORKLIFT_MOVE"); + if (isTaskFound) { + kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskCcJson(agvTask)); + } } + } else { + kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskHjJson(agvTask)); } - } else { - kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskHjJson(agvTask)); } + } }