feat: 查询水质日数据

This commit is contained in:
tangwei 2026-06-12 15:59:09 +08:00
parent abb76a8abb
commit d46649391e
4 changed files with 507 additions and 0 deletions

View File

@ -42,6 +42,12 @@ public class EnvWqDataController {
return ResponseResult.successData(envWqDataService.processDataKendoList(dataSourceRequest)); return ResponseResult.successData(envWqDataService.processDataKendoList(dataSourceRequest));
} }
@PostMapping("/data/day/GetKendoListCust")
@Operation(summary = "查询水质日数据")
public ResponseResult getDayKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
return ResponseResult.successData(envWqDataService.getDayKendoListCust(dataSourceRequest));
}
@PostMapping("/GetStbprpYsByStcd") @PostMapping("/GetStbprpYsByStcd")
@Operation(summary = "水质监测数据查询") @Operation(summary = "水质监测数据查询")
public ResponseResult GetStbprpYsByStcd(@RequestBody DataSourceRequest dataSourceRequest) { public ResponseResult GetStbprpYsByStcd(@RequestBody DataSourceRequest dataSourceRequest) {

View File

@ -0,0 +1,81 @@
package com.yfd.platform.qgc_env.wq.entity.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
@Schema(description = "水质日数据")
public class EnvWqDayDataVo {
private String stcd;
private String rstcd;
private String stnm;
private String stCode;
private String stName;
private String ennm;
private Date dt;
private BigDecimal wtmp;
private BigDecimal ph;
private BigDecimal dox;
private BigDecimal codmn;
private BigDecimal codcr;
private BigDecimal bod5;
private BigDecimal nh3n;
private BigDecimal tp;
private BigDecimal tn;
private BigDecimal cu;
private BigDecimal zn;
private BigDecimal f;
private BigDecimal se;
private BigDecimal ars;
private BigDecimal hg;
private BigDecimal cd;
private BigDecimal cr6;
private BigDecimal pb;
private BigDecimal cn;
private BigDecimal vlph;
private BigDecimal oil;
private BigDecimal las;
private BigDecimal s2;
private BigDecimal fcg;
private BigDecimal cl;
private BigDecimal so4;
private BigDecimal no3;
private BigDecimal thrd;
private BigDecimal cond;
private BigDecimal fe;
private BigDecimal mn;
private BigDecimal al;
private BigDecimal ss;
private BigDecimal no2;
private BigDecimal chla;
private BigDecimal clarity;
private BigDecimal tu;
private BigDecimal tod;
private BigDecimal cyano;
private String wqgrd;
private String wqgrdName;
private String wwqtg;
private String wwqtgName;
private Integer sfdb;
private String sfdbName;
private String wqSfdbhnYs;
private String wqSfdbhnYsName;
private String baseId;
private String baseName;
private String rvcdName;
private String addvcdName;
private String dtinType;
private BigDecimal qi;
private BigDecimal qo;
private Integer baseStepSort;
private Integer rvcdStepSort;
private Integer rstcdStepSort;
private Integer siteStepSort;
private List<Map<String, Object>> min;
private List<Map<String, Object>> max;
}

View File

@ -12,6 +12,8 @@ public interface EnvWqDataService {
DataSourceResult processDataKendoList(DataSourceRequest dataSourceRequest); DataSourceResult processDataKendoList(DataSourceRequest dataSourceRequest);
DataSourceResult getDayKendoListCust(DataSourceRequest dataSourceRequest);
DataSourceResult getStbprpYsByStcd(DataSourceRequest dataSourceRequest); DataSourceResult getStbprpYsByStcd(DataSourceRequest dataSourceRequest);
DataSourceResult getAlongWqKendoListCust(DataSourceRequest dataSourceRequest); DataSourceResult getAlongWqKendoListCust(DataSourceRequest dataSourceRequest);

View File

@ -143,6 +143,54 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
return result; return result;
} }
@Override
public DataSourceResult getDayKendoListCust(DataSourceRequest dataSourceRequest) {
StringBuilder sql = new StringBuilder(buildEnvWqDayBaseSql());
Map<String, Object> paramMap = new HashMap<>();
String filterSql = buildEnvWqDayFilterCondition(
dataSourceRequest == null ? null : dataSourceRequest.getFilter(),
paramMap,
new int[]{0}
);
if (StrUtil.isNotBlank(filterSql)) {
sql.append(" AND ").append(filterSql).append(" ");
}
DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest();
String groupBy = KendoUtil.getGroupBy(dataSourceRequest);
GroupingInfo[] groupInfos = loadOptions.getGroup();
if (StrUtil.isNotBlank(groupBy) && groupInfos != null && groupInfos.length > 0) {
String groupedSql = buildEnvWqDayGroupSql(sql.toString(), groupBy, groupInfos);
List<Map<String, Object>> list = microservicDynamicSQLMapper.pageAllList(null, groupedSql, paramMap);
DataSourceResult result = new DataSourceResult();
if (Boolean.TRUE.equals(dataSourceRequest.getGroupResultFlat())) {
result.setData(new GroupHelper().faltGroup(list, Arrays.asList(groupInfos)));
} else {
result.setData(new GroupHelper().group(list, Arrays.asList(groupInfos)));
}
result.setTotal(0L);
result.setAggregates(new HashMap<>());
return result;
}
sql.append(buildEnvWqDayOrderBySql(dataSourceRequest.getSort()));
Page<?> page = QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
List<EnvWqDayDataVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(
page,
sql.toString(),
paramMap,
EnvWqDayDataVo.class
);
fillEnvWqDayDerivedFields(list);
fillEnvWqDayLimit(list);
DataSourceResult<EnvWqDayDataVo> result = new DataSourceResult<>();
result.setData(list);
result.setTotal(page != null ? page.getTotal() : list.size());
result.setAggregates(new HashMap<>());
return result;
}
@Override @Override
public DataSourceResult getStbprpYsByStcd(DataSourceRequest dataSourceRequest) { public DataSourceResult getStbprpYsByStcd(DataSourceRequest dataSourceRequest) {
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest(); DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
@ -917,6 +965,376 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
return sql.toString(); return sql.toString();
} }
private String buildEnvWqDayBaseSql() {
return new StringBuilder()
.append("SELECT ")
.append("T.STCD AS stcd, ")
.append("T.RSTCD AS rstcd, ")
.append("T.STNM AS stnm, ")
.append("T.ST_CODE AS stCode, ")
.append("T.ST_NAME AS stName, ")
.append("T.ENNM AS ennm, ")
.append("T.DT AS dt, ")
.append("T.WTMP AS wtmp, ")
.append("T.PH AS ph, ")
.append("T.DOX AS dox, ")
.append("T.CODMN AS codmn, ")
.append("T.CODCR AS codcr, ")
.append("T.BOD5 AS bod5, ")
.append("T.NH3N AS nh3n, ")
.append("T.TP AS tp, ")
.append("T.TN AS tn, ")
.append("T.CU AS cu, ")
.append("T.ZN AS zn, ")
.append("T.F AS f, ")
.append("T.SE AS se, ")
.append("T.ARS AS ars, ")
.append("T.HG AS hg, ")
.append("T.CD AS cd, ")
.append("T.CR6 AS cr6, ")
.append("T.PB AS pb, ")
.append("T.CN AS cn, ")
.append("T.VLPH AS vlph, ")
.append("T.OIL AS oil, ")
.append("T.LAS AS las, ")
.append("T.S2 AS s2, ")
.append("T.FCG AS fcg, ")
.append("T.CL AS cl, ")
.append("T.SO4 AS so4, ")
.append("T.NO3 AS no3, ")
.append("T.THRD AS thrd, ")
.append("T.COND AS cond, ")
.append("T.FE AS fe, ")
.append("T.MN AS mn, ")
.append("T.AL AS al, ")
.append("T.SS AS ss, ")
.append("T.NO2 AS no2, ")
.append("T.CHLA AS chla, ")
.append("T.CLARITY AS clarity, ")
.append("T.TU AS tu, ")
.append("T.TOD AS tod, ")
.append("T.CYANO AS cyano, ")
.append("T.WQGRD AS wqgrd, ")
.append("T.WWQTG AS wwqtg, ")
.append("T.SFDB AS sfdb, ")
.append("T.WQ_SFDBHN_YS AS wqSfdbhnYs, ")
.append("T.BASE_ID AS baseId, ")
.append("T.BASE_NAME AS baseName, ")
.append("T.RVCD_NAME AS rvcdName, ")
.append("T.ADDVCD_NAME AS addvcdName, ")
.append("T.DTIN_TYPE AS dtinType, ")
.append("T.QI AS qi, ")
.append("T.QO AS qo, ")
.append("T.BASESTEPSORT AS baseStepSort, ")
.append("T.RVCDSTEPSORT AS rvcdStepSort, ")
.append("T.RSTCDSTEPSORT AS rstcdStepSort, ")
.append("T.SITESTEPSORT AS siteStepSort ")
.append("FROM (SELECT ")
.append("day.STCD, ")
.append("station.RSTCD, ")
.append("station.STNM, ")
.append("station.ST_CODE, ")
.append("station.ST_NAME, ")
.append("station.ENNM, ")
.append("day.DT, ")
.append("day.WTMP, day.PH, day.DOX, day.CODMN, day.CODCR, day.BOD5, day.NH3N, day.TP, day.TN, ")
.append("day.CU, day.ZN, day.F, day.SE, day.ARS, day.HG, day.CD, day.CR6, day.PB, day.CN, day.VLPH, ")
.append("day.OIL, day.LAS, day.S2, day.FCG, day.CL, day.SO4, day.NO3, day.THRD, day.COND, day.FE, day.MN, ")
.append("day.AL, day.SS, day.NO2, day.CHLA, day.CLARITY, day.TU, ")
.append("CAST(NULL AS NUMBER(15,2)) AS TOD, ")
.append("day.CYANO, day.WQGRD, station.WWQTG, day.SFDB, ")
.append("CAST(NULL AS VARCHAR2(512)) AS WQ_SFDBHN_YS, ")
.append("station.BASE_ID, station.BASE_NAME, station.RVCD_NAME, station.ADDVCD_NAME, station.DTIN_TYPE, ")
.append("dayRun.QI AS QI, dayRun.QO AS QO, ")
.append("station.BASESTEPSORT, station.RVCDSTEPSORT, station.RSTCDSTEPSORT, station.SITESTEPSORT ")
.append("FROM SD_WQDAY_S day ")
.append("INNER JOIN (").append(buildEnvWqDayStationBaseSql()).append(") station ON station.STCD = day.STCD ")
.append("LEFT JOIN (SELECT run.STCD, TRUNC(run.TM) AS DT, AVG(run.QI) AS QI, AVG(run.QO) AS QO ")
.append(" FROM SD_HYDROPW_R run ")
.append(" WHERE NVL(run.IS_DELETED, 0) = 0 ")
.append(" GROUP BY run.STCD, TRUNC(run.TM)) dayRun ")
.append(" ON station.RSTCD = dayRun.STCD AND day.DT = dayRun.DT AND station.DTIN_TYPE = '0' ")
.append("WHERE NVL(day.IS_DELETED, 0) = 0) T WHERE 1 = 1 ")
.toString();
}
private String buildEnvWqDayStationBaseSql() {
return "SELECT " +
"wq.STCD, " +
"wq.STNM, " +
"wq.RSTCD, " +
"eng.ENNM, " +
"wq.BASE_ID, " +
"hb.BASENAME AS BASE_NAME, " +
"eng.HBRVCD, " +
"hbrv.HBRVNM AS HBRVCD_NAME, " +
"rv.RVNM AS RVCD_NAME, " +
"addv.ADDVNM AS ADDVCD_NAME, " +
"wq.WWQTG, " +
"TO_CHAR(wq.DTIN_TYPE) AS DTIN_TYPE, " +
"wq.FHSTCD AS ST_CODE, " +
"fh.STNM AS ST_NAME, " +
"rstAlong.SORT AS RSTCDSTEPSORT, " +
"hb.ORDER_INDEX AS BASESTEPSORT, " +
"rvAlong.ORDER_INDEX AS RVCDSTEPSORT, " +
"siteAlong.SORT AS SITESTEPSORT " +
"FROM SD_WQ_B_H wq " +
"LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = wq.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = wq.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = wq.BASE_ID AND NVL(hbrv.IS_DELETED, 0) = 0 AND NVL(hbrv.ENABLED, 1) = 1 " +
"LEFT JOIN SD_RVCD_DIC rv ON rv.RVCD = eng.RVCD " +
"LEFT JOIN SD_ADDVCD_DIC addv ON addv.ADDVCD = eng.ADDVCD " +
"LEFT JOIN SD_FHBT_B_H fh ON fh.STCD = wq.FHSTCD AND NVL(fh.IS_DELETED, 0) = 0 " +
"LEFT JOIN MS_ALONG_B rvAlong ON rvAlong.RVCD = eng.HBRVCD AND rvAlong.CODE = 'common' AND NVL(rvAlong.IS_DELETED, 0) = 0 " +
"LEFT JOIN (SELECT det.SORT, along.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(along.IS_DELETED, 0) = 0 AND along.CODE = 'common') rstAlong " +
" ON rstAlong.RVCD = eng.HBRVCD AND rstAlong.STCD = wq.RSTCD " +
"LEFT JOIN (SELECT det.SORT, along.RVCD, det.STCD " +
" FROM MS_ALONGDET_B det " +
" INNER JOIN MS_ALONG_B along ON det.ALONG_ID = along.ID " +
" WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(along.IS_DELETED, 0) = 0 AND along.CODE = 'common') siteAlong " +
" ON siteAlong.RVCD = eng.HBRVCD AND siteAlong.STCD = wq.STCD " +
"WHERE wq.STTP IN ('WQ', 'WQFB') AND NVL(wq.IS_DELETED, 0) = 0";
}
private String buildEnvWqDayFilterCondition(DataSourceRequest.FilterDescriptor filter,
Map<String, Object> paramMap,
int[] indexHolder) {
if (filter == null) {
return "";
}
if (StrUtil.isNotBlank(filter.getField())) {
return buildEnvWqDayLeafCondition(filter, paramMap, indexHolder);
}
if (CollUtil.isEmpty(filter.getFilters())) {
return "";
}
List<String> conditions = new ArrayList<>();
for (DataSourceRequest.FilterDescriptor child : filter.getFilters()) {
String childSql = buildEnvWqDayFilterCondition(child, paramMap, indexHolder);
if (StrUtil.isNotBlank(childSql)) {
conditions.add(childSql);
}
}
if (conditions.isEmpty()) {
return "";
}
String logic = "or".equalsIgnoreCase(filter.getLogic()) ? " OR " : " AND ";
return "(" + String.join(logic, conditions) + ")";
}
private String buildEnvWqDayLeafCondition(DataSourceRequest.FilterDescriptor filter,
Map<String, Object> paramMap,
int[] indexHolder) {
String column = mapEnvWqDayColumn(filter.getField());
if (StrUtil.isBlank(column) || filter.getValue() == null) {
return "";
}
String operator = StrUtil.blankToDefault(filter.getOperator(), "eq").toLowerCase();
String key = "envWqDayParam" + indexHolder[0]++;
boolean dateField = "dt".equals(filter.getField());
switch (operator) {
case "eq":
paramMap.put(key, filter.getValue());
return dateField ? column + " = TO_DATE(#{map." + key + "}, 'YYYY-MM-DD HH24:MI:SS')" : column + " = #{map." + key + "}";
case "neq":
paramMap.put(key, filter.getValue());
return dateField ? column + " <> TO_DATE(#{map." + key + "}, 'YYYY-MM-DD HH24:MI:SS')" : column + " <> #{map." + key + "}";
case "gt":
paramMap.put(key, filter.getValue());
return dateField ? column + " > TO_DATE(#{map." + key + "}, 'YYYY-MM-DD HH24:MI:SS')" : column + " > #{map." + key + "}";
case "gte":
paramMap.put(key, filter.getValue());
return dateField ? column + " >= TO_DATE(#{map." + key + "}, 'YYYY-MM-DD HH24:MI:SS')" : column + " >= #{map." + key + "}";
case "lt":
paramMap.put(key, filter.getValue());
return dateField ? column + " < TO_DATE(#{map." + key + "}, 'YYYY-MM-DD HH24:MI:SS')" : column + " < #{map." + key + "}";
case "lte":
paramMap.put(key, filter.getValue());
return dateField ? column + " <= TO_DATE(#{map." + key + "}, 'YYYY-MM-DD HH24:MI:SS')" : column + " <= #{map." + key + "}";
case "contains":
paramMap.put(key, "%" + filter.getValue() + "%");
return column + " LIKE #{map." + key + "}";
default:
return "";
}
}
private String mapEnvWqDayColumn(String field) {
if (StrUtil.isBlank(field)) {
return null;
}
return switch (field) {
case "baseName" -> "T.BASE_NAME";
case "stnm" -> "T.STNM";
case "wwqtg" -> "T.WWQTG";
case "baseId" -> "T.BASE_ID";
case "rstcd" -> "T.RSTCD";
case "ennm" -> "T.ENNM";
case "stCode" -> "T.ST_CODE";
case "stName" -> "T.ST_NAME";
case "stcd" -> "T.STCD";
case "dt" -> "T.DT";
case "wqgrd" -> "T.WQGRD";
case "ph" -> "T.PH";
case "dox" -> "T.DOX";
case "codmn" -> "T.CODMN";
case "codcr" -> "T.CODCR";
case "bod5" -> "T.BOD5";
case "nh3n" -> "T.NH3N";
case "tp" -> "T.TP";
case "tn" -> "T.TN";
case "cu" -> "T.CU";
case "zn" -> "T.ZN";
case "f" -> "T.F";
case "se" -> "T.SE";
case "ars" -> "T.ARS";
case "hg" -> "T.HG";
case "cd" -> "T.CD";
case "cr6" -> "T.CR6";
case "pb" -> "T.PB";
case "cn" -> "T.CN";
case "vlph" -> "T.VLPH";
case "oil" -> "T.OIL";
case "las" -> "T.LAS";
case "s2" -> "T.S2";
case "fcg" -> "T.FCG";
case "cl" -> "T.CL";
case "so4" -> "T.SO4";
case "no3" -> "T.NO3";
case "thrd" -> "T.THRD";
case "cond" -> "T.COND";
case "fe" -> "T.FE";
case "mn" -> "T.MN";
case "al" -> "T.AL";
case "ss" -> "T.SS";
case "no2" -> "T.NO2";
case "chla" -> "T.CHLA";
case "clarity" -> "T.CLARITY";
case "tu" -> "T.TU";
case "cyano" -> "T.CYANO";
case "sfdb" -> "T.SFDB";
case "wtmp" -> "T.WTMP";
case "dtinType" -> "T.DTIN_TYPE";
case "tod" -> "T.TOD";
case "wqSfdbhnYs" -> "T.WQ_SFDBHN_YS";
case "rvcdName" -> "T.RVCD_NAME";
case "addvcdName" -> "T.ADDVCD_NAME";
case "qi" -> "T.QI";
case "qo" -> "T.QO";
case "siteStepSort" -> "T.SITESTEPSORT";
case "baseStepSort" -> "T.BASESTEPSORT";
case "rvcdStepSort" -> "T.RVCDSTEPSORT";
case "rstcdStepSort" -> "T.RSTCDSTEPSORT";
default -> null;
};
}
private String buildEnvWqDayGroupSql(String baseSql, String groupBy, GroupingInfo[] groupInfos) {
StringBuilder sql = new StringBuilder("SELECT ");
List<String> groupFields = new ArrayList<>();
for (GroupingInfo item : groupInfos) {
if (item != null && StrUtil.isNotBlank(item.getSelector())) {
groupFields.add(item.getSelector());
}
}
sql.append(String.join(", ", groupFields));
for (GroupingInfo item : groupInfos) {
sql.append(", COUNT(*) AS count_").append(item.getSelector()).append(" ");
}
sql.append("FROM (").append(baseSql).append(") T ").append(groupBy);
return sql.toString();
}
private String buildEnvWqDayOrderBySql(List<DataSourceRequest.SortDescriptor> sortList) {
if (sortList == null || sortList.isEmpty()) {
return " ORDER BY T.DT DESC NULLS LAST, T.BASESTEPSORT ASC NULLS LAST, T.RVCDSTEPSORT ASC NULLS LAST, T.RSTCDSTEPSORT ASC NULLS LAST, T.SITESTEPSORT ASC NULLS LAST, T.STCD ASC";
}
StringBuilder sql = new StringBuilder(" ORDER BY ");
boolean appended = false;
for (DataSourceRequest.SortDescriptor sortDescriptor : sortList) {
if (sortDescriptor == null || StrUtil.isBlank(sortDescriptor.getField())) {
continue;
}
String column = mapEnvWqDayColumn(sortDescriptor.getField());
if (column == null) {
continue;
}
if (appended) {
sql.append(", ");
}
sql.append(column).append(" ")
.append("desc".equalsIgnoreCase(sortDescriptor.getDir()) ? "DESC" : "ASC")
.append(" NULLS LAST");
appended = true;
}
return appended ? sql.toString() : " ORDER BY T.DT DESC NULLS LAST, T.BASESTEPSORT ASC NULLS LAST, T.RVCDSTEPSORT ASC NULLS LAST, T.RSTCDSTEPSORT ASC NULLS LAST, T.SITESTEPSORT ASC NULLS LAST, T.STCD ASC";
}
private void fillEnvWqDayDerivedFields(List<EnvWqDayDataVo> list) {
if (CollUtil.isEmpty(list)) {
return;
}
for (EnvWqDayDataVo item : list) {
item.setWqgrdName(getWqLevelName(item.getWqgrd()));
item.setWwqtgName(getWqLevelName(item.getWwqtg()));
item.setSfdbName(getSfdbName(item.getSfdb()));
item.setWqSfdbhnYsName(convertWqFactors(item.getWqSfdbhnYs()));
}
}
private void fillEnvWqDayLimit(List<EnvWqDayDataVo> list) {
if (CollUtil.isEmpty(list)) {
return;
}
String sql = "SELECT t2.YS AS \"ys\", t2.MIN_VAL AS \"minVal\", t2.MAX_VAL AS \"maxVal\", t2.LVL AS \"lvl\" " +
"FROM MS_WARN_RULE_B t1 " +
"INNER JOIN MS_WARN_RULE_DETAIL_B t2 ON t1.ID = t2.RULE_ID " +
"WHERE t1.RULE_TYPE = 'WQLVL'";
List<Map<String, Object>> ruleList = microservicDynamicSQLMapper.pageAllList(null, sql, null);
if (CollUtil.isEmpty(ruleList)) {
return;
}
Map<String, Integer> ruleDirectionMap = getWqLimitDirection(ruleList);
Map<String, List<Map<String, Object>>> levelRuleMap = ruleList.stream()
.filter(item -> StrUtil.isNotBlank(asString(item.get("lvl"))))
.collect(Collectors.groupingBy(item -> asString(item.get("lvl"))));
for (EnvWqDayDataVo item : list) {
if (StrUtil.isBlank(item.getWwqtg())) {
continue;
}
List<Map<String, Object>> currentRules = levelRuleMap.get(item.getWwqtg());
if (CollUtil.isEmpty(currentRules)) {
continue;
}
List<Map<String, Object>> max = new ArrayList<>();
List<Map<String, Object>> min = new ArrayList<>();
for (Map<String, Object> rule : currentRules) {
String ys = asString(rule.get("ys"));
Integer direction = ruleDirectionMap.get(ys);
Map<String, Object> maxMap = new LinkedHashMap<>();
Map<String, Object> minMap = new LinkedHashMap<>();
if (direction != null && direction == 2) {
maxMap.put(ys, rule.get("maxVal"));
minMap.put(ys, rule.get("minVal"));
max.add(maxMap);
min.add(minMap);
} else if (direction != null && direction == 1) {
minMap.put(ys, rule.get("minVal"));
min.add(minMap);
} else {
maxMap.put(ys, rule.get("maxVal"));
max.add(maxMap);
}
}
item.setMax(max);
item.setMin(min);
}
}
private String buildEnvWqDataStationBaseSql() { private String buildEnvWqDataStationBaseSql() {
return "SELECT " + return "SELECT " +
"wq.STCD, " + "wq.STCD, " +