From 716f57dacce347ba154f3b6a994f4e383e3a97a4 Mon Sep 17 00:00:00 2001 From: liyj <1003249715@qq.com> Date: Thu, 05 Sep 2024 11:15:38 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 321 +++++++++++++++++++++++++++++++++++------------------ 1 files changed, 212 insertions(+), 109 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 621c9a7..381b422 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,11 +3,16 @@ 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.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; @@ -16,8 +21,12 @@ 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; @@ -29,10 +38,8 @@ import org.springframework.data.domain.PageRequest; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * @title: 纠纷信息主表业务逻辑处理 @@ -64,6 +71,12 @@ @Autowired private CustClientImpl custClient; + + @Autowired + private CaseInfoUnfoldService caseInfoUnfoldService; + + @Autowired + private SysClientImpl sysClient; /** * 更新对象 @@ -171,48 +184,52 @@ 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); - caseInfo.setId(utilsClient.getNewTimeId()); - 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.saveCasePerson(registerSaveDTO, plaintiffs, pagents, defendants, dagents); - caseInfo.setPeopleNum(peopleNum); + this.saveCasePerson(registerSaveDTO, plaintiffs, pagents, defendants, dagents); caseInfo.setPlaintiffs(plaintiffs.toString()); caseInfo.setPagents(pagents.toString()); caseInfo.setDefendants(defendants.toString()); caseInfo.setDagents(dagents.toString()); - //todo 流程接口修改status、status_name、process、process_name - //todo 自行受理 - if(1 == registerSaveDTO.getIsSelfAccept()){ - caseInfoUnfold.setMediateUnitId(loginUser.getUnitId()); - caseInfoUnfold.setMediateUnitName(loginUser.getUnitName()); - } + caseInfo.setCaseRef(utilsClient.createCaseRef()); + caseInfo.setCanal(CaseBaseConstsEnum.CASE_CANAL_1.getIndex()); + caseInfo.setCaseDes(CaseBaseConstsEnum.CASE_CANAL_1.getDes()); + //todo case_title生成、经纬度转换、来访形式 + if(0 == registerSaveDTO.getOperateType()){ + 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.setDeleteStatus(BaseConsts.DELETE_STATUS_0); - this.saveOrUpdate(caseInfo); - // 删除草稿案件 - if(1 == registerSaveDTO.getIsDraft() ){ - draftInfoService.removeDraftInfo(registerSaveDTO.getId()); - } + CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold(); + caseInfoUnfold.setId(utilsClient.getNewTimeId()); + caseInfoUnfold.setCaseId(caseInfo.getId()); + caseInfoUnfold.setCreateTime(nowDate); + caseInfoUnfold.setUpdateTime(nowDate); + // 删除草稿案件 + if(1 == registerSaveDTO.getIsDraft() ){ + draftInfoService.removeDraftInfo(registerSaveDTO.getId()); + } + + //判断是否自行受理 + if(1 == registerSaveDTO.getIsSelfAccept()){ + //todo 流程接口修改status、status_name、process、process_name + caseInfoUnfold.setMediateUnitId(loginUser.getUnitId()); + caseInfoUnfold.setMediateUnitName(loginUser.getUnitName()); + } + this.save(caseInfo); + caseInfoUnfoldService.save(caseInfoUnfold); + }else if(1 == registerSaveDTO.getOperateType()){ + this.updateById(caseInfo); + } return registerSaveDTO.getId(); }catch (Exception e){ log.error("service方法[CaseInfoService.caseRegister]调用异常:"+e, e); @@ -229,104 +246,94 @@ * @param dagents 被申请人代理人 * @return int */ - private int saveCasePerson(RegisterSaveDTO registerSaveDTO, StringBuffer plaintiffs, StringBuffer pagents, + private void saveCasePerson(RegisterSaveDTO registerSaveDTO, StringBuffer plaintiffs, StringBuffer pagents, StringBuffer defendants, StringBuffer dagents){ - int peopleNum = 0; + + Date now = DateUtils.getNowDate(); + + List<CasePerson> personList = registerSaveDTO.getPersonList(); + List<CaseAgent> agentList = registerSaveDTO.getAgentList(); + + //查出已存在的当事人和代理人编号 + List<String> oldPersonIdList = personService.listIdByCaseId(registerSaveDTO.getId()); + List<String> oldAgentIdList = agentService.listIdByCaseId(registerSaveDTO.getId()); + String oldPersonIds = oldPersonIdList.stream().map(String::valueOf).collect(Collectors.joining(",")); + String oldAgentIds = oldAgentIdList.stream().map(String::valueOf).collect(Collectors.joining(",")); List<String> newPersonIdList = new ArrayList<>(); List<String> newAgentIdList = new ArrayList<>(); - // 保存申请人 - List<CasePerson> plaintPersonList = registerSaveDTO.getPlaintiffList(); - if (CollectionUtils.isNotEmpty(plaintPersonList)) { - for (CasePerson casePerson : plaintPersonList) { + + if(CollectionUtils.isNotEmpty(personList)){ + for(CasePerson casePerson: personList){ newPersonIdList.add(casePerson.getId()); casePerson.setCaseId(registerSaveDTO.getId()); - casePerson.setPerType(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex()); - casePerson.setPerTypeName(CaseBaseConstsEnum.PERSON_TYPE_1.getDes()); casePerson.setCustId(registerSaveDTO.getCustId()); - casePerson.setCreateTime(registerSaveDTO.getUpdateTime()); - casePerson.setUpdateTime(registerSaveDTO.getUpdateTime()); - //todo 绑定当事人小程序 - - personService.saveOrUpdate(casePerson); - - if (StringUtils.isNotEmpty(plaintiffs.toString())) { - plaintiffs.append(BaseConsts.COMMA); + casePerson.setUpdateTime(now); + //绑定当事人小程序 + this.setPartyUserId(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()); } - plaintiffs.append(casePerson.getTrueName()); - peopleNum++; + + //判断是否为更新(用原有的Id对比性的Id) + if(oldPersonIds.contains(casePerson.getId())){ + personService.updateById(casePerson); + }else{ + casePerson.setCreateTime(now); + personService.save(casePerson); + } } - //保存代理人 - List<CaseAgent> pagentList = registerSaveDTO.getPagentList(); - if (CollectionUtils.isNotEmpty(pagentList)) { - for(CaseAgent caseAgent: pagentList){ - newAgentIdList.add(caseAgent.getId()); - caseAgent.setId(utilsClient.getNewTimeId()); - 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(CollectionUtils.isNotEmpty(agentList)) { + for (CaseAgent caseAgent : agentList) { + newAgentIdList.add(caseAgent.getId()); + caseAgent.setCaseId(registerSaveDTO.getId()); + caseAgent.setAgentTypeName(CaseBaseConstsEnum.getDes(caseAgent.getAgentType())); + caseAgent.setCustId(registerSaveDTO.getCustId()); + caseAgent.setUpdateTime(now); + //绑定当事人小程序 + this.setPartyUserId(caseAgent); + if(CaseBaseConstsEnum.PERSON_TYPE_3.equals(caseAgent.getPerType())) { if (StringUtils.isNotEmpty(pagents.toString())) { pagents.append(BaseConsts.COMMA); } pagents.append(caseAgent.getTrueName()); - } - - //todo 绑定当事人小程序 - } - } - // 保存被申请人 - List<CasePerson> defendPersonList = registerSaveDTO.getDefendantList(); - if(CollectionUtils.isNotEmpty(defendPersonList)){ - for (CasePerson casePerson : defendPersonList) { - newPersonIdList.add(casePerson.getId()); - casePerson.setCaseId(registerSaveDTO.getId()); - casePerson.setPerType(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex()); - casePerson.setPerTypeName(CaseBaseConstsEnum.PERSON_TYPE_2.getDes()); - casePerson.setCustId(registerSaveDTO.getCustId()); - casePerson.setCreateTime(registerSaveDTO.getUpdateTime()); - casePerson.setUpdateTime(registerSaveDTO.getUpdateTime()); - //todo 绑定当事人小程序 - personService.saveOrUpdate(casePerson); - if (StringUtils.isNotEmpty(defendants.toString())) { - defendants.append(BaseConsts.COMMA); - } - defendants.append(casePerson.getTrueName()); - peopleNum++; - } - //保存代理人 - List<CaseAgent> pagentList = registerSaveDTO.getPagentList(); - if (CollectionUtils.isNotEmpty(pagentList)) { - for(CaseAgent caseAgent: pagentList){ - newAgentIdList.add(caseAgent.getId()); - caseAgent.setId(utilsClient.getNewTimeId()); - 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); + }else if(CaseBaseConstsEnum.PERSON_TYPE_4.equals(caseAgent.getPerType())) { if (StringUtils.isNotEmpty(dagents.toString())) { dagents.append(BaseConsts.COMMA); } dagents.append(caseAgent.getTrueName()); - //todo 绑定当事人小程序 + } + + //判断是否为更新(用原有的Id对比性的Id) + if(oldAgentIds.contains(caseAgent.getId())){ + agentService.updateById(caseAgent); + }else{ + caseAgent.setCreateTime(now); + agentService.save(caseAgent); } } - } - // 删除冗余的申请人 + // 删除冗余的申请人(用新的Id对比旧的Id) if (CollectionUtils.isNotEmpty(newPersonIdList)) { - List<String> oldPersonIdList = personService.listIdByCaseId(registerSaveDTO.getId()); for (String oldPersonId : oldPersonIdList) { if (!newPersonIdList.contains(oldPersonId)) { personService.removeById(oldPersonId); + }else{ + } } }else{ @@ -336,7 +343,6 @@ } //删除冗余的代理人 if(CollectionUtils.isNotEmpty(newAgentIdList)){ - List<String> oldAgentIdList = agentService.listIdByCaseId(registerSaveDTO.getId()); for(String oldAgentId: oldAgentIdList){ if(!newAgentIdList.contains(oldAgentId)){ agentService.removeById(oldAgentId); @@ -347,7 +353,104 @@ caseAgentQueryWrapper.eq("case_id", registerSaveDTO.getId()); agentService.remove(caseAgentQueryWrapper); } + } - return peopleNum; + /** + * PC端-查询纠纷信息 + * @param caseId 纠纷编号 + * @return CaseInfo 纠纷信息 + */ + public CaseInfoDTO getCaseInfo(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("ownerIds", ids); + //查询所有附件 + List<FileIdTypeInfoBaseDTO> fileInfoList = sysClient.listIdTypeInfoByOwnerIdList(term, caseId); + 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; + } + + /** + * 绑定当事人小程序 + * @param casePerson 当事人信息 + */ + public void setPartyUserId(CasePerson casePerson) { + if (StringUtils.isEmpty(casePerson.getPartyUserId())) { + if (CaseBaseConstsEnum.CARD_TYPE_1.getIndex().equals(casePerson.getCertiType())) { + if (StringUtils.isNotEmpty(casePerson.getCertiNo())) { + WechatBindCaseDTO wechatBindCaseDTO = new WechatBindCaseDTO(); + if (CaseBaseConstsEnum.PERSON_CLASS_1.getIndex().equals(casePerson.getPerClass())) { + wechatBindCaseDTO.setTrueName(casePerson.getTrueName()); + } else { + wechatBindCaseDTO.setTrueName(casePerson.getDeputy()); + } + wechatBindCaseDTO.setIdcard(casePerson.getCertiNo()); + wechatBindCaseDTO.setCustId(casePerson.getCustId()); + String partyUserId = custClient.bindGetUserId(wechatBindCaseDTO); + casePerson.setPartyUserId(partyUserId); + } + } + } + } + + /** + * 绑定当事人小程序 + * @param caseAgent 代理人人信息 + */ + public void setPartyUserId(CaseAgent caseAgent){ + if (StringUtils.isEmpty(caseAgent.getPartyUserId())) { + if (CaseBaseConstsEnum.CARD_TYPE_1.getIndex().equals(caseAgent.getCertiType())) { + if (StringUtils.isNotEmpty(caseAgent.getCertiNo())) { + WechatBindCaseDTO wechatBindCaseDTO = new WechatBindCaseDTO(); + wechatBindCaseDTO.setTrueName(caseAgent.getTrueName()); + wechatBindCaseDTO.setIdcard(caseAgent.getCertiNo()); + wechatBindCaseDTO.setCustId(caseAgent.getCustId()); + String partyUserId = custClient.bindGetUserId(wechatBindCaseDTO); + caseAgent.setPartyUserId(partyUserId); + } + } + } } } -- Gitblit v1.8.0