From d1fcb44a9b81d0880b414e9125cb60897cf0b6a8 Mon Sep 17 00:00:00 2001 From: liyj <15602261488@163.com> Date: Sat, 21 Sep 2024 13:19:14 +0800 Subject: [PATCH] 1、受理操作报错修复 整改: 2、工作台-待/已分派列表 3、工作台-待/已签收列表 4、工作台-待/已/不予受理列表 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 456 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 372 insertions(+), 84 deletions(-) diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java index c45dfbe..2778806 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java @@ -4,6 +4,7 @@ import cn.huge.base.common.utils.*; import cn.huge.module.cases.domain.dto.*; +import cn.huge.module.cases.domain.json.CaseAreaDTO; import cn.huge.module.cases.domain.po.CaseAgent; import cn.huge.module.cases.domain.po.CaseInfoUnfold; import cn.huge.module.cases.domain.po.CasePerson; @@ -14,8 +15,7 @@ import cn.huge.module.cases.domain.po.CaseInfo; import cn.huge.module.constant.BaseConsts; import cn.huge.module.cust.dto.PaUserDTO; -import cn.huge.module.mediate.constant.CaseBaseConsts; -import cn.huge.module.mediate.constant.CaseBaseConstsEnum; +import cn.huge.module.mediate.constant.*; import cn.huge.module.cust.dto.CtUserDTO; import cn.huge.module.draft.service.CasedraftInfoService; import cn.huge.module.mediate.constant.CaseProcessBaseConstsEnum; @@ -25,10 +25,12 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Page; @@ -36,6 +38,8 @@ import org.springframework.data.domain.PageRequest; import org.springframework.transaction.annotation.Transactional; +import java.io.File; +import java.io.IOException; import java.util.*; import java.util.stream.Collectors; @@ -79,6 +83,10 @@ @Autowired private CaseTaskService caseTaskService; + @Autowired + private CaseEvaluateService caseEvaluateService; + + /** * 更新对象 * @param entity 对象 @@ -89,6 +97,20 @@ }catch (Exception e){ log.error("[CaseInfoService.updateCaseInfo]调用失败,异常信息:"+e, e); throw new ServiceException("CaseInfoService.updateCaseInfo", e); + } + } + + /** + * 批量更新对象 + * @param entity 对象 + * @param caseIdList + */ + public void updateCaseInfoList(CaseInfo entity, List<String> caseIdList){ + try{ + mapper.updateCaseInfoList(entity, caseIdList); + }catch (Exception e){ + log.error("[CaseInfoService.updateCaseInfoList]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseInfoService.updateCaseInfoList", e); } } @@ -210,6 +232,11 @@ caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1); caseInfo.setCreateTime(nowDate); caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + //默认添加省市 + caseInfo.setQueProv("19"); + caseInfo.setQueProvName("广东省"); + caseInfo.setQueCity("1601"); + caseInfo.setQueCityName("广州市"); // 删除草稿案件 if(1 == registerSaveDTO.getIsDraft() ){ draftInfoService.removeDraftInfo(registerSaveDTO.getId()); @@ -226,7 +253,7 @@ // 判断是否自行受理 if(1 == registerSaveDTO.getIsSelfAccept()){ // 自行受理流程 - caseTaskService.webStartFlowZXSL(caseInfo, loginUser); + return caseTaskService.webStartFlowZXSL(caseInfo, loginUser); }else { // 自动调度流程 caseTaskService.webStartFlowLFDJ(caseInfo); @@ -524,84 +551,138 @@ * @return String 纠纷编号 */ public String caseRegisterWechat(RegisterSaveDTO registerSaveDTO, String userId){ - try { - // 获取当前登录用户 - PaUserDTO loginUser = custClient.paclientGetUser(userId); - if(ObjectUtils.isEmpty(registerSaveDTO.getCustId())){ - registerSaveDTO.setCustId(loginUser.getCustId()); - } + // 获取当前登录用户 + PaUserDTO loginUser = custClient.paclientGetUser(userId); + if(ObjectUtils.isEmpty(registerSaveDTO.getCustId())){ + registerSaveDTO.setCustId(loginUser.getCustId()); + } - Date nowDate = DateUtils.getNowDate(); - registerSaveDTO.setUpdateTime(nowDate); - StringBuffer plaintiffs = new StringBuffer(); - StringBuffer defendants = new StringBuffer(); - StringBuffer pagents = new StringBuffer(); - StringBuffer dagents = new StringBuffer(); + Date nowDate = DateUtils.getNowDate(); + registerSaveDTO.setUpdateTime(nowDate); - CaseInfo caseInfo = new CaseInfo(); - CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold(); - BeanUtils.copyProperties(registerSaveDTO, caseInfo); - if(ObjectUtils.isEmpty(caseInfo.getId())){ - caseInfo.setId(utilsClient.getNewTimeCaseId()); - } + CaseInfo caseInfo = new CaseInfo(); + CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold(); + BeanUtils.copyProperties(registerSaveDTO, caseInfo); + if(ObjectUtils.isEmpty(caseInfo.getId())){ + caseInfo.setId(utilsClient.getNewTimeCaseId()); + } // caseInfo.setInputUnitId(loginUser.getUnitId()); // caseInfo.setInputUnitName(loginUser.getUnitName()); - caseInfo.setInputUserId(loginUser.getId()); - caseInfo.setInputUserName(loginUser.getTrueName()); - caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1); - caseInfo.setCreateTime(nowDate); - caseInfo.setUpdateTime(nowDate); - caseInfo.setVisitTime(nowDate); - caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0); - //坐标转换 - if(ObjectUtils.isNotEmpty(caseInfo.getLat()) && ObjectUtils.isNotEmpty(caseInfo.getLng())){ - PointXY pointXY = MapUtils.gcj02tobd09(Double.valueOf(caseInfo.getLng()), Double.valueOf(caseInfo.getLat())); - caseInfo.setLat(pointXY.getLat()+""); - caseInfo.setLng(pointXY.getLon()+""); - } - //todo case_title生成 - caseInfo.setCaseRef(utilsClient.createCaseRef()); - // 为了演示先兼容小程序没属地问题,写死属地 - if (ObjectUtils.isEmpty(caseInfo.getQueProv())) { - caseInfo.setQueProv("19"); - caseInfo.setQueProvName("广东"); - caseInfo.setQueCity("1601"); - caseInfo.setQueCityName("广州市"); - caseInfo.setQueArea("50258"); - caseInfo.setQueAreaName("白云区"); - caseInfo.setQueRoad("62857"); - caseInfo.setQueRoadName("新市街道"); + caseInfo.setInputUserId(loginUser.getId()); + caseInfo.setInputUserName(loginUser.getTrueName()); + caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1); + //默认添加省市 + caseInfo.setQueProv("19"); + caseInfo.setQueProvName("广东省"); + caseInfo.setQueCity("1601"); + caseInfo.setQueCityName("广州市"); - // 根据经纬度查询问题属地 -// QueAddrBaseDTO queAddrBaseDTO = sysClient.getQueAddrByBaiduiLngLat(caseInfo.getLng(), caseInfo.getLat()); -// caseInfo.setQueProv(queAddrBaseDTO.getQueProv()); -// caseInfo.setQueProvName(queAddrBaseDTO.getQueProvName()); -// caseInfo.setQueCity(queAddrBaseDTO.getQueCity()); -// caseInfo.setQueCityName(queAddrBaseDTO.getQueCityName()); -// caseInfo.setQueArea(queAddrBaseDTO.getQueArea()); -// caseInfo.setQueAreaName(queAddrBaseDTO.getQueAreaName()); -// caseInfo.setQueRoad(queAddrBaseDTO.getQueRoad()); -// caseInfo.setQueRoadName(queAddrBaseDTO.getQueRoadName()); - } - caseInfoUnfold.setId(caseInfo.getId()); - caseInfoUnfold.setCreateTime(nowDate); - caseInfoUnfold.setUpdateTime(nowDate); - - // 常规登记-保存当事人 - this.saveCasePersonWechat(registerSaveDTO, plaintiffs, pagents, defendants, dagents,loginUser); - caseInfo.setPlaintiffs(plaintiffs.toString()); - caseInfo.setPagents(pagents.toString()); - caseInfo.setDefendants(defendants.toString()); - caseInfo.setDagents(dagents.toString()); - this.saveOrUpdate(caseInfo); - - // 启动工作流-自动调度流程 - caseTaskService.webStartFlowLFDJ(caseInfo); - return registerSaveDTO.getId(); - }catch (Exception e){ - log.error("service方法[CaseInfoService.caseRegisterWechat]调用异常:"+e, e); - throw new ServiceException("CaseInfoService.caseRegisterWechat", e); + caseInfo.setCreateTime(nowDate); + caseInfo.setUpdateTime(nowDate); + caseInfo.setVisitTime(nowDate); + caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + //坐标转换 + if(ObjectUtils.isNotEmpty(caseInfo.getLat()) && ObjectUtils.isNotEmpty(caseInfo.getLng())){ + PointXY pointXY = MapUtils.gcj02tobd09(Double.valueOf(caseInfo.getLng()), Double.valueOf(caseInfo.getLat())); + caseInfo.setLat(pointXY.getLat()+""); + caseInfo.setLng(pointXY.getLon()+""); } + //todo case_title生成 + caseInfo.setCaseRef(utilsClient.createCaseRef()); + + // 为了演示先兼容小程序没属地问题,写死属地 + if (ObjectUtils.isEmpty(caseInfo.getQueProv())) { +// caseInfo.setQueProv("19"); +// caseInfo.setQueProvName("广东"); +// caseInfo.setQueCity("1601"); +// caseInfo.setQueCityName("广州市"); +// caseInfo.setQueArea("50258"); +// caseInfo.setQueAreaName("白云区"); +// caseInfo.setQueRoad("62857"); +// caseInfo.setQueRoadName("新市街道"); + + // 根据经纬度查询问题属地 + QueAddrBaseDTO queAddrBaseDTO = sysClient.getQueAddrByBaiduiLngLat(caseInfo.getLng(), caseInfo.getLat()); + caseInfo.setQueProv(queAddrBaseDTO.getQueProv()); + caseInfo.setQueProvName(queAddrBaseDTO.getQueProvName()); + caseInfo.setQueCity(queAddrBaseDTO.getQueCity()); + caseInfo.setQueCityName(queAddrBaseDTO.getQueCityName()); + caseInfo.setQueArea(queAddrBaseDTO.getQueArea()); + caseInfo.setQueAreaName(queAddrBaseDTO.getQueAreaName()); + caseInfo.setQueRoad(queAddrBaseDTO.getQueRoad()); + caseInfo.setQueRoadName(queAddrBaseDTO.getQueRoadName()); + } + caseInfoUnfold.setId(caseInfo.getId()); + caseInfoUnfold.setCreateTime(nowDate); + caseInfoUnfold.setUpdateTime(nowDate); + + StringBuffer plaintiffs = new StringBuffer(); + StringBuffer defendants = new StringBuffer(); + StringBuffer pagents = new StringBuffer(); + StringBuffer dagents = new StringBuffer(); + // 常规登记-保存当事人 + int peopleNum = this.saveCasePersonWechat(registerSaveDTO, plaintiffs, pagents, defendants, dagents,loginUser); + caseInfo.setVisitPeopleNum(peopleNum); + caseInfo.setPlaintiffs(plaintiffs.toString()); + caseInfo.setPagents(pagents.toString()); + caseInfo.setDefendants(defendants.toString()); + caseInfo.setDagents(dagents.toString()); + + //todo case_title生成 +// caseInfo.setCaseTitle(this.createCaseTitle(plaintiffs.toString(), defendants.toString(), caseInfo.getCaseTypeName())); + + caseInfo.setInfoProcess(CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_1.getIndex()); + caseInfo.setInfoProcessName(CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_1.getDes()); + caseInfo.setProcess(CaseProcessBaseConstsEnum.CASE_PROCESS_1.getIndex()); + caseInfo.setProcessName(CaseProcessBaseConstsEnum.CASE_PROCESS_1.getDes()); + caseInfo.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_1.getIndex()); + caseInfo.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_1.getDes()); + caseInfo.setCaseLevel(3); + caseInfo.setCanal(CaseBaseConstsEnum.CASE_CANAL_2.getIndex()); + caseInfo.setCanalName(CaseBaseConstsEnum.CASE_CANAL_2.getDes()); + + caseInfo.setCaseRef(utilsClient.createCaseRef()); + caseInfo.setVisitWay(CaseBaseConstsEnum.VISIT_WAY_2.getIndex()); + caseInfo.setVisitWayName(CaseBaseConstsEnum.VISIT_WAY_2.getDes()); + // 临时加上一级纠纷类型 + caseInfo.setCaseTypeFirst("24_01-2"); + caseInfo.setCaseTypeFirstName("劳动社保"); + this.saveOrUpdate(caseInfo); + + caseInfoUnfoldService.saveOrUpdate(caseInfoUnfold); + // 启动工作流-自动调度流程 + caseTaskService.webStartFlowLFDJ(caseInfo); + return registerSaveDTO.getId(); + } + + /** + * 生成调解案件标题 + * @param plaintiffs 申请人 + * @param defendants 被申请人 + * @param caseTypeName 纠纷类型 + * @return String + */ + public String createCaseTitle(String plaintiffs, String defendants, String caseTypeName){ + StringBuffer caseTitle = new StringBuffer(); + if (plaintiffs.indexOf(BaseConsts.COMMA) != -1){ + caseTitle.append(plaintiffs.split(BaseConsts.COMMA)[0]).append("等"); + }else { + caseTitle.append(plaintiffs.split(BaseConsts.COMMA)[0]); + } + if (StringUtils.isNotEmpty(defendants)) { + caseTitle.append("和"); + if (defendants.indexOf(BaseConsts.COMMA) != -1) { + caseTitle.append(defendants.split(BaseConsts.COMMA)[0]).append("等"); + } else { + caseTitle.append(defendants.split(BaseConsts.COMMA)[0]); + } + } + caseTitle.append("的"); + if (StringUtils.isNotEmpty(caseTypeName)){ + caseTitle.append(caseTypeName); + } + caseTitle.append("案件"); + return caseTitle.toString(); } /** @@ -630,13 +711,13 @@ personService.saveOrUpdate(casePerson); //添加申请方和被申请方人名组合 - if(CaseBaseConstsEnum.PERSON_TYPE_1.equals(casePerson.getPerType())){ + if(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())){ //申请方 if (StringUtils.isNotEmpty(plaintiffs.toString())) { plaintiffs.append(BaseConsts.COMMA); } plaintiffs.append(casePerson.getTrueName()); - }else if(CaseBaseConstsEnum.PERSON_TYPE_2.equals(casePerson.getPerType())){ + }else if(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())){ //被申请方 if (StringUtils.isNotEmpty(defendants.toString())) { defendants.append(BaseConsts.COMMA); @@ -658,16 +739,22 @@ caseAgent.setCreateTime(registerSaveDTO.getUpdateTime()); caseAgent.setUpdateTime(registerSaveDTO.getUpdateTime()); agentService.saveOrUpdate(caseAgent); - - if (StringUtils.isNotEmpty(pagents.toString())) { - pagents.append(BaseConsts.COMMA); + if(CaseBaseConstsEnum.PERSON_TYPE_3.getIndex().equals(caseAgent.getPerType())){ + if (StringUtils.isNotEmpty(pagents.toString())) { + pagents.append(BaseConsts.COMMA); + } + pagents.append(caseAgent.getTrueName()); + }else if(CaseBaseConstsEnum.PERSON_TYPE_4.getIndex().equals(caseAgent.getPerType())){ + if (StringUtils.isNotEmpty(dagents.toString())) { + dagents.append(BaseConsts.COMMA); + } + dagents.append(caseAgent.getTrueName()); } - pagents.append(caseAgent.getTrueName()); + } //todo 绑定当事人小程序 } } - return peopleNum; } @@ -733,8 +820,11 @@ if(ObjectUtils.isNotEmpty(caseInfoUnfold)){ caseInfoWeChatDTO.setMediResult(caseInfoUnfold.getMediResult()); caseInfoWeChatDTO.setMediResultName(caseInfoUnfold.getMediResultName()); - caseInfoWeChatDTO.setMediateDeptId(caseInfoUnfold.getMediateDeptId()); - caseInfoWeChatDTO.setMediateDeptName(caseInfoUnfold.getMediateDeptName()); + caseInfoWeChatDTO.setMediateDeptId(caseInfoUnfold.getMediateUnitId()); + caseInfoWeChatDTO.setMediateDeptName(caseInfoUnfold.getMediateUnitName()); + caseInfoWeChatDTO.setAgreeType(caseInfoUnfold.getAgreeType()); + caseInfoWeChatDTO.setAgreeTypeName(caseInfoUnfold.getAgreeTypeName()); + caseInfoWeChatDTO.setAgreeContent(caseInfoUnfold.getAgreeContent()); } QueryWrapper<CasePerson> personWrapper1 = new QueryWrapper<>(); @@ -755,6 +845,18 @@ } caseInfoWeChatDTO.setDefendantList(defendantList); caseInfoWeChatDTO.setPlaintiffList(plaintiffList); + //评价信息 + Map<String, Object> evaluateTerms = new HashMap<>(); + evaluateTerms.put("caseId", caseInfo.getId()); + evaluateTerms.put("deleteStatus", BaseConsts.DELETE_STATUS_0); + evaluateTerms.put("evaluateUserId", loginUser.getId()); + long evaluateCount = caseEvaluateService.countTerms(evaluateTerms); + if(evaluateCount > 0){ + caseInfoWeChatDTO.setIsEvaluate("1"); + }else{ + caseInfoWeChatDTO.setIsEvaluate("0"); + } + list.add(caseInfoWeChatDTO); } } @@ -794,4 +896,190 @@ } return new PageImpl<CasePageDTO>(content, page, total); } + + public CaseStatisticsBaseDTO statistics(Map<String, Object> terms) throws IOException { + //基础数据统计 + CaseStatisticsBaseDTO caseStatisticsBaseDTO = mapper.statisticsBase(terms); + Integer baseTotalNum = dellNull(caseStatisticsBaseDTO.getResolveNum()) + dellNull(caseStatisticsBaseDTO.getUnResolveNum())+ dellNull(caseStatisticsBaseDTO.getResolveingNum()); + caseStatisticsBaseDTO.setResolveRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getResolveNum()*100, baseTotalNum,1)); + caseStatisticsBaseDTO.setUnResolveRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getUnResolveNum()*100, baseTotalNum,1)); + caseStatisticsBaseDTO.setResolveingRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getResolveingNum()*100, baseTotalNum,1)); + Integer levelTotalNum = caseStatisticsBaseDTO.getOneLevelNum() + caseStatisticsBaseDTO.getTwoLevelNum() + caseStatisticsBaseDTO.getThreeLevelNum(); + caseStatisticsBaseDTO.setOneLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getOneLevelNum()*100, levelTotalNum,1)); + caseStatisticsBaseDTO.setTwoLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getTwoLevelNum()*100, levelTotalNum,1)); + caseStatisticsBaseDTO.setThreeLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getThreeLevelNum()*100, levelTotalNum,1)); + //区域数据统计 + terms.put("isArea","1"); + List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS = mapper.statisticsArea(terms); + if(ObjectUtils.isEmpty(caseStatisticsAreaDTOS)){ + caseStatisticsAreaDTOS = new ArrayList<>(); + } + CaseStatisticsAreaDTO allArea = new CaseStatisticsAreaDTO(); + allArea.setAreaName("本级"); + allArea.setAreaCode("1"); + List<String> areaCodeList = new ArrayList<>(); + for (CaseStatisticsAreaDTO caseStatisticsAreaDTO : caseStatisticsAreaDTOS) { + allArea.setCaseNum(dellNull(caseStatisticsAreaDTO.getCaseNum()) + dellNull(allArea.getCaseNum())); + allArea.setResolveNum(dellNull(caseStatisticsAreaDTO.getResolveNum()) + dellNull(allArea.getResolveNum())); + allArea.setUnResolveNum(dellNull(caseStatisticsAreaDTO.getUnResolveNum()) + dellNull(allArea.getUnResolveNum())); + allArea.setResolveingNum(dellNull(caseStatisticsAreaDTO.getResolveingNum()) + dellNull(allArea.getResolveingNum())); + areaCodeList.add(caseStatisticsAreaDTO.getAreaCode()); + } + caseStatisticsAreaDTOS.add(allArea); + List<CaseAreaDTO> queArea = listAreaByType(terms.get("areaType"), terms.get("queArea")); + log.info("listAreaByType {}",JSON.toJSONString(queArea)); + for (CaseAreaDTO caseAreaDTO : queArea) { + if(!areaCodeList.contains(caseAreaDTO.getAreaCode())){ + CaseStatisticsAreaDTO areaChild = new CaseStatisticsAreaDTO(); + areaChild.setAreaCode(caseAreaDTO.getAreaCode()); + areaChild.setAreaName(caseAreaDTO.getAreaName()); + areaChild.setCaseNum(0); + areaChild.setResolveNum(0); + areaChild.setUnResolveNum(0); + areaChild.setResolveingNum(0); + caseStatisticsAreaDTOS.add(areaChild); + } + } + + if(ObjectUtils.isNotEmpty(caseStatisticsAreaDTOS)){ + sortArea(caseStatisticsAreaDTOS); + } + caseStatisticsBaseDTO.setAreaList(caseStatisticsAreaDTOS); + terms.remove("isArea"); + //纠纷类型统计 + List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS = mapper.statisticsType(terms); + if(ObjectUtils.isNotEmpty(caseStatisticsTypeDTOS)){ + sortType(caseStatisticsTypeDTOS); + } + Integer typeTotalNum = 0; + Integer otherCaseNum = 0; + int i = 1; + List<CaseStatisticsTypeDTO> typeList = new ArrayList<>(); + for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) { + typeTotalNum = typeTotalNum + dellNull(caseStatisticsTypeDTO.getCaseNum()); + if(i > 5){ + otherCaseNum = otherCaseNum + dellNull(caseStatisticsTypeDTO.getCaseNum()); + }else{ + typeList.add(caseStatisticsTypeDTO); + } + i++; + } + for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : typeList) { + caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum()*100, typeTotalNum,1)); + } + CaseStatisticsTypeDTO caseStatisticsTypeDTO = new CaseStatisticsTypeDTO(); + caseStatisticsTypeDTO.setCaseTypeName("其他"); + caseStatisticsTypeDTO.setCaseNum(otherCaseNum); + caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum()*100, typeTotalNum,1)); + typeList.add(caseStatisticsTypeDTO); + caseStatisticsBaseDTO.setTypeList(typeList); + //事项来源 + terms.put("canal",CaseBaseConstsEnum.CASE_CANAL_1.getIndex()); + CaseStatisticsSourceDTO oneSource = mapper.statisticsSource(terms); + oneSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_1.getDes()); + terms.put("canal",CaseBaseConstsEnum.CASE_CANAL_2.getIndex()); + CaseStatisticsSourceDTO twoSource = mapper.statisticsSource(terms); + twoSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_2.getDes()); + + Integer sourceTotalNum = dellNull(oneSource.getCaseNum()) + dellNull(oneSource.getCaseNum()); + oneSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(oneSource.getCaseNum()*100, sourceTotalNum,1)); + oneSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(oneSource.getResolveNum()*100, oneSource.getCaseNum(),1)); + twoSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(twoSource.getCaseNum()*100, sourceTotalNum,1)); + twoSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(twoSource.getResolveNum()*100, twoSource.getCaseNum(),1)); + + CaseStatisticsSourceDTO threeSource = new CaseStatisticsSourceDTO(); + threeSource.setCanalName("自行排查"); + threeSource.setResolveRate("0"); + threeSource.setCaseRate("0"); + CaseStatisticsSourceDTO fourSource = new CaseStatisticsSourceDTO(); + fourSource.setCanalName("协同推送"); + fourSource.setResolveRate("0"); + fourSource.setCaseRate("0"); + caseStatisticsBaseDTO.setOneSource(oneSource); + caseStatisticsBaseDTO.setTwoSource(twoSource); + caseStatisticsBaseDTO.setThreeSource(threeSource); + caseStatisticsBaseDTO.setFourSource(fourSource); + + //案件集合 + Sort sort = Sort.by(Sort.Direction.DESC, "a.create_time"); + PageRequest pageRequest = PageRequest.of(0, 5, sort); + Page<CasePageDTO> casePageDTOS = pageQueryAll(pageRequest, terms); + if(ObjectUtils.isNotEmpty(casePageDTOS.getContent())){ + caseStatisticsBaseDTO.setCaseList(casePageDTOS.getContent()); + }else{ + caseStatisticsBaseDTO.setCaseList(new ArrayList<>()); + } + return caseStatisticsBaseDTO; + } + + public List<CaseStatisticsTypeDTO> sortType(List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS){ + caseStatisticsTypeDTOS.sort((o1, o2)->{ + Integer totalScore1 = o1.getCaseNum(); + Integer totalScore2 = o2.getCaseNum(); + if(totalScore1 < totalScore2) { + return 1; + }else if (totalScore1.equals(totalScore2)){ + return 0; + }else{ + return -1; + } + }); + return caseStatisticsTypeDTOS; + } + + public List<CaseStatisticsAreaDTO> sortArea(List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS){ + caseStatisticsAreaDTOS.sort((o1, o2)->{ + Integer totalScore1 = Integer.valueOf(o1.getAreaCode()); + Integer totalScore2 = Integer.valueOf(o2.getAreaCode()); + if(totalScore1 > totalScore2) { + return 1; + }else if (totalScore1.equals(totalScore2)){ + return 0; + }else{ + return -1; + } + }); + return caseStatisticsAreaDTOS; + } + + public Integer dellNull(Integer number){ + if(ObjectUtils.isEmpty(number)){ + return 0; + } + return number; + } + + /** + * 根据json文件获取区域信息 + * */ + public CaseAreaDTO getArea() throws IOException { + Class<?> clazz = CaseAreaDTO.class; + String path = clazz.getResource("").getPath(); + ObjectMapper mapper = new ObjectMapper(); + File file = new File(path+"Area.json"); + CaseAreaDTO obj = mapper.readValue(file, CaseAreaDTO.class); + return obj; + } + + /** + * 根据不同的等级获取不同区域子集合 + * @param areaType 1-市级 2-区 + * */ + public List<CaseAreaDTO> listAreaByType(Object areaType,Object areaCode) throws IOException { + log.info("listAreaByType {},{}",areaType,areaCode); + CaseAreaDTO area = getArea(); + log.info("listAreaByType area {}",JSON.toJSONString(area)); + if(ObjectUtils.isEmpty(areaType) || areaType.equals("") || areaType.equals("1")){ + return area.getChildren(); + } + if(areaType.equals("2")){ + List<CaseAreaDTO> children = area.getChildren(); + for (CaseAreaDTO child : children) { + if(child.getAreaCode().equals(areaCode)){ + return child.getChildren(); + } + } + } + return new ArrayList<>(); + } } -- Gitblit v1.8.0