广州市综治平台后端
xusd
2 days ago e9de6064cc94d6bc63685c5e62046ff810b96dab
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java
@@ -7,6 +7,7 @@
import cn.huge.base.common.utils.ObjectUtils;
import cn.huge.base.common.utils.ThreadPoolUtils;
import cn.huge.module.cases.consts.CaseTaskConsts;
import cn.huge.module.cases.domain.dto.FileRelateDTO;
import cn.huge.module.cases.domain.dto.MediatorDTO;
import cn.huge.module.cases.domain.po.*;
import cn.huge.module.cases.domain.vo.SaveEventFeedBackVo;
@@ -18,6 +19,7 @@
import cn.huge.module.cust.dto.CtUserDTO;
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 cn.huge.module.sys.dto.FileInfoBaseDTO;
import cn.huge.module.sys.dto.FileTypeInfoBaseDTO;
@@ -38,6 +40,7 @@
import javax.print.DocFlavor;
import java.util.*;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
@@ -83,6 +86,7 @@
    @Autowired
    private CaseInfoService caseInfoService;
    /**
     * 更新对象
@@ -192,6 +196,7 @@
     * @param userId
     */
    private void asyncSaveEventFeedback(CaseFeedback caseFeedback, String userId) {
        log.info("同步办理反馈信息开始!!");
        String caseId = caseFeedback.getCaseId();
        CaseInfo caseInfo = caseInfoService.getById(caseId);
        String canalSecond = caseInfo.getCanalSecond();
@@ -207,11 +212,11 @@
            return ;
        }
        //  使用单例设计的线程池来异步同步
        ThreadPoolUtils.submit(()->{
        //  使用completableFuture进行异步处理,使用jdk8的forkjoinPool线程池
        CompletableFuture<Object> future = CompletableFuture.supplyAsync(() -> {
            log.info("异步保存办理反馈信息开始");
            //  保存办理反馈信息后需要同步到大平台中
            String evtId = caseInfo.getCaseRef();
            String code = caseInfo.getCaseRef();
            //  反馈用户信息
            CtUserDTO ctUserDTO = custClient.clientGetUser(userId);
@@ -227,8 +232,8 @@
            //  构建参数
            SaveEventFeedBackVo saveEventFeedBackVo = new SaveEventFeedBackVo();
            saveEventFeedBackVo.setId(caseId);
            saveEventFeedBackVo.setEvtId(evtId);
            saveEventFeedBackVo.setId(caseFeedback.getId());
            saveEventFeedBackVo.setCode(code);
            //  先传递当前子系统的用户id
            saveEventFeedBackVo.setAppUserId(userId);
@@ -242,8 +247,19 @@
            saveEventFeedBackVo.setHandleType("");
            //  附件信息
            List<FileInfoBaseDTO> fileInfoList = caseFeedback.getFileInfoList();
            saveEventFeedBackVo.setFileInfoList(fileInfoList);
            //  先获取文件关联表信息
            List<FileRelateDTO> fileRelateDTOS = sysClient.listFileRelateByOwnerId(caseFeedback.getId());
            List<FileInfoBaseDTO> fileInfoBaseDTOS = new ArrayList<>();
            if (CollectionUtils.isNotEmpty(fileRelateDTOS)){
                fileInfoBaseDTOS = fileRelateDTOS.stream()
                        .map(o->{
                            FileInfoBaseDTO fileInfoBaseDTO = new FileInfoBaseDTO();
                            fileInfoBaseDTO.setId(o.getFileId());
                            return fileInfoBaseDTO;
                        }).collect(Collectors.toList());
            }
            saveEventFeedBackVo.setFileInfoList(fileInfoBaseDTOS);
            //  发起同步
            sysClient.saveEventFeedback(saveEventFeedBackVo);