From 6eeb61863488da99c32b47d0be8e3cc787c9e31f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Tue, 17 Mar 2026 20:45:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E6=9E=B6=E6=9F=A5=E8=AF=A2=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/MaterialInventory.java | 4 ++ .../repository/po/MaterialInventoryPO.java | 4 ++ .../service/StockShelfOrderDomainService.java | 38 +++++++++++++++++++ .../MaterialInventoryMapper.xml | 6 ++- 4 files changed, 50 insertions(+), 2 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/entity/MaterialInventory.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/entity/MaterialInventory.java index ffe3c401c..ccaae3094 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/entity/MaterialInventory.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/entity/MaterialInventory.java @@ -223,4 +223,8 @@ public class MaterialInventory extends BaseVOEntity { @Excel(name = "ExtAttr4", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @TableField("ext_attr_4") private Date extAttr4; + + @ApiModelProperty("条码") + @Excel(name = "条码") + private String barCode; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryPO.java index afc9d37a2..10ba70242 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryPO.java @@ -217,4 +217,8 @@ public class MaterialInventoryPO extends MaterialBasePO { @ApiModelProperty("单位名") @Excel(name = "单位名") private String unitName; + + @ApiModelProperty("条码") + @Excel(name = "条码") + private String barCode; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java index df7a003d1..ad676f8ae 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java @@ -709,6 +709,24 @@ public class StockShelfOrderDomainService { materialInventory.setNetWeight(shelfMaterialDetail.getTotalNetWeight()); materialInventory.setUnit(materialBaseInfo.getUnitCode()); materialInventory.setUnitName(materialBaseInfo.getUnitName()); + // 条码:优先取上架明细的 barCode,为空则从 material_bar_code 表取(优先 EA 单位) + String insertBarCode = shelfMaterialDetail.getBarCode(); + if (StringUtils.isBlank(insertBarCode) && shelfMaterialDetail.getMaterialBaseInfoId() != null) { + try { + List barCodeList = materialBarCodeService.getInfoByMaterialBaseInfoIds(shelfMaterialDetail.getMaterialBaseInfoId()); + if (barCodeList != null && !barCodeList.isEmpty()) { + MaterialBarCodePO eaBarCode = barCodeList.stream() + .filter(po -> "EA".equals(po.getUnitCode())) + .findFirst().orElse(barCodeList.get(0)); + if (eaBarCode != null && StringUtils.isNotBlank(eaBarCode.getBarCode())) { + insertBarCode = eaBarCode.getBarCode(); + } + } + } catch (Exception e) { + log.warn("获取条码失败,materialBaseInfoId={},错误:{}", shelfMaterialDetail.getMaterialBaseInfoId(), e.getMessage()); + } + } + materialInventory.setBarCode(insertBarCode); materialInventoryMapper.insert(materialInventory); @@ -827,6 +845,26 @@ public class StockShelfOrderDomainService { materialInventory.setUpdateBy(loginUser.getUserid()); materialInventory.setUpdateByName(loginUser.getUsername()); materialInventory.setUpdateTime(new Date()); + // 如果库存记录没有 barCode,则补充写入 + if (StringUtils.isBlank(materialInventoryPO.getBarCode())) { + String updateBarCode = shelfMaterialDetail.getBarCode(); + if (StringUtils.isBlank(updateBarCode) && shelfMaterialDetail.getMaterialBaseInfoId() != null) { + try { + List barCodeList = materialBarCodeService.getInfoByMaterialBaseInfoIds(shelfMaterialDetail.getMaterialBaseInfoId()); + if (barCodeList != null && !barCodeList.isEmpty()) { + MaterialBarCodePO eaBarCode = barCodeList.stream() + .filter(po -> "EA".equals(po.getUnitCode())) + .findFirst().orElse(barCodeList.get(0)); + if (eaBarCode != null && StringUtils.isNotBlank(eaBarCode.getBarCode())) { + updateBarCode = eaBarCode.getBarCode(); + } + } + } catch (Exception e) { + log.warn("获取条码失败,materialBaseInfoId={},错误:{}", shelfMaterialDetail.getMaterialBaseInfoId(), e.getMessage()); + } + } + materialInventory.setBarCode(updateBarCode); + } materialInventoryMapper.updateById(materialInventory); diff --git a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml index af1cb9031..7b32259c9 100644 --- a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml @@ -61,6 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -81,7 +82,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" IFNULL (sum(a.VOLUME), 0) VOLUME, a.ext_attr_1, a.ext_attr_2, a.ext_attr_3, a.ext_attr_4, a.production_date, a.expiry_date, a.inventory_date, - a.BATCH_REF_NO, a.SHEET_REF_NO, a.BOX_PALLET_NO,nvl(a.unit_name,b.unit_name) as unit_name + a.BATCH_REF_NO, a.SHEET_REF_NO, a.BOX_PALLET_NO,nvl(a.unit_name,b.unit_name) as unit_name, + a.bar_code as inv_bar_code @@ -274,7 +276,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - +