From ab573249683062e1443edf403c1e6e65cd8dae61 Mon Sep 17 00:00:00 2001 From: "HUOJIN\\92525" Date: Mon, 16 Dec 2024 18:11:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E4=BB=B6=E8=B5=B0=E4=BA=BA=E5=B7=A5?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=EF=BC=9B=E5=B0=8F=E4=BB=B6=E8=B5=B0AGV?= =?UTF-8?q?=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BydAppServiceImpl.java | 68 ++++++++++++++++++- .../service/impl/AsnDetailServiceImpl.java | 1 - .../service/impl/TaskServiceImpl.java | 1 - 3 files changed, 66 insertions(+), 4 deletions(-) diff --git a/youchain-system/src/main/java/com/youchain/appupdate/service/impl/BydAppServiceImpl.java b/youchain-system/src/main/java/com/youchain/appupdate/service/impl/BydAppServiceImpl.java index 0cb6427..11a3ae6 100644 --- a/youchain-system/src/main/java/com/youchain/appupdate/service/impl/BydAppServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/appupdate/service/impl/BydAppServiceImpl.java @@ -36,6 +36,7 @@ public class BydAppServiceImpl implements BydAppService { private final AsnDetailService asnDetailService; private final ItemKeyService itemKeyService; private final TaskService taskService; + private final InventoryLogService inventoryLogService; private final AgvTaskService agvTaskService; private final InventoryService inventoryService; private final KMReService kmReService; @@ -85,6 +86,70 @@ public class BydAppServiceImpl implements BydAppService { //指定容器类型:托盘 validateStockType(stock.getStockType()); + switch (item.getGoodType()) { + case BizStatus.XJ: + xjMaterialIn(stock, pointCode, item, barCodeVos); + break; + case BizStatus.DJ: + djMaterialIn(stock, pointCode, item, barCodeVos); + break; + default: + throw new BadRequestException(item.getCode() + "物料类型不正确,请检查"); + } + + + } + + private void djMaterialIn(Stock stock, String pointCode, Item item, List barCodeVos) { + //验证终点;大件入库只能扫描大件存储区的点位 + Point endPoint = pointService.validatePoint(pointCode); + if (!AreaNameDic.DJQ.equals(endPoint.getArea().getName())) { + throw new BadRequestException(pointCode + "不是大件存储区中的点位,请检查"); + } + //验证终点状态 + pointService.validatePointStatus(endPoint); + + //清空库存 + inventoryService.clearInventory(stock); + + //创建ASN明细和ItemKey和Task任务库存 + for (BarCodeVo barCodeVo : barCodeVos) { + + AsnDetail asnDetail = asnDetailService.createAsnDetail(item, stock, null, barCodeVo.getPropC1(), barCodeVo.getBoxNumber(), barCodeVo.getPropC3(), Timestamp.valueOf(DateUtil.formatDateTime(DateUtil.parse(barCodeVo.getPropD1()))), barCodeVo.getOrderQty(), barCodeVo.getMo()); + if (asnDetail != null) { + asnDetail.setReceivedQty(asnDetail.getOrderQty()); + asnDetail.setStatus(BizStatus.RECEIVED); + asnDetailService.update(asnDetail); + } + + ItemKey itemKey = itemKeyService.createItemKey(item, barCodeVo.getPropC1(), asnDetail.getPropD1(), barCodeVo.getBoxNumber()); + + Task task = taskService.createTask(item, asnDetail.getOrderQty(), itemKey, asnDetail, BizStatus.ASN, null, null, stock, null, endPoint, null); + if (task != null) { + task.setMoveQty(task.getPlanQty()); + task.setTaskStatus(BizStatus.FINISH); + taskService.update(task); + } + + //新增库存 + Inventory inventory = inventoryService.createInventory(itemKey, endPoint, stock, stock.getDept(), asnDetail.getOrderQty()); + + //点位占用 + pointService.usedPoint(endPoint); + + //占用容器 + stockService.usedStock(stock, endPoint, BaseStatus.USED); + + //新增日志 + inventoryLogService.createInventoryLog(BizStatus.RECEIVING_UP, BizStatus.ADD, null, itemKey, null, endPoint, stock, stock, 0d, asnDetail.getOrderQty(), BizStatus.ASN, asnDetail.getId(), inventory.getId(), asnDetail.getRemark()); + + } + + + } + + private void xjMaterialIn(Stock stock, String pointCode, Item item, List barCodeVos) { + //验证起点点位 Point srcPoint = pointService.validatePoint(pointCode); @@ -113,7 +178,6 @@ public class BydAppServiceImpl implements BydAppService { //发送任务 kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskCcJson(agvTask)); - } @Override @@ -298,7 +362,7 @@ public class BydAppServiceImpl implements BydAppService { private void validateSrcPointArea(Point srcPoint) { String srcPointAreaName = srcPoint.getArea().getName(); if (!AreaNameDic.DXJRKQ.equals(srcPointAreaName)) { - throw new BadRequestException(srcPointAreaName + "的" + srcPoint.getCode() + "点位不能入库"); + throw new BadRequestException(srcPoint.getCode() + "不是小件入库点位,请检查"); } } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AsnDetailServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AsnDetailServiceImpl.java index 12f6b5b..02b358c 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AsnDetailServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AsnDetailServiceImpl.java @@ -75,7 +75,6 @@ public class AsnDetailServiceImpl implements AsnDetailService { } @Override - @Transactional(rollbackFor = Exception.class) public void update(AsnDetail resources) { AsnDetail asnDetail = asnDetailRepository.findById(resources.getId()).orElseGet(AsnDetail::new); ValidationUtil.isNull(asnDetail.getId(), "AsnDetail", "id", resources.getId()); 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 fc095c8..f9564d7 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 @@ -86,7 +86,6 @@ public class TaskServiceImpl implements TaskService { } @Override - @Transactional(rollbackFor = Exception.class) public void update(Task resources) { Task task = taskRepository.findById(resources.getId()).orElseGet(Task::new); ValidationUtil.isNull(task.getId(), "Task", "id", resources.getId());