forked from gzzfw/backEnd/gz-dyh

liyj
2024-09-21 1a34864a39b41159f83c608e72a04f14a1038228
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java
@@ -3,19 +3,21 @@
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.module.cases.domain.po.CaseFeedbackHis;
import cn.huge.module.cases.domain.po.CaseInfoUnfold;
import cn.huge.base.common.utils.ObjectUtils;
import cn.huge.module.cases.consts.CaseTaskConsts;
import cn.huge.module.cases.domain.po.*;
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.CaseFeedbackMapper;
import cn.huge.module.cases.domain.po.CaseFeedback;
import cn.huge.module.cust.dto.CtUserDTO;
import cn.huge.module.sys.dto.FileIdInfoBaseDTO;
import cn.huge.module.sys.dto.FileInfoBaseDTO;
import cn.huge.module.sys.dto.FileTypeInfoBaseDTO;
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.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -62,6 +64,12 @@
    @Autowired
    private CaseInfoUnfoldService unfoldService;
    @Autowired
    private CaseTaskService caseTaskService;
    @Autowired
    private CaseAssistInfoService caseAssistInfoService;
    /**
    * 更新对象
@@ -154,36 +162,72 @@
    }
    /**
     * 获取办理反馈信息
     * 获取办理信息
     * @param caseId
     * @param userId
     * @return
     */
    public Map<String, Object> getFeedbackInfo(String caseId, String caseTaskId, String userId){
        Map<String, Object> result = Maps.newHashMap();
        CaseInfoUnfold caseInfoUnfold = unfoldService.getById(caseId);
        CaseTask caseTask = caseTaskService.getById(caseTaskId);
        // 承办部门查询扩展表
        if (CaseTaskConsts.CASE_TASK_TYPE_1 == caseTask.getCaseTaskType()) {
            if (ObjectUtils.isNotEmpty(caseInfoUnfold)) {
                result.put("handleUserId", caseInfoUnfold.getMediatorId());
                result.put("handleUnitName", caseInfoUnfold.getMediateUnitName());
                result.put("handleUserName", caseInfoUnfold.getMediator());
                result.put("assistUnitName", caseInfoUnfold.getAssistUnitName());
                result.put("acceptTime", caseInfoUnfold.getAcceptTime());
            }
        }else {
            // 配合部门查询联合处置信息表
            CaseAssistInfo caseAssistInfo = caseAssistInfoService.getByCaseTaskId(caseTaskId);
            result.put("handleUnitName", caseInfoUnfold.getMediateUnitName());
            result.put("handleUserId", caseAssistInfo.getAssistUserId());
            result.put("handleUserName", caseAssistInfo.getAssistUserName());
            result.put("assistUnitName", caseAssistInfo.getAssistUnitName());
            result.put("acceptTime", caseAssistInfo.getAcceptTime());
        }
        return result;
    }
    /**
     * 获取办理反馈记录
     * @param id 条件
     * @return Page
     */
    public Map<String, Object> listFeedback(String id) {
        Map<String, Object> result = new HashMap<>();
        try {
            Map<String, Object> result = new HashMap<>();
            CaseInfoUnfold caseInfoUnfold = unfoldService.getById(id);
            if(ObjectUtils.isNotEmpty(caseInfoUnfold)){
                result.put("manager", caseInfoUnfold.getMediator());
            }
            QueryWrapper<CaseFeedback> caseFeedbackQueryWrapper = new QueryWrapper<>();
            caseFeedbackQueryWrapper.eq("case_id", id);
            List<CaseFeedback> caseFeedbackList = mapper.selectList(caseFeedbackQueryWrapper);
        QueryWrapper<CaseInfoUnfold> caseInfoUnfoldQueryWrapper = new QueryWrapper<>();
        caseInfoUnfoldQueryWrapper.eq("case_id", id);
        CaseInfoUnfold caseInfoUnfold = unfoldService.getOne(caseInfoUnfoldQueryWrapper);
        result.put("manager", caseInfoUnfold.getMediator());
        QueryWrapper<CaseFeedback> caseFeedbackQueryWrapper = new QueryWrapper<>();
        caseFeedbackQueryWrapper.eq("case_id", id);
        List<CaseFeedback> caseFeedbackList = mapper.selectList(caseFeedbackQueryWrapper);
            String ownerIds = caseFeedbackList.stream().map(CaseFeedback::getId).collect(Collectors.joining("','"));
            ownerIds = "'"+ ownerIds + "'";
            Map<String, Object> map = new HashMap<>();
            map.put("mainId", id);
            map.put("ownerIds", ownerIds);
            List<FileIdInfoBaseDTO> fileInfoList = sysClient.listIdInfoByOwnerIdList(map);
        String ownerIds = caseFeedbackList.stream().map(CaseFeedback::getId).collect(Collectors.joining("','"));
        ownerIds = "'"+ ownerIds + "'";
        Map<String, Object> map = new HashMap<>();
        map.put("ownerIds", ownerIds);
        List<FileIdInfoBaseDTO> fileInfoList = sysClient.listIdInfoByOwnerIdList(map, id);
        for(CaseFeedback caseFeedback: caseFeedbackList){
            for(FileIdInfoBaseDTO fileInfo: fileInfoList){
                if(caseFeedback.getId().equals(fileInfo.getOwnerId())){
                    caseFeedback.setFileInfoList(fileInfo.getFileList());
            for(CaseFeedback caseFeedback: caseFeedbackList){
                for(FileIdInfoBaseDTO fileInfo: fileInfoList){
                    if(caseFeedback.getId().equals(fileInfo.getOwnerId())){
                        caseFeedback.setFileInfoList(fileInfo.getFileList());
                    }
                }
            }
            result.put("caseFeedbackList", caseFeedbackList);
            return result;
        }catch (Exception e){
            log.error("[caseFeedbackService.listFeedback]调用失败,异常信息:"+e, e);
            throw new ServiceException("caseFeedbackService.listFeedback", e);
        }
        result.put("caseFeedbackList", caseFeedbackList);
        return result;
    }
    /**
@@ -199,7 +243,6 @@
            caseFeedback.setHandleUserId(loginUser.getId());
            caseFeedback.setHandleUserName(loginUser.getTrueName());
            Date nowDate = DateUtils.getNowDate();
            caseFeedback.setId(utilsClient.getNewTimeId());
            caseFeedback.setUpdateTime(nowDate);
            caseFeedback.setCreateTime(nowDate);
            //todo 承办、配合--查询task