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 ff2351e2..e46c8b62 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 @@ -1867,99 +1867,121 @@ public class LawsCommonServiceImpl implements ILawsCommonService { // 拼接多表关联查询条件 Set idSet = new HashSet<>(); Set standNoSet = new HashSet<>(); + boolean idSearch = false; + boolean standNoSearch = false; // 企标独有权限 if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) { // 授权部门 String authDept = (String) parameterMap.get(FieldCommon.AUTH_DEPT); if (StrUtil.isNotBlank(authDept)) { + idSearch = true; LambdaQueryWrapper authDeptWrapper = new LambdaQueryWrapper<>(); List authDeptIdList = Arrays.asList(authDept.split(",")); authDeptWrapper.in(EnterpriseStandardAuthDept::getAuthDept, authDeptIdList); List authList = enterpriseAuthDeptService.list(authDeptWrapper); - String sql = authList.stream() - .map(item -> "'" + item.getStandardId() + "'") - .collect(Collectors.joining(",")); - // 拼接SQL - selectCondition.append(" AND id IN ("); - if (StrUtil.isBlank(sql)) { - sql = "''"; - } - selectCondition.append(sql).append(")"); + idSet.addAll(authList.stream().map(EnterpriseStandardAuthDept::getStandardId).collect(Collectors.toSet())); parameterMap.remove(FieldCommon.AUTH_DEPT); } } + // 体系 + String standardSystem = (String) parameterMap.get(FieldCommon.STANDARD_SYSTEM); + if (StrUtil.isNotBlank(standardSystem)) { + idSearch = true; + LambdaQueryWrapper standSystemWrapper = new LambdaQueryWrapper<>(); + List standSystemIdList = Arrays.asList(standardSystem.split(",")); + standSystemWrapper.in(LawsNodeRelation::getNodeId, standSystemIdList); + List systemList = lawsNodeRelationService.list(standSystemWrapper); + idSet.addAll(systemList.stream().map(LawsNodeRelation::getUniqueRelationFlag).collect(Collectors.toSet())); + parameterMap.remove(FieldCommon.STANDARD_SYSTEM); + } // 代替标准号 String replaceStandard = (String) parameterMap.get(FieldCommon.REPLACED_STANDARD); LambdaQueryWrapper replaceWrapper = new LambdaQueryWrapper<>(); if (StrUtil.isNotBlank(replaceStandard)) { + standNoSearch = true; List standardNo = Arrays.asList(replaceStandard.split(",")); standardNo.forEach(s -> replaceWrapper.like(LawsReplacedStandard::getReplaced, s)); standardNo.forEach(s -> replaceWrapper.eq(LawsReplacedStandard::getType, 1)); List replaceList = lawsReplacedStandardService.list(replaceWrapper); - String sql = replaceList.stream() - .map(item -> "'" + item.getReplacedBy() + "'") - .collect(Collectors.joining(",")); - // 拼接SQL - selectCondition.append(" AND standard_number IN ("); - if (StrUtil.isBlank(sql)) { - sql = "''"; - } - selectCondition.append(sql).append(")"); + standNoSet.addAll(replaceList.stream().map(LawsReplacedStandard::getReplacedBy).collect(Collectors.toSet())); parameterMap.remove(FieldCommon.REPLACED_STANDARD); } // 被代替标准号 String replacedByStandard = (String) parameterMap.get(FieldCommon.REPLACED_BY_STANDARD); if (StrUtil.isNotBlank(replacedByStandard)) { + standNoSearch = true; List standardNo = Arrays.asList(replacedByStandard.split(",")); standardNo.forEach(s -> replaceWrapper.like(LawsReplacedStandard::getReplacedBy, s)); standardNo.forEach(s -> replaceWrapper.eq(LawsReplacedStandard::getType, 1)); List replaceList = lawsReplacedStandardService.list(replaceWrapper); - String sql = replaceList.stream() - .map(item -> "'" + item.getReplaced() + "'") - .collect(Collectors.joining(",")); - // 拼接SQL - selectCondition.append(" AND standard_number IN ("); - if (StrUtil.isBlank(sql)) { - sql = "''"; - } - selectCondition.append(sql).append(")"); + standNoSet.addAll(replaceList.stream().map(LawsReplacedStandard::getReplaced).collect(Collectors.toSet())); parameterMap.remove(FieldCommon.REPLACED_BY_STANDARD); } // 引用标准号 String referenceStandard = (String) parameterMap.get(FieldCommon.REFERENCE_STANDARD); if (StrUtil.isNotBlank(referenceStandard)) { + standNoSearch = true; List standardNo = Arrays.asList(referenceStandard.split(",")); standardNo.forEach(s -> replaceWrapper.like(LawsReplacedStandard::getReplaced, s)); standardNo.forEach(s -> replaceWrapper.eq(LawsReplacedStandard::getType, 2)); List replaceList = lawsReplacedStandardService.list(replaceWrapper); - String sql = replaceList.stream() - .map(item -> "'" + item.getReplacedBy() + "'") - .collect(Collectors.joining(",")); - // 拼接SQL - selectCondition.append(" AND standard_number IN ("); - if (StrUtil.isBlank(sql)) { - sql = "''"; - } - selectCondition.append(sql).append(")"); + standNoSet.addAll(replaceList.stream().map(LawsReplacedStandard::getReplacedBy).collect(Collectors.toSet())); parameterMap.remove(FieldCommon.REFERENCE_STANDARD); } // 被引用标准号 String referencedStandard = (String) parameterMap.get(FieldCommon.REFERENCED_STANDARD); if (StrUtil.isNotBlank(referencedStandard)) { + standNoSearch = true; List standardNo = Arrays.asList(referencedStandard.split(",")); standardNo.forEach(s -> replaceWrapper.like(LawsReplacedStandard::getReplacedBy, s)); standardNo.forEach(s -> replaceWrapper.eq(LawsReplacedStandard::getType, 2)); List replaceList = lawsReplacedStandardService.list(replaceWrapper); - String sql = replaceList.stream() - .map(item -> "'" + item.getReplaced() + "'") + standNoSet.addAll(replaceList.stream().map(LawsReplacedStandard::getReplaced).collect(Collectors.toSet())); + parameterMap.remove(FieldCommon.REFERENCED_STANDARD); + } + + // 分标委 + 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()); + List nodeList = lawsStandardizationService.list(standardizationWrapper); + String sql = nodeList.stream() + .map(item -> "'" + item.getId() + "'") .collect(Collectors.joining(",")); // 拼接SQL - selectCondition.append(" AND standard_number IN ("); + selectCondition.append(" AND bidding_committee IN ("); if (StrUtil.isBlank(sql)) { sql = "''"; } selectCondition.append(sql).append(")"); - parameterMap.remove(FieldCommon.REFERENCED_STANDARD); + parameterMap.remove(FieldCommon.BIDDING_COMMITTEE); + } + if (idSearch) { + String idSql = idSet.stream() + .map(item -> "'" + item + "'") + .collect(Collectors.joining(",")); + // 拼接SQL + selectCondition.append(" AND id IN ("); + if (StrUtil.isBlank(idSql)) { + idSql = "''"; + } + selectCondition.append(idSql).append(")"); + } + if (standNoSearch) { + String noSql = standNoSet.stream() + .map(item -> "'" + item + "'") + .collect(Collectors.joining(",")); + // 拼接SQL + selectCondition.append(" AND standard_number IN ("); + if (StrUtil.isBlank(noSql)) { + noSql = "''"; + } + selectCondition.append(noSql).append(")"); } selectCondition.append(" AND del_flag = 0");