diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java index 7c602c8..6c5ff06 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java @@ -323,24 +323,28 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi String warehouseCode = inventoryDetail.getWarehouseCode(); String locationCode = inventoryDetail.getLocationCode(); Container container = containerService.getContainerByCode(containerCode, warehouseCode); + // 每次组盘都需判断是整盘出库还是分拣出库 LambdaQueryWrapper<ShipmentContainerHeader> shipmentContainerHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); shipmentContainerHeaderLambdaQueryWrapper.eq(ShipmentContainerHeader::getContainerCode, containerCode) .eq(ShipmentContainerHeader::getFromLocationCode, locationCode).eq(ShipmentContainerHeader::getWarehouseCode, warehouseCode) .lt(ShipmentContainerHeader::getStatus, QuantityConstant.SHIPMENT_CONTAINER_FINISHED); ShipmentContainerHeader shipmentContainerHeader = shipmentContainerHeaderService.getOne(shipmentContainerHeaderLambdaQueryWrapper); - if (shipmentContainerHeader != null) { - return shipmentContainerHeader; - } else { - List<InventoryDetail> inventoryDetailList = inventoryDetailService.getInventoryDetailListByContainerCode(containerCode, warehouseCode); - int taskType = QuantityConstant.TASK_TYPE_WHOLESHIPMENT; - // 如果库存还有剩余,那么就是分拣出库 - if (inventoryDetailList != null && inventoryDetailList.size() > 0) { - for (InventoryDetail inventoryDetail1 : inventoryDetailList) { - if (inventoryDetail1.getQty().subtract(inventoryDetail1.getTaskQty()).compareTo(BigDecimal.ZERO) > 0) { - taskType = QuantityConstant.TASK_TYPE_SORTINGSHIPMENT; - } + List<InventoryDetail> inventoryDetailList = inventoryDetailService.getInventoryDetailListByContainerCode(containerCode, warehouseCode); + int taskType = QuantityConstant.TASK_TYPE_WHOLESHIPMENT; + // 如果库存还有剩余,那么就是分拣出库 + if (inventoryDetailList != null && inventoryDetailList.size() > 0) { + for (InventoryDetail inventoryDetail1 : inventoryDetailList) { + if (inventoryDetail1.getQty().subtract(inventoryDetail1.getTaskQty()).compareTo(BigDecimal.ZERO) > 0) { + taskType = QuantityConstant.TASK_TYPE_SORTINGSHIPMENT; } } + } + if (shipmentContainerHeader != null) { + if (taskType != shipmentContainerHeader.getTaskType()) { + shipmentContainerHeader.setTaskType(taskType); + shipmentContainerHeaderService.updateById(shipmentContainerHeader); + } + } else { shipmentContainerHeader = new ShipmentContainerHeader(); shipmentContainerHeader.setContainerCode(containerCode); shipmentContainerHeader.setFromLocationCode(locationCode); @@ -354,8 +358,9 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi if (!success) { throw new JeecgBootException("新增出库组盘头失败"); } - return shipmentContainerHeader; + } + return shipmentContainerHeader; } @Transactional(rollbackFor = JeecgBootException.class)