From b512f03e1ea30e22209ec5a889d568c45f3e03c9 Mon Sep 17 00:00:00 2001
From: wangwh <2397901735@qq.com>
Date: Fri, 13 Sep 2024 10:41:03 +0800
Subject: [PATCH] 1、删除经办人 2、规范代码
---
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 761 +++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 641 insertions(+), 120 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 f7afc54..fb00ddf 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
@@ -1,25 +1,27 @@
package cn.huge.module.cases.service;
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.RegisterSaveDTO;
+import cn.huge.base.common.utils.*;
+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.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.constant.CaseBaseConsts;
-import cn.huge.module.constant.CaseBaseConstsEnum;
+import cn.huge.module.cust.dto.PaUserDTO;
+import cn.huge.module.mediate.constant.*;
import cn.huge.module.cust.dto.CtUserDTO;
-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.draft.service.CasedraftInfoService;
+import cn.huge.module.mediate.constant.CaseProcessBaseConstsEnum;
+import cn.huge.module.mediate.dto.WechatBindCaseDTO;
+import cn.huge.module.sys.dto.FileIdTypeInfoBaseDTO;
+import cn.huge.module.sys.dto.QueAddrBaseDTO;
+import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
@@ -28,17 +30,13 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
-import javax.annotation.PostConstruct;
-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: 纠纷信息主表业务逻辑处理
@@ -71,6 +69,19 @@
@Autowired
private CustClientImpl custClient;
+ @Autowired
+ private CaseInfoUnfoldService caseInfoUnfoldService;
+
+ @Autowired
+ private SysClientImpl sysClient;
+
+ @Autowired
+ private CaseTaskService caseTaskService;
+
+ @Autowired
+ private CaseEvaluateService caseEvaluateService;
+
+
/**
* 更新对象
* @param entity 对象
@@ -81,6 +92,20 @@
}catch (Exception e){
log.error("[CaseInfoService.updateCaseInfo]调用失败,异常信息:"+e, e);
throw new ServiceException("CaseInfoService.updateCaseInfo", e);
+ }
+ }
+
+ /**
+ * 批量更新对象
+ * @param entity 对象
+ * @param caseIdList
+ */
+ public void updateCaseInfoList(CaseInfo entity, List<String> caseIdList){
+ try{
+ mapper.updateCaseInfoList(entity, caseIdList);
+ }catch (Exception e){
+ log.error("[CaseInfoService.updateCaseInfoList]调用失败,异常信息:"+e, e);
+ throw new ServiceException("CaseInfoService.updateCaseInfoList", e);
}
}
@@ -177,48 +202,55 @@
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.setCanalName(CaseBaseConstsEnum.CASE_CANAL_1.getDes());
+ caseInfo.setVisitWay(CaseBaseConstsEnum.VISIT_WAY_1.getIndex());
+ caseInfo.setVisitWayName(CaseBaseConstsEnum.VISIT_WAY_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);
+ // 删除草稿案件
+ if(1 == registerSaveDTO.getIsDraft() ){
+ draftInfoService.removeDraftInfo(registerSaveDTO.getId());
+ }
+ // 新增纠纷信息
+ this.save(caseInfo);
+ // 新增纠纷信息扩展表
+ CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold();
+ caseInfoUnfold.setId(caseInfo.getId());
+ caseInfoUnfold.setCreateTime(nowDate);
+ caseInfoUnfold.setUpdateTime(nowDate);
+ caseInfoUnfoldService.save(caseInfoUnfold);
+ // 启动工作流
+ // 判断是否自行受理
+ if(1 == registerSaveDTO.getIsSelfAccept()){
+ // 自行受理流程
+ caseTaskService.webStartFlowZXSL(caseInfo, loginUser);
+ }else {
+ // 自动调度流程
+ caseTaskService.webStartFlowLFDJ(caseInfo);
+ }
+ }else if(1 == registerSaveDTO.getOperateType()){
+ this.updateById(caseInfo);
}
-
- this.saveOrUpdate(caseInfo);
- // 删除草稿案件
- if(1 == registerSaveDTO.getIsDraft() ){
- draftInfoService.removeDraftInfo(registerSaveDTO.getId());
- }
-
return registerSaveDTO.getId();
}catch (Exception e){
log.error("service方法[CaseInfoService.caseRegister]调用异常:"+e, e);
@@ -235,104 +267,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.getIndex().equals(casePerson.getPerType())){
+ //申请方
+ if (StringUtils.isNotEmpty(plaintiffs.toString())) {
+ plaintiffs.append(BaseConsts.COMMA);
+ }
+ plaintiffs.append(casePerson.getTrueName());
+ }else if(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().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.getIndex().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.getIndex().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{
@@ -342,7 +364,6 @@
}
//删除冗余的代理人
if(CollectionUtils.isNotEmpty(newAgentIdList)){
- List<String> oldAgentIdList = agentService.listIdByCaseId(registerSaveDTO.getId());
for(String oldAgentId: oldAgentIdList){
if(!newAgentIdList.contains(oldAgentId)){
agentService.removeById(oldAgentId);
@@ -353,7 +374,507 @@
caseAgentQueryWrapper.eq("case_id", registerSaveDTO.getId());
agentService.remove(caseAgentQueryWrapper);
}
+ }
+ /**
+ * 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("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());
+ }
+ }
+ 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());
+ }
+ }
+ 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);
+ }
+ }
+ }
+ }
+
+ /**
+ * PC端-纠纷登记-保存纠纷信息-正常案件
+ * @param registerSaveDTO 纠纷信息
+ * @param userId 用户编号
+ * @return String 纠纷编号
+ */
+ public String caseRegisterWechat(RegisterSaveDTO registerSaveDTO, String userId){
+ // 获取当前登录用户
+ PaUserDTO loginUser = custClient.paclientGetUser(userId);
+ if(ObjectUtils.isEmpty(registerSaveDTO.getCustId())){
+ registerSaveDTO.setCustId(loginUser.getCustId());
+ }
+
+ Date nowDate = DateUtils.getNowDate();
+ registerSaveDTO.setUpdateTime(nowDate);
+
+ 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.setVisitTime(nowDate);
+ caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
+ //坐标转换
+ if(ObjectUtils.isNotEmpty(caseInfo.getLat()) && ObjectUtils.isNotEmpty(caseInfo.getLng())){
+ PointXY pointXY = MapUtils.gcj02tobd09(Double.valueOf(caseInfo.getLng()), Double.valueOf(caseInfo.getLat()));
+ caseInfo.setLat(pointXY.getLat()+"");
+ caseInfo.setLng(pointXY.getLon()+"");
+ }
+ //todo case_title生成
+ caseInfo.setCaseRef(utilsClient.createCaseRef());
+
+ // 为了演示先兼容小程序没属地问题,写死属地
+ if (ObjectUtils.isEmpty(caseInfo.getQueProv())) {
+// caseInfo.setQueProv("19");
+// caseInfo.setQueProvName("广东");
+// caseInfo.setQueCity("1601");
+// caseInfo.setQueCityName("广州市");
+// caseInfo.setQueArea("50258");
+// caseInfo.setQueAreaName("白云区");
+// caseInfo.setQueRoad("62857");
+// caseInfo.setQueRoadName("新市街道");
+
+ // 根据经纬度查询问题属地
+ QueAddrBaseDTO queAddrBaseDTO = sysClient.getQueAddrByBaiduiLngLat(caseInfo.getLng(), caseInfo.getLat());
+ caseInfo.setQueProv(queAddrBaseDTO.getQueProv());
+ caseInfo.setQueProvName(queAddrBaseDTO.getQueProvName());
+ caseInfo.setQueCity(queAddrBaseDTO.getQueCity());
+ caseInfo.setQueCityName(queAddrBaseDTO.getQueCityName());
+ caseInfo.setQueArea(queAddrBaseDTO.getQueArea());
+ caseInfo.setQueAreaName(queAddrBaseDTO.getQueAreaName());
+ caseInfo.setQueRoad(queAddrBaseDTO.getQueRoad());
+ caseInfo.setQueRoadName(queAddrBaseDTO.getQueRoadName());
+ }
+ caseInfoUnfold.setId(caseInfo.getId());
+ caseInfoUnfold.setCreateTime(nowDate);
+ caseInfoUnfold.setUpdateTime(nowDate);
+
+ StringBuffer plaintiffs = new StringBuffer();
+ StringBuffer defendants = new StringBuffer();
+ StringBuffer pagents = new StringBuffer();
+ StringBuffer dagents = new StringBuffer();
+ // 常规登记-保存当事人
+ int peopleNum = this.saveCasePersonWechat(registerSaveDTO, plaintiffs, pagents, defendants, dagents,loginUser);
+ caseInfo.setVisitPeopleNum(peopleNum);
+ caseInfo.setPlaintiffs(plaintiffs.toString());
+ caseInfo.setPagents(pagents.toString());
+ caseInfo.setDefendants(defendants.toString());
+ caseInfo.setDagents(dagents.toString());
+
+ //todo case_title生成
+// caseInfo.setCaseTitle(this.createCaseTitle(plaintiffs.toString(), defendants.toString(), caseInfo.getCaseTypeName()));
+
+ caseInfo.setInfoProcess(CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_1.getIndex());
+ caseInfo.setInfoProcessName(CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_1.getDes());
+ caseInfo.setProcess(CaseProcessBaseConstsEnum.CASE_PROCESS_1.getIndex());
+ caseInfo.setProcessName(CaseProcessBaseConstsEnum.CASE_PROCESS_1.getDes());
+ caseInfo.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_1.getIndex());
+ caseInfo.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_1.getDes());
+ caseInfo.setCaseLevel(3);
+ caseInfo.setCanal(CaseBaseConstsEnum.CASE_CANAL_2.getIndex());
+ caseInfo.setCanalName(CaseBaseConstsEnum.CASE_CANAL_2.getDes());
+
+ caseInfo.setCaseRef(utilsClient.createCaseRef());
+ caseInfo.setVisitWay(CaseBaseConstsEnum.VISIT_WAY_2.getIndex());
+ caseInfo.setVisitWayName(CaseBaseConstsEnum.VISIT_WAY_2.getDes());
+ // 临时加上一级纠纷类型
+ caseInfo.setCaseTypeFirst("24_01-2");
+ caseInfo.setCaseTypeFirstName("劳动社保");
+ this.saveOrUpdate(caseInfo);
+
+ caseInfoUnfoldService.saveOrUpdate(caseInfoUnfold);
+ // 启动工作流-自动调度流程
+ caseTaskService.webStartFlowLFDJ(caseInfo);
+ return registerSaveDTO.getId();
+ }
+
+ /**
+ * 生成调解案件标题
+ * @param plaintiffs 申请人
+ * @param defendants 被申请人
+ * @param caseTypeName 纠纷类型
+ * @return String
+ */
+ public String createCaseTitle(String plaintiffs, String defendants, String caseTypeName){
+ StringBuffer caseTitle = new StringBuffer();
+ if (plaintiffs.indexOf(BaseConsts.COMMA) != -1){
+ caseTitle.append(plaintiffs.split(BaseConsts.COMMA)[0]).append("等");
+ }else {
+ caseTitle.append(plaintiffs.split(BaseConsts.COMMA)[0]);
+ }
+ if (StringUtils.isNotEmpty(defendants)) {
+ caseTitle.append("和");
+ if (defendants.indexOf(BaseConsts.COMMA) != -1) {
+ caseTitle.append(defendants.split(BaseConsts.COMMA)[0]).append("等");
+ } else {
+ caseTitle.append(defendants.split(BaseConsts.COMMA)[0]);
+ }
+ }
+ caseTitle.append("的");
+ if (StringUtils.isNotEmpty(caseTypeName)){
+ caseTitle.append(caseTypeName);
+ }
+ caseTitle.append("案件");
+ return caseTitle.toString();
+ }
+
+ /**
+ * 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<CasePerson> personList = registerSaveDTO.getPersonList();
+ if (CollectionUtils.isNotEmpty(personList)) {
+ for (CasePerson casePerson : personList) {
+ casePerson.setId(utilsClient.getNewTimeCaseId());
+ casePerson.setCaseId(registerSaveDTO.getId());
+ 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.getIndex().equals(casePerson.getPerType())){
+ //申请方
+ if (StringUtils.isNotEmpty(plaintiffs.toString())) {
+ plaintiffs.append(BaseConsts.COMMA);
+ }
+ plaintiffs.append(casePerson.getTrueName());
+ }else if(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().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){
+ 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(CaseBaseConstsEnum.PERSON_TYPE_3.getIndex().equals(caseAgent.getPerType())){
+ if (StringUtils.isNotEmpty(pagents.toString())) {
+ pagents.append(BaseConsts.COMMA);
+ }
+ pagents.append(caseAgent.getTrueName());
+ }else if(CaseBaseConstsEnum.PERSON_TYPE_4.getIndex().equals(caseAgent.getPerType())){
+ if (StringUtils.isNotEmpty(dagents.toString())) {
+ dagents.append(BaseConsts.COMMA);
+ }
+ dagents.append(caseAgent.getTrueName());
+ }
+
+ }
+ //todo 绑定当事人小程序
+ }
+ }
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){
+ PaUserDTO loginUser = custClient.paclientGetUser(userId);
+ List<CaseInfoWeChatDTO> list = new ArrayList<>();
+ String personType = terms.get("personType")+"";
+ if(ObjectUtils.isEmpty(personType)){
+ throw new RuntimeException("请选择人员类型");
+ }
+ if(ObjectUtils.isEmpty(loginUser.getIdcard())){
+ return new PageImpl<CaseInfoWeChatDTO>(list, page, 0);
+ }
+ QueryWrapper<CasePerson> personWrapper = new QueryWrapper<>();
+ personWrapper.select("case_id");
+ personWrapper.eq("certi_no", loginUser.getIdcard());
+ 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("ids",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);
+ caseInfoWeChatDTO.setProcessStatus(caseInfo.getInfoProcess());
+ caseInfoWeChatDTO.setProcessStatusName(caseInfo.getInfoProcessName());
+ //扩展信息
+ CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseInfo.getId());
+ if(ObjectUtils.isNotEmpty(caseInfoUnfold)){
+ caseInfoWeChatDTO.setMediResult(caseInfoUnfold.getMediResult());
+ caseInfoWeChatDTO.setMediResultName(caseInfoUnfold.getMediResultName());
+ caseInfoWeChatDTO.setMediateDeptId(caseInfoUnfold.getMediateDeptId());
+ caseInfoWeChatDTO.setMediateDeptName(caseInfoUnfold.getMediateDeptName());
+ }
+
+ 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);
+ //评价信息
+ Map<String, Object> evaluateTerms = new HashMap<>();
+ evaluateTerms.put("caseId", caseInfo.getId());
+ evaluateTerms.put("deleteStatus", BaseConsts.DELETE_STATUS_0);
+ evaluateTerms.put("evaluateUserId", loginUser.getId());
+ long evaluateCount = caseEvaluateService.countTerms(evaluateTerms);
+ if(evaluateCount > 0){
+ caseInfoWeChatDTO.setIsEvaluate("1");
+ }else{
+ caseInfoWeChatDTO.setIsEvaluate("0");
+ }
+
+ 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