refactor(WmsMaterialCoilService): 优化材料卷查询逻辑
- 简化selectType条件判断逻辑,提前设置item_type过滤条件 - 调整EXISTS子查询结构,提高SQL执行效率 - 保持原有的产品和原材料筛选功能不变 - 修复原代码中的逻辑嵌套问题
This commit is contained in:
@@ -412,7 +412,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 使用 EXISTS 针对 selectType 的细粒度筛选(使用参数占位符防注入)
|
// 使用 EXISTS 针对 selectType 的细粒度筛选(使用参数占位符防注入)
|
||||||
if (hasSelectType && hasAnyItemFilter) {
|
if (hasSelectType) {
|
||||||
|
qw.eq("mc.item_type", bo.getSelectType());
|
||||||
|
if (hasAnyItemFilter) {
|
||||||
StringBuilder existsSql = new StringBuilder();
|
StringBuilder existsSql = new StringBuilder();
|
||||||
List<Object> existsArgs = new ArrayList<>();
|
List<Object> existsArgs = new ArrayList<>();
|
||||||
if ("product".equals(bo.getSelectType())) {
|
if ("product".equals(bo.getSelectType())) {
|
||||||
@@ -452,6 +454,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
qw.apply(existsSql.toString(), existsArgs.toArray());
|
qw.apply(existsSql.toString(), existsArgs.toArray());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 显式 itemId 条件:与 EXISTS 共存时,语义为交集
|
// 显式 itemId 条件:与 EXISTS 共存时,语义为交集
|
||||||
if (CollectionUtils.isNotEmpty(explicitItemIds)) {
|
if (CollectionUtils.isNotEmpty(explicitItemIds)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user