|
|
|
|
@ -5,7 +5,6 @@ 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; |
|
|
|
|
import cn.hutool.core.map.MapUtil; |
|
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
|
import com.alibaba.excel.EasyExcel; |
|
|
|
|
import com.alibaba.excel.ExcelWriter; |
|
|
|
|
@ -17,7 +16,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.biutag.supervision.common.UserContextHolder; |
|
|
|
|
import com.biutag.supervision.constants.AppConstants; |
|
|
|
|
import com.biutag.supervision.constants.enums.*; |
|
|
|
|
import com.biutag.supervision.flow.action.ApplyCompletionAction; |
|
|
|
|
import com.biutag.supervision.mapper.ComplaintCollectionMapper; |
|
|
|
|
import com.biutag.supervision.pojo.Result; |
|
|
|
|
import com.biutag.supervision.pojo.domain.Blame; |
|
|
|
|
@ -35,7 +33,10 @@ import com.biutag.supervision.pojo.model.UserAuth;
|
|
|
|
|
import com.biutag.supervision.pojo.param.ComplaintCollection.ComplaintCollectionExistParam; |
|
|
|
|
import com.biutag.supervision.pojo.param.ComplaintCollection.ComplaintCollectionQueryParam; |
|
|
|
|
import com.biutag.supervision.pojo.param.ComplaintCollection.ComplaintCollectionUpdateParam; |
|
|
|
|
import com.biutag.supervision.pojo.param.*; |
|
|
|
|
import com.biutag.supervision.pojo.param.DataCaseVerifQueryParam; |
|
|
|
|
import com.biutag.supervision.pojo.param.DataPetitionComplaintQueryParam; |
|
|
|
|
import com.biutag.supervision.pojo.param.MailQueryParam; |
|
|
|
|
import com.biutag.supervision.pojo.param.SupDepartQueryParam; |
|
|
|
|
import com.biutag.supervision.pojo.param.complaintCollectionBlame.ComplaintCollectionBlameQueryParam; |
|
|
|
|
import com.biutag.supervision.pojo.param.complaintCollectionCheckFile.ComplaintCollectionCheckFileQueryParam; |
|
|
|
|
import com.biutag.supervision.pojo.param.complaintCollectionFile.ComplaintCollectionFileQueryParam; |
|
|
|
|
@ -44,7 +45,6 @@ import com.biutag.supervision.pojo.transfer.ComplaintCollectionTransfer;
|
|
|
|
|
import com.biutag.supervision.pojo.vo.FileVo; |
|
|
|
|
import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionHandlerDataVo; |
|
|
|
|
import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionMailRepeattVo; |
|
|
|
|
import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionPageVo; |
|
|
|
|
import com.biutag.supervision.pojo.vo.complaintCollection.ComplaintCollectionWatchDetailVO; |
|
|
|
|
import com.biutag.supervision.repository.complaintCollection.ComplaintCollectionResourceService; |
|
|
|
|
import com.biutag.supervision.repository.complaintCollectionBlame.ComplaintCollectionBlameResourceService; |
|
|
|
|
@ -53,8 +53,6 @@ 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.*; |
|
|
|
|
import com.biutag.supervision.util.CodeTranslateUtil; |
|
|
|
|
@ -96,20 +94,16 @@ 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; |
|
|
|
|
private final ApplyCompletionAction applyCompletionAction; |
|
|
|
|
private final NegativeBlameService negativeBlameService; |
|
|
|
|
private final SupPoliceResourceService supPoliceResourceService; |
|
|
|
|
private final ComplaintCollectionFileResourceService complaintCollectionFileResourceService; |
|
|
|
|
private final ComplaintCollectionCheckFileResourceService complaintCollectionCheckFileResourceService; |
|
|
|
|
private final DataPetitionComplaintResourceService dataPetitionComplaintResourceService; |
|
|
|
|
private final DataCaseVerifResourceService dataCaseVerifResourceService; |
|
|
|
|
private final NegativeProblemRelationService negativeProblemRelationService; |
|
|
|
|
private final MailResourceService mailResourceService; |
|
|
|
|
private final DataCaseVerifService dataCaseVerifService; |
|
|
|
|
private static final DateTimeFormatter INITIAL_REVIEW_FMT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
|
|
|
|
private static final int CHECK_LIMIT_DAYS = 4; |
|
|
|
|
|
|
|
|
|
@ -225,84 +219,6 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Result<ComplaintCollectionPageVo> getComplaintCollectionPage(ComplaintCollectionPageRequest request) { |
|
|
|
|
ComplaintCollectionQueryParam param = ComplaintCollectionTransfer.INSTANCE.pageRequestToPageParam(request); |
|
|
|
|
if (request.getInitialReviewFileList().contains(ComplaintCollectionInitialEnum.UPLOADED.getCode())){ |
|
|
|
|
param.getInitialReviewFileList().add(ComplaintCollectionInitialEnum.TIMEOUT_UPLOAD.getCode()); |
|
|
|
|
} |
|
|
|
|
UserAuth user = UserContextHolder.getCurrentUser(); |
|
|
|
|
if (!AppConstants.USER_TYPE_SUPER.equals(user.getUserType()) && (user.getRoleCodes().isEmpty() || user.getAuthSources().isEmpty() || user.getAuthDepartIds().isEmpty())) { |
|
|
|
|
return Result.success(ComplaintCollectionPageVo.noAuthVo()); |
|
|
|
|
} |
|
|
|
|
if (!AppConstants.USER_TYPE_SUPER.equals(user.getUserType())) { |
|
|
|
|
if (user.getRoleCodes().contains(RoleCodeEnum.SECOND_ADMIN.getCode()) |
|
|
|
|
|| user.getRoleCodes().contains(RoleCodeEnum.ADMIN_1_12337.getCode())) { |
|
|
|
|
// 1) 用户可见范围:授权部门 + 所有子集
|
|
|
|
|
List<String> orgIds = departService.getAllNodeIds(user.getAuthDepartIds()); |
|
|
|
|
Set<String> visibleSecondIds = new HashSet<>(orgIds); |
|
|
|
|
// 2) 前端传 secondDepartId:也展开范围(二级或上级)
|
|
|
|
|
if (StrUtil.isNotBlank(request.getSecondDepartId())) { |
|
|
|
|
List<String> reqAllIds = departService.getAllNodeIds(List.of(request.getSecondDepartId())); |
|
|
|
|
visibleSecondIds.retainAll(new HashSet<>(reqAllIds)); |
|
|
|
|
} |
|
|
|
|
if (CollectionUtil.isEmpty(visibleSecondIds)) { |
|
|
|
|
return Result.success(ComplaintCollectionPageVo.noAuthVo()); |
|
|
|
|
} |
|
|
|
|
param.setSecondDepartIds(visibleSecondIds); |
|
|
|
|
|
|
|
|
|
} else if (user.getRoleCodes().contains(RoleCodeEnum.THREE_ADMIN.getCode())) { |
|
|
|
|
return Result.success(ComplaintCollectionPageVo.noAuthVo()); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
if (StrUtil.isNotBlank(request.getSecondDepartId())) { |
|
|
|
|
List<String> reqAllIds = departService.getAllNodeIds(List.of(request.getSecondDepartId())); |
|
|
|
|
if (CollectionUtil.isNotEmpty(reqAllIds)) { |
|
|
|
|
param.setSecondDepartIds(new HashSet<>(reqAllIds)); |
|
|
|
|
} else { |
|
|
|
|
return Result.success(ComplaintCollectionPageVo.noAuthVo()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
IPage<ComplaintCollection> page = complaintCollectionResourceService.pageQuery(param); |
|
|
|
|
List<ComplaintCollection> records = page.getRecords(); |
|
|
|
|
List<ComplaintCollectionPageDTO> complaintCollectionPageDTOS = ComplaintCollectionTransfer.INSTANCE.entityToPageDTOList(records); |
|
|
|
|
Set<String> ids = complaintCollectionPageDTOS.stream().map(ComplaintCollectionPageDTO::getId).collect(Collectors.toSet()); |
|
|
|
|
ComplaintCollectionFileQueryParam complaintCollectionFileQueryParam = new ComplaintCollectionFileQueryParam(); |
|
|
|
|
complaintCollectionFileQueryParam.setComplaintIds(ids); |
|
|
|
|
// 附件
|
|
|
|
|
Map<String, List<ComplaintCollectionFile>> complaintCollectionFileMap = complaintCollectionFileResourceService.queryGroupBy(complaintCollectionFileQueryParam, ComplaintCollectionFile::getComplaintId); |
|
|
|
|
if (CollectionUtil.isNotEmpty(complaintCollectionPageDTOS)) { |
|
|
|
|
Map<String, String> dictLabelMap = buildDictLabelMap(SupDictEnum.SUSPECT_PROBLEM.getCode()); |
|
|
|
|
Map<String, String> sfssDictLabelMap = buildDictLabelMap(SupDictEnum.SFSS_SOURCE_TABLE.getCode()); |
|
|
|
|
complaintCollectionPageDTOS.forEach(one -> { |
|
|
|
|
// 涉嫌问题拼接
|
|
|
|
|
one.setInvolveProblemStr(CodeTranslateUtil.translateCodesToLabels(one.getInvolveProblem(), dictLabelMap)); |
|
|
|
|
// 来源
|
|
|
|
|
String sourceTable = CodeTranslateUtil.translateCodesToLabels(one.getSourceTable(), sfssDictLabelMap); |
|
|
|
|
String sourceTableSubOne = CodeTranslateUtil.translateCodesToLabels(one.getSourceTableSubOne(), sfssDictLabelMap); |
|
|
|
|
one.setSourceTablePath(sourceTable + "/" + sourceTableSubOne); |
|
|
|
|
List<ComplaintCollectionFile> files = complaintCollectionFileMap.getOrDefault(one.getId(), Collections.emptyList()); |
|
|
|
|
List<FileVo> fileVos = files.stream().map(file -> { |
|
|
|
|
FileVo fileVo = new FileVo(); |
|
|
|
|
fileVo.setFileName(file.getFileName()); |
|
|
|
|
fileVo.setFilePath(file.getFilePath()); |
|
|
|
|
return fileVo; |
|
|
|
|
}).toList(); |
|
|
|
|
one.setThingFiles(fileVos); |
|
|
|
|
// 超时情况
|
|
|
|
|
fillCheckTimeoutInfo(one); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
ComplaintCollectionPageVo complaintCollectionPageVo = new ComplaintCollectionPageVo(); |
|
|
|
|
complaintCollectionPageVo.setPages(page.getPages()); |
|
|
|
|
complaintCollectionPageVo.setTotal(page.getTotal()); |
|
|
|
|
complaintCollectionPageVo.setCurrent(page.getCurrent()); |
|
|
|
|
complaintCollectionPageVo.setSize(page.getSize()); |
|
|
|
|
complaintCollectionPageVo.setComplaintCollectionPageDTOS(complaintCollectionPageDTOS); |
|
|
|
|
return Result.success(complaintCollectionPageVo); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Page<ComplaintCollectionPageDTO> getComplaintCollectionPageNew(ComplaintCollectionPageRequest request) { |
|
|
|
|
ComplaintCollectionQueryParam param = ComplaintCollectionTransfer.INSTANCE.pageRequestToPageParam(request); |
|
|
|
|
@ -364,204 +280,6 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic
|
|
|
|
|
return new Page<ComplaintCollectionPageDTO>().setRecords(list).setTotal(pageResult.getTotal()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Deprecated |
|
|
|
|
@Override |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
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 checkStatus = SfssUtil.getCheckStatusCategory(request.getCheckStatusCode()); |
|
|
|
|
// 更新表头基本信息
|
|
|
|
|
ComplaintCollectionUpdateParam collectionUpdateParam = new ComplaintCollectionUpdateParam(); |
|
|
|
|
collectionUpdateParam.setId(request.getComplaintId()); |
|
|
|
|
collectionUpdateParam.setCaseNumber(request.getCaseNumber()); |
|
|
|
|
// 核查情况code
|
|
|
|
|
collectionUpdateParam.setCheckStatus(request.getCheckStatusCode()); |
|
|
|
|
// 核查情况名称
|
|
|
|
|
collectionUpdateParam.setCheckStatusName(request.getCheckStatusName()); |
|
|
|
|
// 核查情况内容
|
|
|
|
|
collectionUpdateParam.setCheckStatusDesc(request.getCheckStatusDesc()); |
|
|
|
|
// 涉及单位
|
|
|
|
|
String involveDepartId = request.getInvolveDepartId(); |
|
|
|
|
SupDepartQueryParam supDepartQueryParam = new SupDepartQueryParam(); |
|
|
|
|
supDepartQueryParam.setId(involveDepartId); |
|
|
|
|
List<SupDepart> list = supDepartResourceService.query(supDepartQueryParam); |
|
|
|
|
if (CollectionUtil.isEmpty(list)) { |
|
|
|
|
throw new RuntimeException("未找到对应的涉及单位"); |
|
|
|
|
} |
|
|
|
|
SupDepart supDepart = list.get(0); |
|
|
|
|
if (2 == supDepart.getLevel()) { |
|
|
|
|
collectionUpdateParam.setSecondDepartId(supDepart.getId()); |
|
|
|
|
collectionUpdateParam.setSecondDepartName(supDepart.getShortName()); |
|
|
|
|
} |
|
|
|
|
if (3 == supDepart.getLevel()) { |
|
|
|
|
SupDepartQueryParam thirdQP = new SupDepartQueryParam(); |
|
|
|
|
thirdQP.setId(supDepart.getPid()); |
|
|
|
|
SupDepart secondDepart = supDepartResourceService.query(thirdQP).get(0); |
|
|
|
|
collectionUpdateParam.setThirdDepartId(supDepart.getId()); |
|
|
|
|
collectionUpdateParam.setThirdDepartName(supDepart.getShortName()); |
|
|
|
|
collectionUpdateParam.setSecondDepartId(secondDepart.getId()); |
|
|
|
|
collectionUpdateParam.setSecondDepartName(secondDepart.getShortName()); |
|
|
|
|
} |
|
|
|
|
collectionUpdateParam.setAccountabilityTarget(request.getAccountabilityTarget()); |
|
|
|
|
collectionUpdateParam.setCompletionStatus(request.getCompletionStatus()); |
|
|
|
|
collectionUpdateParam.setPublicRecognition(request.getPublicRecognition()); |
|
|
|
|
// 更新归集表状态
|
|
|
|
|
collectionUpdateParam.setStatus("1"); |
|
|
|
|
// 更新初核
|
|
|
|
|
if (complaint.getGwf2() == null ) { |
|
|
|
|
LocalDateTime discoveryTime = complaint.getCreateTime(); |
|
|
|
|
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); |
|
|
|
|
// 是否属实
|
|
|
|
|
boolean itTure = InspectCaseEnum.isItTure(checkStatus); |
|
|
|
|
if (!itTure) { |
|
|
|
|
// 不属实直接插入
|
|
|
|
|
List<ComplaintCollectionBlame> result = new ArrayList<>(); |
|
|
|
|
List<ComplaintCollectionAndBlameAddRequest.Blame> blames = request.getBlames(); |
|
|
|
|
if (AccountabilityTargetEnum.PERSONAL.getValue().equals(request.getAccountabilityTarget())) { |
|
|
|
|
blames = request.getBlames().stream().filter(item -> BlameType.personal.name().equals(item.getType())).toList(); |
|
|
|
|
} else if (AccountabilityTargetEnum.DEPARTMENT.getValue().equals(request.getAccountabilityTarget())) { |
|
|
|
|
blames = request.getBlames().stream().filter(item -> BlameType.department.name().equals(item.getType())).toList(); |
|
|
|
|
} |
|
|
|
|
if (CollectionUtil.isNotEmpty(blames)) { |
|
|
|
|
// 所有警号
|
|
|
|
|
Set<String> blameEmpSet = blames.stream() |
|
|
|
|
.map(ComplaintCollectionAndBlameAddRequest.Blame::getBlameEmpNo) |
|
|
|
|
.filter(Objects::nonNull) |
|
|
|
|
.collect(Collectors.toSet()); |
|
|
|
|
if (CollectionUtil.isNotEmpty(request.getBlameLeaders())) { |
|
|
|
|
Set<String> leadEmpNos = request.getBlameLeaders().stream() |
|
|
|
|
.map(ComplaintCollectionAndBlameAddRequest.BlameLeader::getLeadEmpNo) |
|
|
|
|
.filter(Objects::nonNull) |
|
|
|
|
.collect(Collectors.toSet()); |
|
|
|
|
blameEmpSet.addAll(leadEmpNos); |
|
|
|
|
} |
|
|
|
|
// 查询警员信息
|
|
|
|
|
SupPoliceQueryParam policeQueryParam = new SupPoliceQueryParam(); |
|
|
|
|
policeQueryParam.setEmpNos(blameEmpSet); |
|
|
|
|
Map<String, SupPolice> policeMap = supPoliceResourceService.query(policeQueryParam); |
|
|
|
|
// orgId 集合
|
|
|
|
|
Set<String> orgIds = policeMap.values().stream() |
|
|
|
|
.map(SupPolice::getOrgId) |
|
|
|
|
.filter(Objects::nonNull) |
|
|
|
|
.collect(Collectors.toSet()); |
|
|
|
|
// 查询单位信息
|
|
|
|
|
SupDepartQueryParam departQueryParam = new SupDepartQueryParam(); |
|
|
|
|
departQueryParam.setIds(orgIds); |
|
|
|
|
List<SupDepart> supDepartList = supDepartResourceService.query(departQueryParam); |
|
|
|
|
// 构建 ID -> 单位映射
|
|
|
|
|
Map<String, SupDepart> idToEntityMap = supDepartList.stream() |
|
|
|
|
.filter(Objects::nonNull) |
|
|
|
|
.collect(Collectors.toMap(SupDepart::getId, Function.identity())); |
|
|
|
|
for (ComplaintCollectionAndBlameAddRequest.Blame blame : blames) { |
|
|
|
|
ComplaintCollectionBlame blameEntity = new ComplaintCollectionBlame(); |
|
|
|
|
BeanUtil.copyProperties(blame, blameEntity); |
|
|
|
|
blameEntity.setBlameId(UUID.randomUUID().toString()); |
|
|
|
|
blameEntity.setComplaintId(request.getComplaintId()); |
|
|
|
|
if (MapUtil.isNotEmpty(policeMap)) { |
|
|
|
|
SupPolice police = policeMap.get(blame.getBlameEmpNo()); |
|
|
|
|
if (police != null && StrUtil.isNotBlank(police.getOrgId())) { |
|
|
|
|
SupDepart depart = idToEntityMap.get(police.getOrgId()); |
|
|
|
|
blameEntity.setBlameDepartId(police.getOrgId()); |
|
|
|
|
blameEntity.setBlameDepartName(depart != null ? depart.getShortName() : null); |
|
|
|
|
} else { |
|
|
|
|
blameEntity.setBlameDepartId(request.getInvolveDepartId()); |
|
|
|
|
blameEntity.setBlameDepartName(request.getInvolveDepartName()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// 领导信息
|
|
|
|
|
List<ComplaintCollectionAndBlameAddRequest.BlameLeader> leadList = request.getBlameLeaders().stream() |
|
|
|
|
.filter(leader -> leader.getBlameIdCodes().contains(blame.getBlameIdCode())) |
|
|
|
|
.toList(); |
|
|
|
|
if (CollectionUtil.isNotEmpty(leadList)) { |
|
|
|
|
ComplaintCollectionAndBlameAddRequest.BlameLeader blameLeader = leadList.get(0); |
|
|
|
|
blameEntity.setLeadName(blameLeader.getLeadName()); |
|
|
|
|
blameEntity.setLeadIdCode(blameLeader.getLeadIdCode()); |
|
|
|
|
blameEntity.setLeadEmpNo(blameLeader.getLeadEmpNo()); |
|
|
|
|
if (MapUtil.isNotEmpty(policeMap)) { |
|
|
|
|
SupPolice police = policeMap.get(blameLeader.getLeadEmpNo()); |
|
|
|
|
if (police != null && StrUtil.isNotBlank(police.getOrgId())) { |
|
|
|
|
SupDepart depart = idToEntityMap.get(police.getOrgId()); |
|
|
|
|
blameEntity.setLeadDepartId(police.getOrgId()); |
|
|
|
|
blameEntity.setLeadDepartName(depart != null ? depart.getShortName() : null); |
|
|
|
|
} else { |
|
|
|
|
blameEntity.setLeadDepartId(request.getInvolveDepartId()); |
|
|
|
|
blameEntity.setLeadDepartName(request.getInvolveDepartName()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
blameEntity.setCreateBy(userName); |
|
|
|
|
blameEntity.setCreateTime(LocalDateTime.now()); |
|
|
|
|
result.add(blameEntity); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// 涉及人
|
|
|
|
|
complaintCollectionBlameResourceService.createComplaintCollectionBlame(result); |
|
|
|
|
} else { |
|
|
|
|
// 生成问题
|
|
|
|
|
NegativeDto dto = buildNegativeDto(request); |
|
|
|
|
Negative negative = saveNegative(dto); |
|
|
|
|
// 更新问题
|
|
|
|
|
if (StrUtil.isBlank(negative.getId())) { |
|
|
|
|
// 防御
|
|
|
|
|
throw new IllegalArgumentException("问题id不能为空!"); |
|
|
|
|
} |
|
|
|
|
VerifyData verifyData = buildVerifyData(request); |
|
|
|
|
applyCompletionAction.updateNegative(negative, verifyData); |
|
|
|
|
} |
|
|
|
|
// 涉访涉诉核查办理附件
|
|
|
|
|
List<FileVo> files = request.getFiles(); |
|
|
|
|
List<ComplaintCollectionCheckFile> complaintCollectionFiles = new ArrayList<>(); |
|
|
|
|
for (FileVo file : files) { |
|
|
|
|
ComplaintCollectionCheckFile complaintCollectionCheckFile = new ComplaintCollectionCheckFile(); |
|
|
|
|
complaintCollectionCheckFile.setComplaintId(request.getComplaintId()); |
|
|
|
|
complaintCollectionCheckFile.setFileName(file.getFileName()); |
|
|
|
|
complaintCollectionCheckFile.setFilePath(file.getFilePath()); |
|
|
|
|
complaintCollectionCheckFile.setCheckStatus(checkStatus); |
|
|
|
|
complaintCollectionCheckFile.setCheckStatusName(request.getCheckStatusName()); |
|
|
|
|
complaintCollectionCheckFile.setCreateBy(UserContextHolder.getCurrentUser().getUserName()); |
|
|
|
|
complaintCollectionCheckFile.setCreateTime(LocalDateTime.now()); |
|
|
|
|
complaintCollectionFiles.add(complaintCollectionCheckFile); |
|
|
|
|
} |
|
|
|
|
complaintCollectionCheckFileResourceService.delByComplaintCollectionId(request.getComplaintId()); |
|
|
|
|
complaintCollectionCheckFileResourceService.createComplaintCollectionCheckFile(complaintCollectionFiles); |
|
|
|
|
// 如果是案件核查,需要更新下发状态
|
|
|
|
|
if (ComplaintCollectionSourceTableEnum.COMPLAINT_12389.getCode().equals(request.getSourceTable())) { |
|
|
|
|
LambdaQueryWrapper<DataCaseVerif> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
queryWrapper.eq(DataCaseVerif::getOriginId, request.getOriginId()); |
|
|
|
|
long count = dataCaseVerifService.count(queryWrapper); |
|
|
|
|
if (count == 0) { |
|
|
|
|
throw new RuntimeException("台账中未找到对应案件核查数据"); |
|
|
|
|
} |
|
|
|
|
if (count > 1) { |
|
|
|
|
throw new RuntimeException("匹配到多条案件核查数据,禁止更新"); |
|
|
|
|
} |
|
|
|
|
DataCaseVerif one = dataCaseVerifService.getOne(queryWrapper, false); |
|
|
|
|
one.setDistributionState("1"); |
|
|
|
|
dataCaseVerifService.updateById(one); |
|
|
|
|
} |
|
|
|
|
return Result.success(true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Result<ComplaintCollectionWatchDetailVO> watchDetail(ComplaintCollectionWatchDetailRequest request) { |
|
|
|
|
@ -667,6 +385,7 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic
|
|
|
|
|
return Result.success(complaintCollectionMailRepeattVo); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Deprecated |
|
|
|
|
@Override |
|
|
|
|
public Result<ComplaintCollectionHandlerDataVo> handlerData(ComplaintCollectionHandlerDataRequest request) { |
|
|
|
|
ComplaintCollectionHandlerDataVo complaintCollectionHandlerDataVo = new ComplaintCollectionHandlerDataVo(); |
|
|
|
|
@ -703,7 +422,7 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic
|
|
|
|
|
request.setSize(10000); |
|
|
|
|
request.setCurrent(1); |
|
|
|
|
// 涉访涉诉台账
|
|
|
|
|
List<ComplaintCollectionPageDTO> complaintCollectionPageDTOS = getComplaintCollectionPage(request).getData().getComplaintCollectionPageDTOS(); |
|
|
|
|
List<ComplaintCollectionPageDTO> complaintCollectionPageDTOS = getComplaintCollectionPageNew(request).getRecords(); |
|
|
|
|
List<ComplaintCollectionExcelDTO> dataList = this.buildComplaintCollectionExcelDTO(complaintCollectionPageDTOS); |
|
|
|
|
if (dataList.size() > 10000) { |
|
|
|
|
throw new RuntimeException("导出数据量过大,请缩小筛选范围"); |
|
|
|
|
@ -749,72 +468,6 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public Result<Boolean> saveInvolveJson(ComplaintCollectionSaveInvolveJsonRequest request) { |
|
|
|
|
ComplaintCollectionUpdateParam updateParam = ComplaintCollectionTransfer.INSTANCE.JsonRequestToUpdateParam(request); |
|
|
|
|
updateParam.setId(request.getComplaintId()); |
|
|
|
|
// 涉及单位
|
|
|
|
|
String involveDepartId = request.getInvolveDepartId(); |
|
|
|
|
SupDepartQueryParam supDepartQueryParam = new SupDepartQueryParam(); |
|
|
|
|
supDepartQueryParam.setId(involveDepartId); |
|
|
|
|
List<SupDepart> list = supDepartResourceService.query(supDepartQueryParam); |
|
|
|
|
if (CollectionUtil.isEmpty(list)) { |
|
|
|
|
throw new RuntimeException("未找到对应的涉及单位"); |
|
|
|
|
} |
|
|
|
|
SupDepart supDepart = list.get(0); |
|
|
|
|
if (2 == supDepart.getLevel()) { |
|
|
|
|
updateParam.setSecondDepartId(supDepart.getId()); |
|
|
|
|
updateParam.setSecondDepartName(supDepart.getShortName()); |
|
|
|
|
} |
|
|
|
|
if (3 == supDepart.getLevel()) { |
|
|
|
|
SupDepartQueryParam thirdQP = new SupDepartQueryParam(); |
|
|
|
|
thirdQP.setId(supDepart.getPid()); |
|
|
|
|
SupDepart secondDepart = supDepartResourceService.query(thirdQP).get(0); |
|
|
|
|
updateParam.setThirdDepartId(supDepart.getId()); |
|
|
|
|
updateParam.setThirdDepartName(supDepart.getShortName()); |
|
|
|
|
updateParam.setSecondDepartId(secondDepart.getId()); |
|
|
|
|
updateParam.setSecondDepartName(secondDepart.getShortName()); |
|
|
|
|
} |
|
|
|
|
updateParam.setUpdateTime(LocalDateTime.now()); |
|
|
|
|
updateParam.setUpdateBy(UserContextHolder.getCurrentUser().getUserName()); |
|
|
|
|
updateParam.setCheckStatus(request.getCheckStatusCode()); |
|
|
|
|
complaintCollectionResourceService.updateSelectiveById(updateParam); |
|
|
|
|
ComplaintCollectionQueryParam complaintCollectionQueryParam = new ComplaintCollectionQueryParam(); |
|
|
|
|
complaintCollectionQueryParam.setId(request.getComplaintId()); |
|
|
|
|
List<ComplaintCollection> complaintCollectionList = complaintCollectionResourceService.query(complaintCollectionQueryParam); |
|
|
|
|
ComplaintCollection complaintCollection = complaintCollectionList.get(0); |
|
|
|
|
// 有附件 + 有核查情况 = 初核
|
|
|
|
|
if (StrUtil.isBlank(complaintCollection.getGwf2()) && request.getCheckStatusCode() != null && CollectionUtil.isNotEmpty(request.getFiles())) { |
|
|
|
|
LocalDateTime discoveryTime = complaintCollection.getCreateTime(); |
|
|
|
|
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); |
|
|
|
|
complaintCollectionResourceService.updateSelectiveById(complaintCollectionUpdateParam); |
|
|
|
|
} |
|
|
|
|
// 涉访涉诉核查办理附件
|
|
|
|
|
List<FileVo> files = request.getFiles(); |
|
|
|
|
List<ComplaintCollectionCheckFile> complaintCollectionFiles = new ArrayList<>(); |
|
|
|
|
for (FileVo file : files) { |
|
|
|
|
ComplaintCollectionCheckFile complaintCollectionCheckFile = new ComplaintCollectionCheckFile(); |
|
|
|
|
complaintCollectionCheckFile.setComplaintId(request.getComplaintId()); |
|
|
|
|
complaintCollectionCheckFile.setCheckStatus(SfssUtil.getCheckStatusCategory(request.getCheckStatusCode())); |
|
|
|
|
complaintCollectionCheckFile.setCheckStatusName(request.getCheckStatusName()); |
|
|
|
|
complaintCollectionCheckFile.setFileName(file.getFileName()); |
|
|
|
|
complaintCollectionCheckFile.setFilePath(file.getFilePath()); |
|
|
|
|
complaintCollectionCheckFile.setCreateBy(UserContextHolder.getCurrentUser().getUserName()); |
|
|
|
|
complaintCollectionCheckFile.setCreateTime(LocalDateTime.now()); |
|
|
|
|
complaintCollectionFiles.add(complaintCollectionCheckFile); |
|
|
|
|
} |
|
|
|
|
complaintCollectionCheckFileResourceService.delByComplaintCollectionId(request.getComplaintId()); |
|
|
|
|
complaintCollectionCheckFileResourceService.createComplaintCollectionCheckFile(complaintCollectionFiles); |
|
|
|
|
return Result.success(Boolean.TRUE); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|