package cn.huge.module.cases.service; import cn.huge.base.common.exception.ServiceException; import cn.huge.base.common.utils.*; import cn.huge.module.casebook.consts.ByCaseTypeEnum; import cn.huge.module.casebook.domain.po.CasebookAgent; import cn.huge.module.casebook.domain.po.CasebookInfo; import cn.huge.module.casebook.domain.po.CasebookPerson; import cn.huge.module.casebook.service.*; import cn.huge.module.cases.domain.bo.CaseAgentBO; import cn.huge.module.cases.domain.bo.CasePersonBO; import cn.huge.module.cases.domain.bo.CasePersonCountBO; import cn.huge.module.cases.domain.dto.*; import cn.huge.module.cases.domain.dto.CaseAreaDTO; import cn.huge.module.cases.domain.po.*; import cn.huge.module.cases.domain.vo.CaseVo; import cn.huge.module.cases.domain.vo.GenerateQrCodeRequestVo; 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.constant.BaseConsts; import cn.huge.module.cust.dto.CtUnitDTO; 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.service.CasedraftInfoService; import cn.huge.module.mediate.constant.CaseProcessBaseConstsEnum; import cn.huge.module.mediate.dto.WechatBindCaseDTO; import cn.huge.module.syncbydyh.domain.po.SyCause; import cn.huge.module.sys.constant.GridEnum; import cn.huge.module.sys.dto.FileIdTypeInfoBaseDTO; import cn.huge.module.sys.dto.*; import cn.huge.module.sys.dto.QueAddrBaseDTO; import cn.huge.module.sys.dto.QueAreaDTO; 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.scheduling.annotation.Async; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; 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 java.io.File; import java.io.IOException; import java.net.URL; import java.nio.file.Files; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; /** * @author wangwh * @version 1.0.0 * @title: 纠纷信息主表业务逻辑处理 * @Description 纠纷信息主表业务逻辑处理 * @company hugeinfo * @Time 2024-08-27 10:00:57 */ @Slf4j @Service @Transactional(rollbackFor = Exception.class) public class CaseInfoService extends ServiceImpl { @Autowired private CaseInfoMapper mapper; @Autowired private UtilsClientImpl utilsClient; @Autowired private CasedraftInfoService draftInfoService; @Autowired private CasePersonService personService; @Autowired private CaseAgentService agentService; @Autowired private CustClientImpl custClient; @Autowired private CaseInfoUnfoldService caseInfoUnfoldService; @Autowired private SysClientImpl sysClient; @Autowired private CaseTaskService caseTaskService; @Autowired private CaseEvaluateService caseEvaluateService; @Autowired private CasebookInfoService casebookInfoService; @Autowired private CasebookInfoUnfoldService casebookInfoUnfoldService; @Autowired private CasebookPersonService casebookPersonService; @Autowired private CasebookAgentService casebookAgentService; @Autowired private CaseMediatorService caseMediatorService; @Autowired private CaseRepeatService caseRepeatService; @Autowired private CaseWindupApplyService caseWindupApplyService; @Autowired private CasePersonService casePersonService; /** * 更新对象 * * @param entity 对象 */ public void updateCaseInfo(CaseInfo entity) { try { mapper.updateCaseInfo(entity); } 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 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 terms) { try { mapper.updateCaseInfoTerms(entity, terms); } catch (Exception e) { log.error("[CaseInfoService.updateCaseInfoTerms]调用失败,异常信息:" + e, e); throw new ServiceException("CaseInfoService.updateCaseInfoTerms", e); } } /** * 根据编号物理删除 * * @param id 查询条件集合 */ public void deleteCaseInfo(String id) { try { mapper.deleteCaseInfo(id); } catch (Exception e) { log.error("[CaseInfoService.deleteCaseInfo]调用失败,异常信息:" + e, e); throw new ServiceException("CaseInfoService.deleteCaseInfo", e); } } /** * 按条件查询 * * @param terms 条件 * @return List */ public List listTerms(Map terms) { return mapper.listTerms(terms); } /** * 按条件统计 * * @param terms 条件 * @return long */ public long countTerms(Map terms) { return mapper.countTerms(terms); } /** * 按条件分页查询 * * @param page 分页对象 * @param terms 条件 * @return Page */ public Page pageQuery(PageRequest page, Map terms) { long total = mapper.countTerms(terms); List content = mapper.pageTerms(page, terms); return new PageImpl(content, page, total); } /** * 按条件分页查询 * * @param page 分页对象 * @param terms 条件 * @return Page */ public Page pageQueryRegister(PageRequest page, Map terms) { long total = mapper.countTermsCaseRegister(terms); List content = mapper.pageTermsCaseRegister(page, terms); return new PageImpl(content, page, total); } /** * 新增或更新对象 * * @param caseInfo 实体对象 */ public void saveCaseInfo(CaseInfo caseInfo) { try { Date nowDate = DateUtils.getNowDate(); // 判断是否新增 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); throw new ServiceException("CaseInfoService.saveCaseInfo", e); } } /** * PC端-纠纷登记-根据坐标信息入格 * * @param caseId 案件编号 */ public void setGridInfoById(String caseId) { CaseInfo caseInfo = this.getById(caseId); GridCoordinateDTO gridCoordinateDTO = sysClient.getGridInfoBd09(caseInfo.getLng(), caseInfo.getLat()); if (ObjectUtils.isNotEmpty(gridCoordinateDTO)) { log.info("[CaseInfoService.caseRegister]调用成功"); log.info("网格信息:{}", gridCoordinateDTO); caseInfo.setWgAddr(gridCoordinateDTO.getAddress()); caseInfo.setWgLat(gridCoordinateDTO.getGzY()); caseInfo.setWgLng(gridCoordinateDTO.getGzX()); this.updateCaseInfo(caseInfo); } else { log.warn("[CaseInfoService.caseRegister]调用失败,未能获取到坐标信息"); throw new ServiceException("CaseInfoService.caseRegister", "未能获取到坐标信息"); } } /** * PC端-纠纷登记-保存纠纷信息-正常案件 * * @param registerSaveDTO 纠纷信息 * @param userId 用户编号 * @return String 纠纷编号 */ public String caseRegister(RegisterSaveDTO registerSaveDTO, String userId) { try { // 获取当前登录用户 CtUserDTO loginUser = custClient.clientGetUserAll(userId); Date nowDate = DateUtils.getNowDate(); StringBuffer plaintiffs = new StringBuffer(); StringBuffer defendants = new StringBuffer(); StringBuffer pagents = new StringBuffer(); StringBuffer dagents = new StringBuffer(); //复制填装案件表 CaseInfo caseInfo = new CaseInfo(); BeanUtils.copyProperties(registerSaveDTO, caseInfo); // 是否自行受理 if (1 == registerSaveDTO.getIsSelfAccept()) { // 是 caseInfo.setZxslStatus(CaseBaseConsts.ZXSL_STATUS_1); } else { // 否 caseInfo.setZxslStatus(CaseBaseConsts.ZXSL_STATUS_0); } caseInfo.setUpdateTime(nowDate); // 常规登记-保存当事人 this.saveCasePerson(registerSaveDTO, plaintiffs, pagents, defendants, dagents); caseInfo.setPlaintiffs(plaintiffs.toString()); caseInfo.setPagents(pagents.toString()); caseInfo.setDefendants(defendants.toString()); caseInfo.setDagents(dagents.toString()); // 获取事项编号 CtUnitDTO ctUnitDTO = custClient.getUnitById(loginUser.getUnitId()); GenerateQrCodeRequestVo generateQrCodeRequestVo = new GenerateQrCodeRequestVo(); generateQrCodeRequestVo.setId(caseInfo.getId()); generateQrCodeRequestVo.setBusinessSource("02"); generateQrCodeRequestVo.setGenerateUnifiedCode(true); generateQrCodeRequestVo.setInfoSource("03"); String area = this.formatGridCode(ctUnitDTO.getArea()); generateQrCodeRequestVo.setGridCode(area); caseInfo.setCaseRef(sysClient.getCaseRefByGenerateQrCode(generateQrCodeRequestVo)); // 获取调解案号 caseInfo.setCaseNo(utilsClient.createCaseNo(ctUnitDTO.getArea())); caseInfo.setVisitWay(CaseBaseConstsEnum.getVisitWayByCanal(caseInfo.getCanal()).getIndex()); caseInfo.setVisitWayName(CaseBaseConstsEnum.getVisitWayByCanal(caseInfo.getCanal()).getDes()); //默认小程序可见 if (ObjectUtils.isNotEmpty(caseInfo.getCanal())) { if (CaseBaseConstsEnum.CASE_CANAL_1.getIndex().equals(caseInfo.getCanal())) { caseInfo.setPartyShow(1); } } //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); //默认添加省市 caseInfo.setQueProv("19"); caseInfo.setQueProvName("广东省"); caseInfo.setQueCity("440100"); caseInfo.setQueCityName("广州市"); // 删除草稿案件 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); caseInfoUnfold.setMediatorId(registerSaveDTO.getMediatorId()); caseInfoUnfold.setMediator(registerSaveDTO.getMediator()); caseInfoUnfoldService.save(caseInfoUnfold); // 新增调解员信息 if (StringUtils.isNotBlank(registerSaveDTO.getMediator())) { CaseMediator caseMediator = new CaseMediator(); caseMediator.setId(utilsClient.getNewTimeId()); caseMediator.setCaseId(caseInfo.getId()); caseMediator.setMediatorType(CaseBaseConsts.MEDIATOR_TYPE_0); caseMediator.setMediatorId(registerSaveDTO.getMediatorId()); caseMediator.setMediatorName(registerSaveDTO.getMediator()); ctUnitDTO = custClient.getUnitByUserId(registerSaveDTO.getMediatorId()); caseMediator.setUnitId(ctUnitDTO.getId()); caseMediator.setUnitName(ctUnitDTO.getUnitName()); caseMediator.setCreateTime(nowDate); caseMediator.setUpdateTime(nowDate); caseMediatorService.save(caseMediator); } // 新增协助调解员信息 if (CollectionUtils.isNotEmpty(registerSaveDTO.getAssistMediatorList())) { for (MediatorDTO mediatorDTO : registerSaveDTO.getAssistMediatorList()) { CaseMediator caseMediator = new CaseMediator(); caseMediator.setId(utilsClient.getNewTimeId()); caseMediator.setCaseId(caseInfo.getId()); caseMediator.setMediatorType(CaseBaseConsts.MEDIATOR_TYPE_1); caseMediator.setMediatorId(mediatorDTO.getMediatorId()); caseMediator.setMediatorName(mediatorDTO.getMediator()); ctUnitDTO = custClient.getUnitByUserId(mediatorDTO.getMediatorId()); caseMediator.setUnitId(ctUnitDTO.getId()); caseMediator.setUnitName(ctUnitDTO.getUnitName()); caseMediator.setCreateTime(nowDate); caseMediator.setUpdateTime(nowDate); caseMediatorService.save(caseMediator); } } // 是否合并重复案件 if (CollectionUtils.isNotEmpty(registerSaveDTO.getRepeatCaseIdList())) { // 合并操作-跟随主案件流程 caseRepeatService.createRepeatCase(caseInfo.getId(), registerSaveDTO.getRepeatCaseIdList(), loginUser); } else { // 不合并-启动工作流 // 判断是否自行受理 // if (1 == registerSaveDTO.getIsSelfAccept()) { // // 自行受理流程 // return caseTaskService.webStartFlowZXSL(caseInfo, loginUser); // } else { // // 自动调度流程 // caseTaskService.webStartFlowLFDJ(caseInfo); // } } // todo-临时操作,无论合不合并的案件都走工作流 // 判断是否自行受理 if (1 == registerSaveDTO.getIsSelfAccept()) { // 自行受理流程 return caseTaskService.webStartFlowZXSL(caseInfo, loginUser); } else { // 自动调度流程 caseTaskService.webStartFlowLFDJ(caseInfo); } } else if (1 == registerSaveDTO.getOperateType()) { this.updateById(caseInfo); } return registerSaveDTO.getId(); } 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 被申请人代理人 * @return int */ private void saveCasePerson(RegisterSaveDTO registerSaveDTO, StringBuffer plaintiffs, StringBuffer pagents, StringBuffer defendants, StringBuffer dagents) { Date now = DateUtils.getNowDate(); List personList = registerSaveDTO.getPersonList(); List agentList = registerSaveDTO.getAgentList(); //查出已存在的当事人和代理人编号 List oldPersonIdList = personService.listIdByCaseId(registerSaveDTO.getId()); List 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 newPersonIdList = new ArrayList<>(); List newAgentIdList = new ArrayList<>(); if (CollectionUtils.isNotEmpty(personList)) { for (CasePerson casePerson : personList) { newPersonIdList.add(casePerson.getId()); casePerson.setCaseId(registerSaveDTO.getId()); casePerson.setCustId(registerSaveDTO.getCustId()); 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()); } //判断是否为更新(用原有的Id对比性的Id) if (oldPersonIds.contains(casePerson.getId())) { personService.updateById(casePerson); } else { casePerson.setCreateTime(now); personService.save(casePerson); } } } 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()); } else if (CaseBaseConstsEnum.PERSON_TYPE_4.getIndex().equals(caseAgent.getPerType())) { if (StringUtils.isNotEmpty(dagents.toString())) { dagents.append(BaseConsts.COMMA); } dagents.append(caseAgent.getTrueName()); } //判断是否为更新(用原有的Id对比性的Id) if (oldAgentIds.contains(caseAgent.getId())) { agentService.updateById(caseAgent); } else { caseAgent.setCreateTime(now); agentService.save(caseAgent); } } } // 删除冗余的申请人(用新的Id对比旧的Id) if (CollectionUtils.isNotEmpty(newPersonIdList)) { for (String oldPersonId : oldPersonIdList) { if (!newPersonIdList.contains(oldPersonId)) { personService.removeById(oldPersonId); } else { } } } else { QueryWrapper casePersonQueryWrapper = new QueryWrapper<>(); casePersonQueryWrapper.eq("case_id", registerSaveDTO.getId()); personService.remove(casePersonQueryWrapper); } //删除冗余的代理人 if (CollectionUtils.isNotEmpty(newAgentIdList)) { for (String oldAgentId : oldAgentIdList) { if (!newAgentIdList.contains(oldAgentId)) { agentService.removeById(oldAgentId); } } } else { QueryWrapper caseAgentQueryWrapper = new QueryWrapper<>(); 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); if (StringUtils.isNotEmpty(caseInfoDTO.getCanalSecondName())) caseInfoDTO.setCanalName(caseInfoDTO.getCanalName() + "-" + caseInfoDTO.getCanalSecondName()); //查询所有当事人 QueryWrapper personQueryWrapper = new QueryWrapper<>(); personQueryWrapper.eq("case_id", caseId); List casePersonList = personService.list(personQueryWrapper); //查询所有代理人 QueryWrapper caseAgentQueryWrapper = new QueryWrapper<>(); caseAgentQueryWrapper.eq("case_id", caseId); List caseAgentList = agentService.list(caseAgentQueryWrapper); List 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 term = new HashMap<>(); term.put("mainId", caseId); term.put("ownerIds", ids); //查询所有附件 List 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); //查询扬言风险 CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId); if (caseInfoUnfold != null) { caseInfoDTO.setIsRisk(caseInfoUnfold.getIsRisk()); caseInfoDTO.setTcqk(caseInfoUnfold.getTcqk()); } } else { CasebookInfo casebookInfo = casebookInfoService.getById(caseId); if (ObjectUtils.isNotEmpty(casebookInfo)) { BeanUtils.copyProperties(casebookInfo, caseInfoDTO); //查询所有当事人 QueryWrapper personQueryWrapper = new QueryWrapper<>(); personQueryWrapper.eq("case_id", caseId); List casebookPersonList = casebookPersonService.list(personQueryWrapper); List casePersonList = new ArrayList<>(); for (CasebookPerson casebookPerson : casebookPersonList) { CasePerson casePerson = new CasePerson(); BeanUtils.copyProperties(casebookPerson, casePerson); casePersonList.add(casePerson); } caseInfoDTO.setPersonList(casePersonList); //查询所有代理人 QueryWrapper caseAgentQueryWrapper = new QueryWrapper<>(); caseAgentQueryWrapper.eq("case_id", caseId); List casebookAgentList = casebookAgentService.list(caseAgentQueryWrapper); List caseAgentList = new ArrayList<>(); for (CasebookAgent casebookAgent : casebookAgentList) { CaseAgent caseAgent = new CaseAgent(); BeanUtils.copyProperties(caseAgent, casebookAgent); caseAgentList.add(caseAgent); } 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 personQueryWrapper = new QueryWrapper<>(); personQueryWrapper.eq("case_id", caseId); List casePersonList = personService.list(personQueryWrapper); //查询所有代理人 QueryWrapper caseAgentQueryWrapper = new QueryWrapper<>(); caseAgentQueryWrapper.eq("case_id", caseId); List caseAgentList = agentService.list(caseAgentQueryWrapper); List 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 term = new HashMap<>(); term.put("mainId", caseId); term.put("ownerIds", ids); //查询所有附件 List 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.setPartyShow(1); if (ObjectUtils.isEmpty(registerSaveDTO.getPeopleNum())) { caseInfo.setPeopleNum(0); } if (ObjectUtils.isEmpty(registerSaveDTO.getAmount())) { caseInfo.setAmount(0.0); } //默认添加省市 caseInfo.setQueProv("19"); caseInfo.setQueProvName("广东省"); caseInfo.setQueCity("1601"); caseInfo.setQueCityName("广州市"); 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() + ""); } // 为了演示先兼容小程序没属地问题,写死属地 // 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()); // 生成事项编号 GenerateQrCodeRequestVo generateQrCodeRequestVo = new GenerateQrCodeRequestVo(); generateQrCodeRequestVo.setId(caseInfo.getId()); generateQrCodeRequestVo.setBusinessSource("02"); generateQrCodeRequestVo.setGenerateUnifiedCode(true); generateQrCodeRequestVo.setInfoSource("03"); String area = this.formatGridCode(caseInfo.getQueArea()); generateQrCodeRequestVo.setGridCode(area); caseInfo.setCaseRef(sysClient.getCaseRefByGenerateQrCode(generateQrCodeRequestVo)); // 生产调解案号 caseInfo.setCaseNo(utilsClient.createCaseNo(caseInfo.getQueArea())); 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.setVisitWay(CaseBaseConstsEnum.VISIT_WAY_2.getIndex()); caseInfo.setVisitWayName(CaseBaseConstsEnum.VISIT_WAY_2.getDes()); // 临时加上一级纠纷类型 caseInfo.setCaseTypeFirst("24_01-2"); caseInfo.setCaseTypeFirstName("劳动社保"); //小程序是否查看 caseInfo.setPartyShow(1); 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 personList = registerSaveDTO.getPersonList(); Map personIdMap = new HashMap<>(); if (CollectionUtils.isNotEmpty(personList)) { for (CasePerson casePerson : personList) { String newTimeCaseId = utilsClient.getNewTimeCaseId(); personIdMap.put(casePerson.getAgentCode(), newTimeCaseId); casePerson.setId(newTimeCaseId); 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 agentList = registerSaveDTO.getAgentList(); if (CollectionUtils.isNotEmpty(agentList)) { for (CaseAgent caseAgent : agentList) { caseAgent.setId(utilsClient.getNewTimeCaseId()); caseAgent.setPersonId(personIdMap.get(caseAgent.getAgentCode())); 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 casePersonQueryWrapper = new QueryWrapper<>(); casePersonQueryWrapper.eq("case_id", registerSaveDTO.getId()); List personList = personService.list(casePersonQueryWrapper); Map personNameMap = new HashMap<>(); if (ObjectUtils.isNotEmpty(personList)) { for (CasePerson casePerson : personList) { personNameMap.put(casePerson.getId(), casePerson.getTrueName()); } } registerSaveDTO.setPersonList(personList); QueryWrapper caseAgentQueryWrapper = new QueryWrapper<>(); caseAgentQueryWrapper.eq("case_id", registerSaveDTO.getId()); List agentList = agentService.list(caseAgentQueryWrapper); if (ObjectUtils.isNotEmpty(agentList)) { for (CaseAgent caseAgent : agentList) { caseAgent.setAgentPersonName(personNameMap.get(caseAgent.getPersonId())); } } registerSaveDTO.setAgentList(agentList); return registerSaveDTO; } /** * 按条件分页查询-小程序查询 * * @param page 分页对象 * @param terms 条件 * @return Page */ public Page pageQueryWechat(String userId, PageRequest page, Map terms) { PaUserDTO loginUser = custClient.paclientGetUser(userId); List list = new ArrayList<>(); String personType = terms.get("personType") + ""; if (ObjectUtils.isEmpty(personType)) { throw new RuntimeException("请选择人员类型"); } if (ObjectUtils.isEmpty(loginUser.getIdcard())) { return new PageImpl(list, page, 0); } QueryWrapper 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 casePersonList = personService.list(personWrapper); if (ObjectUtils.isEmpty(casePersonList)) { return new PageImpl(list, page, 0); } List ids = casePersonList.stream().map(CasePerson::getCaseId).collect(Collectors.toList()); terms.put("ids", ids); terms.put("partyShow", 1); long total = mapper.countTerms(terms); List 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.getMediateUnitId()); caseInfoWeChatDTO.setMediateDeptName(caseInfoUnfold.getMediateUnitName()); caseInfoWeChatDTO.setAgreeType(caseInfoUnfold.getAgreeType()); caseInfoWeChatDTO.setAgreeTypeName(caseInfoUnfold.getAgreeTypeName()); caseInfoWeChatDTO.setAgreeContent(caseInfoUnfold.getAgreeContent()); } QueryWrapper personWrapper1 = new QueryWrapper<>(); personWrapper1.eq("case_id", caseInfo.getId()); List casePersonList1 = personService.list(personWrapper1); //申请人集合 List plaintiffList = new ArrayList<>(); //被申请人集合 List 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 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(list, page, total); } /** * 按条件分页查询-综合查询 * * @param page 分页对象 * @param terms 条件 * @return Page */ public Page pageQueryAll(PageRequest page, Map terms) { String areaType = null; if (ObjectUtils.isNotEmpty(terms.get("queVillage"))) { areaType = "4"; } else if (ObjectUtils.isNotEmpty(terms.get("queRoad"))) { areaType = "3"; } else if (ObjectUtils.isNotEmpty(terms.get("queArea"))) { terms.remove("queCity"); areaType = "2"; } else { areaType = "1"; } terms.put("areaType", areaType); terms.put("statistics", "1"); long total = mapper.countTermsAll(terms); List content = mapper.pageTermsAll(page, terms); //如果导出,单独查询人员信息 Map> casePersonMap = new HashMap<>(); Map> caseAgentMap = new HashMap<>(); Map> caseHandleMap = new HashMap<>(); if (ObjectUtils.isNotEmpty(terms.get("report"))) { List casePersonWeDTOS = mapper.pageTermsPersonAll(terms); if (ObjectUtils.isNotEmpty(casePersonWeDTOS)) { casePersonMap = casePersonWeDTOS.stream().collect(Collectors.groupingBy(CasePersonWeDTO::getCaseId)); } List caseAgentWeDTOS = mapper.pageTermsAgentAll(terms); if (ObjectUtils.isNotEmpty(caseAgentWeDTOS)) { caseAgentMap = caseAgentWeDTOS.stream().collect(Collectors.groupingBy(CaseAgentWeDTO::getCaseId)); } List caseHandleWeDTOS = mapper.pageTermsHandleAll(terms); if (ObjectUtils.isNotEmpty(caseHandleWeDTOS)) { caseHandleMap = caseHandleWeDTOS.stream().collect(Collectors.groupingBy(CaseHandleWeDTO::getCaseId)); } } if (ObjectUtils.isNotEmpty(content)) { for (CasePageDTO casePageDTO : content) { if (CaseBaseConstsEnum.CASE_CANAL_4.getIndex().equals(casePageDTO.getCanal())) { casePageDTO.setCanalName(casePageDTO.getCanalName() + "-" + casePageDTO.getCanalSecondName()); } StringBuffer sb = new StringBuffer(); if (ObjectUtils.isNotEmpty(casePageDTO.getQueAreaName())) { sb.append("/"); sb.append(casePageDTO.getQueAreaName()); } if (ObjectUtils.isNotEmpty(casePageDTO.getQueRoadName())) { sb.append("/"); sb.append(casePageDTO.getQueRoadName()); } if (ObjectUtils.isNotEmpty(casePageDTO.getQueVillageName())) { sb.append("/"); sb.append(casePageDTO.getQueVillageName()); } if (ObjectUtils.isEmpty(sb)) { sb.append("/"); sb.append(casePageDTO.getQueCityName()); } if (sb.length() > 1) { casePageDTO.setAreaName(sb.substring(1, sb.length())); } if (ObjectUtils.isNotEmpty(casePageDTO.getCaseTypeFirstName())) { casePageDTO.setCaseTypeName(casePageDTO.getCaseTypeFirstName() + "/" + casePageDTO.getCaseTypeName()); } if (ObjectUtils.isNotEmpty(casePageDTO.getCaseLevel())) { switch (casePageDTO.getCaseLevel()) { case "1": casePageDTO.setCaseLevel("一级"); break; case "2": casePageDTO.setCaseLevel("二级"); break; case "3": casePageDTO.setCaseLevel("三级"); break; } } //申请人集合 List plaintiffList = new ArrayList<>(); //被申请人集合 List defendantList = new ArrayList<>(); //如果是导出调用,全量查询 if (casePersonMap.containsKey(casePageDTO.getId())) { List casePersonWeDTOS = casePersonMap.get(casePageDTO.getId()); for (CasePersonWeDTO casePersonWeDTO : casePersonWeDTOS) { if (CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePersonWeDTO.getPerType())) { plaintiffList.add(casePersonWeDTO); } else if (CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePersonWeDTO.getPerType())) { defendantList.add(casePersonWeDTO); } } } else { QueryWrapper personWrapper1 = new QueryWrapper<>(); personWrapper1.eq("case_id", casePageDTO.getId()); personWrapper1.select("true_name", "mobile", "per_type", "per_type_name", "per_class", "per_class_name", "certi_no", "orga_code"); List casePersonList1 = personService.list(personWrapper1); 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); } } } //代理人 if (caseAgentMap.containsKey(casePageDTO.getId())) { List caseAgentWeDTOS = caseAgentMap.get(casePageDTO.getId()); casePageDTO.setAgentList(caseAgentWeDTOS); } casePageDTO.setDefendantList(defendantList); casePageDTO.setPlaintiffList(plaintiffList); //导出用,如果化解不成功查询化解不成功理由 if (ObjectUtils.isNotEmpty(terms.get("report"))) { if (MediResultBaseConstsEnum.MEDI_RESULT_2.getIndex().equals(casePageDTO.getMediResult())) { QueryWrapper windupApplyWrapper = new QueryWrapper<>(); windupApplyWrapper.eq("case_id", casePageDTO.getId()); windupApplyWrapper.eq("medi_result", MediResultBaseConstsEnum.MEDI_RESULT_2.getIndex()); windupApplyWrapper.select("fail_reason"); windupApplyWrapper.last("limit 1"); CaseWindupApply caseWindupApply = caseWindupApplyService.getOne(windupApplyWrapper); if (ObjectUtils.isNotEmpty(caseWindupApply)) { casePageDTO.setFailReason(caseWindupApply.getFailReason()); } } //办理结果 if (caseHandleMap.containsKey(casePageDTO.getId())) { List caseHandleWeDTOS = caseHandleMap.get(casePageDTO.getId()); casePageDTO.setHandContent(caseHandleWeDTOS.get(0).getHandContent()); } } } } return new PageImpl(content, page, total); } /** * 按条件分页查询-综合查询 * * @param page 分页对象 * @param terms 条件 * @return Page */ public Page pageQueryArea(PageRequest page, Map terms) { terms.put("statistics", "1"); long total = mapper.countTermsAll(terms); List content = mapper.pageTermsAll(page, terms); if (ObjectUtils.isNotEmpty(content)) { for (CasePageDTO casePageDTO : content) { StringBuffer sb = new StringBuffer(); if (ObjectUtils.isNotEmpty(casePageDTO.getQueAreaName())) { sb.append("/"); sb.append(casePageDTO.getQueAreaName()); } if (ObjectUtils.isNotEmpty(casePageDTO.getQueRoadName())) { sb.append("/"); sb.append(casePageDTO.getQueRoadName()); } if (ObjectUtils.isNotEmpty(casePageDTO.getQueVillageName())) { sb.append("/"); sb.append(casePageDTO.getQueVillageName()); } if (sb.length() > 1) { casePageDTO.setAreaName(sb.substring(1, sb.length())); } if (ObjectUtils.isNotEmpty(casePageDTO.getCaseTypeFirstName())) { casePageDTO.setCaseTypeName(casePageDTO.getCaseTypeFirstName() + "/" + casePageDTO.getCaseTypeName()); } if (ObjectUtils.isNotEmpty(casePageDTO.getCaseLevel())) { switch (casePageDTO.getCaseLevel()) { case "1": casePageDTO.setCaseLevel("一级"); break; case "2": casePageDTO.setCaseLevel("二级"); break; case "3": casePageDTO.setCaseLevel("三级"); break; } } //申请人集合 List plaintiffList = new ArrayList<>(); //被申请人集合 List defendantList = new ArrayList<>(); //如果是导出调用,不查询extend信息 if (ObjectUtils.isEmpty(terms.get("report"))) { QueryWrapper personWrapper1 = new QueryWrapper<>(); personWrapper1.eq("case_id", casePageDTO.getId()); List casePersonList1 = personService.list(personWrapper1); 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(content, page, total); } /** * 统计调解过程 * 计算案件的调解过程相关统计数据,包括不予受理率、化解中率、化解成功率、化解不成功率等 * * @param terms 统计条件 * @return 包含调解过程统计数据的DTO对象 */ public CaseStatisticsBaseDTO statisticsProcess(Map terms) { CaseStatisticsBaseDTO caseStatisticsBaseDTO = mapper.statisticsBaseProcess(terms); Integer baseTotalNum = dellNull(caseStatisticsBaseDTO.getRejectNum()) + dellNull(caseStatisticsBaseDTO.getProcessNum()) + dellNull(caseStatisticsBaseDTO.getFinishNum()) + dellNull(caseStatisticsBaseDTO.getFailNum()); caseStatisticsBaseDTO.setRejectRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getRejectNum() * 100, baseTotalNum, 1)); caseStatisticsBaseDTO.setProcessRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getProcessNum() * 100, baseTotalNum, 1)); caseStatisticsBaseDTO.setFinishRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getFinishNum() * 100, baseTotalNum, 1)); caseStatisticsBaseDTO.setFailRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getFailNum() * 100, baseTotalNum, 1)); // 如果 baseTotalNum为0 设置 总数为0 caseStatisticsBaseDTO.setTotalNum(baseTotalNum); 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)); return caseStatisticsBaseDTO; } /** * 纠纷态势 * 筛选范围:如果已经有承办部门,就按承办部门的区域筛选。如果没有承办部门按问题归属区域筛选 */ public CaseStatisticsBaseDTO statistics(Map terms, String userId) throws IOException { terms.put("statistics", "1"); //根据用户筛选区域范围 CtUnitDTO ctUnitDTO = null; if (ObjectUtils.isNotEmpty(userId)) { ctUnitDTO = custClient.getUnitByUserId(userId); } String areaCode = null; //目前没有村居数据,所以单位等级是4的也归集到3里面 if (ObjectUtils.isNotEmpty(ctUnitDTO)) { if (ctUnitDTO.getUnitGrade().equals(1)) { terms.put("queCity", ctUnitDTO.getCity()); } else if (ctUnitDTO.getUnitGrade().equals(2)) { terms.put("queArea", ctUnitDTO.getArea()); } else if (ctUnitDTO.getUnitGrade().equals(3)) { terms.put("queRoad", ctUnitDTO.getRoad()); } else if (ctUnitDTO.getUnitGrade().equals(4)) { terms.put("queVillage", ctUnitDTO.getVillage()); } } //目前没有村居,所以区和街道进来都是按街道展示 String areaType = null; String childAreaType = null; List unitGrades = new ArrayList<>(); List childUnitGrades = new ArrayList<>(); String childUnitGradeStr = null; String unitGradeStr = null; Boolean isLast = false; if (ObjectUtils.isNotEmpty(terms.get("queVillage"))) { terms.remove("queArea"); terms.remove("queCity"); terms.remove("queRoad"); areaType = "4"; childAreaType = "5"; areaCode = terms.get("queVillage") + ""; unitGrades.add(4); childUnitGrades.add(5); childUnitGradeStr = "5"; unitGradeStr = "4"; isLast = true; } else if (ObjectUtils.isNotEmpty(terms.get("queRoad"))) { terms.remove("queArea"); terms.remove("queCity"); areaType = "3"; childAreaType = "4"; areaCode = terms.get("queRoad") + ""; unitGrades.add(3); childUnitGrades.add(4); childUnitGradeStr = "4"; unitGradeStr = "3"; } else if (ObjectUtils.isNotEmpty(terms.get("queArea"))) { terms.remove("queCity"); areaType = "2"; childAreaType = "3"; areaCode = terms.get("queArea") + ""; unitGrades.add(2); childUnitGrades.add(3); childUnitGrades.add(4); childUnitGradeStr = "3,4"; unitGradeStr = "2"; } else { areaType = "1"; childAreaType = "2"; unitGrades.add(1); childUnitGrades.add(2); childUnitGrades.add(3); childUnitGrades.add(4); if (ObjectUtils.isNotEmpty(ctUnitDTO)) { areaCode = ctUnitDTO.getCity(); } else { areaCode = "440100"; } childUnitGradeStr = "2,3,4"; unitGradeStr = "1"; } //基础数据统计 terms.put("areaType", areaType); // 调用统计调解过程的方法 CaseStatisticsBaseDTO caseStatisticsBaseDTO = statisticsProcess(terms); //区域数据统计 List caseStatisticsAreaDTOS = new ArrayList<>(); if (!isLast) { terms.put("areaType", childAreaType); terms.put("unitGrades", childUnitGrades); caseStatisticsAreaDTOS = mapper.statisticsArea(terms); if (ObjectUtils.isEmpty(caseStatisticsAreaDTOS)) { caseStatisticsAreaDTOS = new ArrayList<>(); } else { for (CaseStatisticsAreaDTO caseStatisticsAreaDTO : caseStatisticsAreaDTOS) { caseStatisticsAreaDTO.setAreaType(childAreaType); caseStatisticsAreaDTO.setUnitGrades(childUnitGradeStr); if ("4".equals(childAreaType)) { caseStatisticsAreaDTO.setQueVillage(caseStatisticsAreaDTO.getAreaCode()); } else if ("3".equals(childAreaType)) { caseStatisticsAreaDTO.setQueRoad(caseStatisticsAreaDTO.getAreaCode()); } else if ("2".equals(childAreaType)) { caseStatisticsAreaDTO.setQueArea(caseStatisticsAreaDTO.getAreaCode()); } } } } //本级区数据 terms.put("areaType", areaType); terms.put("unitGrades", unitGrades); List allAreas = mapper.statisticsArea(terms); CaseStatisticsAreaDTO allArea = new CaseStatisticsAreaDTO(); if (ObjectUtils.isNotEmpty(allAreas)) { allArea = allAreas.get(0); } terms.remove("unitGrades"); allArea.setAreaName("本级"); allArea.setAreaCode("0"); allArea.setAreaType(areaType); allArea.setUnitGrades(unitGradeStr); if (ObjectUtils.isNotEmpty(terms.get("queVillage"))) { allArea.setQueVillage(terms.get("queVillage") + ""); } if (ObjectUtils.isNotEmpty(terms.get("queRoad"))) { allArea.setQueRoad(terms.get("queRoad") + ""); } if (ObjectUtils.isNotEmpty(terms.get("queArea"))) { allArea.setQueArea(terms.get("queArea") + ""); } if (ObjectUtils.isNotEmpty(terms.get("queCity"))) { allArea.setQueCity(terms.get("queCity") + ""); } List areaCodeList = new ArrayList<>(); List areaList = new ArrayList<>(); List areaNames = new ArrayList<>();//为兼容白云区数据 Integer areaTotal = allArea.getCaseNum(); for (CaseStatisticsAreaDTO caseStatisticsAreaDTO : caseStatisticsAreaDTOS) { areaNames.add(caseStatisticsAreaDTO.getAreaName()); if (ObjectUtils.isEmpty(caseStatisticsAreaDTO.getAreaCode())) { 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())); allArea.setRejectNum(dellNull(caseStatisticsAreaDTO.getRejectNum()) + dellNull(allArea.getRejectNum())); } else { areaList.add(caseStatisticsAreaDTO); areaCodeList.add(caseStatisticsAreaDTO.getAreaCode()); } areaTotal = areaTotal + caseStatisticsAreaDTO.getCaseNum(); //本及:承办单位是本及和没有承办单位并且没有下级区域编码 // if(ObjectUtils.isEmpty(caseStatisticsAreaDTO.getAreaCode()) || unitGrades.contains(caseStatisticsAreaDTO.getUnitGrade())){ // 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())); // }else{ // areaList.add(caseStatisticsAreaDTO); // areaCodeList.add(caseStatisticsAreaDTO.getAreaCode()); // } } areaList.add(allArea); // if ("1".equals(areaType)) { // Map area = getArea(); // for (String areaName : area.keySet()) { // if (!areaNames.contains(areaName)) { // CaseStatisticsAreaDTO areaChild = new CaseStatisticsAreaDTO(); // areaChild.setAreaCode(area.get(areaName)); // areaChild.setAreaName(areaName); // areaList.add(areaChild); // } // } // } List queArea = listAreaByType(areaCode); log.info("listAreaByType {}", JSON.toJSONString(queArea)); for (QueAreaDTO 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); areaList.add(areaChild); } } if (ObjectUtils.isNotEmpty(areaList)) { sortArea(areaList); } caseStatisticsBaseDTO.setAreaList(areaList); //纠纷类型统计 List caseStatisticsTypeDTOS = mapper.statisticsTypeFirst(terms); if (ObjectUtils.isNotEmpty(caseStatisticsTypeDTOS)) { sortType(caseStatisticsTypeDTOS); } Integer typeTotalNum = 0; Integer otherCaseNum = 0; int i = 1; List typeList = new ArrayList<>(); for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) { typeTotalNum = typeTotalNum + dellNull(caseStatisticsTypeDTO.getCaseNum()); if (i < 6 && !"其他".equals(caseStatisticsTypeDTO.getCaseTypeName())) { typeList.add(caseStatisticsTypeDTO); i++; } else { otherCaseNum = otherCaseNum + dellNull(caseStatisticsTypeDTO.getCaseNum()); } // if (i > 5) { // otherCaseNum = otherCaseNum + dellNull(caseStatisticsTypeDTO.getCaseNum()); // } else { // typeList.add(caseStatisticsTypeDTO); // } } for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : typeList) { caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1)); } if (otherCaseNum > 0) { 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); if (ObjectUtils.isEmpty(oneSource)) { oneSource = new CaseStatisticsSourceDTO(); } oneSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_1.getDes()); terms.put("canal", CaseBaseConstsEnum.CASE_CANAL_2.getIndex()); CaseStatisticsSourceDTO twoSource = mapper.statisticsSource(terms); if (ObjectUtils.isEmpty(twoSource)) { twoSource = new CaseStatisticsSourceDTO(); } twoSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_2.getDes()); terms.put("canal", CaseBaseConstsEnum.CASE_CANAL_3.getIndex()); CaseStatisticsSourceDTO threeSource = mapper.statisticsSource(terms); if (ObjectUtils.isEmpty(threeSource)) { threeSource = new CaseStatisticsSourceDTO(); } terms.put("canal", CaseBaseConstsEnum.CASE_CANAL_4.getIndex()); CaseStatisticsSourceDTO fourSource = mapper.statisticsSource(terms); if (ObjectUtils.isEmpty(fourSource)) { fourSource = new CaseStatisticsSourceDTO(); } //非警务纠纷 terms.put("canalSecond", CaseBaseConstsEnum.CASE_CANAL_SECOND_1.getIndex()); CaseStatisticsSourceDTO oneSecondSource = mapper.statisticsSource(terms); if (ObjectUtils.isEmpty(oneSecondSource)) { oneSecondSource = new CaseStatisticsSourceDTO(); } //12345 terms.put("canalSecond", CaseBaseConstsEnum.CASE_CANAL_SECOND_3.getIndex()); CaseStatisticsSourceDTO twoSecondSource = mapper.statisticsSource(terms); if (ObjectUtils.isEmpty(twoSecondSource)) { twoSecondSource = new CaseStatisticsSourceDTO(); } //网格上报 terms.put("canalSecond", CaseBaseConstsEnum.CASE_CANAL_SECOND_2.getIndex()); CaseStatisticsSourceDTO threeSecondSource = mapper.statisticsSource(terms); if (ObjectUtils.isEmpty(threeSecondSource)) { threeSecondSource = new CaseStatisticsSourceDTO(); } terms.remove("canalSecond"); List caseStatisticsTypeDTOS1 = mapper.countByCanalSecond(terms); if (caseStatisticsTypeDTOS1 != null && caseStatisticsTypeDTOS1.size() > 0) { for (CaseStatisticsTypeDTO item : caseStatisticsTypeDTOS1) { if (CaseBaseConstsEnum.CASE_CANAL_SECOND_1.getIndex().equals(item.getCaseType())) { caseStatisticsBaseDTO.setFjwjfNum(item.getCaseNum()); } else if (CaseBaseConstsEnum.CASE_CANAL_SECOND_3.getIndex().equals(item.getCaseType())) { caseStatisticsBaseDTO.setOttffNum(item.getCaseNum()); } else if (CaseBaseConstsEnum.CASE_CANAL_SECOND_4.getIndex().equals(item.getCaseType())) { caseStatisticsBaseDTO.setRmtjNum(item.getCaseNum()); } else if (CaseBaseConstsEnum.CASE_CANAL_SECOND_5.getIndex().equals(item.getCaseType())) { caseStatisticsBaseDTO.setLdzcNum(item.getCaseNum()); } } } Integer sourceTotalNum = dellNull(oneSource.getCaseNum()) + dellNull(twoSource.getCaseNum()) + dellNull(threeSource.getCaseNum()) + dellNull(fourSource.getCaseNum()); Integer oneTotalNum = dellNull(oneSource.getResolveNum()) + dellNull(oneSource.getUnResolveNum()); Integer twoTotalNum = dellNull(twoSource.getResolveNum()) + dellNull(twoSource.getUnResolveNum()); Integer threeTotalNum = dellNull(threeSource.getResolveNum()) + dellNull(threeSource.getUnResolveNum()); Integer fourTotalNum = dellNull(fourSource.getResolveNum()) + dellNull(fourSource.getUnResolveNum()); oneSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(oneSource.getCaseNum() * 100, sourceTotalNum, 1)); oneSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(oneSource.getResolveNum() * 100, oneTotalNum, 1)); twoSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(twoSource.getCaseNum() * 100, sourceTotalNum, 1)); twoSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(twoSource.getResolveNum() * 100, twoTotalNum, 1)); threeSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_3.getDes()); threeSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(threeSource.getCaseNum() * 100, sourceTotalNum, 1)); threeSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(threeSource.getResolveNum() * 100, threeTotalNum, 1)); fourSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_4.getDes()); fourSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(fourSource.getCaseNum() * 100, sourceTotalNum, 1)); fourSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(fourSource.getResolveNum() * 100, fourTotalNum, 1)); oneSecondSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_SECOND_1.getDes()); oneSecondSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(oneSecondSource.getResolveNum() * 100, oneSecondSource.getCaseNum(), 1)); twoSecondSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_SECOND_3.getDes()); twoSecondSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(twoSecondSource.getResolveNum() * 100, twoSecondSource.getCaseNum(), 1)); threeSecondSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_SECOND_2.getDes()); threeSecondSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(threeSecondSource.getResolveNum() * 100, threeSecondSource.getCaseNum(), 1)); caseStatisticsBaseDTO.setOneSource(oneSource); caseStatisticsBaseDTO.setTwoSource(twoSource); caseStatisticsBaseDTO.setThreeSource(threeSource); caseStatisticsBaseDTO.setFourSource(fourSource); caseStatisticsBaseDTO.setOneSecondSource(oneSecondSource); caseStatisticsBaseDTO.setTwoSecondSource(twoSecondSource); caseStatisticsBaseDTO.setThreeSecondSource(threeSecondSource); //案件集合 // if (ObjectUtils.isEmpty(canal)) { // terms.remove("canal"); // } else { // terms.put("canal", canal); // } // Sort sort = Sort.by(Sort.Direction.DESC, "a.create_time"); // PageRequest pageRequest = PageRequest.of(0, 30, sort); // terms.remove("statistics"); // Page casePageDTOS = pageQueryAll(pageRequest, terms); // if (ObjectUtils.isNotEmpty(casePageDTOS.getContent())) { // caseStatisticsBaseDTO.setCaseList(casePageDTOS.getContent()); // } else { // caseStatisticsBaseDTO.setCaseList(new ArrayList<>()); // } return caseStatisticsBaseDTO; } public List sortType(List 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 Map getArea() { Map map = new HashMap<>(); map.put("越秀区", "2"); map.put("海珠区", "3"); map.put("荔湾区", "4"); map.put("天河区", "5"); map.put("白云区", "6"); map.put("黄埔区", "7"); map.put("花都区", "8"); map.put("番禺区", "9"); map.put("南沙区", "10"); map.put("从化区", "11"); map.put("增城区", "12"); return map; } public List sortArea(List caseStatisticsAreaDTOS) { Map map = getArea(); for (CaseStatisticsAreaDTO caseStatisticsAreaDTO : caseStatisticsAreaDTOS) { log.info("xsd:{}", caseStatisticsAreaDTO); if (caseStatisticsAreaDTO.getAreaCode() == null) { caseStatisticsAreaDTO.setAreaCode("440111-113-001".replace("-", "")); caseStatisticsAreaDTO.setAreaName("江兴社区"); } else { caseStatisticsAreaDTO.setAreaCode(caseStatisticsAreaDTO.getAreaCode().replace("-", "")); } if (map.containsKey(caseStatisticsAreaDTO.getAreaName())) { caseStatisticsAreaDTO.setAreaCode(map.get(caseStatisticsAreaDTO.getAreaName())); } } caseStatisticsAreaDTOS.sort((o1, o2) -> { Long totalScore1 = Long.valueOf(o1.getAreaCode()); Long totalScore2 = Long.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; } /** * 根据不同的等级获取不同区域子集合 */ public List listAreaByType(Object areaCode) { log.info("listAreaByType {},{}", areaCode); String parentId = "440100"; if (ObjectUtils.isNotEmpty(areaCode)) { parentId = String.valueOf(areaCode); } List queAreaDTOS = sysClient.listByParentId(parentId); return queAreaDTOS; } public Page pagePerson(PageRequest page, Map terms, String certiNo) { QueryWrapper personWrapper = new QueryWrapper<>(); personWrapper.select("case_id,certi_no"); personWrapper.eq("certi_no", certiNo); List personList = personService.list(personWrapper); List ids = new ArrayList<>(); if (ObjectUtils.isNotEmpty(personList)) { for (CasePerson casePerson : personList) { ids.add(casePerson.getCaseId()); } } QueryWrapper agentWrapper = new QueryWrapper<>(); agentWrapper.select("case_id,certi_no"); agentWrapper.in("certi_no", certiNo); List agentList = agentService.list(agentWrapper); if (ObjectUtils.isNotEmpty(agentList)) { for (CaseAgent caseAgent : agentList) { ids.add(caseAgent.getCaseId()); } } if (ObjectUtils.isEmpty(ids)) { return new PageImpl(new ArrayList<>(), page, 0); } terms.put("ids", ids); long total = mapper.countTermsAll(terms); List content = mapper.pageTermsAll(page, terms); if (ObjectUtils.isNotEmpty(content)) { for (CasePageDTO casePageDTO : content) { if (ObjectUtils.isNotEmpty(casePageDTO.getQueRoadName())) { casePageDTO.setAreaName(casePageDTO.getQueRoadName()); } else if (ObjectUtils.isNotEmpty(casePageDTO.getAreaName())) { casePageDTO.setAreaName(casePageDTO.getAreaName()); } else if (ObjectUtils.isNotEmpty(casePageDTO.getQueCityName())) { casePageDTO.setAreaName(casePageDTO.getQueCityName()); } if (ObjectUtils.isNotEmpty(casePageDTO.getCaseLevel())) { switch (casePageDTO.getCaseLevel()) { case "1": casePageDTO.setCaseLevel("一级"); break; case "2": casePageDTO.setCaseLevel("二级"); break; case "3": casePageDTO.setCaseLevel("三级"); break; } } } } return new PageImpl(content, page, total); } public CasePersonCountBO countPerson(String certiNo) { CasePersonCountBO casePersonCountBO = new CasePersonCountBO(); Integer plaintiffNum = 0;//申请方当事人数 Integer defendantNum = 0;//被申请方当事人数 Integer pagentsNum = 0;//申请方代理人数 Integer dagentsNum = 0;//被申请方代理人数 List personList = personService.listByCertiNo(certiNo); List ids = new ArrayList<>(); if (ObjectUtils.isNotEmpty(personList)) { for (CasePerson casePerson : personList) { ids.add(casePerson.getCaseId()); if (CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())) { plaintiffNum++; } if (CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())) { defendantNum++; } } } List agentList = agentService.listByCertiNo(certiNo); if (ObjectUtils.isNotEmpty(agentList)) { for (CaseAgent caseAgent : agentList) { ids.add(caseAgent.getCaseId()); if (CaseBaseConstsEnum.PERSON_TYPE_3.getIndex().equals(caseAgent.getPerType())) { pagentsNum++; } if (CaseBaseConstsEnum.PERSON_TYPE_4.getIndex().equals(caseAgent.getPerType())) { dagentsNum++; } } } casePersonCountBO.setDagentsNum(dagentsNum); casePersonCountBO.setPagentsNum(pagentsNum); casePersonCountBO.setDefendantNum(defendantNum); casePersonCountBO.setPlaintiffNum(plaintiffNum); casePersonCountBO.setTotalNum(ids.size()); casePersonCountBO.setZzzxNum(ids.size()); return casePersonCountBO; } public List statisticsCaseType(Map terms, String userId) { //根据用户筛选区域范围 CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId); if (ctUnitDTO.getUnitGrade().equals(2)) { terms.put("queArea", ctUnitDTO.getArea()); } else if (ctUnitDTO.getUnitGrade().equals(3) || ctUnitDTO.getUnitGrade().equals(4)) { terms.put("queRoad", ctUnitDTO.getRoad()); } if (ObjectUtils.isEmpty(terms.get("caseTypeFirst"))) { //筛选一级为其他的纠纷类型 List caseStatisticsTypeDTOS = mapper.statisticsTypeFirst(terms); if (ObjectUtils.isNotEmpty(caseStatisticsTypeDTOS)) { sortType(caseStatisticsTypeDTOS); } int i = 1; List caseTypeList = new ArrayList<>(); for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) { if (i < 6 && !"其他".equals(caseStatisticsTypeDTO.getCaseTypeName())) { i++; } else { caseTypeList.add(caseStatisticsTypeDTO.getCaseType()); } // if (i > 5) { // caseTypeList.add(caseStatisticsTypeDTO.getCaseType()); // } // i++; } if (ObjectUtils.isEmpty(caseTypeList)) { return new ArrayList<>(); } terms.put("caseTypeFirstList", caseTypeList); } List caseStatisticsTypeDTOS = mapper.statisticsType(terms); if (ObjectUtils.isNotEmpty(caseStatisticsTypeDTOS)) { sortType(caseStatisticsTypeDTOS); } Integer typeTotalNum = 0; for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) { typeTotalNum = typeTotalNum + dellNull(caseStatisticsTypeDTO.getCaseNum()); } for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) { caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1)); } return caseStatisticsTypeDTOS; } public CaseOverviewDTO overview(Map terms) { CaseOverviewDTO caseOverviewDTO = new CaseOverviewDTO(); List accList = mapper.overviewAcc(terms); List sourceList = mapper.overviewSource(terms); List flowList = mapper.overviewFlow(terms); List reusltList = mapper.overviewResult(terms); Map accMap = new HashMap<>(); Map flowMap = new HashMap<>(); Map sourceMap = new HashMap<>(); Map reusltMap = new HashMap<>(); //将数据按区域分类 if (ObjectUtils.isNotEmpty(accList)) { for (CaseOverviewDetailDTO caseOverviewDetailDTO : accList) { if (ObjectUtils.isNotEmpty(caseOverviewDetailDTO.getAreaCode()) && !"1".equals(caseOverviewDetailDTO.getAreaCode())) { accMap.put(caseOverviewDetailDTO.getAreaCode(), caseOverviewDetailDTO); } else { if (!accMap.containsKey("1")) { accMap.put("1", caseOverviewDetailDTO); } else { CaseOverviewDetailDTO caseOverviewDetailDTO1 = accMap.get("1"); caseOverviewDetailDTO1.setAccAllNum(caseOverviewDetailDTO1.getAccAllNum() + caseOverviewDetailDTO.getAccAllNum()); caseOverviewDetailDTO1.setAccLoginBmNum(caseOverviewDetailDTO1.getAccLoginBmNum() + caseOverviewDetailDTO.getAccLoginBmNum()); caseOverviewDetailDTO1.setAccLoginZzNum(caseOverviewDetailDTO1.getAccLoginZzNum() + caseOverviewDetailDTO.getAccLoginZzNum()); caseOverviewDetailDTO1.setAccAddNum(caseOverviewDetailDTO1.getAccAddNum() + caseOverviewDetailDTO.getAccAddNum()); accMap.put("1", caseOverviewDetailDTO1); } } } } if (ObjectUtils.isNotEmpty(flowList)) { for (CaseOverviewDetailDTO caseOverviewDetailDTO : flowList) { if (ObjectUtils.isNotEmpty(caseOverviewDetailDTO.getAreaCode()) && !"1".equals(caseOverviewDetailDTO.getAreaCode())) { flowMap.put(caseOverviewDetailDTO.getAreaCode(), caseOverviewDetailDTO); } else { if (!flowMap.containsKey("1")) { flowMap.put("1", caseOverviewDetailDTO); } else { CaseOverviewDetailDTO caseOverviewDetailDTO1 = flowMap.get("1"); caseOverviewDetailDTO1.setFlowAllNum(caseOverviewDetailDTO1.getFlowAllNum() + caseOverviewDetailDTO.getFlowAllNum()); caseOverviewDetailDTO1.setFlowZxslNum(caseOverviewDetailDTO1.getFlowZxslNum() + caseOverviewDetailDTO.getFlowZxslNum()); caseOverviewDetailDTO1.setFlowLzslNum(caseOverviewDetailDTO1.getFlowLzslNum() + caseOverviewDetailDTO.getFlowLzslNum()); caseOverviewDetailDTO1.setFlowLzzNum(caseOverviewDetailDTO1.getFlowLzzNum() + caseOverviewDetailDTO.getFlowLzzNum()); caseOverviewDetailDTO1.setFlowByslNum(caseOverviewDetailDTO1.getFlowByslNum() + caseOverviewDetailDTO.getFlowByslNum()); flowMap.put("1", caseOverviewDetailDTO1); } } } } if (ObjectUtils.isNotEmpty(sourceList)) { for (CaseOverviewDetailDTO caseOverviewDetailDTO : sourceList) { if (ObjectUtils.isNotEmpty(caseOverviewDetailDTO.getAreaCode()) && !"1".equals(caseOverviewDetailDTO.getAreaCode())) { sourceMap.put(caseOverviewDetailDTO.getAreaCode(), caseOverviewDetailDTO); } else { if (!sourceMap.containsKey("1")) { sourceMap.put("1", caseOverviewDetailDTO); } else { CaseOverviewDetailDTO caseOverviewDetailDTO1 = sourceMap.get("1"); caseOverviewDetailDTO1.setCaseAllNum(caseOverviewDetailDTO1.getCaseAllNum() + caseOverviewDetailDTO.getCaseAllNum()); caseOverviewDetailDTO1.setCaseXsNum(caseOverviewDetailDTO1.getCaseXsNum() + caseOverviewDetailDTO.getCaseXsNum()); caseOverviewDetailDTO1.setCaseDtNum(caseOverviewDetailDTO1.getCaseDtNum() + caseOverviewDetailDTO.getCaseDtNum()); caseOverviewDetailDTO1.setCaseZxpcNum(caseOverviewDetailDTO1.getCaseZxpcNum() + caseOverviewDetailDTO.getCaseZxpcNum()); caseOverviewDetailDTO1.setCaseAjdrNum(caseOverviewDetailDTO1.getCaseAjdrNum() + caseOverviewDetailDTO.getCaseAjdrNum()); sourceMap.put("1", caseOverviewDetailDTO1); } } } } if (ObjectUtils.isNotEmpty(reusltList)) { for (CaseOverviewDetailDTO caseOverviewDetailDTO : reusltList) { if (ObjectUtils.isNotEmpty(caseOverviewDetailDTO.getAreaCode()) && !"1".equals(caseOverviewDetailDTO.getAreaCode())) { reusltMap.put(caseOverviewDetailDTO.getAreaCode(), caseOverviewDetailDTO); } else { if (!reusltMap.containsKey("1")) { reusltMap.put("1", caseOverviewDetailDTO); } else { CaseOverviewDetailDTO caseOverviewDetailDTO1 = reusltMap.get("1"); caseOverviewDetailDTO1.setCaseAllNum(caseOverviewDetailDTO1.getCaseAllNum() + caseOverviewDetailDTO.getCaseAllNum()); caseOverviewDetailDTO1.setCaseXsNum(caseOverviewDetailDTO1.getCaseXsNum() + caseOverviewDetailDTO.getCaseXsNum()); caseOverviewDetailDTO1.setCaseDtNum(caseOverviewDetailDTO1.getCaseDtNum() + caseOverviewDetailDTO.getCaseDtNum()); caseOverviewDetailDTO1.setCaseZxpcNum(caseOverviewDetailDTO1.getCaseZxpcNum() + caseOverviewDetailDTO.getCaseZxpcNum()); caseOverviewDetailDTO1.setCaseAjdrNum(caseOverviewDetailDTO1.getCaseAjdrNum() + caseOverviewDetailDTO.getCaseAjdrNum()); reusltMap.put("1", caseOverviewDetailDTO1); } } } } List queArea = listAreaByType(terms.get("areaCode")); QueAreaDTO queAreaDTO = new QueAreaDTO(); queAreaDTO.setAreaCode("1"); queAreaDTO.setAreaName("本级"); queArea.add(queAreaDTO); // List areaNames = queArea.stream().map(QueAreaDTO::getAreaName).collect(Collectors.toList()); // if("2".equals(terms.get("areaType"))){ // //表里面目前只有白云区,做兼容 // Map area = getArea(); // for (String areaName : area.keySet()) { // if (!areaNames.contains(areaName)) { // QueAreaDTO areaChild = new QueAreaDTO(); // areaChild.setAreaCode(area.get(areaName)); // areaChild.setAreaName(areaName); // queArea.add(areaChild); // } // } // } log.info("listAreaByType {}", JSON.toJSONString(queArea)); List childList = new ArrayList<>(); //将分类好的数据放到区域中 for (QueAreaDTO caseAreaDTO : queArea) { CaseOverviewDetailDTO caseOverviewDetailDTO = new CaseOverviewDetailDTO(); caseOverviewDetailDTO.setAreaName(caseAreaDTO.getAreaName()); caseOverviewDetailDTO.setAreaCode(caseAreaDTO.getAreaCode()); Integer sortNum = 0; if (accMap.containsKey(caseAreaDTO.getAreaCode())) { CaseOverviewDetailDTO caseOverviewDetailDTO1 = accMap.get(caseAreaDTO.getAreaCode()); caseOverviewDetailDTO.setAccAllNum(caseOverviewDetailDTO1.getAccAllNum()); caseOverviewDetailDTO.setAccLoginBmNum(caseOverviewDetailDTO1.getAccLoginBmNum()); caseOverviewDetailDTO.setAccLoginZzNum(caseOverviewDetailDTO1.getAccLoginZzNum()); caseOverviewDetailDTO.setAccAddNum(caseOverviewDetailDTO1.getAccAddNum()); sortNum = sortNum + caseOverviewDetailDTO1.getAccLoginBmNum() + caseOverviewDetailDTO1.getAccLoginZzNum() + caseOverviewDetailDTO1.getAccAddNum(); } if (flowMap.containsKey(caseAreaDTO.getAreaCode())) { CaseOverviewDetailDTO caseOverviewDetailDTO1 = flowMap.get(caseAreaDTO.getAreaCode()); caseOverviewDetailDTO.setFlowAllNum(caseOverviewDetailDTO1.getFlowAllNum()); caseOverviewDetailDTO.setFlowZxslNum(caseOverviewDetailDTO1.getFlowZxslNum()); caseOverviewDetailDTO.setFlowLzslNum(caseOverviewDetailDTO1.getFlowLzslNum()); caseOverviewDetailDTO.setFlowLzzNum(caseOverviewDetailDTO1.getFlowLzzNum()); caseOverviewDetailDTO.setFlowByslNum(caseOverviewDetailDTO1.getFlowByslNum()); sortNum = sortNum + caseOverviewDetailDTO1.getFlowAllNum(); } if (sourceMap.containsKey(caseAreaDTO.getAreaCode())) { CaseOverviewDetailDTO caseOverviewDetailDTO1 = sourceMap.get(caseAreaDTO.getAreaCode()); caseOverviewDetailDTO.setCaseAllNum(caseOverviewDetailDTO1.getCaseAllNum()); caseOverviewDetailDTO.setCaseXsNum(caseOverviewDetailDTO1.getCaseXsNum()); caseOverviewDetailDTO.setCaseDtNum(caseOverviewDetailDTO1.getCaseDtNum()); caseOverviewDetailDTO.setCaseZxpcNum(caseOverviewDetailDTO1.getCaseZxpcNum()); caseOverviewDetailDTO.setCaseAjdrNum(caseOverviewDetailDTO1.getCaseAjdrNum()); sortNum = sortNum + caseOverviewDetailDTO1.getCaseAllNum(); } if (reusltMap.containsKey(caseAreaDTO.getAreaCode())) { CaseOverviewDetailDTO caseOverviewDetailDTO1 = reusltMap.get(caseAreaDTO.getAreaCode()); caseOverviewDetailDTO.setSourceHjcgNum(caseOverviewDetailDTO1.getSourceHjcgNum()); caseOverviewDetailDTO.setSourceHjbcgNum(caseOverviewDetailDTO1.getSourceHjbcgNum()); caseOverviewDetailDTO.setSourceHjzNum(caseOverviewDetailDTO1.getSourceHjzNum()); caseOverviewDetailDTO.setSourceByslNum(caseOverviewDetailDTO1.getSourceByslNum()); } if ("1".equals(caseOverviewDetailDTO.getAreaCode())) { sortNum = 9999999; } caseOverviewDetailDTO.setSortNum(sortNum); childList.add(caseOverviewDetailDTO); } CaseOverviewDetailDTO parent = new CaseOverviewDetailDTO(); parent.setAreaName("合计"); for (CaseOverviewDetailDTO caseOverviewDetailDTO : childList) { parent.setAccAllNum(parent.getAccAllNum() + caseOverviewDetailDTO.getAccAllNum()); parent.setAccLoginBmNum(parent.getAccLoginBmNum() + caseOverviewDetailDTO.getAccLoginBmNum()); parent.setAccLoginZzNum(parent.getAccLoginZzNum() + caseOverviewDetailDTO.getAccLoginZzNum()); parent.setAccAddNum(parent.getAccAddNum() + caseOverviewDetailDTO.getAccAddNum()); parent.setCaseAllNum(parent.getCaseAllNum() + caseOverviewDetailDTO.getCaseAllNum()); parent.setCaseXsNum(parent.getCaseXsNum() + caseOverviewDetailDTO.getCaseXsNum()); parent.setCaseDtNum(parent.getCaseDtNum() + caseOverviewDetailDTO.getCaseDtNum()); parent.setCaseZxpcNum(parent.getCaseZxpcNum() + caseOverviewDetailDTO.getCaseZxpcNum()); parent.setCaseAjdrNum(parent.getCaseAjdrNum() + caseOverviewDetailDTO.getCaseAjdrNum()); parent.setFlowAllNum(parent.getFlowAllNum() + caseOverviewDetailDTO.getFlowAllNum()); parent.setFlowBjNum(parent.getFlowBjNum() + caseOverviewDetailDTO.getFlowBjNum()); parent.setFlowHtNum(parent.getFlowHtNum() + caseOverviewDetailDTO.getFlowHtNum()); parent.setFlowJbNum(parent.getFlowJbNum() + caseOverviewDetailDTO.getFlowJbNum()); parent.setFlowSlNum(parent.getFlowSlNum() + caseOverviewDetailDTO.getFlowSlNum()); parent.setFlowSbNum(parent.getFlowSbNum() + caseOverviewDetailDTO.getFlowSbNum()); parent.setFlowZxslNum(parent.getFlowZxslNum() + caseOverviewDetailDTO.getFlowZxslNum()); parent.setFlowLzslNum(parent.getFlowLzslNum() + caseOverviewDetailDTO.getFlowLzslNum()); parent.setFlowLzzNum(parent.getFlowLzzNum() + caseOverviewDetailDTO.getFlowLzzNum()); parent.setFlowByslNum(parent.getFlowByslNum() + caseOverviewDetailDTO.getFlowByslNum()); parent.setSourceHjcgNum(parent.getSourceHjcgNum() + caseOverviewDetailDTO.getSourceHjcgNum()); parent.setSourceHjbcgNum(parent.getSourceHjbcgNum() + caseOverviewDetailDTO.getSourceHjbcgNum()); parent.setSourceHjzNum(parent.getSourceHjzNum() + caseOverviewDetailDTO.getSourceHjzNum()); parent.setSourceByslNum(parent.getSourceByslNum() + caseOverviewDetailDTO.getSourceByslNum()); } sortAreaOverview(childList); int i = 1; for (CaseOverviewDetailDTO caseOverviewDetailDTO : childList) { caseOverviewDetailDTO.setSort(i++); } caseOverviewDTO.setChildList(childList); caseOverviewDTO.setParent(parent); return caseOverviewDTO; } public List sortAreaOverview(List caseOverviewDetailDTOs) { Map map = getArea(); for (CaseOverviewDetailDTO caseOverviewDetailDTO : caseOverviewDetailDTOs) { log.info("xsd:{}", caseOverviewDetailDTO); if (caseOverviewDetailDTO.getAreaCode() == null) { caseOverviewDetailDTO.setAreaCode("440111-113-001".replace("-", "")); caseOverviewDetailDTO.setAreaName("江兴社区"); } else { caseOverviewDetailDTO.setAreaCode(caseOverviewDetailDTO.getAreaCode().replace("-", "")); } if (map.containsKey(caseOverviewDetailDTO.getAreaName())) { caseOverviewDetailDTO.setAreaCode(map.get(caseOverviewDetailDTO.getAreaName())); caseOverviewDetailDTO.setSortNum(Integer.valueOf(caseOverviewDetailDTO.getAreaCode())); } } caseOverviewDetailDTOs.sort((o1, o2) -> { Long totalScore1 = Long.valueOf(o1.getSortNum()); Long totalScore2 = Long.valueOf(o2.getSortNum()); if (totalScore1 > totalScore2) { return 1; } else if (totalScore1.equals(totalScore2)) { return 0; } else { return -1; } }); return caseOverviewDetailDTOs; } public CaseStatisticsBaseDTO ledger(Map terms, String userId) throws IOException { // 备份原始的类型筛选条件,用于后续恢复 Map originalTypeTerms = new HashMap<>(); if (terms.containsKey("canal")) { originalTypeTerms.put("canal", terms.get("canal")); } if (terms.containsKey("canalSecond")) { originalTypeTerms.put("canalSecond", terms.get("canalSecond")); } if (terms.containsKey("canalList")) { originalTypeTerms.put("canalList", terms.get("canalList")); } if (terms.containsKey("canalSecondNot")) { originalTypeTerms.put("canalSecondNot", terms.get("canalSecondNot")); } if (terms.containsKey("canalSecondAll")) { originalTypeTerms.put("canalSecondAll", terms.get("canalSecondAll")); } // 临时移除类型筛选条件,以便 statistics 获取全量数据 terms.remove("canal"); terms.remove("canalSecond"); terms.remove("canalList"); terms.remove("canalSecondNot"); terms.remove("canalSecondAll"); // 获取全量基础统计数据 CaseStatisticsBaseDTO statistics = statistics(terms, userId); terms.put("statistics", "1"); //根据用户筛选区域范围 CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId); //目前没有村居数据,所以单位等级是4的也归集到3里面 String areaType = null; terms.remove("unitGrade"); terms.remove("canal"); if (ctUnitDTO.getUnitGrade().equals(1)) { terms.put("queCity", ctUnitDTO.getCity()); } else if (ctUnitDTO.getUnitGrade().equals(2)) { terms.put("queArea", ctUnitDTO.getArea()); } else if (ctUnitDTO.getUnitGrade().equals(3)) { terms.put("queRoad", ctUnitDTO.getRoad()); } else if (ctUnitDTO.getUnitGrade().equals(4)) { terms.put("queVillage", ctUnitDTO.getRoad()); } if (ObjectUtils.isNotEmpty(terms.get("queVillage"))) { terms.remove("queArea"); terms.remove("queCity"); terms.remove("queRoad"); areaType = "4"; } else if (ObjectUtils.isNotEmpty(terms.get("queRoad"))) { terms.remove("queArea"); terms.remove("queCity"); areaType = "3"; } else if (ObjectUtils.isNotEmpty(terms.get("queArea"))) { terms.remove("queCity"); areaType = "2"; } else { areaType = "1"; } //基础数据统计 terms.remove("canalSecond"); terms.remove("canal"); terms.put("areaType", areaType); terms.put("canalList", Arrays.asList("22_00001-1", "22_00001-2", "22_00001-3")); CaseStatisticsBaseDTO caseStatisticsBaseDTO1 = mapper.statisticsBase(terms); statistics.setSysNum(caseStatisticsBaseDTO1.getTotalNum()); terms.remove("canalList"); terms.put("canal", "22_00001-4"); terms.put("canalSecond", "22_00003-3"); CaseStatisticsBaseDTO caseStatisticsBaseDTO2 = mapper.statisticsBase(terms); statistics.setOttffNum(caseStatisticsBaseDTO2.getTotalNum()); terms.put("canalSecond", "22_00003-4"); CaseStatisticsBaseDTO caseStatisticsBaseDTO3 = mapper.statisticsBase(terms); statistics.setRmtjNum(caseStatisticsBaseDTO3.getTotalNum()); terms.put("canalSecond", "22_00003-6"); CaseStatisticsBaseDTO caseStatisticsBaseDTO4 = mapper.statisticsBase(terms); statistics.setXfNum(caseStatisticsBaseDTO4.getTotalNum()); terms.put("canalSecond", "22_00003-5"); CaseStatisticsBaseDTO caseStatisticsBaseDTO5 = mapper.statisticsBase(terms); statistics.setLdzcNum(caseStatisticsBaseDTO5.getTotalNum()); terms.put("canalSecond", "22_00003-1"); CaseStatisticsBaseDTO caseStatisticsBaseDTO6 = mapper.statisticsBase(terms); statistics.setFjwjfNum(caseStatisticsBaseDTO6.getTotalNum()); // 重新计算纠纷类型统计,基于用户选择的类型 terms.remove("canalSecond"); terms.remove("canal"); terms.remove("canalList"); terms.remove("canalSecondNot"); terms.remove("canalSecondAll"); // 恢复所有原始类型筛选条件进行纠纷类型统计 for (String key : originalTypeTerms.keySet()) { terms.put(key, originalTypeTerms.get(key)); } // 调用统计调解过程的方法 CaseStatisticsBaseDTO processStats = statisticsProcess(terms); // 将调解过程统计数据合并到统计结果中 statistics.setTotalNum(processStats.getTotalNum()); statistics.setRejectNum(processStats.getRejectNum()); statistics.setProcessNum(processStats.getProcessNum()); statistics.setFinishNum(processStats.getFinishNum()); statistics.setFailNum(processStats.getFailNum()); statistics.setRejectRate(processStats.getRejectRate()); statistics.setProcessRate(processStats.getProcessRate()); statistics.setFinishRate(processStats.getFinishRate()); statistics.setFailRate(processStats.getFailRate()); // 重新获取纠纷类型统计(基于完整的选择类型条件) List caseStatisticsTypeDTOS = mapper.statisticsTypeFirst(terms); if (ObjectUtils.isNotEmpty(caseStatisticsTypeDTOS)) { sortType(caseStatisticsTypeDTOS); } Integer typeTotalNum = 0; Integer otherCaseNum = 0; int i = 1; List typeList = new ArrayList<>(); for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) { typeTotalNum = typeTotalNum + dellNull(caseStatisticsTypeDTO.getCaseNum()); if (i < 6 && !"其他".equals(caseStatisticsTypeDTO.getCaseTypeName())) { typeList.add(caseStatisticsTypeDTO); i++; } else { otherCaseNum = otherCaseNum + dellNull(caseStatisticsTypeDTO.getCaseNum()); } } for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : typeList) { caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1)); } if (otherCaseNum > 0) { CaseStatisticsTypeDTO caseStatisticsTypeDTO = new CaseStatisticsTypeDTO(); caseStatisticsTypeDTO.setCaseTypeName("其他"); caseStatisticsTypeDTO.setCaseNum(otherCaseNum); caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1)); typeList.add(caseStatisticsTypeDTO); } statistics.setTypeList(typeList); // 根据原始类型筛选条件计算总数和比率 // 注意:比率计算应该始终基于所有类型的总数,而不是选择的特定类型数量 Integer allNum = statistics.getSysNum() + statistics.getOttffNum() + statistics.getRmtjNum() + statistics.getXfNum() + statistics.getLdzcNum() + statistics.getFjwjfNum(); statistics.setSysRate(BigDecimalUtil.integerDivideDelZero(statistics.getSysNum() * 100, allNum, 1)); statistics.setOttffRate(BigDecimalUtil.integerDivideDelZero(statistics.getOttffNum() * 100, allNum, 1)); statistics.setRmtjRate(BigDecimalUtil.integerDivideDelZero(statistics.getRmtjNum() * 100, allNum, 1)); statistics.setXfRate(BigDecimalUtil.integerDivideDelZero(statistics.getXfNum() * 100, allNum, 1)); statistics.setLdzcRate(BigDecimalUtil.integerDivideDelZero(statistics.getLdzcNum() * 100, allNum, 1)); statistics.setFjwjfRate(BigDecimalUtil.integerDivideDelZero(statistics.getFjwjfNum() * 100, allNum, 1)); statistics.setAllNum(allNum); // 重新计算地区统计(areaList),基于用户选择的类型 // 清除之前的筛选条件 terms.remove("canal"); terms.remove("canalSecond"); terms.remove("canalList"); terms.remove("canalSecondNot"); terms.remove("canalSecondAll"); // 恢复所有原始类型筛选条件进行地区统计 for (String key : originalTypeTerms.keySet()) { terms.put(key, originalTypeTerms.get(key)); } // 从原有逻辑中获取区域相关变量 String childAreaType = null; List childUnitGrades = new ArrayList<>(); String childUnitGradeStr = null; String unitGradeStr = null; Boolean isLast = false; List unitGrades = new ArrayList<>(); if (ObjectUtils.isNotEmpty(terms.get("queVillage"))) { childAreaType = "5"; childUnitGrades.add(5); childUnitGradeStr = "5"; unitGradeStr = "4"; unitGrades.add(4); isLast = true; } else if (ObjectUtils.isNotEmpty(terms.get("queRoad"))) { childAreaType = "4"; childUnitGrades.add(4); childUnitGradeStr = "4"; unitGradeStr = "3"; unitGrades.add(3); } else if (ObjectUtils.isNotEmpty(terms.get("queArea"))) { childAreaType = "3"; childUnitGrades.add(3); childUnitGrades.add(4); childUnitGradeStr = "3,4"; unitGradeStr = "2"; unitGrades.add(2); } else { childAreaType = "2"; childUnitGrades.add(2); childUnitGrades.add(3); childUnitGrades.add(4); childUnitGradeStr = "2,3,4"; unitGradeStr = "1"; unitGrades.add(1); } // 重新计算地区统计 List areaStatistics = new ArrayList<>(); if (!isLast) { terms.put("areaType", childAreaType); terms.put("unitGrades", childUnitGrades); areaStatistics = mapper.statisticsArea(terms); if (ObjectUtils.isEmpty(areaStatistics)) { areaStatistics = new ArrayList<>(); } else { for (CaseStatisticsAreaDTO areaDTO : areaStatistics) { areaDTO.setAreaType(childAreaType); areaDTO.setUnitGrades(childUnitGradeStr); if ("4".equals(childAreaType)) { areaDTO.setQueVillage(areaDTO.getAreaCode()); } else if ("3".equals(childAreaType)) { areaDTO.setQueRoad(areaDTO.getAreaCode()); } else if ("2".equals(childAreaType)) { areaDTO.setQueArea(areaDTO.getAreaCode()); } } } } // 本级区数据 terms.put("areaType", areaType); terms.put("unitGrades", unitGrades); List allAreas = mapper.statisticsArea(terms); CaseStatisticsAreaDTO allArea = new CaseStatisticsAreaDTO(); if (ObjectUtils.isNotEmpty(allAreas)) { allArea = allAreas.get(0); } terms.remove("unitGrades"); allArea.setAreaName("本级"); allArea.setAreaCode("0"); allArea.setAreaType(areaType); allArea.setUnitGrades(unitGradeStr); if (ObjectUtils.isNotEmpty(terms.get("queVillage"))) { allArea.setQueVillage(terms.get("queVillage") + ""); } if (ObjectUtils.isNotEmpty(terms.get("queRoad"))) { allArea.setQueRoad(terms.get("queRoad") + ""); } if (ObjectUtils.isNotEmpty(terms.get("queArea"))) { allArea.setQueArea(terms.get("queArea") + ""); } if (ObjectUtils.isNotEmpty(terms.get("queCity"))) { allArea.setQueCity(terms.get("queCity") + ""); } List areaCodeList = new ArrayList<>(); List areaList = new ArrayList<>(); for (CaseStatisticsAreaDTO areaDTO : areaStatistics) { if (ObjectUtils.isEmpty(areaDTO.getAreaCode())) { allArea.setCaseNum(dellNull(areaDTO.getCaseNum()) + dellNull(allArea.getCaseNum())); allArea.setResolveNum(dellNull(areaDTO.getResolveNum()) + dellNull(allArea.getResolveNum())); allArea.setUnResolveNum(dellNull(areaDTO.getUnResolveNum()) + dellNull(allArea.getUnResolveNum())); allArea.setResolveingNum(dellNull(areaDTO.getResolveingNum()) + dellNull(allArea.getResolveingNum())); allArea.setRejectNum(dellNull(areaDTO.getRejectNum()) + dellNull(allArea.getRejectNum())); } else { areaList.add(areaDTO); areaCodeList.add(areaDTO.getAreaCode()); } } areaList.add(allArea); // 添加没有数据的区域(数量为0) String areaCode = null; if (ObjectUtils.isNotEmpty(terms.get("queVillage"))) { areaCode = terms.get("queVillage") + ""; } else if (ObjectUtils.isNotEmpty(terms.get("queRoad"))) { areaCode = terms.get("queRoad") + ""; } else if (ObjectUtils.isNotEmpty(terms.get("queArea"))) { areaCode = terms.get("queArea") + ""; } else { areaCode = terms.get("queCity") != null ? terms.get("queCity") + "" : "440100"; } List queArea = listAreaByType(areaCode); for (QueAreaDTO 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); areaList.add(areaChild); } } if (ObjectUtils.isNotEmpty(areaList)) { sortArea(areaList); } // 更新statistics中的areaList statistics.setAreaList(areaList); return statistics; } // public CaseStatisticsBaseDTO ledger(Map terms, String userId) throws IOException { // CaseStatisticsBaseDTO statistics = statistics(terms, userId); // // terms.put("statistics", "1"); // //根据用户筛选区域范围 // CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId); // //目前没有村居数据,所以单位等级是4的也归集到3里面 // String areaType = null; // terms.remove("unitGrade"); // terms.remove("canal"); // if (ctUnitDTO.getUnitGrade().equals(1)) { // terms.put("queCity", ctUnitDTO.getCity()); // } else if (ctUnitDTO.getUnitGrade().equals(2)) { // terms.put("queArea", ctUnitDTO.getArea()); // } else if (ctUnitDTO.getUnitGrade().equals(3)) { // terms.put("queRoad", ctUnitDTO.getRoad()); // } else if (ctUnitDTO.getUnitGrade().equals(4)) { // terms.put("queVillage", ctUnitDTO.getRoad()); // } // if (ObjectUtils.isNotEmpty(terms.get("queVillage"))) { // terms.remove("queArea"); // terms.remove("queCity"); // terms.remove("queRoad"); // areaType = "4"; // } else if (ObjectUtils.isNotEmpty(terms.get("queRoad"))) { // terms.remove("queArea"); // terms.remove("queCity"); // areaType = "3"; // } else if (ObjectUtils.isNotEmpty(terms.get("queArea"))) { // terms.remove("queCity"); // areaType = "2"; // } else { // areaType = "1"; // } // //基础数据统计 // terms.remove("canalSecond"); // terms.remove("canal"); // terms.put("areaType", areaType); // terms.put("canalList", Arrays.asList("22_00001-1", "22_00001-2", "22_00001-3")); // CaseStatisticsBaseDTO caseStatisticsBaseDTO1 = mapper.statisticsBase(terms); // statistics.setSysNum(caseStatisticsBaseDTO1.getTotalNum()); // terms.remove("canalList"); // terms.put("canal", "22_00001-4"); // terms.put("canalSecond", "22_00003-3"); // CaseStatisticsBaseDTO caseStatisticsBaseDTO2 = mapper.statisticsBase(terms); // statistics.setOttffNum(caseStatisticsBaseDTO2.getTotalNum()); // terms.put("canalSecond", "22_00003-4"); // CaseStatisticsBaseDTO caseStatisticsBaseDTO3 = mapper.statisticsBase(terms); // statistics.setRmtjNum(caseStatisticsBaseDTO3.getTotalNum()); // terms.put("canalSecond", "22_00003-6"); // CaseStatisticsBaseDTO caseStatisticsBaseDTO4 = mapper.statisticsBase(terms); // statistics.setXfNum(caseStatisticsBaseDTO4.getTotalNum()); // terms.put("canalSecond", "22_00003-5"); // CaseStatisticsBaseDTO caseStatisticsBaseDTO5 = mapper.statisticsBase(terms); // statistics.setLdzcNum(caseStatisticsBaseDTO5.getTotalNum()); // terms.put("canalSecond", "22_00003-1"); // CaseStatisticsBaseDTO caseStatisticsBaseDTO6 = mapper.statisticsBase(terms); // statistics.setFjwjfNum(caseStatisticsBaseDTO6.getTotalNum()); // // Integer allNum = statistics.getSysNum() + statistics.getOttffNum() + statistics.getRmtjNum() + statistics.getXfNum() + statistics.getLdzcNum() + statistics.getFjwjfNum(); // statistics.setSysRate(BigDecimalUtil.integerDivideDelZero(statistics.getSysNum() * 100, allNum, 1)); // statistics.setOttffRate(BigDecimalUtil.integerDivideDelZero(statistics.getOttffNum() * 100, allNum, 1)); // statistics.setRmtjRate(BigDecimalUtil.integerDivideDelZero(statistics.getRmtjNum() * 100, allNum, 1)); // statistics.setXfRate(BigDecimalUtil.integerDivideDelZero(statistics.getXfNum() * 100, allNum, 1)); // statistics.setLdzcRate(BigDecimalUtil.integerDivideDelZero(statistics.getLdzcNum() * 100, allNum, 1)); // statistics.setFjwjfRate(BigDecimalUtil.integerDivideDelZero(statistics.getFjwjfNum() * 100, allNum, 1)); // statistics.setAllNum(allNum); // return statistics; // } /** * 按系列案编号查询 * * @param caseId 系列案编号 * @return List */ public CaseInfo listBySerieNo(String caseId) { return mapper.selectById(caseId); } /** * 获取指定时间之后的案子,给亿迅同步数据用 * * @param caseVo 条件 * @return List */ public List selectByLastTime(CaseVo caseVo) { log.info("xsd:{}", caseVo); return mapper.selectByLastTime(caseVo); } public int deleteCaseById(String id) { caseTaskService.deleteCaseTaskByCaseId(id); return mapper.deleteCaseById(id, new Date()); } /** * 协同推送-网格推送案件入库 * * @param registerSaveDTO 纠纷信息 * @return String 纠纷编号 */ public String gridCaseRegister(RegisterSaveDTO registerSaveDTO) { try { String gridCode = registerSaveDTO.getGridCode(); Map terms = new HashMap<>(); if (StringUtils.isNotBlank(gridCode)) { if (gridCode.length() == 10) { terms.put("gridCode", gridCode); terms.put("queryType", 1); } else if (gridCode.length() == 6) { terms.put("gridCode", gridCode); terms.put("queryType", 2); } else { terms.put("queryType", 3); } } else { terms.put("queryType", 3); } log.info("xsd:{}",terms); CtUnitDTO ctUnitDTO = mapper.getUnitByGridCode(terms); log.info("xsd:ctUnitDTO{}",ctUnitDTO); if (ObjectUtils.isNotEmpty(ctUnitDTO)) { if (StringUtils.isNotBlank(ctUnitDTO.getCity()) && StringUtils.isNotBlank(ctUnitDTO.getCityName())) { registerSaveDTO.setQueCity(ctUnitDTO.getCity()); registerSaveDTO.setQueCityName(ctUnitDTO.getCityName()); } if (StringUtils.isNotBlank(ctUnitDTO.getArea()) && StringUtils.isNotBlank(ctUnitDTO.getAreaName())) { registerSaveDTO.setQueArea(ctUnitDTO.getArea()); registerSaveDTO.setQueAreaName(ctUnitDTO.getAreaName()); } if (StringUtils.isNotBlank(ctUnitDTO.getRoad()) && StringUtils.isNotBlank(ctUnitDTO.getRoadName())) { registerSaveDTO.setQueRoad(ctUnitDTO.getRoad()); registerSaveDTO.setQueRoadName(ctUnitDTO.getRoadName()); } // registerSaveDTO.setWantUnitId(ctUnitDTO.getId()); // registerSaveDTO.setWantUnitName(ctUnitDTO.getUnitName()); //网格上报的事件时间一般在凌晨,导致北京时间是昨天,所以+8小时还原为北京时间,确保在同一天内 Date nowDate1 = DateUtils.getNowDate(); Date nowDate = new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(nowDate1); int hour = cal.get(Calendar.HOUR_OF_DAY); //复制填装案件表 CaseInfo caseInfo = new CaseInfo(); BeanUtils.copyProperties(registerSaveDTO, caseInfo); // 调度给镇街,镇街分派 caseInfo.setZxslStatus(CaseBaseConsts.ZXSL_STATUS_0); caseInfo.setUpdateTime(nowDate); // 常规登记-保存当事人 if (CollectionUtils.isNotEmpty(registerSaveDTO.getPersonList())) { for (CasePerson casePerson : registerSaveDTO.getPersonList()) { casePerson.setId(IdUtils.getNewTimeId()); casePerson.setCaseId(caseInfo.getId()); casePerson.setPerType(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex()); casePerson.setPerTypeName(CaseBaseConstsEnum.PERSON_TYPE_1.getDes()); casePerson.setPerClass(CaseBaseConstsEnum.PERSON_CLASS_1.getIndex()); casePerson.setPerClassName(CaseBaseConstsEnum.PERSON_CLASS_1.getDes()); casePerson.setCaseId(registerSaveDTO.getId()); casePerson.setCustId(registerSaveDTO.getCustId()); casePerson.setUpdateTime(nowDate); casePerson.setCreateTime(nowDate); casePerson.setCertiType(CaseBaseConstsEnum.CARD_TYPE_1.getIndex()); casePerson.setCertiTypeName(CaseBaseConstsEnum.CARD_TYPE_1.getDes()); casePersonService.save(casePerson); } } else if (StringUtils.isNotBlank(registerSaveDTO.getPlaintiffs())) { CasePerson casePerson = new CasePerson(); casePerson.setId(IdUtils.getNewTimeId()); casePerson.setCaseId(caseInfo.getId()); casePerson.setPerType(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex()); casePerson.setPerTypeName(CaseBaseConstsEnum.PERSON_TYPE_1.getDes()); casePerson.setPerClass(CaseBaseConstsEnum.PERSON_CLASS_1.getIndex()); casePerson.setPerClassName(CaseBaseConstsEnum.PERSON_CLASS_1.getDes()); casePerson.setTrueName(registerSaveDTO.getPlaintiffs()); casePerson.setMobile(registerSaveDTO.getPhone()); casePerson.setCaseId(registerSaveDTO.getId()); casePerson.setCustId(registerSaveDTO.getCustId()); casePerson.setUpdateTime(nowDate); casePerson.setCreateTime(nowDate); caseInfo.setPlaintiffs(registerSaveDTO.getPlaintiffs()); casePersonService.save(casePerson); } // 生成事项编号 GenerateQrCodeRequestVo generateQrCodeRequestVo = new GenerateQrCodeRequestVo(); generateQrCodeRequestVo.setId(caseInfo.getId()); generateQrCodeRequestVo.setBusinessSource("02"); generateQrCodeRequestVo.setGenerateUnifiedCode(true); if (CaseBaseConstsEnum.CASE_CANAL_SECOND_1.getIndex().equals(caseInfo.getCanalSecond())) { generateQrCodeRequestVo.setInfoSource("12"); } else if (CaseBaseConstsEnum.CASE_CANAL_SECOND_2.getIndex().equals(caseInfo.getCanalSecond())) { generateQrCodeRequestVo.setInfoSource("07"); } String area = this.formatGridCode(ctUnitDTO.getArea()); generateQrCodeRequestVo.setGridCode(area); GridEventDTO gridEventDTO = sysClient.getGridEventId(registerSaveDTO.getId()); if (gridEventDTO != null) { caseInfo.setCaseRef(gridEventDTO.getEventCode()); } else { caseInfo.setCaseRef(sysClient.getCaseRefByGenerateQrCode(generateQrCodeRequestVo)); } // 获取调解案号 caseInfo.setCaseNo(utilsClient.createCaseNo(ctUnitDTO.getArea())); caseInfo.setVisitWay(CaseBaseConstsEnum.VISIT_WAY_3.getIndex()); caseInfo.setVisitWayName(CaseBaseConstsEnum.VISIT_WAY_3.getDes()); caseInfo.setCanal(CaseBaseConstsEnum.CASE_CANAL_4.getIndex()); caseInfo.setCanalName(CaseBaseConstsEnum.CASE_CANAL_4.getDes()); caseInfo.setCaseLevel(3); // //获取一级类型 // SyCause syCause = sysClient.getParentCaseTypeById(caseInfo.getCaseType()); // if (ObjectUtils.isNotEmpty(syCause)) { // caseInfo.setCaseTypeFirst(syCause.getId()); // caseInfo.setCaseTypeFirstName(syCause.getName()); // } //默认小程序可见 if (ObjectUtils.isNotEmpty(caseInfo.getCanal())) { if (CaseBaseConstsEnum.CASE_CANAL_1.getIndex().equals(caseInfo.getCanal())) { caseInfo.setPartyShow(1); } } //todo case_title生成、经纬度转换 caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1); if(registerSaveDTO.getCreateTime()!=null){ caseInfo.setCreateTime(registerSaveDTO.getCreateTime()); }else { caseInfo.setCreateTime(nowDate); } caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0); //默认添加省市 caseInfo.setQueProv("19"); caseInfo.setQueProvName("广东省"); caseInfo.setQueCity("440100"); caseInfo.setQueCityName("广州市"); // 新增纠纷信息 this.save(caseInfo); // 新增纠纷信息扩展表 CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold(); caseInfoUnfold.setId(caseInfo.getId()); if (StringUtils.isNotBlank(registerSaveDTO.getGridHandle())) { caseInfoUnfold.setGridHandle(registerSaveDTO.getGridHandle()); } if (StringUtils.isNotBlank(registerSaveDTO.getTcqk())) { caseInfoUnfold.setTcqk(registerSaveDTO.getTcqk()); } caseInfoUnfold.setCreateTime(caseInfo.getCreateTime()); caseInfoUnfold.setUpdateTime(nowDate); caseInfoUnfoldService.save(caseInfoUnfold); // 自动调度流程 caseInfo.setIsGridEvent(1); caseTaskService.webStartFlowLFDJ(caseInfo); } return registerSaveDTO.getId(); } catch (Exception e) { log.error("service方法[CaseInfoService.gridCaseRegister]调用异常:" + e, e); throw new ServiceException("CaseInfoService.gridCaseRegister", e); } } /** * 格式化网格编码(自动添加连字符) * * @param Area 原始编码(如:440111) * @return 格式化后的编码(如:44-01-11) */ public String formatGridCode(String Area) { if (Area == null || Area.length() != 6) { return Area; } // 自动分割为 44-01-11 格式 return new StringBuilder(Area) .insert(2, "-") .insert(5, "-") .toString(); } }