From 0ff182e7668997dfb7e4348215043ccb013a3824 Mon Sep 17 00:00:00 2001
From: wangwh <2397901735@qq.com>
Date: Tue, 10 Sep 2024 15:50:20 +0800
Subject: [PATCH] 修改首页数量查询逻辑、修复登记时caseinfo表参与人保存不上的问题
---
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 139 ++++++++++++++++-----------------------------
1 files changed, 50 insertions(+), 89 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 29d2ee5..d3a50d2 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
@@ -22,6 +22,7 @@
import cn.huge.module.draft.service.CasedraftInfoService;
import cn.huge.module.mediate.dto.WechatBindCaseDTO;
import cn.huge.module.sys.dto.FileIdTypeInfoBaseDTO;
+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;
@@ -74,6 +75,9 @@
@Autowired
private SysClientImpl sysClient;
+
+ @Autowired
+ private CaseTaskService caseTaskService;
/**
* 更新对象
@@ -194,8 +198,10 @@
caseInfo.setDagents(dagents.toString());
caseInfo.setCaseRef(utilsClient.createCaseRef());
caseInfo.setCanal(CaseBaseConstsEnum.CASE_CANAL_1.getIndex());
- caseInfo.setCaseDes(CaseBaseConstsEnum.CASE_CANAL_1.getDes());
- //todo case_title生成、经纬度转换、来访形式
+ 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());
@@ -204,26 +210,27 @@
caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1);
caseInfo.setCreateTime(nowDate);
caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
-
- 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);
+ // 新增纠纷信息扩展表
+ 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);
}
@@ -268,13 +275,13 @@
//绑定当事人小程序
this.setPartyUserId(casePerson);
//添加申请方和被申请方人名组合
- if(CaseBaseConstsEnum.PERSON_TYPE_1.equals(casePerson.getPerType())){
+ 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.equals(casePerson.getPerType())){
+ }else if(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())){
//被申请方
if (StringUtils.isNotEmpty(defendants.toString())) {
defendants.append(BaseConsts.COMMA);
@@ -302,12 +309,12 @@
caseAgent.setUpdateTime(now);
//绑定当事人小程序
this.setPartyUserId(caseAgent);
- if(CaseBaseConstsEnum.PERSON_TYPE_3.equals(caseAgent.getPerType())) {
+ 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.equals(caseAgent.getPerType())) {
+ }else if(CaseBaseConstsEnum.PERSON_TYPE_4.getIndex().equals(caseAgent.getPerType())) {
if (StringUtils.isNotEmpty(dagents.toString())) {
dagents.append(BaseConsts.COMMA);
}
@@ -530,7 +537,6 @@
StringBuffer defendants = new StringBuffer();
StringBuffer pagents = new StringBuffer();
StringBuffer dagents = new StringBuffer();
- int peopleNum = 0;
CaseInfo caseInfo = new CaseInfo();
CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold();
@@ -545,24 +551,26 @@
caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1);
caseInfo.setCreateTime(nowDate);
caseInfo.setUpdateTime(nowDate);
+ caseInfo.setVisitTime(nowDate);
caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
+ caseInfo.setProcess(1);
+ caseInfo.setProcessName("来访登记");
//todo case_ref生成、case_title生成
- caseInfoUnfold.setId(utilsClient.getNewTimeId());
- caseInfoUnfold.setCaseId(caseInfo.getId());
+ caseInfoUnfold.setId(caseInfo.getId());
caseInfoUnfold.setCreateTime(nowDate);
caseInfoUnfold.setUpdateTime(nowDate);
// 常规登记-保存当事人
- peopleNum += this.saveCasePersonWechat(registerSaveDTO, plaintiffs, pagents, defendants, dagents,loginUser);
- caseInfo.setPeopleNum(peopleNum);
+ this.saveCasePersonWechat(registerSaveDTO, plaintiffs, pagents, defendants, dagents,loginUser);
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);
+
+ // 启动工作流-自动调度流程
+ caseTaskService.webStartFlowLFDJ(caseInfo);
return registerSaveDTO.getId();
}catch (Exception e){
log.error("service方法[CaseInfoService.caseRegisterWechat]调用异常:"+e, e);
@@ -582,25 +590,17 @@
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.setId(utilsClient.getNewTimeCaseId());
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);
//添加申请方和被申请方人名组合
@@ -624,18 +624,13 @@
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.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())) {
@@ -645,33 +640,6 @@
}
//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;
@@ -702,15 +670,19 @@
* @param terms 条件
* @return Page
*/
- public Page<CaseInfoWechatDTO> pageQueryWechat(String userId, PageRequest page, Map<String, Object> terms){
- List<CaseInfoWechatDTO> list = new ArrayList<>();
+ 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("party_user_id", userId);
+ personWrapper.eq("certi_no", loginUser.getIdcard());
if("1".equals(personType)){
personWrapper.eq("per_type",CaseBaseConstsEnum.PERSON_TYPE_1.getIndex());
}else {
@@ -718,29 +690,18 @@
}
List<CasePerson> casePersonList = personService.list(personWrapper);
if(ObjectUtils.isEmpty(casePersonList)){
- return new PageImpl<CaseInfoWechatDTO>(list, page, 0);
+ return new PageImpl<CaseInfoWeChatDTO>(list, page, 0);
}
List<String> ids = casePersonList.stream().map(CasePerson::getCaseId).collect(Collectors.toList());
- terms.put("idList",ids);
+ 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();
+ 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("不予受理");
- }
+ caseInfoWeChatDTO.setProcessStatus(caseInfo.getInfoProcess());
+ caseInfoWeChatDTO.setProcessStatusName(caseInfo.getInfoProcessName());
QueryWrapper<CasePerson> personWrapper1 = new QueryWrapper<>();
personWrapper1.eq("case_id", caseInfo.getId());
List<CasePerson> casePersonList1 = personService.list(personWrapper1);
@@ -762,7 +723,7 @@
list.add(caseInfoWeChatDTO);
}
}
- return new PageImpl<CaseInfoWechatDTO>(list, page, total);
+ return new PageImpl<CaseInfoWeChatDTO>(list, page, total);
}
/**
--
Gitblit v1.8.0