diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java index 13106f741..c5afac898 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java @@ -407,6 +407,12 @@ public class StockOutOrderDO extends BaseVOEntity { @ApiModelProperty(name = "审核时间查询条件结束日期") private String auditTimeEnd; + @ApiModelProperty("出库明细-物料名称(商品名称),模糊匹配") + private String materialName; + + @ApiModelProperty("出库明细-物料编码,模糊匹配") + private String materialCode; + @ApiModelProperty(name = "已分配数量总数量") private BigDecimal alreadyAllocationQuantityAll; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/stockOutOrder/StockOutOrderAssembler.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/stockOutOrder/StockOutOrderAssembler.java index 1517a6854..84a1f4630 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/stockOutOrder/StockOutOrderAssembler.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/stockOutOrder/StockOutOrderAssembler.java @@ -36,6 +36,13 @@ public class StockOutOrderAssembler { stockOutOrderDO.setAuditTimeStart(stockOutOrderDTO.getAuditTimeStart()); stockOutOrderDO.setAuditTimeEnd(stockOutOrderDTO.getAuditTimeEnd()); stockOutOrderDO.setTabType(stockOutOrderDTO.getTabType()); + // 列表筛选:前端常传「名称 (编码)」展示串,库内多为纯名称,去掉末尾括号段再 LIKE + if (stockOutOrderDTO.getMaterialName() != null && !stockOutOrderDTO.getMaterialName().isEmpty()) { + String normalized = normalizeDetailMaterialNameForQuery(stockOutOrderDTO.getMaterialName()); + stockOutOrderDO.setMaterialName(normalized.isEmpty() + ? stockOutOrderDTO.getMaterialName().trim() + : normalized); + } return stockOutOrderDO; } @@ -83,4 +90,24 @@ public class StockOutOrderAssembler { return stockOutOrderDO; } + /** + * 去掉物料展示名末尾的「 (xxx) / (xxx)」等,便于与库内 material_name 模糊匹配。 + */ + private static String normalizeDetailMaterialNameForQuery(String raw) { + if (raw == null) { + return null; + } + String s = raw.trim(); + // 循环去掉末尾多组括号(兼容「名称 (编码)」或重复后缀) + String next; + do { + next = s.replaceFirst("[\\s\\u3000]*[((][^))]*[))]\\s*$", "").trim(); + if (next.equals(s)) { + break; + } + s = next; + } while (!s.isEmpty()); + return s; + } + } diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java index f8116c8fe..fe35ca819 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java @@ -397,6 +397,12 @@ public class StockOutOrderDTO extends StockOutOrderBaseDTO { @ApiModelProperty(name = "审核时间查询条件结束日期") private String auditTimeEnd; + @ApiModelProperty("出库明细-物料名称(商品名称),模糊匹配,与前端参数 materialName 一致") + private String materialName; + + @ApiModelProperty("出库明细-物料编码,模糊匹配,与前端参数 materialCode 一致") + private String materialCode; + @ApiModelProperty("出库交接图片,PDA出库交接时上传的照片,多张图片以逗号隔开") private String pictureApp; } \ No newline at end of file diff --git a/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml index 4f113b5da..b5c129e52 100644 --- a/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml @@ -286,6 +286,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and date_format(a.audit_time,'%Y-%m-%d') <= #{auditTimeEnd} + + + and exists ( + select 1 from out_material_detail omd + left join material_base_info mb on omd.material_base_info_id = mb.material_base_info_id and mb.del_flag = 1 + where omd.out_order_number = a.out_order_number + and omd.del_flag = 1 + and (omd.level is null or omd.level = 1) + + and ( + omd.material_name like concat('%', #{materialName}, '%') + or mb.material_name like concat('%', #{materialName}, '%') + ) + + + and ( + omd.material_code like concat('%', #{materialCode}, '%') + or mb.material_code like concat('%', #{materialCode}, '%') + ) + + ) + and a.del_flag = #{delFlag} and a.del_flag = 1