|
|
|
@ -1,6 +1,7 @@ |
|
|
|
package com.biutag.supervision.service.complaintCollection; |
|
|
|
package com.biutag.supervision.service.complaintCollection; |
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
|
|
|
|
import cn.hutool.core.bean.copier.CopyOptions; |
|
|
|
import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import cn.hutool.core.lang.Assert; |
|
|
|
import cn.hutool.core.lang.Assert; |
|
|
|
import cn.hutool.core.lang.Opt; |
|
|
|
import cn.hutool.core.lang.Opt; |
|
|
|
@ -498,27 +499,59 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic |
|
|
|
// 涉及信息
|
|
|
|
// 涉及信息
|
|
|
|
String checkStatus = complaintCollection.getCheckStatus(); |
|
|
|
String checkStatus = complaintCollection.getCheckStatus(); |
|
|
|
boolean itTure = InspectCaseEnum.isItTure(checkStatus); |
|
|
|
boolean itTure = InspectCaseEnum.isItTure(checkStatus); |
|
|
|
List<ComplaintCollectionWatchDetailVO.BlameInfoVO> personalBlames = new ArrayList<>(); |
|
|
|
|
|
|
|
List<ComplaintCollectionWatchDetailVO.BlameInfoVO> deptBlames = new ArrayList<>(); |
|
|
|
|
|
|
|
if (itTure) { |
|
|
|
if (itTure) { |
|
|
|
// 从negative_blame中读
|
|
|
|
// 从negative_blame中读
|
|
|
|
List<Blame> list = negativeBlameService.list(request.getId()); |
|
|
|
List<Blame> personalBlames = negativeBlameService.list(request.getId()); |
|
|
|
List<Blame> pseronalList = list.stream().filter(one -> "personal".equals(one.getType())).collect(Collectors.toList()); |
|
|
|
List<VerifyData.BlameLeader> blameLeaders = personalBlames.stream().map(Blame::getLeadIdCode).filter(StrUtil::isNotBlank).collect(Collectors.toSet()) |
|
|
|
List<Blame> department = list.stream().filter(one -> "department".equals(one.getType())).collect(Collectors.toList()); |
|
|
|
.stream().map(leaderIdCode -> { |
|
|
|
personalBlames = ComplaintCollectionTransfer.INSTANCE.blameToBlameInfoVO(pseronalList); |
|
|
|
VerifyData.BlameLeader blameLeader = new VerifyData.BlameLeader(); |
|
|
|
deptBlames = ComplaintCollectionTransfer.INSTANCE.blameToBlameInfoVO(department); |
|
|
|
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 { |
|
|
|
} else { |
|
|
|
// 从自己表里读
|
|
|
|
// 从自己表里读
|
|
|
|
ComplaintCollectionBlameQueryParam complaintCollectionBlameQueryParam = new ComplaintCollectionBlameQueryParam(); |
|
|
|
ComplaintCollectionBlameQueryParam complaintCollectionBlameQueryParam = new ComplaintCollectionBlameQueryParam(); |
|
|
|
complaintCollectionBlameQueryParam.setComplaintId(request.getId()); |
|
|
|
complaintCollectionBlameQueryParam.setComplaintId(request.getId()); |
|
|
|
List<ComplaintCollectionBlame> complaintCollectionBlames = complaintCollectionBlameResourceService.query(complaintCollectionBlameQueryParam); |
|
|
|
List<ComplaintCollectionBlame> complaintCollectionBlames = complaintCollectionBlameResourceService.query(complaintCollectionBlameQueryParam); |
|
|
|
List<ComplaintCollectionBlame> pseronalList = complaintCollectionBlames.stream().filter(one -> "personal".equals(one.getType())).collect(Collectors.toList()); |
|
|
|
List<VerifyData.BlameLeader> blameLeaders = complaintCollectionBlames.stream().map(ComplaintCollectionBlame::getLeadIdCode).filter(StrUtil::isNotBlank).collect(Collectors.toSet()) |
|
|
|
List<ComplaintCollectionBlame> department = complaintCollectionBlames.stream().filter(one -> "department".equals(one.getType())).collect(Collectors.toList()); |
|
|
|
.stream().map(leaderIdCode -> { |
|
|
|
personalBlames = ComplaintCollectionTransfer.INSTANCE.complaintCollectionBlamesToBlameInfoVO(pseronalList); |
|
|
|
VerifyData.BlameLeader blameLeader = new VerifyData.BlameLeader(); |
|
|
|
deptBlames = ComplaintCollectionTransfer.INSTANCE.complaintCollectionBlamesToBlameInfoVO(department); |
|
|
|
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.setDeptBlames(deptBlames); |
|
|
|
|
|
|
|
vo.setPersonalBlames(personalBlames); |
|
|
|
vo.setPersonalBlames(personalBlames); |
|
|
|
|
|
|
|
vo.setBlameLeaders(blameLeaders); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 附件
|
|
|
|
|
|
|
|
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); |
|
|
|
return Result.success(vo); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -697,6 +730,35 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic |
|
|
|
return Result.success(Boolean.TRUE); |
|
|
|
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) { |
|
|
|
private List<ComplaintCollectionPersonExcelDTO> buildComplaintCollectionPersonExcelDTO(List<ComplaintCollectionBlame> blameList, List<NegativeBlame> negativeBlames, List<ComplaintCollectionPageDTO> dataList) { |
|
|
|
List<ComplaintCollectionPersonExcelDTO> res = new ArrayList<>(); |
|
|
|
List<ComplaintCollectionPersonExcelDTO> res = new ArrayList<>(); |
|
|
|
Map<String, List<ComplaintCollectionBlame>> complaintCollectionBlameMap = blameList.stream() |
|
|
|
Map<String, List<ComplaintCollectionBlame>> complaintCollectionBlameMap = blameList.stream() |
|
|
|
|