diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/deliveTask/DeliveTaskApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/deliveTask/DeliveTaskApplicationService.java index abeae88ca..58f3b21f1 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/deliveTask/DeliveTaskApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/deliveTask/DeliveTaskApplicationService.java @@ -47,7 +47,8 @@ public class DeliveTaskApplicationService { if (topOrganizationId != null && topOrganizationId != 1){ deliveTaskDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); } - // operatorsBy 仅由 DeliveTaskImpl 根据 tabType 设置,此处不覆盖,保证条件查询生效 + // 只查询下发给当前登录用户的任务 + deliveTaskDO.setOperatorsBy(loginUser.getUserid()); } return deliveTaskDomainService.queryListApp(deliveTaskDO); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java index 66f8801f9..4bca3b497 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java @@ -394,7 +394,7 @@ public class HandoverTaskOrderDomainService { inventoryAdjustmentRecord.setMaterialCode(outMaterialDetail.getMaterialNo()); inventoryAdjustmentRecord.setMaterialName(outMaterialDetail.getCommodityName()); inventoryAdjustmentRecord.setBarCode(outMaterialDetail.getBarCode()); - if (inventoryAdjustmentRecord.getBarCode().equals("")){ + if (inventoryAdjustmentRecord.getBarCode() == null || inventoryAdjustmentRecord.getBarCode().isEmpty()){ getBarCode(materialInventoryPO, inventoryAdjustmentRecord); } inventoryAdjustmentRecord.setMaterialBaseInfoId(outMaterialDetail.getMaterialBaseInfoId()); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/service/ShiftManageDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/service/ShiftManageDomainService.java index 39b22396d..301101693 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/service/ShiftManageDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/shiftManage/service/ShiftManageDomainService.java @@ -738,18 +738,32 @@ public class ShiftManageDomainService { shiftQuantity = shiftMaterialDetailPOChildrenList.stream() .map(c -> c.getShiftQuantity() != null ? c.getShiftQuantity() : BigDecimal.ZERO) .reduce(BigDecimal.ZERO, BigDecimal::add); - shiftMaterialDetailPO.setMaterialMoreDetailList(materialMoreDetailMap.get(shiftMaterialDetailPO.getUniqueId())); + List parentMoreDetail = materialMoreDetailMap.get(shiftMaterialDetailPO.getUniqueId()); + // 若前端未传批次属性,则从原库存补充 + if (CollectionUtils.isEmpty(parentMoreDetail)) { + parentMoreDetail = buildMaterialMoreDetailFromInventory(materialInventoryOldDb); + } + shiftMaterialDetailPO.setMaterialMoreDetailList(parentMoreDetail); for (ShiftMaterialDetailPO shiftMaterialDetailPOChildren : shiftMaterialDetailPOChildrenList) { List childMoreDetail = materialMoreDetailMap.get(shiftMaterialDetailPOChildren.getUniqueId()); - if (childMoreDetail == null) { + if (CollectionUtils.isEmpty(childMoreDetail)) { childMoreDetail = materialMoreDetailMap.get(shiftMaterialDetailPO.getUniqueId()); } + // 若仍为空,则从原库存补充 + if (CollectionUtils.isEmpty(childMoreDetail)) { + childMoreDetail = buildMaterialMoreDetailFromInventory(materialInventoryOldDb); + } shiftMaterialDetailPOChildren.setMaterialMoreDetailList(childMoreDetail); materialInventoryNowList.add(genMaterialInventory(shiftMaterialDetailPOChildren)); } } else { shiftQuantity = shiftMaterialDetailPO.getShiftQuantity() != null ? shiftMaterialDetailPO.getShiftQuantity() : BigDecimal.ZERO; - shiftMaterialDetailPO.setMaterialMoreDetailList(materialMoreDetailMap.get(shiftMaterialDetailPO.getUniqueId())); + List moreDetail = materialMoreDetailMap.get(shiftMaterialDetailPO.getUniqueId()); + // 若前端未传批次属性,则从原库存补充 + if (CollectionUtils.isEmpty(moreDetail)) { + moreDetail = buildMaterialMoreDetailFromInventory(materialInventoryOldDb); + } + shiftMaterialDetailPO.setMaterialMoreDetailList(moreDetail); materialInventoryNowList.add(genMaterialInventory(shiftMaterialDetailPO)); } if (materialInventoryOldDb.getInventoryQuantity().compareTo(shiftQuantity) < 0){ @@ -881,10 +895,69 @@ public class ShiftManageDomainService { BeanUtils.copyProperties(materialInventoryDb, materialInventoryDONow); materialInventoryDONow.setInventoryQuantity(shiftMaterialDetailPO.getShiftQuantity()); materialInventoryDONow.setAllocationQuantity(shiftMaterialDetailPO.getShiftQuantity()); + // 目标库位已存在时,用 materialMoreDetailList 覆盖批次属性(保证批次属性随移位写入) + BatchAttributeAssignment(materialMoreDetailList, materialInventoryDONow); return materialInventoryDONow; } } + /** + * 从库存对象构建 MaterialMoreDetailList,供前端未传批次属性时兜底使用 + */ + private List buildMaterialMoreDetailFromInventory(MaterialInventory inv) { + List list = new ArrayList<>(); + if (inv == null) return list; + if (inv.getProductionDate() != null) { + MaterialMoreDetailPO m = new MaterialMoreDetailPO(); + m.setBatchLabels("生产日期"); + m.setAttributeValue(new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(inv.getProductionDate())); + list.add(m); + } + if (inv.getExpiryDate() != null) { + MaterialMoreDetailPO m = new MaterialMoreDetailPO(); + m.setBatchLabels("过期日期"); + m.setAttributeValue(new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(inv.getExpiryDate())); + list.add(m); + } + if (inv.getInventoryDate() != null) { + MaterialMoreDetailPO m = new MaterialMoreDetailPO(); + m.setBatchLabels("存货日期"); + m.setAttributeValue(new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(inv.getInventoryDate())); + list.add(m); + } + if (inv.getBatchRefNo() != null && !inv.getBatchRefNo().isEmpty()) { + MaterialMoreDetailPO m = new MaterialMoreDetailPO(); + m.setBatchLabels("Batch Ref NO's"); + m.setAttributeValue(inv.getBatchRefNo()); + list.add(m); + } + if (inv.getSheetRefNo() != null && !inv.getSheetRefNo().isEmpty()) { + MaterialMoreDetailPO m = new MaterialMoreDetailPO(); + m.setBatchLabels("Sheet Ref NO's"); + m.setAttributeValue(inv.getSheetRefNo()); + list.add(m); + } + if (inv.getBoxPalletNo() != null && !inv.getBoxPalletNo().isEmpty()) { + MaterialMoreDetailPO m = new MaterialMoreDetailPO(); + m.setBatchLabels("箱号/卡板号"); + m.setAttributeValue(inv.getBoxPalletNo()); + list.add(m); + } + if (inv.getExtAttr1() != null && !inv.getExtAttr1().isEmpty()) { + MaterialMoreDetailPO m = new MaterialMoreDetailPO(); + m.setBatchLabels("扩展属性1"); + m.setAttributeValue(inv.getExtAttr1()); + list.add(m); + } + if (inv.getExtAttr2() != null && !inv.getExtAttr2().isEmpty()) { + MaterialMoreDetailPO m = new MaterialMoreDetailPO(); + m.setBatchLabels("扩展属性2"); + m.setAttributeValue(inv.getExtAttr2()); + list.add(m); + } + return list; + } + private void BatchAttributeAssignment(List materialMoreDetailList, MaterialInventoryDO materialInventoryDONow) { if (CollectionUtils.isEmpty(materialMoreDetailList)) { return; diff --git a/mhd_wms/src/main/resources/mapper/deliveTask/DeliveTaskMapper.xml b/mhd_wms/src/main/resources/mapper/deliveTask/DeliveTaskMapper.xml index 196979e7f..6b2719c50 100644 --- a/mhd_wms/src/main/resources/mapper/deliveTask/DeliveTaskMapper.xml +++ b/mhd_wms/src/main/resources/mapper/deliveTask/DeliveTaskMapper.xml @@ -119,6 +119,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and operators_by IS NULL + + and operators_by = #{operatorsBy} + and operators_name like concat('%', #{operatorsName}, '%') diff --git a/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml b/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml index b387c80df..020429b49 100644 --- a/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml @@ -124,6 +124,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.picking_order_number = #{pickingOrderNumber} + + and a.operators_by = #{operatorsBy} + and a.create_by_name like concat('%', #{createByName}, '%')