diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictDataMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictDataMapper.xml index daae13bd7..4e2988ca2 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictDataMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictDataMapper.xml @@ -43,6 +43,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND status = #{status} + + AND organization_id = #{organizationId} + AND (top_organization_id = #{topOrganizationId} OR is_default = 'Y') diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/persistence/ReceiptMaterialDetailImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/persistence/ReceiptMaterialDetailImpl.java index 7043d3ab2..795912381 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/persistence/ReceiptMaterialDetailImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/persistence/ReceiptMaterialDetailImpl.java @@ -439,8 +439,7 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl materialMoreDetailList = receiptMaterialDetailDO.getMaterialMoreDetailList(); if (CollectionUtils.isEmpty(materialMoreDetailList)) { // 处理子项 @@ -1342,7 +1344,7 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl list = receiptMaterialDetailDO.getMaterialMoreDetailList(); + if (list == null) { + list = new ArrayList<>(); + receiptMaterialDetailDO.setMaterialMoreDetailList(list); + } + boolean updated = false; + for (MaterialMoreDetailDO item : list) { + if ("批次号".equals(item.getBatchLabels())) { + item.setAttributeValue(batchNumber.trim()); + updated = true; + break; + } + } + if (!updated) { + List built = buildMaterialMoreDetailFromReceiptFields(receiptMaterialDetailDO); + for (MaterialMoreDetailDO item : built) { + if ("批次号".equals(item.getBatchLabels())) { + list.add(item); + break; + } + } + } + } + + /** + * 将收货明细批次号回写入库单明细 batch_number 字段 + */ + private void syncBatchNumberToInMaterialDetail(ReceiptMaterialDetailDO receiptMaterialDetailDO) { + if (receiptMaterialDetailDO == null) { + return; + } + Long inUniqueId = receiptMaterialDetailDO.getInUniqueId(); + String batchNumber = receiptMaterialDetailDO.getBatchNumber(); + if (inUniqueId == null || StringUtils.isBlank(batchNumber)) { + return; + } + LoginUser loginUser = SecurityUtils.getLoginUser(); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("unique_id", inUniqueId) + .eq("del_flag", 1) + .set("batch_number", batchNumber.trim()) + .set("update_by", loginUser.getUserid()) + .set("update_by_name", loginUser.getUsername()) + .set("update_time", new Date()); + iInMaterialDetailService.update(updateWrapper); + } + } \ No newline at end of file