From 23004281f096c4a195a83be2242ee46d41c4a0ad Mon Sep 17 00:00:00 2001 From: wangwh <2397901735@qq.com> Date: Tue, 24 Sep 2024 21:22:13 +0800 Subject: [PATCH] 计算时间修改 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseSuperviseService.java | 187 ++++++++++++++++++++++++++++++++++++---------- 1 files changed, 145 insertions(+), 42 deletions(-) diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseSuperviseService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseSuperviseService.java index 5bd8845..4351a6b 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseSuperviseService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseSuperviseService.java @@ -3,6 +3,12 @@ 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.FrontPageListDTO; +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; @@ -11,10 +17,14 @@ 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.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; @@ -52,6 +62,9 @@ @Autowired private SysClientImpl sysClient; + + @Autowired + private CaseInfoService caseInfoService; /** * 条件更新对象 @@ -133,23 +146,52 @@ /** * 添加督办 * @param caseSupervise 实体对象 - * @param userId 用户信息编号 */ public void addCaseSupervise(CaseSupervise caseSupervise, String userId){ try{ - // 获取当前登录用户 - CtUserDTO loginUser = custClient.clientGetUserAll(userId); - Date nowDate = DateUtils.getNowDate(); - caseSupervise.setSupUserId(loginUser.getId()); - caseSupervise.setSupUserName(loginUser.getTrueName()); - caseSupervise.setSupTime(nowDate); - caseSupervise.setSupStatus(0); - caseSupervise.setCreateTime(nowDate); - caseSupervise.setUpdateTime(nowDate); - //todo 配置时限 - Integer timeTerm = sysClient.getTimeLimit("dyh_case_supervise", SyTimeEnum.SY_TIME_03.getIndex()); - caseSupervise.setReplyTerm(timeTerm); - this.save(caseSupervise); + List<QuiltUnitDTO> quiltUnitDTOList = caseSupervise.getQuiltUnitDTOList(); + 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); + // 获取当前登录用户 + CtUserDTO loginUser = custClient.clientGetUserAll(userId); + Date nowDate = DateUtils.getNowDate(); + caseSuperviseNew.setSupUserId(loginUser.getId()); + caseSuperviseNew.setSupUserName(loginUser.getTrueName()); + caseSuperviseNew.setSupUnitId(loginUser.getUnitId()); + caseSuperviseNew.setSupUnitName(loginUser.getUnitName()); + caseSuperviseNew.setSupTime(nowDate); + caseSuperviseNew.setQuiltUnitId(quiltUnitDTO.getQuiltUnitId()); + caseSuperviseNew.setQuiltUnitName(quiltUnitDTO.getQuiltUnitName()); + caseSuperviseNew.setSupStatus(0); + 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); @@ -168,7 +210,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){ @@ -181,41 +223,102 @@ * 流转办理-督办列表 * @param caseId 事项Id */ - public Map<String, Object> listCaseSupervise(String caseId){ + public Page<CaseSupervise> pageCaseSupervise(String caseId, PageRequest page, int supStatus, String userId, int type){ try{ - List<CaseSupervise> repliedList = new ArrayList<>(); - List<CaseSupervise> noReplyList = new ArrayList<>(); - QueryWrapper<CaseSupervise> caseSuperviseQueryWrapper = new QueryWrapper<>(); - caseSuperviseQueryWrapper.eq("case_id", caseId); - List<CaseSupervise> caseSuperviseList = mapper.selectList(caseSuperviseQueryWrapper); + CtUserDTO loginUser = custClient.clientGetUserAll(userId); + String quiltUnitId = loginUser.getUnitId(); + 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(CollectionUtils.isNotEmpty(caseSuperviseList)){ + if(1 != type){ - Map<String, Object>map = new HashMap<>(); - map.put("ownerIds", caseSuperviseList.stream().map(CaseSupervise::getId).collect(Collectors.joining("','"))); - map.put("types", FileOwnerTypeBaseEnum.OWNER_TYPE_506.getIndex()); - List<FileIdTypeInfoBaseDTO> fileIdTypeInfoBaseDTOList = sysClient.listIdTypeInfoByOwnerIdList(map, caseId); - for(CaseSupervise caseSupervise: caseSuperviseList){ - for(FileIdTypeInfoBaseDTO fileIdTypeInfoBaseDTO: fileIdTypeInfoBaseDTOList){ - if(caseSupervise.getId().equals(fileIdTypeInfoBaseDTO.getOwnerId())){ - caseSupervise.setFileInfoList(fileIdTypeInfoBaseDTO.getFileList()); + QueryWrapper<CaseInfo>caseInfoQueryWrapper = new QueryWrapper<>(); + caseInfoQueryWrapper.eq("id", caseId); + caseInfo = caseInfoService.getOne(caseInfoQueryWrapper); + for(CaseSupervise caseSupervise: caseSuperviseList){ + if(ObjectUtils.isNotEmpty(caseSupervise.getSupTime()) && ObjectUtils.isNotEmpty(caseSupervise.getReplyTerm())){ + caseSupervise.setTimeLimit(DateUtils.addHour(caseSupervise.getSupTime(), caseSupervise.getReplyTerm())); + } + if(ObjectUtils.isNotEmpty(caseInfo)){ + caseSupervise.setCaseGrade(caseInfo.getCaseLevel()); + } + } + }else{ + 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()+ "','" +FileOwnerTypeBaseEnum.OWNER_TYPE_507.getIndex()+"'"); + List<FileIdTypeInfoBaseDTO> fileIdTypeInfoBaseDTOList = sysClient.listIdTypeInfoByOwnerIdList(map); + for(CaseSupervise caseSupervise: caseSuperviseList){ + for(FileIdTypeInfoBaseDTO fileIdTypeInfoBaseDTO: fileIdTypeInfoBaseDTOList){ + if(caseSupervise.getId().equals(fileIdTypeInfoBaseDTO.getOwnerId())){ + caseSupervise.setFileInfoList(fileIdTypeInfoBaseDTO.getFileList()); + } + } } } - if(0 == caseSupervise.getSupStatus()){ - noReplyList.add(caseSupervise); - }else if(1 == caseSupervise.getSupStatus()){ - repliedList.add(caseSupervise); - } } - int count = noReplyList.size(); - Map<String, Object> result = new HashMap<>(); - result.put("count", count); - result.put("noReplyList", noReplyList); - result.put("repliedList", repliedList); - return result; + return new PageImpl<CaseSupervise>(caseSuperviseList, page, countSuperviseList); }catch (Exception e){ - log.error("[CaseSuperviseService.listCaseSupervise]调用失败,异常信息:"+e, e); - throw new ServiceException("CaseSuperviseService.listCaseSupervise", e); + log.error("[CaseSuperviseService.pageReplied]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseSuperviseService.pageReplied", e); } } + /** + * 首页-督办 + * @param page + * @param terms + */ + public Page<FrontPageListDTO> pageMyTaskDb(PageRequest page, Map<String, Object> terms){ + try{ + long countSuperviseList = mapper.countMyTaskDb(terms); + List<FrontPageListDTO> caseSuperviseList = mapper.pageMyTaskDb(page, terms); + return new PageImpl<FrontPageListDTO>(caseSuperviseList, page, countSuperviseList); + }catch (Exception e){ + log.error("[CaseSuperviseService.pageReplied]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseSuperviseService.pageReplied", e); + } + } + /** + * 查询督办数量 + * @param supStatus 回复状态 + * @param quiltUnitId 被督办组织编号 + * @return long + */ + 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); + } + + } } -- Gitblit v1.8.0