From 96cd62226c02f341031cf51a916033a084a29db5 Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Thu, 9 Apr 2026 09:23:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=8A=95=E8=AF=89=E4=B8=BE=E6=8A=A5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=92=8C=E5=88=A0=E9=99=A4=E6=8E=A5=E5=85=A5?= =?UTF-8?q?=E7=BB=BC=E5=90=88=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/ComplaintCollectionController.java | 7 ++ .../ComplaintCollectionQueryParam.java | 5 ++ .../ComplaintCollectionDelRequest.java | 7 +- .../ComplaintCollectionDetailRequest.java | 32 +++++++ .../supervision/pojo/vo/NegativeQueryVo.java | 13 +++ .../ComplaintCollectionDetailVo.java | 85 +++++++++++++++++++ .../ComplaintCollectionResourceService.java | 1 + .../ComplaintCollectionService.java | 9 +- .../ComplaintCollectionServiceImpl.java | 27 +++++- 9 files changed, 182 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionDetailRequest.java create mode 100644 src/main/java/com/biutag/supervision/pojo/vo/complaintCollection/ComplaintCollectionDetailVo.java diff --git a/src/main/java/com/biutag/supervision/controller/data/ComplaintCollectionController.java b/src/main/java/com/biutag/supervision/controller/data/ComplaintCollectionController.java index 0e268a1..e524ded 100644 --- a/src/main/java/com/biutag/supervision/controller/data/ComplaintCollectionController.java +++ b/src/main/java/com/biutag/supervision/controller/data/ComplaintCollectionController.java @@ -5,6 +5,7 @@ import com.biutag.supervision.job.Job; import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.dto.complaintCollection.ComplaintCollectionPageDTO; import com.biutag.supervision.pojo.request.complaintCollection.*; +import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionDetailVo; import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionHandlerDataVo; import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionMailRepeattVo; import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionWatchDetailVO; @@ -104,5 +105,11 @@ public class ComplaintCollectionController { return complaintCollectionService.initialReview(request); } + @Operation(description = "查询详情(用于修改弹窗回显)") + @PostMapping("/getComplaintCollectionDetail") + public Result getComplaintCollectionDetail(@RequestBody ComplaintCollectionDetailRequest request){ + return complaintCollectionService.getComplaintCollectionDetail(request); + } + } 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 index d0e2ff7..6f26b1d 100644 --- a/src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionQueryParam.java +++ b/src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionQueryParam.java @@ -118,6 +118,11 @@ public class ComplaintCollectionQueryParam extends BasePage { private List createTimeList = new ArrayList<>(); + @Schema(description = "问题ID") + private String negativeId; + + @Schema(description = "问题IDs") + private List negativeIds; // @Schema(description = "部门ID集合") // private Set secondDepartIds; 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 index 75a6511..39dbd22 100644 --- a/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionDelRequest.java +++ b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionDelRequest.java @@ -21,10 +21,13 @@ public class ComplaintCollectionDelRequest implements ParamChecked { @Schema(description = "ComplaintCollection自己的Id") private String id; + @Schema(description = "问题id") + private String negativeId; + @Override public void check() { - if (StrUtil.isBlank(id)) { - throw new IllegalArgumentException("编号不能为空"); + if (StrUtil.isBlank(id) && StrUtil.isBlank(negativeId)) { + throw new IllegalArgumentException("投诉举报id和问题id不能同时为空"); } } diff --git a/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionDetailRequest.java b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionDetailRequest.java new file mode 100644 index 0000000..f31f841 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionDetailRequest.java @@ -0,0 +1,32 @@ +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 ComplaintCollectionDetailRequest + * @Description 涉访涉诉详情查询请求 + * @Author system + * @Date 2026/04/08 + */ +@Setter +@Getter +@Schema(description = "涉访涉诉详情查询请求") +public class ComplaintCollectionDetailRequest implements ParamChecked { + + @Schema(description = "投诉举报主键ID") + private String id; + + @Schema(description = "问题id") + private String negativeId; + + @Override + public void check() { + if (StrUtil.isBlank(id) && StrUtil.isBlank(negativeId)) { + throw new IllegalArgumentException("投诉举报主键ID和问题ID不能同时空"); + } + } +} diff --git a/src/main/java/com/biutag/supervision/pojo/vo/NegativeQueryVo.java b/src/main/java/com/biutag/supervision/pojo/vo/NegativeQueryVo.java index 62a8e66..7d691ce 100644 --- a/src/main/java/com/biutag/supervision/pojo/vo/NegativeQueryVo.java +++ b/src/main/java/com/biutag/supervision/pojo/vo/NegativeQueryVo.java @@ -226,4 +226,17 @@ public class NegativeQueryVo { @TableField("first_approve_time") private Long firstApproveTime; + + /** + * @see com.biutag.supervision.pojo.enums.negative.NegativeSourceTypeEnum + */ + @Schema(description = "来源类型") + private String sourceType; + + /** + * @see com.biutag.supervision.pojo.enums.negative.NegativeSourceTypeEnum + */ + @Schema(description = "来源类型名称") + private String sourceTypeDesc; + } diff --git a/src/main/java/com/biutag/supervision/pojo/vo/complaintCollection/ComplaintCollectionDetailVo.java b/src/main/java/com/biutag/supervision/pojo/vo/complaintCollection/ComplaintCollectionDetailVo.java new file mode 100644 index 0000000..4674eb3 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/vo/complaintCollection/ComplaintCollectionDetailVo.java @@ -0,0 +1,85 @@ +package com.biutag.supervision.pojo.vo.complaintCollection; + +import com.biutag.supervision.pojo.vo.FileVo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * @ClassName ComplaintCollectionDetailVo + * @Description 涉访涉诉详情查询响应VO(用于修改弹窗数据回显) + * @Author system + * @Date 2026/04/08 + */ +@Data +@Schema(description = "涉访涉诉详情查询响应VO(用于修改弹窗数据回显)") +public class ComplaintCollectionDetailVo { + + @Schema(description = "主键ID") + private String id; + + @Schema(description = "来源表类型") + private String sourceTable; + + @Schema(description = "来源子类型") + private String sourceTableSubOne; + + @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; + + @Schema(description = "涉嫌问题ID列表") + private List involveProblemIdList; + + @Schema(description = "是否重复件") + private String repeatt; + + @Schema(description = "是否领导审批") + private String leadApproval; + + @Schema(description = "标签(逗号分隔)") + private String tag; + + @Schema(description = "标签列表") + private List tags; + + @Schema(description = "办理方式") + private String handleMethod; + + @Schema(description = "业务类型code") + private String businessTypeCode; + + @Schema(description = "业务类型name") + private String businessTypeName; + + @Schema(description = "附件列表") + private List thingFiles; + + @Schema(description = "问题ID(negative表)") + private String negativeId; +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/repository/complaintCollection/ComplaintCollectionResourceService.java b/src/main/java/com/biutag/supervision/repository/complaintCollection/ComplaintCollectionResourceService.java index e3d9114..9d5263a 100644 --- a/src/main/java/com/biutag/supervision/repository/complaintCollection/ComplaintCollectionResourceService.java +++ b/src/main/java/com/biutag/supervision/repository/complaintCollection/ComplaintCollectionResourceService.java @@ -40,6 +40,7 @@ public class ComplaintCollectionResourceService extends BaseDAO { setBatchQuery(param.getId(), param.getIds(), queryWrapper, ComplaintCollection::getId); setBatchQuery(param.getResponderIdCode(), param.getResponderIdCodes(), queryWrapper, ComplaintCollection::getResponderIdCode); setBatchQuery(param.getOriginId(), param.getOriginIds(), queryWrapper, ComplaintCollection::getOriginId); + setBatchQuery(param.getNegativeId(), param.getNegativeIds(), queryWrapper, ComplaintCollection::getNegativeId); queryWrapper.eq(StrUtil.isNotBlank(param.getSourceTable()), ComplaintCollection::getSourceTable, param.getSourceTable()); queryWrapper.eq(StrUtil.isNotBlank(param.getResponderName()), ComplaintCollection::getResponderName, param.getResponderName()); queryWrapper.eq(StrUtil.isNotBlank(param.getResponderPhone()), ComplaintCollection::getResponderPhone, param.getResponderPhone()); diff --git a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionService.java b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionService.java index 2336878..1ee7c5f 100644 --- a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionService.java +++ b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionService.java @@ -4,9 +4,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.dto.complaintCollection.ComplaintCollectionPageDTO; import com.biutag.supervision.pojo.request.complaintCollection.*; +import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionDetailVo; import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionHandlerDataVo; import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionMailRepeattVo; -import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionPageVo; import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionWatchDetailVO; import jakarta.servlet.http.HttpServletResponse; @@ -94,4 +94,11 @@ public interface ComplaintCollectionService { * @return */ Result initialReview(ComplaintCollectionInitialReviewRequest request); + + /** + * 查询详情(用于修改弹窗数据回显) + * @param request + * @return + */ + Result getComplaintCollectionDetail(ComplaintCollectionDetailRequest request); } diff --git a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java index bcffb92..e51e135 100644 --- a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java +++ b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java @@ -45,6 +45,7 @@ import com.biutag.supervision.pojo.param.complaintCollectionFile.ComplaintCollec import com.biutag.supervision.pojo.request.complaintCollection.*; import com.biutag.supervision.pojo.transfer.ComplaintCollectionTransfer; import com.biutag.supervision.pojo.vo.FileVo; +import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionDetailVo; import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionHandlerDataVo; import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionMailRepeattVo; import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionWatchDetailVO; @@ -152,6 +153,7 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic public Result delComplaintCollection(ComplaintCollectionDelRequest request) { ComplaintCollectionQueryParam param = new ComplaintCollectionQueryParam(); param.setId(request.getId()); + param.setNegativeId(request.getNegativeId()); List query = complaintCollectionResourceService.query(param); if (CollectionUtil.isEmpty(query)) { throw new IllegalStateException("未找到可删除信息" + request.getId()); @@ -161,7 +163,7 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic } // 鉴权 checkDeletePermission(query.get(0)); - boolean deleted = complaintCollectionResourceService.deleteById(request.getId()); + boolean deleted = complaintCollectionResourceService.deleteById(query.get(0).getId()); if (!deleted) { throw new RuntimeException("删除失败"); } @@ -611,6 +613,29 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic return Result.success(Boolean.TRUE); } + @Override + public Result getComplaintCollectionDetail(ComplaintCollectionDetailRequest request) { + // 1. 查询主表数据 + ComplaintCollectionQueryParam queryParam = new ComplaintCollectionQueryParam(); + queryParam.setId(request.getId()); + queryParam.setNegativeId(request.getNegativeId()); + List query = complaintCollectionResourceService.query(queryParam); + if (CollectionUtil.isEmpty(query)) { + throw new NoSuchElementException("未找到对应投诉举报数据,id:" + request.getId()); + } + ComplaintCollection complaintCollection = query.get(0); + // 2. 转换为 VO + ComplaintCollectionDetailVo vo = new ComplaintCollectionDetailVo(); + BeanUtil.copyProperties(complaintCollection, vo); + // 转换 involveProblem 为列表 + vo.setInvolveProblemIdList(StrUtil.isBlank(complaintCollection.getInvolveProblem()) + ? new ArrayList<>() : Arrays.asList(complaintCollection.getInvolveProblem().split("[,,]"))); + // 转换 tag 为列表 + vo.setTags(StrUtil.isBlank(complaintCollection.getTag()) + ? new ArrayList<>() : Arrays.asList(complaintCollection.getTag().split("[,,]"))); + return Result.success(vo); + } + private List buildComplaintCollectionExcelDTO(List complaintCollectionPageDTOS) { List res = new ArrayList<>(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");