Compare commits

..

No commits in common. '4ca7bbcad39efb5fd0895ff8c013f07c7fdec9ab' and '1ef24ae7fb4dbe6ad76538da5e5c8d63da3da3cd' have entirely different histories.

  1. 2
      src/main/java/com/biutag/supervision/config/MybatisPlusConfig.java
  2. 26
      src/main/java/com/biutag/supervision/flow/action/FirstDistributeAction.java
  3. 7
      src/main/java/com/biutag/supervision/pojo/dto/flow/FirstDistributeData.java
  4. 9
      src/main/java/com/biutag/supervision/pojo/entity/ComplaintCollection.java
  5. 55
      src/main/java/com/biutag/supervision/pojo/enums/complaintCollection/ComplaintCollectionProcessingStatusEnum.java
  6. 23
      src/main/java/com/biutag/supervision/pojo/enums/complaintCollection/ComplaintCollectionSourceTableEnum.java
  7. 54
      src/main/java/com/biutag/supervision/pojo/enums/complaintCollection/ComplaintCollectionSourceTableSubOneEnum.java
  8. 4
      src/main/java/com/biutag/supervision/pojo/enums/complaintCollection/ComplaintCollectionSuspectedIssueEnum.java
  9. 27
      src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java

2
src/main/java/com/biutag/supervision/config/MybatisPlusConfig.java

@ -15,9 +15,9 @@ public class MybatisPlusConfig {
@Bean @Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() { public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 如果配置多个插件, 切记分页最后添加 interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 如果配置多个插件, 切记分页最后添加
// 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbType // 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbType
interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
return interceptor; return interceptor;
} }

26
src/main/java/com/biutag/supervision/flow/action/FirstDistributeAction.java

@ -13,7 +13,7 @@ import com.biutag.supervision.pojo.entity.SupDepart;
import com.biutag.supervision.service.NegativeService; import com.biutag.supervision.service.NegativeService;
import com.biutag.supervision.service.NegativeWorkService; import com.biutag.supervision.service.NegativeWorkService;
import com.biutag.supervision.service.SupDepartService; import com.biutag.supervision.service.SupDepartService;
import jakarta.validation.ValidationException; import jakarta.validation.Validator;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -50,11 +50,6 @@ public class FirstDistributeAction implements Action {
} }
public void updateNegative(String negativeId, String nextFlowKey, @Validated FirstDistributeData distributeData, boolean thirdHandling) { public void updateNegative(String negativeId, String nextFlowKey, @Validated FirstDistributeData distributeData, boolean thirdHandling) {
// 防御
if (StrUtil.isBlank(negativeId)) {
throw new ValidationException("negativeId不能为空");
}
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
LambdaUpdateWrapper<Negative> updateWrapper = new LambdaUpdateWrapper<Negative>() LambdaUpdateWrapper<Negative> updateWrapper = new LambdaUpdateWrapper<Negative>()
.set(Negative::getHostLevel, distributeData.getHostLevel()) .set(Negative::getHostLevel, distributeData.getHostLevel())
@ -66,26 +61,7 @@ public class FirstDistributeAction implements Action {
.set(Negative::getUpdTime, now) .set(Negative::getUpdTime, now)
// 市局下发意见 // 市局下发意见
.set(Negative::getFirstDistributeComments, distributeData.getFirstDistributeComments()) .set(Negative::getFirstDistributeComments, distributeData.getFirstDistributeComments())
.set(Negative::getInvolveDepartId, distributeData.getInvolveDepartId())
.set(Negative::getInvolveDepartName, distributeData.getInvolveDepartName())
.eq(Negative::getId, negativeId); .eq(Negative::getId, negativeId);
// 涉及单位重新更新
String involveDepartId = distributeData.getInvolveDepartId();
if (StrUtil.isBlank(involveDepartId)) {
throw new ValidationException("涉及单位不能为空");
}
SupDepart depart = departService.getById(involveDepartId);
if (depart == null) {
throw new ValidationException("涉及单位不存在");
}
if (DepartLevelEnum.SECOND.getValue().equals(depart.getLevel())) {
updateWrapper.set(Negative::getSecondInvolveDepartId, depart.getId());
} else if (DepartLevelEnum.THREE.getValue().equals(depart.getLevel())) {
updateWrapper.set(Negative::getThreeInvolveDepartId, depart.getId());
updateWrapper.set(Negative::getSecondInvolveDepartId, depart.getPid());
} else {
throw new RuntimeException("涉及单位请选择二级或三级单位");
}
if (TimeLimitEnum.OTHER.getValue().equals(distributeData.getTimeLimit())) { if (TimeLimitEnum.OTHER.getValue().equals(distributeData.getTimeLimit())) {
updateWrapper.set(Negative::getMaxSignDuration, distributeData.getMaxSignDuration()) updateWrapper.set(Negative::getMaxSignDuration, distributeData.getMaxSignDuration())
.set(Negative::getMaxHandleDuration, distributeData.getMaxHandleDuration()) .set(Negative::getMaxHandleDuration, distributeData.getMaxHandleDuration())

7
src/main/java/com/biutag/supervision/pojo/dto/flow/FirstDistributeData.java

@ -1,6 +1,5 @@
package com.biutag.supervision.pojo.dto.flow; package com.biutag.supervision.pojo.dto.flow;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -37,10 +36,4 @@ public class FirstDistributeData {
// 市局下发意见 // 市局下发意见
private String firstDistributeComments; private String firstDistributeComments;
@Schema(description = "涉及单位名称")
private String involveDepartName;
@Schema(description = "涉及单位id")
private String involveDepartId;
} }

9
src/main/java/com/biutag/supervision/pojo/entity/ComplaintCollection.java

@ -2,7 +2,7 @@ package com.biutag.supervision.pojo.entity;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionHandleMethodEnum; import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionHandleMethodEnum;
import com.biutag.supervision.pojo.enums.complaintCollection.*; import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionSourceTableEnum;
import com.biutag.supervision.pojo.enums.complaintCollection.YesOrNoEnum; import com.biutag.supervision.pojo.enums.complaintCollection.YesOrNoEnum;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter; import lombok.Getter;
@ -38,9 +38,6 @@ public class ComplaintCollection {
private String sourceTable; private String sourceTable;
/**
* @see ComplaintCollectionSourceTableSubOneEnum
*/
@Schema(description = "来源类型子类一") @Schema(description = "来源类型子类一")
@TableField("source_table_sub_one") @TableField("source_table_sub_one")
private String sourceTableSubOne; private String sourceTableSubOne;
@ -267,10 +264,6 @@ public class ComplaintCollection {
private String checkStatusDesc; private String checkStatusDesc;
/**
* @see com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionProcessingStatusEnum
*
*/
@Schema(description = "办理状态(MAILBOX.processingStatus)") @Schema(description = "办理状态(MAILBOX.processingStatus)")
@TableField("processing_status") @TableField("processing_status")
private String processingStatus; private String processingStatus;

55
src/main/java/com/biutag/supervision/pojo/enums/complaintCollection/ComplaintCollectionProcessingStatusEnum.java

@ -1,55 +0,0 @@
package com.biutag.supervision.pojo.enums.complaintCollection;
import com.biutag.supervision.constants.enums.CodeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
/**
* @ClassName ComplaintCollectionProcessingStatusEnum
* @Description 涉访涉诉局长信箱状态
* @Author shihao
* @Date 2026/1/30 18:03
*/
@Schema(description = "涉访涉诉局长信箱状态")
@Getter
public enum ComplaintCollectionProcessingStatusEnum implements CodeEnum {
COMPLETION("completion","已办结"),
TERMINATED("terminated","已终止"),
PROCESSING("processing","办理中"),
DELAYED("delayed", "已延期");
private final String code;
private final String desc;
ComplaintCollectionProcessingStatusEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
@Override
public String getCode() {
return code;
}
@Override
public String getDesc() {
return desc;
}
// 涉访涉诉中局长信箱可办结的状态
public static final Set<String> ALLOWED_COMPLETE_STATUS = new HashSet<>(
Arrays.asList(COMPLETION.code, TERMINATED.code)
);
}

23
src/main/java/com/biutag/supervision/pojo/enums/complaintCollection/ComplaintCollectionSourceTableEnum.java

@ -1,27 +1,20 @@
package com.biutag.supervision.pojo.enums.complaintCollection; package com.biutag.supervision.pojo.enums.complaintCollection;
import com.biutag.supervision.constants.enums.CodeEnum; import com.biutag.supervision.constants.enums.CodeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
/**
@Schema(description = "涉访涉诉来源表枚举类") * 涉访涉诉来源表枚举类
*/
public enum ComplaintCollectionSourceTableEnum implements CodeEnum { public enum ComplaintCollectionSourceTableEnum implements CodeEnum {
// ===== 局长信箱体系 ===== DATA_PETITION_COMPLAINT_21("data_petition_complaint_21", "国家信访平台"),
MAYOR_MAILBOX("23", "局长信箱"), DATA_PETITION_COMPLAINT_22("data_petition_complaint_22", "公安部信访"),
// ===== 信访体系 =====
NATIONAL_PETITION("21", "国家信访"),
MINISTRY_PETITION("22", "公安部信访"),
// ===== 投诉体系 =====
COMPLAINT_12389("17", "12389投诉"),
DATA_CASE_VERIF("data_case_verif", "案件核查表"),
DATA_MAILBOX("data_mailbox", "局长信箱表"),
// ===== 领导交办 ===== ;
LEADER_ASSIGN("leader_explain", "领导交办");
private final String code; private final String code;

54
src/main/java/com/biutag/supervision/pojo/enums/complaintCollection/ComplaintCollectionSourceTableSubOneEnum.java

@ -1,54 +0,0 @@
package com.biutag.supervision.pojo.enums.complaintCollection;
import com.biutag.supervision.constants.enums.CodeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
@Schema(description = "涉访涉诉来源表子类枚举类")
public enum ComplaintCollectionSourceTableSubOneEnum implements CodeEnum {
// ===== 局长信箱体系 =====
MAYOR_MAILBOX_JZ("23_jz", "局长信箱"),
MAYOR_MAILBOX_TZ("23_tz", "厅长信箱"),
MAILBOX_REPORT("23_jb", "110举报投诉"),
// ===== 信访体系 =====
NATIONAL_PETITION_1("21_1", "国家信访件"),
PROVINCE_PETITION("21_2", "省信访件"),
CITY_PETITION("21_3", "市信访件"),
MINISTRY_PETITION_1("22_1", "公安部信访件"),
PROVINCE_PETITION_2("22_2", "省厅信访件"),
CITY_PETITION_2("22_3", "市局信访件"),
// ===== 投诉体系 =====
MINISTRY_CASE("17_1", "公安部件"),
PROVINCE_CASE("17_2", "省厅件"),
CITY_CASE("17_3", "市局件"),
// ===== 领导交办 =====
CITY_LEADER_ASSIGN("18", "市局领导交办"),
BRIGADE_LEADER_ASSIGN("19", "支队领导交办"),
SUPERIOR_LEADER_ASSIGN("20", "上级领导交办");
private final String code;
private final String desc;
ComplaintCollectionSourceTableSubOneEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
@Override
public String getCode() {
return code;
}
@Override
public String getDesc() {
return desc;
}
}

4
src/main/java/com/biutag/supervision/pojo/enums/complaintCollection/ComplaintCollectionSuspectedIssueEnum.java

@ -0,0 +1,4 @@
package com.biutag.supervision.pojo.enums.complaintCollection;
public enum ComplaintCollectionSuspectedIssueEnum {
}

27
src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java

@ -65,7 +65,6 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.biutag.supervision.pojo.enums.complaintCollection.*;
import java.io.IOException; import java.io.IOException;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
@ -254,18 +253,6 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result<Boolean> addComplaintCollectionBlame(ComplaintCollectionAndBlameAddRequest request) { public Result<Boolean> addComplaintCollectionBlame(ComplaintCollectionAndBlameAddRequest request) {
// 局长信箱办结的时候做限制
ComplaintCollectionQueryParam complaintCollectionQueryParam = new ComplaintCollectionQueryParam();
complaintCollectionQueryParam.setId(request.getComplaintId());
ComplaintCollection complaint = complaintCollectionResourceService
.query(complaintCollectionQueryParam)
.stream()
.findFirst()
.orElseThrow(() -> new ValidationException("未找到对应的投诉数据"));
if ("23".equals(complaint.getSourceTable()) &&
!ComplaintCollectionProcessingStatusEnum.ALLOWED_COMPLETE_STATUS.contains(complaint.getProcessingStatus())) {
throw new ValidationException("局长信箱只能操作已办结和已终止类型状态");
}
String userName = UserContextHolder.getCurrentUser().getUserName(); String userName = UserContextHolder.getCurrentUser().getUserName();
String checkStatus = SfssUtil.getCheckStatusCategory(request.getCheckStatusCode()); String checkStatus = SfssUtil.getCheckStatusCategory(request.getCheckStatusCode());
// 更新表头基本信息 // 更新表头基本信息
@ -305,17 +292,6 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic
collectionUpdateParam.setPublicRecognition(request.getPublicRecognition()); collectionUpdateParam.setPublicRecognition(request.getPublicRecognition());
// 更新归集表状态 // 更新归集表状态
collectionUpdateParam.setStatus("1"); collectionUpdateParam.setStatus("1");
// 更新初核
if (complaint.getGwf2() == null ) {
LocalDateTime discoveryTime = complaint.getDiscoveryTime();
long maxSeconds = CHECK_LIMIT_DAYS * TimeUtil.SECONDS_OF_A_DAY;
long remainingAtInitial = TimeUtil.getRemainingDuration(discoveryTime, LocalDateTime.now(), maxSeconds);
String initialReviewStatus = (remainingAtInitial < 0) ?
ComplaintCollectionInitialEnum.TIMEOUT_UPLOAD.getCode() : ComplaintCollectionInitialEnum.UPLOADED.getCode();
collectionUpdateParam.setId(request.getComplaintId());
collectionUpdateParam.setGwf2(LocalDateTime.now().format(INITIAL_REVIEW_FMT));
collectionUpdateParam.setGwf3(initialReviewStatus);
}
complaintCollectionResourceService.updateSelectiveById(collectionUpdateParam); complaintCollectionResourceService.updateSelectiveById(collectionUpdateParam);
// 是否属实 // 是否属实
boolean itTure = InspectCaseEnum.isItTure(checkStatus); boolean itTure = InspectCaseEnum.isItTure(checkStatus);
@ -1046,12 +1022,13 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic
} }
// 1) 未初核:倒计时(discovery -> now) // 1) 未初核:倒计时(discovery -> now)
if (initialReviewTime == null) { if (initialReviewTime == null ) {
long remainingSeconds = TimeUtil.getRemainingDuration(discoveryTime, maxSeconds); long remainingSeconds = TimeUtil.getRemainingDuration(discoveryTime, maxSeconds);
dto.setRemainingDuration(remainingSeconds); dto.setRemainingDuration(remainingSeconds);
} }
} }

Loading…
Cancel
Save