forked from gzzfw/backEnd/gz-dyh

liyj
2024-10-28 1ac0d92fc65b6e1524b172af4adffbf8974e467b
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);
        }
    }
}