fix: 81788 国内海外标准--查询 零部件名称输入1进行查询,零部件字段没有值的也被查询出来了
This commit is contained in:
+33
-3
@@ -1956,7 +1956,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
String module = (String) parameterMap.get("module");
|
||||
// 获取要操作的表名
|
||||
String tableName = TableNameEnum.getTableName(module);
|
||||
//查询条件
|
||||
// 查询条件
|
||||
StringBuilder selectCondition = new StringBuilder("where 1 = 1");
|
||||
// 拼接多表关联查询条件
|
||||
Set<String> idSet = new HashSet<>();
|
||||
@@ -2018,13 +2018,18 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
selectCondition.append(sql);
|
||||
parameterMap.remove(FieldCommon.REFERENCED_STANDARD);
|
||||
}
|
||||
|
||||
// 零部件名称
|
||||
String partName = (String) parameterMap.get(FieldCommon.PART_NAME);
|
||||
if (StrUtil.isNotBlank(partName)) {
|
||||
String sql = getLawsPartNameStandardSql(tableName, partName);
|
||||
selectCondition.append(sql);
|
||||
parameterMap.remove(FieldCommon.PART_NAME);
|
||||
}
|
||||
// 分标委
|
||||
String biddingCommittee = (String) parameterMap.get(FieldCommon.BIDDING_COMMITTEE);
|
||||
if (StrUtil.isNotBlank(biddingCommittee)) {
|
||||
LambdaQueryWrapper<LawsStandardization> standardizationWrapper = new LambdaQueryWrapper<>();
|
||||
standardizationWrapper.eq(LawsStandardization::getPid, "0");
|
||||
List<String> biddingCommitteeList = Arrays.asList(biddingCommittee.split(","));
|
||||
LawsStandardization rootNode = lawsStandardizationService.getOne(standardizationWrapper);
|
||||
standardizationWrapper.clear();
|
||||
standardizationWrapper.eq(LawsStandardization::getPid, rootNode.getId());
|
||||
@@ -2106,6 +2111,31 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
return selectCondition.toString();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private String getLawsPartNameStandardSql(String tableName, String partName) {
|
||||
LambdaQueryWrapper<PartName> partNameWrapper = new LambdaQueryWrapper<>();
|
||||
partNameWrapper.like(PartName::getName, partName);
|
||||
List<PartName> list = partNameService.list(partNameWrapper);
|
||||
List<String> codeList = new ArrayList<>();
|
||||
list.forEach(p -> codeList.add(p.getCode()));
|
||||
|
||||
if (codeList.isEmpty()) {
|
||||
return ""; // 或者根据实际情况返回一个适当的条件,例如 "1=0" 使得查询结果为空
|
||||
}
|
||||
|
||||
StringBuilder sql = new StringBuilder(" AND (");
|
||||
for (int i = 0; i < codeList.size(); i++) {
|
||||
sql.append("FIND_IN_SET('").append(codeList.get(i)).append("', ").append(tableName).append(".part_name)");
|
||||
if (i < codeList.size() - 1) {
|
||||
sql.append(" OR ");
|
||||
}
|
||||
}
|
||||
sql.append(")");
|
||||
|
||||
return sql.toString();
|
||||
}
|
||||
|
||||
|
||||
private void getSysUserSql(String tableName, StringBuilder selectCondition, String key, String value) {
|
||||
if (CharSequenceUtil.isNotBlank(value)) {
|
||||
List<String> strData = Arrays.asList(value.split(","));
|
||||
|
||||
Reference in New Issue
Block a user