Commit f3c3d3dd23b329b2c13dca0f899a695b9e058a9f

Authored by xcq
1 parent d25e5be4

优化组盘

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
323 323 String warehouseCode = inventoryDetail.getWarehouseCode();
324 324 String locationCode = inventoryDetail.getLocationCode();
325 325 Container container = containerService.getContainerByCode(containerCode, warehouseCode);
  326 + // 每次组盘都需判断是整盘出库还是分拣出库
326 327 LambdaQueryWrapper<ShipmentContainerHeader> shipmentContainerHeaderLambdaQueryWrapper = Wrappers.lambdaQuery();
327 328 shipmentContainerHeaderLambdaQueryWrapper.eq(ShipmentContainerHeader::getContainerCode, containerCode)
328 329 .eq(ShipmentContainerHeader::getFromLocationCode, locationCode).eq(ShipmentContainerHeader::getWarehouseCode, warehouseCode)
329 330 .lt(ShipmentContainerHeader::getStatus, QuantityConstant.SHIPMENT_CONTAINER_FINISHED);
330 331 ShipmentContainerHeader shipmentContainerHeader = shipmentContainerHeaderService.getOne(shipmentContainerHeaderLambdaQueryWrapper);
331   - if (shipmentContainerHeader != null) {
332   - return shipmentContainerHeader;
333   - } else {
334   - List<InventoryDetail> inventoryDetailList = inventoryDetailService.getInventoryDetailListByContainerCode(containerCode, warehouseCode);
335   - int taskType = QuantityConstant.TASK_TYPE_WHOLESHIPMENT;
336   - // 如果库存还有剩余,那么就是分拣出库
337   - if (inventoryDetailList != null && inventoryDetailList.size() > 0) {
338   - for (InventoryDetail inventoryDetail1 : inventoryDetailList) {
339   - if (inventoryDetail1.getQty().subtract(inventoryDetail1.getTaskQty()).compareTo(BigDecimal.ZERO) > 0) {
340   - taskType = QuantityConstant.TASK_TYPE_SORTINGSHIPMENT;
341   - }
  332 + List<InventoryDetail> inventoryDetailList = inventoryDetailService.getInventoryDetailListByContainerCode(containerCode, warehouseCode);
  333 + int taskType = QuantityConstant.TASK_TYPE_WHOLESHIPMENT;
  334 + // 如果库存还有剩余,那么就是分拣出库
  335 + if (inventoryDetailList != null && inventoryDetailList.size() > 0) {
  336 + for (InventoryDetail inventoryDetail1 : inventoryDetailList) {
  337 + if (inventoryDetail1.getQty().subtract(inventoryDetail1.getTaskQty()).compareTo(BigDecimal.ZERO) > 0) {
  338 + taskType = QuantityConstant.TASK_TYPE_SORTINGSHIPMENT;
342 339 }
343 340 }
  341 + }
  342 + if (shipmentContainerHeader != null) {
  343 + if (taskType != shipmentContainerHeader.getTaskType()) {
  344 + shipmentContainerHeader.setTaskType(taskType);
  345 + shipmentContainerHeaderService.updateById(shipmentContainerHeader);
  346 + }
  347 + } else {
344 348 shipmentContainerHeader = new ShipmentContainerHeader();
345 349 shipmentContainerHeader.setContainerCode(containerCode);
346 350 shipmentContainerHeader.setFromLocationCode(locationCode);
... ... @@ -354,8 +358,9 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi
354 358 if (!success) {
355 359 throw new JeecgBootException("新增出库组盘头失败");
356 360 }
357   - return shipmentContainerHeader;
  361 +
358 362 }
  363 + return shipmentContainerHeader;
359 364 }
360 365  
361 366 @Transactional(rollbackFor = JeecgBootException.class)
... ...