diff --git a/youchain-system/src/main/java/com/youchain/basicdata/rest/StockController.java b/youchain-system/src/main/java/com/youchain/basicdata/rest/StockController.java index c0f3569..e0a1bf2 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/rest/StockController.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/rest/StockController.java @@ -173,7 +173,7 @@ public class StockController { @PreAuthorize("@el.check('stock:edit')") public ResponseEntity updateStock(@Validated @RequestBody Stock resources) { stockService.update(resources); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); + return new ResponseEntity<>(HttpStatus.OK); } @PutMapping("/updateStockOK") diff --git a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/StockServiceImpl.java b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/StockServiceImpl.java index f6ba802..7ab42a2 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/StockServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/StockServiceImpl.java @@ -129,6 +129,9 @@ public class StockServiceImpl implements StockService { Point point = resources.getPoint(); point.setStatus(BaseStatus.USED); pointRepository.save(point); + } else { + resources.setPoint(null); + stockRepository.save(resources); } ValidationUtil.isNull(stock.getId(), "Stock", "id", resources.getId()); stock.copy(resources); @@ -498,13 +501,13 @@ public class StockServiceImpl implements StockService { /**验证目标容器*/ Stock dstStock = validatedstStock(dstStockCode); + if(dstStock.getStatus().equals(BaseStatus.USED)){ + throw new RuntimeException(dstStock.getCode()+"目标托盘已使用,请绑定新的托盘!"); + } /**待拣货数量*/ double moveQty = task.getPlanQty(); - /**库存移位*/ - moveInventory(task, dstStock, moveQty); - if (pick.getStock() == null) { pick.setStock(dstStock); pickRepository.save(pick); @@ -515,6 +518,11 @@ public class StockServiceImpl implements StockService { } } + /**库存移位*/ + moveInventory(task, dstStock, moveQty); + + + /**刷新拣货状态*/ refreshPickStatus(task, moveQty); 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 9ac4a1f..7a180de 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 @@ -431,6 +431,9 @@ public class AgvTaskServiceImpl implements AgvTaskService { case "FORK_UP": handleUpContainer(agvTask, containerCode);//容器顶升 break; + case "FORK_DOWN": + handleForkDownContainer(agvTask, containerCode);//容器放下 + break; case "COMPLETED": handleComContainer(agvTask, containerCode);//搬运任务完成 break; @@ -466,10 +469,6 @@ public class AgvTaskServiceImpl implements AgvTaskService { } List taskList = taskService.getAgvTaskList(agvTask.getId()); switch (endAreaName) { - case AreaNameDic.XJQ: - case AreaNameDic.DJQ: - handleXJDJ(agvTask, taskList, stock);//入库完成 - break; case AreaNameDic.XJFBQ: handleFBQ(taskList, stock, endPoint);//备料完成 break; @@ -488,6 +487,28 @@ public class AgvTaskServiceImpl implements AgvTaskService { update(agvTask); } + private void handleForkDownContainer(AgvTask agvTask, String containerCode) { + //任务完成;根据AGV任务的目标点位走对应流程 + Point endPoint = pointService.findByCode(agvTask.getEndSlotCode(), null, null, null, null, null); + String endAreaName = endPoint.getArea().getCode(); + Stock stock = stockRepository.findByCode(containerCode, null); + if (stock == null) { + throw new RuntimeException(containerCode + "容器不存在! 请维护"); + } + List taskList = taskService.getAgvTaskList(agvTask.getId()); + switch (endAreaName) { + case AreaNameDic.XJQ: + case AreaNameDic.DJQ: + handleXJDJ(agvTask, taskList, stock);//入库完成 + break; + } + + agvTask.setStatus(BizStatus.FINISH); + agvTask.setStockCode(containerCode); + agvTask.setEndTime(new Timestamp(new Date().getTime())); + update(agvTask); + } + /** * 容器出场 diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickDetailServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickDetailServiceImpl.java index cd1502f..e6f7df4 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickDetailServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickDetailServiceImpl.java @@ -155,7 +155,7 @@ public class PickDetailServiceImpl implements PickDetailService { for (Inventory inv : inventoryList) { //判断托盘是否有任务 if (taskRepository.existsByStock(inv.getStockCode()) >= 1) { - return pick.getCode() + "出库单;" + item.getCode() + "的" + inv.getStockCode() + "托盘有任务,请先完成任务!"; + continue; } Point startPoint = inv.getPoint();//起始点位 if (unQty == 0) { 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 c8a9b2e..b5f2c9a 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 @@ -75,7 +75,7 @@ public class pickTask { List statuses = Arrays.asList(BizStatus.PICK_ALL); List pickList = pickRepository.findByPickStatus(statuses,true); if (pickList.isEmpty()) { - throw new RuntimeException("无拣货完成的出库单,呼叫货架失败!"); + throw new RuntimeException("无拣货完成的出库单或出库单为未叫料,呼叫货架失败!"); } else { for (Pick pick : pickList) { stockService.callJlTask(pick);