From e8858df15a89365287aa9ac783deee44678655bf Mon Sep 17 00:00:00 2001
From: zhouxiantao <1026371446@qq.com>
Date: Fri, 06 Sep 2024 14:27:05 +0800
Subject: [PATCH] 小程序案件
---
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 260 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 259 insertions(+), 1 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..7cc943c 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,9 +3,11 @@
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;
@@ -17,6 +19,7 @@
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;
@@ -453,4 +456,259 @@
}
}
}
+
+ /**
+ * 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);
+ }
}
--
Gitblit v1.8.0