diff --git a/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java b/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java index ab380b4..8dca008 100644 --- a/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java +++ b/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java @@ -85,7 +85,7 @@ public class ShippingCombinationService { // 如果物料的供需政策为LP的,必须匹配通知单号才可以出库 - if (policy.equals("PL")) { + if (!openExhibitionRestrictions && policy.equals("LP")) { String finalNoticeNo = noticeNo; list.removeIf(detail -> !detail.getNoticeCode().equals(finalNoticeNo)); } diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java index ebfc6c1..4562f0b 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java @@ -650,7 +650,6 @@ public class ShipmentTaskService { if (StringUtils.isEmpty(containerCode)) { throw new ServiceException("系统无" + container + "容器"); } - //将库位状态改为空闲,如果是整出的对应的容器也清空 Location fromLocationRecord = locationService.getLocationByCode(fromLocation, warehouseCode); if (StringUtils.isNull(fromLocationRecord)) { @@ -686,7 +685,13 @@ public class ShipmentTaskService { throw new ServiceException("删除临时容器失败"); } } else { - containerService.updateLocationCodeAndStatus(containerCode, "", QuantityConstant.STATUS_CONTAINER_EMPTY, warehouseCode); + container.setCode(containerCode); + container.setLocationCode(""); + container.setStatus(QuantityConstant.STATUS_CONTAINER_EMPTY); + if (!containerService.updateById(container)) { + throw new ServiceException("完成出库任务时,修改容器状态失败"); + } + //containerService.updateLocationCodeAndStatus(containerCode, "", QuantityConstant.STATUS_CONTAINER_EMPTY, warehouseCode); } } else { //查询是否存在关联的库存,入如果没有就修改容器状态为empty @@ -695,9 +700,21 @@ public class ShipmentTaskService { List<InventoryDetail> detailList = inventoryDetailService.list(inventoryDetaillambdaQueryWrapper); //库存查询不到该容器就把容器状态改为可用 if (detailList.isEmpty()) { - containerService.updateLocationCodeAndStatus(containerCode, toLocation, QuantityConstant.STATUS_CONTAINER_EMPTY, warehouseCode); + container.setCode(containerCode); + container.setLocationCode(toLocation); + container.setStatus(QuantityConstant.STATUS_CONTAINER_EMPTY); + if (!containerService.updateById(container)) { + throw new ServiceException("完成出库任务时,修改容器状态失败"); + } + //containerService.updateLocationCodeAndStatus(containerCode, toLocation, QuantityConstant.STATUS_CONTAINER_EMPTY, warehouseCode); } else { - containerService.updateLocationCodeAndStatus(containerCode, toLocation, QuantityConstant.STATUS_CONTAINER_SOME, warehouseCode); + container.setCode(containerCode); + container.setLocationCode(toLocation); + container.setStatus(QuantityConstant.STATUS_CONTAINER_SOME); + if (!containerService.updateById(container)) { + throw new ServiceException("完成出库任务时,修改容器状态失败"); + } + //containerService.updateLocationCodeAndStatus(containerCode, toLocation, QuantityConstant.STATUS_CONTAINER_SOME, warehouseCode); } } }