forked from gzzfw/backEnd/gz-dyh

zhouxiantao
2024-09-19 f7dd6c04223ea30a535e7f340d620435102aad8b
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
@@ -14,8 +14,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;
@@ -29,6 +28,7 @@
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;
@@ -79,6 +79,10 @@
    @Autowired
    private CaseTaskService caseTaskService;
    @Autowired
    private CaseEvaluateService caseEvaluateService;
    /**
    * 更新对象
    * @param entity 对象
@@ -89,6 +93,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 +228,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 +249,7 @@
                // 判断是否自行受理
                if(1 == registerSaveDTO.getIsSelfAccept()){
                    // 自行受理流程
                    caseTaskService.webStartFlowZXSL(caseInfo, loginUser);
                     return caseTaskService.webStartFlowZXSL(caseInfo, loginUser);
                }else {
                    // 自动调度流程
                    caseTaskService.webStartFlowLFDJ(caseInfo);
@@ -524,84 +547,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 +707,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 +735,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 +816,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 +841,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 +892,139 @@
        }
        return new PageImpl<CasePageDTO>(content, page, total);
    }
    public CaseStatisticsBaseDTO statistics(Map<String, Object> terms){
        //基础数据统计
        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");
        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()));
        }
        caseStatisticsAreaDTOS.add(allArea);
        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;
    }
}