From ecb8ee9c13ef1d4b7c0324dcd39e3ae34d9ce5b5 Mon Sep 17 00:00:00 2001 From: liyj <1003249715@qq.com> Date: Sat, 14 Sep 2024 23:21:05 +0800 Subject: [PATCH] 1、自行受理bug修复2 2、流程进度展示bug修复2 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java | 465 ++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 307 insertions(+), 158 deletions(-) diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java index 55ce74f..c399f44 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java @@ -6,12 +6,11 @@ import cn.huge.module.cases.dao.mapper.*; import cn.huge.module.cases.domain.dto.*; import cn.huge.base.common.utils.ObjectUtils; -import cn.huge.module.cases.domain.dto.CaseFlowDTO; +import cn.huge.module.cases.domain.dto.WebCaseFlowDTO; import cn.huge.module.cases.domain.dto.TabButtonDTO; import cn.huge.module.cases.domain.dto.TabButtonInfoDTO; import cn.huge.module.cases.domain.po.CaseAssistApply; import cn.huge.module.cases.domain.po.CaseInfoUnfold; -import cn.huge.module.cases.domain.dto.*; import cn.huge.module.cases.domain.po.*; import cn.huge.module.client.api.impl.CustClientImpl; import cn.huge.module.client.api.impl.DispClientImpl; @@ -25,7 +24,6 @@ import cn.huge.module.cust.dto.CtUserDTO; import cn.huge.module.mediate.constant.AuditBaseConsts; import cn.huge.module.mediate.constant.AuditBaseConstsEnum; -import cn.huge.module.mediate.constant.CaseBaseConsts; import cn.huge.module.disp.constant.DispBaseConstsEnum; import cn.huge.module.disp.dto.CaseDispBaseDTO; import cn.huge.module.disp.dto.DispCaseBaseDTO; @@ -43,7 +41,6 @@ import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Page; @@ -51,8 +48,6 @@ import org.springframework.data.domain.PageRequest; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.PostConstruct; -import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; @@ -96,6 +91,8 @@ private CaseAppearService caseAppearService; @Autowired private CaseReturnService caseReturnService; + @Autowired + private CaseEvaluateService caseEvaluateService; @Autowired private CaseWindupApplyMapper caseWindupApplyMapper; @@ -393,9 +390,9 @@ public Map<String, Object> webListCaseFlow(String caseId, String userId){ try{ Map<String, Object> result = Maps.newHashMap(); - LinkedList<CaseFlowDTO> handleCaseFlowList = new LinkedList<>(); + LinkedList<WebCaseFlowDTO> handleCaseFlowList = new LinkedList<>(); // 首节点 - CaseFlowDTO lfdj = new CaseFlowDTO(); + WebCaseFlowDTO lfdj = new WebCaseFlowDTO(); CaseInfo caseInfo = caseInfoService.getById(caseId); if (CaseBaseConstsEnum.CASE_CANAL_1.getIndex().equals(caseInfo.getCanal())){ lfdj.setNodeShowName("来访登记"); @@ -404,7 +401,6 @@ }else { lfdj.setNodeShowName(caseInfo.getCanalName()); lfdj.setHandleUnitName(caseInfo.getInputUserName()+"(当事人)"); - lfdj.setHandleUserName(caseInfo.getInputUserName()); } lfdj.setTaskType(CaseTaskConsts.TASK_TYPE_1); lfdj.setStatus(CaseTaskConsts.TASK_STATUS_2); @@ -414,124 +410,127 @@ QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>(); caseTaskQueryWrapper.eq("case_id", caseId).eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_1).orderByAsc("id"); List<CaseTask> handleCaseTaskList = mapper.selectList(caseTaskQueryWrapper); - for (CaseTask caseTask: handleCaseTaskList){ - CaseFlowDTO caseFlowDTO = new CaseFlowDTO(); - if (CaseTaskConsts.TASK_STATUS_1 == caseTask.getStatus()){ + // 已结束节点 + if (CaseTaskConsts.TASK_STATUS_2 == caseTask.getStatus()){ + // 待受理并已签收的节点,需要加多一个签收节点 + if(caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_ZJ_DSL.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_DSL.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_DSL.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSL.getIndex())){ + if (CaseTaskConsts.SIGN_STATUS_2 == caseTask.getSignStatus()){ + WebCaseFlowDTO slWebCaseFlowDTO = new WebCaseFlowDTO(); + slWebCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + slWebCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); + slWebCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); + slWebCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); + slWebCaseFlowDTO.setHandleNotes("已签收"); + slWebCaseFlowDTO.setTaskType(caseTask.getTaskType()); + slWebCaseFlowDTO.setStatus(caseTask.getStatus()); + handleCaseFlowList.add(slWebCaseFlowDTO); + } + } + // 回退审核节点,需要加多一个回退申请节点 + if(caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_ZJ_HTSH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_HTSH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_HTSH.getIndex())){ + WebCaseFlowDTO sqWebCaseFlowDTO = new WebCaseFlowDTO(); + sqWebCaseFlowDTO.setNodeShowName("事件回退"); + sqWebCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); + sqWebCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); + sqWebCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); + sqWebCaseFlowDTO.setTaskType(CaseTaskConsts.TASK_TYPE_2); + sqWebCaseFlowDTO.setStatus(caseTask.getStatus()); + CaseReturn caseReturn = caseReturnService.getByCaseTaskId(caseTask.getId()); + sqWebCaseFlowDTO.setHandleNotes("回退理由:"+caseReturn.getReturnContent()); + handleCaseFlowList.add(sqWebCaseFlowDTO); + } + // 上报审核节点,需要加多一个上报申请节点 + if(caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_SBSH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_SBSH.getIndex())){ + WebCaseFlowDTO sqWebCaseFlowDTO = new WebCaseFlowDTO(); + sqWebCaseFlowDTO.setNodeShowName("事件上报"); + sqWebCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); + sqWebCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); + sqWebCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); + sqWebCaseFlowDTO.setTaskType(CaseTaskConsts.TASK_TYPE_3); + sqWebCaseFlowDTO.setStatus(caseTask.getStatus()); + CaseAppear caseAppear = caseAppearService.getByCaseTaskId(caseTask.getId()); + sqWebCaseFlowDTO.setHandleNotes("上报意见:"+caseAppear.getAppearContent()); + handleCaseFlowList.add(sqWebCaseFlowDTO); + } + // 普通节点 + WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); + webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + webCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); + webCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); + webCaseFlowDTO.setStatus(caseTask.getStatus()); + webCaseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); + webCaseFlowDTO.setTaskType(caseTask.getTaskType()); + // 当事人评价节点,特殊处理 if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){ - caseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - caseFlowDTO.setProcessName(caseTask.getNodeShowName()); + webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + webCaseFlowDTO.setProcessName(caseTask.getNodeShowName()); }else{ - caseFlowDTO.setProcessName(caseInfo.getProcessName()); + webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); } - caseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); - caseFlowDTO.setTaskType(caseTask.getTaskType()); - caseFlowDTO.setStatus(caseTask.getStatus()); - }else { - caseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - caseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); - caseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); - caseFlowDTO.setHandleTime(caseTask.getHandleTime()); - caseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); - caseFlowDTO.setTaskType(caseTask.getTaskType()); - // todo 审核不通过、通过的展示,有调解结果的 - if (CaseTaskConsts.HANDLE_RESULT_1 == caseTask.getHandleResult()) { - - } - if (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) { - - } - caseFlowDTO.setStatus(caseTask.getStatus()); - } - handleCaseFlowList.add(caseFlowDTO); - // 待受理节点,已签收的并处理完,需要加多一个受理节点 - if(caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_ZJ_DSL.getIndex()) - || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_DSL.getIndex()) - || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_DSL.getIndex())){ - if(CaseTaskConsts.SIGN_STATUS_2 == caseTask.getSignStatus() - && CaseTaskConsts.TASK_STATUS_2 == caseTask.getStatus()){ - CaseFlowDTO slCaseFlowDTO = new CaseFlowDTO(); - if (CaseTaskConsts.TASK_STATUS_1 == caseTask.getStatus()){ - if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){ - slCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - slCaseFlowDTO.setProcessName(caseTask.getNodeShowName()); - }else{ - slCaseFlowDTO.setProcessName(caseInfo.getProcessName()); - } - slCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); - slCaseFlowDTO.setTaskType(caseTask.getTaskType()); - slCaseFlowDTO.setStatus(caseTask.getStatus()); - }else { - slCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - slCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); - slCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); - slCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); - slCaseFlowDTO.setHandleNotes("已受理"); - if (CaseTaskConsts.HANDLE_RESULT_1 == caseTask.getHandleResult()) { - slCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex()); - slCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes()); - slCaseFlowDTO.setTaskType(caseTask.getTaskType()); - } - if (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) { - slCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_2.getIndex()); - slCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_2.getDes()); - slCaseFlowDTO.setTaskType(CaseTaskConsts.TASK_TYPE_2); - } - slCaseFlowDTO.setStatus(caseTask.getStatus()); - } - handleCaseFlowList.add(slCaseFlowDTO); - } - } - - // 办理反馈节点,加上化解结果 - if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_BLFK.getIndex())){ - CaseFlowDTO blfkCaseFlowDTO = new CaseFlowDTO(); - if (CaseTaskConsts.TASK_STATUS_1 == caseTask.getStatus()){ - if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){ - blfkCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - blfkCaseFlowDTO.setProcessName(caseTask.getNodeShowName()); - }else{ - blfkCaseFlowDTO.setProcessName(caseInfo.getProcessName()); - } - blfkCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); - blfkCaseFlowDTO.setTaskType(caseTask.getTaskType()); - blfkCaseFlowDTO.setStatus(caseTask.getStatus()); - }else { - blfkCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - blfkCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); - blfkCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); - blfkCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); - CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId); - blfkCaseFlowDTO.setHandleNotes("化解结果:"+caseInfoUnfold.getMediResultName()); - blfkCaseFlowDTO.setTaskType(caseTask.getTaskType()); - // todo 审核不通过、通过的展示,有调解结果的 - if (CaseTaskConsts.HANDLE_RESULT_1 == caseTask.getHandleResult()) { - - } + // 审核节点要判断通过/不通过 + if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JASH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_ZJ_HTSH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_SBSH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_HTSH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_SBSH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_HTSH.getIndex())){ + // 处理不通过,任务类型就是回退 if (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) { - + webCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_2.getIndex()); + webCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_2.getDes()); + webCaseFlowDTO.setTaskType(CaseTaskConsts.TASK_TYPE_2); + }else if (CaseTaskConsts.HANDLE_RESULT_1 == caseTask.getHandleResult()) { + // 处理通过 + webCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex()); + webCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes()); } - blfkCaseFlowDTO.setStatus(caseTask.getStatus()); } - handleCaseFlowList.add(blfkCaseFlowDTO); + // 结案申请,需要展示化解结果 + if (FlowNodeEnum.FLOW_NODE_JASQ.getIndex().equals(caseTask.getNodeId())){ + CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseTask.getCaseId()); + if (ObjectUtils.isNotEmpty(caseInfoUnfold)){ + webCaseFlowDTO.setMediResult(caseInfoUnfold.getMediResult()); + webCaseFlowDTO.setMediResultName(caseInfoUnfold.getMediResultName()); + } + } + handleCaseFlowList.add(webCaseFlowDTO); + }else { + // 进行中的节点 + WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); + // 当事人评价节点,特殊处理 + if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){ + webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + webCaseFlowDTO.setProcessName(caseTask.getNodeShowName()); + }else{ + webCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); + } + webCaseFlowDTO.setStatus(caseTask.getStatus()); + handleCaseFlowList.add(webCaseFlowDTO); } } result.put("handleCaseFlowList", handleCaseFlowList); // 查询配合组织流程 - LinkedList<CaseFlowDTO> assistCaseFlowList = new LinkedList<>(); + LinkedList<WebCaseFlowDTO> assistCaseFlowList = new LinkedList<>(); caseTaskQueryWrapper.clear(); caseTaskQueryWrapper.eq("case_id", caseId).eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).orderByDesc("create_time"); List<CaseTask> assistCaseTaskList = mapper.selectList(caseTaskQueryWrapper); for (CaseTask caseTask: assistCaseTaskList){ - CaseFlowDTO caseFlowDTO = new CaseFlowDTO(); - caseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - caseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); - caseFlowDTO.setHandleTime(caseTask.getHandleTime()); - caseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); - caseFlowDTO.setTaskType(caseTask.getTaskType()); - caseFlowDTO.setStatus(caseTask.getStatus()); - assistCaseFlowList.add(caseFlowDTO); + WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); + webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + webCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); + webCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); + webCaseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); + webCaseFlowDTO.setTaskType(caseTask.getTaskType()); + webCaseFlowDTO.setStatus(caseTask.getStatus()); + assistCaseFlowList.add(webCaseFlowDTO); } result.put("assistCaseFlowList", assistCaseFlowList); return result; @@ -722,31 +721,123 @@ throw new ServiceException("CaseTaskService.pageMyTaskQs", e); } } + + /** + * 首页-待审核分页查询 + * @param caseId 事项编号 + * @return Page + */ + public List<Object> listMyApplyRecord(String caseId){ + try { + QueryWrapper<CaseReturn> caseReturnQueryWrapper = new QueryWrapper<>(); + caseReturnQueryWrapper.eq("case_id", caseId); + List<CaseReturn>caseReturnList = caseReturnService.list(caseReturnQueryWrapper); + + QueryWrapper<CaseAppear> caseAppearQueryWrapper = new QueryWrapper<>(); + caseAppearQueryWrapper.eq("case_id", caseId); + List<CaseAppear>caseAppearList = caseAppearService.list(caseAppearQueryWrapper); + + QueryWrapper<CaseWindupApply> caseWindupApplyQueryWrapper = new QueryWrapper<>(); + caseWindupApplyQueryWrapper.eq("case_id", caseId); + List<CaseWindupApply>caseWindupApplyList = caseWindupApplyService.list(caseWindupApplyQueryWrapper); + + QueryWrapper<CaseAssistApply> caseAssistApplyQueryWrapper = new QueryWrapper<>(); + caseAssistApplyQueryWrapper.eq("case_id", caseId); + List<CaseAssistApply>caseAssistApplyList = caseAssistApplyService.list(caseAssistApplyQueryWrapper); + List<SortUtilDTO> sortUtilDTOList = new ArrayList<>(); + for(CaseReturn caseReturn: caseReturnList){ + SortUtilDTO sortUtilDTO = new SortUtilDTO(); + sortUtilDTO.setObject(caseReturn); + sortUtilDTO.setDate(caseReturn.getCreateTime()); + sortUtilDTO.setType("回退申请"); + sortUtilDTOList.add(sortUtilDTO); + } + for(CaseAppear caseAppear: caseAppearList){ + SortUtilDTO sortUtilDTO = new SortUtilDTO(); + sortUtilDTO.setObject(caseAppear); + sortUtilDTO.setDate(caseAppear.getCreateTime()); + sortUtilDTO.setType("上报申请"); + sortUtilDTOList.add(sortUtilDTO); + } + for(CaseWindupApply caseWindupApply: caseWindupApplyList){ + SortUtilDTO sortUtilDTO = new SortUtilDTO(); + sortUtilDTO.setObject(caseWindupApply); + sortUtilDTO.setDate(caseWindupApply.getCreateTime()); + sortUtilDTO.setType("结案申请"); + sortUtilDTOList.add(sortUtilDTO); + } + for(CaseAssistApply caseAssistApply: caseAssistApplyList){ + SortUtilDTO sortUtilDTO = new SortUtilDTO(); + sortUtilDTO.setObject(caseAssistApply); + sortUtilDTO.setDate(caseAssistApply.getCreateTime()); + sortUtilDTO.setType("联合处置申请"); + sortUtilDTOList.add(sortUtilDTO); + } + sortUtilDTOList.sort(Comparator.comparing(SortUtilDTO::getDate)); + List<Object> resultList = new ArrayList<>(); + for(SortUtilDTO sortUtilDTO: sortUtilDTOList){ + resultList.add(sortUtilDTO); + } + return resultList; + }catch (Exception e) { + log.error("[CaseTaskService.pageMyTaskQs]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.pageMyTaskQs", e); + } + } + /** * wechat端-查询流程进度 * @param caseId 纠纷编号 * @return */ - public List<CaseFlowDTO> wechatListCaseFlow(String caseId, String userId){ - try{ - // 临时给前端联调数据 - List<CaseFlowDTO> list = new ArrayList<>(); - QueryWrapper<CaseTask> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("case_id", caseId); - queryWrapper.orderByAsc("create_time"); - List<CaseTask> caseTasks = mapper.selectList(queryWrapper); - if(ObjectUtils.isNotEmpty(caseTasks)){ - for (CaseTask caseTask : caseTasks) { - CaseFlowDTO caseFlowDTO = new CaseFlowDTO(); - BeanUtils.copyProperties(caseTask, caseFlowDTO); - list.add(caseFlowDTO); - } - } - return list; - }catch (Exception e){ - log.error("[CaseTaskService.wechatListCaseFlow]调用失败,异常信息:"+e, e); - throw new ServiceException("CaseTaskService.wechatListCaseFlow", e); + public List<WechatCaseFlowDTO> wechatListCaseFlow(String caseId, String userId){ + // 封装办理流程 + List<WechatCaseFlowDTO> list = new ArrayList<>(); + CaseInfo caseInfo = caseInfoService.getById(caseId); + // 提交申请 + WechatCaseFlowDTO tjsq = new WechatCaseFlowDTO(); + tjsq.setProcessName("提交申请"); + tjsq.setVisitWayName(caseInfo.getVisitWayName()); + tjsq.setShowTime(caseInfo.getCreateTime()); + tjsq.setCaseTypeName(caseInfo.getCaseTypeName()); + tjsq.setProcessStep(1); + list.add(tjsq); + CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId); + // 办理中 + if (caseInfo.getInfoProcess() >= CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_2.getIndex()){ + WechatCaseFlowDTO sxbl = new WechatCaseFlowDTO(); + sxbl.setProcessName("事项办理"); + sxbl.setShowTime(caseInfoUnfold.getAcceptTime()); + sxbl.setMediateUnitName(caseInfoUnfold.getMediateUnitName()); + sxbl.setProcessStep(2); + list.add(sxbl); } + // 已结案 + if (caseInfo.getInfoProcess() >= CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_3.getIndex()){ + WechatCaseFlowDTO sxbj = new WechatCaseFlowDTO(); + sxbj.setProcessName("事项办结"); + sxbj.setShowTime(caseInfoUnfold.getCloseTime()); + sxbj.setMediResult(caseInfoUnfold.getMediResult()); + sxbj.setMediResultName(caseInfoUnfold.getMediResultName()); + sxbj.setProcessStep(3); + list.add(sxbj); + } + // 评价 + QueryWrapper<CaseEvaluate> caseEvaluateQueryWrapper = new QueryWrapper<>(); + caseEvaluateQueryWrapper.eq("case_id", caseId).orderByDesc("create_time"); + List<CaseEvaluate> caseEvaluateList = caseEvaluateService.list(caseEvaluateQueryWrapper); + if (CollectionUtils.isNotEmpty(caseEvaluateList)){ + CaseEvaluate caseEvaluate = caseEvaluateList.get(0); + WechatCaseFlowDTO sxpj = new WechatCaseFlowDTO(); + sxpj.setProcessName("事项评价"); + sxpj.setShowTime(caseEvaluate.getCreateTime()); + sxpj.setEvaluateUserName(caseEvaluate.getEvaluateUserName()); + sxpj.setEvaluateGrade(caseEvaluate.getEvaluateGrade()); + sxpj.setEvaluateRemark(caseEvaluate.getEvaluateRemark()); + sxpj.setProcessStep(4); + list.add(sxpj); + } + return list; } /** @@ -827,6 +918,10 @@ // 系统给综治中心分派,不需要签收 dfpCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); dfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); + // 任务处理时限 + if (firstFlowNode.getExpire() != 0) { + dfpCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire())); + } dfpCaseTask.setHandleUnitName("系统派单"); dfpCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); dfpCaseTask.setHandleIllust("派单至:"+caseDispBaseDTO.getTargetName()); @@ -896,21 +991,61 @@ */ public void webStartFlowZXSL(CaseInfo caseInfo, CtUserDTO loginUser){ try{ - // 启动自行受理工作流 - FlowNode firstFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_ZXSL, caseInfo.getId()); + // 启动自行受理工作流,进入待受理节点 + FlowNode dslFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_ZXSL, caseInfo.getId()); + // 创建并完成待受理任务 + CaseTask dslCaseTask = new CaseTask(); + dslCaseTask.setId(utilsClient.getNewTimeId()); + dslCaseTask.setCaseId(caseInfo.getId()); + dslCaseTask.setFlowableId(dslFlowNode.getFlowableId()); + dslCaseTask.setProcessInstanceId(dslFlowNode.getProcessInstanceId()); + dslCaseTask.setProcessTaskId(dslFlowNode.getProcessTaskId()); + dslCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); + dslCaseTask.setNodeType(dslFlowNode.getNodeType()); + dslCaseTask.setNodeId(dslFlowNode.getNodeId()); + dslCaseTask.setNodeName(dslFlowNode.getNodeName()); + dslCaseTask.setFlowId(dslFlowNode.getFlowId()); + dslCaseTask.setNodeShowName(dslFlowNode.getNodeShowName()); + dslCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); + // 自行受理,任务候选执行者类型是上一步骤选择 + dslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + dslCaseTask.setCandeUnitId(loginUser.getUnitId()); + dslCaseTask.setCandeUnitName(loginUser.getUnitName()); + // 自行受理,不需要签收 + dslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + dslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); + // 任务处理时限 + if (dslFlowNode.getExpire() != 0) { + dslCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), dslFlowNode.getExpire())); + } + dslCaseTask.setHandleUnitId(loginUser.getUnitId()); + dslCaseTask.setHandleUnitName(loginUser.getUnitName()); + dslCaseTask.setHandleUserId(loginUser.getId()); + dslCaseTask.setHandleUserName(loginUser.getTrueName()); + dslCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + dslCaseTask.setHandleIllust("自行受理"); + dslCaseTask.setHandleTime(caseInfo.getCreateTime()); + dslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + dslCaseTask.setCustId(caseInfo.getCustId()); + dslCaseTask.setCreateTime(caseInfo.getCreateTime()); + dslCaseTask.setUpdateTime(caseInfo.getCreateTime()); + mapper.insert(dslCaseTask); + // 完成待受理任务,走办理反馈节点 + FlowNode blfkFlowNode = flowInfoService.completeTask(dslCaseTask.getFlowableId(), dslCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_forward, loginUser.getId()); // 进入第1个节点-办理反馈 CaseTask blfkCaseTask = new CaseTask(); blfkCaseTask.setId(utilsClient.getNewTimeId()); blfkCaseTask.setCaseId(caseInfo.getId()); - blfkCaseTask.setFlowableId(firstFlowNode.getFlowableId()); - blfkCaseTask.setProcessInstanceId(firstFlowNode.getProcessInstanceId()); - blfkCaseTask.setProcessTaskId(firstFlowNode.getProcessTaskId()); + blfkCaseTask.setFlowableId(blfkFlowNode.getFlowableId()); + blfkCaseTask.setProcessInstanceId(blfkFlowNode.getProcessInstanceId()); + blfkCaseTask.setProcessTaskId(blfkFlowNode.getProcessTaskId()); blfkCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); - blfkCaseTask.setNodeType(firstFlowNode.getNodeType()); - blfkCaseTask.setNodeId(firstFlowNode.getNodeId()); - blfkCaseTask.setNodeName(firstFlowNode.getNodeName()); - blfkCaseTask.setFlowId(firstFlowNode.getFlowId()); - blfkCaseTask.setNodeShowName(firstFlowNode.getNodeShowName()); + blfkCaseTask.setNodeType(blfkFlowNode.getNodeType()); + blfkCaseTask.setNodeId(blfkFlowNode.getNodeId()); + blfkCaseTask.setNodeName(blfkFlowNode.getNodeName()); + blfkCaseTask.setFlowId(blfkFlowNode.getFlowId()); + blfkCaseTask.setNodeShowName(blfkFlowNode.getNodeShowName()); blfkCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); // 通过调度的,任务候选执行者类型是上一步骤选择 blfkCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); @@ -920,8 +1055,8 @@ blfkCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); blfkCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); // 任务处理时限 - if (firstFlowNode.getExpire() != 0) { - blfkCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire())); + if (blfkFlowNode.getExpire() != 0) { + blfkCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), blfkFlowNode.getExpire())); } blfkCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); blfkCaseTask.setCustId(caseInfo.getCustId()); @@ -938,6 +1073,13 @@ caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex()); caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); caseInfoService.updateCaseInfo(caseInfoPO); + // 更新纠纷扩展信息 + CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); + caseInfoUnfoldPO.setId(blfkCaseTask.getCaseId()); + caseInfoUnfoldPO.setAcceptTime(blfkCaseTask.getCreateTime()); + caseInfoUnfoldPO.setMediateUnitId(blfkCaseTask.getCandeUnitId()); + caseInfoUnfoldPO.setMediateUnitName(blfkCaseTask.getCandeUnitName()); + caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); }catch (Exception e){ log.error("[CaseTaskService.webStartFlowZXSL]调用失败,异常信息:"+e, e); throw new ServiceException("CaseTaskService.webStartFlowZXSL", e); @@ -1125,9 +1267,10 @@ List<String> taskIdList = new ArrayList<>(); List<String> caseIdList = new ArrayList<>(); for (SignTaskDTO signTaskDTO: signTaskDTOList){ - CaseTask qsCaseTask = mapper.selectById(signTaskDTO.getCaseId()); + CaseTask qsCaseTask = mapper.selectById(signTaskDTO.getCaseTaskId()); // 更新纠纷任务信息 CaseTask caseTaskPO = new CaseTask(); + caseTaskPO.setId(qsCaseTask.getId()); caseTaskPO.setSignStatus(CaseTaskConsts.SIGN_STATUS_2); caseTaskPO.setSignTime(nowDate); caseTaskPO.setSignUserId(loginUser.getId()); @@ -1139,6 +1282,7 @@ if (CaseTaskConsts.CASE_TASK_TYPE_1 == qsCaseTask.getCaseTaskType()) { // 更新纠纷信息 CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(qsCaseTask.getCaseId()); caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_3.getIndex()); caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_3.getDes()); caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex()); @@ -1252,7 +1396,8 @@ // 新增结案申请信息 caseWindupApply.setApplyUnitId(loginUser.getUnitId()); caseWindupApply.setApplyUnitName(loginUser.getUnitName()); - caseWindupApply.setApplyUserId(loginUser.getTrueName()); + caseWindupApply.setApplyUserId(loginUser.getId()); + caseWindupApply.setApplyUserName(loginUser.getTrueName()); caseWindupApply.setApplyTime(nowDate); caseWindupApply.setDeleteStatus(BaseConsts.DELETE_STATUS_0); caseWindupApply.setCreateTime(nowDate); @@ -1479,7 +1624,7 @@ } // 查询配合部门的任务,全部结束流程 QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>(); - caseTaskQueryWrapper.eq("case_task_id", CaseTaskConsts.CASE_TASK_TYPE_2).eq("case_id", jasqCaseTask.getCaseId()); + caseTaskQueryWrapper.eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).eq("case_id", jasqCaseTask.getCaseId()); List<CaseTask> assistCaseTaskList = mapper.selectList(caseTaskQueryWrapper); for (CaseTask assistCaseTask: assistCaseTaskList){ // 完成配合部门当前办理反馈任务 @@ -1690,6 +1835,9 @@ caseReturn.setReturnUserId(loginUser.getId()); caseReturn.setReturnUserName(loginUser.getTrueName()); caseReturn.setReturnTime(nowDate); + CtUnitDTO zzzxUnit = custClient.getParentZzzxUnit(loginUser.getUnitId()); + caseReturn.setAuditUnitId(zzzxUnit.getId()); + caseReturn.setAuditUnitName(zzzxUnit.getUnitName()); caseReturn.setReturnStatus(AuditBaseConsts.AUDIT_STATUS_0); caseReturn.setDeleteStatus(BaseConsts.DELETE_STATUS_0); caseReturn.setCustId(loginUser.getCustId()); @@ -1716,11 +1864,11 @@ // 新建回退审核任务 CaseTask htshCaseTask = new CaseTask(); htshCaseTask.setId(utilsClient.getNewTimeId()); - htshCaseTask.setCaseId(dslCaseTaskPO.getCaseId()); + htshCaseTask.setCaseId(dslCaseTask.getCaseId()); htshCaseTask.setFlowableId(htshFlowNode.getFlowableId()); htshCaseTask.setProcessInstanceId(htshFlowNode.getProcessInstanceId()); htshCaseTask.setProcessTaskId(htshFlowNode.getProcessTaskId()); - htshCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_2); + htshCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); htshCaseTask.setNodeType(htshFlowNode.getNodeType()); htshCaseTask.setNodeId(htshFlowNode.getNodeId()); htshCaseTask.setNodeName(htshFlowNode.getNodeName()); @@ -1793,7 +1941,7 @@ // 新建待分派任务 CaseTask dfphCaseTask = new CaseTask(); dfphCaseTask.setId(utilsClient.getNewTimeId()); - dfphCaseTask.setCaseId(dfphCaseTask.getCaseId()); + dfphCaseTask.setCaseId(htshCaseTask.getCaseId()); dfphCaseTask.setFlowableId(dfpFlowNode.getFlowableId()); dfphCaseTask.setProcessInstanceId(dfpFlowNode.getProcessInstanceId()); dfphCaseTask.setProcessTaskId(dfpFlowNode.getProcessTaskId()); @@ -1822,7 +1970,7 @@ mapper.insert(dfphCaseTask); // 更新纠纷信息 CaseInfo caseInfoPO = new CaseInfo(); - caseInfoPO.setId(dfphCaseTask.getCaseId()); + caseInfoPO.setId(htshCaseTask.getCaseId()); caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_1.getIndex()); caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_1.getDes()); caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex()); @@ -1846,7 +1994,8 @@ sbshCaseTaskPO.setHandleTime(nowDate); sbshCaseTaskPO.setUpdateTime(nowDate); mapper.updateCaseTask(sbshCaseTaskPO); - CtUnitDTO returnUnit = custClient.getUnitById(caseReturn.getReturnUnitId()); + CaseReturn btyCaseReturn = caseReturnService.getById(caseReturn.getId()); + CtUnitDTO returnUnit = custClient.getUnitById(btyCaseReturn.getReturnUnitId()); String operation = FlowableConsts.OPERATION_htsh_bty; if (UserBaseConsts.UNIT_GRADE_2 == returnUnit.getUnitGrade()){ operation = FlowableConsts.OPERATION_htsh_bty_qj; @@ -1860,7 +2009,7 @@ // 新建待分派任务 CaseTask dslCaseTask = new CaseTask(); dslCaseTask.setId(utilsClient.getNewTimeId()); - dslCaseTask.setCaseId(dslCaseTask.getCaseId()); + dslCaseTask.setCaseId(htshCaseTask.getCaseId()); dslCaseTask.setFlowableId(dslFlowNode.getFlowableId()); dslCaseTask.setProcessInstanceId(dslFlowNode.getProcessInstanceId()); dslCaseTask.setProcessTaskId(dslFlowNode.getProcessTaskId()); @@ -1873,8 +2022,8 @@ dslCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); // 受理任务,任务候选执行者类型是上一步骤选择 dslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - dslCaseTask.setCandeUnitId(caseReturn.getReturnUnitId()); - dslCaseTask.setCandeUnitName(caseReturn.getReturnUnitName()); + dslCaseTask.setCandeUnitId(btyCaseReturn.getReturnUnitId()); + dslCaseTask.setCandeUnitName(btyCaseReturn.getReturnUnitName()); // 受理后的任务,不需要签收 dslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); // 任务处理时限 @@ -1936,11 +2085,11 @@ // 新建上报审核任务 CaseTask sbshCaseTask = new CaseTask(); sbshCaseTask.setId(utilsClient.getNewTimeId()); - sbshCaseTask.setCaseId(dslCaseTaskPO.getCaseId()); + sbshCaseTask.setCaseId(dslCaseTask.getCaseId()); sbshCaseTask.setFlowableId(sbshFlowNode.getFlowableId()); sbshCaseTask.setProcessInstanceId(sbshFlowNode.getProcessInstanceId()); sbshCaseTask.setProcessTaskId(sbshFlowNode.getProcessTaskId()); - sbshCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_3); + sbshCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); sbshCaseTask.setNodeType(sbshFlowNode.getNodeType()); sbshCaseTask.setNodeId(sbshFlowNode.getNodeId()); sbshCaseTask.setNodeName(sbshFlowNode.getNodeName()); @@ -2012,7 +2161,7 @@ // 新建待分派任务 CaseTask dfphCaseTask = new CaseTask(); dfphCaseTask.setId(utilsClient.getNewTimeId()); - dfphCaseTask.setCaseId(dfphCaseTask.getCaseId()); + dfphCaseTask.setCaseId(sbshCaseTask.getCaseId()); dfphCaseTask.setFlowableId(dfpFlowNode.getFlowableId()); dfphCaseTask.setProcessInstanceId(dfpFlowNode.getProcessInstanceId()); dfphCaseTask.setProcessTaskId(dfpFlowNode.getProcessTaskId()); @@ -2041,7 +2190,7 @@ mapper.insert(dfphCaseTask); // 更新纠纷信息 CaseInfo caseInfoPO = new CaseInfo(); - caseInfoPO.setId(dfphCaseTask.getCaseId()); + caseInfoPO.setId(sbshCaseTask.getCaseId()); caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_1.getIndex()); caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_1.getDes()); caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex()); @@ -2071,7 +2220,7 @@ // 新建待分派任务 CaseTask dfphCaseTask = new CaseTask(); dfphCaseTask.setId(utilsClient.getNewTimeId()); - dfphCaseTask.setCaseId(dfphCaseTask.getCaseId()); + dfphCaseTask.setCaseId(sbshCaseTask.getCaseId()); dfphCaseTask.setFlowableId(dfpFlowNode.getFlowableId()); dfphCaseTask.setProcessInstanceId(dfpFlowNode.getProcessInstanceId()); dfphCaseTask.setProcessTaskId(dfpFlowNode.getProcessTaskId()); -- Gitblit v1.8.0