From 40b51bc4577ac5ed1e505d22403eb76b3a45e690 Mon Sep 17 00:00:00 2001 From: wangwh <2397901735@qq.com> Date: Sun, 08 Sep 2024 11:19:26 +0800 Subject: [PATCH] 首页查询实体类 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 359 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 352 insertions(+), 7 deletions(-) diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java index 381b422..04e7515 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java @@ -3,30 +3,27 @@ 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.CaseInfoDTO; -import cn.huge.module.cases.domain.dto.RegisterSaveDTO; +import cn.huge.module.cases.domain.dto.*; + import cn.huge.module.cases.domain.po.CaseAgent; import cn.huge.module.cases.domain.po.CaseInfoUnfold; import cn.huge.module.cases.domain.po.CasePerson; -import cn.huge.module.client.api.SysClient; 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.CaseInfoMapper; import cn.huge.module.cases.domain.po.CaseInfo; import cn.huge.module.constant.BaseConsts; +import cn.huge.module.cust.dto.PaUserDTO; import cn.huge.module.mediate.constant.CaseBaseConsts; import cn.huge.module.mediate.constant.CaseBaseConstsEnum; import cn.huge.module.cust.dto.CtUserDTO; import cn.huge.module.draft.service.CasedraftInfoService; import cn.huge.module.mediate.dto.WechatBindCaseDTO; import cn.huge.module.sys.dto.FileIdTypeInfoBaseDTO; -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.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -383,9 +380,68 @@ String ids = idList.stream().map(String::valueOf).collect(Collectors.joining("','")); ids = "'"+ ids + "'"; Map<String, Object> term = new HashMap<>(); + term.put("mainId", caseId); term.put("ownerIds", ids); //查询所有附件 - List<FileIdTypeInfoBaseDTO> fileInfoList = sysClient.listIdTypeInfoByOwnerIdList(term, caseId); + List<FileIdTypeInfoBaseDTO> fileInfoList = sysClient.listIdTypeInfoByOwnerIdList(term); + for(FileIdTypeInfoBaseDTO fileInfo: fileInfoList){ + if(caseId.equals(fileInfo.getOwnerId())){ + caseInfoDTO.setFileInfoList(fileInfo.getFileList()); + } + } + for(CasePerson casePerson: casePersonList){ + //把附件根据编号放入 + for(FileIdTypeInfoBaseDTO fileInfo: fileInfoList){ + if(casePerson.getId().equals(fileInfo.getOwnerId())){ + casePerson.setFileInfoList(fileInfo.getFileList()); + } + } + } + for(CaseAgent caseAgent: caseAgentList){ + for(FileIdTypeInfoBaseDTO fileInfo: fileInfoList){ + if(caseAgent.getId().equals(fileInfo.getOwnerId())){ + caseAgent.setFileInfoList(fileInfo.getFileList()); + } + } + } + caseInfoDTO.setPersonList(casePersonList); + caseInfoDTO.setAgentList(caseAgentList); + } + return caseInfoDTO; + } + + /** + * PC端-查询纠纷信息 + * @param caseId 纠纷编号 + * @return CaseInfo 纠纷信息 + */ + public CaseInfoDTO getCaseArchivesInfo(String caseId){ + CaseInfo caseInfo = mapper.selectById(caseId); + CaseInfoDTO caseInfoDTO = new CaseInfoDTO(); + if (ObjectUtils.isNotEmpty(caseInfo)) { + + BeanUtils.copyProperties(caseInfo, caseInfoDTO); + //查询所有当事人 + QueryWrapper<CasePerson> personQueryWrapper = new QueryWrapper<>(); + personQueryWrapper.eq("case_id", caseId); + List<CasePerson> casePersonList = personService.list(personQueryWrapper); + + //查询所有代理人 + QueryWrapper<CaseAgent> caseAgentQueryWrapper = new QueryWrapper<>(); + caseAgentQueryWrapper.eq("case_id", caseId); + List<CaseAgent> caseAgentList = agentService.list(caseAgentQueryWrapper); + List<String> idList = new ArrayList<>(); + + idList.add(caseId); + idList.addAll(casePersonList.stream().map(CasePerson::getId).collect(Collectors.toList())); + idList.addAll(caseAgentList.stream().map(CaseAgent::getId).collect(Collectors.toList())); + String ids = idList.stream().map(String::valueOf).collect(Collectors.joining("','")); + ids = "'"+ ids + "'"; + Map<String, Object> term = new HashMap<>(); + term.put("mainId", caseId); + term.put("ownerIds", ids); + //查询所有附件 + List<FileIdTypeInfoBaseDTO> fileInfoList = sysClient.listIdTypeInfoByOwnerIdList(term); for(FileIdTypeInfoBaseDTO fileInfo: fileInfoList){ if(caseId.equals(fileInfo.getOwnerId())){ caseInfoDTO.setFileInfoList(fileInfo.getFileList()); @@ -453,4 +509,293 @@ } } } + + /** + * PC端-纠纷登记-保存纠纷信息-正常案件 + * @param registerSaveDTO 纠纷信息 + * @param userId 用户编号 + * @return String 纠纷编号 + */ + public String caseRegisterWechat(RegisterSaveDTO registerSaveDTO, String userId){ + try { + // 获取当前登录用户 + PaUserDTO loginUser = custClient.paclientGetUser(userId); + if(ObjectUtils.isEmpty(registerSaveDTO.getCustId())){ + registerSaveDTO.setCustId(loginUser.getCustId()); + } + + Date nowDate = DateUtils.getNowDate(); + registerSaveDTO.setUpdateTime(nowDate); + StringBuffer plaintiffs = new StringBuffer(); + StringBuffer defendants = new StringBuffer(); + StringBuffer pagents = new StringBuffer(); + StringBuffer dagents = new StringBuffer(); + int peopleNum = 0; + + CaseInfo caseInfo = new CaseInfo(); + CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold(); + BeanUtils.copyProperties(registerSaveDTO, caseInfo); + if(ObjectUtils.isEmpty(caseInfo.getId())){ + caseInfo.setId(utilsClient.getNewTimeCaseId()); + } +// caseInfo.setInputUnitId(loginUser.getUnitId()); +// caseInfo.setInputUnitName(loginUser.getUnitName()); + caseInfo.setInputUserId(loginUser.getId()); + caseInfo.setInputUserName(loginUser.getTrueName()); + caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1); + caseInfo.setCreateTime(nowDate); + caseInfo.setUpdateTime(nowDate); + caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + //todo case_ref生成、case_title生成 + + caseInfoUnfold.setId(utilsClient.getNewTimeId()); + caseInfoUnfold.setCaseId(caseInfo.getId()); + caseInfoUnfold.setCreateTime(nowDate); + caseInfoUnfold.setUpdateTime(nowDate); + + // 常规登记-保存当事人 + peopleNum += this.saveCasePersonWechat(registerSaveDTO, plaintiffs, pagents, defendants, dagents,loginUser); + caseInfo.setPeopleNum(peopleNum); + caseInfo.setPlaintiffs(plaintiffs.toString()); + caseInfo.setPagents(pagents.toString()); + caseInfo.setDefendants(defendants.toString()); + caseInfo.setDagents(dagents.toString()); + //todo 流程接口修改status、status_name、process、process_name + + this.saveOrUpdate(caseInfo); + return registerSaveDTO.getId(); + }catch (Exception e){ + log.error("service方法[CaseInfoService.caseRegisterWechat]调用异常:"+e, e); + throw new ServiceException("CaseInfoService.caseRegisterWechat", e); + } + } + + /** + * pc端-常规登记-保存正式案件-保存人员信息 + * @param registerSaveDTO 纠纷信息 + * @param plaintiffs 申请人 + * @param pagents 申请人代理人 + * @param defendants 被申请人 + * @param dagents 被申请人代理人 + * @return int + */ + private int saveCasePersonWechat(RegisterSaveDTO registerSaveDTO, StringBuffer plaintiffs, StringBuffer pagents, + StringBuffer defendants, StringBuffer dagents,PaUserDTO loginUser){ + int peopleNum = 0; + List<String> newPersonIdList = new ArrayList<>(); + List<String> newAgentIdList = new ArrayList<>(); + // 保存申请人 + List<CasePerson> personList = registerSaveDTO.getPersonList(); + if (CollectionUtils.isNotEmpty(personList)) { + for (CasePerson casePerson : personList) { + if(ObjectUtils.isEmpty(casePerson.getId())){ + casePerson.setId(utilsClient.getNewTimeCaseId()); + } + newPersonIdList.add(casePerson.getId()); + casePerson.setCaseId(registerSaveDTO.getId()); +// casePerson.setPerType(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex()); +// casePerson.setPerTypeName(CaseBaseConstsEnum.PERSON_TYPE_1.getDes()); + casePerson.setPartyUserId(loginUser.getId()); + casePerson.setCustId(registerSaveDTO.getCustId()); + casePerson.setCreateTime(registerSaveDTO.getUpdateTime()); + casePerson.setUpdateTime(registerSaveDTO.getUpdateTime()); + //todo 绑定当事人小程序 + + personService.saveOrUpdate(casePerson); + + //添加申请方和被申请方人名组合 + if(CaseBaseConstsEnum.PERSON_TYPE_1.equals(casePerson.getPerType())){ + //申请方 + if (StringUtils.isNotEmpty(plaintiffs.toString())) { + plaintiffs.append(BaseConsts.COMMA); + } + plaintiffs.append(casePerson.getTrueName()); + }else if(CaseBaseConstsEnum.PERSON_TYPE_2.equals(casePerson.getPerType())){ + //被申请方 + if (StringUtils.isNotEmpty(defendants.toString())) { + defendants.append(BaseConsts.COMMA); + } + defendants.append(casePerson.getTrueName()); + } + peopleNum++; + + } + //保存代理人 + List<CaseAgent> agentList = registerSaveDTO.getAgentList(); + if (CollectionUtils.isNotEmpty(agentList)) { + for(CaseAgent caseAgent: agentList){ + newAgentIdList.add(caseAgent.getId()); + if(ObjectUtils.isEmpty(caseAgent.getId())){ + caseAgent.setId(utilsClient.getNewTimeCaseId()); + } + caseAgent.setPartyUserId(loginUser.getId()); + caseAgent.setCaseId(registerSaveDTO.getId()); + caseAgent.setAgentTypeName(CaseBaseConstsEnum.getDes(caseAgent.getAgentType())); + + caseAgent.setCustId(registerSaveDTO.getCustId()); + caseAgent.setCreateTime(registerSaveDTO.getUpdateTime()); + caseAgent.setUpdateTime(registerSaveDTO.getUpdateTime()); + + agentService.saveOrUpdate(caseAgent); + + if (StringUtils.isNotEmpty(pagents.toString())) { + pagents.append(BaseConsts.COMMA); + } + pagents.append(caseAgent.getTrueName()); + } + //todo 绑定当事人小程序 + } + } + + // 删除冗余的申请人 + if (CollectionUtils.isNotEmpty(newPersonIdList)) { + List<String> oldPersonIdList = personService.listIdByCaseId(registerSaveDTO.getId()); + for (String oldPersonId : oldPersonIdList) { + if (!newPersonIdList.contains(oldPersonId)) { + personService.removeById(oldPersonId); + } + } + }else{ + QueryWrapper<CasePerson> casePersonQueryWrapper = new QueryWrapper<>(); + casePersonQueryWrapper.eq("case_id", registerSaveDTO.getId()); + personService.remove(casePersonQueryWrapper); + } + //删除冗余的代理人 + if(CollectionUtils.isNotEmpty(newAgentIdList)){ + List<String> oldAgentIdList = agentService.listIdByCaseId(registerSaveDTO.getId()); + for(String oldAgentId: oldAgentIdList){ + if(!newAgentIdList.contains(oldAgentId)){ + agentService.removeById(oldAgentId); + } + } + }else{ + QueryWrapper<CaseAgent> caseAgentQueryWrapper = new QueryWrapper<>(); + caseAgentQueryWrapper.eq("case_id", registerSaveDTO.getId()); + agentService.remove(caseAgentQueryWrapper); + } + + return peopleNum; + } + + public RegisterSaveDTO getCaseInfoWechat(String id){ + RegisterSaveDTO registerSaveDTO = new RegisterSaveDTO(); + CaseInfo caseInfo = this.getById(id); + if(ObjectUtils.isNotEmpty(caseInfo)){ + BeanUtils.copyProperties(caseInfo, registerSaveDTO); + } + QueryWrapper<CasePerson> casePersonQueryWrapper = new QueryWrapper<>(); + casePersonQueryWrapper.eq("case_id", registerSaveDTO.getId()); + List<CasePerson> personList = personService.list(casePersonQueryWrapper); + registerSaveDTO.setPersonList(personList); + + QueryWrapper<CaseAgent> caseAgentQueryWrapper = new QueryWrapper<>(); + caseAgentQueryWrapper.eq("case_id", registerSaveDTO.getId()); + List<CaseAgent> agentList = agentService.list(caseAgentQueryWrapper); + registerSaveDTO.setAgentList(agentList); + + return registerSaveDTO; + } + + /** + * 按条件分页查询-小程序查询 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<CaseInfoWeChatDTO> pageQueryWechat(String userId, PageRequest page, Map<String, Object> terms){ + List<CaseInfoWeChatDTO> list = new ArrayList<>(); + String personType = terms.get("personType")+""; + if(ObjectUtils.isEmpty(personType)){ + throw new RuntimeException("请选择人员类型"); + } + QueryWrapper<CasePerson> personWrapper = new QueryWrapper<>(); + personWrapper.select("case_id"); + personWrapper.eq("party_user_id", userId); + if("1".equals(personType)){ + personWrapper.eq("per_type",CaseBaseConstsEnum.PERSON_TYPE_1.getIndex()); + }else { + personWrapper.eq("per_type",CaseBaseConstsEnum.PERSON_TYPE_2.getIndex()); + } + List<CasePerson> casePersonList = personService.list(personWrapper); + if(ObjectUtils.isEmpty(casePersonList)){ + return new PageImpl<CaseInfoWeChatDTO>(list, page, 0); + } + List<String> ids = casePersonList.stream().map(CasePerson::getCaseId).collect(Collectors.toList()); + terms.put("idList",ids); + long total = mapper.countTerms(terms); + List<CaseInfo> content = mapper.pageTerms(page, terms); + if(ObjectUtils.isNotEmpty(content)){ + for(CaseInfo caseInfo: content){ + CaseInfoWeChatDTO caseInfoWeChatDTO = new CaseInfoWeChatDTO(); + BeanUtils.copyProperties(caseInfo, caseInfoWeChatDTO); + if(ObjectUtils.isNotEmpty(caseInfo.getProcess()) && caseInfo.getProcess().equals(1) || caseInfo.getProcess().equals(2)){ + caseInfoWeChatDTO.setProcessStatus(1); + caseInfoWeChatDTO.setProcessStatusName("待受理"); + }else if(ObjectUtils.isNotEmpty(caseInfo.getProcess()) && caseInfo.getProcess().equals(3) || caseInfo.getProcess().equals(4)){ + caseInfoWeChatDTO.setProcessStatus(2); + caseInfoWeChatDTO.setProcessStatusName("办理中"); + }else if(ObjectUtils.isNotEmpty(caseInfo.getProcess()) && caseInfo.getProcess().equals(5) || caseInfo.getProcess().equals(6)){ + caseInfoWeChatDTO.setProcessStatus(3); + caseInfoWeChatDTO.setProcessStatusName("已结案"); + }else{ + caseInfoWeChatDTO.setProcessStatus(4); + caseInfoWeChatDTO.setProcessStatusName("不予受理"); + } + QueryWrapper<CasePerson> personWrapper1 = new QueryWrapper<>(); + personWrapper1.eq("case_id", caseInfo.getId()); + List<CasePerson> casePersonList1 = personService.list(personWrapper1); + //申请人集合 + List<CasePersonWechatDTO> plaintiffList = new ArrayList<>(); + //被申请人集合 + List<CasePersonWechatDTO> defendantList = new ArrayList<>(); + for (CasePerson casePerson : casePersonList1) { + CasePersonWechatDTO casePersonWechatDTO = new CasePersonWechatDTO(); + BeanUtils.copyProperties(casePerson, casePersonWechatDTO); + if(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())){ + plaintiffList.add(casePersonWechatDTO); + }else if(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())){ + defendantList.add(casePersonWechatDTO); + } + } + caseInfoWeChatDTO.setDefendantList(defendantList); + caseInfoWeChatDTO.setPlaintiffList(plaintiffList); + list.add(caseInfoWeChatDTO); + } + } + return new PageImpl<CaseInfoWeChatDTO>(list, page, total); + } + + /** + * 按条件分页查询-综合查询 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<CasePageDTO> pageQueryAll(PageRequest page, Map<String, Object> terms){ + long total = mapper.countTermsAll(terms); + List<CasePageDTO> content = mapper.pageTermsAll(page, terms); + if(ObjectUtils.isNotEmpty(content)){ + for (CasePageDTO casePageDTO : content) { + QueryWrapper<CasePerson> personWrapper1 = new QueryWrapper<>(); + personWrapper1.eq("case_id", casePageDTO.getId()); + List<CasePerson> casePersonList1 = personService.list(personWrapper1); + //申请人集合 + List<CasePersonWeDTO> plaintiffList = new ArrayList<>(); + //被申请人集合 + List<CasePersonWeDTO> defendantList = new ArrayList<>(); + for (CasePerson casePerson : casePersonList1) { + CasePersonWeDTO casePersonWechatDTO = new CasePersonWeDTO(); + BeanUtils.copyProperties(casePerson, casePersonWechatDTO); + if(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())){ + plaintiffList.add(casePersonWechatDTO); + }else if(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())){ + defendantList.add(casePersonWechatDTO); + } + } + casePageDTO.setDefendantList(defendantList); + casePageDTO.setPlaintiffList(plaintiffList); + } + } + return new PageImpl<CasePageDTO>(content, page, total); + } } -- Gitblit v1.8.0