diff --git a/src/main/java/com/biutag/supervision/pojo/param/NegativeQueryParam.java b/src/main/java/com/biutag/supervision/pojo/param/NegativeQueryParam.java index a6cc988..9f6e53c 100644 --- a/src/main/java/com/biutag/supervision/pojo/param/NegativeQueryParam.java +++ b/src/main/java/com/biutag/supervision/pojo/param/NegativeQueryParam.java @@ -74,6 +74,9 @@ public class NegativeQueryParam extends BasePage { private String specialSupervision; + @Schema(description = "专项督察(多选查询)") + private List specialSupervisions; + private String reportNumber; private Integer crtDepartLevel; @@ -139,6 +142,7 @@ public class NegativeQueryParam extends BasePage { target.setProblemSourcesCode(this.problemSourcesCode == null ? null : new ArrayList<>(this.problemSourcesCode)); target.setInvolveDepartIds(this.involveDepartIds == null ? null : Set.copyOf(this.involveDepartIds)); target.setApprovalTimeoutStatus(this.approvalTimeoutStatus == null ? null : new ArrayList<>(this.approvalTimeoutStatus)); + target.setSpecialSupervisions(this.specialSupervisions == null ? null : new ArrayList<>(this.specialSupervisions)); return target; } diff --git a/src/main/java/com/biutag/supervision/service/NegativeQueryService.java b/src/main/java/com/biutag/supervision/service/NegativeQueryService.java index b7b3b84..a4ff3d9 100644 --- a/src/main/java/com/biutag/supervision/service/NegativeQueryService.java +++ b/src/main/java/com/biutag/supervision/service/NegativeQueryService.java @@ -78,7 +78,18 @@ public class NegativeQueryService { .in(CollectionUtil.isNotEmpty(param.getProblemSourcesCode()), Negative::getProblemSourcesCode, param.getProblemSourcesCode()) // 业务类型 .eq(StrUtil.isNotBlank(param.getBusinessTypeCode()), Negative::getBusinessTypeCode, param.getBusinessTypeCode()) - // 专项督察 + // 专项督察(支持单选和多选查询) + .and(CollectionUtil.isNotEmpty(param.getSpecialSupervisions()), (qw) -> { + // 多选查询:specialSupervision字段包含任一选中的值(逗号分隔存储) + for (int i = 0; i < param.getSpecialSupervisions().size(); i++) { + final String code = param.getSpecialSupervisions().get(i); + if (i == 0) { + qw.apply("FIND_IN_SET({0}, special_supervision) > 0", code); + } else { + qw.or().apply("FIND_IN_SET({0}, special_supervision) > 0", code); + } + } + }) .eq(StrUtil.isNotBlank(param.getSpecialSupervision()), Negative::getSpecialSupervision, param.getSpecialSupervision()) // 通报期数 .like(StrUtil.isNotBlank(param.getReportNumber()), Negative::getReportNumber, param.getReportNumber()) diff --git a/src/main/java/com/biutag/supervision/service/NegativeTaskService.java b/src/main/java/com/biutag/supervision/service/NegativeTaskService.java index 9685c51..5c5a94d 100644 --- a/src/main/java/com/biutag/supervision/service/NegativeTaskService.java +++ b/src/main/java/com/biutag/supervision/service/NegativeTaskService.java @@ -143,9 +143,12 @@ public class NegativeTaskService extends ServiceImpldict.getDictValue().equals(vo.getSpecialSupervision())).findFirst().map(SupDictData::getDictLabel).orElse(""); + //专项督察(支持多选逗号分隔) + if(StrUtil.isNotBlank(vo.getSpecialSupervision())){ + String specialSupervision = Arrays.stream(vo.getSpecialSupervision().split(",")) + .map(val -> specialSupervisionDict.stream().filter(dict -> dict.getDictValue().equals(val)).findFirst().map(SupDictData::getDictLabel).orElse("")) + .filter(StrUtil::isNotBlank) + .collect(Collectors.joining("、")); vo.setSpecialSupervision(specialSupervision); }