PC入库单商品名称编码查询修改
This commit is contained in:
+6
@@ -346,4 +346,10 @@ public class StockInOrderDO extends BaseVOEntity {
|
|||||||
|
|
||||||
@ApiModelProperty(name = "创建时间查询条件结束日期")
|
@ApiModelProperty(name = "创建时间查询条件结束日期")
|
||||||
private String createTimeEnd;
|
private String createTimeEnd;
|
||||||
|
|
||||||
|
@ApiModelProperty("入库明细-物料名称(商品名称),模糊匹配")
|
||||||
|
private String materialName;
|
||||||
|
|
||||||
|
@ApiModelProperty("入库明细-物料编码,模糊匹配")
|
||||||
|
private String materialCode;
|
||||||
}
|
}
|
||||||
|
|||||||
+27
@@ -35,6 +35,13 @@ public class StockInOrderAssembler {
|
|||||||
// 确保查询条件字段被正确传递(查询条件字段需要明确传递,避免被IgnoreNullUtil忽略)
|
// 确保查询条件字段被正确传递(查询条件字段需要明确传递,避免被IgnoreNullUtil忽略)
|
||||||
stockInOrderDO.setCreateTimeStart(stockInOrderDTO.getCreateTimeStart());
|
stockInOrderDO.setCreateTimeStart(stockInOrderDTO.getCreateTimeStart());
|
||||||
stockInOrderDO.setCreateTimeEnd(stockInOrderDTO.getCreateTimeEnd());
|
stockInOrderDO.setCreateTimeEnd(stockInOrderDTO.getCreateTimeEnd());
|
||||||
|
// 列表筛选:前端常传「名称 (编码)」展示串,库内多为纯名称,去掉末尾括号段再 LIKE
|
||||||
|
if (stockInOrderDTO.getMaterialName() != null && !stockInOrderDTO.getMaterialName().isEmpty()) {
|
||||||
|
String normalized = normalizeDetailMaterialNameForQuery(stockInOrderDTO.getMaterialName());
|
||||||
|
stockInOrderDO.setMaterialName(normalized.isEmpty()
|
||||||
|
? stockInOrderDTO.getMaterialName().trim()
|
||||||
|
: normalized);
|
||||||
|
}
|
||||||
return stockInOrderDO;
|
return stockInOrderDO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -104,4 +111,24 @@ public class StockInOrderAssembler {
|
|||||||
return stockInOrderDO;
|
return stockInOrderDO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 去掉物料展示名末尾的「 (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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -343,4 +343,10 @@ public class StockInOrderDTO extends StockInOrderBaseDTO {
|
|||||||
|
|
||||||
@ApiModelProperty(name = "创建时间查询条件结束日期")
|
@ApiModelProperty(name = "创建时间查询条件结束日期")
|
||||||
private String createTimeEnd;
|
private String createTimeEnd;
|
||||||
|
|
||||||
|
@ApiModelProperty("入库明细-物料名称(商品名称),模糊匹配,与前端参数 materialName 一致")
|
||||||
|
private String materialName;
|
||||||
|
|
||||||
|
@ApiModelProperty("入库明细-物料编码,模糊匹配,与前端参数 materialCode 一致")
|
||||||
|
private String materialCode;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -392,6 +392,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="createTimeEnd != null and createTimeEnd != ''">
|
<if test="createTimeEnd != null and createTimeEnd != ''">
|
||||||
and date_format(a.create_time,'%Y-%m-%d') <= #{createTimeEnd}
|
and date_format(a.create_time,'%Y-%m-%d') <= #{createTimeEnd}
|
||||||
</if>
|
</if>
|
||||||
|
<!-- 入库明细:物料名称、物料编码(同一明细行同时满足;与计划数量汇总口径一致)。关联 material_base_info 避免明细冗余名称与主档不一致时筛不到 -->
|
||||||
|
<if test="(materialName != null and materialName != '') or (materialCode != null and materialCode != '')">
|
||||||
|
and exists (
|
||||||
|
select 1 from in_material_detail imd
|
||||||
|
left join material_base_info mb on imd.material_base_info_id = mb.material_base_info_id and mb.del_flag = 1
|
||||||
|
where imd.in_order_number = a.in_order_number
|
||||||
|
and imd.del_flag = 1
|
||||||
|
and (imd.level is null or imd.level = 1)
|
||||||
|
<if test="materialName != null and materialName != ''">
|
||||||
|
and (
|
||||||
|
imd.material_name like concat('%', #{materialName}, '%')
|
||||||
|
or mb.material_name like concat('%', #{materialName}, '%')
|
||||||
|
)
|
||||||
|
</if>
|
||||||
|
<if test="materialCode != null and materialCode != ''">
|
||||||
|
and (
|
||||||
|
imd.material_code like concat('%', #{materialCode}, '%')
|
||||||
|
or mb.material_code like concat('%', #{materialCode}, '%')
|
||||||
|
)
|
||||||
|
</if>
|
||||||
|
)
|
||||||
|
</if>
|
||||||
<choose>
|
<choose>
|
||||||
<when test="delFlag != null"> and a.del_flag = #{delFlag} </when>
|
<when test="delFlag != null"> and a.del_flag = #{delFlag} </when>
|
||||||
<otherwise> and a.del_flag = 1 </otherwise>
|
<otherwise> and a.del_flag = 1 </otherwise>
|
||||||
|
|||||||
Reference in New Issue
Block a user