From f971164723fd36021e9f68f93b7ac62ac4ad76be Mon Sep 17 00:00:00 2001
From: wangwh <2397901735@qq.com>
Date: Thu, 10 Oct 2024 11:13:16 +0800
Subject: [PATCH] 屏蔽按钮

---
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java |  508 ++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 327 insertions(+), 181 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 5eaa724..d9fad61 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
@@ -215,8 +215,6 @@
      */
     public TabButtonDTO webGetTabButton(String caseTaskId, String userId){
         try{
-            // 查询当前任务信息
-            CaseTask caseTask = mapper.selectById(caseTaskId);
             // 定义tab
             TabButtonInfoDTO sxxq = new TabButtonInfoDTO();
             sxxq.setId("sxxq");
@@ -283,98 +281,94 @@
             TabButtonInfoDTO bysl = new TabButtonInfoDTO();
             bysl.setId("bysl");
             bysl.setName("不予受理");
+
             // 根据流程显示tab
             List<TabButtonInfoDTO> tabList = new LinkedList<>();
             // 根据流程显示button
             List<TabButtonInfoDTO> buttonList = new LinkedList<>();
+            // 查询当前任务信息
+            CaseTask caseTask = mapper.selectById(caseTaskId);
             if (ObjectUtils.isNotEmpty(caseTask)) {
-                // 不予受理
-                if (ObjectUtils.isNotEmpty(caseTask.getHandleResult()) && CaseTaskConsts.HANDLE_RESULT_3 == caseTask.getHandleResult()){
-                    tabList.add(byslxq);
-                    tabList.add(sqjl);
-
+                // 已完成任务
+                if (CaseTaskConsts.TASK_STATUS_2 == caseTask.getStatus()){
+                    // 不予受理
+                    if (ObjectUtils.isNotEmpty(caseTask.getHandleResult()) && CaseTaskConsts.HANDLE_RESULT_3 == caseTask.getHandleResult()){
+                        tabList.add(byslxq);
+                        tabList.add(sqjl);
+                    }else {
+                        // 正常任务
+                        CaseInfo caseInfo = caseInfoService.getById(caseTask.getCaseId());
+                        if (CaseProcessBaseConstsEnum.CASE_PROCESS_6.getIndex() != caseInfo.getProcess()){
+                            daxx.setName("详情");
+                        }
+                        tabList.add(daxx);
+                        tabList.add(lcdb);
+                        tabList.add(sqjl);
+                    }
                 }else {
-                    // 正常流程
-                    if (FlowNodeEnum.FLOW_NODE_ZJ_DFP.getIndex().equals(caseTask.getNodeId())) {
+                    // 进行中任务
+                    // 待分派节点
+                    if (FlowNodeEnum.FLOW_NODE_ZJ_DFP.getIndex().equals(caseTask.getNodeId())
+                            || FlowNodeEnum.FLOW_NODE_QJ_DFP.getIndex().equals(caseTask.getNodeId())
+                            || FlowNodeEnum.FLOW_NODE_SJ_DFP.getIndex().equals(caseTask.getNodeId())) {
                         tabList.add(dslxq);
                         tabList.add(sqjl);
 
-                        buttonList.add(zxsl);
+                        sl.setName("自行受理");
+                        buttonList.add(sl);
                         buttonList.add(jb);
-                        buttonList.add(sb);
                         buttonList.add(bysl);
+                        CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId);
+                        if (UserBaseConsts.UNIT_GRADE_1 != ctUnitDTO.getUnitGrade()) {
+                            buttonList.add(sb);
+                        }
+
+                        // 额外单独给详情跳转查看
+                        daxx.setName("详情");
+                        tabList.add(daxx);
                     }
-                    if (FlowNodeEnum.FLOW_NODE_ZJ_DSL.getIndex().equals(caseTask.getNodeId())) {
+                    // 待受理节点
+                    if (FlowNodeEnum.FLOW_NODE_ZJ_DSL.getIndex().equals(caseTask.getNodeId())
+                            || FlowNodeEnum.FLOW_NODE_QJ_DSL.getIndex().equals(caseTask.getNodeId())
+                            || FlowNodeEnum.FLOW_NODE_SJ_DSL.getIndex().equals(caseTask.getNodeId())) {
                         tabList.add(dslxq);
                         tabList.add(sqjl);
 
                         buttonList.add(sl);
                         buttonList.add(ht);
-                        buttonList.add(bysl);
+//                        buttonList.add(bysl);
+
+                        // 额外单独给详情跳转查看
+                        daxx.setName("详情");
+                        tabList.add(daxx);
                     }
-                    if (FlowNodeEnum.FLOW_NODE_ZJ_HTSH.getIndex().equals(caseTask.getNodeId())) {
+                    // 回退审核节点
+                    if (FlowNodeEnum.FLOW_NODE_ZJ_HTSH.getIndex().equals(caseTask.getNodeId())
+                            || FlowNodeEnum.FLOW_NODE_QJ_HTSH.getIndex().equals(caseTask.getNodeId())
+                            || FlowNodeEnum.FLOW_NODE_SJ_HTSH.getIndex().equals(caseTask.getNodeId())
+                            || FlowNodeEnum.FLOW_NODE_HTSH.getIndex().equals(caseTask.getNodeId())) {
                         sxxq.setName("详情");
                         tabList.add(sxxq);
                         tabList.add(sqjl);
                         tabList.add(htsh);
+
+                        // 额外单独给详情跳转查看
+                        daxx.setName("详情");
+                        tabList.add(daxx);
                     }
-                    if (FlowNodeEnum.FLOW_NODE_QJ_SBSH.getIndex().equals(caseTask.getNodeId())) {
+                    // 上报审核节点
+                    if (FlowNodeEnum.FLOW_NODE_QJ_SBSH.getIndex().equals(caseTask.getNodeId())
+                            || FlowNodeEnum.FLOW_NODE_SJ_SBSH.getIndex().equals(caseTask.getNodeId())) {
                         sxxq.setName("详情");
                         tabList.add(sxxq);
                         tabList.add(sqjl);
                         tabList.add(sbsh);
-                    }
-                    if (FlowNodeEnum.FLOW_NODE_QJ_DFP.getIndex().equals(caseTask.getNodeId())) {
-                        tabList.add(dslxq);
-                        tabList.add(sqjl);
 
-                        buttonList.add(zxsl);
-                        buttonList.add(jb);
-                        buttonList.add(sb);
-                        buttonList.add(bysl);
+                        // 额外单独给详情跳转查看
+                        daxx.setName("详情");
+                        tabList.add(daxx);
                     }
-                    if (FlowNodeEnum.FLOW_NODE_QJ_DSL.getIndex().equals(caseTask.getNodeId())) {
-                        tabList.add(dslxq);
-                        tabList.add(sqjl);
-
-                        buttonList.add(sl);
-                        buttonList.add(ht);
-                        buttonList.add(bysl);
-                    }
-                    if (FlowNodeEnum.FLOW_NODE_QJ_HTSH.getIndex().equals(caseTask.getNodeId())) {
-                        sxxq.setName("详情");
-                        tabList.add(sxxq);
-                        tabList.add(sqjl);
-                        tabList.add(htsh);
-                    }
-                    if (FlowNodeEnum.FLOW_NODE_SJ_SBSH.getIndex().equals(caseTask.getNodeId())) {
-                        sxxq.setName("详情");
-                        tabList.add(sxxq);
-                        tabList.add(sqjl);
-                        tabList.add(sbsh);
-                    }
-                    if (FlowNodeEnum.FLOW_NODE_SJ_DFP.getIndex().equals(caseTask.getNodeId())) {
-                        tabList.add(dslxq);
-                        tabList.add(sqjl);
-
-                        buttonList.add(zxsl);
-                        buttonList.add(jb);
-                        buttonList.add(bysl);
-                    }
-                    if (FlowNodeEnum.FLOW_NODE_SJ_DSL.getIndex().equals(caseTask.getNodeId())) {
-                        tabList.add(dslxq);
-                        tabList.add(sqjl);
-
-                        buttonList.add(sl);
-                        buttonList.add(ht);
-                        buttonList.add(bysl);
-                    }
-                    if (FlowNodeEnum.FLOW_NODE_SJ_HTSH.getIndex().equals(caseTask.getNodeId())) {
-                        sxxq.setName("详情");
-                        tabList.add(sxxq);
-                        tabList.add(sqjl);
-                        tabList.add(htsh);
-                    }
+                    // 办理反馈节点
                     if (FlowNodeEnum.FLOW_NODE_BLFK.getIndex().equals(caseTask.getNodeId())) {
                         if (CaseTaskConsts.CASE_TASK_TYPE_1 == caseTask.getCaseTaskType()) {
                             tabList.add(sxxq);
@@ -385,7 +379,11 @@
                             buttonList.add(tjbljl);
                             buttonList.add(lhczsq);
                             buttonList.add(jasq);
-                            buttonList.add(db);
+//                            buttonList.add(db);
+
+                            // 额外单独给详情跳转查看
+                            daxx.setName("详情");
+                            tabList.add(daxx);
                         } else {
                             tabList.add(sxxq);
                             tabList.add(sxbl);
@@ -393,42 +391,61 @@
                             tabList.add(sqjl);
 
                             buttonList.add(tjbljl);
+
+                            // 额外单独给详情跳转查看
+                            daxx.setName("详情");
+                            tabList.add(daxx);
                         }
                     }
+                    // 结案审核节点
                     if (FlowNodeEnum.FLOW_NODE_JASH.getIndex().equals(caseTask.getNodeId())) {
                         tabList.add(sxxq);
                         tabList.add(sqjl);
                         tabList.add(jash);
+
+                        // 额外单独给详情跳转查看
+                        daxx.setName("详情");
+                        tabList.add(daxx);
                     }
+                    // 当事人评价节点
                     if (FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex().equals(caseTask.getNodeId())) {
-                        daxx.setName("信息");
+                        daxx.setName("详情");
                         tabList.add(daxx);
                         tabList.add(lcdb);
                         tabList.add(sqjl);
                     }
+                    // 结案归档节点
                     if (FlowNodeEnum.FLOW_NODE_JAGD.getIndex().equals(caseTask.getNodeId())) {
                         tabList.add(daxx);
                         tabList.add(lcdb);
                         tabList.add(sqjl);
                     }
+                    // 联合处置-待受理
                     if (FlowNodeEnum.FLOW_NODE_DSL.getIndex().equals(caseTask.getNodeId())) {
                         tabList.add(dslxq);
                         tabList.add(sqjl);
 
                         buttonList.add(sl);
                         buttonList.add(ht);
-                    }
-                    if (FlowNodeEnum.FLOW_NODE_HTSH.getIndex().equals(caseTask.getNodeId())) {
-                        sxxq.setName("详情");
-                        tabList.add(sxxq);
-                        tabList.add(sqjl);
-                        tabList.add(htsh);
+
+                        // 额外单独给详情跳转查看
+                        daxx.setName("详情");
+                        tabList.add(daxx);
                     }
                 }
             }else {
-                tabList.add(sxxq);
-                tabList.add(sqjl);
-                tabList.add(lhczsh);
+                // 是否是联合处置审核
+                CaseAssistApply caseAssistApply = caseAssistApplyService.getById(caseTaskId);
+                if (ObjectUtils.isNotEmpty(caseAssistApply)){
+                    tabList.add(sxxq);
+                    tabList.add(lhczsh);
+                    tabList.add(sqjl);
+                }else {
+                    daxx.setName("详情");
+                    tabList.add(daxx);
+                    tabList.add(lcdb);
+                    tabList.add(sqjl);
+                }
             }
             // 封装数据
             TabButtonDTO tabButtonDTO = new TabButtonDTO();
@@ -492,11 +509,19 @@
                     // 普通节点
                     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 (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())
+                            || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JAGD.getIndex())){
+                        webCaseFlowDTO.setHandleUserName(null);
+                        webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUserName());
+                    }else{
+                        webCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName());
+                        webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName());
+                    }
                     // 回退申请节点
                     if(CaseTaskConsts.TASK_TYPE_2 == caseTask.getTaskType()){
                         webCaseFlowDTO.setNodeShowName("事件回退");
@@ -517,13 +542,6 @@
                         }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())
@@ -586,7 +604,8 @@
                     webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                     webCaseFlowDTO.setStatus(caseTask.getStatus());
                     // 当事人评价节点,特殊处理
-                    if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){
+                    if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())
+                            || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JAGD.getIndex())){
                         webCaseFlowDTO.setProcessName(caseTask.getNodeShowName());
                     }else{
                         webCaseFlowDTO.setProcessName(caseTask.getCandeUnitName());
@@ -636,11 +655,19 @@
                             // 普通节点
                             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 (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())
+                                    || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JAGD.getIndex())){
+                                webCaseFlowDTO.setHandleUserName(null);
+                                webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUserName());
+                            }else{
+                                webCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName());
+                                webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName());
+                            }
                             // 回退申请节点
                             if(CaseTaskConsts.TASK_TYPE_2 == caseTask.getTaskType()){
                                 webCaseFlowDTO.setNodeShowName("事件回退");
@@ -661,13 +688,6 @@
                                 }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())
@@ -724,7 +744,8 @@
                             webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                             webCaseFlowDTO.setStatus(caseTask.getStatus());
                             // 当事人评价节点,特殊处理
-                            if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){
+                            if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())
+                                    || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JAGD.getIndex())){
                                 webCaseFlowDTO.setProcessName(caseTask.getNodeShowName());
                             }else{
                                 webCaseFlowDTO.setProcessName(caseTask.getCandeUnitName());
@@ -762,6 +783,10 @@
             long countReturnReview = caseReturnService.countReturnReview(loginUser.getUnitId());
             long countAppearReview = caseAppearService.countAppearReview(loginUser.getUnitId());
             long countAssistReview = caseAssistApplyService.countAssistReview(loginUser.getUnitId());
+            frontPageCountDTO.setReturnReview(countReturnReview);
+            frontPageCountDTO.setAppearReview(countAppearReview);
+            frontPageCountDTO.setWindupReview(countApplyReview);
+            frontPageCountDTO.setAssistReview(countAssistReview);
             frontPageCountDTO.setWaitReview(countApplyReview+countReturnReview+countAppearReview+countAssistReview);
             // 已办
             Map<String, Object> ybTerms = new HashMap<>();
@@ -1843,39 +1868,105 @@
                 jashCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 1));
                 jashCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 1));
                 mapper.insert(jashCaseTask);
-                // 完成当前结案审核工作流任务,走当事人评价任务
-                FlowNode dsrpjFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(),
+                // 完成当前结案审核工作流任务,走下一个任务
+                FlowNode nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(),
                         FlowableConsts.OPERATION_jash_ty, userId);
-                // 新建当事人评价任务
-                CaseTask dsrpjCaseTask = new CaseTask();
-                dsrpjCaseTask.setId(utilsClient.getNewTimeId());
-                dsrpjCaseTask.setCaseId(jashCaseTask.getCaseId());
-                dsrpjCaseTask.setFlowableId(dsrpjFlowNode.getFlowableId());
-                dsrpjCaseTask.setProcessInstanceId(dsrpjFlowNode.getProcessInstanceId());
-                dsrpjCaseTask.setProcessTaskId(dsrpjFlowNode.getProcessTaskId());
-                dsrpjCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
-                dsrpjCaseTask.setNodeType(dsrpjFlowNode.getNodeType());
-                dsrpjCaseTask.setNodeId(dsrpjFlowNode.getNodeId());
-                dsrpjCaseTask.setNodeName(dsrpjFlowNode.getNodeName());
-                dsrpjCaseTask.setFlowId(dsrpjFlowNode.getFlowId());
-                dsrpjCaseTask.setNodeShowName(dsrpjFlowNode.getNodeShowName());
-                dsrpjCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
-                // 受理任务,任务候选执行者类型是上一步骤选择
-                dsrpjCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
-                dsrpjCaseTask.setCandeUnitId(loginUser.getUnitId());
-                dsrpjCaseTask.setCandeUnitName(loginUser.getUnitName());
-                // 受理后的任务,不需要签收
-                dsrpjCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
-                dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
-                // 任务处理时限
-                if (dsrpjFlowNode.getExpire() != 0) {
-                    dsrpjCaseTask.setExpireTime(DateUtils.addDay(nowDate, dsrpjFlowNode.getExpire()));
+                // 走当事人评价节点
+                if (FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex().equals(nextFlowNode.getNodeId())){
+                    // 新建当事人评价任务
+                    CaseTask dsrpjCaseTask = new CaseTask();
+                    dsrpjCaseTask.setId(utilsClient.getNewTimeId());
+                    dsrpjCaseTask.setCaseId(jashCaseTask.getCaseId());
+                    dsrpjCaseTask.setFlowableId(nextFlowNode.getFlowableId());
+                    dsrpjCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId());
+                    dsrpjCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId());
+                    dsrpjCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
+                    dsrpjCaseTask.setNodeType(nextFlowNode.getNodeType());
+                    dsrpjCaseTask.setNodeId(nextFlowNode.getNodeId());
+                    dsrpjCaseTask.setNodeName(nextFlowNode.getNodeName());
+                    dsrpjCaseTask.setFlowId(nextFlowNode.getFlowId());
+                    dsrpjCaseTask.setNodeShowName(nextFlowNode.getNodeShowName());
+                    dsrpjCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
+                    // 受理任务,任务候选执行者类型是上一步骤选择
+                    dsrpjCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
+                    dsrpjCaseTask.setCandeUnitId(loginUser.getUnitId());
+                    dsrpjCaseTask.setCandeUnitName(loginUser.getUnitName());
+                    // 受理后的任务,不需要签收
+                    dsrpjCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
+                    dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
+                    // 任务处理时限
+                    if (nextFlowNode.getExpire() != 0) {
+                        dsrpjCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire()));
+                    }
+                    dsrpjCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
+                    dsrpjCaseTask.setCustId(jashCaseTask.getCustId());
+                    dsrpjCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 2));
+                    dsrpjCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 2));
+                    mapper.insert(dsrpjCaseTask);
+                    // 更新纠纷信息
+                    CaseInfo caseInfoPO = new CaseInfo();
+                    caseInfoPO.setId(jashCaseTask.getCaseId());
+                    caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_6.getIndex());
+                    caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_6.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);
                 }
-                dsrpjCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
-                dsrpjCaseTask.setCustId(jashCaseTask.getCustId());
-                dsrpjCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 2));
-                dsrpjCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 2));
-                mapper.insert(dsrpjCaseTask);
+                // 走结案归档节点
+                if (FlowNodeEnum.FLOW_NODE_JAGD.getIndex().equals(nextFlowNode.getNodeId())){
+                    // 默认完成结案归档任务
+                    CaseTask jagdCaseTask = new CaseTask();
+                    jagdCaseTask.setId(utilsClient.getNewTimeId());
+                    jagdCaseTask.setCaseId(jashCaseTask.getCaseId());
+                    jagdCaseTask.setFlowableId(nextFlowNode.getFlowableId());
+                    jagdCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId());
+                    jagdCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId());
+                    jagdCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
+                    jagdCaseTask.setNodeType(nextFlowNode.getNodeType());
+                    jagdCaseTask.setNodeId(nextFlowNode.getNodeId());
+                    jagdCaseTask.setNodeName(nextFlowNode.getNodeName());
+                    jagdCaseTask.setFlowId(nextFlowNode.getFlowId());
+                    jagdCaseTask.setNodeShowName(nextFlowNode.getNodeShowName());
+                    jagdCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
+                    // 通过调度的,任务候选执行者类型是上一步骤选择
+                    jagdCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
+                    jagdCaseTask.setCandeUnitId(loginUser.getUnitId());
+                    jagdCaseTask.setCandeUnitName(loginUser.getUnitName());
+                    // 系不需要签收
+                    jagdCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
+                    jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
+                    // 任务处理时限
+                    if (nextFlowNode.getExpire() != 0) {
+                        jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire()));
+                    }
+                    jagdCaseTask.setHandleUnitId(loginUser.getUnitId());
+                    jagdCaseTask.setHandleUnitName(loginUser.getUnitName());
+                    jagdCaseTask.setHandleUserName("系统自动");
+                    jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1);
+                    jagdCaseTask.setHandleTime(nowDate);
+                    jagdCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
+                    jagdCaseTask.setCustId(jashCaseTask.getCustId());
+                    jagdCaseTask.setCreateTime(nowDate);
+                    jagdCaseTask.setUpdateTime(nowDate);
+                    mapper.insert(jagdCaseTask);
+                    // 结束工作流流程
+                    flowInfoService.completeTask(jagdCaseTask.getFlowableId(), jagdCaseTask.getProcessTaskId(),
+                            FlowableConsts.OPERATION_jb_zszz, "系统自动");
+                    // 更新纠纷信息
+                    CaseInfo caseInfoPO = new CaseInfo();
+                    caseInfoPO.setId(jashCaseTask.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);
+                }
                 // 更新结案申请信息
                 caseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_1);
                 caseWindupApply.setCaseTaskId(jashCaseTask.getId());
@@ -1888,20 +1979,9 @@
                 caseWindupApply.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes());
                 caseWindupApply.setCustId(jashCaseTask.getCustId());
                 caseWindupApplyService.save(caseWindupApply);
-                // 更新纠纷信息
-                CaseInfo caseInfoPO = new CaseInfo();
-                caseInfoPO.setId(dsrpjCaseTask.getCaseId());
-                caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_6.getIndex());
-                caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_6.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);
                 // 更新纠纷扩展信息
                 CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
-                caseInfoUnfoldPO.setId(dsrpjCaseTask.getCaseId());
+                caseInfoUnfoldPO.setId(jashCaseTask.getCaseId());
                 caseInfoUnfoldPO.setMediResult(caseWindupApply.getMediResult());
                 caseInfoUnfoldPO.setMediResultName(caseWindupApply.getMediResultName());
                 caseInfoUnfoldPO.setAgreeType(caseWindupApply.getAgreeType());
@@ -1975,6 +2055,15 @@
                 caseInfoUnfoldPO.setUpdateTime(nowDate);
                 caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
             }
+            // 查询联合处置申请单,全部结束申请单
+            QueryWrapper<CaseAssistApply> caseAssistApplyQueryWrapper = new QueryWrapper<>();
+            caseAssistApplyQueryWrapper.eq("case_id", jasqCaseTask.getCaseId()).eq("apply_status", AuditBaseConsts.AUDIT_STATUS_0);
+            List<CaseAssistApply> caseAssistApplyList = caseAssistApplyService.list(caseAssistApplyQueryWrapper);
+            for (CaseAssistApply caseAssistApply: caseAssistApplyList){
+                caseAssistApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_2);
+                caseAssistApply.setUpdateTime(nowDate);
+                caseAssistApplyService.updateCaseAssistApply(caseAssistApply);
+            }
             // 查询配合部门的任务,全部结束流程
             List<CaseTask> assistCaseTaskList = this.listAssistTasking(jasqCaseTask.getCaseId());
             for (CaseTask assistCaseTask: assistCaseTaskList){
@@ -2034,52 +2123,108 @@
                 jashCaseTaskPO.setUpdateTime(nowDate);
                 mapper.updateCaseTask(jashCaseTaskPO);
                 // 完成当前结案审核工作流任务,走当事人评价任务
-                FlowNode dsrpjFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(),
+                FlowNode nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(),
                         FlowableConsts.OPERATION_jash_ty, userId);
-                // 新建当事人评价任务
-                CaseTask dsrpjCaseTask = new CaseTask();
-                dsrpjCaseTask.setId(utilsClient.getNewTimeId());
-                dsrpjCaseTask.setCaseId(jashCaseTask.getCaseId());
-                dsrpjCaseTask.setFlowableId(dsrpjFlowNode.getFlowableId());
-                dsrpjCaseTask.setProcessInstanceId(dsrpjFlowNode.getProcessInstanceId());
-                dsrpjCaseTask.setProcessTaskId(dsrpjFlowNode.getProcessTaskId());
-                dsrpjCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
-                dsrpjCaseTask.setNodeType(dsrpjFlowNode.getNodeType());
-                dsrpjCaseTask.setNodeId(dsrpjFlowNode.getNodeId());
-                dsrpjCaseTask.setNodeName(dsrpjFlowNode.getNodeName());
-                dsrpjCaseTask.setFlowId(dsrpjFlowNode.getFlowId());
-                dsrpjCaseTask.setNodeShowName(dsrpjFlowNode.getNodeShowName());
-                dsrpjCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
-                // 受理任务,任务候选执行者类型是上一步骤选择
-                dsrpjCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
-                dsrpjCaseTask.setCandeUnitId(loginUser.getUnitId());
-                dsrpjCaseTask.setCandeUnitName(loginUser.getUnitName());
-                // 受理后的任务,不需要签收
-                dsrpjCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
-                dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
-                // 任务处理时限
-                if (dsrpjFlowNode.getExpire() != 0) {
-                    dsrpjCaseTask.setExpireTime(DateUtils.addDay(nowDate, dsrpjFlowNode.getExpire()));
+                // 走当事人评价节点
+                if (FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex().equals(nextFlowNode.getNodeId())){
+                    // 新建当事人评价任务
+                    CaseTask dsrpjCaseTask = new CaseTask();
+                    dsrpjCaseTask.setId(utilsClient.getNewTimeId());
+                    dsrpjCaseTask.setCaseId(jashCaseTask.getCaseId());
+                    dsrpjCaseTask.setFlowableId(nextFlowNode.getFlowableId());
+                    dsrpjCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId());
+                    dsrpjCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId());
+                    dsrpjCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
+                    dsrpjCaseTask.setNodeType(nextFlowNode.getNodeType());
+                    dsrpjCaseTask.setNodeId(nextFlowNode.getNodeId());
+                    dsrpjCaseTask.setNodeName(nextFlowNode.getNodeName());
+                    dsrpjCaseTask.setFlowId(nextFlowNode.getFlowId());
+                    dsrpjCaseTask.setNodeShowName(nextFlowNode.getNodeShowName());
+                    dsrpjCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
+                    // 受理任务,任务候选执行者类型是上一步骤选择
+                    dsrpjCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
+                    dsrpjCaseTask.setCandeUnitId(loginUser.getUnitId());
+                    dsrpjCaseTask.setCandeUnitName(loginUser.getUnitName());
+                    // 受理后的任务,不需要签收
+                    dsrpjCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
+                    dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
+                    // 任务处理时限
+                    if (nextFlowNode.getExpire() != 0) {
+                        dsrpjCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire()));
+                    }
+                    dsrpjCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
+                    dsrpjCaseTask.setCustId(jashCaseTask.getCustId());
+                    dsrpjCaseTask.setCreateTime(nowDate);
+                    dsrpjCaseTask.setUpdateTime(nowDate);
+                    mapper.insert(dsrpjCaseTask);
+                    // 更新纠纷信息
+                    CaseInfo caseInfoPO = new CaseInfo();
+                    caseInfoPO.setId(jashCaseTask.getCaseId());
+                    caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_6.getIndex());
+                    caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_6.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);
                 }
-                dsrpjCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
-                dsrpjCaseTask.setCustId(jashCaseTask.getCustId());
-                dsrpjCaseTask.setCreateTime(nowDate);
-                dsrpjCaseTask.setUpdateTime(nowDate);
-                mapper.insert(dsrpjCaseTask);
-                // 更新纠纷信息
-                CaseInfo caseInfoPO = new CaseInfo();
-                caseInfoPO.setId(dsrpjCaseTask.getCaseId());
-                caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_6.getIndex());
-                caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_6.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);
+                // 走结案归档节点
+                if (FlowNodeEnum.FLOW_NODE_JAGD.getIndex().equals(nextFlowNode.getNodeId())){
+                    // 默认完成结案归档任务
+                    CaseTask jagdCaseTask = new CaseTask();
+                    jagdCaseTask.setId(utilsClient.getNewTimeId());
+                    jagdCaseTask.setCaseId(jashCaseTask.getCaseId());
+                    jagdCaseTask.setFlowableId(nextFlowNode.getFlowableId());
+                    jagdCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId());
+                    jagdCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId());
+                    jagdCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
+                    jagdCaseTask.setNodeType(nextFlowNode.getNodeType());
+                    jagdCaseTask.setNodeId(nextFlowNode.getNodeId());
+                    jagdCaseTask.setNodeName(nextFlowNode.getNodeName());
+                    jagdCaseTask.setFlowId(nextFlowNode.getFlowId());
+                    jagdCaseTask.setNodeShowName(nextFlowNode.getNodeShowName());
+                    jagdCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
+                    // 通过调度的,任务候选执行者类型是上一步骤选择
+                    jagdCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
+                    jagdCaseTask.setCandeUnitId(loginUser.getUnitId());
+                    jagdCaseTask.setCandeUnitName(loginUser.getUnitName());
+                    // 系不需要签收
+                    jagdCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
+                    jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
+                    // 任务处理时限
+                    if (nextFlowNode.getExpire() != 0) {
+                        jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire()));
+                    }
+                    jagdCaseTask.setHandleUnitId(loginUser.getUnitId());
+                    jagdCaseTask.setHandleUnitName(loginUser.getUnitName());
+                    jagdCaseTask.setHandleUserName("系统自动");
+                    jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1);
+                    jagdCaseTask.setHandleTime(nowDate);
+                    jagdCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
+                    jagdCaseTask.setCustId(jashCaseTask.getCustId());
+                    jagdCaseTask.setCreateTime(nowDate);
+                    jagdCaseTask.setUpdateTime(nowDate);
+                    mapper.insert(jagdCaseTask);
+                    // 结束工作流流程
+                    flowInfoService.completeTask(jagdCaseTask.getFlowableId(), jagdCaseTask.getProcessTaskId(),
+                            FlowableConsts.OPERATION_jb_zszz, "系统自动");
+                    // 更新纠纷信息
+                    CaseInfo caseInfoPO = new CaseInfo();
+                    caseInfoPO.setId(jashCaseTask.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);
+
+                }
                 // 更新纠纷扩展信息
                 CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
-                caseInfoUnfoldPO.setId(dsrpjCaseTask.getCaseId());
+                caseInfoUnfoldPO.setId(jashCaseTask.getCaseId());
                 caseInfoUnfoldPO.setCloseTime(nowDate);
                 caseInfoUnfoldPO.setUpdateTime(nowDate);
                 caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
@@ -2593,8 +2738,9 @@
                 dfphCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                 // 受理任务,任务候选执行者类型是上一步骤选择
                 dfphCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
-                dfphCaseTask.setCandeUnitId(caseAppear.getAppearUnitId());
-                dfphCaseTask.setCandeUnitName(caseAppear.getAppearUnitName());
+                CaseAppear caseAppearBO = caseAppearService.getById(caseAppear.getId());
+                dfphCaseTask.setCandeUnitId(caseAppearBO.getAppearUnitId());
+                dfphCaseTask.setCandeUnitName(caseAppearBO.getAppearUnitName());
                 // 受理后的任务,不需要签收
                 dfphCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                 dfphCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);

--
Gitblit v1.8.0