From c06b2f5b2aa6d8910664b30ab4f74ff3895ebbeb Mon Sep 17 00:00:00 2001
From: liyj <15602261488@163.com>
Date: Fri, 20 Sep 2024 10:27:45 +0800
Subject: [PATCH] Merge branch 'master' into gzdyh_test

---
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java |  157 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 141 insertions(+), 16 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 f0aa4e3..068cffb 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
@@ -95,6 +95,8 @@
     private CaseReturnService caseReturnService;
     @Autowired
     private CaseEvaluateService caseEvaluateService;
+    @Autowired
+    private CaseAssistInfoService caseAssistInfoService;
 
     @Autowired
     private CaseWindupApplyMapper caseWindupApplyMapper;
@@ -516,21 +518,124 @@
             result.put("handleCaseFlowList", handleCaseFlowList);
 
             // 查询配合组织流程
-            LinkedList<WebCaseFlowDTO> assistCaseFlowList = new LinkedList<>();
-            caseTaskQueryWrapper.clear();
-            caseTaskQueryWrapper.eq("case_id", caseId).eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).orderByDesc("create_time");
-            List<CaseTask> assistCaseTaskList = mapper.selectList(caseTaskQueryWrapper);
-            for (CaseTask caseTask: assistCaseTaskList){
-                WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO();
-                webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
-                webCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName());
-                webCaseFlowDTO.setHandleTime(caseTask.getHandleTime());
-                webCaseFlowDTO.setHandleNotes(caseTask.getHandleIllust());
-                webCaseFlowDTO.setTaskType(caseTask.getTaskType());
-                webCaseFlowDTO.setStatus(caseTask.getStatus());
-                assistCaseFlowList.add(webCaseFlowDTO);
+            List<CaseAssistInfo> caseAssistInfoList = caseAssistInfoService.listByCaseId(caseId);
+            if (CollectionUtils.isNotEmpty(caseAssistInfoList)){
+                LinkedList<WebAssistCaseFlowDTO> assistCaseFlowList = new LinkedList<>();
+                for (CaseAssistInfo caseAssistInfo: caseAssistInfoList){
+                    WebAssistCaseFlowDTO webAssistCaseFlowDTO = new WebAssistCaseFlowDTO();
+                    webAssistCaseFlowDTO.setUnitId(caseAssistInfo.getAssistUserId());
+                    webAssistCaseFlowDTO.setUnitName(caseAssistInfo.getAssistUserName());
+                    LinkedList<WebCaseFlowDTO> caseFlowList = new LinkedList<>();
+                    caseTaskQueryWrapper.clear();
+                    caseTaskQueryWrapper.eq("case_id", caseId).eq("cande_unit_id", caseAssistInfo.getAssistUserId())
+                            .eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).orderByDesc("create_time");
+                    List<CaseTask> assistCaseTaskList = mapper.selectList(caseTaskQueryWrapper);
+                    for (CaseTask caseTask: assistCaseTaskList){
+                        // 已结束节点
+                        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("已签收");
+                                    slWebCaseFlowDTO.setTaskType(caseTask.getTaskType());
+                                    slWebCaseFlowDTO.setStatus(caseTask.getStatus());
+                                    caseFlowList.add(slWebCaseFlowDTO);
+                                }
+                            }
+                            // 普通节点
+                            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, caseTask.getCaseTaskType());
+                                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());
+                                }
+                                // 临时加上
+                                webCaseFlowDTO.setHandleNotes("审核结果:"+webCaseFlowDTO.getAuditResultName());
+                            }
+                            // 结案申请,需要展示化解结果
+                            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());
+                                }
+                            }
+                            caseFlowList.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());
+                            }
+                            caseFlowList.add(webCaseFlowDTO);
+                        }
+                    }
+                    webAssistCaseFlowDTO.setCaseFlowList(caseFlowList);
+                    assistCaseFlowList.add(webAssistCaseFlowDTO);
+                }
+                result.put("assistCaseFlowList", assistCaseFlowList);
             }
-            result.put("assistCaseFlowList", assistCaseFlowList);
             return result;
         }catch (Exception e){
             log.error("[CaseTaskService.webGetTabButton]调用失败,异常信息:"+e, e);
@@ -1241,8 +1346,8 @@
                     lhczdfpCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2);
                     // 通过调度的,任务候选执行者类型是上一步骤选择
                     lhczdfpCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
-                    lhczdfpCaseTask.setCandeUnitId(loginUser.getUnitId());
-                    lhczdfpCaseTask.setCandeUnitName(loginUser.getUnitName());
+                    lhczdfpCaseTask.setCandeUnitId(assignAssistUnitDTO.getUitId());
+                    lhczdfpCaseTask.setCandeUnitName(assignAssistUnitDTO.getUitName());
                     // 不需要签收
                     lhczdfpCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                     lhczdfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
@@ -1294,6 +1399,17 @@
                     lhczdslCaseTask.setCreateTime(nowDate);
                     lhczdslCaseTask.setUpdateTime(nowDate);
                     mapper.insert(lhczdslCaseTask);
+                    // 新增联合处置信息
+                    CaseAssistInfo caseAssistInfoPO = new CaseAssistInfo();
+                    caseAssistInfoPO.setId(utilsClient.getNewTimeId());
+                    caseAssistInfoPO.setCaseId(dslCaseTask.getCaseId());
+                    caseAssistInfoPO.setAssistUnitId(assignAssistUnitDTO.getUitId());
+                    caseAssistInfoPO.setAssistUnitName(assignAssistUnitDTO.getUitName());
+                    caseAssistInfoPO.setAssistStatus(CaseTaskConsts.ASSIST_STATUS_0);
+                    caseAssistInfoPO.setCustId(dslCaseTask.getCustId());
+                    caseAssistInfoPO.setCreateTime(nowDate);
+                    caseAssistInfoPO.setUpdateTime(nowDate);
+                    caseAssistInfoService.save(caseAssistInfoPO);
                 }
                 // 更新纠纷扩展信息
                 CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
@@ -1428,6 +1544,15 @@
                 caseInfoUnfoldPO.setMediateUnitId(blfkCaseTask.getCandeUnitId());
                 caseInfoUnfoldPO.setMediateUnitName(blfkCaseTask.getCandeUnitName());
                 caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
+            }else {
+                // 更新配合部门联合处置信息
+                QueryWrapper<CaseAssistInfo> caseAssistInfoQueryWrapper = new QueryWrapper<>();
+                caseAssistInfoQueryWrapper.eq("case_id", blfkCaseTask.getCaseId())
+                        .eq("assist_unit_id", loginUser.getUnitId()).eq("assist_status", CaseTaskConsts.ASSIST_STATUS_0);
+                CaseAssistInfo caseAssistInfoPO = caseAssistInfoService.getOne(caseAssistInfoQueryWrapper);
+                caseAssistInfoPO.setCaseTaskId(blfkCaseTask.getId());
+                caseAssistInfoPO.setAcceptTime(nowDate);
+                caseAssistInfoService.updateCaseAssistInfo(caseAssistInfoPO);
             }
             return blfkCaseTask.getId();
         }catch (Exception e){

--
Gitblit v1.8.0