From 5aa1a5263745b746b98d05c3296bf91c5c7d5edf Mon Sep 17 00:00:00 2001
From: liyj <15602261488@163.com>
Date: Fri, 27 Sep 2024 18:00:02 +0800
Subject: [PATCH] 1、联合处置审核页面bug修复 2、详情也办理结果-办理意见为空修复

---
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoUnfoldService.java |  157 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 122 insertions(+), 35 deletions(-)

diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoUnfoldService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoUnfoldService.java
index b48fc15..294d540 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoUnfoldService.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoUnfoldService.java
@@ -1,24 +1,30 @@
 package cn.huge.module.cases.service;
 
+import cn.huge.base.common.dto.SelectTermDTO;
 import cn.huge.base.common.exception.ServiceException;
 import cn.huge.base.common.utils.DateUtils;
 import cn.huge.base.common.utils.IdUtils;
 import cn.huge.base.common.utils.ObjectUtils;
-import cn.huge.module.cases.domain.po.CaseAssistApply;
+import cn.huge.module.cases.consts.CaseTaskConsts;
+import cn.huge.module.cases.domain.po.*;
 import cn.huge.module.cases.domain.dto.TransactResultDTO;
 import cn.huge.module.client.api.impl.CustClientImpl;
 import cn.huge.module.client.api.impl.SysClientImpl;
 import cn.huge.module.client.api.impl.UtilsClientImpl;
 import cn.huge.module.cases.dao.mapper.CaseInfoUnfoldMapper;
-import cn.huge.module.cases.domain.po.CaseInfoUnfold;
+import cn.huge.module.cust.dto.CtUnitDTO;
 import cn.huge.module.cust.dto.CtUserDTO;
 import cn.huge.module.mediate.constant.AuditBaseConstsEnum;
 import cn.huge.module.mediate.constant.CaseBaseConsts;
 import cn.huge.module.mediate.constant.CaseBaseConstsEnum;
+import cn.huge.module.sys.constant.FileOwnerTypeBaseEnum;
 import cn.huge.module.sys.dto.FileIdInfoBaseDTO;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.apache.el.stream.Stream;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -28,10 +34,8 @@
 import org.springframework.data.domain.PageRequest;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @title: 纠纷信息扩展表业务逻辑处理
@@ -60,6 +64,15 @@
 
     @Autowired
     private SysClientImpl sysClient;
+
+    @Autowired
+    private CaseTaskService caseTaskService;
+
+    @Autowired
+    private CaseAssistInfoService caseAssistInfoService;
+
+    @Autowired
+    private CaseFeedbackService caseFeedbackService;
 
     /**
     * 更新对象
@@ -153,19 +166,47 @@
 
     /**
      * PC端-选择经办人
-     * @param caseId 对象
+     * @param caseId 纠纷编号
+     * @param caseTaskId 办理反馈任务编号
      * @param userId 条件
      */
-    public void choosePrincipal(String caseId, String userId){
+    public void choosePrincipal(String caseId, String caseTaskId, String userId){
         try{
-            // 获取当前登录用户
-            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
-            CaseInfoUnfold CaseInfoUnfold = new CaseInfoUnfold();
-            CaseInfoUnfold.setId(caseId);
-            CaseInfoUnfold.setMediatorId(loginUser.getId());
-            CaseInfoUnfold.setMediator(loginUser.getTrueName());
-            CaseInfoUnfold.setMediatorMobile(loginUser.getMobile());
-            mapper.updateCaseInfoUnfold(CaseInfoUnfold);
+            Date nowDate = DateUtils.getNowDate();
+            // 获取经办人信息
+            CtUserDTO ctUserDTO = custClient.clientGetUser(userId);
+            CaseTask caseTask = caseTaskService.getById(caseTaskId);
+            // 承办部门,更新扩展表
+            if (CaseTaskConsts.CASE_TASK_TYPE_1 == caseTask.getCaseTaskType()) {
+                CaseInfoUnfold CaseInfoUnfold = new CaseInfoUnfold();
+                CaseInfoUnfold.setId(caseId);
+                CaseInfoUnfold.setMediatorId(ctUserDTO.getId());
+                CaseInfoUnfold.setMediator(ctUserDTO.getTrueName());
+                CaseInfoUnfold.setMediatorMobile(ctUserDTO.getMobile());
+                CaseInfoUnfold.setUpdateTime(nowDate);
+                mapper.updateCaseInfoUnfold(CaseInfoUnfold);
+            }else {
+                // 配合部门,更新联合处置信息表
+                CaseAssistInfo caseAssistInfo = caseAssistInfoService.getByCaseTaskId(caseTaskId);
+                caseAssistInfo.setAssistUserId(ctUserDTO.getId());
+                caseAssistInfo.setAssistUserName(ctUserDTO.getTrueName());
+                caseAssistInfo.setUpdateTime(nowDate);
+                caseAssistInfoService.updateCaseAssistInfo(caseAssistInfo);
+
+            }
+        }catch (Exception e){
+            log.error("[CaseInfoUnfoldService.choosePrincipal]调用失败,异常信息:"+e, e);
+            throw new ServiceException("CaseInfoUnfoldService.choosePrincipal", e);
+        }
+    }
+
+    /**
+     * PC端-删除经办人
+     * @param caseId 对象
+     */
+    public void deletePrincipal(String caseId){
+        try{
+            mapper.deletePrincipal(caseId);
         }catch (Exception e){
             log.error("[CaseInfoUnfoldService.choosePrincipal]调用失败,异常信息:"+e, e);
             throw new ServiceException("CaseInfoUnfoldService.choosePrincipal", e);
@@ -173,29 +214,75 @@
     }
 
     public TransactResultDTO getTransactResult(String caseId){
-        //查询办理结果信息
-        CaseInfoUnfold caseInfoUnfold = this.getById(caseId);
+        try {
+            //查询办理结果信息
+            CaseInfoUnfold caseInfoUnfold = this.getById(caseId);
+            if(StringUtils.isNotBlank(caseInfoUnfold.getMediResult())) {
+                TransactResultDTO transactResultDTO = new TransactResultDTO();
+                if (ObjectUtils.isNotEmpty(caseInfoUnfold)) {
+                    BeanUtils.copyProperties(caseInfoUnfold, transactResultDTO);
+                    QueryWrapper<CaseAssistApply> caseAssistApplyQueryWrapper = new QueryWrapper<>();
+                    caseAssistApplyQueryWrapper.select("apply_assist_unit_name").eq("case_id", caseId).eq("apply_status", 1)
+                            .eq("audit_result", AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex());
+                    CaseAssistApply caseAssistApply = assistApplyService.getOne(caseAssistApplyQueryWrapper);
 
-        TransactResultDTO transactResultDTO = new TransactResultDTO();
-        BeanUtils.copyProperties(caseInfoUnfold, transactResultDTO);
-        if(ObjectUtils.isNotEmpty(transactResultDTO)){
-            QueryWrapper<CaseAssistApply> caseAssistApplyQueryWrapper = new QueryWrapper<>();
-            caseAssistApplyQueryWrapper.select("apply_assist_unit_name").eq("case_id", caseId).eq("apply_status", 1)
-                    .eq("audit_result", AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex());
-            CaseAssistApply caseAssistApply = assistApplyService.getOne(caseAssistApplyQueryWrapper);
+                    if (ObjectUtils.isNotEmpty(caseAssistApply)) {
+                        transactResultDTO.setApplyAssistUnitName(caseAssistApply.getApplyAssistUnitName());
+                    }
 
-            if(ObjectUtils.isNotEmpty(caseAssistApply)){
-                transactResultDTO.setApplyAssistUnitName(caseAssistApply.getApplyAssistUnitName());
+                    // 查询最新的办理意见
+                    QueryWrapper<CaseFeedback> caseFeedbackQueryWrapper = new QueryWrapper<>();
+                    caseFeedbackQueryWrapper.eq("case_id", caseId).eq("handle_type", CaseTaskConsts.HANDLE_TYPE_1)
+                            .orderByDesc("create_time");
+                    List<CaseFeedback> caseFeedbackList = caseFeedbackService.list(caseFeedbackQueryWrapper);
+                    if (CollectionUtils.isNotEmpty(caseFeedbackList)){
+                        transactResultDTO.setHandleContent(caseFeedbackList.get(0).getHandleContent());
+                    }
+                }
+                Map<String, Object> terms = new HashMap<>();
+                terms.put("mainId", caseId);
+                terms.put("types", "'" + FileOwnerTypeBaseEnum.OWNER_TYPE_302.getIndex() + "'");
+                List<FileIdInfoBaseDTO> fileIdInfoBaseDTOList = sysClient.listIdInfoByOwnerIdList(terms);
+                if (ObjectUtils.isNotEmpty(fileIdInfoBaseDTOList)) {
+                    transactResultDTO.setFileInfoBaseDTOList(fileIdInfoBaseDTOList.get(0).getFileList());
+                }
+                return transactResultDTO;
+            }else {
+                return null;
             }
+        }catch (Exception e){
+            log.error("[CaseInfoUnfoldService.getTransactResult]调用失败,异常信息:"+e, e);
+            throw new ServiceException("CaseInfoUnfoldService.getTransactResult", e);
         }
-        Map<String, Object> terms = new HashMap<>();
-        terms.put("mainId", caseId);
-        terms.put("ownerIds", "'"+caseId+"'");
-        List<FileIdInfoBaseDTO> fileIdInfoBaseDTOList = sysClient.listIdInfoByOwnerIdList(terms);
-        if(ObjectUtils.isNotEmpty(fileIdInfoBaseDTOList)){
-            transactResultDTO.setFileInfoBaseDTOList(fileIdInfoBaseDTOList.get(0).getFileList());
-        }
-        return transactResultDTO;
     }
 
+    /**
+     * 联合处置申请-查询组织
+     * @param caseId
+     * @return
+     */
+    public List<SelectTermDTO> superviceUnitChoose(String caseId) {
+        try {
+            CaseInfoUnfold caseInfoUnfold = getById(caseId);
+            List<String> unitIdList = new ArrayList<>();
+            unitIdList.add(caseInfoUnfold.getMediateUnitId());
+            if(StringUtils.isNotBlank(caseInfoUnfold.getAssistUnitId())){
+                unitIdList.addAll(Arrays.stream(caseInfoUnfold.getAssistUnitId().split(",")).map(String::valueOf).collect(Collectors.toList()));
+            }
+            List<SelectTermDTO> selectTermDTOList = new ArrayList<>();
+            for (String unitId : unitIdList) {
+                CtUnitDTO ctUnitDTO = custClient.getUnitById(unitId);
+                SelectTermDTO unitSelectTerm = new SelectTermDTO();
+                unitSelectTerm.setValue(ctUnitDTO.getId());
+                unitSelectTerm.setLabel(ctUnitDTO.getUnitName());
+                unitSelectTerm.setParentId(ctUnitDTO.getParentId());
+                unitSelectTerm.setCheckable(true);
+                selectTermDTOList.add(unitSelectTerm);
+            }
+            return selectTermDTOList;
+        }catch (Exception e){
+            log.error("[CaseInfoUnfoldService.superviceUnitChoose] 调用失败,异常信息:"+e, e);
+            throw new ServiceException("CaseInfoUnfoldService.superviceUnitChoose", e);
+        }
+    }
 }

--
Gitblit v1.8.0