chenweida 7 gadi atpakaļ
vecāks
revīzija
2a00c955d5

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

@ -167,9 +167,9 @@ public class StatisticsESService {
        List<SaveModel>  list = null;
        if(StringUtils.isNotEmpty(level2_type)) {
            list = elasticsearchUtil.findOneDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type,interval,null);
            list = elasticsearchUtil.findDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type,interval,null);
        }else{
            list = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,area,level,index,"1",interval,null);
            list = elasticsearchUtil.findDateQuotaLevel0(startDate,endDate,area,level,index,"1",interval,null);
        }
        List<JSONObject> result = new ArrayList<>();
        for (SaveModel saveModel:list){
@ -191,7 +191,7 @@ public class StatisticsESService {
     * @return
     */
    public long getIntervalIncrement(String startDate, String endDate, String area, int level, String index) throws Exception {
        List<SaveModel>  list = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,area,level,index,"1",null,null);
        List<SaveModel>  list = elasticsearchUtil.findDateQuotaLevel0(startDate,endDate,area,level,index,"1",null,null);
        if(list.size()>0){
            return list.get(0).getResult2();
        }
@ -273,11 +273,11 @@ public class StatisticsESService {
        List<SaveModel>  list = null;
        if(StringUtils.isNotEmpty(level2_type)){
            list = elasticsearchUtil.findOneDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type,null,null);
            list = elasticsearchUtil.findDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type,null,null);
        }else{
            list = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,area,level,index,"1",null,null);
            list = elasticsearchUtil.findDateQuotaLevel0(startDate,endDate,area,level,index,"1",null,null);
        }
//        List<SaveModel>  list = findOneDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type,null,null);
//        List<SaveModel>  list = findDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type,null,null);
        if(list.size()>0){
            return list.get(0).getResult2();
        }
@ -307,12 +307,12 @@ public class StatisticsESService {
        List<SaveModel>  list = null;
//        if(StringUtils.isNotEmpty(level2_type)){
//
//            list = findOneDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type,null,lowLevel);
//            list = findDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type,null,lowLevel);
//        }else{
//            list = findOneDateQuotaLevel0(startDate,endDate,area,level,index,"1",null,lowLevel);
//            list = findDateQuotaLevel0(startDate,endDate,area,level,index,"1",null,lowLevel);
//        }
        list = lowLevel(startDate,endDate,area,level, index,"1",lowLevel,level2_type);
//        List<SaveModel>  list = findOneDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type,null,lowLevel);
//        List<SaveModel>  list = findDateQuotaLevel1(startDate,endDate,area,level,index,"1",level2_type,null,lowLevel);
        if (org.springframework.util.StringUtils.isEmpty(year)) {
            year = Constant.getNowYear();
        }
@ -425,7 +425,7 @@ public class StatisticsESService {
    public JSONArray getIndexLevelTwototal(String endDate, String area, int level, String index) throws Exception{
//        List<SaveModel> list =findOneDateQuotaLevel2(endDate, area, level, index,"1","");
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel1(endDate,endDate,area,level,index,"2",null,null,null);
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate,endDate,area,level,index,"2",null,null,null);
        List<Map<String, Object>> resultList = new ArrayList<>();
        DecimalFormat df = new DecimalFormat("0.0000");
        long total = 0;
@ -470,7 +470,7 @@ public class StatisticsESService {
        if (!index.equals("8")) {
            if (index.equals("36")) {
                //如果是查询36的指标 那么除数是签约总数
                List<SaveModel> list2 = elasticsearchUtil.findOneDateQuotaLevel1(endDate,endDate, area, level, "1","2",null,null,null);
                List<SaveModel> list2 = elasticsearchUtil.findDateQuotaLevel1(endDate,endDate, area, level, "1","2",null,null,null);
                Integer num=0;
                if(list2.size()>0){
                    num = list2.get(0).getResult2();
@ -530,8 +530,8 @@ public class StatisticsESService {
     */
    public long getIndexTotal(String endDate, String area, int level, String index,String timeLevel) throws Exception{
//        List<SaveModel> list =findOneDateQuotaLevel1("",endDate, area, level, index,timeLevel,null,null);
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel0(endDate,endDate, area, level, index,timeLevel,null,null);
//        List<SaveModel> list =findDateQuotaLevel1("",endDate, area, level, index,timeLevel,null,null);
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(endDate,endDate, area, level, index,timeLevel,null,null);
//        List<SaveModel> list =elasticsearchUtil.excute(sql.toString(),SaveModel.class,"","");
        if(list.size()>0){
@ -550,7 +550,7 @@ public class StatisticsESService {
     */
    public long getWeiJiaoFei(String endDate, String area, int level) throws Exception{
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel1(endDate,endDate,area,level,"16","2","0",null,null);
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate,endDate,area,level,"16","2","0",null,null);
        if(list.size()>0){
            return list.get(0).getResult2();
        }
@ -575,7 +575,7 @@ public class StatisticsESService {
            renewIndex = "29";
        }
        String timeKey = elasticsearchUtil.getQuotaTime();
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel0(timeKey,timeKey,area,Integer.parseInt(level),renewIndex,"2",null,null);
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(timeKey,timeKey,area,Integer.parseInt(level),renewIndex,"2",null,null);
        int renewNum = 0;
        if(list.size()>0){
            renewNum = list.get(0).getResult2();
@ -583,7 +583,7 @@ public class StatisticsESService {
        //根据年度获取去年的签约数 签约指标是1
        String date = year + "-06-30";
        String index = "1";
        List<SaveModel> list2 = elasticsearchUtil.findOneDateQuotaLevel0(date,date,area,Integer.parseInt(level),index,"2",null,null);
        List<SaveModel> list2 = elasticsearchUtil.findDateQuotaLevel0(date,date,area,Integer.parseInt(level),index,"2",null,null);
        int signNum = 0;
        if (list2.size()>0) {
            signNum = list2.get(0).getResult2();
@ -606,7 +606,7 @@ public class StatisticsESService {
    public JSONObject getSignRate(String endDate, String area, int level, String year) throws Exception {
        long signAmount = 0;
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel0(endDate,endDate,area,level,"13","2",null,null);
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(endDate,endDate,area,level,"13","2",null,null);
        if(list.size()>0){
            signAmount = list.get(0).getResult2();
        }
@ -636,7 +636,7 @@ public class StatisticsESService {
     * @return
     */
    public JSONObject getSignTaskRate(String endDate, String area, int level, String year) throws Exception {
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel0(endDate,endDate,area,level,"13","2",null,null);
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(endDate,endDate,area,level,"13","2",null,null);
        long signAmount = 0;
        if(list.size()>0){
            signAmount = list.get(0).getResult2();
@ -668,7 +668,7 @@ public class StatisticsESService {
     * @return
     */
    public JSONObject getGroupInfo(String endDate, String lowCode, String area, int level, String year) throws Exception {
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel1(endDate,endDate,area,level,"17","2",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();
@ -736,7 +736,7 @@ public class StatisticsESService {
     * @return
     */
    public JSONArray getSixFiveStatistics(String endDate, String area, int level) throws Exception{
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel2(endDate,endDate,area,level,"12","2","6",null,null,null);
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel2(endDate,endDate,area,level,"12","2","6",null,null,null);
        List<Map<String, Object>> resultList = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            Map<String, Object> data = new HashMap<>();
@ -804,7 +804,7 @@ public class StatisticsESService {
     */
    public long getSixFiveTotal(String endDate, String area, int level) throws Exception{
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel1(endDate,endDate,area,level,"8","2","6",null,null);
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate,endDate,area,level,"8","2","6",null,null);
        if(list.size()>0){
            return list.get(0).getResult2();
        }
@ -851,9 +851,9 @@ public class StatisticsESService {
        List<SaveModel> list = null;
        if(StringUtils.isNotEmpty(lowCode)){
            //一级维度
            list = elasticsearchUtil.findOneDateQuotaLevel1(startDate,endDate,area,level,index,"2",lowCode,interval+"",null);
            list = elasticsearchUtil.findDateQuotaLevel1(startDate,endDate,area,level,index,"2",lowCode,interval+"",null);
        }else{
            list = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,area,level,index,"2",interval+"",null);
            list = elasticsearchUtil.findDateQuotaLevel0(startDate,endDate,area,level,index,"2",interval+"",null);
        }
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        List<JSONObject> result = new ArrayList<>();

+ 238 - 68
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/ElasticsearchUtil.java

@ -64,9 +64,9 @@ public class ElasticsearchUtil {
            }
            SearchResponse response = (SearchResponse) requestBuilder.get();
            Object queryResult = null;
            if(sql.toUpperCase().indexOf("GROUP")!=-1||sql.toUpperCase().indexOf("SUM")!=-1){
            if (sql.toUpperCase().indexOf("GROUP") != -1 || sql.toUpperCase().indexOf("SUM") != -1) {
                queryResult = response.getAggregations();
            }else{
            } else {
                queryResult = response.getHits();
            }
            ObjectResult temp = new ObjectResultsExtractor(true, true, true).extractResults(queryResult, true);
@ -82,15 +82,15 @@ public class ElasticsearchUtil {
                    try {
                        String key = null;
                        Object value = one.get(i);
                        if(heads.get(i).startsWith("_")){
                        if (heads.get(i).startsWith("_")) {
                            continue;
                        }
                        key = "set" + UpFirstStr(heads.get(i));
                        if (heads.get(i).contains("quotaDate")||heads.get(i).contains("createTime")||heads.get(i).contains("date_histogram")) {
                            if(heads.get(i).contains("date_histogram")){
                        if (heads.get(i).contains("quotaDate") || heads.get(i).contains("createTime") || heads.get(i).contains("date_histogram")) {
                            if (heads.get(i).contains("date_histogram")) {
                                key = "setQuotaDate";
                            }
                            value = DateUtil.strToDate(String.valueOf(value).replace("T00:00:00+0800"," 00:00:00"), "yyyy-MM-dd HH:mm:ss");
                            value = DateUtil.strToDate(String.valueOf(value).replace("T00:00:00+0800", " 00:00:00"), "yyyy-MM-dd HH:mm:ss");
                        }
                        if (value instanceof String) {
@ -188,7 +188,7 @@ public class ElasticsearchUtil {
                    Object value = temp.getLines().get(0).get(i);
                    if (heads.get(i).contains("createTime")) {
                        key = "setCreateTime";
                        value = DateUtil.strToDate(String.valueOf(value).replace("+0800","").replace("T"," "), "yyyy-MM-dd HH:mm:ss");
                        value = DateUtil.strToDate(String.valueOf(value).replace("+0800", "").replace("T", " "), "yyyy-MM-dd HH:mm:ss");
                    } else {
                        key = "set" + UpFirstStr(heads.get(i));
                    }
@ -214,32 +214,34 @@ public class ElasticsearchUtil {
    }
    /**
     * 0级指标查询列表
     * 获取所有指标的增量、到达量
     * 备注:原来接口的一级指标对应现在的
     *
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @param area 区域code
     * @param level 等级
     * @param index 指标
     * @param endDate   结束时间
     * @param area      区域code
     * @param level     等级
     * @param index     指标
     * @param timeLevel 1增量 2到达量
     * @param interval 1日 2周 3月
     * @param lowLevel 下一级区域等级
     * @param interval  1日 2周 3月
     * @param lowLevel  下一级区域等级
     * @return
     * @throws Exception
     */
    public List findOneDateQuotaLevel0(String startDate,String endDate, String area, int level, String index,String timeLevel,String interval,String lowLevel) throws Exception {
    public List findDateQuotaLevel0(String startDate, String endDate, String area, int level, String index, String timeLevel, String interval, String lowLevel) throws Exception {
        //时间格式转换  yyyy-MM-dd转成 2017-07-17T00:00:00+0800
        if(StringUtils.isNotEmpty(startDate)){
        if (StringUtils.isNotEmpty(startDate)) {
            startDate = changeDate(startDate);
        }
        if(StringUtils.isNotEmpty(endDate)){
        if (StringUtils.isNotEmpty(endDate)) {
            endDate = changeDate(endDate);
        }
        StringBuffer sql = new StringBuffer();
        StringBuffer groupBy = new StringBuffer();
        String low_level = level+"";
        if(StringUtils.isNotEmpty(lowLevel)){
        String low_level = level + "";
        if (StringUtils.isNotEmpty(lowLevel)) {
            low_level = lowLevel;
        }
@ -257,28 +259,28 @@ public class ElasticsearchUtil {
            groupBy.append("  group by city,cityName");
        }
        if (SaveModel.teamLevel.equals(level+"")) {
        if (SaveModel.teamLevel.equals(level + "")) {
            sql.append(" and team='" + area + "'");
        } else if (SaveModel.OrgLevel.equals(level+"")) {
        } else if (SaveModel.OrgLevel.equals(level + "")) {
            sql.append(" and hospital='" + area + "'");
        } else if (SaveModel.townLevel.equals(level+"")) {
        } else if (SaveModel.townLevel.equals(level + "")) {
            sql.append(" and town='" + area + "'");
        } else if (SaveModel.cityLevel.equals(level+"")) {
        } else if (SaveModel.cityLevel.equals(level + "")) {
            sql.append(" and city='" + area + "'");
        }
        sql.append(" and quotaCode='"+index+"'  ");
        sql.append(" and timeLevel='"+timeLevel+"'  ");
        sql.append(" and quotaCode='" + index + "'  ");
        sql.append(" and timeLevel='" + timeLevel + "'  ");
        sql.append(" and areaLevel='5'");
        if(StringUtils.isNotEmpty(startDate)){
        if (StringUtils.isNotEmpty(startDate)) {
            sql.append(" and quotaDate>='" + startDate + "'");
        }
        if(StringUtils.isNotEmpty(endDate)){
        if (StringUtils.isNotEmpty(endDate)) {
            sql.append(" and quotaDate<='" + endDate + "'");
        }
        //根据时间维度分组
        if(StringUtils.isNotEmpty(interval)){
        if (StringUtils.isNotEmpty(interval)) {
            if (SaveModel.interval_month.equals(interval)) {
                groupBy.append(" ,date_histogram(field='quotaDate','interval'='month') ");
            } else if (SaveModel.interval_week.equals(interval)) {
@ -289,38 +291,40 @@ public class ElasticsearchUtil {
        }
        sql.append(groupBy);
        return excute(sql.toString(),SaveModel.class,"","");
        return excute(sql.toString(), SaveModel.class, "", "");
    }
    /**
     * 一级指标查询列表
     * 获取一级指标的增量、到达量
     * 备注:原接口的二级指标对应现在的一级指标
     *
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @param area 区域code
     * @param level 等级
     * @param index 指标
     * @param endDate   结束时间
     * @param area      区域code
     * @param level     等级
     * @param index     指标
     * @param timeLevel 1增量 2到达量
     * @param slaveKey1 一级维度
     * @param interval 1日 2周 3月
     * @param lowLevel 下个等级
     * @param interval  1日 2周 3月
     * @param lowLevel  下个等级
     * @return
     * @throws Exception
     */
    public List findOneDateQuotaLevel1(String startDate,String endDate, String area, int level, String index,String timeLevel,String slaveKey1,String interval,String lowLevel ) throws Exception{
    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 (StringUtils.isNotEmpty(startDate)) {
            startDate = changeDate(startDate);
        }
        if(StringUtils.isNotEmpty(endDate)){
        if (StringUtils.isNotEmpty(endDate)) {
            endDate = changeDate(endDate);
        }
        StringBuffer sql = new StringBuffer();
        StringBuffer groupBy = new StringBuffer();
        String low_level = level+"";
        if(StringUtils.isNotEmpty(lowLevel)){
        String low_level = level + "";
        if (StringUtils.isNotEmpty(lowLevel)) {
            low_level = lowLevel;
        }
        if (SaveModel.teamLevel.equals(low_level)) {
@ -346,21 +350,21 @@ public class ElasticsearchUtil {
        } else if (SaveModel.cityLevel.equals(lowLevel)) {
            sql.append(" and city='" + area + "'");
        }
        sql.append(" and quotaCode='"+index+"'  ");
        sql.append(" and timeLevel='"+timeLevel+"'  ");
        sql.append(" and quotaCode='" + index + "'  ");
        sql.append(" and timeLevel='" + timeLevel + "'  ");
        sql.append(" and areaLevel='5'");
        if(StringUtils.isNotEmpty(startDate)){
        if (StringUtils.isNotEmpty(startDate)) {
            sql.append(" and quotaDate>='" + startDate + "'");
        }
        if(StringUtils.isNotEmpty(endDate)){
        if (StringUtils.isNotEmpty(endDate)) {
            sql.append(" and quotaDate<='" + endDate + "'");
        }
        if(StringUtils.isNotEmpty(slaveKey1)){
            sql.append(" and slaveKey1='"+slaveKey1+"'  ");
        if (StringUtils.isNotEmpty(slaveKey1)) {
            sql.append(" and slaveKey1='" + slaveKey1 + "'  ");
        }
        //根据时间维度分组
        if(StringUtils.isNotEmpty(interval)){
        if (StringUtils.isNotEmpty(interval)) {
            if (SaveModel.interval_month.equals(interval)) {
                groupBy.append(" ,date_histogram(field='quotaDate','interval'='month') ");
            } else if (SaveModel.interval_week.equals(interval)) {
@ -371,37 +375,39 @@ public class ElasticsearchUtil {
        }
        sql.append(groupBy);
        return excute(sql.toString(),SaveModel.class,"","");
        return excute(sql.toString(), SaveModel.class, "", "");
    }
    /**
     * 二级指标查询列表
     * 获取二级指标的增量、到达量
     * 备注:原接口的三级指标对应现在的二级指标
     *
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @param area 区域code
     * @param level 等级
     * @param index 指标
     * @param endDate   结束时间
     * @param area      区域code
     * @param level     等级
     * @param index     指标
     * @param timeLevel 1增量 2到达量
     * @param slaveKey1 一级维度code
     * @param slaveKey2 二级维度code
     * @param interval 1日 2周 3月
     * @param lowLevel 下一等级
     * @param interval  1日 2周 3月
     * @param lowLevel  下一等级
     * @return
     */
    public List findOneDateQuotaLevel2(String startDate,String endDate, String area, int level, String index,String timeLevel,String slaveKey1,String slaveKey2,String interval,String lowLevel){
    public List findDateQuotaLevel2(String startDate, String endDate, String area, int level, String index, String timeLevel, String slaveKey1, String slaveKey2, String interval, String lowLevel) {
        //时间格式转换  yyyy-MM-dd转成 2017-07-17T00:00:00+0800
        if(StringUtils.isNotEmpty(startDate)){
        if (StringUtils.isNotEmpty(startDate)) {
            startDate = changeDate(startDate);
        }
        if(StringUtils.isNotEmpty(endDate)){
        if (StringUtils.isNotEmpty(endDate)) {
            endDate = changeDate(endDate);
        }
        StringBuffer sql = new StringBuffer();
        StringBuffer groupBy = new StringBuffer();
        String low_level = level+"";
        if(StringUtils.isNotEmpty(lowLevel)){
        String low_level = level + "";
        if (StringUtils.isNotEmpty(lowLevel)) {
            low_level = lowLevel;
        }
        if (SaveModel.teamLevel.equals(low_level)) {
@ -429,24 +435,24 @@ public class ElasticsearchUtil {
            sql.append(" and city='" + area + "'");
        }
        sql.append(" and quotaCode='" + index + "'  ");
        sql.append(" and timeLevel='"+timeLevel+"'  ");
        sql.append(" and timeLevel='" + timeLevel + "'  ");
        sql.append(" and areaLevel='5'");
        if(StringUtils.isNotEmpty(startDate)){
        if (StringUtils.isNotEmpty(startDate)) {
            sql.append(" and quotaDate>='" + startDate + "'");
        }
        if(StringUtils.isNotEmpty(endDate)){
        if (StringUtils.isNotEmpty(endDate)) {
            sql.append(" and quotaDate<='" + endDate + "'");
        }
        if(StringUtils.isNotBlank(slaveKey1)){
            sql.append(" and slaveKey1='"+slaveKey1+"'");
        if (StringUtils.isNotBlank(slaveKey1)) {
            sql.append(" and slaveKey1='" + slaveKey1 + "'");
        }
        if(StringUtils.isNotBlank(slaveKey2)){
            sql.append(" and slaveKey2='"+slaveKey2+"'");
        if (StringUtils.isNotBlank(slaveKey2)) {
            sql.append(" and slaveKey2='" + slaveKey2 + "'");
        }
        //根据时间维度分组
        if(StringUtils.isNotEmpty(interval)){
        if (StringUtils.isNotEmpty(interval)) {
            if (SaveModel.interval_month.equals(interval)) {
                groupBy.append(" ,date_histogram(field='quotaDate','interval'='month') ");
            } else if (SaveModel.interval_week.equals(interval)) {
@ -456,7 +462,7 @@ public class ElasticsearchUtil {
            }
        }
        sql.append(groupBy);
        return excute(sql.toString(),SaveModel.class,"","");
        return excute(sql.toString(), SaveModel.class, "", "");
    }
    /**
@ -469,11 +475,175 @@ public class ElasticsearchUtil {
    }
    //获取最新更新的时间
    public String getQuotaTime(){
    public String getQuotaTime() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date today = new Date();
        String todayString = simpleDateFormat.format(today);
        todayString = changeDate(todayString);
        return todayString;
    }
    /**
     * 0级维度
     * 查询某一天某一个0级维度的指标
     *
     * @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 findOneDateQuotaLevel0(String quotaDate, String area, int level, String index, String timelevel) throws Exception {
        List list = findDateQuotaLevel0(quotaDate, quotaDate, area, level, index, timelevel, 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年
     * @param slaveKey1  一级维度的key
     * @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,slaveKey1, null, null);
        return (SaveModel) list.get(0);
    }
    /**
     * 2级维度
     * 查询某一天某一个2级维度的某个1级维度和2级维度下的指标  例如查询65岁以上的高血压患者
     *
     * @param quotaDate 时间 yyyy-mm-dd
     * @param area      code  厦门市 350200
     * @param level     等级 1 省 2 市 3 区县 4 机构 5团队
     * @param index     指标code
     * @param timelevel // 1日 2年
     * @param slaveKey1  一级维度的key
     * @param slaveKey2  二级维度的key
     * @return
     */
    public SaveModel findOneDateQuotaLevel2(String quotaDate, String area, int level, String index, String timelevel, String slaveKey1, String slaveKey2) throws Exception {
        List list = findDateQuotaLevel2(quotaDate, quotaDate, area, level, index, timelevel,slaveKey1,slaveKey2, null, null);
        return (SaveModel) list.get(0);
    }
    /**
     * 折线图
     * 0级维度
     * 查询某个0级维度的指标折线图
     *
     * @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
     * @throws Exception
     */
    public SaveModel findLineChartDateQuotaLevel0(String startDate,String endDate,  String area, int level, String index, String timelevel,String interval) throws Exception {
        List list = findDateQuotaLevel0(startDate, endDate, area, level, index, timelevel, interval, null);
        return (SaveModel) list.get(0);
    }
    /**
     * 折线图
     * 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月 (按照日周月聚合)
     * @param slaveKey1  一级维度的key
     * @return
     */
    public 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,slaveKey1, interval, null);
        return (SaveModel) list.get(0);
    }
    /**
     * 折线图
     * 2级维度
     * 查询某个2级维度的某个1级维度和2级维度下的折线图  例如查询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月 (按照日周月聚合)
     * @param slaveKey1  一级维度的key
     * @param slaveKey2  二级维度的key
     * @return
     */
    public SaveModel findLineChartDateQuotaLevel2(String startDate,String endDate,  String area, int level, String index, String timelevel,String interval, String slaveKey1, String slaveKey2) throws Exception {
        List list = findDateQuotaLevel2(startDate, endDate, area, level, index, timelevel,slaveKey1,slaveKey2, interval, null);
        return (SaveModel) list.get(0);
    }
    /**
     *  列表
     * 0级维度
     * 查询某一天某个0级维度的指标列表
     *
     * @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
     * @throws Exception
     */
    public SaveModel findListDateQuotaLevel0(String quotaDate,  String area, int level, String index, String timelevel, String lowLevel) throws Exception {
        List list = findDateQuotaLevel0(quotaDate, quotaDate, area, level, index, timelevel, null, lowLevel);
        return (SaveModel) list.get(0);
    }
    /**
     * 列表
     * 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团队
     * @param slaveKey1  一级维度的key
     * @return
     */
    public 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,slaveKey1, null, lowLevel);
        return (SaveModel) list.get(0);
    }
    /**
     * 列表
     * 2级维度
     * 查询某个2级维度的某个1级维度和2级维度下的列表  例如查询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团队
     * @param slaveKey1  一级维度的key
     * @param slaveKey2  二级维度的key
     * @return
     */
    public SaveModel findListDateQuotaLevel2(String quotaDate,  String area, int level, String index, String timelevel,String lowLevel, String slaveKey1, String slaveKey2) throws Exception {
        List list = findDateQuotaLevel2(quotaDate, quotaDate, area, level, index, timelevel,slaveKey1,slaveKey2, null, lowLevel);
        return (SaveModel) list.get(0);
    }
}