chenweida 7 anni fa
parent
commit
608b8371ba

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

@ -21,6 +21,7 @@ import io.searchbox.client.JestClient;
import io.searchbox.core.Bulk;
import io.searchbox.core.BulkResult;
import io.searchbox.core.Index;
import org.apache.commons.collections.ArrayStack;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONArray;
@ -500,42 +501,45 @@ public class StatisticsESService {
    /**
     * 缴费和未交费的人数
     *
     * @param endDate
     * @param area
     * @param level
     * @return
     * @throws Exception
     */
    public JSONArray getPayPremiums(String endDate, String area, int level)throws Exception{
    public JSONArray getPayPremiums(String endDate, String area, int level) throws Exception {
        //已缴费
        SaveModel paidSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,endDate,area,level,"1","2");
        SaveModel paidSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, "1", "2");
        //未交费
        SaveModel noPaySaveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,endDate,area,level,"14","2");
        SaveModel noPaySaveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, "14", "2");
        List<Map<String, Object>> resultList = new ArrayList<>();
        DecimalFormat df = new DecimalFormat("0.0000");
        long paidTotal = paidSaveModel.getResult2().longValue();
        Map<String,Object> map1 = new HashedMap();
        Map<String, Object> map1 = new HashedMap();
        long noPayTotal = noPaySaveModel.getResult2().longValue();
        Map<String,Object> map2 = new HashedMap();
        Map<String, Object> map2 = new HashedMap();
        //求签约总数
        long totalNum = paidTotal+noPayTotal;
        long totalNum = paidTotal + noPayTotal;
        map1.put("code","1");
        map1.put("amount",paidTotal);
        map1.put("name","已缴费人数");
        map1.put("code", "1");
        map1.put("amount", paidTotal);
        map1.put("name", "已缴费人数");
        double rateG = (paidTotal > 0 ? paidTotal * 1.0000 / totalNum * 100 : 0);
        map1.put("rate", df.format(rateG));;
        map1.put("rate", df.format(rateG));
        ;
        map1.put("rateString", paidTotal + "/" + totalNum);
        resultList.add(map1);
        map2.put("code","0");
        map2.put("amount",noPayTotal);
        map2.put("name","未缴费人数");
        map2.put("code", "0");
        map2.put("amount", noPayTotal);
        map2.put("name", "未缴费人数");
        double rateG2 = (noPayTotal > 0 ? noPayTotal * 1.0000 / totalNum * 100 : 0);
        map2.put("rate", df.format(rateG2));;
        map2.put("rate", df.format(rateG2));
        ;
        map2.put("rateString", noPayTotal + "/" + totalNum);
        resultList.add(map2);
@ -685,7 +689,7 @@ public class StatisticsESService {
     * @return
     */
    public JSONObject getGroupInfo(String endDate, String lowCode, String area, int level, String year) throws Exception {
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate, endDate, area, level, "17", "2", 1,lowCode, null, null);
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate, endDate, area, level, "17", "2",  lowCode, null, null);
        long total = 0;
        if (list.size() > 0) {
            total = list.get(0).getResult2().longValue();
@ -1331,7 +1335,7 @@ public class StatisticsESService {
            //如果分母为0 分子为0 返回0%
            return 0;
        }
        Double size = first  / second;
        Double size = first / second;
        DecimalFormat df = new DecimalFormat("0.0");//格式化小数,不足的补0
        String filesize = df.format(size);
        return Double.valueOf(filesize);
@ -1556,7 +1560,7 @@ public class StatisticsESService {
        if (date.compareTo(dateFormat.format(new Date())) >= 0) {
            date = elasticsearchUtil.getQuotaTime();
        }
        List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0( date, area, level, index, SaveModel.timeLevel_DDL, low_level);
        List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(date, area, level, index, SaveModel.timeLevel_DDL, low_level);
        if (esModelList != null && esModelList.size() > 0) {
            for (SaveModel one : esModelList) {
@ -1763,7 +1767,7 @@ public class StatisticsESService {
                timeKey = elasticsearchUtil.getQuotaTime();
            } else {
                Integer coutYear = Integer.parseInt(year);
                timeKey = coutYear+1 + "-06-30";
                timeKey = coutYear + 1 + "-06-30";
            }
        }
//        timeKey= "2017-11-01 00:00:00";
@ -1789,12 +1793,12 @@ public class StatisticsESService {
     * @param onRely
     * @return
     */
    public List<Map<String, Object>> getCoutList(Integer level, String lowLevel,List<SaveModel> rely, List<SaveModel> total, List<SaveModel> onRely) {
    public List<Map<String, Object>> getCoutList(Integer level, String lowLevel, List<SaveModel> rely, List<SaveModel> total, List<SaveModel> onRely) {
        Map<String, Object> relyMap = new HashMap<>();
        Map<String, Object> totalMap = new HashMap<>();
        Map<String, Object> onRelyMap = new HashMap<>();
        JSONObject result = new JSONObject();
        String low_level=StringUtils.isEmpty(lowLevel)?String.valueOf(level+1):lowLevel;
        String low_level = StringUtils.isEmpty(lowLevel) ? String.valueOf(level + 1) : lowLevel;
        //转换回复数
        for (SaveModel saveModel : rely) {
            if (SaveModel.teamLevel.equals(low_level)) {
@ -1918,7 +1922,7 @@ public class StatisticsESService {
            if (Constant.getNowYear().equals(year)) {
                quotaTime = elasticsearchUtil.getQuotaTime();
            } else {
                quotaTime = Integer.valueOf(year)+1 + "-6-30";
                quotaTime = Integer.valueOf(year) + 1 + "-6-30";
            }
        }
//        quotaTime = "2017-10-19 00:00:00";
@ -1946,8 +1950,8 @@ public class StatisticsESService {
    public JSONObject getConsultingTitle(int level, String area, String year) throws Exception {
        JSONObject result = new JSONObject();
        String quotaDate = elasticsearchUtil.getQuotaTime();
        if(!Constant.getNowYear().equals(year)){
            quotaDate = Integer.valueOf(year)+1 + "-06-30";
        if (!Constant.getNowYear().equals(year)) {
            quotaDate = Integer.valueOf(year) + 1 + "-06-30";
        }
        SaveModel relyVal = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, quotaDate, area, level, "23", "2");
@ -2203,13 +2207,13 @@ public class StatisticsESService {
//        Map<String, Object> expenseStatus1Sigjn = getByIndexSingle(date, area, level, "1",dateFormat);
        SaveModel expenseStatus1Sigjn = elasticsearchUtil.findOneDateQuotaLevel0(date, area, level, "1", "2");
        JSONObject jsonObject = new JSONObject();
        if (Integer.valueOf(SaveModel.teamLevel)==level) {
        if (Integer.valueOf(SaveModel.teamLevel) == level) {
            jsonObject.put("name", expenseStatus1Sigjn.getTeamName());
        } else if (Integer.valueOf(SaveModel.OrgLevel)==level) {
        } else if (Integer.valueOf(SaveModel.OrgLevel) == level) {
            jsonObject.put("name", expenseStatus1Sigjn.getHospitalName());
        } else if (Integer.valueOf(SaveModel.townLevel)==level) {
        } else if (Integer.valueOf(SaveModel.townLevel) == level) {
            jsonObject.put("name", expenseStatus1Sigjn.getTownName());
        } else if (Integer.valueOf(SaveModel.cityLevel)==level) {
        } else if (Integer.valueOf(SaveModel.cityLevel) == level) {
            jsonObject.put("name", expenseStatus1Sigjn.getCityName());
        }
        jsonObject.put("code", area);
@ -2298,10 +2302,10 @@ public class StatisticsESService {
        if (StringUtils.isEmpty(lowCode)) {
            //续签量
            renewSaveModels = elasticsearchUtil.findDateQuotaLevel0(timeKey, timeKey, area, level, index, "2","", low_level);
            renewSaveModels = elasticsearchUtil.findDateQuotaLevel0(timeKey, timeKey, area, level, index, "2", "", low_level);
        } else {
            //续签量
            renewSaveModels = elasticsearchUtil.findDateQuotaLevel1(DateUtil.getNextDay(new Date(),-1), DateUtil.getNextDay(new Date(),-1), area, level, index, "2",1,lowCode,"",low_level);
            renewSaveModels = elasticsearchUtil.findDateQuotaLevel1(DateUtil.getNextDay(new Date(), -1), DateUtil.getNextDay(new Date(), -1), area, level, index, "2", lowCode, "", low_level);
            //renewSaveModels = elasticsearchUtil.findDateQuotaLevel1(timeKey, timeKey, area, level, index, "2",1,lowCode,"",low_level);
        }
@ -2328,9 +2332,9 @@ public class StatisticsESService {
            //查询去年的签约转map
            List<SaveModel> yearsList = new ArrayList();
            if (StringUtils.isBlank(lowCode)) {
                yearsList = elasticsearchUtil.findDateQuotaLevel0(lastDate,lastDate, area, level, "1", "2", "",low_level);
                yearsList = elasticsearchUtil.findDateQuotaLevel0(lastDate, lastDate, area, level, "1", "2", "", low_level);
            } else {
                yearsList = elasticsearchUtil.findDateQuotaLevel1(lastDate, lastDate, area, level, "17", "2", 1, lowCode,"",low_level);
                yearsList = elasticsearchUtil.findDateQuotaLevel1(lastDate, lastDate, area, level, "17", "2",lowCode, "", low_level);
            }
            Map<String, SaveModel> resultMap = new HashMap<>();
@ -2357,8 +2361,8 @@ public class StatisticsESService {
                }
                if (renewMap != null && renewMap.size() > 0) {
                    renewNum = renewMap.get(reMap.get("code").toString());
                    if (renewNum==null){
                        renewNum=0;
                    if (renewNum == null) {
                        renewNum = 0;
                    }
                } else {
                }
@ -2808,7 +2812,9 @@ public class StatisticsESService {
    }
    public Map<String, Object> getPrescriptionCount(int level, String area, String disease) throws Exception {
        String index = "58";
        //因为一个处方可能有多个疾病状态 所以分开2个指标
        String index58 = "58";//统计长处方总数疾病和状态维度
        String index64 = "64";//统计长处方总数状态维度
        Map<String, Object> rs = new HashedMap();
        SaveModel total = null;
        SaveModel processing = null;
@ -2819,39 +2825,39 @@ public class StatisticsESService {
        String quotaDate = elasticsearchUtil.getQuotaTime();
        //总数
        if (StringUtils.isNotBlank(disease)) {
            total = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index, SaveModel.timeLevel_DDL, disease);
            total = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease);
        } else {
            total = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, area, level, index, SaveModel.timeLevel_DDL);
            total = elasticsearchUtil.findOneDateQuotaLevel1NoSlaveKey1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL);
        }
        //进行中
        if (StringUtils.isNotBlank(disease)) {
            processing = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index, SaveModel.timeLevel_DDL,  disease, "1");
            processing = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "1");
        } else {
            processing = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaDate, area, level, index, SaveModel.timeLevel_DDL, "1");
            processing = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, "1");
        }
        //已完成
        if (StringUtils.isNotBlank(disease)) {
            finished = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index, SaveModel.timeLevel_DDL,  disease, "2");
            finished = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "2");
        } else {
            finished = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaDate, area, level, index, SaveModel.timeLevel_DDL, "2");
            finished = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, "2");
        }
        //已经取消
        if (StringUtils.isNotBlank(disease)) {
            canceled = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index, SaveModel.timeLevel_DDL,  disease, "3");
            canceled = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "3");
        } else {
            canceled = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaDate, area, level, index, SaveModel.timeLevel_DDL, "3");
            canceled = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, "3");
        }
        //审核不通过
        if (StringUtils.isNotBlank(disease)) {
            unPass = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index, SaveModel.timeLevel_DDL,  disease, "4");
            unPass = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "4");
        } else {
            unPass = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaDate, area, level, index, SaveModel.timeLevel_DDL, "4");
            unPass = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, "4");
        }
        //其他原因取消
        if (StringUtils.isNotBlank(disease)) {
            other = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index, SaveModel.timeLevel_DDL,  disease, "5");
            other = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "5");
        } else {
            other = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaDate, area, level, index, SaveModel.timeLevel_DDL, "5");
            other = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, "5");
        }
        //总数
@ -3063,14 +3069,14 @@ public class StatisticsESService {
        Long num = (Long) count.get("num");
        Map<String, Object> map = new HashMap<>();
        DecimalFormat decimalFormat = new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
        if(num==0){
        if (num == 0) {
            map.put("0ageRate", 0.0);
            map.put("7ageRate", 0.0);
            map.put("19ageRate", 0.0);
            map.put("31ageRate", 0.0);
            map.put("51ageRate", 0.0);
            map.put("65ageRate", 0.0);
        }else{
        } else {
            Double ageRate = list.get(0).getResult2() / num;
            map.put("0ageRate", decimalFormat.format(ageRate));
@ -3096,13 +3102,15 @@ public class StatisticsESService {
     * @return
     */
    public List<Map<String, Object>> getPrescriptionTotalHistogram(int level, String area, String disease, String type) throws Exception {
        String index = "58";
        List<Map<String, Object>> rs = new ArrayList<>();
        //因为一个处方可能有多个疾病状态 所以分开2个指标
        String index58 = "58";//统计长处方总数疾病和状态维度
        String index64 = "64";//统计长处方总数状态维度
        Map<String,Map<String, Object>> rs = new LinkedHashMap<>();
        Calendar dd = Calendar.getInstance();//定义日期实例
        Date endDate = new Date();
        dd.setTime(endDate);
        //初始化近半年的月份
        for (int i = 1; i < 7; i++) {
            Map<String, Object> mc = new HashedMap();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
@ -3110,7 +3118,7 @@ public class StatisticsESService {
            mc.put("month", date);
            mc.put("count", 0);
            dd.add(Calendar.MONTH, -1);
            rs.add(mc);
            rs.put(date,mc);
        }
        String startTime = DateUtil.dateToStr(dd.getTime(), "YYYY-MM-dd HH:mm:ss");
        String endTime = DateUtil.dateToStr(new Date(), "YYYY-MM-dd HH:mm:ss");
@ -3119,37 +3127,31 @@ public class StatisticsESService {
            //类型0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消
            if ("0".equals(type)) {
                //总数
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel2NoSlaveKey2(startTime, endTime, area, level, index, "1", "3", disease);
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel2NoSlaveKey2(startTime, endTime, area, level, index58, "1", "3", disease);
            } else {
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, index, "1", "3", disease, type);
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, index58, "1", "3", disease, type);
            }
        } else {
            if ("0".equals(type)) {
                //总数
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel2NoSlaveKey1NoSlaveKey2(startTime, endTime, area, level, index, "1", "3");
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel1NoSlaveKey1(startTime, endTime, area, level, index64, "1", "3");
            } else {
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel2NoSlaveKey1(startTime, endTime, area, level, index, "1", "3", type);
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel1(startTime, endTime, area, level, index64, "1", "3", type);
            }
        }
        for (Map<String, Object> m : rs) {
            Iterator iterator = resultList.iterator();
            while (iterator.hasNext()) {
                SaveModel saveModel = (SaveModel) iterator.next();
                String monthKey = (String) m.get("month");
                String monthKeyEs = "";
                if (saveModel.getQuotaDate() != null) {
                    monthKeyEs = DateUtil.changeQuotaDate(saveModel.getQuotaDate());
                    m.put("month", monthKeyEs);
                }
                if (StringUtils.isNotBlank(monthKeyEs) && monthKey.equals(monthKeyEs)) {
                    m.put("count", saveModel.getResult2());
                } else {
                    m.put("count", 0);
                }
        //把数据设置到初始化的Map里面去
        for(SaveModel saveModel:resultList){
            String monthKeyEs = "";
            if (saveModel.getQuotaDate() != null) {
                monthKeyEs = DateUtil.changeQuotaDate(saveModel.getQuotaDate());
            }
            if (StringUtils.isNotBlank(monthKeyEs) && rs.containsKey(monthKeyEs)) {
                Map<String, Object> oneMc = rs.get(monthKeyEs);
                oneMc.put("count",saveModel.getResult2());
            }
        }
        return rs;
        return new ArrayList<>(rs.values());
    }
    /**
@ -3163,51 +3165,33 @@ public class StatisticsESService {
     */
    public List<Map<String, Object>> getPrescriptionTotalLowLevel(int level, String lowlevel, String area, String disease, String type) throws Exception {
        String quotaDate = elasticsearchUtil.getQuotaTime();
        String index = "58";
        //因为一个处方可能有多个疾病状态 所以分开2个指标
        String index58 = "58";//统计长处方总数疾病和状态维度
        String index64 = "64";//统计长处方总数状态维度
        List<SaveModel> saveModels = new ArrayList<>();
        List<Map<String, Object>> rs = new ArrayList<>();
        //一级维度
        if (StringUtils.isEmpty(disease)) {
            //类型 1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消
//            if ("1".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel0(quotaDate, area, level, index, "2", lowlevel);
//            } else if ("2".equals(type) || "3".equals(type) || "4".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, type);
//            } else if ("5".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, "1");
//            } else if ("6".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, "5");
//            }
            if ("1".equals(type)) {
                //总数
                saveModels = elasticsearchUtil.findListDateQuotaLevel0(quotaDate,area,level,index,SaveModel.timeLevel_DDL,lowlevel);
            } else if("2".equals(type) || "3".equals(type) || "4".equals(type)){
                saveModels = elasticsearchUtil.findListDateQuotaLevel2NoSlaveKey1(quotaDate,area,level,index,SaveModel.timeLevel_DDL,lowlevel,type);
            } else if("5".equals(type)){
                saveModels = elasticsearchUtil.findListDateQuotaLevel2NoSlaveKey1(quotaDate,area,level,index,SaveModel.timeLevel_DDL,lowlevel,"1");
                saveModels = elasticsearchUtil.findListDateQuotaLevel1NoSlaveKey1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, lowlevel);
            } else if ("2".equals(type) || "3".equals(type) || "4".equals(type)) {
                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, lowlevel, type);
            } else if ("5".equals(type)) {
                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, lowlevel, "1");
            } else if ("6".equals(type)) {
                saveModels = elasticsearchUtil.findListDateQuotaLevel2NoSlaveKey1(quotaDate,area,level,index,SaveModel.timeLevel_DDL,lowlevel,"5");
                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, lowlevel, "5");
            }
        } else {
            //类型 1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消
//            if ("1".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, disease);
//            } else if ("2".equals(type) || "3".equals(type) || "4".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, disease, type);
//            } else if ("5".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, disease, "1");
//            } else if ("6".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, disease, "5");
//            }
            if ("1".equals(type)) {
                //总数String quotaDate,  String area, int level, String index, String timelevel,String lowLevel, String slaveKey2
                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate,area,level,index,"2",lowlevel,disease);
            } else if("2".equals(type) || "3".equals(type) || "4".equals(type)){
                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, disease, type);
            } else if("5".equals(type)){
                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, disease, "1");
            } else if("6".equals(type)){
                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, disease, "5");
                saveModels = elasticsearchUtil.findListDateQuotaLevel2NoSlaveKey2(quotaDate, area, level, index58, "2", lowlevel, disease);
            } else if ("2".equals(type) || "3".equals(type) || "4".equals(type)) {
                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index58, "2", lowlevel, disease, type);
            } else if ("5".equals(type)) {
                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index58, "2", lowlevel, disease, "1");
            } else if ("6".equals(type)) {
                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index58, "2", lowlevel, disease, "5");
            }
        }
        if ("5".equals(lowlevel)) {
@ -3217,9 +3201,9 @@ public class StatisticsESService {
        if (saveModels.size() > 0) {
            for (SaveModel one : saveModels) {
                map = new HashMap<>();
                if (Integer.parseInt(lowlevel) >= level) {
                    lowlevel = String.valueOf(level + 1);
                }
//                if (Integer.parseInt(lowlevel) >= level) {
//                    lowlevel = String.valueOf(level + 1);
//                }
                if (SaveModel.townLevel.equals(lowlevel)) {
                    map.put("code", one.getTown());
                    map.put("name", one.getTownName());
@ -3231,12 +3215,11 @@ public class StatisticsESService {
                    map.put("name", one.getTeamName());
                }
                map.put("val", one.getResult2().longValue());
                rs.add(map);
            }
        } else {
            //统计数据为空时,自建结果集
//            List<Map<String, Object>> resultList = new ArrayList<>();
//            resultList = getLowLevelMapKey(level, lowlevel, area);
            List<Town> townList = null;
            List<Hospital> hospitalList = null;
            List<AdminTeam> adminTeams = null;
@ -3269,8 +3252,9 @@ public class StatisticsESService {
                    map.put("val", 0);
                }
            }
            rs.add(map);
        }
        rs.add(map);
        return rs;
    }
@ -3300,7 +3284,7 @@ public class StatisticsESService {
     */
    public Map<String, Object> getPrescriptionAgeTotal(String level, String area, String disease) throws Exception {
        //统计长处方总数疾病和状态维度(去重相同患者)
        String index ="63";
        String index = "63";
        String quotaDate = elasticsearchUtil.getQuotaTime();
        //统计年龄分布
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, Integer.parseInt(level), index, "2", disease);
@ -3344,14 +3328,14 @@ public class StatisticsESService {
        //type二级指标,disease一级指标
        if (StringUtils.isNotBlank(disease)) {
            //自取
            selt = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime,area, level, index, "2", disease, "1");
            selt = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime, area, level, index, "2", disease, "1");
            //物流配送
            delivery = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime,area, level, index, "2", disease, "2");
            delivery = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime, area, level, index, "2", disease, "2");
            //健管师配送
            healthDoctor = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime,area, level, index, "2", disease, "3");
            healthDoctor = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime, area, level, index, "2", disease, "3");
        } else {
            //自取
            selt = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaTime, area, level, index,SaveModel.timeLevel_DDL, "1");
            selt = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaTime, area, level, index, SaveModel.timeLevel_DDL, "1");
            //物流配送
            delivery = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaTime, area, level, index, SaveModel.timeLevel_DDL, "2");
            //健管师配送
@ -3412,7 +3396,7 @@ public class StatisticsESService {
        List<SaveModel> resultList = new ArrayList<>();
        if (StringUtils.isNotBlank(disease)) {
            resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, "62", "2", "3",disease , type);
            resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, "62", "2", "3", disease, type);
        } else {
            resultList = elasticsearchUtil.findLineChartDateQuotaLevel2NoSlaveKey1(startTime, endTime, area, level, "62", "2", "3", type);
        }
@ -3572,7 +3556,7 @@ public class StatisticsESService {
                }
                Long num = (Long) count.get("num");
                String avg = "0.0";
                if(num!=0){
                if (num != 0) {
                    avg = decimalFormat.format(one.getResult1() / num);
                }
@ -3603,28 +3587,30 @@ public class StatisticsESService {
        List<Map<String, Object>> countList = new ArrayList<>();
        for (SaveModel one : list) {
            sql = "  select count(DISTINCT(s.patient)) as num from wlyy_prescription_pay p left join wlyy_prescription s on p.prescription_code = s. CODE  ";
            sql += " and  p.trace_time <= " + dateFormat3.format(one.getQuotaDate());
            if (SaveModel.townLevel.equals(level) || SaveModel.cityLevel.equals(level)) {
            sql += " and  p.trace_time <= '" + dateFormat3.format(one.getQuotaDate())+"'";
            if ( SaveModel.cityLevel.equals(level)) {
                sql += " and LEFT(s.hospital,4) ='" + area.substring(0,4) + "' ";
            }else if (SaveModel.townLevel.equals(level) ) {
                sql += " and LEFT(s.hospital,6) ='" + area + "' ";
            } else if (SaveModel.OrgLevel.equals(level)) {
                sql += " and s.hospital ='" + area + "' ";
            } else if (SaveModel.teamLevel.equals(level)) {
                sql += " and s.admin_team_id ='" + area + "' ";
                sql += " and s.admin_team_id ='" + area + "'";
            }
            Map<String, Object> count = jdbcTemplate.queryForMap(sql);
            Long num = (Long) count.get("num");
            String avg = "0.0";
            if(num!=0){
            if (num != 0) {
                avg = decimalFormat.format(one.getResult1() / num);
            }
            map = new HashMap<>();
            map.put("avg", avg);
            if("1".equals(type)){
            if ("1".equals(type)) {
                map.put("date", dateFormat.format(one.getQuotaDate()));
            }else if("2".equals(type)){
            } else if ("2".equals(type)) {
                map.put("date", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
            }else{
            } else {
                map.put("date", DateUtil.getMonth(dateFormat.format(one.getQuotaDate())));
            }
            countList.add(map);
@ -3634,16 +3620,19 @@ public class StatisticsESService {
    public Map<String, Object> getPrescriptionCost(String level, String area, String disease) throws Exception {
        SaveModel saveModel = null;
        String index = "61";
        String index = "61";//费用的指标code
        String quotaDate = elasticsearchUtil.getQuotaTime();
        if (StringUtils.isNotEmpty(disease)) {
            saveModel = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, Integer.parseInt(level), index, "2", disease);
        } else {
            saveModel = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, area, Integer.parseInt(level), index, "2");
            saveModel = elasticsearchUtil.findOneDateQuotaLevel1NoSlaveKey1(quotaDate, area, Integer.parseInt(level), index, "2");
        }
        //获取人数
        String sql = "  select count(DISTINCT(s.patient)) as num from wlyy_prescription_pay p left join wlyy_prescription s on p.prescription_code = s. CODE  ";
        sql += " and  p.create_time <= " + quotaDate;
        if (SaveModel.townLevel.equals(level) || SaveModel.cityLevel.equals(level)) {
        sql += " and  p.create_time <= '" + quotaDate+"'";
        if ( SaveModel.cityLevel.equals(level)) {
            sql += " and LEFT(s.hospital,4) ='" + area.substring(0,4) + "' ";
        }else if (SaveModel.townLevel.equals(level) ) {
            sql += " and LEFT(s.hospital,6) ='" + area + "' ";
        } else if (SaveModel.OrgLevel.equals(level)) {
            sql += " and s.hospital ='" + area + "' ";
@ -3653,16 +3642,16 @@ public class StatisticsESService {
        Map<String, Object> count = jdbcTemplate.queryForMap(sql);
        Long num = (Long) count.get("num");
        Map<String, Object> rs = new HashedMap();
        BigDecimal s = BigDecimal.valueOf(num);
        BigDecimal s = BigDecimal.valueOf(saveModel.getResult1());
        BigDecimal a = null;
        if(num==0){
            a = BigDecimal.valueOf(0.0);
        }else{
            a = BigDecimal.valueOf(saveModel.getResult2().longValue() / num);
        if (num == 0) {
            a = BigDecimal.valueOf(0.0);
        } else {
            a = BigDecimal.valueOf(saveModel.getResult1().longValue() / num);
        }
        rs.put("sum", s.divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP));
        rs.put("avg", a.divide((new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_UP));
        rs.put("sum", s.divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP));//费用总计  单位是0 所以除以100四舍五入
        rs.put("avg", a.divide((new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_UP));//人均费用  单位是0 所以除以100四舍五入
        return rs;
    }
@ -3675,7 +3664,7 @@ public class StatisticsESService {
        json.put("avgCount", getRangeDouuble(saveModel.getResult1(), saveModel.getResult2().intValue(), 2));
        resultJSON.put("rs",json);
        resultJSON.put("rs", json);
        return resultJSON;
    }
}

+ 100 - 34
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/ElasticsearchUtil.java

@ -334,23 +334,14 @@ public class ElasticsearchUtil {
     * @param level         等级
     * @param index         指标
     * @param timeLevel     1增量 2到达量
     * @param slaveKeyValue 一级维度
     * @param slaveKey1 一级维度
     * @param interval      1日 2周 3月
     * @param lowLevel      下个等级
     * @return
     * @throws Exception
     */
    public List findDateQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timeLevel, int keyNum, String slaveKeyValue, String interval, String lowLevel) throws Exception {
        String slaveKey = "";
        String slaveKeyName = "";
        if (keyNum == 1) {
            slaveKey = "slaveKey1";
            slaveKeyName = "slaveKey1Name";
        } else if (keyNum == 2) {
            slaveKey = "slaveKey2";
            slaveKeyName = "slaveKey2Name";
        }
    public List findDateQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timeLevel,  String slaveKey1, String interval, String lowLevel) throws Exception {
        //时间格式转换  yyyy-MM-dd转成 2017-07-17T00:00:00+0800
        if (StringUtils.isNotEmpty(startDate)) {
            if (startDate.length() > 10) {
@ -373,17 +364,29 @@ public class ElasticsearchUtil {
            low_level = lowLevel;
        }
        if (SaveModel.teamLevel.equals(low_level)) {
            sql.append("select team,teamName," + slaveKey + "," + slaveKeyName + ",sum(result1) result1, sum(result2) result2 from " + esIndex + " where ");
            groupBy.append("  group by team,teamName," + slaveKey + "," + slaveKeyName);
            sql.append("select team,teamName,slaveKey1,slaveKey1Name,sum(result1) result1, sum(result2) result2 from " + esIndex + " where ");
            groupBy.append("  group by team,teamName");
            if (!org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
                groupBy.append(",slaveKey1,slaveKey1Name");
            }
        } else if (SaveModel.OrgLevel.equals(low_level)) {
            sql.append("select hospital,hospitalName," + slaveKey + "," + slaveKeyName + ",sum(result1) result1,sum(result2) result2 from " + esIndex + " where ");
            groupBy.append("  group by hospital,hospitalName," + slaveKey + "," + slaveKeyName);
            sql.append("select hospital,hospitalName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2 from " + esIndex + " where ");
            groupBy.append("  group by hospital,hospitalName");
            if (!org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
                groupBy.append(",slaveKey1,slaveKey1Name");
            }
        } else if (SaveModel.townLevel.equals(low_level)) {
            sql.append("select town,townName," + slaveKey + ",slaveKey1Name,sum(result1) result1,sum(result2) result2 from " + esIndex + " where ");
            groupBy.append("  group by town,townName," + slaveKey + "," + slaveKeyName);
            sql.append("select town,townName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2 from " + esIndex + " where ");
            groupBy.append("  group by town,townName" );
            if (!org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
                groupBy.append(",slaveKey1,slaveKey1Name");
            }
        } else if (SaveModel.cityLevel.equals(low_level)) {
            sql.append("select city,cityName," + slaveKey + "," + slaveKeyName + ",sum(result1) result1,sum(result2) result2 from " + esIndex + " where ");
            groupBy.append("  group by city,cityName," + slaveKey + "," + slaveKeyName);
            sql.append("select city,cityName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2 from " + esIndex + " where ");
            groupBy.append("  group by city,cityName");
            if (!org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
                groupBy.append(",slaveKey1,slaveKey1Name");
            }
        }
        if (StringUtils.isNotEmpty(area)) {
@ -408,8 +411,8 @@ public class ElasticsearchUtil {
        if (StringUtils.isNotEmpty(endDate)) {
            sql.append(" and quotaDate<='" + endDate + "'");
        }
        if (StringUtils.isNotEmpty(slaveKeyValue)) {
            sql.append(" and " + slaveKey + "='" + slaveKeyValue + "'  ");
        if (StringUtils.isNotEmpty(slaveKey1)) {
            sql.append(" and slaveKey1='" + slaveKey1 + "'  ");
        }
        //根据时间维度分组
@ -633,7 +636,22 @@ public class ElasticsearchUtil {
     * @return
     */
    public SaveModel findOneDateQuotaLevel1(String quotaDate, String area, int level, String index, String timelevel, String slaveKey1) throws Exception {
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel, 1, slaveKey1, null, null);
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel,  slaveKey1, null, null);
        return (SaveModel) list.get(0);
    }
    /**
     * 1级维度
     * 查询某一天某一个1级维度的某个1级维度下的指标 例如查询65岁以上患者
     *
     * @param quotaDate 时间 yyyy-mm-dd
     * @param area      code  厦门市 350200
     * @param level     等级 1 省 2 市 3 区县 4 机构 5团队
     * @param index     指标code
     * @param timelevel // 1日 2年
     * @return
     */
    public SaveModel findOneDateQuotaLevel1NoSlaveKey1(String quotaDate, String area, int level, String index, String timelevel) throws Exception {
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel,  null, null, null);
        return (SaveModel) list.get(0);
    }
@ -651,7 +669,7 @@ public class ElasticsearchUtil {
     * @return
     */
    public SaveModel findOneDateQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timelevel, String slaveKey1) throws Exception {
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, 1, slaveKey1, null, null);
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,  slaveKey1, null, null);
        return (SaveModel) list.get(0);
    }
@ -667,7 +685,7 @@ public class ElasticsearchUtil {
     * @return
     */
    public List<SaveModel> findOneDateQuotaLevel1(String quotaDate, String area, int level, String index, String timelevel) throws Exception {
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel, 1, null, null, null);
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel, null, null, null);
        return list;
    }
@ -682,7 +700,7 @@ public class ElasticsearchUtil {
     * @return
     */
    public List<SaveModel> findOneDateQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timelevel) throws Exception {
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, 1, null, null, null);
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,  null, null, null);
        return list;
    }
@ -810,10 +828,27 @@ public class ElasticsearchUtil {
     * @return
     */
    public List<SaveModel> findLineChartDateQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timelevel, String interval, String slaveKey1) throws Exception {
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, 1, slaveKey1, interval, null);
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,  slaveKey1, interval, null);
        return list;
    }
    /**
     * 折线图
     * 1级维度
     * 查询某个1级维度的某个1级维度下的折线图 例如查询65岁以上患者
     *
     * @param startDate 开始时间 yyyy-mm-dd  包含头
     * @param endDate   结束时间 yyyy-mm-dd  包含头
     * @param area      code  厦门市 350200 code 和level是对应的
     * @param level     等级 1 省 2 市 3 区县 4 机构 5团队
     * @param index     指标code
     * @param timelevel 1增量   2到达量(按照年度)
     * @param interval  1日 2周 3月 (按照日周月聚合)
     * @return
     */
    public List<SaveModel> findLineChartDateQuotaLevel1NoSlaveKey1(String startDate, String endDate, String area, int level, String index, String timelevel, String interval) throws Exception {
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,  null, interval, null);
        return list;
    }
    /**
     * 折线图
     * 2级维度
@ -834,6 +869,7 @@ public class ElasticsearchUtil {
        List list = findDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, slaveKey1, slaveKey2, interval, null);
        return list;
    }
    /**
     * 折线图
     * 2级维度只根绝第二个指标聚合
@ -850,9 +886,10 @@ public class ElasticsearchUtil {
     * @return
     */
    public List<SaveModel> findLineChartDateQuotaLevel2NoSlaveKey1(String startDate, String endDate, String area, int level, String index, String timelevel, String interval, String slaveKey2) throws Exception {
        List list = findLineChartDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, interval, null,slaveKey2 );
        List list = findLineChartDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, interval, null, slaveKey2);
        return list;
    }
    /**
     * 折线图
     * 2级维度只根绝第一个指标聚合
@ -869,9 +906,10 @@ public class ElasticsearchUtil {
     * @return
     */
    public List<SaveModel> findLineChartDateQuotaLevel2NoSlaveKey2(String startDate, String endDate, String area, int level, String index, String timelevel, String interval, String slaveKey1) throws Exception {
        List list = findLineChartDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, interval, slaveKey1,null );
        List list = findLineChartDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, interval, slaveKey1, null);
        return list;
    }
    /**
     * 折线图
     * 2级维度只根绝第一个指标聚合
@ -887,9 +925,10 @@ public class ElasticsearchUtil {
     * @return
     */
    public List<SaveModel> findLineChartDateQuotaLevel2NoSlaveKey1NoSlaveKey2(String startDate, String endDate, String area, int level, String index, String timelevel, String interval) throws Exception {
        List list = findLineChartDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, interval, null,null );
        List list = findLineChartDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, interval, null, null);
        return list;
    }
    /**
     * 列表
     * 0级维度
@ -944,10 +983,26 @@ public class ElasticsearchUtil {
     * @return
     */
    public List<SaveModel> findListDateQuotaLevel1(String quotaDate, String area, int level, String index, String timelevel, String lowLevel, String slaveKey1) throws Exception {
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel, 1, slaveKey1, null, lowLevel);
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel, slaveKey1, null, lowLevel);
        return list;
    }
    /**
     * 列表
     * 1级维度
     * 查询某个1级维度的某个1级维度下的列表 例如查询65岁以上患者
     *
     * @param quotaDate 时间 yyyy-mm-dd  包含头
     * @param area      code  厦门市 350200 code 和level是对应的
     * @param level     等级 1 省 2 市 3 区县 4 机构 5团队
     * @param index     指标code
     * @param timelevel 1增量   2到达量(按照年度)
     * @param lowLevel  下一级区域等级   1 省 2 市 3 区县 4 机构 5团队
     * @return
     */
    public List<SaveModel> findListDateQuotaLevel1NoSlaveKey1(String quotaDate, String area, int level, String index, String timelevel, String lowLevel) throws Exception {
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel, null, null, lowLevel);
        return list;
    }
    /**
     * 列表
@ -965,7 +1020,7 @@ public class ElasticsearchUtil {
     * @return
     */
    public List<SaveModel> findListDateQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timelevel, String lowLevel, String slaveKey1) throws Exception {
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, 1, slaveKey1, null, lowLevel);
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, slaveKey1, null, lowLevel);
        return list;
    }
@ -993,6 +1048,17 @@ public class ElasticsearchUtil {
        List list = findDateQuotaLevel2(quotaDate, quotaDate, area, level, index, timelevel, null, slaveKey2, null, lowLevel);
        return list;
    }
    public List<SaveModel> findListDateQuotaLevel2NoSlaveKey2(String quotaDate, String area, int level, String index, String timelevel, String lowLevel, String slaveKey1) throws Exception {
        List list = findDateQuotaLevel2(quotaDate, quotaDate, area, level, index, timelevel, slaveKey1, null, null, lowLevel);
        return list;
    }
    public List<SaveModel> findListDateQuotaLevel2NoSlaveKey1NoSlaveKey2(String quotaDate, String area, int level, String index, String timelevel, String lowLevel) throws Exception {
        List list = findDateQuotaLevel2(quotaDate, quotaDate, area, level, index, timelevel, null, null, null, lowLevel);
        return list;
    }
    /**
     * 列表
     * 2级维度

+ 6 - 14
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/statistic/EsStatisticsController.java

@ -1622,19 +1622,6 @@ public class EsStatisticsController extends BaseController {
    //=================================长处方分析===============================================
//    @RequestMapping("/getPrescriptionCount")
//    @ResponseBody
//    @ApiOperation("订单统计-顶部总数获取")
//    public String getPrescriptionCount(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
//                                       @ApiParam(name="area", value="级别对应编码") @RequestParam(required = true)String area,
//                                       @ApiParam(name="disease", value="疾病类型") @RequestParam(required = false)String disease){
//        try{
//            return write(200, "查询成功", "data", statisticsESService.getPrescriptionCount(elasticsearchUtil.changeLevel(Integer.valueOf(level)),area,disease));
//        } catch (Exception e) {
//            error(e);
//            return error(-1, "查询失败");
//        }
//    }
    /**
     *年龄统计-下部列表(疾病维度)
@ -1737,7 +1724,12 @@ public class EsStatisticsController extends BaseController {
                                               @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease,
                                               @ApiParam(name="type", value="类型1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消") @RequestParam(required = true)String type){
        try{
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionTotalLowLevel(elasticsearchUtil.changeLevel(level),String.valueOf(elasticsearchUtil.changeLevel(lowlevel)),area,disease,type));
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionTotalLowLevel(
                    elasticsearchUtil.changeLevel(level),
                    String.valueOf(elasticsearchUtil.changeLevel(lowlevel)),
                    area,
                    disease,
                    type));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");