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 46713ae..0cb6427 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 @@ -3,6 +3,7 @@ package com.youchain.appupdate.service.impl; import cn.hutool.core.date.DateUtil; import com.youchain.appupdate.ReturnJson.ReturnTaskVo; import com.youchain.appupdate.service.BydAppService; +import com.youchain.basicdata.domain.Area; import com.youchain.basicdata.domain.Item; import com.youchain.basicdata.domain.Point; import com.youchain.basicdata.domain.Stock; @@ -151,8 +152,11 @@ public class BydAppServiceImpl implements BydAppService { //刷新出库单状态 pickService.refreshPickStatus(task.getPickDetail().getPick()); - //Agv中所有料箱任务拣货完成;原托盘回库内 - this.returnFBAgvTask(task); + //成品原托盘返库;单品不回库 + if (BaseStatus.GD_TYPE_CT.equals(pick.getOrderType())) { + this.returnFBAgvTask(task); + } + } @@ -301,7 +305,7 @@ public class BydAppServiceImpl implements BydAppService { public void createAsnDetailsAndItemKeysAndTasks(List barCodeVos, Item item, Stock stock, Point srcPoint, Point endPoint, AgvTask agvTask) { for (BarCodeVo barCodeVo : barCodeVos) { AsnDetail asnDetail = asnDetailService.createAsnDetail(item, stock, srcPoint, barCodeVo.getPropC1(), barCodeVo.getBoxNumber(), barCodeVo.getPropC3(), Timestamp.valueOf(DateUtil.formatDateTime(DateUtil.parse(barCodeVo.getPropD1()))), barCodeVo.getOrderQty(), barCodeVo.getMo()); - ItemKey itemKey = itemKeyService.createItemKey(item, barCodeVo.getPropC1(),asnDetail.getPropD1(), barCodeVo.getBoxNumber()); + 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, srcPoint, endPoint, agvTask); } } @@ -356,7 +360,7 @@ public class BydAppServiceImpl implements BydAppService { //验证目标托盘是否在翻包存储区 String itemType = task.getItemKey().getItem().getGoodType(); - String areaName = "大件".equals(itemType)? AreaNameDic.DJFBCQ : AreaNameDic.XJFBCQ; + String areaName = "大件".equals(itemType) ? AreaNameDic.DJFBCQ : AreaNameDic.XJFBCQ; if (!areaName.equals(dstStock.getPoint().getArea().getName())) { throw new BadRequestException(dstStockCode + "目标托盘没有在" + areaName); } @@ -388,7 +392,21 @@ public class BydAppServiceImpl implements BydAppService { moveQty += task1.getMoveQty(); } if (planQty == moveQty) { - kmReService.returnFBAgvTask(task.getDstPoint(), task.getSrcStock(), task.getItem()); + //成品当前托盘没有库存则不需要回库; + List inventoryList = inventoryService.findByStockCode(task.getSrcStock().getCode()); + List smallAreaInventories = inventoryList.stream() + .filter(inv -> { + if (inv.getPoint() != null && inv.getPoint().getArea() != null) { + String areaName = inv.getPoint().getArea().getName(); + return AreaNameDic.XJQ.equals(areaName) || AreaNameDic.XJFBQ.equals(areaName); + } + return false; + }) + .collect(Collectors.toList()); + if (!smallAreaInventories.isEmpty()) { + kmReService.returnFBAgvTask(task.getDstPoint(), task.getSrcStock(), task.getItem()); + } + } }