diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java index ae7cf7af..8cc2c106 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java @@ -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 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 standardizationWrapper = new LambdaQueryWrapper<>(); standardizationWrapper.eq(LawsStandardization::getPid, "0"); - List 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 partNameWrapper = new LambdaQueryWrapper<>(); + partNameWrapper.like(PartName::getName, partName); + List list = partNameService.list(partNameWrapper); + List 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 strData = Arrays.asList(value.split(","));