| | |
| | | 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.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; |
| | | import cn.huge.module.constant.BaseConsts; |
| | | 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.dao.mapper.CasedraftInfoMapper; |
| | | import cn.huge.module.draft.domain.dto.CasedraftInfoDTO; |
| | | import cn.huge.module.draft.domain.dto.DraftRegisterSaveDTO; |
| | | import cn.huge.module.draft.domain.po.CasedraftAgent; |
| | | import cn.huge.module.draft.domain.po.CasedraftInfo; |
| | | import cn.huge.module.draft.domain.po.CasedraftPerson; |
| | | import cn.huge.module.sys.dto.FileIdTypeInfoBaseDTO; |
| | | import cn.huge.module.sys.dto.FileTypeTermsDTO; |
| | | 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.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: 纠纷信息草稿表业务逻辑处理 |
| | |
| | | |
| | | @Autowired |
| | | private CustClientImpl custClient; |
| | | |
| | | @Autowired |
| | | private SysClientImpl sysClient; |
| | | |
| | | /** |
| | | * 更新对象 |
| | |
| | | StringBuffer defendants = new StringBuffer(); |
| | | StringBuffer pagents = new StringBuffer(); |
| | | StringBuffer dagents = new StringBuffer(); |
| | | int peopleNum = 0; |
| | | |
| | | CasedraftInfo casedraftInfo = new CasedraftInfo(); |
| | | CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold(); |
| | | BeanUtils.copyProperties(draftRegisterSaveDTO, casedraftInfo); |
| | | casedraftInfo.setId(utilsClient.getNewTimeId()); |
| | | casedraftInfo.setInputUnitId(loginUser.getUnitId()); |
| | | casedraftInfo.setInputUnitName(loginUser.getUnitName()); |
| | | casedraftInfo.setInputUserId(loginUser.getId()); |
| | | casedraftInfo.setInputUserName(loginUser.getTrueName()); |
| | | casedraftInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1); |
| | | casedraftInfo.setCreateTime(nowDate); |
| | | casedraftInfo.setCustId(loginUser.getCustId()); |
| | | casedraftInfo.setUpdateTime(nowDate); |
| | | //todo case_title |
| | | |
| | | // 常规登记-保存当事人 |
| | | peopleNum += this.saveCaseDraftPerson(draftRegisterSaveDTO, plaintiffs, pagents, defendants, dagents); |
| | | casedraftInfo.setPeopleNum(peopleNum); |
| | | this.saveCaseDraftPerson(draftRegisterSaveDTO, plaintiffs, pagents, defendants, dagents); |
| | | casedraftInfo.setPlaintiffs(plaintiffs.toString()); |
| | | casedraftInfo.setPagents(pagents.toString()); |
| | | casedraftInfo.setDefendants(defendants.toString()); |
| | | casedraftInfo.setDagents(dagents.toString()); |
| | | |
| | | |
| | | this.saveOrUpdate(casedraftInfo); |
| | | |
| | |
| | | * @param dagents 被申请人代理人 |
| | | * @return int |
| | | */ |
| | | private int saveCaseDraftPerson(DraftRegisterSaveDTO draftRegisterSaveDTO, StringBuffer plaintiffs, StringBuffer pagents, |
| | | private void saveCaseDraftPerson(DraftRegisterSaveDTO draftRegisterSaveDTO, StringBuffer plaintiffs, StringBuffer pagents, |
| | | StringBuffer defendants, StringBuffer dagents){ |
| | | int peopleNum = 0; |
| | | List<String> newDraftPersonIdList = new ArrayList<>(); |
| | | List<String> newDraftAgentIdList = new ArrayList<>(); |
| | | // 保存申请人 |
| | | List<CasedraftPerson> plaintPersonList = draftRegisterSaveDTO.getPlaintiffList(); |
| | | if (CollectionUtils.isNotEmpty(plaintPersonList)) { |
| | | for (CasedraftPerson casedraftPerson : plaintPersonList) { |
| | | newDraftPersonIdList.add(casedraftPerson.getId()); |
| | | |
| | | Date now = DateUtils.getNowDate(); |
| | | |
| | | List<CasedraftPerson> casedraftPersonList = draftRegisterSaveDTO.getPersonList(); |
| | | List<CasedraftAgent> casedraftAgentList = draftRegisterSaveDTO.getAgentList(); |
| | | |
| | | //查出已存在的当事人和代理人编号 |
| | | List<String> oldPersonIdList = draftPersonService.listIdByCaseId(draftRegisterSaveDTO.getId()); |
| | | List<String> oldAgentIdList = draftAgentService.listIdByCaseId(draftRegisterSaveDTO.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<>(); |
| | | |
| | | if(CollectionUtils.isNotEmpty(casedraftPersonList)){ |
| | | for(CasedraftPerson casedraftPerson: casedraftPersonList){ |
| | | newPersonIdList.add(casedraftPerson.getId()); |
| | | casedraftPerson.setCaseId(draftRegisterSaveDTO.getId()); |
| | | casedraftPerson.setPerType(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex()); |
| | | casedraftPerson.setPerTypeName(CaseBaseConstsEnum.PERSON_TYPE_1.getDes()); |
| | | casedraftPerson.setCustId(draftRegisterSaveDTO.getCustId()); |
| | | casedraftPerson.setCreateTime(draftRegisterSaveDTO.getUpdateTime()); |
| | | casedraftPerson.setUpdateTime(draftRegisterSaveDTO.getUpdateTime()); |
| | | casedraftPerson.setUpdateTime(now); |
| | | |
| | | draftPersonService.saveOrUpdate(casedraftPerson); |
| | | |
| | | //添加申请方和被申请方人名组合 |
| | | if(CaseBaseConstsEnum.PERSON_TYPE_1.equals(casedraftPerson.getPerType())){ |
| | | //申请方 |
| | | if (StringUtils.isNotEmpty(plaintiffs.toString())) { |
| | | plaintiffs.append(BaseConsts.COMMA); |
| | | } |
| | | plaintiffs.append(casedraftPerson.getTrueName()); |
| | | peopleNum++; |
| | | |
| | | } |
| | | //保存代理人 |
| | | List<CasedraftAgent> pagentList = draftRegisterSaveDTO.getPagentList(); |
| | | if (CollectionUtils.isNotEmpty(pagentList)) { |
| | | for(CasedraftAgent casedraftAgent: pagentList){ |
| | | newDraftAgentIdList.add(casedraftAgent.getId()); |
| | | casedraftAgent.setId(utilsClient.getNewTimeId()); |
| | | casedraftAgent.setCaseId(draftRegisterSaveDTO.getId()); |
| | | casedraftAgent.setAgentTypeName(CaseBaseConstsEnum.getDes(casedraftAgent.getAgentType())); |
| | | casedraftAgent.setCustId(draftRegisterSaveDTO.getCustId()); |
| | | casedraftAgent.setCreateTime(draftRegisterSaveDTO.getUpdateTime()); |
| | | casedraftAgent.setUpdateTime(draftRegisterSaveDTO.getUpdateTime()); |
| | | |
| | | draftAgentService.saveOrUpdate(casedraftAgent); |
| | | |
| | | if (StringUtils.isNotEmpty(pagents.toString())) { |
| | | pagents.append(BaseConsts.COMMA); |
| | | } |
| | | pagents.append(casedraftAgent.getTrueName()); |
| | | } |
| | | |
| | | //todo 绑定当事人小程序 |
| | | } |
| | | } |
| | | // 保存被申请人 |
| | | List<CasedraftPerson> defendPersonList = draftRegisterSaveDTO.getDefendantList(); |
| | | if(CollectionUtils.isNotEmpty(defendPersonList)){ |
| | | for (CasedraftPerson casedraftPerson : defendPersonList) { |
| | | newDraftPersonIdList.add(casedraftPerson.getId()); |
| | | casedraftPerson.setCaseId(draftRegisterSaveDTO.getId()); |
| | | casedraftPerson.setPerType(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex()); |
| | | casedraftPerson.setPerTypeName(CaseBaseConstsEnum.PERSON_TYPE_2.getDes()); |
| | | casedraftPerson.setCustId(draftRegisterSaveDTO.getCustId()); |
| | | casedraftPerson.setCreateTime(draftRegisterSaveDTO.getUpdateTime()); |
| | | casedraftPerson.setUpdateTime(draftRegisterSaveDTO.getUpdateTime()); |
| | | //todo 绑定当事人小程序 |
| | | draftPersonService.saveOrUpdate(casedraftPerson); |
| | | }else if(CaseBaseConstsEnum.PERSON_TYPE_2.equals(casedraftPerson.getPerType())){ |
| | | //被申请方 |
| | | if (StringUtils.isNotEmpty(defendants.toString())) { |
| | | defendants.append(BaseConsts.COMMA); |
| | | } |
| | | defendants.append(casedraftPerson.getTrueName()); |
| | | peopleNum++; |
| | | } |
| | | //保存代理人 |
| | | List<CasedraftAgent> pagentList = draftRegisterSaveDTO.getPagentList(); |
| | | if (CollectionUtils.isNotEmpty(pagentList)) { |
| | | for(CasedraftAgent casedraftAgent: pagentList){ |
| | | newDraftAgentIdList.add(casedraftAgent.getId()); |
| | | casedraftAgent.setId(utilsClient.getNewTimeId()); |
| | | |
| | | //判断是否为更新(用原有的Id对比性的Id) |
| | | if(oldPersonIds.contains(casedraftPerson.getId())){ |
| | | draftPersonService.updateById(casedraftPerson); |
| | | }else{ |
| | | casedraftPerson.setCreateTime(now); |
| | | draftPersonService.save(casedraftPerson); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | if(CollectionUtils.isNotEmpty(casedraftAgentList)) { |
| | | for (CasedraftAgent casedraftAgent : casedraftAgentList) { |
| | | newAgentIdList.add(casedraftAgent.getId()); |
| | | casedraftAgent.setCaseId(draftRegisterSaveDTO.getId()); |
| | | casedraftAgent.setAgentTypeName(CaseBaseConstsEnum.getDes(casedraftAgent.getAgentType())); |
| | | casedraftAgent.setCustId(draftRegisterSaveDTO.getCustId()); |
| | | casedraftAgent.setCreateTime(draftRegisterSaveDTO.getUpdateTime()); |
| | | casedraftAgent.setUpdateTime(draftRegisterSaveDTO.getUpdateTime()); |
| | | draftAgentService.saveOrUpdate(casedraftAgent); |
| | | casedraftAgent.setUpdateTime(now); |
| | | |
| | | if(CaseBaseConstsEnum.PERSON_TYPE_3.equals(casedraftAgent.getPerType())) { |
| | | if (StringUtils.isNotEmpty(pagents.toString())) { |
| | | pagents.append(BaseConsts.COMMA); |
| | | } |
| | | pagents.append(casedraftAgent.getTrueName()); |
| | | }else if(CaseBaseConstsEnum.PERSON_TYPE_4.equals(casedraftAgent.getPerType())) { |
| | | if (StringUtils.isNotEmpty(dagents.toString())) { |
| | | dagents.append(BaseConsts.COMMA); |
| | | } |
| | | dagents.append(casedraftAgent.getTrueName()); |
| | | } |
| | | |
| | | //判断是否为更新(用原有的Id对比性的Id) |
| | | if(oldAgentIds.contains(casedraftAgent.getId())){ |
| | | draftAgentService.updateById(casedraftAgent); |
| | | }else{ |
| | | casedraftAgent.setCreateTime(now); |
| | | draftAgentService.save(casedraftAgent); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | // 删除冗余的申请人 |
| | | if (CollectionUtils.isNotEmpty(newDraftPersonIdList)) { |
| | | List<String> oldPersonIdList = draftPersonService.listIdByCaseId(draftRegisterSaveDTO.getId()); |
| | | // 删除冗余的申请人(用新的Id对比旧的Id) |
| | | if (CollectionUtils.isNotEmpty(newPersonIdList)) { |
| | | for (String oldPersonId : oldPersonIdList) { |
| | | if (!newDraftPersonIdList.contains(oldPersonId)) { |
| | | if (!newPersonIdList.contains(oldPersonId)) { |
| | | draftPersonService.removeById(oldPersonId); |
| | | } |
| | | } |
| | | }else{ |
| | | QueryWrapper<CasedraftPerson> casedraftPersonQueryWrapper = new QueryWrapper<>(); |
| | | casedraftPersonQueryWrapper.eq("case_id", draftRegisterSaveDTO.getId()); |
| | | draftPersonService.remove(casedraftPersonQueryWrapper); |
| | | QueryWrapper<CasedraftPerson> casePersonQueryWrapper = new QueryWrapper<>(); |
| | | casePersonQueryWrapper.eq("case_id", draftRegisterSaveDTO.getId()); |
| | | draftPersonService.remove(casePersonQueryWrapper); |
| | | } |
| | | //删除冗余的代理人 |
| | | if(CollectionUtils.isNotEmpty(newDraftAgentIdList)){ |
| | | List<String> oldAgentIdList = draftAgentService.listIdByCaseId(draftRegisterSaveDTO.getId()); |
| | | if(CollectionUtils.isNotEmpty(newAgentIdList)){ |
| | | for(String oldAgentId: oldAgentIdList){ |
| | | if(!newDraftAgentIdList.contains(oldAgentId)){ |
| | | if(!newAgentIdList.contains(oldAgentId)){ |
| | | draftAgentService.removeById(oldAgentId); |
| | | } |
| | | } |
| | | }else{ |
| | | QueryWrapper<CasedraftAgent> casedraftAgentQueryWrapper = new QueryWrapper<>(); |
| | | casedraftAgentQueryWrapper.eq("case_id", draftRegisterSaveDTO.getId()); |
| | | draftAgentService.remove(casedraftAgentQueryWrapper); |
| | | QueryWrapper<CasedraftAgent> caseAgentQueryWrapper = new QueryWrapper<>(); |
| | | caseAgentQueryWrapper.eq("case_id", draftRegisterSaveDTO.getId()); |
| | | draftAgentService.remove(caseAgentQueryWrapper); |
| | | } |
| | | |
| | | return peopleNum; |
| | | } |
| | | |
| | | /** |
| | |
| | | try{ |
| | | // 删除纠纷草稿信息 |
| | | QueryWrapper<CasedraftInfo> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("serie_no", caseId); |
| | | queryWrapper.eq("id", caseId); |
| | | List<CasedraftInfo> draftInfoList = mapper.selectList(queryWrapper); |
| | | List<String> ownerIdList = new ArrayList<>(); |
| | | for (CasedraftInfo casedraftInfo : draftInfoList) { |
| | |
| | | QueryWrapper<CasedraftAgent> casedraftAgentQueryWrapper = new QueryWrapper<>(); |
| | | casedraftAgentQueryWrapper.eq("case_id", casedraftInfo.getId()); |
| | | //todo 删除附件关系 |
| | | // FileTypeTermsDTO fileTypeTermsDTO = new FileTypeTermsDTO(); |
| | | // fileTypeTermsDTO.setOwnerIdList(ownerIdList); |
| | | // sysClient.removeFileRelate(fileTypeTermsDTO); |
| | | FileTypeTermsDTO fileTypeTermsDTO = new FileTypeTermsDTO(); |
| | | fileTypeTermsDTO.setOwnerIdList(ownerIdList); |
| | | sysClient.removeFileRelate(fileTypeTermsDTO); |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("service方法[CasedraftInfoService.removeDraftInfo]调用异常:"+e, e); |
| | | throw new ServiceException("CasedraftInfoService.removeDraftInfo", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * PC端-查询纠纷信息 |
| | | * @param caseId 纠纷编号 |
| | | * @return CaseInfo 纠纷信息 |
| | | */ |
| | | public CasedraftInfoDTO getCasedraftInfo(String caseId){ |
| | | CasedraftInfo casedraftInfo = mapper.selectById(caseId); |
| | | CasedraftInfoDTO caseInfoDTO = new CasedraftInfoDTO(); |
| | | if (ObjectUtils.isNotEmpty(casedraftInfo)) { |
| | | |
| | | BeanUtils.copyProperties(casedraftInfo, caseInfoDTO); |
| | | //查询所有当事人 |
| | | QueryWrapper<CasedraftPerson> draftPersonQueryWrapper = new QueryWrapper<>(); |
| | | draftPersonQueryWrapper.eq("case_id", caseId); |
| | | List<CasedraftPerson> casePersonList = draftPersonService.list(draftPersonQueryWrapper); |
| | | |
| | | //查询所有代理人 |
| | | QueryWrapper<CasedraftAgent> casedraftAgentQueryWrapper = new QueryWrapper<>(); |
| | | casedraftAgentQueryWrapper.eq("case_id", caseId); |
| | | List<CasedraftAgent> caseAgentList = draftAgentService.list(casedraftAgentQueryWrapper); |
| | | List<String> idList = new ArrayList<>(); |
| | | |
| | | idList.add(caseId); |
| | | idList.addAll(casePersonList.stream().map(CasedraftPerson::getId).collect(Collectors.toList())); |
| | | idList.addAll(caseAgentList.stream().map(CasedraftAgent::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(CasedraftPerson casePerson: casePersonList){ |
| | | for(FileIdTypeInfoBaseDTO fileInfo: fileInfoList){ |
| | | if(casePerson.getId().equals(fileInfo.getOwnerId())){ |
| | | casePerson.setFileInfoList(fileInfo.getFileList()); |
| | | } |
| | | } |
| | | } |
| | | for(CasedraftAgent caseAgent: caseAgentList){ |
| | | for(FileIdTypeInfoBaseDTO fileInfo: fileInfoList){ |
| | | if(caseAgent.getId().equals(fileInfo.getOwnerId())){ |
| | | caseAgent.setFileInfoList(fileInfo.getFileList()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | caseInfoDTO.setPersonList(casePersonList); |
| | | caseInfoDTO.setAgentList(caseAgentList); |
| | | } |
| | | return caseInfoDTO; |
| | | } |
| | | } |