feat: 标准列表搜索条件支持关联表查询
This commit is contained in:
+101
-1
@@ -1861,8 +1861,108 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
* @Description: 封装查询条件
|
||||
**/
|
||||
private String getSelectCondition(Map<String, Object> parameterMap, List<LawsTag> fieldList) {
|
||||
String module = (String) parameterMap.get("module");
|
||||
//查询条件
|
||||
StringBuilder selectCondition = new StringBuilder("where del_flag = 0");
|
||||
StringBuilder selectCondition = new StringBuilder("where 1 = 1");
|
||||
// 拼接多表关联查询条件
|
||||
Set<String> idSet = new HashSet<>();
|
||||
Set<String> standNoSet = new HashSet<>();
|
||||
// 企标独有权限
|
||||
if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) {
|
||||
// 授权部门
|
||||
String authDept = (String) parameterMap.get(FieldCommon.AUTH_DEPT);
|
||||
if (StrUtil.isNotBlank(authDept)) {
|
||||
LambdaQueryWrapper<EnterpriseStandardAuthDept> authDeptWrapper = new LambdaQueryWrapper<>();
|
||||
List<String> authDeptIdList = Arrays.asList(authDept.split(","));
|
||||
authDeptWrapper.in(EnterpriseStandardAuthDept::getAuthDept, authDeptIdList);
|
||||
List<EnterpriseStandardAuthDept> 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(")");
|
||||
parameterMap.remove(FieldCommon.AUTH_DEPT);
|
||||
}
|
||||
}
|
||||
// 代替标准号
|
||||
String replaceStandard = (String) parameterMap.get(FieldCommon.REPLACED_STANDARD);
|
||||
LambdaQueryWrapper<LawsReplacedStandard> replaceWrapper = new LambdaQueryWrapper<>();
|
||||
if (StrUtil.isNotBlank(replaceStandard)) {
|
||||
List<String> standardNo = Arrays.asList(replaceStandard.split(","));
|
||||
standardNo.forEach(s -> replaceWrapper.like(LawsReplacedStandard::getReplaced, s));
|
||||
standardNo.forEach(s -> replaceWrapper.eq(LawsReplacedStandard::getType, 1));
|
||||
List<LawsReplacedStandard> 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(")");
|
||||
parameterMap.remove(FieldCommon.REPLACED_STANDARD);
|
||||
}
|
||||
// 被代替标准号
|
||||
String replacedByStandard = (String) parameterMap.get(FieldCommon.REPLACED_BY_STANDARD);
|
||||
if (StrUtil.isNotBlank(replacedByStandard)) {
|
||||
List<String> standardNo = Arrays.asList(replacedByStandard.split(","));
|
||||
standardNo.forEach(s -> replaceWrapper.like(LawsReplacedStandard::getReplacedBy, s));
|
||||
standardNo.forEach(s -> replaceWrapper.eq(LawsReplacedStandard::getType, 1));
|
||||
List<LawsReplacedStandard> 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(")");
|
||||
parameterMap.remove(FieldCommon.REPLACED_BY_STANDARD);
|
||||
}
|
||||
// 引用标准号
|
||||
String referenceStandard = (String) parameterMap.get(FieldCommon.REFERENCE_STANDARD);
|
||||
if (StrUtil.isNotBlank(referenceStandard)) {
|
||||
List<String> standardNo = Arrays.asList(referenceStandard.split(","));
|
||||
standardNo.forEach(s -> replaceWrapper.like(LawsReplacedStandard::getReplaced, s));
|
||||
standardNo.forEach(s -> replaceWrapper.eq(LawsReplacedStandard::getType, 2));
|
||||
List<LawsReplacedStandard> 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(")");
|
||||
parameterMap.remove(FieldCommon.REFERENCE_STANDARD);
|
||||
}
|
||||
// 被引用标准号
|
||||
String referencedStandard = (String) parameterMap.get(FieldCommon.REFERENCED_STANDARD);
|
||||
if (StrUtil.isNotBlank(referencedStandard)) {
|
||||
List<String> standardNo = Arrays.asList(referencedStandard.split(","));
|
||||
standardNo.forEach(s -> replaceWrapper.like(LawsReplacedStandard::getReplacedBy, s));
|
||||
standardNo.forEach(s -> replaceWrapper.eq(LawsReplacedStandard::getType, 2));
|
||||
List<LawsReplacedStandard> 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(")");
|
||||
parameterMap.remove(FieldCommon.REFERENCED_STANDARD);
|
||||
}
|
||||
selectCondition.append(" AND del_flag = 0");
|
||||
|
||||
// 删除pageNo和pageSize,不参与条件查询
|
||||
parameterMap.remove("pageNo");
|
||||
parameterMap.remove("pageSize");
|
||||
|
||||
Reference in New Issue
Block a user