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 module = (String) parameterMap.get("module");
|
||||||
// 获取要操作的表名
|
// 获取要操作的表名
|
||||||
String tableName = TableNameEnum.getTableName(module);
|
String tableName = TableNameEnum.getTableName(module);
|
||||||
//查询条件
|
// 查询条件
|
||||||
StringBuilder selectCondition = new StringBuilder("where 1 = 1");
|
StringBuilder selectCondition = new StringBuilder("where 1 = 1");
|
||||||
// 拼接多表关联查询条件
|
// 拼接多表关联查询条件
|
||||||
Set<String> idSet = new HashSet<>();
|
Set<String> idSet = new HashSet<>();
|
||||||
@@ -2018,13 +2018,18 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
selectCondition.append(sql);
|
selectCondition.append(sql);
|
||||||
parameterMap.remove(FieldCommon.REFERENCED_STANDARD);
|
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);
|
String biddingCommittee = (String) parameterMap.get(FieldCommon.BIDDING_COMMITTEE);
|
||||||
if (StrUtil.isNotBlank(biddingCommittee)) {
|
if (StrUtil.isNotBlank(biddingCommittee)) {
|
||||||
LambdaQueryWrapper<LawsStandardization> standardizationWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<LawsStandardization> standardizationWrapper = new LambdaQueryWrapper<>();
|
||||||
standardizationWrapper.eq(LawsStandardization::getPid, "0");
|
standardizationWrapper.eq(LawsStandardization::getPid, "0");
|
||||||
List<String> biddingCommitteeList = Arrays.asList(biddingCommittee.split(","));
|
|
||||||
LawsStandardization rootNode = lawsStandardizationService.getOne(standardizationWrapper);
|
LawsStandardization rootNode = lawsStandardizationService.getOne(standardizationWrapper);
|
||||||
standardizationWrapper.clear();
|
standardizationWrapper.clear();
|
||||||
standardizationWrapper.eq(LawsStandardization::getPid, rootNode.getId());
|
standardizationWrapper.eq(LawsStandardization::getPid, rootNode.getId());
|
||||||
@@ -2106,6 +2111,31 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
return selectCondition.toString();
|
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) {
|
private void getSysUserSql(String tableName, StringBuilder selectCondition, String key, String value) {
|
||||||
if (CharSequenceUtil.isNotBlank(value)) {
|
if (CharSequenceUtil.isNotBlank(value)) {
|
||||||
List<String> strData = Arrays.asList(value.split(","));
|
List<String> strData = Arrays.asList(value.split(","));
|
||||||
|
|||||||
Reference in New Issue
Block a user