From c2bf4ed2478aa57dddf865f440005f0ed133b110 Mon Sep 17 00:00:00 2001
From: liyj <15602261488@163.com>
Date: Fri, 27 Sep 2024 12:01:32 +0800
Subject: [PATCH] 1、自行受理流程优化 2、更新组织的地域编码 3、结案归档节点优化

---
 dyh-service/dyh-mediate/src/main/resources/processes/GZDYH_ZXSL_3LEVEL_V1.bpmn20.xml                   |   29 +--
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java            |    9 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java                |  323 +++++++++++++++++++++++++++++++---------------
 dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/UserBaseConsts.java                    |    2 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/client/CtUnitClientController.java |   50 +++++++
 5 files changed, 284 insertions(+), 129 deletions(-)

diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/UserBaseConsts.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/UserBaseConsts.java
index 7a2a991..815273f 100644
--- a/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/UserBaseConsts.java
+++ b/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/UserBaseConsts.java
@@ -68,7 +68,7 @@
      */
 
     /**
-     * 组织级别,0:政法委,1:市级,2:区级,3:镇街级,4:村居级
+     * 组织级别,0:省,1:市级,2:区级,3:镇街级,4:村居级
      */
     public static final int UNIT_GRADE_0 = 0;
     public static final int UNIT_GRADE_1 = 1;
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/client/CtUnitClientController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/client/CtUnitClientController.java
index 5691399..11a3b5e 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/client/CtUnitClientController.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/client/CtUnitClientController.java
@@ -8,9 +8,14 @@
 import cn.huge.module.ctuser.domain.po.CtUser;
 import cn.huge.module.ctuser.service.CtUnitService;
 import cn.huge.module.ctuser.service.CtUserService;
+import cn.huge.module.cust.constant.UserBaseConsts;
 import cn.huge.module.cust.dto.CtUnitDTO;
 import cn.huge.module.cust.dto.CtUserDTO;
+import cn.huge.module.region.domain.po.SyRegionGrid;
+import cn.huge.module.region.service.SyRegionGridService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -91,4 +96,49 @@
             return ReturnFailUtils.getRepInfo(e.getMessage());
         }
     }
+
+    @Autowired
+    private SyRegionGridService syRegionGridService;
+    /**
+     * 更新组织的地域编码
+     * @url {ctx}/api/client/ctUnit/update1
+     * @return Object
+     */
+    @GetMapping("/update1")
+    public Object update1() {
+        try {
+            List<CtUnit> ctUnitList = service.list();
+            for (CtUnit ctUnit: ctUnitList){
+                ctUnit.setArea("440111");
+                // 镇街级
+                if (StringUtils.isNotEmpty(ctUnit.getRoad())){
+                    QueryWrapper<SyRegionGrid> syRegionGridQueryWrapper = new QueryWrapper<>();
+                    syRegionGridQueryWrapper.eq("region_id", ctUnit.getRoad());
+                    SyRegionGrid syRegionGrid = syRegionGridService.getOne(syRegionGridQueryWrapper);
+                    if (ObjectUtils.isNotEmpty(syRegionGrid)){
+                        ctUnit.setRoad(syRegionGrid.getThirdCode());
+                    }
+                }
+                // 村社级
+                if (UserBaseConsts.UNIT_GRADE_4 == ctUnit.getUnitGrade()){
+                    try{
+                        QueryWrapper<SyRegionGrid> syRegionGridQueryWrapper = new QueryWrapper<>();
+                        String thirdName = ctUnit.getUnitName().replace("居委会", "").replace("人民调解委员会", "");
+                        syRegionGridQueryWrapper.like("third_name", thirdName);
+                        SyRegionGrid syRegionGrid = syRegionGridService.getOne(syRegionGridQueryWrapper);
+                        if (ObjectUtils.isNotEmpty(syRegionGrid)){
+                            ctUnit.setVillage(syRegionGrid.getThirdCode());
+                            ctUnit.setVillageName(syRegionGrid.getThirdName());
+                        }
+                    }catch (Exception e){
+                        log.error("报错村社:id-"+ctUnit.getId()+",name-"+ctUnit.getUnitName());
+                    }
+                }
+                service.updateCtUnit(ctUnit);
+            }
+            return ReturnSucUtils.getRepInfo();
+        } catch (Exception e) {
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
 }
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java
index ab9dd93..6a4667f 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java
@@ -178,9 +178,10 @@
             CaseTask dsrpjCaseTask = caseTaskService.getOne(caseTaskQueryWrapper);
             // 完成当前当事人评价任务
             dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
+            dsrpjCaseTask.setHandleUnitId(dsrpjCaseTask.getCandeUnitId());
+            dsrpjCaseTask.setHandleUnitName(dsrpjCaseTask.getCandeUnitName());
             dsrpjCaseTask.setHandleUserId(loginUser.getId());
-            dsrpjCaseTask.setHandleUserName(loginUser.getTrueName());
-            dsrpjCaseTask.setHandleUserName(loginUser.getTrueName());
+            dsrpjCaseTask.setHandleUserName(loginUser.getTrueName()+"(当事人)");
             dsrpjCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1);
             dsrpjCaseTask.setHandleTime(nowDate);
             dsrpjCaseTask.setUpdateTime(nowDate);
@@ -213,7 +214,9 @@
             if (dsrpjFlowNode.getExpire() != 0) {
                 jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, dsrpjFlowNode.getExpire()));
             }
-            jagdCaseTask.setHandleUnitName("系统自动");
+            jagdCaseTask.setHandleUnitId(dsrpjCaseTask.getCandeUnitId());
+            jagdCaseTask.setHandleUnitName(dsrpjCaseTask.getCandeUnitName());
+            jagdCaseTask.setHandleUserName("系统自动");
             jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1);
             jagdCaseTask.setHandleTime(nowDate);
             jagdCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
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 e01eeed..7b6d70e 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
@@ -498,11 +498,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("事件回退");
@@ -523,15 +531,6 @@
                         }else {
                             webCaseFlowDTO.setHandleNotes("上报意见:-" );
                         }
-                    }
-                    // 当事人评价节点,特殊处理
-                    if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){
-                        webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
-                        webCaseFlowDTO.setProcessName(caseTask.getNodeShowName());
-                        webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUserName());
-                        webCaseFlowDTO.setHandleUserName(null);
-                    }else{
-                        webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName());
                     }
                     // 审核节点要判断通过/不通过
                     if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JASH.getIndex())
@@ -594,7 +593,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());
@@ -644,11 +644,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("事件回退");
@@ -669,13 +677,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())
@@ -732,7 +733,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());
@@ -1855,39 +1857,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());
@@ -1900,20 +1968,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());
@@ -2046,52 +2103,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);
diff --git a/dyh-service/dyh-mediate/src/main/resources/processes/GZDYH_ZXSL_3LEVEL_V1.bpmn20.xml b/dyh-service/dyh-mediate/src/main/resources/processes/GZDYH_ZXSL_3LEVEL_V1.bpmn20.xml
index 428c7bc..ebee147 100644
--- a/dyh-service/dyh-mediate/src/main/resources/processes/GZDYH_ZXSL_3LEVEL_V1.bpmn20.xml
+++ b/dyh-service/dyh-mediate/src/main/resources/processes/GZDYH_ZXSL_3LEVEL_V1.bpmn20.xml
@@ -4,18 +4,11 @@
     <documentation>GZDYH_ZXSL_3LEVEL_V1</documentation>
     <startEvent id="START" name="开始"/>
     <userTask id="BLFK" name="办理反馈"/>
-    <userTask id="DSRPJ" name="当事人评价"/>
     <userTask id="JAGD" name="结案归档"/>
     <userTask id="JASH" name="结案审核"/>
     <endEvent id="END" name="结束"/>
     <userTask id="JASQ" name="结案申请"/>
     <sequenceFlow id="sid-FE66E67A-D6D4-4E68-BB7E-14A17E87B9E5" sourceRef="JAGD" targetRef="END"/>
-    <sequenceFlow id="sid-15046AD2-218B-4567-B05A-26B2D0069DE2" name="通过" sourceRef="DSRPJ" targetRef="JAGD">
-      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${operation=='forward'}]]></conditionExpression>
-    </sequenceFlow>
-    <sequenceFlow id="sid-78554576-20C8-4A98-9A33-92DD5542AA27" name="结案审核同意" sourceRef="JASH" targetRef="DSRPJ">
-      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${operation=='jash_ty'}]]></conditionExpression>
-    </sequenceFlow>
     <sequenceFlow id="sid-0AE3E811-3EBD-4891-B2BD-F2E091E41541" name="通过" sourceRef="JASQ" targetRef="JASH">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${operation=='forward'}]]></conditionExpression>
     </sequenceFlow>
@@ -30,6 +23,9 @@
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${operation=='forward'}]]></conditionExpression>
     </sequenceFlow>
     <sequenceFlow id="sid-B9DCA90A-70F1-4D12-90AE-44A0943FA1B3" sourceRef="START" targetRef="DSL"/>
+    <sequenceFlow id="sid-78554576-20C8-4A98-9A33-92DD5542AA27" name="结案审核同意" sourceRef="JASH" targetRef="JAGD">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${operation=='jash_ty'}]]></conditionExpression>
+    </sequenceFlow>
   </process>
   <bpmndi:BPMNDiagram id="BPMNDiagram_GZDYH_ZXSL_3LEVEL_V1">
     <bpmndi:BPMNPlane bpmnElement="GZDYH_ZXSL_3LEVEL_V1" id="BPMNPlane_GZDYH_ZXSL_3LEVEL_V1">
@@ -39,17 +35,14 @@
       <bpmndi:BPMNShape bpmnElement="BLFK" id="BPMNShape_BLFK">
         <omgdc:Bounds height="80.0" width="100.0" x="314.9999953061343" y="134.99999798834327"/>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="DSRPJ" id="BPMNShape_DSRPJ">
-        <omgdc:Bounds height="80.0" width="100.0" x="794.9999881535771" y="134.99999798834327"/>
-      </bpmndi:BPMNShape>
       <bpmndi:BPMNShape bpmnElement="JAGD" id="BPMNShape_JAGD">
-        <omgdc:Bounds height="80.0" width="100.0" x="959.9999856948855" y="134.99999798834327"/>
+        <omgdc:Bounds height="80.0" width="100.0" x="879.9999856948855" y="134.99999798834327"/>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape bpmnElement="JASH" id="BPMNShape_JASH">
         <omgdc:Bounds height="80.0" width="100.0" x="659.9999901652337" y="134.99999798834327"/>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape bpmnElement="END" id="BPMNShape_END">
-        <omgdc:Bounds height="28.0" width="28.0" x="1109.9999834597113" y="161.00001205503818"/>
+        <omgdc:Bounds height="28.0" width="28.0" x="1029.9999834597113" y="161.00001205503818"/>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape bpmnElement="JASQ" id="BPMNShape_JASQ">
         <omgdc:Bounds height="80.0" width="100.0" x="479.99999284744274" y="134.99998591840347"/>
@@ -72,16 +65,12 @@
         <omgdi:waypoint x="314.99999530610273" y="175.0000019993631"/>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="sid-FE66E67A-D6D4-4E68-BB7E-14A17E87B9E5" id="BPMNEdge_sid-FE66E67A-D6D4-4E68-BB7E-14A17E87B9E5">
-        <omgdi:waypoint x="1059.9499856948855" y="175.00000415177684"/>
-        <omgdi:waypoint x="1109.999983378599" y="175.0000103275493"/>
+        <omgdi:waypoint x="979.9499856948854" y="175.00000415177684"/>
+        <omgdi:waypoint x="1029.999983378599" y="175.0000103275493"/>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="sid-78554576-20C8-4A98-9A33-92DD5542AA27" id="BPMNEdge_sid-78554576-20C8-4A98-9A33-92DD5542AA27">
-        <omgdi:waypoint x="759.9499901651751" y="174.99999798834327"/>
-        <omgdi:waypoint x="794.9999881535146" y="174.99999798834327"/>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="sid-15046AD2-218B-4567-B05A-26B2D0069DE2" id="BPMNEdge_sid-15046AD2-218B-4567-B05A-26B2D0069DE2">
-        <omgdi:waypoint x="894.9499881534662" y="174.99999798834327"/>
-        <omgdi:waypoint x="959.9999856948592" y="174.99999798834327"/>
+        <omgdi:waypoint x="759.949990165133" y="174.99999798834327"/>
+        <omgdi:waypoint x="879.9999856948855" y="174.99999798834327"/>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="sid-0AE3E811-3EBD-4891-B2BD-F2E091E41541" id="BPMNEdge_sid-0AE3E811-3EBD-4891-B2BD-F2E091E41541">
         <omgdi:waypoint x="579.9499928474428" y="174.99998600593358"/>

--
Gitblit v1.8.0