From e029cbcb1f4c0ece3ff9d95f4da6678345263c6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Sat, 14 Mar 2026 18:49:55 +0800 Subject: [PATCH] =?UTF-8?q?PDA=E5=AE=B9=E5=99=A8=E7=A7=BB=E4=BD=8D?= =?UTF-8?q?=E7=89=A9=E6=96=99=E5=8C=85=E8=A3=85=E8=A7=84=E6=A0=BC=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MaterialInventoryApplicationService.java | 34 +++++++++++++++++++ .../ShiftManageApplicationService.java | 3 ++ .../po/MaterialInventoryQueryListPO.java | 12 +++++++ .../MaterialBaseInfoMapper.xml | 5 ++- .../MaterialInventoryMapper.xml | 3 ++ 5 files changed, 56 insertions(+), 1 deletion(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventory/MaterialInventoryApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventory/MaterialInventoryApplicationService.java index a1eb4b009..64c5085a2 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventory/MaterialInventoryApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventory/MaterialInventoryApplicationService.java @@ -18,6 +18,8 @@ import com.mhd.wms.domain.materialInventory.repository.po.MaterialInventoryQuery import com.mhd.wms.domain.materialInventory.repository.todo.MaterialInventoryDO; import com.mhd.wms.domain.materialInventory.repository.todo.MaterialInventoryQueryListDO; import com.mhd.wms.domain.materialInventory.service.MaterialInventoryDomainService; +import com.mhd.wms.domain.materialBarCode.repository.facade.IMaterialBarCodeService; +import com.mhd.wms.domain.materialBarCode.repository.po.MaterialBarCodePO; import com.mhd.wms.domain.materialMoreDetail.repository.po.MaterialMoreDetailPO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -44,6 +46,8 @@ public class MaterialInventoryApplicationService { private SystemServiceFeign systemServiceFeign; @Autowired private MaterialInventoryMapper materialInventoryMapper; + @Autowired + private IMaterialBarCodeService materialBarCodeService; /** @@ -516,6 +520,7 @@ public class MaterialInventoryApplicationService { /** * 库存查询列表批次属性填充,与按单移位 fillMaterialMoreDetailForShiftDetail 一致 + * 物料条码、包装规格:优先用 material_base_info,为空时从 material_bar_code 取条码(参考收货单实现) */ private void fillMaterialMoreDetailForInventoryQueryList(List list) { if (CollectionUtils.isEmpty(list)) { @@ -525,6 +530,16 @@ public class MaterialInventoryApplicationService { .map(MaterialInventoryQueryListPO::getMaterialBaseInfoId) .filter(Objects::nonNull) .collect(Collectors.toSet()); + // 物料条码:material_base_info.bar_code 为空时,从 material_bar_code 取第一条(参考 StockReceiptOrderApplicationService) + Map materialBarCodeMap = buildMaterialBarCodeMap(materialBaseInfoIdSet); + list.forEach(po -> { + if (StringUtils.isBlank(po.getBarCode()) && po.getMaterialBaseInfoId() != null) { + String barCode = materialBarCodeMap.get(po.getMaterialBaseInfoId()); + if (StringUtils.isNotBlank(barCode)) { + po.setBarCode(barCode); + } + } + }); Map> batchDetailMap = new HashMap<>(); for (Long materialBaseInfoId : materialBaseInfoIdSet) { try { @@ -567,6 +582,25 @@ public class MaterialInventoryApplicationService { po.setMaterialMoreDetailList(filtered); } + /** + * 批量查询物料条码,取 material_bar_code 表第一条 barCode(参考 StockReceiptOrderApplicationService) + */ + private Map buildMaterialBarCodeMap(Set materialBaseInfoIdSet) { + Map map = new HashMap<>(); + if (materialBaseInfoIdSet == null || materialBaseInfoIdSet.isEmpty()) return map; + for (Long materialBaseInfoId : materialBaseInfoIdSet) { + try { + List list = materialBarCodeService.getInfoByMaterialBaseInfoIds(materialBaseInfoId); + if (!CollectionUtils.isEmpty(list) && StringUtils.isNotBlank(list.get(0).getBarCode())) { + map.put(materialBaseInfoId, list.get(0).getBarCode()); + } + } catch (Exception e) { + log.warn("获取物料条码失败,materialBaseInfoId={}, error={}", materialBaseInfoId, e.getMessage()); + } + } + return map; + } + /** 净重、毛重、体积、面积、移位数量在底部表单区显示,从上面 materialMoreDetailList 中排除,与按单移位一致 */ private static final String[] WEIGHT_VOLUME_AREA_SHIFT_LABELS = { "净重(KG)", "净重", "总净重", diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/shiftManage/ShiftManageApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/shiftManage/ShiftManageApplicationService.java index bfd01c581..d47fcf3a6 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/shiftManage/ShiftManageApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/shiftManage/ShiftManageApplicationService.java @@ -214,6 +214,9 @@ public class ShiftManageApplicationService { d.setBatchNumber(inv.getBatchNumber()); d.setMaterialStatusCode(inv.getMaterialStatusCode()); d.setMaterialStatusName(inv.getMaterialStatusName()); + d.setPackId(inv.getPackId()); + d.setPackCode(inv.getPackCode()); + d.setPackName(inv.getPackName()); d.setUnitCode(inv.getUnit()); d.setUnitName(inv.getUnitName()); d.setNetWeight(inv.getNetWeight()); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryQueryListPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryQueryListPO.java index 9db299f10..0d5b8b575 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryQueryListPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryQueryListPO.java @@ -69,6 +69,18 @@ public class MaterialInventoryQueryListPO extends MaterialBasePO { @Excel(name = "物料条形码") private String barCode; + @ApiModelProperty("包装规格id") + @Excel(name = "包装规格id") + private Long packId; + + @ApiModelProperty("包装规格编码") + @Excel(name = "包装规格编码") + private String packCode; + + @ApiModelProperty("包装规格名称") + @Excel(name = "包装规格名称") + private String packName; + @ApiModelProperty("仓库id") @Excel(name = "仓库id") private Long warehouseId; diff --git a/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml b/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml index 586b35c51..1b90257ed 100644 --- a/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml @@ -75,7 +75,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" b.material_classify_name, b.material_type, b.material_type_name, - b.common,b.pack_name + b.common, + b.pack_id, + b.pack_code, + b.pack_name diff --git a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml index 58b440a30..77d072eb7 100644 --- a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml @@ -275,6 +275,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + +