|  | @ -376,6 +376,101 @@ public class ElasticsearchUtil {
 | 
	
		
			
				|  |  |         return excute(sql.toString(), SaveModel.class, "", "");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 0级指标查询列表
 | 
	
		
			
				|  |  |      * @param startDate
 | 
	
		
			
				|  |  |      * @param endDate
 | 
	
		
			
				|  |  |      * @param area
 | 
	
		
			
				|  |  |      * @param level
 | 
	
		
			
				|  |  |      * @param index
 | 
	
		
			
				|  |  |      * @param timeLevel
 | 
	
		
			
				|  |  |      * @param interval
 | 
	
		
			
				|  |  |      * @param lowLevel
 | 
	
		
			
				|  |  |      * @param areaLevel
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List findDateQuotaLevel0(String startDate, String endDate, String area, int level, String index, String timeLevel, String interval, String lowLevel,String areaLevel) throws Exception {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //时间格式转换  yyyy-MM-dd转成 2017-07-17T00:00:00+0800
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(startDate)) {
 | 
	
		
			
				|  |  |             if (startDate.length() > 10) {
 | 
	
		
			
				|  |  |                 startDate = changeTime(startDate);
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 startDate = changeDate(startDate);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(endDate)) {
 | 
	
		
			
				|  |  |             if (endDate.length() > 10) {
 | 
	
		
			
				|  |  |                 endDate = changeTime(endDate);
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 endDate = changeDate(endDate);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         StringBuffer sql = new StringBuffer();
 | 
	
		
			
				|  |  |         StringBuffer groupBy = new StringBuffer();
 | 
	
		
			
				|  |  |         String low_level = level + "";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(lowLevel)) {
 | 
	
		
			
				|  |  |             low_level = lowLevel;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (SaveModel.doctorLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |             sql.append("select doctor as doctor,doctorName as doctorName,sum(result1) as result1, sum(result2) as result2 from " + esIndex + " where ");
 | 
	
		
			
				|  |  |             groupBy.append("  group by doctor,doctorName");
 | 
	
		
			
				|  |  |         }else if (SaveModel.deptLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |             sql.append("select dept as dept,deptName as deptName,sum(result1) as result1, sum(result2) as result2 from " + esIndex + " where ");
 | 
	
		
			
				|  |  |             groupBy.append("  group by dept,deptName");
 | 
	
		
			
				|  |  |         } else if (SaveModel.OrgLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |             sql.append("select hospital as hospital ,hospitalName as hospitalName,sum(result1) as result1,sum(result2) as result2 from " + esIndex + " where ");
 | 
	
		
			
				|  |  |             groupBy.append("  group by hospital,hospitalName");
 | 
	
		
			
				|  |  |         } else if (SaveModel.townLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |             sql.append("select town as town,townName astownName,sum(result1) as result1,sum(result2) as result2 from " + esIndex + " where ");
 | 
	
		
			
				|  |  |             groupBy.append("  group by town,townName");
 | 
	
		
			
				|  |  |         } else if (SaveModel.cityLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |             sql.append("select city,cityName,sum(result1) result1,sum(result2) result2 from " + esIndex + " where ");
 | 
	
		
			
				|  |  |             groupBy.append("  group by city,cityName");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(area)) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if (SaveModel.doctorLevel.equals(level + "")) {
 | 
	
		
			
				|  |  |                 sql.append(" doctor='" + area + "'");
 | 
	
		
			
				|  |  |             }else if (SaveModel.deptLevel.equals(level + "")) {
 | 
	
		
			
				|  |  |                 sql.append(" dept='" + area + "'");
 | 
	
		
			
				|  |  |             } else if (SaveModel.OrgLevel.equals(level + "")) {
 | 
	
		
			
				|  |  |                 sql.append(" hospital='" + area + "'");
 | 
	
		
			
				|  |  |             } else if (SaveModel.townLevel.equals(level + "")) {
 | 
	
		
			
				|  |  |                 sql.append(" town='" + area + "'");
 | 
	
		
			
				|  |  |             } else if (SaveModel.cityLevel.equals(level + "")) {
 | 
	
		
			
				|  |  |                 sql.append(" city='" + area + "'");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             sql.append(" and ");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | //        sql.append(" quotaCode='" + index + "'  ");
 | 
	
		
			
				|  |  |         sql.append(" quotaCode in(" + index + ")  ");
 | 
	
		
			
				|  |  |         sql.append(" and timeLevel='" + timeLevel + "'  ");
 | 
	
		
			
				|  |  |         sql.append(" and areaLevel='"+areaLevel+"'");
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(startDate)) {
 | 
	
		
			
				|  |  |             sql.append(" and quotaDate>='" + startDate + "'");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(endDate)) {
 | 
	
		
			
				|  |  |             sql.append(" and quotaDate<='" + endDate + "'");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //根据时间维度分组
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(interval)) {
 | 
	
		
			
				|  |  |             if (SaveModel.interval_month.equals(interval)) {
 | 
	
		
			
				|  |  |                 groupBy.append(" ,date_histogram(field='quotaDate','interval'='month','time_zone'='+08:00','alias'='quotaDate') ");
 | 
	
		
			
				|  |  |             } else if (SaveModel.interval_week.equals(interval)) {
 | 
	
		
			
				|  |  |                 groupBy.append(" ,date_histogram(field='quotaDate','interval'='week','time_zone'='+08:00','alias'='quotaDate') ");
 | 
	
		
			
				|  |  |             } else if (SaveModel.interval_day.equals(interval)) {
 | 
	
		
			
				|  |  |                 groupBy.append(" ,date_histogram(field='quotaDate','interval'='1d','time_zone'='+08:00','alias'='quotaDate') ");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         sql.append(groupBy);
 | 
	
		
			
				|  |  |         logger.info("sql:"+sql);
 | 
	
		
			
				|  |  |         return excute(sql.toString(), SaveModel.class, "", "");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 按照医生人数统计-不重复
 | 
	
	
		
			
				|  | @ -700,6 +795,125 @@ public class ElasticsearchUtil {
 | 
	
		
			
				|  |  |         return excute(sql.toString(), SaveModel.class, "", "");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 一级指标查询列表
 | 
	
		
			
				|  |  |      * @param startDate
 | 
	
		
			
				|  |  |      * @param endDate
 | 
	
		
			
				|  |  |      * @param area
 | 
	
		
			
				|  |  |      * @param level
 | 
	
		
			
				|  |  |      * @param index
 | 
	
		
			
				|  |  |      * @param timeLevel
 | 
	
		
			
				|  |  |      * @param slaveKey1
 | 
	
		
			
				|  |  |      * @param interval
 | 
	
		
			
				|  |  |      * @param lowLevel
 | 
	
		
			
				|  |  |      * @param areaLevel
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List findDateQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timeLevel, String slaveKey1, String interval, String lowLevel,String areaLevel) throws Exception {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //时间格式转换  yyyy-MM-dd转成 2017-07-17T00:00:00+0800
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(startDate)) {
 | 
	
		
			
				|  |  |             if (startDate.length() > 10) {
 | 
	
		
			
				|  |  |                 startDate = changeTime(startDate);
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 startDate = changeDate(startDate);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(endDate)) {
 | 
	
		
			
				|  |  |             if (endDate.length() > 10) {
 | 
	
		
			
				|  |  |                 endDate = changeTime(endDate);
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 endDate = changeDate(endDate);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         StringBuffer sql = new StringBuffer();
 | 
	
		
			
				|  |  |         StringBuffer groupBy = new StringBuffer();
 | 
	
		
			
				|  |  |         String low_level = level + "";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(lowLevel)) {
 | 
	
		
			
				|  |  |             low_level = lowLevel;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (SaveModel.doctorLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |             sql.append("select doctor as doctor,doctorName as doctorName,slaveKey1 as slaveKey1,slaveKey1Name as slaveKey1Name,sum(result1) as result1, sum(result2) as result2,quotaDate as quotaDate from " + esIndex + " where ");
 | 
	
		
			
				|  |  |             groupBy.append("  group by doctor,doctorName");
 | 
	
		
			
				|  |  |             if (!org.springframework.util.StringUtils.isEmpty(slaveKey1)&&!slaveKey1.contains(",")&&(!org.springframework.util.StringUtils.isEmpty(slaveKey1) || commonParams.equals(slaveKey1))) {
 | 
	
		
			
				|  |  |                 groupBy.append(",slaveKey1,slaveKey1Name");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (SaveModel.deptLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |             sql.append("select dept as dept,deptName as deptName,slaveKey1 as slaveKey1,slaveKey1Name as slaveKey1Name,sum(result1) as result1, sum(result2) as result2,quotaDate as quotaDate from " + esIndex + " where ");
 | 
	
		
			
				|  |  |             groupBy.append("  group by dept,deptName");
 | 
	
		
			
				|  |  |             if (!org.springframework.util.StringUtils.isEmpty(slaveKey1)&&!slaveKey1.contains(",")&&(!org.springframework.util.StringUtils.isEmpty(slaveKey1) || commonParams.equals(slaveKey1))) {
 | 
	
		
			
				|  |  |                 groupBy.append(",slaveKey1,slaveKey1Name");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } else if (SaveModel.OrgLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |             sql.append("select hospital as hospital,hospitalName as hospitalName,slaveKey1 as slaveKey1,slaveKey1Name as slaveKey1Name,sum(result1)  as result1,sum(result2) as result2,quotaDate as quotaDate from " + esIndex + " where ");
 | 
	
		
			
				|  |  |             groupBy.append("  group by hospital,hospitalName");
 | 
	
		
			
				|  |  |             if (!org.springframework.util.StringUtils.isEmpty(slaveKey1)&&!slaveKey1.contains(",")&&(!org.springframework.util.StringUtils.isEmpty(slaveKey1) || commonParams.equals(slaveKey1))) {
 | 
	
		
			
				|  |  |                 groupBy.append(",slaveKey1,slaveKey1Name");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } else if (SaveModel.townLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |             sql.append("select town as town,townName as townName,slaveKey1 as slaveKey1,slaveKey1Name as slaveKey1Name,sum(result1) as result1,sum(result2) as result2,quotaDate as quotaDate from " + esIndex + " where ");
 | 
	
		
			
				|  |  |             groupBy.append("  group by town,townName");
 | 
	
		
			
				|  |  |             if (!org.springframework.util.StringUtils.isEmpty(slaveKey1)&&!slaveKey1.contains(",")&&(!org.springframework.util.StringUtils.isEmpty(slaveKey1) || commonParams.equals(slaveKey1))) {
 | 
	
		
			
				|  |  |                 groupBy.append(",slaveKey1,slaveKey1Name");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } else if (SaveModel.cityLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |             sql.append("select city as city,cityName as cityName,slaveKey1 as slaveKey1,slaveKey1Name as slaveKey1Name,sum(result1) as result1,sum(result2) as result2,quotaDate as quotaDate from " + esIndex + " where ");
 | 
	
		
			
				|  |  |             groupBy.append("  group by city,cityName");
 | 
	
		
			
				|  |  |             if (!org.springframework.util.StringUtils.isEmpty(slaveKey1)&&!slaveKey1.contains(",")&&(!org.springframework.util.StringUtils.isEmpty(slaveKey1) || commonParams.equals(slaveKey1))) {
 | 
	
		
			
				|  |  |                 groupBy.append(",slaveKey1,slaveKey1Name");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(area)) {
 | 
	
		
			
				|  |  |             if (SaveModel.doctorLevel.equals(level + "")) {
 | 
	
		
			
				|  |  |                 sql.append(" doctor='" + area + "'");
 | 
	
		
			
				|  |  |             }else if (SaveModel.deptLevel.equals(level + "")) {
 | 
	
		
			
				|  |  |                 sql.append(" dept='" + area + "'");
 | 
	
		
			
				|  |  |             } else if (SaveModel.OrgLevel.equals(level + "")) {
 | 
	
		
			
				|  |  |                 sql.append(" hospital='" + area + "'");
 | 
	
		
			
				|  |  |             } else if (SaveModel.townLevel.equals(level + "")) {
 | 
	
		
			
				|  |  |                 sql.append(" town='" + area + "'");
 | 
	
		
			
				|  |  |             } else if (SaveModel.cityLevel.equals(level + "")) {
 | 
	
		
			
				|  |  |                 sql.append(" city='" + area + "'");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             sql.append(" and ");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | //        sql.append(" quotaCode='" + index + "'  ");
 | 
	
		
			
				|  |  |         sql.append(" quotaCode in(" + index + ")  ");
 | 
	
		
			
				|  |  |         sql.append(" and timeLevel='" + timeLevel + "'  ");
 | 
	
		
			
				|  |  |         sql.append(" and areaLevel='"+areaLevel+"'");
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(startDate)) {
 | 
	
		
			
				|  |  |             sql.append(" and quotaDate>='" + startDate + "'");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(endDate)) {
 | 
	
		
			
				|  |  |             sql.append(" and quotaDate<='" + endDate + "'");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(slaveKey1) && !commonParams.equals(slaveKey1)) {
 | 
	
		
			
				|  |  |             String[] temp = slaveKey1.split(",");
 | 
	
		
			
				|  |  |             String slaveKey1Temp = "";
 | 
	
		
			
				|  |  |             for(String one : temp){
 | 
	
		
			
				|  |  |                 slaveKey1Temp += ",'"+one+"'";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             sql.append(" and slaveKey1 in ("+slaveKey1Temp.substring(1)+")");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //根据时间维度分组
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(interval)) {
 | 
	
		
			
				|  |  |             if (SaveModel.interval_month.equals(interval)) {
 | 
	
		
			
				|  |  |                 groupBy.append(" ,date_histogram(field='quotaDate','interval'='month','time_zone'='+08:00','alias'='quotaDate') ");
 | 
	
		
			
				|  |  |             } else if (SaveModel.interval_week.equals(interval)) {
 | 
	
		
			
				|  |  |                 groupBy.append(" ,date_histogram(field='quotaDate','interval'='week','time_zone'='+08:00','alias'='quotaDate') ");
 | 
	
		
			
				|  |  |             } else if (SaveModel.interval_day.equals(interval)) {
 | 
	
		
			
				|  |  |                 groupBy.append(" ,date_histogram(field='quotaDate','interval'='1d','time_zone'='+08:00','alias'='quotaDate') ");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         sql.append(groupBy);
 | 
	
		
			
				|  |  |         logger.info("sql:"+sql);
 | 
	
		
			
				|  |  |         return excute(sql.toString(), SaveModel.class, "", "");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 二级指标查询列表
 | 
	
		
			
				|  |  |      * 获取二级指标的增量、到达量
 | 
	
	
		
			
				|  | @ -846,6 +1060,138 @@ public class ElasticsearchUtil {
 | 
	
		
			
				|  |  |         return excute(sql.toString(), SaveModel.class, "", "");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 二级指标查询
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List findDateQuotaLevel2(String startDate, String endDate, String area, int level, String index, String timeLevel, String slaveKey1, String slaveKey2, String interval, String lowLevel,String areaLevel) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //时间格式转换  yyyy-MM-dd转成 2017-07-17T00:00:00+0800
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(startDate)) {
 | 
	
		
			
				|  |  |             if (startDate.length() > 10) {
 | 
	
		
			
				|  |  |                 startDate = changeTime(startDate);
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 startDate = changeDate(startDate);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(endDate)) {
 | 
	
		
			
				|  |  |             if (endDate.length() > 10) {
 | 
	
		
			
				|  |  |                 endDate = changeTime(endDate);
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 endDate = changeDate(endDate);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         StringBuffer sql = new StringBuffer();
 | 
	
		
			
				|  |  |         StringBuffer groupBy = new StringBuffer();
 | 
	
		
			
				|  |  |         String low_level = level + "";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(lowLevel)) {
 | 
	
		
			
				|  |  |             low_level = lowLevel;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (SaveModel.doctorLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |             sql.append("select doctor as doctor,doctorName as doctorName,slaveKey1 as slaveKey1,slaveKey1Name as slaveKey1Name,slaveKey2 as slaveKey2,slaveKey2Name as slaveKey2Name,sum(result1) as result1,sum(result2) as result2 from " + esIndex + " where ");
 | 
	
		
			
				|  |  |             groupBy.append("  group by doctor,doctorName");
 | 
	
		
			
				|  |  |             if (!org.springframework.util.StringUtils.isEmpty(slaveKey1) || commonParams.equals(slaveKey1)) {
 | 
	
		
			
				|  |  |                 groupBy.append(",slaveKey1,slaveKey1Name");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (!org.springframework.util.StringUtils.isEmpty(slaveKey2) || commonParams.equals(slaveKey2)) {
 | 
	
		
			
				|  |  |                 groupBy.append(",slaveKey2,slaveKey2Name");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else if (SaveModel.deptLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |             sql.append("select dept as dept,deptName as deptName,slaveKey1 as slaveKey1,slaveKey1Name as slaveKey1Name,slaveKey2 as slaveKey2,slaveKey2Name as slaveKey2Name,sum(result1) as result1,sum(result2) as result2 from " + esIndex + " where ");
 | 
	
		
			
				|  |  |             groupBy.append("  group by dept,deptName");
 | 
	
		
			
				|  |  |             if (!org.springframework.util.StringUtils.isEmpty(slaveKey1) || commonParams.equals(slaveKey1)) {
 | 
	
		
			
				|  |  |                 groupBy.append(",slaveKey1,slaveKey1Name");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (!org.springframework.util.StringUtils.isEmpty(slaveKey2) || commonParams.equals(slaveKey2)) {
 | 
	
		
			
				|  |  |                 groupBy.append(",slaveKey2,slaveKey2Name");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } else if (SaveModel.OrgLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |             sql.append("select hospital as hospital,hospitalName as hospitalName,sum(result1) as result1,sum(result2) as result2 from " + esIndex + " where ");
 | 
	
		
			
				|  |  |             groupBy.append("  group by hospital,hospitalName");
 | 
	
		
			
				|  |  |             if (!org.springframework.util.StringUtils.isEmpty(slaveKey1) || commonParams.equals(slaveKey1)) {
 | 
	
		
			
				|  |  |                 groupBy.append(",slaveKey1,slaveKey1Name");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (!org.springframework.util.StringUtils.isEmpty(slaveKey2) || commonParams.equals(slaveKey2)) {
 | 
	
		
			
				|  |  |                 groupBy.append(",slaveKey2,slaveKey2Name");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } else if (SaveModel.townLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |             sql.append("select town as town,townName as townName,slaveKey1 as slaveKey1,slaveKey1Name as slaveKey1Name,slaveKey2 as slaveKey2,slaveKey2Name as slaveKey2Name,sum(result1) as result1,sum(result2) as result2 from " + esIndex + " where ");
 | 
	
		
			
				|  |  |             groupBy.append("  group by town,townName");
 | 
	
		
			
				|  |  |             if (!org.springframework.util.StringUtils.isEmpty(slaveKey1) || commonParams.equals(slaveKey1)) {
 | 
	
		
			
				|  |  |                 groupBy.append(",slaveKey1,slaveKey1Name");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (!org.springframework.util.StringUtils.isEmpty(slaveKey2) || commonParams.equals(slaveKey2)) {
 | 
	
		
			
				|  |  |                 groupBy.append(",slaveKey2,slaveKey2Name");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } else if (SaveModel.cityLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |             sql.append("select city as city,cityName as cityName,slaveKey1 as slaveKey1,slaveKey1Name as slaveKey1Name,slaveKey2 as slaveKey2,slaveKey2Name as slaveKey2Name,sum(result1) as result1,sum(result2) as result2 from " + esIndex + " where ");
 | 
	
		
			
				|  |  |             groupBy.append("  group by city,cityName");
 | 
	
		
			
				|  |  |             if (!org.springframework.util.StringUtils.isEmpty(slaveKey1) || commonParams.equals(slaveKey1)) {
 | 
	
		
			
				|  |  |                 groupBy.append(",slaveKey1,slaveKey1Name");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (!org.springframework.util.StringUtils.isEmpty(slaveKey2) || commonParams.equals(slaveKey2)) {
 | 
	
		
			
				|  |  |                 groupBy.append(",slaveKey2,slaveKey2Name");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(area)) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if (SaveModel.doctorLevel.equals(level + "")) {
 | 
	
		
			
				|  |  |                 sql.append(" doctor='" + area + "'");
 | 
	
		
			
				|  |  |             }else if (SaveModel.deptLevel.equals(level + "")) {
 | 
	
		
			
				|  |  |                 sql.append(" dept='" + area + "'");
 | 
	
		
			
				|  |  |             } else if (SaveModel.OrgLevel.equals(level + "")) {
 | 
	
		
			
				|  |  |                 sql.append(" hospital='" + area + "'");
 | 
	
		
			
				|  |  |             } else if (SaveModel.townLevel.equals(level + "")) {
 | 
	
		
			
				|  |  |                 sql.append(" town='" + area + "'");
 | 
	
		
			
				|  |  |             } else if (SaveModel.cityLevel.equals(level + "")) {
 | 
	
		
			
				|  |  |                 sql.append(" city='" + area + "'");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             sql.append(" and ");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         sql.append(" quotaCode in(" + index + ")  ");
 | 
	
		
			
				|  |  |         sql.append(" and timeLevel='" + timeLevel + "'  ");
 | 
	
		
			
				|  |  |         sql.append(" and areaLevel='"+areaLevel+"'");
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(startDate)) {
 | 
	
		
			
				|  |  |             sql.append(" and quotaDate>='" + startDate + "'");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(endDate)) {
 | 
	
		
			
				|  |  |             sql.append(" and quotaDate<='" + endDate + "'");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(slaveKey1) && (!commonParams.equals(slaveKey1))) {
 | 
	
		
			
				|  |  |             String[] str = slaveKey1.split(",");
 | 
	
		
			
				|  |  |             StringBuffer buffer = new StringBuffer();
 | 
	
		
			
				|  |  |             for (int i=0;i<str.length;i++){
 | 
	
		
			
				|  |  |                 buffer.append("'"+str[i]+"',");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             buffer.deleteCharAt(buffer.length()-1);
 | 
	
		
			
				|  |  |             sql.append(" and slaveKey1 in (" + buffer + ")");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(slaveKey2) && (!commonParams.equals(slaveKey2))) {
 | 
	
		
			
				|  |  |             String[] str = slaveKey2.split(",");
 | 
	
		
			
				|  |  |             StringBuffer buffer = new StringBuffer();
 | 
	
		
			
				|  |  |             for (int i=0;i<str.length;i++){
 | 
	
		
			
				|  |  |                 buffer.append("'"+str[i]+"',");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             buffer.deleteCharAt(buffer.length()-1);
 | 
	
		
			
				|  |  |             sql.append(" and slaveKey2 in (" + buffer + ")");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //根据时间维度分组
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(interval)) {
 | 
	
		
			
				|  |  |             if (SaveModel.interval_month.equals(interval)) {
 | 
	
		
			
				|  |  |                 groupBy.append(" ,date_histogram(field='quotaDate','interval'='month','time_zone'='+08:00','alias'='quotaDate') ");
 | 
	
		
			
				|  |  |             } else if (SaveModel.interval_week.equals(interval)) {
 | 
	
		
			
				|  |  |                 groupBy.append(" ,date_histogram(field='quotaDate','interval'='week','time_zone'='+08:00','alias'='quotaDate') ");
 | 
	
		
			
				|  |  |             } else if (SaveModel.interval_day.equals(interval)) {
 | 
	
		
			
				|  |  |                 groupBy.append(" ,date_histogram(field='quotaDate','interval'='1d','time_zone'='+08:00','alias'='quotaDate') ");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         sql.append(groupBy);
 | 
	
		
			
				|  |  |         logger.info("sql :" + sql.toString());
 | 
	
		
			
				|  |  |         return excute(sql.toString(), SaveModel.class, "", "");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 时间格式转换  yyyy-MM-dd转成 2017-07-17T00:00:00+0800
 | 
	
		
			
				|  |  |      *
 | 
	
	
		
			
				|  | @ -1169,6 +1515,11 @@ public class ElasticsearchUtil {
 | 
	
		
			
				|  |  |         return (SaveModel) list.get(0);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public SaveModel findOneDateQuotaLevel0(String startDate, String endDate, String area, int level, String index, String timelevel,String areaLevel) throws Exception {
 | 
	
		
			
				|  |  |         List list = findDateQuotaLevel0(startDate, endDate, area, level, index, timelevel, null, null,areaLevel);
 | 
	
		
			
				|  |  |         return (SaveModel) list.get(0);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 1级维度
 | 
	
		
			
				|  |  |      * 查询某一天某一个1级维度的某个1级维度下的指标 例如查询65岁以上患者
 | 
	
	
		
			
				|  | @ -1250,6 +1601,14 @@ public class ElasticsearchUtil {
 | 
	
		
			
				|  |  |         List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, slaveKey1, null, null);
 | 
	
		
			
				|  |  |         return (SaveModel) list.get(0);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     public SaveModel findOneDateQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timelevel, String slaveKey1,String areaLevel) throws Exception {
 | 
	
		
			
				|  |  |         if (org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
 | 
	
		
			
				|  |  |             slaveKey1 = commonParams;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, slaveKey1, null, null,areaLevel);
 | 
	
		
			
				|  |  |         return (SaveModel) list.get(0);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public SaveModel bfindOneDateQuotaLevel12(String startDate, String endDate, String area, int level, String index, String timelevel, String slaveKey1, String slaveKey2) throws Exception {
 | 
	
		
			
				|  |  |         if (org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
 | 
	
		
			
				|  |  |             slaveKey1 = commonParams;
 | 
	
	
		
			
				|  | @ -1336,6 +1695,17 @@ public class ElasticsearchUtil {
 | 
	
		
			
				|  |  |         return (SaveModel) list.get(0);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 二级维度指标查询,无一级维度
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public SaveModel findOneDateQuotaLevel2NoSlaveKey1(String quotaDate, String area, int level, String index, String timelevel, String slaveKey2,String areaLevel) throws Exception {
 | 
	
		
			
				|  |  |         if (org.springframework.util.StringUtils.isEmpty(slaveKey2)) {
 | 
	
		
			
				|  |  |             slaveKey2 = commonParams;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List list = findDateQuotaLevel2(quotaDate, quotaDate, area, level, index, timelevel, null, slaveKey2, null, null,areaLevel);
 | 
	
		
			
				|  |  |         return (SaveModel) list.get(0);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 根据2级维度的2级指标去聚合 没有一级维度
 | 
	
		
			
				|  |  |      * 查询某一天某一个2级维度的某个1级维度和2级维度下的指标  例如查询65岁以上的高血压患者
 |