| | |
| | | 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.CaseInfoWeChatDTO; |
| | | import cn.huge.module.cases.domain.dto.CasePersonWechatDTO; |
| | | 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.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; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 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); |
| | | } |
| | | } |