From cdd90bc849a859d20f4e4b5e4a09f12906fc4be5 Mon Sep 17 00:00:00 2001 From: liyj <1003249715@qq.com> Date: Sun, 15 Sep 2024 00:56:20 +0800 Subject: [PATCH] 1、流程进度展示bug修复3 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java | 179 ++++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 121 insertions(+), 58 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 776d69a..123daa6 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 @@ -39,6 +39,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Maps; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -413,59 +414,59 @@ for (CaseTask caseTask: handleCaseTaskList){ // 已结束节点 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())){ - 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); + if (CaseTaskConsts.SIGN_STATUS_2 == caseTask.getSignStatus() && CaseTaskConsts.TASK_TYPE_1 == caseTask.getTaskType()){ + 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); + } } // 普通节点 WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); webCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); webCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); webCaseFlowDTO.setStatus(caseTask.getStatus()); webCaseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); webCaseFlowDTO.setTaskType(caseTask.getTaskType()); + // 回退申请节点 + if(CaseTaskConsts.TASK_TYPE_2 == caseTask.getTaskType()){ + webCaseFlowDTO.setNodeShowName("事件回退"); + CaseReturn caseReturn = caseReturnService.getNewByCaseId(caseId); + if (StringUtils.isNotEmpty(caseReturn.getReturnContent())) { + webCaseFlowDTO.setHandleNotes("回退理由:" + caseReturn.getReturnContent()); + }else { + webCaseFlowDTO.setHandleNotes("回退理由:-"); + + } + } + // 上报申请节点 + if(CaseTaskConsts.TASK_TYPE_3 == caseTask.getTaskType()){ + webCaseFlowDTO.setNodeShowName("事件上报"); + CaseAppear caseAppear = caseAppearService.getNewByCaseId(caseId); + if (StringUtils.isNotEmpty(caseAppear.getAppearContent())) { + webCaseFlowDTO.setHandleNotes("上报理由:" + caseAppear.getAppearContent()); + }else { + webCaseFlowDTO.setHandleNotes("上报意见:-" ); + } + } + // 当事人评价节点,特殊处理 + if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){ + webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + webCaseFlowDTO.setProcessName(caseTask.getNodeShowName()); + }else{ + webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); + } // 审核节点要判断通过/不通过 if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JASH.getIndex()) || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_ZJ_HTSH.getIndex()) @@ -478,11 +479,13 @@ 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()) { + }else{ // 处理通过 webCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex()); webCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes()); } + // 临时加上 + webCaseFlowDTO.setHandleNotes("审核结果:"+webCaseFlowDTO.getAuditResultName()); } // 结案申请,需要展示化解结果 if (FlowNodeEnum.FLOW_NODE_JASQ.getIndex().equals(caseTask.getNodeId())){ @@ -490,6 +493,8 @@ if (ObjectUtils.isNotEmpty(caseInfoUnfold)){ webCaseFlowDTO.setMediResult(caseInfoUnfold.getMediResult()); webCaseFlowDTO.setMediResultName(caseInfoUnfold.getMediResultName()); + // 临时加上 + webCaseFlowDTO.setHandleNotes("化解结果:"+webCaseFlowDTO.getMediResultName()); } } handleCaseFlowList.add(webCaseFlowDTO); @@ -497,8 +502,13 @@ // 进行中的节点 WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - webCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); webCaseFlowDTO.setStatus(caseTask.getStatus()); + // 当事人评价节点,特殊处理 + if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){ + webCaseFlowDTO.setProcessName(caseTask.getNodeShowName()); + }else{ + webCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); + } handleCaseFlowList.add(webCaseFlowDTO); } } @@ -905,6 +915,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()); @@ -974,21 +988,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); @@ -998,8 +1052,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()); @@ -1016,6 +1070,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); @@ -1200,8 +1261,6 @@ Date nowDate = DateUtils.getNowDate(); // 获取当前登录用户 CtUserDTO loginUser = custClient.clientGetUserAll(userId); - List<String> taskIdList = new ArrayList<>(); - List<String> caseIdList = new ArrayList<>(); for (SignTaskDTO signTaskDTO: signTaskDTOList){ CaseTask qsCaseTask = mapper.selectById(signTaskDTO.getCaseTaskId()); // 更新纠纷任务信息 @@ -1240,7 +1299,7 @@ * @param acceptTaskDTO 受理任务表单 * @param userId 当前登录用户 */ - public void webAccept(AcceptTaskDTO acceptTaskDTO, String userId){ + public String webAccept(AcceptTaskDTO acceptTaskDTO, String userId){ try{ Date nowDate = DateUtils.getNowDate(); // 获取当前登录用户 @@ -1313,6 +1372,7 @@ caseInfoUnfoldPO.setMediateUnitName(blfkCaseTask.getCandeUnitName()); caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); } + return blfkCaseTask.getId(); }catch (Exception e){ log.error("[CaseTaskService.webAccept]调用失败,异常信息:"+e, e); throw new ServiceException("CaseTaskService.webAccept", e); @@ -1332,7 +1392,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); @@ -1783,6 +1844,7 @@ // 完成当前待受理任务 CaseTask dslCaseTaskPO = new CaseTask(); dslCaseTaskPO.setId(caseReturn.getCaseTaskId()); + dslCaseTaskPO.setTaskType(CaseTaskConsts.TASK_TYPE_2); dslCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); dslCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); dslCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); @@ -2004,6 +2066,7 @@ // 完成当前待受理任务 CaseTask dslCaseTaskPO = new CaseTask(); dslCaseTaskPO.setId(caseAppear.getCaseTaskId()); + dslCaseTaskPO.setTaskType(CaseTaskConsts.TASK_TYPE_3); dslCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); dslCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); dslCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); -- Gitblit v1.8.0