From 3ce77531a4e13d749d58fea1a13695a80fbb9516 Mon Sep 17 00:00:00 2001
From: liyj <1003249715@qq.com>
Date: Sun, 15 Sep 2024 12:19:13 +0800
Subject: [PATCH] 1、自行受理跳转bug修复 2、联合处置流程优化

---
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java |  494 +++++++++++++++++++++++++++++-------------------------
 1 files changed, 263 insertions(+), 231 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 9cc3474..0b4cabf 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
@@ -39,6 +39,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Maps;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -401,7 +402,6 @@
             }else {
                 lfdj.setNodeShowName(caseInfo.getCanalName());
                 lfdj.setHandleUnitName(caseInfo.getInputUserName()+"(当事人)");
-                lfdj.setHandleUserName(caseInfo.getInputUserName());
             }
             lfdj.setTaskType(CaseTaskConsts.TASK_TYPE_1);
             lfdj.setStatus(CaseTaskConsts.TASK_STATUS_2);
@@ -411,106 +411,105 @@
             QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>();
             caseTaskQueryWrapper.eq("case_id", caseId).eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_1).orderByAsc("id");
             List<CaseTask> handleCaseTaskList = mapper.selectList(caseTaskQueryWrapper);
-
             for (CaseTask caseTask: handleCaseTaskList){
-                WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO();
-                if (CaseTaskConsts.TASK_STATUS_1 == caseTask.getStatus()){
-                    if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){
-                        webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
-                        webCaseFlowDTO.setProcessName(caseTask.getNodeShowName());
-                    }else{
-                        webCaseFlowDTO.setProcessName(caseInfo.getProcessName());
-                    }
-                    webCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName());
-                    webCaseFlowDTO.setTaskType(caseTask.getTaskType());
-                    webCaseFlowDTO.setStatus(caseTask.getStatus());
-                }else {
-                    webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
-                    webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName());
-                    webCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName());
-                    webCaseFlowDTO.setHandleTime(caseTask.getHandleTime());
-                    webCaseFlowDTO.setHandleNotes(caseTask.getHandleIllust());
-                    webCaseFlowDTO.setTaskType(caseTask.getTaskType());
-                    // todo 审核不通过、通过的展示,有调解结果的
-                    if (CaseTaskConsts.HANDLE_RESULT_1 == caseTask.getHandleResult()) {
-
-                    }
-                    if (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) {
-
-                    }
-                    webCaseFlowDTO.setStatus(caseTask.getStatus());
-                }
-                handleCaseFlowList.add(webCaseFlowDTO);
-                // 待受理节点,已签收的并处理完,需要加多一个受理节点
-                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())){
-                    if(CaseTaskConsts.SIGN_STATUS_2 == caseTask.getSignStatus()
-                            && CaseTaskConsts.TASK_STATUS_2 == caseTask.getStatus()){
-                        WebCaseFlowDTO slWebCaseFlowDTO = new WebCaseFlowDTO();
-                        if (CaseTaskConsts.TASK_STATUS_1 == caseTask.getStatus()){
-                            if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){
-                                slWebCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
-                                slWebCaseFlowDTO.setProcessName(caseTask.getNodeShowName());
-                            }else{
-                                slWebCaseFlowDTO.setProcessName(caseInfo.getProcessName());
-                            }
-                            slWebCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName());
-                            slWebCaseFlowDTO.setTaskType(caseTask.getTaskType());
-                            slWebCaseFlowDTO.setStatus(caseTask.getStatus());
-                        }else {
+                // 已结束节点
+                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())){
+                        if (CaseTaskConsts.SIGN_STATUS_2 == caseTask.getSignStatus() && CaseTaskConsts.TASK_TYPE_1 == caseTask.getTaskType()){
+                            WebCaseFlowDTO slWebCaseFlowDTO = new WebCaseFlowDTO();
                             slWebCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                             slWebCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName());
                             slWebCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName());
                             slWebCaseFlowDTO.setHandleTime(caseTask.getHandleTime());
-                            slWebCaseFlowDTO.setHandleNotes("已受理");
-                            if (CaseTaskConsts.HANDLE_RESULT_1 == caseTask.getHandleResult()) {
-                                slWebCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex());
-                                slWebCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes());
-                                slWebCaseFlowDTO.setTaskType(caseTask.getTaskType());
-                            }
-                            if (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) {
-                                slWebCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_2.getIndex());
-                                slWebCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_2.getDes());
-                                slWebCaseFlowDTO.setTaskType(CaseTaskConsts.TASK_TYPE_2);
-                            }
+                            slWebCaseFlowDTO.setHandleNotes("已签收");
+                            slWebCaseFlowDTO.setTaskType(caseTask.getTaskType());
                             slWebCaseFlowDTO.setStatus(caseTask.getStatus());
+                            handleCaseFlowList.add(slWebCaseFlowDTO);
                         }
-                        handleCaseFlowList.add(slWebCaseFlowDTO);
                     }
-                }
-
-                // 办理反馈节点,加上化解结果
-                if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_BLFK.getIndex())){
-                    WebCaseFlowDTO blfkWebCaseFlowDTO = new WebCaseFlowDTO();
-                    if (CaseTaskConsts.TASK_STATUS_1 == caseTask.getStatus()){
-                        if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){
-                            blfkWebCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
-                            blfkWebCaseFlowDTO.setProcessName(caseTask.getNodeShowName());
-                        }else{
-                            blfkWebCaseFlowDTO.setProcessName(caseInfo.getProcessName());
-                        }
-                        blfkWebCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName());
-                        blfkWebCaseFlowDTO.setTaskType(caseTask.getTaskType());
-                        blfkWebCaseFlowDTO.setStatus(caseTask.getStatus());
-                    }else {
-                        blfkWebCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
-                        blfkWebCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName());
-                        blfkWebCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName());
-                        blfkWebCaseFlowDTO.setHandleTime(caseTask.getHandleTime());
-                        CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId);
-                        blfkWebCaseFlowDTO.setHandleNotes("化解结果:"+caseInfoUnfold.getMediResultName());
-                        blfkWebCaseFlowDTO.setTaskType(caseTask.getTaskType());
-                        // todo 审核不通过、通过的展示,有调解结果的
-                        if (CaseTaskConsts.HANDLE_RESULT_1 == caseTask.getHandleResult()) {
+                    // 普通节点
+                    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(CaseTaskConsts.TASK_TYPE_2 == caseTask.getTaskType()){
+                        webCaseFlowDTO.setNodeShowName("事件回退");
+                        CaseReturn caseReturn = caseReturnService.getNewByCaseId(caseId);
+                        if (StringUtils.isNotEmpty(caseReturn.getReturnContent())) {
+                            webCaseFlowDTO.setHandleNotes("回退理由:" + caseReturn.getReturnContent());
+                        }else {
+                            webCaseFlowDTO.setHandleNotes("回退理由:-");
 
                         }
+                    }
+                    // 上报申请节点
+                    if(CaseTaskConsts.TASK_TYPE_3 == caseTask.getTaskType()){
+                        webCaseFlowDTO.setNodeShowName("事件上报");
+                        CaseAppear caseAppear = caseAppearService.getNewByCaseId(caseId);
+                        if (StringUtils.isNotEmpty(caseAppear.getAppearContent())) {
+                            webCaseFlowDTO.setHandleNotes("上报理由:" + caseAppear.getAppearContent());
+                        }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())
+                            || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_ZJ_HTSH.getIndex())
+                            || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_SBSH.getIndex())
+                            || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_HTSH.getIndex())
+                            || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_SBSH.getIndex())
+                            || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_HTSH.getIndex())){
+                        // 处理不通过,任务类型就是回退
                         if (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) {
-
+                            webCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_2.getIndex());
+                            webCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_2.getDes());
+                            webCaseFlowDTO.setTaskType(CaseTaskConsts.TASK_TYPE_2);
+                        }else{
+                            // 处理通过
+                            webCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex());
+                            webCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes());
                         }
-                        blfkWebCaseFlowDTO.setStatus(caseTask.getStatus());
+                        // 临时加上
+                        webCaseFlowDTO.setHandleNotes("审核结果:"+webCaseFlowDTO.getAuditResultName());
                     }
-                    handleCaseFlowList.add(blfkWebCaseFlowDTO);
+                    // 结案申请,需要展示化解结果
+                    if (FlowNodeEnum.FLOW_NODE_JASQ.getIndex().equals(caseTask.getNodeId())){
+                        CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseTask.getCaseId());
+                        if (ObjectUtils.isNotEmpty(caseInfoUnfold)){
+                            webCaseFlowDTO.setMediResult(caseInfoUnfold.getMediResult());
+                            webCaseFlowDTO.setMediResultName(caseInfoUnfold.getMediResultName());
+                            // 临时加上
+                            webCaseFlowDTO.setHandleNotes("化解结果:"+webCaseFlowDTO.getMediResultName());
+                        }
+                    }
+                    handleCaseFlowList.add(webCaseFlowDTO);
+                }else {
+                    // 进行中的节点
+                    WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO();
+                    webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
+                    webCaseFlowDTO.setStatus(caseTask.getStatus());
+                    // 当事人评价节点,特殊处理
+                    if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){
+                        webCaseFlowDTO.setProcessName(caseTask.getNodeShowName());
+                    }else{
+                        webCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName());
+                    }
+                    handleCaseFlowList.add(webCaseFlowDTO);
                 }
             }
             result.put("handleCaseFlowList", handleCaseFlowList);
@@ -789,55 +788,53 @@
      * @return
      */
     public List<WechatCaseFlowDTO> wechatListCaseFlow(String caseId, String userId){
-        try{
-            // 封装办理流程
-            List<WechatCaseFlowDTO> list = new ArrayList<>();
-            CaseInfo caseInfo = caseInfoService.getById(caseId);
-            // 提交申请
-            WechatCaseFlowDTO tjsq = new WechatCaseFlowDTO();
-            tjsq.setProcessName("提交申请");
-            tjsq.setVisitWayName(caseInfo.getVisitWayName());
-            tjsq.setShowTime(caseInfo.getCreateTime());
-            tjsq.setCaseTypeName(caseInfo.getCaseTypeName());
-            list.add(tjsq);
-            // 办理中
-            if (caseInfo.getInfoProcess() == CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_2.getIndex()){
-                CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId);
-                WechatCaseFlowDTO sxbl = new WechatCaseFlowDTO();
-                sxbl.setProcessName("事项办理");
-                sxbl.setShowTime(caseInfoUnfold.getAcceptTime());
-                sxbl.setMediateUnitName(caseInfoUnfold.getMediateUnitName());
-                list.add(sxbl);
-            }
-            // 已结案
-            if (caseInfo.getInfoProcess() == CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_2.getIndex()){
-                CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId);
-                WechatCaseFlowDTO sxbj = new WechatCaseFlowDTO();
-                sxbj.setProcessName("事项办结");
-                sxbj.setShowTime(caseInfoUnfold.getCloseTime());
-                sxbj.setMediResult(caseInfoUnfold.getMediResult());
-                sxbj.setMediResultName(caseInfoUnfold.getMediResultName());
-                list.add(sxbj);
-            }
-            // 评价
-            QueryWrapper<CaseEvaluate> caseEvaluateQueryWrapper = new QueryWrapper<>();
-            caseEvaluateQueryWrapper.eq("case_id", caseId).orderByDesc("create_time");
-            List<CaseEvaluate> caseEvaluateList = caseEvaluateService.list(caseEvaluateQueryWrapper);
-            if (CollectionUtils.isNotEmpty(caseEvaluateList)){
-                CaseEvaluate caseEvaluate = caseEvaluateList.get(0);
-                WechatCaseFlowDTO sxpj = new WechatCaseFlowDTO();
-                sxpj.setProcessName("事项评价");
-                sxpj.setShowTime(caseEvaluate.getCreateTime());
-                sxpj.setEvaluateUserName(caseEvaluate.getEvaluateUserName());
-                sxpj.setEvaluateGrade(caseEvaluate.getEvaluateGrade());
-                sxpj.setEvaluateRemark(caseEvaluate.getEvaluateRemark());
-                list.add(sxpj);
-            }
-            return list;
-        }catch (Exception e){
-            log.error("[CaseTaskService.wechatListCaseFlow]调用失败,异常信息:"+e, e);
-            throw new ServiceException("CaseTaskService.wechatListCaseFlow", e);
+        // 封装办理流程
+        List<WechatCaseFlowDTO> list = new ArrayList<>();
+        CaseInfo caseInfo = caseInfoService.getById(caseId);
+        // 提交申请
+        WechatCaseFlowDTO tjsq = new WechatCaseFlowDTO();
+        tjsq.setProcessName("提交申请");
+        tjsq.setVisitWayName(caseInfo.getVisitWayName());
+        tjsq.setShowTime(caseInfo.getCreateTime());
+        tjsq.setCaseTypeName(caseInfo.getCaseTypeName());
+        tjsq.setProcessStep(1);
+        list.add(tjsq);
+        CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId);
+        // 办理中
+        if (caseInfo.getInfoProcess() >= CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_2.getIndex()){
+            WechatCaseFlowDTO sxbl = new WechatCaseFlowDTO();
+            sxbl.setProcessName("事项办理");
+            sxbl.setShowTime(caseInfoUnfold.getAcceptTime());
+            sxbl.setMediateUnitName(caseInfoUnfold.getMediateUnitName());
+            sxbl.setProcessStep(2);
+            list.add(sxbl);
         }
+        // 已结案
+        if (caseInfo.getInfoProcess() >= CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_3.getIndex()){
+            WechatCaseFlowDTO sxbj = new WechatCaseFlowDTO();
+            sxbj.setProcessName("事项办结");
+            sxbj.setShowTime(caseInfoUnfold.getCloseTime());
+            sxbj.setMediResult(caseInfoUnfold.getMediResult());
+            sxbj.setMediResultName(caseInfoUnfold.getMediResultName());
+            sxbj.setProcessStep(3);
+            list.add(sxbj);
+        }
+        // 评价
+        QueryWrapper<CaseEvaluate> caseEvaluateQueryWrapper = new QueryWrapper<>();
+        caseEvaluateQueryWrapper.eq("case_id", caseId).orderByDesc("create_time");
+        List<CaseEvaluate> caseEvaluateList = caseEvaluateService.list(caseEvaluateQueryWrapper);
+        if (CollectionUtils.isNotEmpty(caseEvaluateList)){
+            CaseEvaluate caseEvaluate = caseEvaluateList.get(0);
+            WechatCaseFlowDTO sxpj = new WechatCaseFlowDTO();
+            sxpj.setProcessName("事项评价");
+            sxpj.setShowTime(caseEvaluate.getCreateTime());
+            sxpj.setEvaluateUserName(caseEvaluate.getEvaluateUserName());
+            sxpj.setEvaluateGrade(caseEvaluate.getEvaluateGrade());
+            sxpj.setEvaluateRemark(caseEvaluate.getEvaluateRemark());
+            sxpj.setProcessStep(4);
+            list.add(sxpj);
+        }
+        return list;
     }
 
     /**
@@ -918,6 +915,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());
@@ -931,36 +932,36 @@
                         FlowNode secondFlowNode = flowInfoService.completeTask(dfpCaseTask.getFlowableId(), dfpCaseTask.getProcessTaskId(),
                                 FlowableConsts.OPERATION_jb_zszz, "系统派单");
                         // 进入第2个节点-镇街级组织待受理
-                        CaseTask sdlCaseTask = new CaseTask();
-                        sdlCaseTask.setId(utilsClient.getNewTimeId());
-                        sdlCaseTask.setCaseId(caseInfo.getId());
-                        sdlCaseTask.setFlowableId(secondFlowNode.getFlowableId());
-                        sdlCaseTask.setProcessInstanceId(secondFlowNode.getProcessInstanceId());
-                        sdlCaseTask.setProcessTaskId(secondFlowNode.getProcessTaskId());
-                        sdlCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
-                        sdlCaseTask.setNodeType(secondFlowNode.getNodeType());
-                        sdlCaseTask.setNodeId(secondFlowNode.getNodeId());
-                        sdlCaseTask.setNodeName(secondFlowNode.getNodeName());
-                        sdlCaseTask.setFlowId(secondFlowNode.getFlowId());
-                        sdlCaseTask.setNodeShowName(secondFlowNode.getNodeShowName());
-                        sdlCaseTask.setCaseTaskType(dfpCaseTask.getCaseTaskType());
+                        CaseTask dslCaseTask = new CaseTask();
+                        dslCaseTask.setId(utilsClient.getNewTimeId());
+                        dslCaseTask.setCaseId(caseInfo.getId());
+                        dslCaseTask.setFlowableId(secondFlowNode.getFlowableId());
+                        dslCaseTask.setProcessInstanceId(secondFlowNode.getProcessInstanceId());
+                        dslCaseTask.setProcessTaskId(secondFlowNode.getProcessTaskId());
+                        dslCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
+                        dslCaseTask.setNodeType(secondFlowNode.getNodeType());
+                        dslCaseTask.setNodeId(secondFlowNode.getNodeId());
+                        dslCaseTask.setNodeName(secondFlowNode.getNodeName());
+                        dslCaseTask.setFlowId(secondFlowNode.getFlowId());
+                        dslCaseTask.setNodeShowName(secondFlowNode.getNodeShowName());
+                        dslCaseTask.setCaseTaskType(dfpCaseTask.getCaseTaskType());
                         // 通过调度的,任务候选执行者类型是上一步骤选择
-                        sdlCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
-                        sdlCaseTask.setCandeUnitId(caseDispBaseDTO.getTargetId());
-                        sdlCaseTask.setCandeUnitName(caseDispBaseDTO.getTargetName());
+                        dslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
+                        dslCaseTask.setCandeUnitId(caseDispBaseDTO.getTargetId());
+                        dslCaseTask.setCandeUnitName(caseDispBaseDTO.getTargetName());
                         // 系统调度给调解组织,需要签收
-                        sdlCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1);
-                        sdlCaseTask.setSignExpireTime(sysClient.getExpireTime(caseInfo.getCreateTime(), SyTimeEnum.SY_TIME_2.getIndex()));
+                        dslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1);
+                        dslCaseTask.setSignExpireTime(sysClient.getExpireTime(caseInfo.getCreateTime(), SyTimeEnum.SY_TIME_2.getIndex()));
                         // 任务处理时限
                         if (firstFlowNode.getExpire() != 0) {
-                            sdlCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire()));
+                            dslCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire()));
                         }
-                        sdlCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
-                        sdlCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
-                        sdlCaseTask.setCustId(caseInfo.getCustId());
-                        sdlCaseTask.setCreateTime(caseInfo.getCreateTime());
-                        sdlCaseTask.setUpdateTime(caseInfo.getUpdateTime());
-                        mapper.insert(sdlCaseTask);
+                        dslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
+                        dslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
+                        dslCaseTask.setCustId(caseInfo.getCustId());
+                        dslCaseTask.setCreateTime(caseInfo.getCreateTime());
+                        dslCaseTask.setUpdateTime(caseInfo.getUpdateTime());
+                        mapper.insert(dslCaseTask);
                         // 更新纠纷信息
                         CaseInfo caseInfoPO = new CaseInfo();
                         caseInfoPO.setId(caseInfo.getId());
@@ -985,23 +986,63 @@
      * @param caseInfo
      * @param loginUser
      */
-    public void webStartFlowZXSL(CaseInfo caseInfo, CtUserDTO loginUser){
+    public String 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);
@@ -1011,8 +1052,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());
@@ -1029,6 +1070,14 @@
             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);
+            return dslCaseTask.getId();
         }catch (Exception e){
             log.error("[CaseTaskService.webStartFlowZXSL]调用失败,异常信息:"+e, e);
             throw new ServiceException("CaseTaskService.webStartFlowZXSL", e);
@@ -1138,57 +1187,38 @@
                 String assistUnitName = assignTaskDTO.getAssistUnitList().stream().map(AssignAssistUnitDTO::getUitId).
                         collect(Collectors.joining(BaseConsts.COMMA));
                 for (AssignAssistUnitDTO assignAssistUnitDTO: assignTaskDTO.getAssistUnitList()){
-                    // 创建交办配合组织任务
-                    CaseTask jbAssistCaseTask = new CaseTask();
-                    jbAssistCaseTask.setId(utilsClient.getNewTimeId());
-                    jbAssistCaseTask.setCaseId(dfpCaseTask.getCaseId());
-                    jbAssistCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
-                    jbAssistCaseTask.setNodeName("交办配合部门");
-                    jbAssistCaseTask.setNodeShowName("交办配合部门");
-                    jbAssistCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2);
-                    // 配合任务,任务候选执行者类型是上一步骤选择
-                    jbAssistCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
-                    jbAssistCaseTask.setCandeUnitId(loginUser.getUnitId());
-                    jbAssistCaseTask.setCandeUnitName(loginUser.getUnitName());
-                    jbAssistCaseTask.setHandleUnitId(loginUser.getUnitId());
-                    jbAssistCaseTask.setHandleUnitName(loginUser.getUnitId());
-                    jbAssistCaseTask.setHandleUserId(loginUser.getId());
-                    jbAssistCaseTask.setHandleUserName(loginUser.getTrueName());
-                    jbAssistCaseTask.setHandleContent(assignTaskDTO.getAssignContent());
-                    jbAssistCaseTask.setHandleIllust("派单至:"+assignTaskDTO.getHandleUnitName());
-                    jbAssistCaseTask.setHandleTime(nowDate);
-                    // 不需要签收
-                    jbAssistCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
-                    jbAssistCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
-                    jbAssistCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
-                    jbAssistCaseTask.setCustId(dfpCaseTask.getCustId());
-                    jbAssistCaseTask.setCreateTime(nowDate);
-                    jbAssistCaseTask.setUpdateTime(nowDate);
-                    mapper.insert(jbAssistCaseTask);
-                    // 创建配合组织任务
-                    CaseTask assistCaseTask = new CaseTask();
-                    assistCaseTask.setId(utilsClient.getNewTimeId());
-                    assistCaseTask.setCaseId(dfpCaseTask.getCaseId());
-                    assistCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
-                    assistCaseTask.setNodeId(FlowNodeEnum.FLOW_NODE_BLFK.getIndex());
-                    assistCaseTask.setNodeName(FlowNodeEnum.FLOW_NODE_BLFK.getDes());
-                    assistCaseTask.setNodeShowName(FlowNodeEnum.FLOW_NODE_BLFK.getIndex());
-                    assistCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2);
-                    // 配合任务,任务候选执行者类型是上一步骤选择
-                    assistCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
-                    assistCaseTask.setCandeUnitId(assignAssistUnitDTO.getUitId());
-                    assistCaseTask.setCandeUnitName(assignAssistUnitDTO.getUitName());
-                    assistCaseTask.setHandleUnitId(assignAssistUnitDTO.getUitId());
-                    assistCaseTask.setHandleUnitName(assignAssistUnitDTO.getUitName());
-                    // 分派的任务,需要签收
-                    assistCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1);
-                    assistCaseTask.setSignExpireTime(sysClient.getExpireTime(nowDate, SyTimeEnum.SY_TIME_2.getIndex()));
-                    assistCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
-                    assistCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
-                    assistCaseTask.setCustId(dfpCaseTask.getCustId());
-                    assistCaseTask.setCreateTime(nowDate);
-                    assistCaseTask.setUpdateTime(nowDate);
-                    mapper.insert(assistCaseTask);
+                    // 启动联合处置工作流
+                    FlowNode firstFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_LHCZ, dfpCaseTask.getCaseId());
+                    // 创建配合部门待受理任务
+                    CaseTask lhczCaseTask = new CaseTask();
+                    lhczCaseTask.setId(utilsClient.getNewTimeId());
+                    lhczCaseTask.setCaseId(dfpCaseTask.getCaseId());
+                    lhczCaseTask.setFlowableId(firstFlowNode.getFlowableId());
+                    lhczCaseTask.setProcessInstanceId(firstFlowNode.getProcessInstanceId());
+                    lhczCaseTask.setProcessTaskId(firstFlowNode.getProcessTaskId());
+                    lhczCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
+                    lhczCaseTask.setNodeType(firstFlowNode.getNodeType());
+                    lhczCaseTask.setNodeId(firstFlowNode.getNodeId());
+                    lhczCaseTask.setNodeName(firstFlowNode.getNodeName());
+                    lhczCaseTask.setFlowId(firstFlowNode.getFlowId());
+                    lhczCaseTask.setNodeShowName(firstFlowNode.getNodeShowName());
+                    lhczCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2);
+                    // 通过调度的,任务候选执行者类型是上一步骤选择
+                    lhczCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
+                    lhczCaseTask.setCandeUnitId(assignAssistUnitDTO.getUitId());
+                    lhczCaseTask.setCandeUnitName(assignAssistUnitDTO.getUitName());
+                    // 需要签收
+                    lhczCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1);
+                    lhczCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
+                    // 任务处理时限
+                    if (firstFlowNode.getExpire() != 0) {
+                        lhczCaseTask.setExpireTime(DateUtils.addDay(nowDate, firstFlowNode.getExpire()));
+                    }
+                    lhczCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
+                    lhczCaseTask.setCustId(dfpCaseTask.getCustId());
+                    lhczCaseTask.setCreateTime(nowDate);
+                    lhczCaseTask.setUpdateTime(nowDate);
+                    mapper.insert(lhczCaseTask);
                 }
                 // 更新纠纷扩展信息
                 CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
@@ -1213,8 +1243,6 @@
             Date nowDate = DateUtils.getNowDate();
             // 获取当前登录用户
             CtUserDTO loginUser = custClient.clientGetUserAll(userId);
-            List<String> taskIdList = new ArrayList<>();
-            List<String> caseIdList = new ArrayList<>();
             for (SignTaskDTO signTaskDTO: signTaskDTOList){
                 CaseTask qsCaseTask = mapper.selectById(signTaskDTO.getCaseTaskId());
                 // 更新纠纷任务信息
@@ -1253,7 +1281,7 @@
      * @param acceptTaskDTO 受理任务表单
      * @param userId 当前登录用户
      */
-    public void webAccept(AcceptTaskDTO acceptTaskDTO, String userId){
+    public String webAccept(AcceptTaskDTO acceptTaskDTO, String userId){
         try{
             Date nowDate = DateUtils.getNowDate();
             // 获取当前登录用户
@@ -1326,6 +1354,7 @@
                 caseInfoUnfoldPO.setMediateUnitName(blfkCaseTask.getCandeUnitName());
                 caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
             }
+            return blfkCaseTask.getId();
         }catch (Exception e){
             log.error("[CaseTaskService.webAccept]调用失败,异常信息:"+e, e);
             throw new ServiceException("CaseTaskService.webAccept", e);
@@ -1345,7 +1374,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);
@@ -1796,6 +1826,7 @@
             // 完成当前待受理任务
             CaseTask dslCaseTaskPO = new CaseTask();
             dslCaseTaskPO.setId(caseReturn.getCaseTaskId());
+            dslCaseTaskPO.setTaskType(CaseTaskConsts.TASK_TYPE_2);
             dslCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
             dslCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
             dslCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
@@ -1816,7 +1847,7 @@
             htshCaseTask.setFlowableId(htshFlowNode.getFlowableId());
             htshCaseTask.setProcessInstanceId(htshFlowNode.getProcessInstanceId());
             htshCaseTask.setProcessTaskId(htshFlowNode.getProcessTaskId());
-            htshCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_2);
+            htshCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
             htshCaseTask.setNodeType(htshFlowNode.getNodeType());
             htshCaseTask.setNodeId(htshFlowNode.getNodeId());
             htshCaseTask.setNodeName(htshFlowNode.getNodeName());
@@ -2017,6 +2048,7 @@
             // 完成当前待受理任务
             CaseTask dslCaseTaskPO = new CaseTask();
             dslCaseTaskPO.setId(caseAppear.getCaseTaskId());
+            dslCaseTaskPO.setTaskType(CaseTaskConsts.TASK_TYPE_3);
             dslCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
             dslCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
             dslCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
@@ -2037,7 +2069,7 @@
             sbshCaseTask.setFlowableId(sbshFlowNode.getFlowableId());
             sbshCaseTask.setProcessInstanceId(sbshFlowNode.getProcessInstanceId());
             sbshCaseTask.setProcessTaskId(sbshFlowNode.getProcessTaskId());
-            sbshCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_3);
+            sbshCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
             sbshCaseTask.setNodeType(sbshFlowNode.getNodeType());
             sbshCaseTask.setNodeId(sbshFlowNode.getNodeId());
             sbshCaseTask.setNodeName(sbshFlowNode.getNodeName());

--
Gitblit v1.8.0