From 8d011bcad3979295bd8519ad0550ffc4f2b8455c Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Fri, 26 Dec 2025 11:06:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=89=E8=AE=BF=E6=B6=89=E8=AF=89--=E5=AE=9E?= =?UTF-8?q?=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/ComplaintCollectionMapper.java | 13 + .../ComplaintCollectionPageDTO.java | 83 ++++ .../pojo/entity/ComplaintCollection.java | 397 ++++++++++++++++++ .../ComplaintCollectionExistParam.java | 30 ++ .../ComplaintCollectionQueryParam.java | 80 ++++ .../ComplaintCollectionUpdateParam.java | 86 ++++ .../ComplaintCollectionAddRequest.java | 152 +++++++ .../ComplaintCollectionDelRequest.java | 31 ++ .../ComplaintCollectionPageRequest.java | 83 ++++ .../ComplaintCollectionUpdateRequest.java | 85 ++++ .../transfer/ComplaintCollectionTransfer.java | 47 +++ .../pojo/vo/ComplaintCollectionPageVo.java | 39 ++ .../supervision/util/CodeTranslateUtil.java | 46 ++ .../mapper/ComplaintCollectionMapper.xml | 157 +++++++ 14 files changed, 1329 insertions(+) create mode 100644 src/main/java/com/biutag/supervision/mapper/ComplaintCollectionMapper.java create mode 100644 src/main/java/com/biutag/supervision/pojo/dto/complaintCollection/ComplaintCollectionPageDTO.java create mode 100644 src/main/java/com/biutag/supervision/pojo/entity/ComplaintCollection.java create mode 100644 src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionExistParam.java create mode 100644 src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionQueryParam.java create mode 100644 src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionUpdateParam.java create mode 100644 src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionAddRequest.java create mode 100644 src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionDelRequest.java create mode 100644 src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionPageRequest.java create mode 100644 src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionUpdateRequest.java create mode 100644 src/main/java/com/biutag/supervision/pojo/transfer/ComplaintCollectionTransfer.java create mode 100644 src/main/java/com/biutag/supervision/pojo/vo/ComplaintCollectionPageVo.java create mode 100644 src/main/java/com/biutag/supervision/util/CodeTranslateUtil.java create mode 100644 src/main/resources/mapper/ComplaintCollectionMapper.xml diff --git a/src/main/java/com/biutag/supervision/mapper/ComplaintCollectionMapper.java b/src/main/java/com/biutag/supervision/mapper/ComplaintCollectionMapper.java new file mode 100644 index 0000000..7a9d23f --- /dev/null +++ b/src/main/java/com/biutag/supervision/mapper/ComplaintCollectionMapper.java @@ -0,0 +1,13 @@ +package com.biutag.supervision.mapper; + +import com.biutag.supervision.pojo.entity.ComplaintCollection; +import com.biutag.supervision.repository.base.HBaseMapper; + +import java.util.List; + +public interface ComplaintCollectionMapper extends HBaseMapper { + + int insertBatch(List list); + + +} diff --git a/src/main/java/com/biutag/supervision/pojo/dto/complaintCollection/ComplaintCollectionPageDTO.java b/src/main/java/com/biutag/supervision/pojo/dto/complaintCollection/ComplaintCollectionPageDTO.java new file mode 100644 index 0000000..d6d65f0 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/dto/complaintCollection/ComplaintCollectionPageDTO.java @@ -0,0 +1,83 @@ +package com.biutag.supervision.pojo.dto.complaintCollection; + +import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionSourceTableEnum; +import com.biutag.supervision.pojo.enums.complaintCollection.YesOrNoEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; + +/** + * @ClassName ComplaintCollectionPageDTO + * @Description 涉访涉诉PageDto + * @Author shihao + * @Date 2025/12/25 15:35 + */ +@Getter +@Setter +@Schema(description = "涉访涉诉PageDto") +public class ComplaintCollectionPageDTO { + + @Schema(description = "id") + private String id; + + /** + * @see ComplaintCollectionSourceTableEnum + */ + @Schema(description = "来源表类型") + private String sourceTable; + + @Schema(description = "案件编号") + private String originId; + + @Schema(description = "发现时间 / 受理时间") + private LocalDateTime discoveryTime; + + @Schema(description = "反映人姓名") + private String responderName; + + @Schema(description = "投诉人身份证") + private String responderIdCode; + + @Schema(description = "联系电话") + private String responderPhone; + + @Schema(description = "办理二级单位名称") + private String secondDepartName; + + + @Schema(description = "办理二级单位id") + private String secondDepartId; + + @Schema(description = "内容/正文") + private String thingDesc; + + @Schema(description = "涉嫌问题") + private String involveProblem; + + @Schema(description = "涉嫌问题字符串") + private String involveProblemStr; + + /** + * @see YesOrNoEnum + */ + @Schema(description = "是否重复件") + private String repeatt; + + /** + * @see YesOrNoEnum + */ + @Schema(description = "是否领导审批") + private String leadApproval; + + + @Schema(description = "标签id") + private String tag; + + @Schema(description = "办理方式") + private String handleMethod; + + + +} diff --git a/src/main/java/com/biutag/supervision/pojo/entity/ComplaintCollection.java b/src/main/java/com/biutag/supervision/pojo/entity/ComplaintCollection.java new file mode 100644 index 0000000..1932641 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/entity/ComplaintCollection.java @@ -0,0 +1,397 @@ +package com.biutag.supervision.pojo.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionHandleMethodEnum; +import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionSourceTableEnum; +import com.biutag.supervision.pojo.enums.complaintCollection.YesOrNoEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; + + +/** + * @ClassName ComplaintCollection + * @Description 涉访涉诉表 + * @Author shihao + * @Date 2025/12/23 15:52 + */ +@Getter +@Setter +@Schema(description = "涉访涉诉归集表(投诉/核查/信箱归集)") +@TableName("complaint_collection") +public class ComplaintCollection { + + /* ========================= + * 0) 归集表基础字段(溯源/去重) + * ========================= */ + @Schema(description = "新表主键ID") + @TableId(value = "id",type = IdType.AUTO) + private String id; + + /** + * @see ComplaintCollectionSourceTableEnum + */ + @Schema(description = "来源表类型:PETITION/CASE_VERIF/MAILBOX") + @TableField("source_table") + private String sourceTable; + + /* ========================= + * 1) 三表合并字段(3表都有/语义相同 -> 合并为1个) + * ========================= */ + + @Schema(description = "信件编号(PETITION.origin_id;CASE_VERIF.originId;MAILBOX.origin_id)") + @TableField("origin_id") + private String originId; + + @Schema(description = "发现时间(PETITION.discovery_time;CASE_VERIF.discovery_time;MAILBOX.discoveryTime)") + @TableField("discovery_time") + private LocalDateTime discoveryTime; + + @Schema(description = "反映人姓名(PETITION.responder_name;CASE_VERIF.responder_name;MAILBOX.responderName)") + @TableField("responder_name") + private String responderName; + + @Schema(description = "联系电话(PETITION.responder_phone;CASE_VERIF.responder_phone;MAILBOX.contactPhone)") + @TableField("responder_phone") + private String responderPhone; + + @Schema(description = "业务类型名称(PETITION.business_type_name;CASE_VERIF.business_type_name;MAILBOX.businessTypeName)") + @TableField("business_type_name") + private String businessTypeName; + + @Schema(description = "内容/正文(PETITION.thing_desc;CASE_VERIF.thing_desc;MAILBOX.thingDesc)") + @TableField("thing_desc") + private String thingDesc; + + @Schema(description = "涉企涉冻(PETITION.involved_issue;MAILBOX.involved_issue;CASE_VERIF.involved_issue 若存在也迁移写入)") + @TableField("involved_issue") + private String involvedIssue; + + @Schema(description = "涉及单位名称/办理二级单位(PETITION.second_depart_name;CASE_VERIF.second_depart_name;MAILBOX.handleSecondDepartName 语义相同迁移写入)") + @TableField("second_depart_name") + private String secondDepartName; + + @Schema(description = "涉及科所队名称/办理三级单位(PETITION.third_depart_name;CASE_VERIF.third_depart_name;MAILBOX.handleThreeDepartName 语义相同迁移写入)") + @TableField("third_depart_name") + private String thirdDepartName; + + /* ========================= + * 2) 两表合并字段(2表共有/语义相同 -> 合并为1个) + * ========================= */ + @Schema(description = "涉嫌问题(PETITION.involve_problem;CASE_VERIF.involve_problem)") + @TableField("involve_problem") + private String involveProblem; + + @Schema(description = "分发状态(PETITION.distribution_state;CASE_VERIF.distribution_state)") + @TableField("distribution_state") + private String distributionState; + + @Schema(description = "涉及单位ID(PETITION.second_depart_id;CASE_VERIF.second_depart_id)") + @TableField("second_depart_id") + private String secondDepartId; + + @Schema(description = "涉及科所队ID(PETITION.third_depart_id;CASE_VERIF.third_depart_id)") + @TableField("third_depart_id") + private String thirdDepartId; + + @Schema(description = "问题来源code(PETITION.problem_sources_code;MAILBOX.problemSourcesCode)") + @TableField("problem_sources_code") + private String problemSourcesCode; + + @Schema(description = "问题来源名称(CASE_VERIF.problem_sources;MAILBOX.problemSources)") + @TableField("problem_sources") + private String problemSources; + + @Schema(description = "涉及警种名称(PETITION.police_type_name;CASE_VERIF.police_type_name)") + @TableField("police_type_name") + private String policeTypeName; + + /* ========================= + * 3) 单表独有字段(仅单表有 -> 单独字段) + * ========================= */ + + /* ---- PETITION 独有(data_petition_complaint) ---- */ + + @Schema(description = "投诉渠道(PETITION.channel_for_filing_complaints)") + @TableField("channel_for_filing_complaints") + private String channelForFilingComplaints; + + @Schema(description = "受理层级(PETITION.acceptance_level)") + @TableField("acceptance_level") + private String acceptanceLevel; + + @Schema(description = "初重信访(PETITION.initial_petition)") + @TableField("initial_petition") + private String initialPetition; + + @Schema(description = "缠访闹访(PETITION.entanglement_visits)") + @TableField("entanglement_visits") + private String entanglementVisits; + + @Schema(description = "群众集访(PETITION.mass_visits)") + @TableField("mass_visits") + private String massVisits; + + @Schema(description = "涉及警种(PETITION.police_type)") + @TableField("police_type") + private String policeType; + + @Schema(description = "投诉人身份证(PETITION.responder_id_code)") + @TableField("responder_id_code") + private String responderIdCode; + + @Schema(description = "信访人数(PETITION.people_number)") + @TableField("people_number") + private Integer peopleNumber; + + @Schema(description = "信访诉求(PETITION.appeal)") + @TableField("appeal") + private String appeal; + + @Schema(description = "公安业务分类(PETITION.business_class)") + @TableField("business_class") + private String businessClass; + + @Schema(description = "登记单位(PETITION.register_depart_name)") + @TableField("register_depart_name") + private String registerDepartName; + + @Schema(description = "转往处(PETITION.transfer_depart)") + @TableField("transfer_depart") + private String transferDepart; + + /** + * @see ComplaintCollectionHandleMethodEnum + */ + @Schema(description = "办理方式(PETITION.handle_method) 原表中没用 现改为3表通用") + @TableField("handle_method") + private String handleMethod; + + @Schema(description = "具体承办单位(PETITION.handle_depart_name)") + @TableField("handle_depart_name") + private String handleDepartName; + + @Schema(description = "办结时间(PETITION.completed_time)") + @TableField("completed_time") + private LocalDateTime completedTime; + + @Schema(description = "责任单位(PETITION.involve_depart_name)") + @TableField("involve_depart_name") + private String involveDepartName; + + @Schema(description = "接访领导姓名(PETITION.receiving_leader_name)") + @TableField("receiving_leader_name") + private String receivingLeaderName; + + @Schema(description = "是否主要责任(PETITION.is_mian_responsib)") + @TableField("is_mian_responsib") + private String isMianResponsib; + + @Schema(description = "领导接访单位(PETITION.receiving_depart_name)") + @TableField("receiving_depart_name") + private String receivingDepartName; + + @Schema(description = "关联负面清单id(PETITION.negative_id)") + @TableField("negative_id") + private String negativeId; + + @Schema(description = "信访类型(PETITION.petition_type)") + @TableField("petition_type") + private String petitionType; + + @Schema(description = "信访办理情况(PETITION.petition_processing_status)") + @TableField("petition_processing_status") + private String petitionProcessingStatus; + + /* ---- CASE_VERIF 独有(data_case_verif) ---- */ + + @Schema(description = "问题发生时间(CASE_VERIF.happen_time)") + @TableField("happen_time") + private LocalDateTime happenTime; + + @Schema(description = "是否属实(1属实 2部分属实 3不属实)(CASE_VERIF.is_real)") + @TableField("is_real") + private Integer isReal; + + @Schema(description = "线索来源(CASE_VERIF.source)") + @TableField("source") + private String source; + + @Schema(description = "创建人(业务字段)(CASE_VERIF.creator)") + @TableField("creator") + private String creator; + + @Schema(description = "来源涉及单位名称(CASE_VERIF.source_involve_depart_name)") + @TableField("source_involve_depart_name") + private String sourceInvolveDepartName; + + @Schema(description = "外部id(CASE_VERIF.outer_id)") + @TableField("outer_id") + private String outerId; + + @Schema(description = "状态(CASE_VERIF.crx_state)") + @TableField("crx_state") + private String crxState; + + /* ---- MAILBOX 独有(data_mailbox) ---- */ + + @Schema(description = "业务类型code(MAILBOX.businessTypeCode)") + @TableField("business_type_code") + private String businessTypeCode; + + @Schema(description = "核查情况(MAILBOX.checkStatus)") + @TableField("check_status") + private String checkStatus; + + @Schema(description = "核查情况名称(MAILBOX.checkStatusName)") + @TableField("check_status_name") + private String checkStatusName; + + @Schema(description = "核查情况内容(MAILBOX.checkStatusDesc)") + @TableField("check_status_desc") + private String checkStatusDesc; + + @Schema(description = "办理状态(MAILBOX.processingStatus)") + @TableField("processing_status") + private String processingStatus; + + @Schema(description = "转责对象(MAILBOX.accountabilityTarget)") + @TableField("accountability_target") + private String accountabilityTarget; + + @Schema(description = "来源表创建时间(业务字段)(MAILBOX.crtTime)") + @TableField("crt_time") + private LocalDateTime crtTime; + + /* ========================= + * 4) 新加字段 + * ========================= */ + + /** + * @see YesOrNoEnum + */ + @Schema(description = "是否重复件") + @TableField("repeatt") + private String repeatt; + + /** + * @see YesOrNoEnum + */ + @Schema(description = "是否领导审批") + @TableField("lead_approval") + private String leadApproval; + + + @Schema(description = "标签id") + @TableField("tag") + private String tag; + + + /* ========================= + * 4) 扩展字段(最后) + * ========================= */ + + @Schema(description = "自定义1") + @TableField("gwf1") + private String gwf1; + + @Schema(description = "自定义2") + @TableField("gwf2") + private String gwf2; + + @Schema(description = "自定义3") + @TableField("gwf3") + private String gwf3; + + @Schema(description = "自定义4") + @TableField("gwf4") + private String gwf4; + + @Schema(description = "自定义5") + @TableField("gwf5") + private String gwf5; + + @Schema(description = "自定义6") + @TableField("gwf6") + private String gwf6; + + @Schema(description = "自定义7") + @TableField("gwf7") + private String gwf7; + + @Schema(description = "自定义8") + @TableField("gwf8") + private String gwf8; + + @Schema(description = "自定义9") + @TableField("gwf9") + private String gwf9; + + @Schema(description = "自定义10") + @TableField("gwf10") + private String gwf10; + + @Schema(description = "自定义11") + @TableField("gwf11") + private String gwf11; + + @Schema(description = "自定义12") + @TableField("gwf12") + private String gwf12; + + @Schema(description = "自定义13") + @TableField("gwf13") + private String gwf13; + + @Schema(description = "自定义14") + @TableField("gwf14") + private String gwf14; + + @Schema(description = "自定义15") + @TableField("gwf15") + private String gwf15; + + @Schema(description = "自定义16") + @TableField("gwf16") + private String gwf16; + + @Schema(description = "自定义17") + @TableField("gwf17") + private String gwf17; + + @Schema(description = "自定义18") + @TableField("gwf18") + private String gwf18; + + @Schema(description = "自定义19") + @TableField("gwf19") + private String gwf19; + + @Schema(description = "自定义20") + @TableField("gwf20") + private String gwf20; + + + @Schema(description = "创建人(新表字段)") + @TableField("create_by") + private String createBy; + + @Schema(description = "创建时间(新表字段)") + @TableField("create_time") + private LocalDateTime createTime; + + @Schema(description = "更新人(新表字段)") + @TableField("update_by") + private String updateBy; + + @Schema(description = "更新时间(新表字段)") + @TableField("update_time") + private LocalDateTime updateTime; + +// @Schema(description = "逻辑删除标记(0未删 1已删)") +// @TableField("delete_flag") +// @TableLogic(value = "0", delval = "1") +// private Integer deleteFlag; +} diff --git a/src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionExistParam.java b/src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionExistParam.java new file mode 100644 index 0000000..6348364 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionExistParam.java @@ -0,0 +1,30 @@ +package com.biutag.supervision.pojo.param.ComplaintCollection; + +import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionSourceTableEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +/** + * @ClassName ComplaintCollectionExistParam + * @Description ComplaintCollectionExistParam + * @Author shihao + * @Date 2025/12/25 19:33 + */ +@Getter +@Setter +@Schema(description = "涉访涉诉表校验存在实体") +public class ComplaintCollectionExistParam { + + @Schema(description = "id") + private String id; + + @Schema(description = "信件编号") + private String originId; + + /** + * @see ComplaintCollectionSourceTableEnum + */ + @Schema(description = "来源表类型:PETITION/CASE_VERIF/MAILBOX") + private String sourceTable; +} diff --git a/src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionQueryParam.java b/src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionQueryParam.java new file mode 100644 index 0000000..1458ff2 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionQueryParam.java @@ -0,0 +1,80 @@ +package com.biutag.supervision.pojo.param.ComplaintCollection; + +import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionSourceTableEnum; +import com.biutag.supervision.pojo.param.BasePage; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; +import java.util.Set; + +/** + * @ClassName ComplaintCollectionQueryParam + * @Description 涉访涉诉表查询实体 + * @Author shihao + * @Date 2025/12/23 16:57 + */ +@Getter +@Setter +@Schema(description = "涉访涉诉表查询实体") +public class ComplaintCollectionQueryParam extends BasePage { + + @Schema(description = "主键ID") + private String id; + + @Schema(description = "主键ID集合") + private Set ids; + + @Schema(description = "信件编号") + private String originId; + + @Schema(description = "信件编号集合") + private Set originIds; + + /** + * @see ComplaintCollectionSourceTableEnum + */ + @Schema(description = "来源表类型:PETITION/CASE_VERIF/MAILBOX") + private String sourceTable; + + @Schema(description = "信件来源") + private Set sourceTables; + + @Schema(description = "反映人姓名(PETITION.responder_name;CASE_VERIF.responder_name;MAILBOX.responderName)") + private String responderName; + + @Schema(description = "受理时间") + private List discoveryTimeList; + + @Schema(description = "来件人信息") + private String personInfo; + + @Schema(description = "被投诉二级机构Id") + private String secondDepartId; + + @Schema(description = "被投诉二级机构名字") + private String secondDepartName; + + @Schema(description = "办理方式") + private String handleMethod; + + @Schema(description = "来件内容") + private String thingDesc; + + @Schema(description = "是否重复件") + private String repeatt; + + @Schema(description = "是否领导批示") + private String leadApproval; + + @Schema(description = "标签") + private List tags; + +// @Schema(description = "部门ID集合") +// private Set secondDepartIds; + + +} diff --git a/src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionUpdateParam.java b/src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionUpdateParam.java new file mode 100644 index 0000000..3e2bd21 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionUpdateParam.java @@ -0,0 +1,86 @@ +package com.biutag.supervision.pojo.param.ComplaintCollection; + +import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionHandleMethodEnum; +import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionSourceTableEnum; +import com.biutag.supervision.pojo.enums.complaintCollection.YesOrNoEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; + +/** + * @ClassName ComplaintCollectionUpdateRequest + * @Description ComplaintCollectionUpdateRequest + * @Author shihao + * @Date 2025/12/25 19:31 + */ +@Getter +@Setter +@Schema(description = "涉访涉诉表更新实体") +public class ComplaintCollectionUpdateParam { + + @Schema(description = "id") + private String id; + + /** + * @see ComplaintCollectionSourceTableEnum + */ + @Schema(description = "来源表类型") + private String sourceTable; + + @Schema(description = "编号") + private String originId; + + @Schema(description = "受理时间") + private LocalDateTime discoveryTime; + + @Schema(description = "来件人姓名") + private String responderName; + + @Schema(description = "身份证号") + private String responderIdCode; + + @Schema(description = "联系电话") + private String responderPhone; + + @Schema(description = "被投诉二级机构Id") + private String secondDepartId; + + @Schema(description = "被投诉二级机构") + private String secondDepartName; + + @Schema(description = "来信内容") + private String thingDesc; + + @Schema(description = "涉嫌问题") + private String involveProblem; + + /** + * @see YesOrNoEnum + */ + @Schema(description = "是否重复件") + private String repeatt; + + /** + * @see YesOrNoEnum + */ + @Schema(description = "是否领导审批") + private String leadApproval; + + @Schema(description = "标签") + private String tag; + + /** + * @see ComplaintCollectionHandleMethodEnum + */ + @Schema(description = "办理方式") + private String handleMethod; + + @Schema(description = "更新人(新表字段)") + private String updateBy; + + @Schema(description = "更新时间(新表字段)") + private LocalDateTime updateTime; + +} diff --git a/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionAddRequest.java b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionAddRequest.java new file mode 100644 index 0000000..ff5d139 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionAddRequest.java @@ -0,0 +1,152 @@ +package com.biutag.supervision.pojo.request.complaintCollection; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.IdcardUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.biutag.supervision.aop.ParamChecked; +import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionHandleMethodEnum; +import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionSourceTableEnum; +import com.biutag.supervision.pojo.enums.complaintCollection.YesOrNoEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @ClassName complaintCollectionRequest + * @Description 涉访涉诉添加请求 + * @Author shihao + * @Date 2025/12/23 18:02 + */ +@Setter +@Getter +@Schema(description = "涉访涉诉添加请求") +public class ComplaintCollectionAddRequest implements ParamChecked { + + /** + * @see ComplaintCollectionSourceTableEnum + */ + @Schema(description = "来源表类型") + private String sourceTable; + + @Schema(description = "编号") + private String originId; + + @Schema(description = "受理时间") + private LocalDateTime discoveryTime; + + @Schema(description = "来件人姓名") + private String responderName; + + @Schema(description = "身份证号") + private String responderIdCode; + + @Schema(description = "联系电话") + private String responderPhone; + + @Schema(description = "被投诉二级机构Id") + private String secondDepartId; + + @Schema(description = "被投诉二级机构") + private String secondDepartName; + + @Schema(description = "来信内容") + private String thingDesc; + + @Schema(description = "涉嫌问题") + private List involveProblemIdList; + + @Schema(description = "涉嫌问题") + private String involveProblemIdStr; + + /** + * @see YesOrNoEnum + */ + @Schema(description = "是否重复件") + private String repeatt; + + /** + * @see YesOrNoEnum + */ + @Schema(description = "是否领导审批") + private String leadApproval; + + /** + * + */ + @Schema(description = "标签") + private String tag; + + @Schema(description = "标签集合") + private List tags; + + /** + * @see ComplaintCollectionHandleMethodEnum + */ + @Schema(description = "办理方式") + private String handleMethod; + + + @Override + public void check() { + if (StrUtil.isBlank(sourceTable)) { + throw new IllegalArgumentException("来源不能为空"); + } + if (ObjectUtil.isNull(discoveryTime)) { + throw new IllegalArgumentException("受理时间不能为空"); + } + if (discoveryTime.isAfter(LocalDateTime.now())) { + throw new IllegalArgumentException("受理时间不能晚于当前时间"); + } + + if (StrUtil.isNotBlank(responderIdCode) && !IdcardUtil.isValidCard(responderIdCode)){ + throw new IllegalArgumentException("身份证格式不对!"); + } + if (StrUtil.hasBlank(secondDepartId,secondDepartName)) { + throw new IllegalArgumentException("被投诉二级机构不能为空"); + } + + if (StrUtil.isBlank(thingDesc)) { + throw new IllegalArgumentException("来信内容不能为空"); + } + + if (ObjectUtil.isNull(involveProblemIdList)) { + throw new IllegalArgumentException("涉嫌问题不能为空"); + } + + if (StrUtil.isBlank(repeatt)) { + throw new IllegalArgumentException("是否重复不能为空"); + } + + if (StrUtil.isBlank((leadApproval))) { + throw new IllegalArgumentException("是否领导审批不能为空"); + } + + if (CollectionUtil.isEmpty(tags)){ + throw new IllegalArgumentException("标签不能为空"); + } + if (StrUtil.isEmpty(handleMethod)){ + throw new IllegalArgumentException("办理方法不能为空"); + } + + if (CollectionUtil.isNotEmpty(involveProblemIdList)){ + involveProblemIdStr = involveProblemIdList.stream() + .filter(StrUtil::isNotBlank) + .distinct() + .collect(Collectors.joining(",")); + } + + if (CollectionUtil.isNotEmpty(tags)){ + tag = tags.stream() + .filter(StrUtil::isNotBlank) + .distinct() + .collect(Collectors.joining(",")); + } + + } + +} diff --git a/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionDelRequest.java b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionDelRequest.java new file mode 100644 index 0000000..75a6511 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionDelRequest.java @@ -0,0 +1,31 @@ +package com.biutag.supervision.pojo.request.complaintCollection; + +import cn.hutool.core.util.StrUtil; +import com.biutag.supervision.aop.ParamChecked; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +/** + * @ClassName complaintCollectionRequest + * @Description 涉访涉诉添加请求 + * @Author shihao + * @Date 2025/12/23 18:02 + */ +@Setter +@Getter +@Schema(description = "涉访涉诉删除请求") +public class ComplaintCollectionDelRequest implements ParamChecked { + + + @Schema(description = "ComplaintCollection自己的Id") + private String id; + + @Override + public void check() { + if (StrUtil.isBlank(id)) { + throw new IllegalArgumentException("编号不能为空"); + } + } + +} diff --git a/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionPageRequest.java b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionPageRequest.java new file mode 100644 index 0000000..58f53b0 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionPageRequest.java @@ -0,0 +1,83 @@ +package com.biutag.supervision.pojo.request.complaintCollection; + +import cn.hutool.core.collection.CollectionUtil; +import com.biutag.supervision.aop.ParamChecked; +import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionHandleMethodEnum; +import com.biutag.supervision.pojo.param.BasePage; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Set; + +/** + * @ClassName complaintCollectionRequest + * @Description 涉访涉诉分页请求 + * @Author shihao + * @Date 2025/12/23 18:02 + */ +@Setter +@Getter +@Schema(description = "涉访涉诉分页请求") +public class ComplaintCollectionPageRequest extends BasePage implements ParamChecked { + + + @Schema(description = "信件来源") + private Set sourceTables; + + @Schema(description = "信件编号") + private String originId; + + @Schema(description = "受理时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private List discoveryTimeList; + + @Schema(description = "来件人信息") + private String personInfo; + + @Schema(description = "被投诉二级机构Id") + private String secondDepartId; + + @Schema(description = "被投诉二级机构名字") + private String secondDepartName; + + /** + * @see ComplaintCollectionHandleMethodEnum + */ + @Schema(description = "办理方式") + private String handleMethod; + + @Schema(description = "来件内容") + private String thingDesc; + + @Schema(description = "是否重复件") + private String repeatt; + + @Schema(description = "是否领导批示") + private String leadApproval; + + @Schema(description = "标签") + private Set tags; + + + @Override + public void check() { + if (CollectionUtil.isNotEmpty(discoveryTimeList)){ + if (discoveryTimeList.size() != 2) { + throw new IllegalArgumentException("受理时间区间不合法"); + } + LocalDateTime startTime = discoveryTimeList.get(0); + LocalDateTime endTime = discoveryTimeList.get(1); + if (startTime == null || endTime == null) { + throw new IllegalArgumentException("受理时间不能为空"); + } + // 结束时间不能早于开始时间 + if (endTime.isBefore(startTime)) { + throw new IllegalArgumentException("结束时间不能早于开始时间"); + } + } + } +} diff --git a/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionUpdateRequest.java b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionUpdateRequest.java new file mode 100644 index 0000000..378641a --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionUpdateRequest.java @@ -0,0 +1,85 @@ +package com.biutag.supervision.pojo.request.complaintCollection; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.IdcardUtil; +import cn.hutool.core.util.StrUtil; +import com.biutag.supervision.aop.ParamChecked; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "涉访涉诉修改请求") +@Getter +@Setter +public class ComplaintCollectionUpdateRequest implements ParamChecked { + + @Schema(description = "主键ID") + private String id; + + @Schema(description = "受理时间") + private LocalDateTime discoveryTime; + + @Schema(description = "来件人姓名") + private String responderName; + + @Schema(description = "身份证号") + private String responderIdCode; + + @Schema(description = "联系电话") + private String responderPhone; + + @Schema(description = "被投诉二级机构Id") + private String secondDepartId; + + @Schema(description = "被投诉二级机构") + private String secondDepartName; + + @Schema(description = "来信内容") + private String thingDesc; + + @Schema(description = "涉嫌问题(逗号分隔存 involve_problem)") + private List involveProblemIdList; + + @Schema(description = "是否重复件") + private String repeatt; + + @Schema(description = "是否领导审批") + private String leadApproval; + + @Schema(description = "标签集合(逗号分隔存 tag)") + private List tags; + + @Schema(description = "办理方式") + private String handleMethod; + + @Override + public void check() { + if (StrUtil.isBlank(id)) { + throw new IllegalArgumentException("id不能为空"); + } + boolean nothingToUpdate = + discoveryTime == null + && StrUtil.isBlank(responderName) + && StrUtil.isBlank(responderIdCode) + && StrUtil.isBlank(responderPhone) + && StrUtil.isBlank(secondDepartId) + && StrUtil.isBlank(secondDepartName) + && StrUtil.isBlank(thingDesc) + && CollectionUtil.isEmpty(involveProblemIdList) + && StrUtil.isBlank(repeatt) + && StrUtil.isBlank(leadApproval) + && CollectionUtil.isEmpty(tags) + && StrUtil.isBlank(handleMethod); + if (nothingToUpdate) { + throw new IllegalArgumentException("请至少修改一个字段"); + } + + if (StrUtil.isNotBlank(responderIdCode) && !IdcardUtil.isValidCard(responderIdCode)){ + throw new IllegalArgumentException("身份证格式不对!"); + } + + } +} diff --git a/src/main/java/com/biutag/supervision/pojo/transfer/ComplaintCollectionTransfer.java b/src/main/java/com/biutag/supervision/pojo/transfer/ComplaintCollectionTransfer.java new file mode 100644 index 0000000..3bd183a --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/transfer/ComplaintCollectionTransfer.java @@ -0,0 +1,47 @@ +package com.biutag.supervision.pojo.transfer; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.biutag.supervision.pojo.dto.complaintCollection.ComplaintCollectionPageDTO; +import com.biutag.supervision.pojo.entity.ComplaintCollection; +import com.biutag.supervision.pojo.param.ComplaintCollection.ComplaintCollectionQueryParam; +import com.biutag.supervision.pojo.param.ComplaintCollection.ComplaintCollectionUpdateParam; +import com.biutag.supervision.pojo.request.complaintCollection.ComplaintCollectionAddRequest; +import com.biutag.supervision.pojo.request.complaintCollection.ComplaintCollectionPageRequest; +import com.biutag.supervision.pojo.request.complaintCollection.ComplaintCollectionUpdateRequest; +import com.biutag.supervision.pojo.vo.ComplaintCollectionPageVo; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * @ClassName ComplaintCollectionTansfer + * @Description ComplaintCollectionTransfer + * @Author shihao + * @Date 2025/12/23 18:10 + */ +@Mapper +public interface ComplaintCollectionTransfer { + + ComplaintCollectionTransfer INSTANCE = Mappers.getMapper(ComplaintCollectionTransfer.class); + + List toPageVoList(List complaintCollections); + + @Mapping(source = "total", target = "total") + @Mapping(source = "pages", target = "pages") + @Mapping(source = "current", target = "current") + @Mapping(source = "size", target = "size") + ComplaintCollectionPageVo toPageVo(IPage page); + + + List entityToPageDTOList(List records); + + ComplaintCollectionQueryParam pageRequestToPageParam(ComplaintCollectionPageRequest request); + + ComplaintCollection updateRequestToEntity(ComplaintCollectionUpdateRequest request); + @Mapping(source = "involveProblemIdStr", target = "involveProblem") + ComplaintCollection addRequestToEntity(ComplaintCollectionAddRequest request); + + ComplaintCollectionUpdateParam updateRequestToParam(ComplaintCollectionUpdateRequest request); +} diff --git a/src/main/java/com/biutag/supervision/pojo/vo/ComplaintCollectionPageVo.java b/src/main/java/com/biutag/supervision/pojo/vo/ComplaintCollectionPageVo.java new file mode 100644 index 0000000..f6261d6 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/vo/ComplaintCollectionPageVo.java @@ -0,0 +1,39 @@ +package com.biutag.supervision.pojo.vo; + +import com.biutag.supervision.pojo.dto.complaintCollection.ComplaintCollectionPageDTO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +/** + * @ClassName ComplaintCollectionVo + * @Description 涉访涉诉VO + * @Author shihao + * @Date 2025/12/23 17:28 + */ +@Getter +@Setter +@Schema(description = "涉访涉诉PageVO") +public class ComplaintCollectionPageVo { + + @Schema(description = "总条数") + private Long total; + + @Schema(description = "总页数") + private Long pages; + + @Schema(description = "当前页") + private Long current; + + @Schema(description = "每页条数") + private Long size; + + + @Schema(description = "返回DTO") + private List complaintCollectionPageDTOS; + + + +} diff --git a/src/main/java/com/biutag/supervision/util/CodeTranslateUtil.java b/src/main/java/com/biutag/supervision/util/CodeTranslateUtil.java new file mode 100644 index 0000000..3a8753d --- /dev/null +++ b/src/main/java/com/biutag/supervision/util/CodeTranslateUtil.java @@ -0,0 +1,46 @@ +package com.biutag.supervision.util; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @ClassName CodeTranslateUtil + * @Description CodeTranslateUtil + * @Author shihao + * @Date 2025/12/25 21:54 + */ +public final class CodeTranslateUtil { + private CodeTranslateUtil() { + } + + + public static String joinDistinct(List items) { + if (CollectionUtil.isEmpty(items)) { + return null; + } + return items.stream() + .map(StrUtil::trim) + .filter(StrUtil::isNotBlank) + .distinct() + .collect(Collectors.joining(",")); + } + + + public static String translateCodesToLabels(String codes, Map dictLabelMap) { + if (StrUtil.isBlank(codes) || CollectionUtil.isEmpty(dictLabelMap)) { + return ""; + } + return Arrays.stream(codes.split(",")) + .map(String::trim) + .filter(StrUtil::isNotBlank) + .distinct() + .map(dictLabelMap::get) + .filter(StrUtil::isNotBlank) + .collect(Collectors.joining(",")); + } + +} diff --git a/src/main/resources/mapper/ComplaintCollectionMapper.xml b/src/main/resources/mapper/ComplaintCollectionMapper.xml new file mode 100644 index 0000000..0df36ed --- /dev/null +++ b/src/main/resources/mapper/ComplaintCollectionMapper.xml @@ -0,0 +1,157 @@ + + + + + + + + INSERT INTO complaint_collection ( + id, + source_table, + source_origin_id, + origin_id, + discovery_time, + responder_name, + responder_phone, + business_type_name, + thing_desc, + involved_issue, + second_depart_name, + third_depart_name, + involve_problem, + distribution_state, + second_depart_id, + third_depart_id, + problem_sources_code, + problem_sources, + police_type_name, + + channel_for_filing_complaints, + acceptance_level, + initial_petition, + entanglement_visits, + mass_visits, + police_type, + responder_id_code, + people_number, + appeal, + business_class, + register_depart_name, + transfer_depart, + handle_method, + handle_depart_name, + completed_time, + involve_depart_name, + receiving_leader_name, + is_mian_responsib, + receiving_depart_name, + negative_id, + petition_type, + petition_processing_status, + + happen_time, + is_real, + source, + creator, + source_involve_depart_name, + outer_id, + crx_state, + + business_type_code, + check_status, + check_status_name, + check_status_desc, + processing_status, + accountability_target, + crt_time, + + gwf1, gwf2, gwf3, gwf4, gwf5, + gwf6, gwf7, gwf8, gwf9, gwf10, + gwf11, gwf12, gwf13, gwf14, gwf15, + gwf16, gwf17, gwf18, gwf19, gwf20, + + create_by, + create_time, + update_by, + update_time, + delete_flag + ) + VALUES + + ( + #{item.id}, + #{item.sourceTable}, + #{item.sourceOriginId}, + #{item.originId}, + #{item.discoveryTime}, + #{item.responderName}, + #{item.responderPhone}, + #{item.businessTypeName}, + #{item.thingDesc}, + #{item.involvedIssue}, + #{item.secondDepartName}, + #{item.thirdDepartName}, + #{item.involveProblem}, + #{item.distributionState}, + #{item.secondDepartId}, + #{item.thirdDepartId}, + #{item.problemSourcesCode}, + #{item.problemSources}, + #{item.policeTypeName}, + + #{item.channelForFilingComplaints}, + #{item.acceptanceLevel}, + #{item.initialPetition}, + #{item.entanglementVisits}, + #{item.massVisits}, + #{item.policeType}, + #{item.responderIdCode}, + #{item.peopleNumber}, + #{item.appeal}, + #{item.businessClass}, + #{item.registerDepartName}, + #{item.transferDepart}, + #{item.handleMethod}, + #{item.handleDepartName}, + #{item.completedTime}, + #{item.involveDepartName}, + #{item.receivingLeaderName}, + #{item.isMianResponsib}, + #{item.receivingDepartName}, + #{item.negativeId}, + #{item.petitionType}, + #{item.petitionProcessingStatus}, + + #{item.happenTime}, + #{item.isReal}, + #{item.source}, + #{item.creator}, + #{item.sourceInvolveDepartName}, + #{item.outerId}, + #{item.crxState}, + + #{item.businessTypeCode}, + #{item.checkStatus}, + #{item.checkStatusName}, + #{item.checkStatusDesc}, + #{item.processingStatus}, + #{item.accountabilityTarget}, + #{item.crtTime}, + + #{item.gwf1}, #{item.gwf2}, #{item.gwf3}, #{item.gwf4}, #{item.gwf5}, + #{item.gwf6}, #{item.gwf7}, #{item.gwf8}, #{item.gwf9}, #{item.gwf10}, + #{item.gwf11}, #{item.gwf12}, #{item.gwf13}, #{item.gwf14}, #{item.gwf15}, + #{item.gwf16}, #{item.gwf17}, #{item.gwf18}, #{item.gwf19}, #{item.gwf20}, + + #{item.createBy}, + #{item.createTime}, + #{item.updateBy}, + #{item.updateTime}, + #{item.deleteFlag} + ) + + + +