Bladeren bron

配置修改

chenweida 7 jaren geleden
bovenliggende
commit
1f24ee07ba

+ 12 - 67
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/statisticsES/StatisticsESService.java

@ -3813,12 +3813,8 @@ public class StatisticsESService {
    public List<Map<String, Object>> getPrescriptionCostLowLevel(String level, String lowlevel, String area, String disease, String type) throws Exception {
        String index61 = "61";//统计长处方费用总数疾病维度
        String index66 = "66";//费用的指标code
        String index63 = "63";//统计长处方年龄疾病人数(按照患者去重)
        String index68 = "68";//统计长处方年龄人数(按照患者去重)
        String quotaDate = elasticsearchUtil.getQuotaTime();
        List<SaveModel> costList = null;
        Map<String, SaveModel> costMap = new HashedMap();
        List<SaveModel> numList = null;
        //获取费用
        if (org.springframework.util.StringUtils.isEmpty(disease)) {
            costList = elasticsearchUtil.findListDateQuotaLevel0(quotaDate, area, Integer.parseInt(level), index66, SaveModel.timeLevel_DDL, lowlevel);
@ -3846,46 +3842,29 @@ public class StatisticsESService {
        } else {
            //2.平均值
            //费用list转map
            for (SaveModel one : costList) {
                if (SaveModel.townLevel.equals(lowlevel)) {
                    costMap.put(one.getTown(), one);
                } else if (SaveModel.OrgLevel.equals(lowlevel)) {
                    costMap.put(one.getHospital(), one);
                } else if (SaveModel.teamLevel.equals(lowlevel)) {
                    costMap.put(one.getTeam(), one);
                }
            }
            //获取人数
            if (org.springframework.util.StringUtils.isEmpty(disease)) {
                numList = elasticsearchUtil.findListDateQuotaLevel1NoSlaveKey1(quotaDate, area, Integer.parseInt(level), index68, SaveModel.timeLevel_DDL, lowlevel);
            } else {
                numList = elasticsearchUtil.findListDateQuotaLevel2NoSlaveKey1(quotaDate, area, Integer.parseInt(level), index63, SaveModel.timeLevel_DDL, lowlevel, disease);
            }
            for (SaveModel one : numList) {
                String avg = "0.0";
                map = new HashMap<>();
                if (SaveModel.townLevel.equals(lowlevel)) {
                    map.put("code", one.getTown());
                    map.put("name", one.getTownName());
                    SaveModel costOne = costMap.get(one.getTown());
                    if (costOne != null) {
                        avg = decimalFormat.format(costOne.getResult1() / one.getResult1());
                    if (one != null&&one.getResult2()>0) {
                        avg = decimalFormat.format(one.getResult1() / (one.getResult2()*100));
                    }
                    map.put("val", avg);
                } else if (SaveModel.OrgLevel.equals(lowlevel)) {
                    map.put("code", one.getHospital());
                    map.put("name", one.getHospitalName());
                    SaveModel costOne = costMap.get(one.getHospital());
                    if (costOne != null) {
                        avg = decimalFormat.format(costOne.getResult1() / one.getResult1());
                    if (one != null&&one.getResult2()>0) {
                        avg = decimalFormat.format(one.getResult1() / (one.getResult2()*100));
                    }
                    map.put("val", avg);
                } else if (SaveModel.teamLevel.equals(lowlevel)) {
                    map.put("code", one.getTeam());
                    map.put("name", one.getTeamName());
                    SaveModel costOne = costMap.get(one.getTeam());
                    if (costOne != null) {
                        avg = decimalFormat.format(costOne.getResult1() / one.getResult1());
                    if (one != null&&one.getResult2()>0) {
                        avg = decimalFormat.format(one.getResult1() / (one.getResult2()*100));
                    }
                    map.put("val", avg);
                }
@ -3922,13 +3901,8 @@ public class StatisticsESService {
    public List<Map<String, Object>> getPrescriptionCostAvgLine(String level, String area, String disease, String startDate, String endDate, String type) throws Exception {
        String index61 = "61";//统计长处方费用总数疾病维度
        String index66 = "66";//费用的指标code
        String index63 = "63";//统计长处方年龄疾病人数(按照患者去重)
        String index68 = "68";//统计长处方年龄人数(按照患者去重)
        List<SaveModel> costList = null;
        Map<String, SaveModel> costMap = new HashedMap();
        List<SaveModel> numList = null;
        startDate = elasticsearchUtil.changeTime(startDate += " 00:00:00");
        endDate = elasticsearchUtil.changeTime(endDate += " 23:59:59");
@ -3938,27 +3912,9 @@ public class StatisticsESService {
        } else {
            costList = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, Integer.parseInt(level), index61, SaveModel.timeLevel_ZL, type, disease);
        }
        //获取人数
        if (org.springframework.util.StringUtils.isEmpty(disease)) {
            numList = elasticsearchUtil.findLineChartDateQuotaLevel1NoSlaveKey1(startDate, endDate, area, Integer.parseInt(level), index68, SaveModel.timeLevel_ZL, type);
        } else {
            numList = elasticsearchUtil.findLineChartDateQuotaLevel2NoSlaveKey1(startDate, endDate, area, Integer.parseInt(level), index63, SaveModel.timeLevel_ZL, type, disease);
        }
        //费用list转map
        for (SaveModel one : costList) {
            String key = null;
            if (SaveModel.interval_day.equals(type)) {
                key = dateFormat.format(one.getQuotaDate());
            } else if (SaveModel.interval_week.equals(type)) {
                key = dateFormat.format(one.getQuotaDate());
            } else {
                key = DateUtil.getMonth(dateFormat.format(one.getQuotaDate()));
            }
            costMap.put(key, one);
        }
        List<Map<String, Object>> countList = new ArrayList<>(); //map date avg
        for (SaveModel one : numList) {
        for (SaveModel one : costList) {
            Map<String, Object> map = new HashMap<>();
            //获取key
            String key = null;
@ -3969,10 +3925,9 @@ public class StatisticsESService {
            } else {
                key = DateUtil.getMonth(dateFormat.format(one.getQuotaDate()));
            }
            SaveModel costOne = costMap.get(key);
            String avg = "0.0";
            if (costOne != null) {
                avg = decimalFormat.format(one.getResult1() / costOne.getResult1());
            if (one.getResult2()!=0) {
                avg = decimalFormat.format(one.getResult1() / (one.getResult2()*100));
            }
            map.put("val", avg);
            map.put("date", key);
@ -3984,33 +3939,23 @@ public class StatisticsESService {
    public Map<String, Object> getPrescriptionCost(String level, String area, String disease) throws Exception {
        SaveModel costSaveModel = null;
        SaveModel numSaveModel = null;
        String index61 = "61";//统计长处方费用总数疾病维度
        String index66 = "66";//费用的指标code
        String index63 = "63";//统计长处方年龄疾病人数(按照患者去重)
        String index68 = "68";//统计长处方年龄人数(按照患者去重)
        String quotaDate = elasticsearchUtil.getQuotaTime();
        if (StringUtils.isNotEmpty(disease)) {
            costSaveModel = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, Integer.parseInt(level), index61, "2", disease);
        } else {
            costSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, area, Integer.parseInt(level), index66, "2");
        }
        //获取人数
        if (StringUtils.isNotEmpty(disease)) {
            numSaveModel = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaDate, area, Integer.parseInt(level), index63, "2", disease);
        } else {
            numSaveModel = elasticsearchUtil.findOneDateQuotaLevel1NoSlaveKey1(quotaDate, area, Integer.parseInt(level), index68, "2");
        }
        Long num = numSaveModel.getResult1().longValue();
        Map<String, Object> rs = new HashedMap();
        BigDecimal s = BigDecimal.valueOf(costSaveModel.getResult1());
        BigDecimal a = null;
        if (num == 0) {
        if (costSaveModel.getResult2() == 0.0D) {
            a = BigDecimal.valueOf(0.0);
        } else {
            a = BigDecimal.valueOf(costSaveModel.getResult1().longValue() / num);
            a = BigDecimal.valueOf(costSaveModel.getResult1().longValue() / costSaveModel.getResult2().longValue());
        }
        rs.put("sum", s.divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP));//费用总计  单位是分 所以除以100四舍五入
        rs.put("avg", a.divide((new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_UP));//人均费用  单位是分 所以除以100四舍五入