From 55a6ee00c9bb89556a1ba53a3a763fa20230e030 Mon Sep 17 00:00:00 2001
From: wangwh <2397901735@qq.com>
Date: Sun, 22 Sep 2024 20:36:08 +0800
Subject: [PATCH] 督办相关接口bug修复、附件查询相关修改
---
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 751 ++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 556 insertions(+), 195 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 a10be52..e43b8c0 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,11 +1,10 @@
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.base.common.utils.*;
import cn.huge.module.cases.domain.dto.*;
+import cn.huge.module.cases.domain.dto.CaseAreaDTO;
import cn.huge.module.cases.domain.po.CaseAgent;
import cn.huge.module.cases.domain.po.CaseInfoUnfold;
import cn.huge.module.cases.domain.po.CasePerson;
@@ -16,18 +15,22 @@
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.mediate.constant.*;
import cn.huge.module.cust.dto.CtUserDTO;
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 com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
@@ -35,21 +38,24 @@
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
import java.util.*;
import java.util.stream.Collectors;
/**
+ * @author wangwh
+ * @version 1.0.0
* @title: 纠纷信息主表业务逻辑处理
* @Description 纠纷信息主表业务逻辑处理
* @company hugeinfo
- * @author wangwh
* @Time 2024-08-27 10:00:57
- * @version 1.0.0
*/
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
-public class CaseInfoService extends ServiceImpl<CaseInfoMapper, CaseInfo>{
+public class CaseInfoService extends ServiceImpl<CaseInfoMapper, CaseInfo> {
@Autowired
private CaseInfoMapper mapper;
@@ -78,103 +84,143 @@
@Autowired
private CaseTaskService caseTaskService;
+ @Autowired
+ private CaseEvaluateService caseEvaluateService;
+
+
/**
- * 更新对象
- * @param entity 对象
- */
- public void updateCaseInfo(CaseInfo entity){
- try{
+ * 更新对象
+ *
+ * @param entity 对象
+ */
+ public void updateCaseInfo(CaseInfo entity) {
+ try {
mapper.updateCaseInfo(entity);
- }catch (Exception e){
- log.error("[CaseInfoService.updateCaseInfo]调用失败,异常信息:"+e, e);
+ } catch (Exception e) {
+ log.error("[CaseInfoService.updateCaseInfo]调用失败,异常信息:" + e, e);
throw new ServiceException("CaseInfoService.updateCaseInfo", e);
}
}
/**
- * 条件更新对象
- * @param entity 对象
- * @param terms 条件
- */
- public void updateCaseInfoTerms(CaseInfo entity, Map<String, Object> terms){
- try{
+ * 批量更新对象
+ *
+ * @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);
+ }
+ }
+
+ /**
+ * 条件更新对象
+ *
+ * @param entity 对象
+ * @param terms 条件
+ */
+ public void updateCaseInfoTerms(CaseInfo entity, Map<String, Object> terms) {
+ try {
mapper.updateCaseInfoTerms(entity, terms);
- }catch (Exception e){
- log.error("[CaseInfoService.updateCaseInfoTerms]调用失败,异常信息:"+e, e);
+ } catch (Exception e) {
+ log.error("[CaseInfoService.updateCaseInfoTerms]调用失败,异常信息:" + e, e);
throw new ServiceException("CaseInfoService.updateCaseInfoTerms", e);
}
}
/**
- * 根据编号物理删除
- * @param id 查询条件集合
- */
- public void deleteCaseInfo(String id){
- try{
+ * 根据编号物理删除
+ *
+ * @param id 查询条件集合
+ */
+ public void deleteCaseInfo(String id) {
+ try {
mapper.deleteCaseInfo(id);
- }catch (Exception e){
- log.error("[CaseInfoService.deleteCaseInfo]调用失败,异常信息:"+e, e);
+ } catch (Exception e) {
+ log.error("[CaseInfoService.deleteCaseInfo]调用失败,异常信息:" + e, e);
throw new ServiceException("CaseInfoService.deleteCaseInfo", e);
}
}
/**
- * 按条件查询
- * @param terms 条件
- * @return List
- */
- public List<CaseInfo> listTerms(Map<String, Object> terms){
+ * 按条件查询
+ *
+ * @param terms 条件
+ * @return List
+ */
+ public List<CaseInfo> listTerms(Map<String, Object> terms) {
return mapper.listTerms(terms);
}
/**
- * 按条件统计
- * @param terms 条件
- * @return long
- */
- public long countTerms(Map<String, Object> terms){
+ * 按条件统计
+ *
+ * @param terms 条件
+ * @return long
+ */
+ public long countTerms(Map<String, Object> terms) {
return mapper.countTerms(terms);
}
/**
- * 按条件分页查询
- * @param page 分页对象
- * @param terms 条件
- * @return Page
- */
- public Page<CaseInfo> pageQuery(PageRequest page, Map<String, Object> terms){
+ * 按条件分页查询
+ *
+ * @param page 分页对象
+ * @param terms 条件
+ * @return Page
+ */
+ public Page<CaseInfo> pageQuery(PageRequest page, Map<String, Object> terms) {
long total = mapper.countTerms(terms);
List<CaseInfo> content = mapper.pageTerms(page, terms);
return new PageImpl<CaseInfo>(content, page, total);
}
/**
- * 新增或更新对象
- * @param caseInfo 实体对象
- */
- public void saveCaseInfo(CaseInfo caseInfo){
- try{
+ * 按条件分页查询
+ *
+ * @param page 分页对象
+ * @param terms 条件
+ * @return Page
+ */
+ public Page<CaseRegisterDTO> pageQueryRegister(PageRequest page, Map<String, Object> terms) {
+ long total = mapper.countTermsCaseRegister(terms);
+ List<CaseRegisterDTO> content = mapper.pageTermsCaseRegister(page, terms);
+ return new PageImpl<CaseRegisterDTO>(content, page, total);
+ }
+
+ /**
+ * 新增或更新对象
+ *
+ * @param caseInfo 实体对象
+ */
+ public void saveCaseInfo(CaseInfo caseInfo) {
+ try {
Date nowDate = DateUtils.getNowDate();
// 判断是否新增
- if (IdUtils.checkNewId(caseInfo.getId())){
+ if (IdUtils.checkNewId(caseInfo.getId())) {
caseInfo.setId(utilsClient.getNewTimeId());
caseInfo.setCreateTime(nowDate);
}
caseInfo.setUpdateTime(nowDate);
this.saveOrUpdate(caseInfo);
- }catch (Exception e){
- log.error("[CaseInfoService.saveCaseInfo]调用失败,异常信息:"+e, e);
+ } catch (Exception e) {
+ log.error("[CaseInfoService.saveCaseInfo]调用失败,异常信息:" + e, e);
throw new ServiceException("CaseInfoService.saveCaseInfo", e);
}
}
/**
* PC端-纠纷登记-保存纠纷信息-正常案件
+ *
* @param registerSaveDTO 纠纷信息
- * @param userId 用户编号
+ * @param userId 用户编号
* @return String 纠纷编号
*/
- public String caseRegister(RegisterSaveDTO registerSaveDTO, String userId){
+ public String caseRegister(RegisterSaveDTO registerSaveDTO, String userId) {
try {
// 获取当前登录用户
CtUserDTO loginUser = custClient.clientGetUserAll(userId);
@@ -197,9 +243,11 @@
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生成、经纬度转换、来访形式
- if(0 == registerSaveDTO.getOperateType()){
+ 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());
@@ -207,8 +255,13 @@
caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1);
caseInfo.setCreateTime(nowDate);
caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
+ //默认添加省市
+ caseInfo.setQueProv("19");
+ caseInfo.setQueProvName("广东省");
+ caseInfo.setQueCity("1601");
+ caseInfo.setQueCityName("广州市");
// 删除草稿案件
- if(1 == registerSaveDTO.getIsDraft() ){
+ if (1 == registerSaveDTO.getIsDraft()) {
draftInfoService.removeDraftInfo(registerSaveDTO.getId());
}
// 新增纠纷信息
@@ -221,34 +274,35 @@
caseInfoUnfoldService.save(caseInfoUnfold);
// 启动工作流
// 判断是否自行受理
- if(1 == registerSaveDTO.getIsSelfAccept()){
+ if (1 == registerSaveDTO.getIsSelfAccept()) {
// 自行受理流程
- caseTaskService.webStartFlowZXSL(caseInfo, loginUser);
- }else {
+ return caseTaskService.webStartFlowZXSL(caseInfo, loginUser);
+ } else {
// 自动调度流程
caseTaskService.webStartFlowLFDJ(caseInfo);
}
- }else if(1 == registerSaveDTO.getOperateType()){
+ } else if (1 == registerSaveDTO.getOperateType()) {
this.updateById(caseInfo);
}
return registerSaveDTO.getId();
- }catch (Exception e){
- log.error("service方法[CaseInfoService.caseRegister]调用异常:"+e, e);
+ } catch (Exception e) {
+ log.error("service方法[CaseInfoService.caseRegister]调用异常:" + e, e);
throw new ServiceException("CaseInfoService.caseRegister", e);
}
}
/**
* pc端-常规登记-保存正式案件-保存人员信息
+ *
* @param registerSaveDTO 纠纷信息
- * @param plaintiffs 申请人
- * @param pagents 申请人代理人
- * @param defendants 被申请人
- * @param dagents 被申请人代理人
+ * @param plaintiffs 申请人
+ * @param pagents 申请人代理人
+ * @param defendants 被申请人
+ * @param dagents 被申请人代理人
* @return int
*/
private void saveCasePerson(RegisterSaveDTO registerSaveDTO, StringBuffer plaintiffs, StringBuffer pagents,
- StringBuffer defendants, StringBuffer dagents){
+ StringBuffer defendants, StringBuffer dagents) {
Date now = DateUtils.getNowDate();
@@ -263,8 +317,8 @@
List<String> newPersonIdList = new ArrayList<>();
List<String> newAgentIdList = new ArrayList<>();
- if(CollectionUtils.isNotEmpty(personList)){
- for(CasePerson casePerson: personList){
+ if (CollectionUtils.isNotEmpty(personList)) {
+ for (CasePerson casePerson : personList) {
newPersonIdList.add(casePerson.getId());
casePerson.setCaseId(registerSaveDTO.getId());
casePerson.setCustId(registerSaveDTO.getCustId());
@@ -272,13 +326,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);
@@ -287,9 +341,9 @@
}
//判断是否为更新(用原有的Id对比性的Id)
- if(oldPersonIds.contains(casePerson.getId())){
+ if (oldPersonIds.contains(casePerson.getId())) {
personService.updateById(casePerson);
- }else{
+ } else {
casePerson.setCreateTime(now);
personService.save(casePerson);
}
@@ -297,7 +351,7 @@
}
}
- if(CollectionUtils.isNotEmpty(agentList)) {
+ if (CollectionUtils.isNotEmpty(agentList)) {
for (CaseAgent caseAgent : agentList) {
newAgentIdList.add(caseAgent.getId());
caseAgent.setCaseId(registerSaveDTO.getId());
@@ -306,12 +360,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);
}
@@ -319,9 +373,9 @@
}
//判断是否为更新(用原有的Id对比性的Id)
- if(oldAgentIds.contains(caseAgent.getId())){
+ if (oldAgentIds.contains(caseAgent.getId())) {
agentService.updateById(caseAgent);
- }else{
+ } else {
caseAgent.setCreateTime(now);
agentService.save(caseAgent);
}
@@ -333,23 +387,23 @@
for (String oldPersonId : oldPersonIdList) {
if (!newPersonIdList.contains(oldPersonId)) {
personService.removeById(oldPersonId);
- }else{
+ } else {
}
}
- }else{
+ } else {
QueryWrapper<CasePerson> casePersonQueryWrapper = new QueryWrapper<>();
casePersonQueryWrapper.eq("case_id", registerSaveDTO.getId());
personService.remove(casePersonQueryWrapper);
}
//删除冗余的代理人
- if(CollectionUtils.isNotEmpty(newAgentIdList)){
- for(String oldAgentId: oldAgentIdList){
- if(!newAgentIdList.contains(oldAgentId)){
+ if (CollectionUtils.isNotEmpty(newAgentIdList)) {
+ for (String oldAgentId : oldAgentIdList) {
+ if (!newAgentIdList.contains(oldAgentId)) {
agentService.removeById(oldAgentId);
}
}
- }else{
+ } else {
QueryWrapper<CaseAgent> caseAgentQueryWrapper = new QueryWrapper<>();
caseAgentQueryWrapper.eq("case_id", registerSaveDTO.getId());
agentService.remove(caseAgentQueryWrapper);
@@ -358,10 +412,11 @@
/**
* PC端-查询纠纷信息
+ *
* @param caseId 纠纷编号
* @return CaseInfo 纠纷信息
*/
- public CaseInfoDTO getCaseInfo(String caseId){
+ public CaseInfoDTO getCaseInfo(String caseId) {
CaseInfo caseInfo = mapper.selectById(caseId);
CaseInfoDTO caseInfoDTO = new CaseInfoDTO();
if (ObjectUtils.isNotEmpty(caseInfo)) {
@@ -382,28 +437,28 @@
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 + "'";
+ 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())){
+ for (FileIdTypeInfoBaseDTO fileInfo : fileInfoList) {
+ if (caseId.equals(fileInfo.getOwnerId())) {
caseInfoDTO.setFileInfoList(fileInfo.getFileList());
}
}
- for(CasePerson casePerson: casePersonList){
+ for (CasePerson casePerson : casePersonList) {
//把附件根据编号放入
- for(FileIdTypeInfoBaseDTO fileInfo: fileInfoList){
- if(casePerson.getId().equals(fileInfo.getOwnerId())){
+ 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())){
+ for (CaseAgent caseAgent : caseAgentList) {
+ for (FileIdTypeInfoBaseDTO fileInfo : fileInfoList) {
+ if (caseAgent.getId().equals(fileInfo.getOwnerId())) {
caseAgent.setFileInfoList(fileInfo.getFileList());
}
}
@@ -416,10 +471,11 @@
/**
* PC端-查询纠纷信息
+ *
* @param caseId 纠纷编号
* @return CaseInfo 纠纷信息
*/
- public CaseInfoDTO getCaseArchivesInfo(String caseId){
+ public CaseInfoDTO getCaseArchivesInfo(String caseId) {
CaseInfo caseInfo = mapper.selectById(caseId);
CaseInfoDTO caseInfoDTO = new CaseInfoDTO();
if (ObjectUtils.isNotEmpty(caseInfo)) {
@@ -440,28 +496,28 @@
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 + "'";
+ 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())){
+ for (FileIdTypeInfoBaseDTO fileInfo : fileInfoList) {
+ if (caseId.equals(fileInfo.getOwnerId())) {
caseInfoDTO.setFileInfoList(fileInfo.getFileList());
}
}
- for(CasePerson casePerson: casePersonList){
+ for (CasePerson casePerson : casePersonList) {
//把附件根据编号放入
- for(FileIdTypeInfoBaseDTO fileInfo: fileInfoList){
- if(casePerson.getId().equals(fileInfo.getOwnerId())){
+ 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())){
+ for (CaseAgent caseAgent : caseAgentList) {
+ for (FileIdTypeInfoBaseDTO fileInfo : fileInfoList) {
+ if (caseAgent.getId().equals(fileInfo.getOwnerId())) {
caseAgent.setFileInfoList(fileInfo.getFileList());
}
}
@@ -474,6 +530,7 @@
/**
* 绑定当事人小程序
+ *
* @param casePerson 当事人信息
*/
public void setPartyUserId(CasePerson casePerson) {
@@ -497,9 +554,10 @@
/**
* 绑定当事人小程序
+ *
* @param caseAgent 代理人人信息
*/
- public void setPartyUserId(CaseAgent 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())) {
@@ -516,78 +574,158 @@
/**
* PC端-纠纷登记-保存纠纷信息-正常案件
+ *
* @param registerSaveDTO 纠纷信息
- * @param userId 用户编号
+ * @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());
- }
+ 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);
- StringBuffer plaintiffs = new StringBuffer();
- StringBuffer defendants = new StringBuffer();
- StringBuffer pagents = new StringBuffer();
- StringBuffer dagents = new StringBuffer();
- int peopleNum = 0;
+ 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 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);
- caseInfo.setProcess(1);
- caseInfo.setProcessName("来访登记");
- //todo case_ref生成、case_title生成
+ caseInfo.setInputUserId(loginUser.getId());
+ caseInfo.setInputUserName(loginUser.getTrueName());
+ caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1);
+ //默认添加省市
+ caseInfo.setQueProv("19");
+ caseInfo.setQueProvName("广东省");
+ caseInfo.setQueCity("1601");
+ caseInfo.setQueCityName("广州市");
- caseInfoUnfold.setId(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());
- this.saveOrUpdate(caseInfo);
-
- // 启动工作流-自动调度流程
- caseTaskService.webStartFlowLFDJ(caseInfo);
- return registerSaveDTO.getId();
- }catch (Exception e){
- log.error("service方法[CaseInfoService.caseRegisterWechat]调用异常:"+e, e);
- throw new ServiceException("CaseInfoService.caseRegisterWechat", e);
+ 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());
+
+ // 为了演示先兼容小程序没属地问题,写死属地
+// 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());
+ log.info("xsdqueAddrBaseDTO:{}", queAddrBaseDTO);
+ 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());
+ log.info("xsdcaseInfo:{}", caseInfo);
+ 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 被申请人代理人
+ * @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){
+ StringBuffer defendants, StringBuffer dagents, PaUserDTO loginUser) {
int peopleNum = 0;
// 保存申请人
List<CasePerson> personList = registerSaveDTO.getPersonList();
@@ -603,13 +741,13 @@
personService.saveOrUpdate(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);
@@ -622,7 +760,7 @@
//保存代理人
List<CaseAgent> agentList = registerSaveDTO.getAgentList();
if (CollectionUtils.isNotEmpty(agentList)) {
- for(CaseAgent caseAgent: agentList){
+ for (CaseAgent caseAgent : agentList) {
caseAgent.setId(utilsClient.getNewTimeCaseId());
caseAgent.setPartyUserId(loginUser.getId());
caseAgent.setCaseId(registerSaveDTO.getId());
@@ -631,28 +769,34 @@
caseAgent.setCreateTime(registerSaveDTO.getUpdateTime());
caseAgent.setUpdateTime(registerSaveDTO.getUpdateTime());
agentService.saveOrUpdate(caseAgent);
-
- if (StringUtils.isNotEmpty(pagents.toString())) {
- pagents.append(BaseConsts.COMMA);
+ 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());
}
- pagents.append(caseAgent.getTrueName());
+
}
//todo 绑定当事人小程序
}
}
-
return peopleNum;
}
- public RegisterSaveDTO getCaseInfoWechat(String id){
+ public RegisterSaveDTO getCaseInfoWechat(String id) {
RegisterSaveDTO registerSaveDTO = new RegisterSaveDTO();
CaseInfo caseInfo = this.getById(id);
- if(ObjectUtils.isNotEmpty(caseInfo)){
+ 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);
+ List<CasePerson> personList = personService.list(casePersonQueryWrapper);
registerSaveDTO.setPersonList(personList);
QueryWrapper<CaseAgent> caseAgentQueryWrapper = new QueryWrapper<>();
@@ -665,38 +809,55 @@
/**
* 按条件分页查询-小程序查询
- * @param page 分页对象
+ *
+ * @param page 分页对象
* @param terms 条件
* @return Page
*/
- public Page<CaseInfoWeChatDTO> pageQueryWechat(String userId, PageRequest page, Map<String, Object> terms){
+ 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)){
+ 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);
- if("1".equals(personType)){
- personWrapper.eq("per_type",CaseBaseConstsEnum.PERSON_TYPE_1.getIndex());
- }else {
- personWrapper.eq("per_type",CaseBaseConstsEnum.PERSON_TYPE_2.getIndex());
+ 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)){
+ 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);
+ terms.put("ids", ids);
long total = mapper.countTerms(terms);
List<CaseInfo> content = mapper.pageTerms(page, terms);
- if(ObjectUtils.isNotEmpty(content)){
- for(CaseInfo caseInfo: content){
+ 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.getMediateUnitId());
+ caseInfoWeChatDTO.setMediateDeptName(caseInfoUnfold.getMediateUnitName());
+ caseInfoWeChatDTO.setAgreeType(caseInfoUnfold.getAgreeType());
+ caseInfoWeChatDTO.setAgreeTypeName(caseInfoUnfold.getAgreeTypeName());
+ caseInfoWeChatDTO.setAgreeContent(caseInfoUnfold.getAgreeContent());
+ }
+
QueryWrapper<CasePerson> personWrapper1 = new QueryWrapper<>();
personWrapper1.eq("case_id", caseInfo.getId());
List<CasePerson> casePersonList1 = personService.list(personWrapper1);
@@ -707,14 +868,26 @@
for (CasePerson casePerson : casePersonList1) {
CasePersonWechatDTO casePersonWechatDTO = new CasePersonWechatDTO();
BeanUtils.copyProperties(casePerson, casePersonWechatDTO);
- if(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())){
+ if (CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())) {
plaintiffList.add(casePersonWechatDTO);
- }else if(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())){
+ } 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);
}
}
@@ -723,14 +896,15 @@
/**
* 按条件分页查询-综合查询
- * @param page 分页对象
+ *
+ * @param page 分页对象
* @param terms 条件
* @return Page
*/
- public Page<CasePageDTO> pageQueryAll(PageRequest page, Map<String, Object> terms){
+ 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)){
+ if (ObjectUtils.isNotEmpty(content)) {
for (CasePageDTO casePageDTO : content) {
QueryWrapper<CasePerson> personWrapper1 = new QueryWrapper<>();
personWrapper1.eq("case_id", casePageDTO.getId());
@@ -742,9 +916,9 @@
for (CasePerson casePerson : casePersonList1) {
CasePersonWeDTO casePersonWechatDTO = new CasePersonWeDTO();
BeanUtils.copyProperties(casePerson, casePersonWechatDTO);
- if(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())){
+ if (CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())) {
plaintiffList.add(casePersonWechatDTO);
- }else if(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())){
+ } else if (CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())) {
defendantList.add(casePersonWechatDTO);
}
}
@@ -754,4 +928,191 @@
}
return new PageImpl<CasePageDTO>(content, page, total);
}
+
+ public CaseStatisticsBaseDTO statistics(Map<String, Object> terms) throws IOException {
+ //基础数据统计
+ CaseStatisticsBaseDTO caseStatisticsBaseDTO = mapper.statisticsBase(terms);
+ Integer baseTotalNum = dellNull(caseStatisticsBaseDTO.getResolveNum()) + dellNull(caseStatisticsBaseDTO.getUnResolveNum())+ dellNull(caseStatisticsBaseDTO.getResolveingNum());
+ caseStatisticsBaseDTO.setResolveRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getResolveNum()*100, baseTotalNum,1));
+ caseStatisticsBaseDTO.setUnResolveRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getUnResolveNum()*100, baseTotalNum,1));
+ caseStatisticsBaseDTO.setResolveingRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getResolveingNum()*100, baseTotalNum,1));
+ Integer levelTotalNum = caseStatisticsBaseDTO.getOneLevelNum() + caseStatisticsBaseDTO.getTwoLevelNum() + caseStatisticsBaseDTO.getThreeLevelNum();
+ caseStatisticsBaseDTO.setOneLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getOneLevelNum()*100, levelTotalNum,1));
+ caseStatisticsBaseDTO.setTwoLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getTwoLevelNum()*100, levelTotalNum,1));
+ caseStatisticsBaseDTO.setThreeLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getThreeLevelNum()*100, levelTotalNum,1));
+ //区域数据统计
+ terms.put("isArea","1");
+ List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS = mapper.statisticsArea(terms);
+ if(ObjectUtils.isEmpty(caseStatisticsAreaDTOS)){
+ caseStatisticsAreaDTOS = new ArrayList<>();
+ }
+ CaseStatisticsAreaDTO allArea = new CaseStatisticsAreaDTO();
+ allArea.setAreaName("本级");
+ allArea.setAreaCode("1");
+ List<String> areaCodeList = new ArrayList<>();
+ for (CaseStatisticsAreaDTO caseStatisticsAreaDTO : caseStatisticsAreaDTOS) {
+ allArea.setCaseNum(dellNull(caseStatisticsAreaDTO.getCaseNum()) + dellNull(allArea.getCaseNum()));
+ allArea.setResolveNum(dellNull(caseStatisticsAreaDTO.getResolveNum()) + dellNull(allArea.getResolveNum()));
+ allArea.setUnResolveNum(dellNull(caseStatisticsAreaDTO.getUnResolveNum()) + dellNull(allArea.getUnResolveNum()));
+ allArea.setResolveingNum(dellNull(caseStatisticsAreaDTO.getResolveingNum()) + dellNull(allArea.getResolveingNum()));
+ areaCodeList.add(caseStatisticsAreaDTO.getAreaCode());
+ }
+ caseStatisticsAreaDTOS.add(allArea);
+ List<CaseAreaDTO> queArea = listAreaByType(terms.get("areaType"), terms.get("queArea"));
+ log.info("listAreaByType {}",JSON.toJSONString(queArea));
+ for (CaseAreaDTO caseAreaDTO : queArea) {
+ if(!areaCodeList.contains(caseAreaDTO.getAreaCode())){
+ CaseStatisticsAreaDTO areaChild = new CaseStatisticsAreaDTO();
+ areaChild.setAreaCode(caseAreaDTO.getAreaCode());
+ areaChild.setAreaName(caseAreaDTO.getAreaName());
+ areaChild.setCaseNum(0);
+ areaChild.setResolveNum(0);
+ areaChild.setUnResolveNum(0);
+ areaChild.setResolveingNum(0);
+ caseStatisticsAreaDTOS.add(areaChild);
+ }
+ }
+
+ if(ObjectUtils.isNotEmpty(caseStatisticsAreaDTOS)){
+ sortArea(caseStatisticsAreaDTOS);
+ }
+ caseStatisticsBaseDTO.setAreaList(caseStatisticsAreaDTOS);
+ terms.remove("isArea");
+ //纠纷类型统计
+ List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS = mapper.statisticsType(terms);
+ if(ObjectUtils.isNotEmpty(caseStatisticsTypeDTOS)){
+ sortType(caseStatisticsTypeDTOS);
+ }
+ Integer typeTotalNum = 0;
+ Integer otherCaseNum = 0;
+ int i = 1;
+ List<CaseStatisticsTypeDTO> typeList = new ArrayList<>();
+ for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) {
+ typeTotalNum = typeTotalNum + dellNull(caseStatisticsTypeDTO.getCaseNum());
+ if(i > 5){
+ otherCaseNum = otherCaseNum + dellNull(caseStatisticsTypeDTO.getCaseNum());
+ }else{
+ typeList.add(caseStatisticsTypeDTO);
+ }
+ i++;
+ }
+ for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : typeList) {
+ caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum()*100, typeTotalNum,1));
+ }
+ CaseStatisticsTypeDTO caseStatisticsTypeDTO = new CaseStatisticsTypeDTO();
+ caseStatisticsTypeDTO.setCaseTypeName("其他");
+ caseStatisticsTypeDTO.setCaseNum(otherCaseNum);
+ caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum()*100, typeTotalNum,1));
+ typeList.add(caseStatisticsTypeDTO);
+ caseStatisticsBaseDTO.setTypeList(typeList);
+ //事项来源
+ terms.put("canal",CaseBaseConstsEnum.CASE_CANAL_1.getIndex());
+ CaseStatisticsSourceDTO oneSource = mapper.statisticsSource(terms);
+ oneSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_1.getDes());
+ terms.put("canal",CaseBaseConstsEnum.CASE_CANAL_2.getIndex());
+ CaseStatisticsSourceDTO twoSource = mapper.statisticsSource(terms);
+ twoSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_2.getDes());
+
+ Integer sourceTotalNum = dellNull(oneSource.getCaseNum()) + dellNull(oneSource.getCaseNum());
+ oneSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(oneSource.getCaseNum()*100, sourceTotalNum,1));
+ oneSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(oneSource.getResolveNum()*100, oneSource.getCaseNum(),1));
+ twoSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(twoSource.getCaseNum()*100, sourceTotalNum,1));
+ twoSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(twoSource.getResolveNum()*100, twoSource.getCaseNum(),1));
+
+ CaseStatisticsSourceDTO threeSource = new CaseStatisticsSourceDTO();
+ threeSource.setCanalName("自行排查");
+ threeSource.setResolveRate("0");
+ threeSource.setCaseRate("0");
+ CaseStatisticsSourceDTO fourSource = new CaseStatisticsSourceDTO();
+ fourSource.setCanalName("协同推送");
+ fourSource.setResolveRate("0");
+ fourSource.setCaseRate("0");
+ caseStatisticsBaseDTO.setOneSource(oneSource);
+ caseStatisticsBaseDTO.setTwoSource(twoSource);
+ caseStatisticsBaseDTO.setThreeSource(threeSource);
+ caseStatisticsBaseDTO.setFourSource(fourSource);
+
+ //案件集合
+ Sort sort = Sort.by(Sort.Direction.DESC, "a.create_time");
+ PageRequest pageRequest = PageRequest.of(0, 5, sort);
+ Page<CasePageDTO> casePageDTOS = pageQueryAll(pageRequest, terms);
+ if(ObjectUtils.isNotEmpty(casePageDTOS.getContent())){
+ caseStatisticsBaseDTO.setCaseList(casePageDTOS.getContent());
+ }else{
+ caseStatisticsBaseDTO.setCaseList(new ArrayList<>());
+ }
+ return caseStatisticsBaseDTO;
+ }
+
+ public List<CaseStatisticsTypeDTO> sortType(List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS){
+ caseStatisticsTypeDTOS.sort((o1, o2)->{
+ Integer totalScore1 = o1.getCaseNum();
+ Integer totalScore2 = o2.getCaseNum();
+ if(totalScore1 < totalScore2) {
+ return 1;
+ }else if (totalScore1.equals(totalScore2)){
+ return 0;
+ }else{
+ return -1;
+ }
+ });
+ return caseStatisticsTypeDTOS;
+ }
+
+ public List<CaseStatisticsAreaDTO> sortArea(List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS){
+ caseStatisticsAreaDTOS.sort((o1, o2)->{
+ Integer totalScore1 = Integer.valueOf(o1.getAreaCode());
+ Integer totalScore2 = Integer.valueOf(o2.getAreaCode());
+ if(totalScore1 > totalScore2) {
+ return 1;
+ }else if (totalScore1.equals(totalScore2)){
+ return 0;
+ }else{
+ return -1;
+ }
+ });
+ return caseStatisticsAreaDTOS;
+ }
+
+ public Integer dellNull(Integer number){
+ if(ObjectUtils.isEmpty(number)){
+ return 0;
+ }
+ return number;
+ }
+
+ /**
+ * 根据json文件获取区域信息
+ * */
+ public CaseAreaDTO getArea() throws IOException {
+ Class<?> clazz = CaseAreaDTO.class;
+ String path = clazz.getProtectionDomain().getCodeSource().getLocation().getPath();
+ ObjectMapper mapper = new ObjectMapper();
+ File file = new File(path+ "cn"+File.separator+"huge"+File.separator+"module"+File.separator+"cases"+File.separator+"domain"+File.separator+"json"+File.separator+"Area.json");
+ CaseAreaDTO obj = mapper.readValue(file, CaseAreaDTO.class);
+ return obj;
+ }
+
+
+ /**
+ * 根据不同的等级获取不同区域子集合
+ * @param areaType 1-市级 2-区
+ * */
+ public List<CaseAreaDTO> listAreaByType(Object areaType,Object areaCode) throws IOException {
+ log.info("listAreaByType {},{}",areaType,areaCode);
+ CaseAreaDTO area = getArea();
+ log.info("listAreaByType area {}",JSON.toJSONString(area));
+ if(ObjectUtils.isEmpty(areaType) || areaType.equals("") || areaType.equals("1")){
+ return area.getChildren();
+ }
+ if(areaType.equals("2")){
+ List<CaseAreaDTO> children = area.getChildren();
+ for (CaseAreaDTO child : children) {
+ if(child.getAreaCode().equals(areaCode)){
+ return child.getChildren();
+ }
+ }
+ }
+ return new ArrayList<>();
+ }
}
--
Gitblit v1.8.0