From 80cc7fd5df68a78df4921379a4909a8025febdfc Mon Sep 17 00:00:00 2001 From: xusd <hugeinfo123> Date: Sun, 27 Oct 2024 16:09:03 +0800 Subject: [PATCH] Merge branch 'gzdyh_test' into gzdyh_grid --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java | 179 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 179 insertions(+), 0 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 6a0dc4b..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 @@ -3,11 +3,23 @@ import cn.huge.base.common.exception.ServiceException; import cn.huge.base.common.utils.DateUtils; import cn.huge.base.common.utils.IdUtils; +import cn.huge.module.cases.consts.CaseTaskConsts; +import cn.huge.module.cases.domain.po.CaseInfo; +import cn.huge.module.cases.domain.po.CaseTask; import cn.huge.module.client.api.impl.CustClientImpl; import cn.huge.module.client.api.impl.UtilsClientImpl; import cn.huge.module.cases.dao.mapper.CaseEvaluateMapper; import cn.huge.module.cases.domain.po.CaseEvaluate; +import cn.huge.module.constant.BaseConsts; import cn.huge.module.cust.dto.PaUserDTO; +import cn.huge.module.flow.consts.FlowNodeEnum; +import cn.huge.module.flow.consts.FlowableConsts; +import cn.huge.module.flow.domain.po.FlowNode; +import cn.huge.module.flow.service.FlowInfoService; +import cn.huge.module.mediate.constant.CaseInfoProcessBaseConstsEnum; +import cn.huge.module.mediate.constant.CaseProcessBaseConstsEnum; +import cn.huge.module.mediate.constant.CaseStatusBaseConstsEnum; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -44,6 +56,12 @@ @Autowired private CustClientImpl custClient; + @Autowired + private CaseTaskService caseTaskService; + @Autowired + private FlowInfoService flowInfoService; + @Autowired + private CaseInfoService caseInfoService; /** * 更新对象 @@ -147,16 +165,177 @@ if (IdUtils.checkNewId(caseEvaluate.getId())){ caseEvaluate.setId(utilsClient.getNewTimeId()); caseEvaluate.setCreateTime(nowDate); + caseEvaluate.setDeleteStatus(BaseConsts.DELETE_STATUS_0); } caseEvaluate.setEvaluateUserId(loginUser.getId()); caseEvaluate.setEvaluateUserName(loginUser.getTrueName()); 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()) + .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.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); + dsrpjCaseTask.setHandleTime(nowDate); + dsrpjCaseTask.setUpdateTime(nowDate); + caseTaskService.updateCaseTask(dsrpjCaseTask); + // 完成当前当事人评价工作流节点任务,进入结案归档节点 + 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(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", 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 (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_forward, 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.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