diff --git a/src/main/java/com/biutag/supervision/constants/enums/ProblemSourcesEnum.java b/src/main/java/com/biutag/supervision/constants/enums/ProblemSourcesEnum.java index 882e996..55d3695 100644 --- a/src/main/java/com/biutag/supervision/constants/enums/ProblemSourcesEnum.java +++ b/src/main/java/com/biutag/supervision/constants/enums/ProblemSourcesEnum.java @@ -3,6 +3,8 @@ package com.biutag.supervision.constants.enums; import lombok.AllArgsConstructor; import lombok.Getter; +import java.util.Set; + @Getter @AllArgsConstructor public enum ProblemSourcesEnum { @@ -56,4 +58,29 @@ public enum ProblemSourcesEnum { } return null; } + + + // ================== 问题来源分组(集合) ================== + + /** + * 13 + */ + public static final Set GROUP_13 = Set.of("13"); + + /** + * 14, 15, 16 + */ + public static final Set GROUP_14_15_16 = Set.of("14", "15", "16"); + + /** + * 17, 18, 19, 20 + */ + public static final Set GROUP_17_18_19_20 = Set.of("17", "18", "19", "20"); + + /** + * 27, 28, 29, 30 + */ + public static final Set GROUP_27_28_29_30 = Set.of("27", "28", "29", "30"); + + } diff --git a/src/main/java/com/biutag/supervision/pojo/entity/Negative.java b/src/main/java/com/biutag/supervision/pojo/entity/Negative.java index 8c6c5e6..2ae26e1 100644 --- a/src/main/java/com/biutag/supervision/pojo/entity/Negative.java +++ b/src/main/java/com/biutag/supervision/pojo/entity/Negative.java @@ -36,6 +36,9 @@ public class Negative { @TableField("discoveryTime") private LocalDateTime discoveryTime; + /** + * @see com.biutag.supervision.constants.enums.ProblemSourcesEnum + */ // 问题来源code @TableField("problemSourcesCode") private String problemSourcesCode; diff --git a/src/main/java/com/biutag/supervision/pojo/param/MailQueryParam.java b/src/main/java/com/biutag/supervision/pojo/param/MailQueryParam.java new file mode 100644 index 0000000..e10638f --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/param/MailQueryParam.java @@ -0,0 +1,48 @@ +package com.biutag.supervision.pojo.param; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +import java.util.Set; + +/** + * @ClassName MailParam + * @Description 局长信箱mail表查询实体 + * @Author shihao + * @Date 2025/12/18 16:45 + */ +@Getter +@Setter +@Schema(description = "局长信箱mail表查询实体") +public class MailQueryParam { + + + @Schema(description = "主键") + private String id; + + + @Schema(description = "主键集合") + private Set ids; + + + + @Schema(description = "二级单位") + private String secondDeptId; + + + @Schema(description = "二级单位集合") + private Set secondDeptIds; + + + @Schema(description = "三级单位") + private String threeDeptId; + + @Schema(description = "三级单位集合") + private Set threeDeptIds; + + + + + +} 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 a4c5e64..88c8181 100644 --- a/src/main/java/com/biutag/supervision/pojo/param/NegativeQueryParam.java +++ b/src/main/java/com/biutag/supervision/pojo/param/NegativeQueryParam.java @@ -39,6 +39,9 @@ public class NegativeQueryParam extends BasePage { private String thingDesc; // 问题来源 + /** + * @see com.biutag.supervision.constants.enums.ProblemSourcesEnum + */ private List problemSourcesCode; private String businessTypeCode; diff --git a/src/main/java/com/biutag/supervision/pojo/param/SupExternalDepartQueryParam.java b/src/main/java/com/biutag/supervision/pojo/param/SupExternalDepartQueryParam.java new file mode 100644 index 0000000..ca60f6e --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/param/SupExternalDepartQueryParam.java @@ -0,0 +1,27 @@ +package com.biutag.supervision.pojo.param; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +import java.util.Set; + +/** + * @ClassName SupExternalDepartQueryParam + * @Description 部门映射表查询实体 + * @Author shihao + * @Date 2025/12/18 16:59 + */ +@Getter +@Setter +@Schema(description = "部门映射表查询实体") +public class SupExternalDepartQueryParam { + + @Schema(description = "内部单位ids") + private Set internalIds; + + + @Schema(description = "外部来源") + private String source; + +} diff --git a/src/main/java/com/biutag/supervision/pojo/vo/GlobalMapIconVo.java b/src/main/java/com/biutag/supervision/pojo/vo/GlobalMapIconVo.java index 5ba81df..7833a8b 100644 --- a/src/main/java/com/biutag/supervision/pojo/vo/GlobalMapIconVo.java +++ b/src/main/java/com/biutag/supervision/pojo/vo/GlobalMapIconVo.java @@ -1,7 +1,11 @@ package com.biutag.supervision.pojo.vo; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.util.Objects; +import java.util.stream.Stream; + /** * @Auther: sh * @Date: 2024/11/12 16:22 @@ -10,26 +14,69 @@ import lombok.Data; @Data public class GlobalMapIconVo { - private String name; // 分县市局名称 - //现场督查 - Long supervisionPro; - - //数字督查(14,15,16) - Long numSupervisionPro; - //案件核查 - Long caseVerificationPro; - //信访投诉 - Long complaintPro; - // 民意感知 - Long talkPro; - //审计 - Long auditPro; - //总数 - Long totalPro; - //局长信箱 + @Schema(description = "部门名") + private String name; + + @Schema(description = "部门ID") + private String departId; + + @Schema(description = "现场督查") + private Long supervisionPro; + + @Schema(description = "数字督察") + private Long numSupervisionPro; + + @Schema(description = "案件核查") + private Long caseVerificationPro; + + @Schema(description = "信访投诉") + private Long complaintPro; + + + @Schema(description = "民意感知") + private Long talkPro; + + @Schema(description = "审计项目") + private Long auditPro; + + @Schema(description = "总数") + private Long totalPro; + + @Schema(description = "局长信箱") private Long mailboxNumber; - private String departId; // 分县市局ID + public static GlobalMapIconVo of(String departId, String name) { + GlobalMapIconVo vo = new GlobalMapIconVo(); + vo.setDepartId(departId); + vo.setName(name); + // 初始化所有数值字段为0 + vo.setSupervisionPro(0L); + vo.setNumSupervisionPro(0L); + vo.setCaseVerificationPro(0L); + vo.setComplaintPro(0L); + vo.setTalkPro(0L); + vo.setAuditPro(0L); + vo.setTotalPro(0L); + vo.setMailboxNumber(0L); + return vo; + } + + + public void calcTotal() { + this.totalPro = Stream.of( + supervisionPro, + numSupervisionPro, + caseVerificationPro, + complaintPro, + talkPro, + auditPro, + mailboxNumber + ).filter(Objects::nonNull) + .mapToLong(Long::longValue) + .sum(); + } + + } diff --git a/src/main/java/com/biutag/supervision/pojo/vo/GlobalOverViewVo.java b/src/main/java/com/biutag/supervision/pojo/vo/GlobalOverViewVo.java index 9f7709f..a864350 100644 --- a/src/main/java/com/biutag/supervision/pojo/vo/GlobalOverViewVo.java +++ b/src/main/java/com/biutag/supervision/pojo/vo/GlobalOverViewVo.java @@ -1,5 +1,6 @@ package com.biutag.supervision.pojo.vo; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -8,25 +9,45 @@ import lombok.Data; * @Description: 首页大屏总览 */ @Data +@Schema(description = "首页大屏总览") public class GlobalOverViewVo { - //现场督查 - Long supervisionPro; - //数字督查(14,15,16) - Long numSupervisionPro; + @Schema(description = "现场督查") + private Long supervisionPro; + @Schema(description = "数字督察") + private Long numSupervisionPro; - //案件核查 - Long caseVerificationPro; - //信访投诉 - Long complaintPro; - // 民意感知 - Long talkPro; - // - Long auditPro; - //总数 - Long totalPro; + @Schema(description = "案件核查") + private Long caseVerificationPro; + @Schema(description = "信访投诉") + private Long complaintPro; + + + @Schema(description = "民意感知") + private Long talkPro; + + @Schema(description = "审计项目") + private Long auditPro; + + @Schema(description = "总数") + private Long totalPro; + + @Schema(description = "局长信箱") private Long mailboxNumber; + + public static GlobalOverViewVo of() { + GlobalOverViewVo vo = new GlobalOverViewVo(); + vo.setSupervisionPro(0L); + vo.setMailboxNumber(0L); + vo.setCaseVerificationPro(0L); + vo.setComplaintPro(0L); + vo.setTalkPro(0L); + vo.setTotalPro(0L); + vo.setMailboxNumber(0L); + return vo; + } + } diff --git a/src/main/java/com/biutag/supervision/repository/dataPetitionComplaint/DataPetitionComplaintResourceService.java b/src/main/java/com/biutag/supervision/repository/dataPetitionComplaint/DataPetitionComplaintResourceService.java new file mode 100644 index 0000000..7d9a10e --- /dev/null +++ b/src/main/java/com/biutag/supervision/repository/dataPetitionComplaint/DataPetitionComplaintResourceService.java @@ -0,0 +1,39 @@ +package com.biutag.supervision.repository.dataPetitionComplaint; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.biutag.supervision.mapper.DataPetitionComplaintMapper; +import com.biutag.supervision.pojo.entity.DataPetitionComplaint; +import com.biutag.supervision.pojo.param.DataPetitionComplaintQueryParam; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +/** + * @ClassName DataPetitionComplaintResourceService + * @Description 信访投诉台账 + * @Author shihao + * @Date 2025/12/18 16:21 + */ +@Service +public class DataPetitionComplaintResourceService { + + @Resource + private DataPetitionComplaintMapper dataPetitionComplaintMapper; + + + public List query(DataPetitionComplaintQueryParam param) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(StrUtil.isNotBlank(param.getOriginId()), DataPetitionComplaint::getOriginId, param.getOriginId()); + wrapper.between(ObjectUtil.isNotNull(param.getCreateTime()), DataPetitionComplaint::getCreateTime, param.getCreateTime().get(0), param.getCreateTime().get(1)); + + + if (wrapper.getExpression() == null || wrapper.getExpression().getSqlSegment().isEmpty()) { + return Collections.emptyList(); + } + return dataPetitionComplaintMapper.selectList(wrapper); + } +} diff --git a/src/main/java/com/biutag/supervision/repository/mail/MailResourceService.java b/src/main/java/com/biutag/supervision/repository/mail/MailResourceService.java new file mode 100644 index 0000000..c64802c --- /dev/null +++ b/src/main/java/com/biutag/supervision/repository/mail/MailResourceService.java @@ -0,0 +1,53 @@ +package com.biutag.supervision.repository.mail; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.biutag.supervision.mapper.MailMapper; +import com.biutag.supervision.pojo.entity.mailbox.Mail; +import com.biutag.supervision.pojo.param.MailQueryParam; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +/** + * @ClassName MailResourceService + * @Description 局长信箱资源层 + * @Author shihao + * @Date 2025/12/18 16:44 + */ +@Service +public class MailResourceService { + + + @Resource + private MailMapper mailMapper; + + public List query(MailQueryParam param) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StrUtil.isNotBlank(param.getId()), Mail::getId, param.getId()); + queryWrapper.in(CollectionUtil.isNotEmpty(param.getIds()), Mail::getId, param.getIds()); + queryWrapper.eq(StrUtil.isNotBlank(param.getSecondDeptId()), Mail::getSecondDeptId, param.getSecondDeptId()); + queryWrapper.in(CollectionUtil.isNotEmpty(param.getSecondDeptIds()), Mail::getId, param.getSecondDeptIds()); + queryWrapper.eq(StrUtil.isNotBlank(param.getThreeDeptId()), Mail::getId, param.getThreeDeptId()); + queryWrapper.in(CollectionUtil.isNotEmpty(param.getThreeDeptIds()), Mail::getId, param.getThreeDeptIds()); + if (queryWrapper.getExpression() == null || queryWrapper.getExpression().getSqlSegment().isEmpty()) { + return Collections.emptyList(); + } + return mailMapper.selectList(queryWrapper); + } + + + + + + + + + + + + +} diff --git a/src/main/java/com/biutag/supervision/repository/supExternalDepart/SupExternalDepartResourceService.java b/src/main/java/com/biutag/supervision/repository/supExternalDepart/SupExternalDepartResourceService.java new file mode 100644 index 0000000..d8bd3a1 --- /dev/null +++ b/src/main/java/com/biutag/supervision/repository/supExternalDepart/SupExternalDepartResourceService.java @@ -0,0 +1,43 @@ +package com.biutag.supervision.repository.supExternalDepart; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.biutag.supervision.mapper.SupExternalDepartMapper; +import com.biutag.supervision.pojo.entity.SupExternalDepart; +import com.biutag.supervision.pojo.param.SupExternalDepartQueryParam; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +/** + * @ClassName SupExternalDepartResourceService + * @Description SupExternalDepartResourceService + * @Author shihao + * @Date 2025/12/18 16:58 + */ +@Service +public class SupExternalDepartResourceService { + + @Resource + private SupExternalDepartMapper supExternalDepartMapper; + + + public List query(SupExternalDepartQueryParam param){ + LambdaQueryWrapper wrapper= new LambdaQueryWrapper<>(); + wrapper.eq(StrUtil.isNotBlank(param.getSource()), SupExternalDepart::getSource, param.getSource()); + wrapper.in(CollectionUtil.isNotEmpty(param.getInternalIds()), SupExternalDepart::getInternalId, param.getInternalIds()); + + if (wrapper.getExpression() == null || wrapper.getExpression().getSqlSegment().isEmpty()) { + return Collections.emptyList(); + } + return supExternalDepartMapper.selectList(wrapper); + + } + + + + +}