forked from gzzfw/backEnd/gz-dyh

wangwh
2024-09-22 55a6ee00c9bb89556a1ba53a3a763fa20230e030
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseSuperviseService.java
@@ -3,7 +3,11 @@
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.dto.FileRelateDTO;
import cn.huge.module.cases.domain.dto.QuiltUnitDTO;
import cn.huge.module.cases.domain.po.CaseInfo;
import cn.huge.module.cases.domain.po.CaseInfoUnfold;
import cn.huge.module.client.api.impl.CustClientImpl;
import cn.huge.module.client.api.impl.SysClientImpl;
import cn.huge.module.client.api.impl.UtilsClientImpl;
@@ -12,10 +16,12 @@
import cn.huge.module.cust.dto.CtUserDTO;
import cn.huge.module.sys.constant.FileOwnerTypeBaseEnum;
import cn.huge.module.sys.constant.SyTimeEnum;
import cn.huge.module.sys.dto.FileIdInfoBaseDTO;
import cn.huge.module.sys.dto.FileIdTypeInfoBaseDTO;
import cn.huge.module.sys.dto.FileInfoBaseDTO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -54,6 +60,9 @@
    @Autowired
    private SysClientImpl sysClient;
    @Autowired
    private CaseInfoService caseInfoService;
    /**
    * 条件更新对象
@@ -139,8 +148,11 @@
    public void addCaseSupervise(CaseSupervise caseSupervise, String userId){
        try{
            List<QuiltUnitDTO> quiltUnitDTOList = caseSupervise.getQuiltUnitDTOList();
            Integer timeTerm = sysClient.getTimeLimit("dyh_case_supervise", SyTimeEnum.SY_TIME_5.getIndex());
            Integer timeTerm = sysClient.getTimeLimitHour(SyTimeEnum.SY_TIME_5.getIndex());
            List<CaseSupervise> caseSuperviseList = new ArrayList<>();
            List<FileRelateDTO> fileRelateDTOList = sysClient.listFileRelateByOwnerId(caseSupervise.getId());
            int count = 0;
            List<FileRelateDTO> fileRelateDTOListNew = new ArrayList<>();
            for(QuiltUnitDTO quiltUnitDTO: quiltUnitDTOList){
                CaseSupervise caseSuperviseNew = new CaseSupervise();
                BeanUtils.copyProperties(caseSupervise, caseSuperviseNew);
@@ -150,7 +162,7 @@
                caseSuperviseNew.setSupUserId(loginUser.getId());
                caseSuperviseNew.setSupUserName(loginUser.getTrueName());
                caseSuperviseNew.setSupUnitId(loginUser.getUnitId());
                caseSuperviseNew.setSupUnitId(loginUser.getUnitName());
                caseSuperviseNew.setSupUnitName(loginUser.getUnitName());
                caseSuperviseNew.setSupTime(nowDate);
                caseSuperviseNew.setQuiltUnitId(quiltUnitDTO.getQuiltUnitId());
                caseSuperviseNew.setQuiltUnitName(quiltUnitDTO.getQuiltUnitName());
@@ -158,9 +170,26 @@
                caseSuperviseNew.setCreateTime(nowDate);
                caseSuperviseNew.setUpdateTime(nowDate);
                caseSuperviseNew.setReplyTerm(timeTerm);
                //给每条督办添加附件信息
                if(0 != count){
                    String caseSupId = utilsClient.getNewTimeId();
                    caseSuperviseNew.setId(caseSupId);
                    for(FileRelateDTO fileRelateDTO: fileRelateDTOList){
                        String fileRealateId = utilsClient.getNewTimeSysId();
                        FileRelateDTO fileRelateDTONew = new FileRelateDTO();
                        BeanUtils.copyProperties(fileRelateDTO, fileRelateDTONew);
                        fileRelateDTONew.setOwnerId(caseSuperviseNew.getId());
                        fileRelateDTONew.setId(fileRealateId);
                        fileRelateDTOListNew.add(fileRelateDTONew);
                    }
                }
                caseSuperviseList.add(caseSuperviseNew);
                count++;
            }
            this.saveBatch(caseSuperviseList);
            if(CollectionUtils.isNotEmpty(fileRelateDTOListNew)){
                sysClient.saveFileRelateList(fileRelateDTOListNew);
            }
        }catch (Exception e){
            log.error("[CaseSuperviseService.saveCaseSupervise]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseSuperviseService.saveCaseSupervise", e);
@@ -179,7 +208,7 @@
            caseSupervise.setSupStatus(1);
            caseSupervise.setReplyUserId(loginUser.getId());
            caseSupervise.setReplyUserName(loginUser.getTrueName());
            caseSupervise.setReplyTime(String.valueOf(now));
            caseSupervise.setReplyTime(now);
            caseSupervise.setUpdateTime(now);
            mapper.updateCaseSupervise(caseSupervise);
        }catch (Exception e){
@@ -192,17 +221,36 @@
     * 流转办理-督办列表
     * @param caseId 事项Id
     */
    public Page<CaseSupervise> pageCaseSupervise(String caseId, PageRequest page, int supStatus, String userId){
    public Page<CaseSupervise> pageCaseSupervise(String caseId, PageRequest page, int supStatus, String userId, int type){
        try{
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            String quiltUnitId = loginUser.getUnitId();
            long countSuperviseList = mapper.countCaseSupervise(caseId, supStatus, quiltUnitId);
            List<CaseSupervise> caseSuperviseList = mapper.pageCaseSupervise(caseId, page, supStatus, quiltUnitId);
            Map<String, Object> terms = new HashMap<>();
            terms.put("caseId", caseId);
            terms.put("type", type);
            if(1 == type){
                terms.put("supStatus", supStatus);
                terms.put("quiltUnitId", quiltUnitId);
            }
            long countSuperviseList = mapper.countCaseSupervise(terms);
            List<CaseSupervise> caseSuperviseList = mapper.pageCaseSupervise(terms, page);
            CaseInfo caseInfo = new CaseInfo();
            if(1 != type && CollectionUtils.isNotEmpty(caseSuperviseList)){
                QueryWrapper<CaseInfo>caseInfoQueryWrapper = new QueryWrapper<>();
                caseInfoQueryWrapper.eq("id", caseId);
                caseInfo = caseInfoService.getOne(caseInfoQueryWrapper);
                for(CaseSupervise caseSupervise: caseSuperviseList){
                    if(ObjectUtils.isNotEmpty(caseInfo)){
                        caseSupervise.setCaseGrade(caseInfo.getCaseLevel());
                    }
                }
            }
            Map<String, Object>map = new HashMap<>();
            map.put("mainId", caseId);
            map.put("ownerIds", caseSuperviseList.stream().map(CaseSupervise::getId).collect(Collectors.joining("','")));
            map.put("types", FileOwnerTypeBaseEnum.OWNER_TYPE_506.getIndex());
            map.put("ownerIds", "'" + caseSuperviseList.stream().map(CaseSupervise::getId).collect(Collectors.joining("','"))+ "'");
            map.put("types", "'"+ FileOwnerTypeBaseEnum.OWNER_TYPE_506.getIndex()+ "','" +FileOwnerTypeBaseEnum.OWNER_TYPE_507.getIndex()+"'");
            List<FileIdTypeInfoBaseDTO> fileIdTypeInfoBaseDTOList = sysClient.listIdTypeInfoByOwnerIdList(map);
            for(CaseSupervise caseSupervise: caseSuperviseList){
                for(FileIdTypeInfoBaseDTO fileIdTypeInfoBaseDTO: fileIdTypeInfoBaseDTOList){
@@ -243,4 +291,27 @@
    public long countCaseSuperviseList(Integer supStatus, String quiltUnitId){
        return mapper.countCaseSuperviseList(supStatus, quiltUnitId);
    }
    /**
     * 根据督办编号查询督办信息
     * @param id 督办编号
     * @return List
     */
    public CaseSupervise getById(String id){
        try {
            CaseSupervise caseSupervise = mapper.selectById(id);
            Map<String, Object> terms = new HashMap<>();
            terms.put("mainId", caseSupervise.getCaseId());
            terms.put("ownerIds", "'" + id + "'");
            List<FileIdTypeInfoBaseDTO> fileIdTypeInfoBaseDTOList = sysClient.listIdTypeInfoByOwnerIdList(terms);
            if(CollectionUtils.isNotEmpty(fileIdTypeInfoBaseDTOList)){
                caseSupervise.setFileInfoList(fileIdTypeInfoBaseDTOList.get(0).getFileList());
            }
            return caseSupervise;
        }catch (Exception e){
            log.error("[CaseSuperviseService.getById]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseSuperviseService.getById", e);
        }
    }
}