Browse Source

涉访涉诉--展示更多详情+强制终结功能

master
buaixuexideshitongxue 1 month ago
parent
commit
8d46bb3069
  1. 6
      src/main/java/com/biutag/supervision/pojo/transfer/ComplaintCollectionTransfer.java
  2. 19
      src/main/java/com/biutag/supervision/pojo/vo/complaintCollection/ComplaintCollectionWatchDetailVO.java
  3. 4
      src/main/java/com/biutag/supervision/repository/complaintCollectionFile/ComplaintCollectionFileResourceService.java
  4. 88
      src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java

6
src/main/java/com/biutag/supervision/pojo/transfer/ComplaintCollectionTransfer.java

@ -20,7 +20,10 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* @ClassName ComplaintCollectionTansfer
@ -64,4 +67,7 @@ public interface ComplaintCollectionTransfer {
List<FileVo> complaintCollectionCheckFileToFileVo(List<ComplaintCollectionCheckFile> complaintCollectionCheckFiles);
// List<Blame> complaintCollectionBlamesToBlames(List<ComplaintCollectionBlame> pseronalList);
}

19
src/main/java/com/biutag/supervision/pojo/vo/complaintCollection/ComplaintCollectionWatchDetailVO.java

@ -1,13 +1,16 @@
package com.biutag.supervision.pojo.vo.complaintCollection;
import com.baomidou.mybatisplus.annotation.TableField;
import com.biutag.supervision.pojo.domain.Blame;
import com.biutag.supervision.pojo.dto.flow.VerifyData;
import com.biutag.supervision.pojo.enums.complaintCollection.ComplaintCollectionSourceTableEnum;
import com.biutag.supervision.pojo.enums.complaintCollection.YesOrNoEnum;
import com.biutag.supervision.pojo.vo.FileVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
@ -292,11 +295,17 @@ public class ComplaintCollectionWatchDetailVO {
@Schema(description = "涉及单位")
private String involveDepartName;
@Schema(description = "涉及班子成员(领导类)")
private List<BlameInfoVO> deptBlames;
@Schema(description = "涉及人员")
private List<Blame> personalBlames;
@Schema(description = "涉及人员(普通个体)")
private List<BlameInfoVO> personalBlames;
private List<VerifyData.BlameLeader> blameLeaders = new ArrayList<>();
@Schema(description = "附件列表")
private List<FileVo> thingFiles = new ArrayList<>();
@Schema(description = "核查办理附件列表")
private List<FileVo> files;
@Getter

4
src/main/java/com/biutag/supervision/repository/complaintCollectionFile/ComplaintCollectionFileResourceService.java

@ -11,6 +11,7 @@ import jakarta.annotation.Resource;
import jakarta.validation.ValidationException;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -38,6 +39,9 @@ public class ComplaintCollectionFileResourceService extends BaseDAO {
setBatchQuery(param.getComplaintId(), param.getComplaintIds(), qw, ComplaintCollectionFile::getComplaintId);
qw.eq(StrUtil.isNotBlank(param.getFileName()), ComplaintCollectionFile::getFileName, param.getFileName());
qw.eq(StrUtil.isNotBlank(param.getFilePath()), ComplaintCollectionFile::getFilePath, param.getFilePath());
if (qw.getExpression() == null || qw.getExpression().getSqlSegment().isEmpty()) {
return Collections.emptyList();
}
return complaintCollectionFileMapper.selectList(qw);
}

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

@ -1,6 +1,7 @@
package com.biutag.supervision.service.complaintCollection;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Opt;
@ -498,27 +499,59 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic
// 涉及信息
String checkStatus = complaintCollection.getCheckStatus();
boolean itTure = InspectCaseEnum.isItTure(checkStatus);
List<ComplaintCollectionWatchDetailVO.BlameInfoVO> personalBlames = new ArrayList<>();
List<ComplaintCollectionWatchDetailVO.BlameInfoVO> deptBlames = new ArrayList<>();
if (itTure) {
// 从negative_blame中读
List<Blame> list = negativeBlameService.list(request.getId());
List<Blame> pseronalList = list.stream().filter(one -> "personal".equals(one.getType())).collect(Collectors.toList());
List<Blame> department = list.stream().filter(one -> "department".equals(one.getType())).collect(Collectors.toList());
personalBlames = ComplaintCollectionTransfer.INSTANCE.blameToBlameInfoVO(pseronalList);
deptBlames = ComplaintCollectionTransfer.INSTANCE.blameToBlameInfoVO(department);
List<Blame> personalBlames = negativeBlameService.list(request.getId());
List<VerifyData.BlameLeader> blameLeaders = personalBlames.stream().map(Blame::getLeadIdCode).filter(StrUtil::isNotBlank).collect(Collectors.toSet())
.stream().map(leaderIdCode -> {
VerifyData.BlameLeader blameLeader = new VerifyData.BlameLeader();
List<Blame> blames = personalBlames.stream().filter(blameObj -> leaderIdCode.equals(blameObj.getLeadIdCode())).toList();
// 取第一个
Blame blame = blames.get(0);
BeanUtil.copyProperties(blame, blameLeader);
blameLeader.setBlameIdCodes(blames.stream().map(Blame::getBlameIdCode).toList());
return blameLeader;
}).toList();
vo.setPersonalBlames(personalBlames);
vo.setBlameLeaders(blameLeaders);
} else {
// 从自己表里读
ComplaintCollectionBlameQueryParam complaintCollectionBlameQueryParam = new ComplaintCollectionBlameQueryParam();
complaintCollectionBlameQueryParam.setComplaintId(request.getId());
List<ComplaintCollectionBlame> complaintCollectionBlames = complaintCollectionBlameResourceService.query(complaintCollectionBlameQueryParam);
List<ComplaintCollectionBlame> pseronalList = complaintCollectionBlames.stream().filter(one -> "personal".equals(one.getType())).collect(Collectors.toList());
List<ComplaintCollectionBlame> department = complaintCollectionBlames.stream().filter(one -> "department".equals(one.getType())).collect(Collectors.toList());
personalBlames = ComplaintCollectionTransfer.INSTANCE.complaintCollectionBlamesToBlameInfoVO(pseronalList);
deptBlames = ComplaintCollectionTransfer.INSTANCE.complaintCollectionBlamesToBlameInfoVO(department);
List<VerifyData.BlameLeader> blameLeaders = complaintCollectionBlames.stream().map(ComplaintCollectionBlame::getLeadIdCode).filter(StrUtil::isNotBlank).collect(Collectors.toSet())
.stream().map(leaderIdCode -> {
VerifyData.BlameLeader blameLeader = new VerifyData.BlameLeader();
List<ComplaintCollectionBlame> complaintCollectionBlameList = complaintCollectionBlames.stream().filter(blameObj -> leaderIdCode.equals(blameObj.getLeadIdCode())).toList();
// 取第一个
ComplaintCollectionBlame complaintCollectionBlame = complaintCollectionBlameList.get(0);
BeanUtil.copyProperties(complaintCollectionBlame, blameLeader);
blameLeader.setBlameIdCodes(complaintCollectionBlameList.stream().map(ComplaintCollectionBlame::getBlameIdCode).toList());
return blameLeader;
}).toList();
List<Blame> personalBlames = new ArrayList<>();
for (ComplaintCollectionBlame complaintCollectionBlame : complaintCollectionBlames) {
Blame blame = new Blame();
BeanUtil.copyProperties(complaintCollectionBlame, blame, CopyOptions.create().setIgnoreError(true));
blame.setIvPersonType(complaintCollectionBlame.getIvPersonTypeName());
blame.setIvPersonTypeCode(complaintCollectionBlame.getIvPersonTypeCode());
personalBlames.add(blame);
}
vo.setPersonalBlames(personalBlames);
vo.setBlameLeaders(blameLeaders);
}
vo.setDeptBlames(deptBlames);
vo.setPersonalBlames(personalBlames);
// 附件
ComplaintCollectionFileQueryParam complaintCollectionFileQueryParam = new ComplaintCollectionFileQueryParam();
complaintCollectionFileQueryParam.setComplaintId(request.getId());
List<ComplaintCollectionFile> complaintCollectionFiles = complaintCollectionFileResourceService.query(complaintCollectionFileQueryParam);
List<FileVo> thingFiles = ComplaintCollectionTransfer.INSTANCE.complaintCollectionFileToFileVo(complaintCollectionFiles);
// 佐证附件
ComplaintCollectionCheckFileQueryParam complaintCollectionCheckFileQueryParam = new ComplaintCollectionCheckFileQueryParam();
complaintCollectionCheckFileQueryParam.setComplaintId(request.getId());
List<ComplaintCollectionCheckFile> complaintCollectionCheckFiles = complaintCollectionCheckFileResourceService.query(complaintCollectionCheckFileQueryParam);
List<FileVo> files = ComplaintCollectionTransfer.INSTANCE.complaintCollectionCheckFileToFileVo(complaintCollectionCheckFiles);
vo.setFiles(files);
vo.setThingFiles(thingFiles);
return Result.success(vo);
}
@ -697,6 +730,35 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic
return Result.success(Boolean.TRUE);
}
@Override
public Result<Boolean> forceTermination(ComplaintCollectionForceTerminationRequest request) {
// 只有市局管理员可以修改
Set<String> allowUpdateRoles = Set.of(RoleCodeEnum.FIRST_ADMIN.getCode(), RoleCodeEnum.ADMIN_1_12337.getCode());
UserAuth user = UserContextHolder.getCurrentUser();
List<String> roleCodes = user.getRoleCodes();
if (CollectionUtil.isEmpty(roleCodes) || roleCodes.stream().noneMatch(allowUpdateRoles::contains)) {
throw new IllegalStateException("只有[市局管理员、信访投诉-市局管理员]可以强制终结!");
}
ComplaintCollectionQueryParam complaintCollectionQueryParam = new ComplaintCollectionQueryParam();
complaintCollectionQueryParam.setId(request.getComplaintId());
List<ComplaintCollection> complaintCollectionList = complaintCollectionResourceService.query(complaintCollectionQueryParam);
ComplaintCollection complaintCollection = complaintCollectionList.get(0);
LocalDateTime discoveryTime = complaintCollection.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();
ComplaintCollectionUpdateParam complaintCollectionUpdateParam = new ComplaintCollectionUpdateParam();
complaintCollectionUpdateParam.setId(request.getComplaintId());
// 初核时间
complaintCollectionUpdateParam.setGwf2(LocalDateTime.now().format(INITIAL_REVIEW_FMT));
// 初核状态
complaintCollectionUpdateParam.setGwf3(initialReviewStatus);
complaintCollectionUpdateParam.setStatus(ComplaintCollectionStatusEnum.FORCE_RESOLVED.getCode());
return Result.success(complaintCollectionResourceService.updateSelectiveById(complaintCollectionUpdateParam));
}
private List<ComplaintCollectionPersonExcelDTO> buildComplaintCollectionPersonExcelDTO(List<ComplaintCollectionBlame> blameList, List<NegativeBlame> negativeBlames, List<ComplaintCollectionPageDTO> dataList) {
List<ComplaintCollectionPersonExcelDTO> res = new ArrayList<>();
Map<String, List<ComplaintCollectionBlame>> complaintCollectionBlameMap = blameList.stream()

Loading…
Cancel
Save