From e0b8a22df9a40e1b5691140e23721d2c0a5a5a0b Mon Sep 17 00:00:00 2001 From: wangwh <2397901735@qq.com> Date: Fri, 25 Oct 2024 09:32:21 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/gzdyh_grid' into gzdyh_grid --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java | 154 +++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 125 insertions(+), 29 deletions(-) diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java index ab9dd93..29b9c33 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java @@ -172,49 +172,60 @@ caseEvaluate.setCustId(loginUser.getCustId()); caseEvaluate.setUpdateTime(nowDate); this.saveOrUpdate(caseEvaluate); - // 查询当事人评价任务 + // 查询当事人评价节点任务 QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>(); - caseTaskQueryWrapper.eq("case_id", caseEvaluate.getCaseId()).eq("node_id", FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex()); + caseTaskQueryWrapper.eq("case_id", caseEvaluate.getCaseId()) + .eq("node_id", FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex()) + .eq("status", CaseTaskConsts.TASK_STATUS_1); CaseTask dsrpjCaseTask = caseTaskService.getOne(caseTaskQueryWrapper); - // 完成当前当事人评价任务 + // 完成当前当事人评价节点任务 dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); + dsrpjCaseTask.setHandleUnitId(dsrpjCaseTask.getCandeUnitId()); + dsrpjCaseTask.setHandleUnitName(dsrpjCaseTask.getCandeUnitName()); dsrpjCaseTask.setHandleUserId(loginUser.getId()); - dsrpjCaseTask.setHandleUserName(loginUser.getTrueName()); - dsrpjCaseTask.setHandleUserName(loginUser.getTrueName()); - dsrpjCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + dsrpjCaseTask.setHandleUserName(loginUser.getTrueName()+"(当事人)"); + dsrpjCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); dsrpjCaseTask.setHandleTime(nowDate); dsrpjCaseTask.setUpdateTime(nowDate); caseTaskService.updateCaseTask(dsrpjCaseTask); - // 完成当前当事人评价工作流任务 - FlowNode dsrpjFlowNode = flowInfoService.completeTask(dsrpjCaseTask.getFlowableId(), dsrpjCaseTask.getProcessTaskId(), + // 完成当前当事人评价工作流节点任务,进入结案归档节点 + FlowNode jagdFlowNode = flowInfoService.completeTask(dsrpjCaseTask.getFlowableId(), dsrpjCaseTask.getProcessTaskId(), FlowableConsts.OPERATION_forward, userId); - // 默认完成结案归档任务 + // 创建并完成结案归档任务 CaseTask jagdCaseTask = new CaseTask(); jagdCaseTask.setId(utilsClient.getNewTimeId()); jagdCaseTask.setCaseId(caseEvaluate.getCaseId()); - jagdCaseTask.setFlowableId(dsrpjFlowNode.getFlowableId()); - jagdCaseTask.setProcessInstanceId(dsrpjFlowNode.getProcessInstanceId()); - jagdCaseTask.setProcessTaskId(dsrpjFlowNode.getProcessTaskId()); - jagdCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); - jagdCaseTask.setNodeType(dsrpjFlowNode.getNodeType()); - jagdCaseTask.setNodeId(dsrpjFlowNode.getNodeId()); - jagdCaseTask.setNodeName(dsrpjFlowNode.getNodeName()); - jagdCaseTask.setFlowId(dsrpjFlowNode.getFlowId()); - jagdCaseTask.setNodeShowName(dsrpjFlowNode.getNodeShowName()); + jagdCaseTask.setFlowableId(jagdFlowNode.getFlowableId()); + jagdCaseTask.setProcessInstanceId(jagdFlowNode.getProcessInstanceId()); + jagdCaseTask.setProcessTaskId(jagdFlowNode.getProcessTaskId()); + jagdCaseTask.setNodeType(jagdFlowNode.getNodeType()); + jagdCaseTask.setNodeId(jagdFlowNode.getNodeId()); + jagdCaseTask.setNodeName(jagdFlowNode.getNodeName()); + jagdCaseTask.setFlowId(jagdFlowNode.getFlowId()); + jagdCaseTask.setNodeShowName(jagdFlowNode.getNodeShowName()); jagdCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); - // 通过调度的,任务候选执行者类型是上一步骤选择 - jagdCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - jagdCaseTask.setCandeUnitId(dsrpjCaseTask.getCandeUnitId()); - jagdCaseTask.setCandeUnitName(dsrpjCaseTask.getCandeUnitName()); - // 系不需要签收 + // 任务所属单位:结案申请组织 + caseTaskQueryWrapper.clear(); + caseTaskQueryWrapper.eq("case_id", caseEvaluate.getCaseId()) + .eq("node_id", FlowNodeEnum.FLOW_NODE_JASQ.getIndex()) + .eq("status", CaseTaskConsts.TASK_STATUS_2).orderByDesc("create_time"); + List<CaseTask> jasqCaseTaskList = caseTaskService.list(caseTaskQueryWrapper); + jagdCaseTask.setCandeUnitId(jasqCaseTaskList.get(0).getHandleUnitId()); + jagdCaseTask.setCandeUnitName(jasqCaseTaskList.get(0).getHandleUnitName()); + // 受理后的任务,不需要签收 jagdCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); // 任务处理时限 - if (dsrpjFlowNode.getExpire() != 0) { - jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, dsrpjFlowNode.getExpire())); + if (jagdFlowNode.getExpire() != 0) { + jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, jagdFlowNode.getExpire())); } - jagdCaseTask.setHandleUnitName("系统自动"); - jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + jagdCaseTask.setHandleUnitId(jasqCaseTaskList.get(0).getHandleUnitId()); + jagdCaseTask.setHandleUnitName(jasqCaseTaskList.get(0).getHandleUnitName()); + jagdCaseTask.setHandleDeptId(jasqCaseTaskList.get(0).getHandleDeptId()); + jagdCaseTask.setHandleDeptName(jasqCaseTaskList.get(0).getHandleDeptName()); + jagdCaseTask.setHandleUserId(jasqCaseTaskList.get(0).getHandleUserId()); + jagdCaseTask.setHandleUserName(jasqCaseTaskList.get(0).getHandleUserName()); + jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); jagdCaseTask.setHandleTime(nowDate); jagdCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); jagdCaseTask.setCustId(dsrpjCaseTask.getCustId()); @@ -223,7 +234,7 @@ caseTaskService.save(jagdCaseTask); // 结束工作流流程 flowInfoService.completeTask(jagdCaseTask.getFlowableId(), jagdCaseTask.getProcessTaskId(), - FlowableConsts.OPERATION_jb_zszz, "系统自动"); + FlowableConsts.OPERATION_forward, jasqCaseTaskList.get(0).getHandleUserId()); // 更新纠纷信息 CaseInfo caseInfoPO = new CaseInfo(); caseInfoPO.setId(dsrpjCaseTask.getCaseId()); @@ -235,11 +246,96 @@ caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); caseInfoPO.setUpdateTime(nowDate); caseInfoService.updateCaseInfo(caseInfoPO); - }catch (Exception e){ log.error("[CaseEvaluateService.saveCaseEvaluateWechat]调用失败,异常信息:"+e, e); throw new ServiceException("CaseEvaluateService.saveCaseEvaluateWechat", e); } } + + /** + * 超时跳过评价 + * @param idList 超时事件编号 + */ + public void autoArchive(List<String>idList){ + try{ + Date nowDate = DateUtils.getNowDate(); + // 查询当事人评价任务 + QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>(); + caseTaskQueryWrapper.in("case_id", idList).eq("node_id", FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex()); + List<CaseTask> dsrpjCaseTaskList = caseTaskService.list(caseTaskQueryWrapper); + for(CaseTask dsrpjCaseTask: dsrpjCaseTaskList){ + // 完成当前当事人评价节点任务 + dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); + dsrpjCaseTask.setHandleUserId(dsrpjCaseTask.getCandeUserId()); + dsrpjCaseTask.setHandleUserName(dsrpjCaseTask.getCandeUserName()); + dsrpjCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); + dsrpjCaseTask.setHandleIllust("规定时间内未评价"); + dsrpjCaseTask.setHandleTime(nowDate); + dsrpjCaseTask.setUpdateTime(nowDate); + caseTaskService.updateCaseTask(dsrpjCaseTask); + // 完成当前当事人评价工作流节点任务,进入结案归档节点 + FlowNode jagdFlowNode = flowInfoService.completeTask(dsrpjCaseTask.getFlowableId(), dsrpjCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_forward, "系统自动"); + // 创建并完成结案归档任务 + CaseTask jagdCaseTask = new CaseTask(); + jagdCaseTask.setId(utilsClient.getNewTimeId()); + jagdCaseTask.setCaseId(dsrpjCaseTask.getCaseId()); + jagdCaseTask.setFlowableId(jagdFlowNode.getFlowableId()); + jagdCaseTask.setProcessInstanceId(jagdFlowNode.getProcessInstanceId()); + jagdCaseTask.setProcessTaskId(jagdFlowNode.getProcessTaskId()); + jagdCaseTask.setNodeType(jagdFlowNode.getNodeType()); + jagdCaseTask.setNodeId(jagdFlowNode.getNodeId()); + jagdCaseTask.setNodeName(jagdFlowNode.getNodeName()); + jagdCaseTask.setFlowId(jagdFlowNode.getFlowId()); + jagdCaseTask.setNodeShowName(jagdFlowNode.getNodeShowName()); + jagdCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); + // 任务所属单位:结案申请组织 + caseTaskQueryWrapper.clear(); + caseTaskQueryWrapper.eq("case_id", dsrpjCaseTask.getCaseId()) + .eq("node_id", FlowNodeEnum.FLOW_NODE_JASQ.getIndex()) + .eq("status", CaseTaskConsts.TASK_STATUS_2).orderByDesc("create_time"); + List<CaseTask> jasqCaseTaskList = caseTaskService.list(caseTaskQueryWrapper); + jagdCaseTask.setCandeUnitId(jasqCaseTaskList.get(0).getHandleUnitId()); + jagdCaseTask.setCandeUnitName(jasqCaseTaskList.get(0).getHandleUnitName()); + // 受理后的任务,不需要签收 + jagdCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); + // 任务处理时限 + if (jagdFlowNode.getExpire() != 0) { + jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, jagdFlowNode.getExpire())); + } + jagdCaseTask.setHandleUnitId(jasqCaseTaskList.get(0).getHandleUnitId()); + jagdCaseTask.setHandleUnitName(jasqCaseTaskList.get(0).getHandleUnitName()); + jagdCaseTask.setHandleDeptId(jasqCaseTaskList.get(0).getHandleDeptId()); + jagdCaseTask.setHandleDeptName(jasqCaseTaskList.get(0).getHandleDeptName()); + jagdCaseTask.setHandleUserId(jasqCaseTaskList.get(0).getHandleUserId()); + jagdCaseTask.setHandleUserName(jasqCaseTaskList.get(0).getHandleUserName()); + jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); + jagdCaseTask.setHandleTime(nowDate); + jagdCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + jagdCaseTask.setCustId(dsrpjCaseTask.getCustId()); + jagdCaseTask.setCreateTime(nowDate); + jagdCaseTask.setUpdateTime(nowDate); + caseTaskService.save(jagdCaseTask); + // 结束工作流流程 + flowInfoService.completeTask(jagdCaseTask.getFlowableId(), jagdCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_jb_zszz, jasqCaseTaskList.get(0).getHandleUserId()); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(dsrpjCaseTask.getCaseId()); + caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_7.getIndex()); + caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_7.getDes()); + caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex()); + caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes()); + caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex()); + caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); + caseInfoPO.setUpdateTime(nowDate); + caseInfoService.updateCaseInfo(caseInfoPO); + } + }catch (Exception e){ + log.error("[CaseEvaluateService.autoArchive]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseEvaluateService.autoArchive", e); + } + } } -- Gitblit v1.8.0