From 6fed4ce5635454d3e0de8420e0b5e5f259191728 Mon Sep 17 00:00:00 2001 From: wxc <191104855@qq.com> Date: Tue, 22 Oct 2024 18:52:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=A1=E8=AE=BF=E6=8A=95=E8=AF=89?= =?UTF-8?q?=E3=80=81=E6=A1=88=E4=BB=B6=E6=A0=B8=E6=9F=A5=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E4=BC=98=E5=8C=96=20fit:=20=E7=81=B5?= =?UTF-8?q?=E6=95=8F=E6=84=9F=E8=A7=89-=E9=92=88=E5=AF=B9=E6=9C=AA?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E5=88=B0=E5=8D=95=E4=BD=8D=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=EF=BC=8C=E6=8F=90=E4=BE=9B=E6=89=8B=E5=8A=A8=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=B6=89=E5=8F=8A=E5=8D=95=E4=BD=8D=E7=9A=84=E6=93=8D?= =?UTF-8?q?=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/GlobalExceptionHandler.java | 2 +- .../constants/enums/InitialPetition.java | 23 ++++++++++++++++++ .../data/DataPetitionComplaintController.java | 2 +- .../ModelClueController.java | 11 +++++++++ .../supervision/mapper/ModelClueMapper.java | 1 - .../pojo/dto/DataPetitionComplaintDto.java | 2 +- .../dto/DataPetitionComplaintImportDto.java | 13 ++++++---- .../pojo/dto/ModelClueDepartDto.java | 16 ++++++++++++ .../supervision/pojo/dto/NegativeDto.java | 20 +++++++-------- .../pojo/model/ModelClueModel.java | 3 ++- src/main/resources/mapper/ModelClueMapper.xml | 16 ++++++++++++ .../信访投诉数据台账(模板).xlsx | Bin 10566 -> 10632 bytes 12 files changed, 89 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/biutag/supervision/constants/enums/InitialPetition.java create mode 100644 src/main/java/com/biutag/supervision/pojo/dto/ModelClueDepartDto.java create mode 100644 src/main/resources/mapper/ModelClueMapper.xml diff --git a/src/main/java/com/biutag/supervision/config/GlobalExceptionHandler.java b/src/main/java/com/biutag/supervision/config/GlobalExceptionHandler.java index 80a63e5..d83bb84 100644 --- a/src/main/java/com/biutag/supervision/config/GlobalExceptionHandler.java +++ b/src/main/java/com/biutag/supervision/config/GlobalExceptionHandler.java @@ -46,7 +46,7 @@ public class GlobalExceptionHandler { @ExceptionHandler(MethodArgumentNotValidException.class) @ResponseBody public Result handleMethodArgumentNotValidException(MethodArgumentNotValidException e) { - String message = e.getBindingResult().getFieldErrors().stream().map(item -> item.getField() + " : " + item.getDefaultMessage()).collect(Collectors.joining("; ")); + String message = e.getBindingResult().getFieldErrors().stream().map(item -> "不能为空".equals(item.getDefaultMessage()) ? item.getField() + "-" + item.getDefaultMessage() : item.getDefaultMessage()).collect(Collectors.joining("; ")); log.error("参数错误: {}", message, e); return Result.failed(HttpStatus.BAD_REQUEST.value(), String.format("参数错误:%s", message)); } diff --git a/src/main/java/com/biutag/supervision/constants/enums/InitialPetition.java b/src/main/java/com/biutag/supervision/constants/enums/InitialPetition.java new file mode 100644 index 0000000..e958976 --- /dev/null +++ b/src/main/java/com/biutag/supervision/constants/enums/InitialPetition.java @@ -0,0 +1,23 @@ +package com.biutag.supervision.constants.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * + * @author wxc + * @date 2024/10/22 + */ +@Getter +@AllArgsConstructor +public enum InitialPetition { + + THE_FIRST("1", "初访"), + + REPEAT("2", "重访"); + + private String value; + + public String label; + +} \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaintController.java b/src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaintController.java index db27e95..10e1848 100644 --- a/src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaintController.java +++ b/src/main/java/com/biutag/supervision/controller/data/DataPetitionComplaintController.java @@ -49,11 +49,11 @@ public class DataPetitionComplaintController { } List list = new ArrayList<>(); ExcelReader excelReader = EasyExcel.read(file.getInputStream(), DataPetitionComplaintImportDto.class, new ReadListener() { + @Override public void invoke(DataPetitionComplaintImportDto data, AnalysisContext analysisContext) { list.add(data); } - @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { diff --git a/src/main/java/com/biutag/supervision/controller/sensitivePerception/ModelClueController.java b/src/main/java/com/biutag/supervision/controller/sensitivePerception/ModelClueController.java index 642e378..70c2e13 100644 --- a/src/main/java/com/biutag/supervision/controller/sensitivePerception/ModelClueController.java +++ b/src/main/java/com/biutag/supervision/controller/sensitivePerception/ModelClueController.java @@ -1,7 +1,10 @@ package com.biutag.supervision.controller.sensitivePerception; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.biutag.supervision.pojo.Result; +import com.biutag.supervision.pojo.dto.ModelClueDepartDto; import com.biutag.supervision.pojo.dto.ModelClueTaskDistribute; import com.biutag.supervision.pojo.entity.ModelClue; import com.biutag.supervision.pojo.model.ModelClueModel; @@ -45,4 +48,12 @@ public class ModelClueController { return Result.success(modelClueService.distribution(taskDistribute)); } + @PostMapping("{id}/updateDepart") + public Result updateDepart(@PathVariable Integer id, @RequestBody ModelClueDepartDto departDto) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper() + .eq(ModelClue::getId, id) + .set(ModelClue::getInvolveDepartId, departDto.getDepartId()); + return Result.success(modelClueService.update(updateWrapper)); + } + } diff --git a/src/main/java/com/biutag/supervision/mapper/ModelClueMapper.java b/src/main/java/com/biutag/supervision/mapper/ModelClueMapper.java index 8d21267..1572155 100644 --- a/src/main/java/com/biutag/supervision/mapper/ModelClueMapper.java +++ b/src/main/java/com/biutag/supervision/mapper/ModelClueMapper.java @@ -11,7 +11,6 @@ import org.apache.ibatis.annotations.Select; public interface ModelClueMapper extends BaseMapper { - @Select("select *, m.model_name from model_clue mc left join model m on mc.model_id = m.id ${ew.getCustomSqlSegment}") Page queryPage(@Param("page") Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); } \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintDto.java b/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintDto.java index cf532a7..00f23e6 100644 --- a/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintDto.java +++ b/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintDto.java @@ -45,7 +45,6 @@ public class DataPetitionComplaintDto { private String responderPhone; // 初重信访 - @Schema(description = "初重信访") @NotBlank private String initialPetition; @@ -91,4 +90,5 @@ public class DataPetitionComplaintDto { @Schema(description = "办结状态") private String completedState; + } \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintImportDto.java b/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintImportDto.java index dae55ff..e2aaf2b 100644 --- a/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintImportDto.java +++ b/src/main/java/com/biutag/supervision/pojo/dto/DataPetitionComplaintImportDto.java @@ -13,14 +13,14 @@ import java.time.LocalDateTime; @Getter public class DataPetitionComplaintImportDto { - // 信件编号 - @ExcelProperty({"信访基本信息", "信件编号"}) - private String originId; - // 投诉渠道 @ExcelProperty({"信访基本信息", "投诉渠道"}) private String channelForFilingComplaints; + // 信件编号 + @ExcelProperty({"信访基本信息", "信件编号"}) + private String originId; + // 受理层级 @ExcelProperty({"信访基本信息", "受理层级"}) private String acceptanceLevel; @@ -52,7 +52,10 @@ public class DataPetitionComplaintImportDto { // 被投诉机构 @ExcelProperty({"信访基本信息", "被投诉机构"}) - private String complainedDepartName; + private String complainedSecondDepartName; + + @ExcelProperty({"信访基本信息", "被投诉机构"}) + private String complainedThirdDepartName; // 具体内容 @ExcelProperty({"信访基本信息", "具体内容"}) diff --git a/src/main/java/com/biutag/supervision/pojo/dto/ModelClueDepartDto.java b/src/main/java/com/biutag/supervision/pojo/dto/ModelClueDepartDto.java new file mode 100644 index 0000000..774541b --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/dto/ModelClueDepartDto.java @@ -0,0 +1,16 @@ +package com.biutag.supervision.pojo.dto; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author wxc + * @date 2024/10/22 + */ +@Setter +@Getter +public class ModelClueDepartDto { + + private String departId; + +} diff --git a/src/main/java/com/biutag/supervision/pojo/dto/NegativeDto.java b/src/main/java/com/biutag/supervision/pojo/dto/NegativeDto.java index 0a46704..a79f4a7 100644 --- a/src/main/java/com/biutag/supervision/pojo/dto/NegativeDto.java +++ b/src/main/java/com/biutag/supervision/pojo/dto/NegativeDto.java @@ -27,19 +27,19 @@ public class NegativeDto { private LocalDateTime discoveryTime; // 问题来源 - @NotBlank + @NotBlank(message = "问题来源不能为空") private String problemSourcesCode; // 问题来源 - @NotBlank + @NotBlank(message = "问题来源不能为空") private String problemSources; // 业务类别 - @NotBlank + @NotBlank(message = "业务类别不能为空") private String businessTypeCode; // 业务类别名称 - @NotBlank + @NotBlank(message = "业务类别不能为空") private String businessTypeName; private String policeTypeName; @@ -57,7 +57,7 @@ public class NegativeDto { private String contactPhone; // 简要描述 - @NotBlank + @NotBlank(message = "简要描述不能为空") private String thingDesc; private List thingFiles = new ArrayList<>(); @@ -67,21 +67,21 @@ public class NegativeDto { // 涉及单位 private String involveDepartId; - @NotBlank + @NotBlank(message = "主办层级不能为空") private String hostLevel; // 办理时限 - @NotBlank + @NotBlank(message = "办理时限不能为空") private String timeLimit; // 审批流程 - @NotBlank + @NotBlank(message = "审批流程不能为空") private String approvalFlow; - @NotBlank + @NotBlank(message = "指定具体办理单位不能为空") private String departId; - @NotBlank + @NotBlank(message = "指定具体办理单位不能为空") private String departName; // 最大签收时长(天) diff --git a/src/main/java/com/biutag/supervision/pojo/model/ModelClueModel.java b/src/main/java/com/biutag/supervision/pojo/model/ModelClueModel.java index a5fcbc0..4877610 100644 --- a/src/main/java/com/biutag/supervision/pojo/model/ModelClueModel.java +++ b/src/main/java/com/biutag/supervision/pojo/model/ModelClueModel.java @@ -25,6 +25,8 @@ public class ModelClueModel { // 涉及单位 private String involveDepartName; + private String involveParentDepartName; + // 涉及人员 private String involvePoliceName; @@ -43,5 +45,4 @@ public class ModelClueModel { private String data; - } diff --git a/src/main/resources/mapper/ModelClueMapper.xml b/src/main/resources/mapper/ModelClueMapper.xml new file mode 100644 index 0000000..b1fa0fd --- /dev/null +++ b/src/main/resources/mapper/ModelClueMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/templates/信访投诉数据台账(模板).xlsx b/src/main/resources/static/templates/信访投诉数据台账(模板).xlsx index 56261ee5a1d3e638530c783262626af7490f97d7..a92c6876c69ad11854143ad05bc5bfb3ebb8cddf 100644 GIT binary patch delta 3960 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