From 01a31c6c5ffe0d430b5c47af431502aa86153f66 Mon Sep 17 00:00:00 2001
From: wangwh <2397901735@qq.com>
Date: Fri, 20 Sep 2024 18:04:12 +0800
Subject: [PATCH] 督办bug修复

---
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java |  247 ++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 213 insertions(+), 34 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 8099665..96aab01 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
@@ -346,13 +346,24 @@
                     tabList.add(htsh);
                 }
                 if (FlowNodeEnum.FLOW_NODE_BLFK.getIndex().equals(caseTask.getNodeId())) {
-                    tabList.add(sxxq);
-                    tabList.add(sxbl);
-//                    tabList.add(sqjl);
+                    if (CaseTaskConsts.CASE_TASK_TYPE_1 == caseTask.getCaseTaskType()) {
+                        tabList.add(sxxq);
+                        tabList.add(sxbl);
+                        tabList.add(lcdb);
+//                        tabList.add(sqjl);
 
-                    buttonList.add(tjbljl);
-                    buttonList.add(lhczsq);
-                    buttonList.add(jasq);
+                        buttonList.add(tjbljl);
+                        buttonList.add(lhczsq);
+                        buttonList.add(jasq);
+                        buttonList.add(db);
+                    }else {
+                        tabList.add(sxxq);
+                        tabList.add(sxbl);
+                        tabList.add(lcdb);
+//                        tabList.add(sqjl);
+
+                        buttonList.add(tjbljl);
+                    }
                 }
                 if (FlowNodeEnum.FLOW_NODE_JASH.getIndex().equals(caseTask.getNodeId())) {
                     tabList.add(sxxq);
@@ -369,6 +380,19 @@
                     tabList.add(daxx);
                     tabList.add(lcdb);
 //                    tabList.add(sqjl);
+                }
+                if (FlowNodeEnum.FLOW_NODE_DSL.getIndex().equals(caseTask.getNodeId())) {
+                    tabList.add(dslxq);
+//                    tabList.add(sqjl);
+
+                    buttonList.add(sl);
+                    buttonList.add(ht);
+                }
+                if (FlowNodeEnum.FLOW_NODE_HTSH.getIndex().equals(caseTask.getNodeId())) {
+                    sxxq.setName("详情");
+                    tabList.add(sxxq);
+//                    tabList.add(sqjl);
+                    tabList.add(htsh);
                 }
             }else {
                 tabList.add(sxxq);
@@ -425,9 +449,9 @@
                         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.setHandleUnitName(caseTask.getCandeUnitName());
+                            slWebCaseFlowDTO.setHandleUserName(caseTask.getSignUserName());
+                            slWebCaseFlowDTO.setHandleTime(caseTask.getSignTime());
                             slWebCaseFlowDTO.setHandleNotes("已签收");
                             slWebCaseFlowDTO.setTaskType(caseTask.getTaskType());
                             slWebCaseFlowDTO.setStatus(caseTask.getStatus());
@@ -503,6 +527,24 @@
                     handleCaseFlowList.add(webCaseFlowDTO);
                 }else {
                     // 进行中的节点
+                    // 待受理并已签收的正常任务节点,需要加多一个签收节点
+                    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.getCandeUnitName());
+                            slWebCaseFlowDTO.setHandleUserName(caseTask.getSignUserName());
+                            slWebCaseFlowDTO.setHandleTime(caseTask.getSignTime());
+                            slWebCaseFlowDTO.setHandleNotes("已签收");
+                            slWebCaseFlowDTO.setTaskType(caseTask.getTaskType());
+                            slWebCaseFlowDTO.setStatus(CaseTaskConsts.TASK_STATUS_2);
+                            handleCaseFlowList.add(slWebCaseFlowDTO);
+                        }
+                    }
+                    // 正常节点
                     WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO();
                     webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                     webCaseFlowDTO.setStatus(caseTask.getStatus());
@@ -510,7 +552,7 @@
                     if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){
                         webCaseFlowDTO.setProcessName(caseTask.getNodeShowName());
                     }else{
-                        webCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName());
+                        webCaseFlowDTO.setProcessName(caseTask.getCandeUnitName());
                     }
                     handleCaseFlowList.add(webCaseFlowDTO);
                 }
@@ -518,32 +560,140 @@
             result.put("handleCaseFlowList", handleCaseFlowList);
 
             // 查询配合组织流程
-            CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId);
-            if (StringUtils.isNotEmpty(caseInfoUnfold.getAssistUnitId())){
+            List<CaseAssistInfo> caseAssistInfoList = caseAssistInfoService.listByCaseId(caseId);
+            if (CollectionUtils.isNotEmpty(caseAssistInfoList)){
                 LinkedList<WebAssistCaseFlowDTO> assistCaseFlowList = new LinkedList<>();
-                String[] unitIdList = caseInfoUnfold.getAssistUnitId().split(BaseConsts.COMMA);
-                String[] unitNameList = caseInfoUnfold.getAssistUnitName().split(BaseConsts.COMMA);
-                for (int i=0; i<unitIdList.length; i++){
-                    String unitId = unitIdList[i];
-                    String unitName = unitNameList[i];
+                for (CaseAssistInfo caseAssistInfo: caseAssistInfoList){
                     WebAssistCaseFlowDTO webAssistCaseFlowDTO = new WebAssistCaseFlowDTO();
-                    webAssistCaseFlowDTO.setUnitId(unitId);
-                    webAssistCaseFlowDTO.setUnitName(unitName);
-                    i ++;
+                    webAssistCaseFlowDTO.setUnitId(caseAssistInfo.getAssistUnitId());
+                    if (CaseTaskConsts.ASSIST_STATUS_0 == caseAssistInfo.getAssistStatus()) {
+                        webAssistCaseFlowDTO.setUnitName(caseAssistInfo.getAssistUnitName());
+                    }else {
+                        webAssistCaseFlowDTO.setUnitName(caseAssistInfo.getAssistUnitName()+"(已回退)");
+                    }
                     LinkedList<WebCaseFlowDTO> caseFlowList = new LinkedList<>();
                     caseTaskQueryWrapper.clear();
-                    caseTaskQueryWrapper.eq("case_id", caseId).eq("cande_unit_id", unitId)
-                            .eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).orderByDesc("create_time");
+                    caseTaskQueryWrapper.eq("case_id", caseId).eq("cande_unit_id", caseAssistInfo.getAssistUnitId())
+                            .eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).orderByAsc("id");
                     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());
-                        caseFlowList.add(webCaseFlowDTO);
+                        // 已结束节点
+                        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.getCandeUnitName());
+                                    slWebCaseFlowDTO.setHandleUserName(caseTask.getSignUserName());
+                                    slWebCaseFlowDTO.setHandleTime(caseTask.getSignTime());
+                                    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 {
+                            // 进行中的节点
+                            // 待受理并已签收的正常任务节点,需要加多一个签收节点
+                            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.getCandeUnitName());
+                                    slWebCaseFlowDTO.setHandleUserName(caseTask.getSignUserName());
+                                    slWebCaseFlowDTO.setHandleTime(caseTask.getSignTime());
+                                    slWebCaseFlowDTO.setHandleNotes("已签收");
+                                    slWebCaseFlowDTO.setTaskType(caseTask.getTaskType());
+                                    slWebCaseFlowDTO.setStatus(CaseTaskConsts.TASK_STATUS_2);
+                                    caseFlowList.add(slWebCaseFlowDTO);
+                                }
+                            }
+                            // 正常节点
+                            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.setProcessName(caseTask.getCandeUnitName());
+                            }
+                            caseFlowList.add(webCaseFlowDTO);
+                        }
                     }
                     webAssistCaseFlowDTO.setCaseFlowList(caseFlowList);
                     assistCaseFlowList.add(webAssistCaseFlowDTO);
@@ -733,6 +883,26 @@
                 total = caseAssistApplyService.countMyTaskAssistReview(terms);
                 frontPageListDTOList = caseAssistApplyService.pageMyTaskAssistReview(page, terms);
             }
+            return new PageImpl<FrontPageListDTO>(frontPageListDTOList, page, total);
+        }catch (Exception e) {
+            log.error("[CaseTaskService.pageMyTaskQs]调用失败,异常信息:" + e, e);
+            throw new ServiceException("CaseTaskService.pageMyTaskQs", e);
+        }
+    }
+
+    /**
+     * 首页-待审核分页查询
+     * @param page 分页对象
+     * @param terms 条件
+     * @return Page
+     */
+    public Page<FrontPageListDTO> pageMyTaskShWSQD(PageRequest page, int type, Map<String, Object> terms){
+        try {
+            long total = 0;
+            List<FrontPageListDTO> frontPageListDTOList = new ArrayList<>();
+            total = mapper.countMyTaskShWSQD(terms);
+            frontPageListDTOList = mapper.pageMyTaskShWSQD(page,terms);
+
             return new PageImpl<FrontPageListDTO>(frontPageListDTOList, page, total);
         }catch (Exception e) {
             log.error("[CaseTaskService.pageMyTaskQs]调用失败,异常信息:" + e, e);
@@ -1408,7 +1578,7 @@
             mapper.updateCaseTask(dslCaseTaskPO);
             // 完成当前待受理工作流任务
             FlowNode newFlowNode = flowInfoService.completeTask(dslCaseTask.getFlowableId(), dslCaseTask.getProcessTaskId(),
-                    FlowableConsts.OPERATION_sl, userId);
+                    FlowableConsts.OPERATION_forward, userId);
             // 新建办理反馈任务
             CaseTask blfkCaseTask = new CaseTask();
             blfkCaseTask.setId(utilsClient.getNewTimeId());
@@ -1970,9 +2140,9 @@
             htshCaseTask.setCaseTaskType(dslCaseTask.getCaseTaskType());
             // 受理任务,任务候选执行者类型是上一步骤选择
             htshCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
-            CtUnitDTO ctUnitDTO = custClient.getParentZzzxUnit(loginUser.getUnitId());
-            htshCaseTask.setCandeUnitId(ctUnitDTO.getId());
-            htshCaseTask.setCandeUnitName(ctUnitDTO.getUnitName());
+//            CtUnitDTO ctUnitDTO = custClient.getParentZzzxUnit(loginUser.getUnitId());
+            htshCaseTask.setCandeUnitId(loginUser.getUnitId());
+            htshCaseTask.setCandeUnitName(loginUser.getUnitName());
             // 受理后的任务,不需要签收
             htshCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
             // 任务处理时限
@@ -2074,6 +2244,15 @@
                     caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                     caseInfoPO.setUpdateTime(nowDate);
                     caseInfoService.updateCaseInfo(caseInfoPO);
+                }else {
+                    // 更新联合处置信息
+                    QueryWrapper<CaseAssistInfo> caseAssistInfoQueryWrapper = new QueryWrapper<>();
+                    caseAssistInfoQueryWrapper.eq("case_id", htshCaseTask.getCaseId()).eq("assist_unit_id", htshCaseTask.getCandeUnitId()).eq("assist_status", CaseTaskConsts.ASSIST_STATUS_0);
+                    CaseAssistInfo caseAssistInfo = caseAssistInfoService.getOne(caseAssistInfoQueryWrapper);
+                    if (ObjectUtils.isNotEmpty(caseAssistInfo)){
+                        caseAssistInfo.setAssistStatus(CaseTaskConsts.ASSIST_STATUS_1);
+                        caseAssistInfoService.updateCaseAssistInfo(caseAssistInfo);
+                    }
                 }
             }else {
                 // 审核不通过

--
Gitblit v1.8.0