forked from gzzfw/backEnd/gz-dyh

liyj
2024-09-14 ecb8ee9c13ef1d4b7c0324dcd39e3ae34d9ce5b5
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java
@@ -413,20 +413,22 @@
            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 (CaseTaskConsts.SIGN_STATUS_2 == caseTask.getSignStatus()){
                            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())
@@ -460,12 +462,18 @@
                    // 普通节点
                    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 (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())
@@ -496,8 +504,13 @@
                }else {
                    // 进行中的节点
                    WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO();
                    webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                    webCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName());
                    // 当事人评价节点,特殊处理
                    if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){
                        webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                        webCaseFlowDTO.setProcessName(caseTask.getNodeShowName());
                    }else{
                        webCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName());
                    }
                    webCaseFlowDTO.setStatus(caseTask.getStatus());
                    handleCaseFlowList.add(webCaseFlowDTO);
                }
@@ -905,6 +918,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 +991,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 +1055,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 +1073,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);
@@ -1332,7 +1396,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);