1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300 |
- package com.yihu.wlyy.util;
- import com.alibaba.druid.sql.ast.SQLExpr;
- import com.alibaba.druid.sql.ast.expr.SQLQueryExpr;
- import com.alibaba.druid.sql.parser.SQLExprParser;
- import com.yihu.wlyy.config.es.ElasticFactory;
- import com.yihu.wlyy.entity.patient.Patient;
- import com.yihu.wlyy.web.quota.vo.SaveModel;
- import org.apache.commons.lang3.StringUtils;
- import org.elasticsearch.action.search.SearchResponse;
- import org.nlpcn.es4sql.domain.Select;
- import org.nlpcn.es4sql.jdbc.ObjectResult;
- import org.nlpcn.es4sql.jdbc.ObjectResultsExtractor;
- import org.nlpcn.es4sql.parse.ElasticSqlExprParser;
- import org.nlpcn.es4sql.parse.SqlParser;
- import org.nlpcn.es4sql.query.AggregationQueryAction;
- import org.nlpcn.es4sql.query.DefaultQueryAction;
- import org.nlpcn.es4sql.query.SqlElasticSearchRequestBuilder;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.data.redis.core.StringRedisTemplate;
- import org.springframework.stereotype.Component;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- /**
- * Created by chenweida on 2017/7/17.
- * SELECT town,townName,sum(result1) result1 FROM wlyy_quota_test
- * where quotaCode='1'
- * group by town,townName , date_histogram(field='quotaDate','interval'='week')
- */
- @Component
- public class ElasticsearchUtil {
- private Logger logger = LoggerFactory.getLogger(ElasticsearchUtil.class);
- private final String commonParams = "xmijk_quota";
- @Autowired
- private ElasticFactory elasticFactory;
- @Autowired
- private StringRedisTemplate redisTemplate;
- @Value("${es.type.Statistics}")
- private String esType;
- @Value("${es.index.Statistics}")
- private String esIndex;
- public List excute(String sql, Class clazz, String esType, String esIndex) {
- List saveModels = new ArrayList<>();
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXX");
- SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- try {
- //解决 group by之后默认是200的问题
- if (sql.toLowerCase().contains("group by")) {
- sql = sql + " limit 0,2000";
- }
- SQLExprParser parser = new ElasticSqlExprParser(sql);
- SQLExpr expr = parser.expr();
- SQLQueryExpr queryExpr = (SQLQueryExpr) expr;
- Select select = null;
- select = new SqlParser().parseSelect(queryExpr);
- //通过抽象语法树,封装成自定义的Select,包含了select、from、where group、limit等
- AggregationQueryAction action = null;
- DefaultQueryAction queryAction = null;
- SqlElasticSearchRequestBuilder requestBuilder = null;
- if (select.isAgg) {
- //包含计算的的排序分组的
- action = new AggregationQueryAction(elasticFactory.getTransportClient(), select);
- requestBuilder = action.explain();
- } else {
- //封装成自己的Select对象
- queryAction = new DefaultQueryAction(elasticFactory.getTransportClient(), select);
- requestBuilder = queryAction.explain();
- }
- SearchResponse response = (SearchResponse) requestBuilder.get();
- Object queryResult = null;
- if (sql.toUpperCase().indexOf("GROUP") != -1 || sql.toUpperCase().indexOf("SUM") != -1) {
- queryResult = response.getAggregations();
- } else {
- queryResult = response.getHits();
- }
- ObjectResult temp = new ObjectResultsExtractor(true, true, true).extractResults(queryResult, true);
- List<String> heads = temp.getHeaders();
- temp.getLines().forEach(one -> {
- Object saveModel = null;
- try {
- saveModel = clazz.newInstance();
- } catch (Exception e) {
- logger.error(e.getMessage());
- }
- for (int i = 0; i < one.size(); i++) {
- try {
- String key = null;
- Object value = one.get(i);
- 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")) {
- key = "setQuotaDate";
- }
- try {
- //yyyy-MM-dd'T'HH:mm:ssXX
- value = dateFormat.parse(String.valueOf(one.get(i)));
- } catch (Exception e) {
- //yyyy-MM-dd HH:mm:ss
- value = dateFormat1.parse(String.valueOf(one.get(i)));
- }
- // value = DateUtil.strToDate(String.valueOf(value).replace("T00:00:00+0800", " 00:00:00"), "yyyy-MM-dd HH:mm:ss");
- }
- if (value instanceof String) {
- clazz.getMethod(key, String.class).invoke(saveModel, value);
- } else if (value instanceof Integer) {
- clazz.getMethod(key, Integer.class).invoke(saveModel, value);
- } else if (value instanceof Double) {
- clazz.getMethod(key, Double.class).invoke(saveModel, value);
- } else if (value instanceof java.util.Date) {
- clazz.getMethod(key, java.util.Date.class).invoke(saveModel, value);
- } else if (value instanceof java.util.List) {
- clazz.getMethod(key, java.util.List.class).invoke(saveModel, value);
- }
- } catch (Exception e) {
- logger.warn(e.getMessage());
- }
- }
- saveModels.add(saveModel);
- });
- } catch (Exception e) {
- logger.error(e.getMessage());
- }
- return saveModels;
- }
- public Long excuteForLong(String sql, String esType, String esIndex) {
- try {
- SQLExprParser parser = new ElasticSqlExprParser(sql);
- SQLExpr expr = parser.expr();
- SQLQueryExpr queryExpr = (SQLQueryExpr) expr;
- Select select = null;
- select = new SqlParser().parseSelect(queryExpr);
- //通过抽象语法树,封装成自定义的Select,包含了select、from、where group、limit等
- AggregationQueryAction action = null;
- DefaultQueryAction queryAction = null;
- SqlElasticSearchRequestBuilder requestBuilder = null;
- if (select.isAgg) {
- //包含计算的的排序分组的
- action = new AggregationQueryAction(elasticFactory.getTransportClient(), select);
- requestBuilder = action.explain();
- } else {
- //封装成自己的Select对象
- queryAction = new DefaultQueryAction(elasticFactory.getTransportClient(), select);
- requestBuilder = queryAction.explain();
- }
- SearchResponse response = (SearchResponse) requestBuilder.get();
- ObjectResult temp = new ObjectResultsExtractor(true, true, true).extractResults(response.getAggregations(), true);
- Long Longvalue = ((Double) temp.getLines().get(0).get(1)).longValue();
- return Longvalue;
- } catch (Exception e) {
- logger.error(e.getMessage());
- }
- return 0L;
- }
- /**
- * 首字母大写
- *
- * @param str
- * @return
- */
- private String UpFirstStr(String str) {
- return str.replaceFirst(str.substring(0, 1), str.substring(0, 1).toUpperCase());
- }
- public Object excuteOneObject(String sql, Class clazz, String esType, String esIndex) {
- try {
- SQLExprParser parser = new ElasticSqlExprParser(sql);
- SQLExpr expr = parser.expr();
- SQLQueryExpr queryExpr = (SQLQueryExpr) expr;
- Select select = null;
- select = new SqlParser().parseSelect(queryExpr);
- //通过抽象语法树,封装成自定义的Select,包含了select、from、where group、limit等
- AggregationQueryAction action = null;
- DefaultQueryAction queryAction = null;
- SqlElasticSearchRequestBuilder requestBuilder = null;
- if (select.isAgg) {
- //包含计算的的排序分组的
- action = new AggregationQueryAction(elasticFactory.getTransportClient(), select);
- requestBuilder = action.explain();
- } else {
- //封装成自己的Select对象
- queryAction = new DefaultQueryAction(elasticFactory.getTransportClient(), select);
- requestBuilder = queryAction.explain();
- }
- SearchResponse response = (SearchResponse) requestBuilder.get();
- ObjectResult temp = new ObjectResultsExtractor(true, true, true).extractResults(response.getHits(), true);
- List<String> heads = temp.getHeaders();
- Object saveModel = clazz.newInstance();
- try {
- for (int i = 0; i < temp.getLines().get(0).size(); i++) {
- String key = null;
- 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");
- } else {
- key = "set" + UpFirstStr(heads.get(i));
- }
- if (value instanceof String) {
- clazz.getMethod(key, String.class).invoke(saveModel, value);
- } else if (value instanceof Integer) {
- clazz.getMethod(key, Integer.class).invoke(saveModel, value);
- } else if (value instanceof Double) {
- clazz.getMethod(key, Double.class).invoke(saveModel, value);
- } else if (value instanceof java.util.Date) {
- clazz.getMethod(key, java.util.Date.class).invoke(saveModel, value);
- }
- }
- } catch (Exception e) {
- logger.warn(e.getMessage());
- }
- return saveModel;
- } catch (Exception e) {
- logger.error(e.getMessage());
- }
- return null;
- }
- /**
- * 0级指标查询列表
- * 获取所有指标的增量、到达量
- * 备注:原来接口的一级指标对应现在的
- *
- * @param startDate 开始时间
- * @param endDate 结束时间
- * @param area 区域code
- * @param level 等级
- * @param index 指标
- * @param timeLevel 1增量 2到达量
- * @param interval 1日 2周 3月
- * @param lowLevel 下一级区域等级
- * @return
- * @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 (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.teamLevel.equals(low_level)) {
- sql.append("select team,teamName,sum(result1) result1, sum(result2) result2 from " + esIndex + " where ");
- groupBy.append(" group by team,teamName");
- } else if (SaveModel.OrgLevel.equals(low_level)) {
- sql.append("select hospital,hospitalName,sum(result1) result1,sum(result2) result2 from " + esIndex + " where ");
- groupBy.append(" group by hospital,hospitalName");
- } else if (SaveModel.townLevel.equals(low_level)) {
- sql.append("select town,townName,sum(result1) result1,sum(result2) 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.teamLevel.equals(level + "")) {
- sql.append(" team='" + 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(" and timeLevel='" + timeLevel + "' ");
- sql.append(" and areaLevel='5'");
- 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') ");
- } else if (SaveModel.interval_week.equals(interval)) {
- groupBy.append(" ,date_histogram(field='quotaDate','interval'='week','time_zone'='+08:00') ");
- } else if (SaveModel.interval_day.equals(interval)) {
- groupBy.append(" ,date_histogram(field='quotaDate','interval'='1d','time_zone'='+08:00') ");
- }
- }
- sql.append(groupBy);
- return excute(sql.toString(), SaveModel.class, "", "");
- }
- /**
- * 一级指标查询列表
- * 获取一级指标的增量、到达量
- * 备注:原接口的二级指标对应现在的一级指标
- *
- * @param startDate 开始时间
- * @param endDate 结束时间
- * @param area 区域code
- * @param level 等级
- * @param index 指标
- * @param timeLevel 1增量 2到达量
- * @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, 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) {
- 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.teamLevel.equals(low_level)) {
- sql.append("select team,teamName,slaveKey1,slaveKey1Name,sum(result1) result1, sum(result2) result2,quotaDate from " + esIndex + " where ");
- groupBy.append(" group by team,teamName");
- if (!org.springframework.util.StringUtils.isEmpty(slaveKey1) || commonParams.equals(slaveKey1)) {
- groupBy.append(",slaveKey1,slaveKey1Name");
- }
- } else if (SaveModel.OrgLevel.equals(low_level)) {
- sql.append("select hospital,hospitalName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2),quotaDate result2 from " + esIndex + " where ");
- groupBy.append(" group by hospital,hospitalName");
- if (!org.springframework.util.StringUtils.isEmpty(slaveKey1) || commonParams.equals(slaveKey1)) {
- groupBy.append(",slaveKey1,slaveKey1Name");
- }
- } else if (SaveModel.townLevel.equals(low_level)) {
- sql.append("select town,townName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2,quotaDate from " + esIndex + " where ");
- groupBy.append(" group by town,townName");
- if (!org.springframework.util.StringUtils.isEmpty(slaveKey1) || commonParams.equals(slaveKey1)) {
- groupBy.append(",slaveKey1,slaveKey1Name");
- }
- } else if (SaveModel.cityLevel.equals(low_level)) {
- sql.append("select city,cityName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2,quotaDate from " + esIndex + " where ");
- groupBy.append(" group by city,cityName");
- if (!org.springframework.util.StringUtils.isEmpty(slaveKey1) || commonParams.equals(slaveKey1)) {
- groupBy.append(",slaveKey1,slaveKey1Name");
- }
- }
- if (StringUtils.isNotEmpty(area)) {
- if (SaveModel.teamLevel.equals(level + "")) {
- sql.append(" team='" + 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(" and timeLevel='" + timeLevel + "' ");
- sql.append(" and areaLevel='5'");
- 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)) {
- sql.append(" and slaveKey1='" + slaveKey1 + "' ");
- }
- //根据时间维度分组
- if (StringUtils.isNotEmpty(interval)) {
- if (SaveModel.interval_month.equals(interval)) {
- groupBy.append(" ,date_histogram(field='quotaDate','interval'='month','time_zone'='+08:00') ");
- } else if (SaveModel.interval_week.equals(interval)) {
- groupBy.append(" ,date_histogram(field='quotaDate','interval'='week','time_zone'='+08:00') ");
- } else if (SaveModel.interval_day.equals(interval)) {
- groupBy.append(" ,date_histogram(field='quotaDate','interval'='1d','time_zone'='+08:00') ");
- }
- }
- sql.append(groupBy);
- return excute(sql.toString(), SaveModel.class, "", "");
- }
- /**
- * 二级指标查询列表
- * 获取二级指标的增量、到达量
- * 备注:原接口的三级指标对应现在的二级指标
- *
- * @param startDate 开始时间
- * @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 下一等级
- * @return
- */
- 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 (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.teamLevel.equals(low_level)) {
- sql.append("select team,teamName,slaveKey1,slaveKey1Name,slaveKey2,slaveKey2Name,sum(result1) result1,sum(result2) result2 from " + esIndex + " where ");
- groupBy.append(" group by team,teamName");
- 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,hospitalName,sum(result1) result1,sum(result2) 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,townName,slaveKey1,slaveKey1Name,slaveKey2,slaveKey2Name,sum(result1) result1,sum(result2) 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,cityName,slaveKey1,slaveKey1Name,slaveKey2,slaveKey2Name,sum(result1) result1,sum(result2) 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.teamLevel.equals(level + "")) {
- sql.append(" team='" + 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(" and timeLevel='" + timeLevel + "' ");
- sql.append(" and areaLevel='5'");
- 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))) {
- sql.append(" and slaveKey1='" + slaveKey1 + "'");
- }
- if (StringUtils.isNotBlank(slaveKey2) && (!commonParams.equals(slaveKey2))) {
- sql.append(" and slaveKey2='" + slaveKey2 + "'");
- }
- //根据时间维度分组
- if (StringUtils.isNotEmpty(interval)) {
- if (SaveModel.interval_month.equals(interval)) {
- groupBy.append(" ,date_histogram(field='quotaDate','interval'='month','time_zone'='+08:00') ");
- } else if (SaveModel.interval_week.equals(interval)) {
- groupBy.append(" ,date_histogram(field='quotaDate','interval'='week','time_zone'='+08:00') ");
- } else if (SaveModel.interval_day.equals(interval)) {
- groupBy.append(" ,date_histogram(field='quotaDate','interval'='1d','time_zone'='+08:00') ");
- }
- }
- sql.append(groupBy);
- return excute(sql.toString(), SaveModel.class, "", "");
- }
- /**
- * 时间格式转换 yyyy-MM-dd转成 2017-07-17T00:00:00+0800
- *
- * @param quotaDate
- */
- private String changeDate(String quotaDate) {
- try {
- quotaDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXX").format(new SimpleDateFormat("yyyy-MM-dd").parse(quotaDate));
- } catch (ParseException e) {
- e.printStackTrace();
- }
- return quotaDate;
- }
- public String changeTime(String time) {
- try {
- if (time.length() == 10) {
- time = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXX").format(new SimpleDateFormat("yyyy-MM-dd").parse(time));
- } else if (time.length() == 19) {
- time = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXX").format(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time));
- }
- } catch (ParseException e) {
- e.printStackTrace();
- }
- return time;
- }
- //获取最新更新的时间
- public String getQuotaTime() {
- String date = redisTemplate.opsForValue().get("quota:date");
- // date = date.replace(" ","T")+"+0800";
- try {
- date = new SimpleDateFormat("yyyy-MM-dd").format(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(date));
- } catch (ParseException e) {
- e.printStackTrace();
- }
- return date;
- }
- /**
- * 获取一个指标下所有一级维度按维度分组的数据
- *
- * @param startDate
- * @param endDate
- * @param area
- * @param level
- * @param index
- * @param timeLevel
- * @param interval
- * @param lowLevel
- * @return
- * @throws Exception
- */
- public List findDateAllQuotaLevel1(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 (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.teamLevel.equals(low_level)) {
- sql.append("select team,teamName,slaveKey1,slaveKey1Name,sum(result1) result1, sum(result2) result2 from " + esIndex + " where ");
- groupBy.append(" group by team,teamName,slaveKey1,slaveKey1Name");
- } else if (SaveModel.OrgLevel.equals(low_level)) {
- sql.append("select hospital,hospitalName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2 from " + esIndex + " where ");
- groupBy.append(" group by hospital,hospitalName,slaveKey1,slaveKey1Name");
- } else if (SaveModel.townLevel.equals(low_level)) {
- sql.append("select town,townName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2 from " + esIndex + " where ");
- groupBy.append(" group by town,townName,slaveKey1,slaveKey1Name");
- } else if (SaveModel.cityLevel.equals(low_level)) {
- sql.append("select city,cityName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2 from " + esIndex + " where ");
- groupBy.append(" group by city,cityName,slaveKey1,slaveKey1Name");
- }
- if (StringUtils.isNotEmpty(area)) {
- if (SaveModel.teamLevel.equals(level + "")) {
- sql.append(" team='" + 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(" and timeLevel='" + timeLevel + "' ");
- sql.append(" and areaLevel='5'");
- 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') ");
- } else if (SaveModel.interval_week.equals(interval)) {
- groupBy.append(" ,date_histogram(field='quotaDate','interval'='week','time_zone'='+08:00') ");
- } else if (SaveModel.interval_day.equals(interval)) {
- groupBy.append(" ,date_histogram(field='quotaDate','interval'='1d','time_zone'='+08:00') ");
- }
- }
- sql.append(groupBy);
- return excute(sql.toString(), SaveModel.class, "", "");
- }
- /**
- * 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);
- }
- /**
- * 0级维度
- * 查询某个时间区间某一个0级维度的指标
- *
- * @param startDate 开始时间 yyyy-mm-dd
- * @param endDate 结束时间 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 startDate, String endDate, String area, int level, String index, String timelevel) throws Exception {
- List list = findDateQuotaLevel0(startDate, endDate, 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 {
- if (org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
- slaveKey1 = commonParams;
- }
- List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel, slaveKey1, null, null);
- if (list.size() > 0) {
- return (SaveModel) list.get(0);
- } else {
- return null;
- }
- }
- /**
- * 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);
- }
- /**
- * 1级维度
- * 查询某一个时间区间某一个1级维度的某个1级维度下的指标 例如查询65岁以上患者
- *
- * @param startDate
- * @param endDate
- * @param area
- * @param level
- * @param index
- * @param timelevel
- * @return
- * @throws Exception
- */
- public SaveModel findOneDateQuotaLevel1NoSlaveKey1(String startDate, String endDate, String area, int level, String index, String timelevel) throws Exception {
- List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, null, null, null);
- return (SaveModel) list.get(0);
- }
- /**
- * 1级维度
- * 查询某个时间区间某一个1级维度的某个1级维度下的指标 例如查询65岁以上患者
- *
- * @param startDate 开始时间 yyyy-mm-dd
- * @param endDate 结束时间 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 startDate, String endDate, String area, int level, String index, String timelevel, String slaveKey1) throws Exception {
- if (org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
- slaveKey1 = commonParams;
- }
- List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, slaveKey1, null, null);
- return (SaveModel) list.get(0);
- }
- /**
- * 1级维度
- * 查询某一天某一个所有1级维度下的指标 例如某个机构下的所有维度的患者列表
- *
- * @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 List<SaveModel> findOneDateQuotaLevel1(String quotaDate, String area, int level, String index, String timelevel) throws Exception {
- List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel, commonParams, null, null);
- return list;
- }
- /**
- * 1级维度
- * 查询某一天某一个所有1级维度下的指标 例如某个机构下的所有维度的患者列表
- *
- * @param area code 厦门市 350200
- * @param level 等级 1 省 2 市 3 区县 4 机构 5团队
- * @param index 指标code
- * @param timelevel // 1日 2年
- * @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, commonParams, null, null);
- return list;
- }
- /**
- * 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 List<SaveModel> findOneDateQuotaLevel2(String quotaDate, String area, int level, String index, String timelevel, String slaveKey1, String slaveKey2) throws Exception {
- if (org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
- slaveKey1 = commonParams;
- }
- if (org.springframework.util.StringUtils.isEmpty(slaveKey2)) {
- slaveKey2 = commonParams;
- }
- List list = findDateQuotaLevel2(quotaDate, quotaDate, area, level, index, timelevel, slaveKey1, slaveKey2, null, null);
- return list;
- }
- /**
- * 根据2级维度的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 slaveKey2 二级维度的key
- * @return
- */
- public SaveModel findOneDateQuotaLevel2NoSlaveKey1(String quotaDate, String area, int level, String index, String timelevel, String slaveKey2) throws Exception {
- if (org.springframework.util.StringUtils.isEmpty(slaveKey2)) {
- slaveKey2 = commonParams;
- }
- List list = findDateQuotaLevel2(quotaDate, quotaDate, area, level, index, timelevel, null, slaveKey2, null, null);
- return (SaveModel) list.get(0);
- }
- /**
- * 根据2级维度的1级指标去聚合 没有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
- * @return
- */
- public SaveModel findOneDateQuotaLevel2NoSlaveKey2(String quotaDate, String area, int level, String index, String timelevel, String slaveKey1) throws Exception {
- if (org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
- slaveKey1 = commonParams;
- }
- List list = findDateQuotaLevel2(quotaDate, quotaDate, area, level, index, timelevel, slaveKey1, null, null, 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
- * @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 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;
- }
- if (org.springframework.util.StringUtils.isEmpty(slaveKey2)) {
- slaveKey2 = commonParams;
- }
- List list = findDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, slaveKey1, slaveKey2, null, null);
- return (SaveModel) list.get(0);
- }
- /**
- * 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
- * @return
- */
- public List<SaveModel> findOneDateQuotaLevel2(String quotaDate, String area, int level, String index, String timelevel, String slaveKey1) throws Exception {
- if (org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
- slaveKey1 = commonParams;
- }
- List list = findDateQuotaLevel2(quotaDate, quotaDate, area, level, index, timelevel, slaveKey1, commonParams, null, null);
- return list;
- }
- /**
- * 折线图
- * 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 List<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 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月 (按照日周月聚合)
- * @param slaveKey1 一级维度的key
- * @return
- */
- public List<SaveModel> findLineChartDateQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timelevel, String interval, String slaveKey1) throws Exception {
- if (org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
- slaveKey1 = commonParams;
- }
- 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级维度
- * 查询某个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 List<SaveModel> findLineChartDateQuotaLevel2(String startDate, String endDate, String area, int level, String index, String timelevel, String interval, String slaveKey1, String slaveKey2) throws Exception {
- if (org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
- slaveKey1 = commonParams;
- }
- if (org.springframework.util.StringUtils.isEmpty(slaveKey2)) {
- slaveKey2 = commonParams;
- }
- List list = findDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, slaveKey1, slaveKey2, interval, null);
- return list;
- }
- /**
- * 折线图
- * 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 slaveKey2 二级维度的key
- * @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);
- return list;
- }
- /**
- * 折线图
- * 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
- * @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);
- return list;
- }
- /**
- * 折线图
- * 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月 (按照日周月聚合)
- * @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);
- return list;
- }
- /**
- * 列表
- * 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 List<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 list;
- }
- /**
- * 列表
- * 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 lowLevel 下一级区域等级 1 省 2 市 3 区县 4 机构 5团队.
- * @return
- * @throws Exception
- */
- public List<SaveModel> findListDateQuotaLevel0(String startDate, String endDate, String area, int level, String index, String timelevel, String lowLevel) throws Exception {
- List list = findDateQuotaLevel0(startDate, endDate, area, level, index, timelevel, 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团队
- * @param slaveKey1 一级维度的key
- * @return
- */
- public List<SaveModel> findListDateQuotaLevel1(String quotaDate, String area, int level, String index, String timelevel, String lowLevel, String slaveKey1) throws Exception {
- if (org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
- slaveKey1 = commonParams;
- }
- 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;
- }
- /**
- * 列表
- * 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 lowLevel 下一级区域等级 1 省 2 市 3 区县 4 机构 5团队
- * @param slaveKey1 一级维度的key
- * @return
- */
- public List<SaveModel> findListDateQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timelevel, String lowLevel, String slaveKey1) throws Exception {
- if (org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
- slaveKey1 = commonParams;
- }
- List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, slaveKey1, null, lowLevel);
- return list;
- }
- /**
- * 列表
- * 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 List<SaveModel> findListDateQuotaLevel2(String quotaDate, String area, int level, String index, String timelevel, String lowLevel, String slaveKey1, String slaveKey2) throws Exception {
- if (org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
- slaveKey1 = commonParams;
- }
- if (org.springframework.util.StringUtils.isEmpty(slaveKey2)) {
- slaveKey2 = commonParams;
- }
- List list = findDateQuotaLevel2(quotaDate, quotaDate, area, level, index, timelevel, slaveKey1, slaveKey2, null, lowLevel);
- return list;
- }
- public List<SaveModel> findListDateQuotaLevel2NoSlaveKey1(String quotaDate, String area, int level, String index, String timelevel, String lowLevel, String slaveKey2) throws Exception {
- if (org.springframework.util.StringUtils.isEmpty(slaveKey2)) {
- slaveKey2 = commonParams;
- }
- 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 {
- if (org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
- slaveKey1 = commonParams;
- }
- 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级维度
- * 查询某个区间某个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 lowLevel 下一级区域等级 1 省 2 市 3 区县 4 机构 5团队
- * @param slaveKey1 一级维度的key
- * @param slaveKey2 二级维度的key
- * @return
- */
- public List<SaveModel> findListDateQuotaLevel2(String startDate, String endDate, String area, int level, String index, String timelevel, String lowLevel, String slaveKey1, String slaveKey2) throws Exception {
- if (org.springframework.util.StringUtils.isEmpty(slaveKey1)) {
- slaveKey1 = commonParams;
- }
- if (org.springframework.util.StringUtils.isEmpty(slaveKey2)) {
- slaveKey2 = commonParams;
- }
- List list = findDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, slaveKey1, slaveKey2, null, lowLevel);
- return list;
- }
- /**
- * 将参数转换成需要的SaveModel里的标识
- *
- * @param level 等级 4 市 3区 2社区 1团队
- * 转换后的level 等级 2 市 3区 4社区 5团队
- * @return
- * @author zhangdan
- * @time 2017-10-18
- */
- public int changeLevel(int level) {
- int resultLevel = 0;
- if (level == 1) {
- //团队转成SaveModel里的标识
- resultLevel = Integer.valueOf(SaveModel.teamLevel);
- } else if (level == 2) {
- //社区转成SaveModel里的标识
- resultLevel = Integer.valueOf(SaveModel.OrgLevel);
- } else if (level == 3) {
- //区转成SaveModel里的标识
- resultLevel = Integer.valueOf(SaveModel.townLevel);
- } else if (level == 4) {
- //市转成SaveModel里的标识
- resultLevel = Integer.valueOf(SaveModel.cityLevel);
- }
- if (resultLevel == 0) {
- resultLevel = level;
- }
- return resultLevel;
- }
- }
|