From 6b6295b328c7a40a5944d1e915bbd4b0fc5c7875 Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Wed, 1 Apr 2026 10:53:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=8A=95=E8=AF=89=E4=B8=BE=E6=8A=A5?= =?UTF-8?q?=E6=8E=A5=E5=85=A5=E9=97=AE=E9=A2=98=E4=B8=8B=E5=8F=91=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=90=8E=E5=88=9D=E6=A0=B8=E6=8E=A5=E5=8F=A3=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/ComplaintCollectionController.java | 10 ++ .../pojo/entity/ComplaintCollection.java | 13 +++ .../ComplaintCollectionUpdateParam.java | 9 ++ ...mplaintCollectionInitialReviewRequest.java | 36 ++++++ .../transfer/ComplaintCollectionTransfer.java | 7 +- .../ComplaintCollectionResourceService.java | 3 + .../ComplaintCollectionService.java | 7 ++ .../ComplaintCollectionServiceImpl.java | 26 +++++ .../biutag/supervision/util/CheckUtil.java | 104 ++++++++++++++++++ 9 files changed, 211 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionInitialReviewRequest.java create mode 100644 src/main/java/com/biutag/supervision/util/CheckUtil.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 cb308d2..b460642 100644 --- a/src/main/java/com/biutag/supervision/controller/data/ComplaintCollectionController.java +++ b/src/main/java/com/biutag/supervision/controller/data/ComplaintCollectionController.java @@ -69,6 +69,7 @@ public class ComplaintCollectionController { return complaintCollectionService.getComplaintCollectionPage(request); } + @Deprecated @Operation(description = "办理") @PostMapping("/addComplaintCollectionBlame") public Result addComplaintCollectionBlame(@RequestBody ComplaintCollectionAndBlameAddRequest request){ @@ -101,6 +102,7 @@ public class ComplaintCollectionController { complaintCollectionService.exportData(request, response); } + @Deprecated @Operation(description = "办理页面临时保存") @PostMapping("/saveInvolveJson") public Result saveInvolveJson(@RequestBody ComplaintCollectionSaveInvolveJsonRequest request){ @@ -113,4 +115,12 @@ public class ComplaintCollectionController { return complaintCollectionService.forceTermination(request); } + + @Operation(description = "初核反馈") + @PostMapping("/initialReview") + public Result initialReview(@RequestBody ComplaintCollectionInitialReviewRequest request){ + return complaintCollectionService.initialReview(request); + } + + } diff --git a/src/main/java/com/biutag/supervision/pojo/entity/ComplaintCollection.java b/src/main/java/com/biutag/supervision/pojo/entity/ComplaintCollection.java index 4fe5d75..c19a180 100644 --- a/src/main/java/com/biutag/supervision/pojo/entity/ComplaintCollection.java +++ b/src/main/java/com/biutag/supervision/pojo/entity/ComplaintCollection.java @@ -372,5 +372,18 @@ public class ComplaintCollection { @TableField("status") private String status; + @Schema(description = "初核工作开展情况") + @TableField("init_work_des") + private String initWorkDes; + + @Schema(description = "初核发现的问题及下步工作计划") + @TableField("init_problem_plan") + private String initProblemPlan; + + @Schema(description = "初核结论") + @TableField("init_verdict") + private String initVerdict; + + } 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 index 2e5837f..95339a7 100644 --- a/src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionUpdateParam.java +++ b/src/main/java/com/biutag/supervision/pojo/param/ComplaintCollection/ComplaintCollectionUpdateParam.java @@ -151,4 +151,13 @@ public class ComplaintCollectionUpdateParam { @Schema(description = "初核状态, gwf3承接") private String gwf3; + @Schema(description = "初核工作开展情况") + private String initWorkDes; + + @Schema(description = "初核发现的问题及下步工作计划") + private String initProblemPlan; + + @Schema(description = "初核结论") + private String initVerdict; + } diff --git a/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionInitialReviewRequest.java b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionInitialReviewRequest.java new file mode 100644 index 0000000..75109b0 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionInitialReviewRequest.java @@ -0,0 +1,36 @@ +package com.biutag.supervision.pojo.request.complaintCollection; + + +import com.biutag.supervision.aop.ParamChecked; +import com.biutag.supervision.util.CheckUtil; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +@Schema(description = "初核请求") +public class ComplaintCollectionInitialReviewRequest implements ParamChecked { + + @Schema(description = "涉访涉诉编号id") + private String complaintId; + + @Schema(description = "初核工作开展情况") + private String initWorkDes; + + @Schema(description = "初核发现的问题及下步工作计划") + private String initProblemPlan; + + @Schema(description = "初核结论") + private String initVerdict; + + + + @Override + public void check() { + CheckUtil.checkNotBlank(complaintId, "涉访涉诉id不能为空"); + CheckUtil.checkNotBlank(initWorkDes, "初核工作开展情况不能为空"); + CheckUtil.checkNotBlank(initProblemPlan, "初核发现的问题及下步工作计划不能为空"); + CheckUtil.checkNotBlank(initVerdict, "初核结论不能为空"); + } +} diff --git a/src/main/java/com/biutag/supervision/pojo/transfer/ComplaintCollectionTransfer.java b/src/main/java/com/biutag/supervision/pojo/transfer/ComplaintCollectionTransfer.java index e094ba3..21a316a 100644 --- a/src/main/java/com/biutag/supervision/pojo/transfer/ComplaintCollectionTransfer.java +++ b/src/main/java/com/biutag/supervision/pojo/transfer/ComplaintCollectionTransfer.java @@ -9,10 +9,7 @@ import com.biutag.supervision.pojo.entity.ComplaintCollectionCheckFile; import com.biutag.supervision.pojo.entity.ComplaintCollectionFile; 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.ComplaintCollectionSaveInvolveJsonRequest; -import com.biutag.supervision.pojo.request.complaintCollection.ComplaintCollectionUpdateRequest; +import com.biutag.supervision.pojo.request.complaintCollection.*; import com.biutag.supervision.pojo.vo.FileVo; import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionPageVo; import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionWatchDetailVO; @@ -67,6 +64,8 @@ public interface ComplaintCollectionTransfer { List complaintCollectionCheckFileToFileVo(List complaintCollectionCheckFiles); + ComplaintCollectionUpdateParam InitialReviewToUpdateParam(ComplaintCollectionInitialReviewRequest request); + // List complaintCollectionBlamesToBlames(List pseronalList); 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 b6338cf..77cf32f 100644 --- a/src/main/java/com/biutag/supervision/repository/complaintCollection/ComplaintCollectionResourceService.java +++ b/src/main/java/com/biutag/supervision/repository/complaintCollection/ComplaintCollectionResourceService.java @@ -232,6 +232,9 @@ public class ComplaintCollectionResourceService extends BaseDAO { } uw.set(ComplaintCollection::getUpdateBy, UserContextHolder.getCurrentUser().getUserName()); uw.set(ComplaintCollection::getUpdateTime, LocalDateTime.now()); + uw.set(StrUtil.isNotBlank(param.getInitWorkDes()), ComplaintCollection::getInitWorkDes, param.getInitWorkDes()); + uw.set(StrUtil.isNotBlank(param.getInitProblemPlan()), ComplaintCollection::getInitProblemPlan, param.getInitProblemPlan()); + uw.set(StrUtil.isNotBlank(param.getInitVerdict()), ComplaintCollection::getInitVerdict, param.getInitVerdict()); if (uw.getExpression() == null || uw.getExpression().getSqlSegment().isEmpty()) { throw new IllegalStateException("更新条件不能为空,防止全表更新"); } 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 f91718e..057b05b 100644 --- a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionService.java +++ b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionService.java @@ -96,4 +96,11 @@ public interface ComplaintCollectionService { * @return */ Result forceTermination(ComplaintCollectionForceTerminationRequest request); + + /** + * 初核反馈 + * @param request + * @return + */ + Result initialReview(ComplaintCollectionInitialReviewRequest 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 e6e1e2f..a644937 100644 --- a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java +++ b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java @@ -54,6 +54,7 @@ import com.biutag.supervision.repository.complaintCollectionFile.ComplaintCollec import com.biutag.supervision.repository.dataCaseVerif.DataCaseVerifResourceService; import com.biutag.supervision.repository.dataPetitionComplaint.DataPetitionComplaintResourceService; import com.biutag.supervision.repository.mail.MailResourceService; +import com.biutag.supervision.repository.negative.NegativeResourceService; import com.biutag.supervision.repository.supPolice.SupPoliceResourceService; import com.biutag.supervision.repository.supdepart.SupDepartResourceService; import com.biutag.supervision.service.*; @@ -96,6 +97,7 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic private final ComplaintCollectionBlameResourceService complaintCollectionBlameResourceService; private final SupDictDataService dictDataService; private final NegativeService negativeService; + private final NegativeResourceService negativeResourceService; private final NegativeThingFileService thingFileService; private final SupDepartService departService; private final SupDepartResourceService supDepartResourceService; @@ -856,6 +858,30 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic return res; } + + @Override + public Result initialReview(ComplaintCollectionInitialReviewRequest request) { + ComplaintCollectionUpdateParam updateParam = ComplaintCollectionTransfer.INSTANCE.InitialReviewToUpdateParam(request); + // 找到信件 + ComplaintCollectionQueryParam complaintCollectionQueryParam = new ComplaintCollectionQueryParam(); + complaintCollectionQueryParam.setId(request.getComplaintId()); + List complaintCollectionList = complaintCollectionResourceService.query(complaintCollectionQueryParam); + if (CollectionUtil.isEmpty(complaintCollectionList)) { + throw new IllegalArgumentException(String.format("未找到对应投诉举报数据,编号%s",request.getComplaintId())); + } + // 初核计算 + ComplaintCollection complaintCollection = complaintCollectionList.get(0); + long maxSeconds = CHECK_LIMIT_DAYS * TimeUtil.SECONDS_OF_A_DAY; + long remainingAtInitial = TimeUtil.getRemainingDuration(complaintCollection.getCreateTime(), LocalDateTime.now(), maxSeconds); + String initialReviewStatus = (remainingAtInitial < 0) ? + ComplaintCollectionInitialEnum.TIMEOUT_UPLOAD.getCode() : ComplaintCollectionInitialEnum.UPLOADED.getCode(); + updateParam.setId(request.getComplaintId()); + updateParam.setGwf2(LocalDateTime.now().format(INITIAL_REVIEW_FMT)); + updateParam.setGwf3(initialReviewStatus); + complaintCollectionResourceService.updateSelectiveById(updateParam); + return Result.success(Boolean.TRUE); + } + private List buildComplaintCollectionExcelDTO(List complaintCollectionPageDTOS) { List res = new ArrayList<>(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); diff --git a/src/main/java/com/biutag/supervision/util/CheckUtil.java b/src/main/java/com/biutag/supervision/util/CheckUtil.java new file mode 100644 index 0000000..ee95f43 --- /dev/null +++ b/src/main/java/com/biutag/supervision/util/CheckUtil.java @@ -0,0 +1,104 @@ +package com.biutag.supervision.util; + +import cn.hutool.core.util.StrUtil; + +/** + * 参数校验工具类 + * 用于统一校验请求参数中的字符串,校验失败抛出 IllegalArgumentException + */ +public class CheckUtil { + + /** + * 校验字符串不能为 null 或纯空白字符 + * + * @param str 待校验字符串 + * @param message 异常信息 + * @throws IllegalArgumentException 如果字符串为 null 或空白 + */ + public static void checkNotBlank(String str, String message) { + if (StrUtil.isBlank(str)) { + throw new IllegalArgumentException(message); + } + } + + /** + * 校验字符串不能为 null(允许空字符串) + * + * @param str 待校验字符串 + * @param message 异常信息 + * @throws IllegalArgumentException 如果字符串为 null + */ + public static void checkNotNull(String str, String message) { + if (str == null) { + throw new IllegalArgumentException(message); + } + } + + /** + * 校验字符串长度不能超过指定最大值 + * + * @param str 待校验字符串 + * @param max 最大长度 + * @param message 异常信息 + * @throws IllegalArgumentException 如果字符串长度超过 max + */ + public static void checkMaxLength(String str, int max, String message) { + if (str != null && str.length() > max) { + throw new IllegalArgumentException(message); + } + } + + /** + * 校验字符串长度不能小于指定最小值 + * + * @param str 待校验字符串 + * @param min 最小长度 + * @param message 异常信息 + * @throws IllegalArgumentException 如果字符串长度小于 min + */ + public static void checkMinLength(String str, int min, String message) { + if (str != null && str.length() < min) { + throw new IllegalArgumentException(message); + } + } + + /** + * 校验字符串长度必须在指定范围内 + * + * @param str 待校验字符串 + * @param min 最小长度(包含) + * @param max 最大长度(包含) + * @param message 异常信息 + * @throws IllegalArgumentException 如果字符串长度不在 [min, max] 范围内 + */ + public static void checkLengthRange(String str, int min, int max, String message) { + if (str != null && (str.length() < min || str.length() > max)) { + throw new IllegalArgumentException(message); + } + } + + + /** + * 校验多个字符串是否全部为 null 或纯空白字符(即全部为空) + * 如果全部为空,则抛出 IllegalArgumentException + * + * @param message 异常信息 + * @param strings 待校验的字符串数组 + * @throws IllegalArgumentException 如果所有字符串均为 null 或空白 + */ + public static void checkNotAllBlank(String message, String... strings) { + if (strings == null || strings.length == 0) { + throw new IllegalArgumentException(message); + } + boolean allBlank = true; + for (String str : strings) { + if (StrUtil.isNotBlank(str)) { + allBlank = false; + break; + } + } + if (allBlank) { + throw new IllegalArgumentException(message); + } + } +} \ No newline at end of file