From 3ce77531a4e13d749d58fea1a13695a80fbb9516 Mon Sep 17 00:00:00 2001 From: liyj <1003249715@qq.com> Date: Sun, 15 Sep 2024 12:19:13 +0800 Subject: [PATCH] 1、自行受理跳转bug修复 2、联合处置流程优化 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java | 494 +++++++++++++++++++++++++++++------------------------- 1 files changed, 263 insertions(+), 231 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 9cc3474..0b4cabf 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; @@ -401,7 +402,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); @@ -411,106 +411,105 @@ 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){ - WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); - if (CaseTaskConsts.TASK_STATUS_1 == caseTask.getStatus()){ - if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){ - webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - webCaseFlowDTO.setProcessName(caseTask.getNodeShowName()); - }else{ - webCaseFlowDTO.setProcessName(caseInfo.getProcessName()); - } - webCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); - webCaseFlowDTO.setTaskType(caseTask.getTaskType()); - webCaseFlowDTO.setStatus(caseTask.getStatus()); - }else { - webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); - webCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); - webCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); - webCaseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); - webCaseFlowDTO.setTaskType(caseTask.getTaskType()); - // todo 审核不通过、通过的展示,有调解结果的 - if (CaseTaskConsts.HANDLE_RESULT_1 == caseTask.getHandleResult()) { - - } - if (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) { - - } - webCaseFlowDTO.setStatus(caseTask.getStatus()); - } - handleCaseFlowList.add(webCaseFlowDTO); - // 待受理节点,已签收的并处理完,需要加多一个受理节点 - 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()){ - WebCaseFlowDTO slWebCaseFlowDTO = new WebCaseFlowDTO(); - if (CaseTaskConsts.TASK_STATUS_1 == caseTask.getStatus()){ - if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){ - slWebCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - slWebCaseFlowDTO.setProcessName(caseTask.getNodeShowName()); - }else{ - slWebCaseFlowDTO.setProcessName(caseInfo.getProcessName()); - } - slWebCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); - slWebCaseFlowDTO.setTaskType(caseTask.getTaskType()); - slWebCaseFlowDTO.setStatus(caseTask.getStatus()); - }else { + // 已结束节点 + 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() && 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("已受理"); - if (CaseTaskConsts.HANDLE_RESULT_1 == caseTask.getHandleResult()) { - slWebCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex()); - slWebCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes()); - slWebCaseFlowDTO.setTaskType(caseTask.getTaskType()); - } - if (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) { - slWebCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_2.getIndex()); - slWebCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_2.getDes()); - slWebCaseFlowDTO.setTaskType(CaseTaskConsts.TASK_TYPE_2); - } + slWebCaseFlowDTO.setHandleNotes("已签收"); + slWebCaseFlowDTO.setTaskType(caseTask.getTaskType()); slWebCaseFlowDTO.setStatus(caseTask.getStatus()); + handleCaseFlowList.add(slWebCaseFlowDTO); } - handleCaseFlowList.add(slWebCaseFlowDTO); } - } - - // 办理反馈节点,加上化解结果 - if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_BLFK.getIndex())){ - WebCaseFlowDTO blfkWebCaseFlowDTO = new WebCaseFlowDTO(); - if (CaseTaskConsts.TASK_STATUS_1 == caseTask.getStatus()){ - if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){ - blfkWebCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - blfkWebCaseFlowDTO.setProcessName(caseTask.getNodeShowName()); - }else{ - blfkWebCaseFlowDTO.setProcessName(caseInfo.getProcessName()); - } - blfkWebCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); - blfkWebCaseFlowDTO.setTaskType(caseTask.getTaskType()); - blfkWebCaseFlowDTO.setStatus(caseTask.getStatus()); - }else { - blfkWebCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - blfkWebCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); - blfkWebCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); - blfkWebCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); - CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId); - blfkWebCaseFlowDTO.setHandleNotes("化解结果:"+caseInfoUnfold.getMediResultName()); - blfkWebCaseFlowDTO.setTaskType(caseTask.getTaskType()); - // todo 审核不通过、通过的展示,有调解结果的 - if (CaseTaskConsts.HANDLE_RESULT_1 == caseTask.getHandleResult()) { + // 普通节点 + 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(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()) + || 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{ + // 处理通过 + webCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex()); + webCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes()); } - blfkWebCaseFlowDTO.setStatus(caseTask.getStatus()); + // 临时加上 + webCaseFlowDTO.setHandleNotes("审核结果:"+webCaseFlowDTO.getAuditResultName()); } - handleCaseFlowList.add(blfkWebCaseFlowDTO); + // 结案申请,需要展示化解结果 + 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()); + // 临时加上 + webCaseFlowDTO.setHandleNotes("化解结果:"+webCaseFlowDTO.getMediResultName()); + } + } + handleCaseFlowList.add(webCaseFlowDTO); + }else { + // 进行中的节点 + WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); + webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + 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); } } result.put("handleCaseFlowList", handleCaseFlowList); @@ -789,55 +788,53 @@ * @return */ public List<WechatCaseFlowDTO> wechatListCaseFlow(String caseId, String userId){ - try{ - // 封装办理流程 - 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()); - list.add(tjsq); - // 办理中 - if (caseInfo.getInfoProcess() == CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_2.getIndex()){ - CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId); - WechatCaseFlowDTO sxbl = new WechatCaseFlowDTO(); - sxbl.setProcessName("事项办理"); - sxbl.setShowTime(caseInfoUnfold.getAcceptTime()); - sxbl.setMediateUnitName(caseInfoUnfold.getMediateUnitName()); - list.add(sxbl); - } - // 已结案 - if (caseInfo.getInfoProcess() == CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_2.getIndex()){ - CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId); - WechatCaseFlowDTO sxbj = new WechatCaseFlowDTO(); - sxbj.setProcessName("事项办结"); - sxbj.setShowTime(caseInfoUnfold.getCloseTime()); - sxbj.setMediResult(caseInfoUnfold.getMediResult()); - sxbj.setMediResultName(caseInfoUnfold.getMediResultName()); - 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()); - list.add(sxpj); - } - return list; - }catch (Exception e){ - log.error("[CaseTaskService.wechatListCaseFlow]调用失败,异常信息:"+e, e); - throw new ServiceException("CaseTaskService.wechatListCaseFlow", e); + // 封装办理流程 + 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; } /** @@ -918,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()); @@ -931,36 +932,36 @@ FlowNode secondFlowNode = flowInfoService.completeTask(dfpCaseTask.getFlowableId(), dfpCaseTask.getProcessTaskId(), FlowableConsts.OPERATION_jb_zszz, "系统派单"); // 进入第2个节点-镇街级组织待受理 - CaseTask sdlCaseTask = new CaseTask(); - sdlCaseTask.setId(utilsClient.getNewTimeId()); - sdlCaseTask.setCaseId(caseInfo.getId()); - sdlCaseTask.setFlowableId(secondFlowNode.getFlowableId()); - sdlCaseTask.setProcessInstanceId(secondFlowNode.getProcessInstanceId()); - sdlCaseTask.setProcessTaskId(secondFlowNode.getProcessTaskId()); - sdlCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); - sdlCaseTask.setNodeType(secondFlowNode.getNodeType()); - sdlCaseTask.setNodeId(secondFlowNode.getNodeId()); - sdlCaseTask.setNodeName(secondFlowNode.getNodeName()); - sdlCaseTask.setFlowId(secondFlowNode.getFlowId()); - sdlCaseTask.setNodeShowName(secondFlowNode.getNodeShowName()); - sdlCaseTask.setCaseTaskType(dfpCaseTask.getCaseTaskType()); + CaseTask dslCaseTask = new CaseTask(); + dslCaseTask.setId(utilsClient.getNewTimeId()); + dslCaseTask.setCaseId(caseInfo.getId()); + dslCaseTask.setFlowableId(secondFlowNode.getFlowableId()); + dslCaseTask.setProcessInstanceId(secondFlowNode.getProcessInstanceId()); + dslCaseTask.setProcessTaskId(secondFlowNode.getProcessTaskId()); + dslCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); + dslCaseTask.setNodeType(secondFlowNode.getNodeType()); + dslCaseTask.setNodeId(secondFlowNode.getNodeId()); + dslCaseTask.setNodeName(secondFlowNode.getNodeName()); + dslCaseTask.setFlowId(secondFlowNode.getFlowId()); + dslCaseTask.setNodeShowName(secondFlowNode.getNodeShowName()); + dslCaseTask.setCaseTaskType(dfpCaseTask.getCaseTaskType()); // 通过调度的,任务候选执行者类型是上一步骤选择 - sdlCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - sdlCaseTask.setCandeUnitId(caseDispBaseDTO.getTargetId()); - sdlCaseTask.setCandeUnitName(caseDispBaseDTO.getTargetName()); + dslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + dslCaseTask.setCandeUnitId(caseDispBaseDTO.getTargetId()); + dslCaseTask.setCandeUnitName(caseDispBaseDTO.getTargetName()); // 系统调度给调解组织,需要签收 - sdlCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1); - sdlCaseTask.setSignExpireTime(sysClient.getExpireTime(caseInfo.getCreateTime(), SyTimeEnum.SY_TIME_2.getIndex())); + dslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1); + dslCaseTask.setSignExpireTime(sysClient.getExpireTime(caseInfo.getCreateTime(), SyTimeEnum.SY_TIME_2.getIndex())); // 任务处理时限 if (firstFlowNode.getExpire() != 0) { - sdlCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire())); + dslCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire())); } - sdlCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); - sdlCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); - sdlCaseTask.setCustId(caseInfo.getCustId()); - sdlCaseTask.setCreateTime(caseInfo.getCreateTime()); - sdlCaseTask.setUpdateTime(caseInfo.getUpdateTime()); - mapper.insert(sdlCaseTask); + dslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + dslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + dslCaseTask.setCustId(caseInfo.getCustId()); + dslCaseTask.setCreateTime(caseInfo.getCreateTime()); + dslCaseTask.setUpdateTime(caseInfo.getUpdateTime()); + mapper.insert(dslCaseTask); // 更新纠纷信息 CaseInfo caseInfoPO = new CaseInfo(); caseInfoPO.setId(caseInfo.getId()); @@ -985,23 +986,63 @@ * @param caseInfo * @param loginUser */ - public void webStartFlowZXSL(CaseInfo caseInfo, CtUserDTO loginUser){ + public String 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); @@ -1011,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()); @@ -1029,6 +1070,14 @@ 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); + return dslCaseTask.getId(); }catch (Exception e){ log.error("[CaseTaskService.webStartFlowZXSL]调用失败,异常信息:"+e, e); throw new ServiceException("CaseTaskService.webStartFlowZXSL", e); @@ -1138,57 +1187,38 @@ String assistUnitName = assignTaskDTO.getAssistUnitList().stream().map(AssignAssistUnitDTO::getUitId). collect(Collectors.joining(BaseConsts.COMMA)); for (AssignAssistUnitDTO assignAssistUnitDTO: assignTaskDTO.getAssistUnitList()){ - // 创建交办配合组织任务 - CaseTask jbAssistCaseTask = new CaseTask(); - jbAssistCaseTask.setId(utilsClient.getNewTimeId()); - jbAssistCaseTask.setCaseId(dfpCaseTask.getCaseId()); - jbAssistCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); - jbAssistCaseTask.setNodeName("交办配合部门"); - jbAssistCaseTask.setNodeShowName("交办配合部门"); - jbAssistCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2); - // 配合任务,任务候选执行者类型是上一步骤选择 - jbAssistCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - jbAssistCaseTask.setCandeUnitId(loginUser.getUnitId()); - jbAssistCaseTask.setCandeUnitName(loginUser.getUnitName()); - jbAssistCaseTask.setHandleUnitId(loginUser.getUnitId()); - jbAssistCaseTask.setHandleUnitName(loginUser.getUnitId()); - jbAssistCaseTask.setHandleUserId(loginUser.getId()); - jbAssistCaseTask.setHandleUserName(loginUser.getTrueName()); - jbAssistCaseTask.setHandleContent(assignTaskDTO.getAssignContent()); - jbAssistCaseTask.setHandleIllust("派单至:"+assignTaskDTO.getHandleUnitName()); - jbAssistCaseTask.setHandleTime(nowDate); - // 不需要签收 - jbAssistCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); - jbAssistCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); - jbAssistCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); - jbAssistCaseTask.setCustId(dfpCaseTask.getCustId()); - jbAssistCaseTask.setCreateTime(nowDate); - jbAssistCaseTask.setUpdateTime(nowDate); - mapper.insert(jbAssistCaseTask); - // 创建配合组织任务 - CaseTask assistCaseTask = new CaseTask(); - assistCaseTask.setId(utilsClient.getNewTimeId()); - assistCaseTask.setCaseId(dfpCaseTask.getCaseId()); - assistCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); - assistCaseTask.setNodeId(FlowNodeEnum.FLOW_NODE_BLFK.getIndex()); - assistCaseTask.setNodeName(FlowNodeEnum.FLOW_NODE_BLFK.getDes()); - assistCaseTask.setNodeShowName(FlowNodeEnum.FLOW_NODE_BLFK.getIndex()); - assistCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2); - // 配合任务,任务候选执行者类型是上一步骤选择 - assistCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - assistCaseTask.setCandeUnitId(assignAssistUnitDTO.getUitId()); - assistCaseTask.setCandeUnitName(assignAssistUnitDTO.getUitName()); - assistCaseTask.setHandleUnitId(assignAssistUnitDTO.getUitId()); - assistCaseTask.setHandleUnitName(assignAssistUnitDTO.getUitName()); - // 分派的任务,需要签收 - assistCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1); - assistCaseTask.setSignExpireTime(sysClient.getExpireTime(nowDate, SyTimeEnum.SY_TIME_2.getIndex())); - assistCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); - assistCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); - assistCaseTask.setCustId(dfpCaseTask.getCustId()); - assistCaseTask.setCreateTime(nowDate); - assistCaseTask.setUpdateTime(nowDate); - mapper.insert(assistCaseTask); + // 启动联合处置工作流 + FlowNode firstFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_LHCZ, dfpCaseTask.getCaseId()); + // 创建配合部门待受理任务 + CaseTask lhczCaseTask = new CaseTask(); + lhczCaseTask.setId(utilsClient.getNewTimeId()); + lhczCaseTask.setCaseId(dfpCaseTask.getCaseId()); + lhczCaseTask.setFlowableId(firstFlowNode.getFlowableId()); + lhczCaseTask.setProcessInstanceId(firstFlowNode.getProcessInstanceId()); + lhczCaseTask.setProcessTaskId(firstFlowNode.getProcessTaskId()); + lhczCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); + lhczCaseTask.setNodeType(firstFlowNode.getNodeType()); + lhczCaseTask.setNodeId(firstFlowNode.getNodeId()); + lhczCaseTask.setNodeName(firstFlowNode.getNodeName()); + lhczCaseTask.setFlowId(firstFlowNode.getFlowId()); + lhczCaseTask.setNodeShowName(firstFlowNode.getNodeShowName()); + lhczCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2); + // 通过调度的,任务候选执行者类型是上一步骤选择 + lhczCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + lhczCaseTask.setCandeUnitId(assignAssistUnitDTO.getUitId()); + lhczCaseTask.setCandeUnitName(assignAssistUnitDTO.getUitName()); + // 需要签收 + lhczCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1); + lhczCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + // 任务处理时限 + if (firstFlowNode.getExpire() != 0) { + lhczCaseTask.setExpireTime(DateUtils.addDay(nowDate, firstFlowNode.getExpire())); + } + lhczCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + lhczCaseTask.setCustId(dfpCaseTask.getCustId()); + lhczCaseTask.setCreateTime(nowDate); + lhczCaseTask.setUpdateTime(nowDate); + mapper.insert(lhczCaseTask); } // 更新纠纷扩展信息 CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); @@ -1213,8 +1243,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()); // 更新纠纷任务信息 @@ -1253,7 +1281,7 @@ * @param acceptTaskDTO 受理任务表单 * @param userId 当前登录用户 */ - public void webAccept(AcceptTaskDTO acceptTaskDTO, String userId){ + public String webAccept(AcceptTaskDTO acceptTaskDTO, String userId){ try{ Date nowDate = DateUtils.getNowDate(); // 获取当前登录用户 @@ -1326,6 +1354,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); @@ -1345,7 +1374,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); @@ -1796,6 +1826,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()); @@ -1816,7 +1847,7 @@ 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()); @@ -2017,6 +2048,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()); @@ -2037,7 +2069,7 @@ 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()); -- Gitblit v1.8.0