From f6b20441bcd824299b439a16714060b507c2fdae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Thu, 5 Mar 2026 14:41:44 +0800 Subject: [PATCH 1/3] =?UTF-8?q?WMS=E7=89=A9=E6=96=99=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E9=AB=98=E7=BA=A7=E7=AD=9B=E9=80=89=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MaterialBaseInfoApplicationService.java | 46 +++++++++++++++++++ .../repository/po/MaterialBaseInfoPO.java | 20 ++++++++ .../repository/todo/MaterialBaseInfoDO.java | 3 ++ .../materialBaseInfo/MaterialBaseInfoDTO.java | 3 ++ .../MaterialBaseInfoMapper.xml | 32 +++++++++---- 5 files changed, 96 insertions(+), 8 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java index 6141690ac..404138c3f 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java @@ -1,7 +1,12 @@ package com.mhd.wms.application.service.materialBaseInfo; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.security.utils.SecurityUtils; +import com.mhd.system.api.SystemServiceFeign; +import com.mhd.system.api.domain.BatchFeignPO; import com.mhd.system.api.model.LoginUser; import com.mhd.wms.domain.materialBarCode.service.MaterialBarCodeDomainService; import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO; @@ -14,6 +19,8 @@ import com.mhd.wms.domain.materialGoodsRule.repository.mapper.MaterialGoodsRuleM import com.mhd.wms.domain.materialGoodsRule.repository.po.MaterialGoodsRulePO; import com.mhd.wms.domain.materialGoodsRule.repository.todo.MaterialGoodsRuleDO; import com.mhd.wms.domain.materialGoodsRule.service.MaterialGoodsRuleDomainService; +import com.mhd.wms.domain.materialInventoryWarning.repository.facade.IMaterialInventoryWarningService; +import com.mhd.wms.domain.materialInventoryWarning.repository.po.MaterialInventoryWarningPO; import com.mhd.wms.domain.materialInventoryWarning.service.MaterialInventoryWarningDomainService; import com.mhd.wms.domain.materialWarehouseControl.repository.todo.MaterialWarehouseControlDO; import com.mhd.wms.domain.materialWarehouseControl.service.MaterialWarehouseControlDomainService; @@ -47,12 +54,18 @@ public class MaterialBaseInfoApplicationService { private MaterialWarehouseControlDomainService materialWarehouseControlDomainService; @Autowired private MaterialInventoryWarningDomainService materialInventoryWarningDomainService; + + @Autowired + private IMaterialInventoryWarningService materialInventoryWarningService; @Autowired private MaterialBarCodeDomainService materialBarCodeDomainService; @Autowired private MaterialGoodsRuleMapper materialGoodsRuleMapper; + @Autowired + private SystemServiceFeign systemServiceFeign; + /** * 分页查询物料基础信息列表 */ @@ -116,7 +129,40 @@ public class MaterialBaseInfoApplicationService { if (materialGoodsRules != null){ MaterialGoodsRulePO materialGoodsRulePO = new MaterialGoodsRulePO(); BeanUtils.copyProperties(materialGoodsRules,materialGoodsRulePO); + // 如果批次ID不为空,查询批次信息并填充批次名称和编码 + if (materialGoodsRulePO.getBatchId() != null) { + try { + AjaxResult ajaxResult = systemServiceFeign.getBatchInfoByBatchId(materialGoodsRulePO.getBatchId()); + if (ajaxResult != null && "200".equals(String.valueOf(ajaxResult.get("code")))) { + BatchFeignPO batchFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), BatchFeignPO.class); + if (batchFeignPO != null) { + materialGoodsRulePO.setBatchCode(batchFeignPO.getBatchCode()); + materialGoodsRulePO.setBatchName(batchFeignPO.getBatchName()); + } + } + } catch (Exception e) { + log.warn("获取批次信息失败,批次ID:{},错误:{}", materialGoodsRulePO.getBatchId(), e.getMessage()); + } + } materialBaseInfoPO.setMaterialGoodsRule(materialGoodsRulePO); + // 将批次信息填充到根级别,方便前端显示 + if (materialGoodsRulePO.getBatchId() != null) { + materialBaseInfoPO.setBatchId(materialGoodsRulePO.getBatchId()); + materialBaseInfoPO.setBatchCode(materialGoodsRulePO.getBatchCode()); + materialBaseInfoPO.setBatchName(materialGoodsRulePO.getBatchName()); + } + } + // 填充库存预警信息 + List materialInventoryWarningList = materialInventoryWarningService.getInfoByMaterialBaseInfoIds(materialBaseInfoPO.getMaterialBaseInfoId()); + materialBaseInfoPO.setMaterialInventoryWarningList(materialInventoryWarningList); + // 统计库存预警和临期预警数量 + if (!CollectionUtils.isEmpty(materialInventoryWarningList)) { + materialBaseInfoPO.setInventoryWarningCount(materialInventoryWarningList.size()); + // 临期预警需要根据业务逻辑计算,这里先设置为0 + materialBaseInfoPO.setExpirationWarningCount(0); + } else { + materialBaseInfoPO.setInventoryWarningCount(0); + materialBaseInfoPO.setExpirationWarningCount(0); } // 将物料分类的List转换为逗号分隔的字符串,用于导出 if (!CollectionUtils.isEmpty(materialBaseInfoPO.getMaterialClassifyCode())) { diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java index f92066b5a..af30f5168 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java @@ -223,4 +223,24 @@ public class MaterialBaseInfoPO extends BaseVOEntity { @ApiModelProperty("规格型号") private String specificationModel; + @ApiModelProperty("批次ID") + @Excel(name = "批次ID") + private Long batchId; + + @ApiModelProperty("批次编码") + @Excel(name = "批次编码") + private String batchCode; + + @ApiModelProperty("批次名称") + @Excel(name = "批次名称") + private String batchName; + + @ApiModelProperty("库存预警数量") + @Excel(name = "库存预警数量") + private Integer inventoryWarningCount; + + @ApiModelProperty("临期预警数量") + @Excel(name = "临期预警数量") + private Integer expirationWarningCount; + } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java index ccb2fe5b9..01012bf29 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java @@ -214,4 +214,7 @@ public class MaterialBaseInfoDO extends BaseVOEntity { @ApiModelProperty("规格型号") private String specificationModel; + + @ApiModelProperty("批次ID") + private Long batchId; } diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java index ede7dbf6c..dabe92a15 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java @@ -217,4 +217,7 @@ public class MaterialBaseInfoDTO extends BaseVOEntity { @ApiModelProperty("规格型号") private String specificationModel; + + @ApiModelProperty("批次ID") + private Long batchId; } diff --git a/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml b/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml index b9023905a..586b35c51 100644 --- a/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml @@ -113,11 +113,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and bar_code like concat('%',#{barCode},'%') - - and material_classify_code = #{materialClassifyCode} + + + FIND_IN_SET(#{code}, material_classify_code) > 0 + - - and material_classify_name like concat('%', #{materialClassifyName}, '%') + + + material_classify_name like concat('%', #{name}, '%') + and material_type = #{materialType} @@ -186,6 +190,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" or instr(bar_code, #{compoundOrQuery}) > 0 ) + + + and exists ( + select 1 from material_goods_rule mgr + where mgr.material_base_info_id = material_base_info.material_base_info_id + and mgr.batch_id = #{batchId} + and mgr.del_flag = 1 + ) @@ -223,11 +235,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and b.bar_code = #{barCode} - - and b.material_classify_code = #{materialClassifyCode} + + + FIND_IN_SET(#{code}, b.material_classify_code) > 0 + - - and b.material_classify_name like concat('%', #{materialClassifyName}, '%') + + + b.material_classify_name like concat('%', #{name}, '%') + and b.material_type = #{materialType} From 401b1f7097319bc2692e9aad04b73e65edc2ef16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Thu, 5 Mar 2026 14:50:20 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=90=88=E5=90=8C=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=87=BA=E8=B4=A6=E6=97=A5=E4=BF=9D=E5=AD=98=E4=B8=8D=E4=B8=8A?= =?UTF-8?q?=E9=97=AE=E9=A2=98;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/domain/contractManage/entity/ContractManage.java | 5 ++++- .../contractManage/repository/po/ContractManagePO.java | 5 ++++- .../contractManage/repository/todo/ContractManageDO.java | 5 ++++- .../interfaces/dto/contractManage/ContractManageDTO.java | 5 ++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/entity/ContractManage.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/entity/ContractManage.java index e87b6104d..aaa6e2969 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/entity/ContractManage.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/entity/ContractManage.java @@ -160,6 +160,9 @@ public class ContractManage extends BaseVOEntity{ @JsonFormat(pattern = "yyyy-MM-dd") private Date paymentDate; + @ApiModelProperty(name = "出账天数") + private Integer billDays; + @ApiModelProperty(name = "主体类型(1-货主,2-客户,3-承运商)") private Integer principalType; @@ -172,4 +175,4 @@ public class ContractManage extends BaseVOEntity{ @ApiModelProperty(name = "是否包含运输费用(1-包含,2-包含)") private Integer transportationCosts; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/po/ContractManagePO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/po/ContractManagePO.java index 81e148952..6ede0c62c 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/po/ContractManagePO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/po/ContractManagePO.java @@ -169,6 +169,9 @@ public class ContractManagePO extends BaseVOEntity{ @JsonFormat(pattern = "d", timezone = "GMT+8") private Date paymentDate; + @ApiModelProperty(name = "出账天数") + private Integer billDays; + @ApiModelProperty(name = "主体类型(1-货主,2-客户,3-承运商)") private Integer principalType; @@ -181,4 +184,4 @@ public class ContractManagePO extends BaseVOEntity{ @ApiModelProperty(name = "是否包含运输费用(1-包含,2-包含)") private Integer transportationCosts; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/todo/ContractManageDO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/todo/ContractManageDO.java index 8720d9012..180240c17 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/todo/ContractManageDO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/todo/ContractManageDO.java @@ -199,6 +199,9 @@ public class ContractManageDO extends BaseVOEntity{ @JsonFormat(pattern = "yyyy-MM-dd") private Date paymentDate; + @ApiModelProperty(name = "出账天数") + private Integer billDays; + @ApiModelProperty(name = "主体类型(1-货主,2-客户,3-承运商)") private Integer principalType; @@ -211,4 +214,4 @@ public class ContractManageDO extends BaseVOEntity{ @ApiModelProperty(name = "是否包含运输费用(1-包含,2-包含)") private Integer transportationCosts; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/ContractManageDTO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/ContractManageDTO.java index f62ca63e8..bf93087b3 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/ContractManageDTO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/ContractManageDTO.java @@ -190,6 +190,9 @@ public class ContractManageDTO extends BaseVOEntity{ @JsonFormat(pattern = "yyyy-MM-dd") private Date paymentDate; + @ApiModelProperty(name = "出账天数") + private Integer billDays; + @ApiModelProperty(name = "主体类型(1-货主,2-客户,3-承运商)") private Integer principalType; @@ -201,4 +204,4 @@ public class ContractManageDTO extends BaseVOEntity{ @ApiModelProperty(name = "是否包含运输费用(1-包含,2-包含)") private Integer transportationCosts; -} +} \ No newline at end of file From e75e3cd08d2dd0712859e826e5c9cfa902d8845c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Thu, 5 Mar 2026 15:25:15 +0800 Subject: [PATCH 3/3] =?UTF-8?q?pda=E6=94=B6=E8=B4=A7=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E6=94=B6=E8=B4=A7=E6=95=B0=E4=BF=AE=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StockReceiptOrderApplicationService.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java index d02850ea2..4736360c5 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java @@ -1002,7 +1002,15 @@ public class StockReceiptOrderApplicationService { if (receiptMaterialDetailPO == null){ throw new ServiceException("物料明细不存在"); } - if (receiptMaterialDetailDO.getReceiptQuantity().compareTo(BigDecimal.ZERO) == 0){ + List children = receiptMaterialDetailDO.getChildren(); + BigDecimal childrenTotalQuantity = BigDecimal.ZERO; + if (!CollectionUtils.isEmpty(children)) { + childrenTotalQuantity = children.stream() + .map(ReceiptMaterialDetailDO::getReceiptQuantity) + .filter(Objects::nonNull) + .reduce(BigDecimal.ZERO, BigDecimal::add); + } + if (receiptMaterialDetailDO.getReceiptQuantity().compareTo(BigDecimal.ZERO) == 0 && childrenTotalQuantity.compareTo(BigDecimal.ZERO) == 0){ //未进行收货直接跳过 continue; }