feat: 获取水质沿程变化默认有数据的河流

This commit is contained in:
tangwei 2026-05-28 10:15:38 +08:00
parent c234d57ccd
commit 8c2fb08efe
3 changed files with 80 additions and 0 deletions

View File

@ -59,6 +59,12 @@ public class EnvWqDataController {
return ResponseResult.successData(envWqDataService.getAlongWqKendoListCust(dataSourceRequest)); return ResponseResult.successData(envWqDataService.getAlongWqKendoListCust(dataSourceRequest));
} }
@PostMapping("/along/default/rvcd")
@Operation(summary = "获取水质沿程变化默认有数据的河流")
public ResponseResult getAlongDefaultRvcd(@RequestBody DataSourceRequest dataSourceRequest) {
return ResponseResult.successData(envWqDataService.getAlongDefaultRvcd(dataSourceRequest));
}
@PostMapping("/msstbprpt/GetKendoList") @PostMapping("/msstbprpt/GetKendoList")
@Operation(summary = "查询水质基础站点分组统计") @Operation(summary = "查询水质基础站点分组统计")
public ResponseResult getMsstbprptList(@RequestBody DataSourceRequest dataSourceRequest) { public ResponseResult getMsstbprptList(@RequestBody DataSourceRequest dataSourceRequest) {

View File

@ -12,6 +12,8 @@ public interface EnvWqDataService {
DataSourceResult getAlongWqKendoListCust(DataSourceRequest dataSourceRequest); DataSourceResult getAlongWqKendoListCust(DataSourceRequest dataSourceRequest);
DataSourceResult getAlongDefaultRvcd(DataSourceRequest dataSourceRequest);
DataSourceResult getMsstbprptList(DataSourceRequest dataSourceRequest); DataSourceResult getMsstbprptList(DataSourceRequest dataSourceRequest);
DataSourceResult getVmsstbprptList(DataSourceRequest dataSourceRequest); DataSourceResult getVmsstbprptList(DataSourceRequest dataSourceRequest);

View File

@ -226,6 +226,44 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
return result; return result;
} }
@Override
public DataSourceResult getAlongDefaultRvcd(DataSourceRequest dataSourceRequest) {
String baseId = findFilterFieldValue(dataSourceRequest == null ? null : dataSourceRequest.getFilter(), "baseId");
String tm = findFilterFieldValue(dataSourceRequest == null ? null : dataSourceRequest.getFilter(), "tm");
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
if (StrUtil.isBlank(baseId) && loadOptions != null) {
baseId = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "baseId");
}
if (StrUtil.isBlank(tm) && loadOptions != null) {
tm = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "tm");
}
if (StrUtil.isBlank(baseId)) {
return emptyResult();
}
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("baseId", baseId);
String sql;
if (StrUtil.isBlank(tm)) {
sql = buildAlongDefaultRvcdLatestSql();
} else {
String[] tmRange = normalizeTmRange(tm);
if (tmRange == null) {
throw new BizException("时间(tm)格式错误.");
}
paramMap.put("startTime", tmRange[0]);
paramMap.put("endTime", tmRange[1]);
sql = buildAlongDefaultRvcdByRangeSql();
}
List<Map<String, Object>> list = microservicDynamicSQLMapper.pageAllList(null, sql, paramMap);
DataSourceResult<Map<String, Object>> result = new DataSourceResult<>();
result.setData(list);
result.setTotal((long) list.size());
result.setAggregates(new HashMap<>());
return result;
}
private String[] normalizeTmRange(String tm) { private String[] normalizeTmRange(String tm) {
if (StrUtil.isBlank(tm)) { if (StrUtil.isBlank(tm)) {
return null; return null;
@ -242,6 +280,40 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
return first.compareTo(second) <= 0 ? new String[]{first, second} : new String[]{second, first}; return first.compareTo(second) <= 0 ? new String[]{first, second} : new String[]{second, first};
} }
private String buildAlongDefaultRvcdByRangeSql() {
return "SELECT rvcd FROM ( " +
"SELECT mab.RVCD AS rvcd " +
"FROM MS_ALONG_B mab " +
"INNER JOIN MS_ALONGDET_B sab ON sab.ALONG_ID = mab.ID " +
"INNER JOIN SD_WQ_B_H wq ON wq.STCD = sab.STCD AND wq.STTP = 'WQ' AND NVL(wq.IS_DELETED, 0) = 0 " +
"INNER JOIN SD_ENGINFO_B_H eng ON eng.STCD = wq.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " +
"INNER JOIN SD_WQ_R r ON r.STCD = sab.STCD AND NVL(r.IS_DELETED, 0) = 0 " +
"WHERE NVL(mab.IS_DELETED, 0) = 0 " +
" AND NVL(sab.IS_DELETED, 0) = 0 " +
" AND mab.CODE = 'common' " +
" AND eng.BASE_ID = #{map.baseId} " +
" AND r.TM >= TO_DATE(#{map.startTime}, 'YYYY-MM-DD HH24:MI:SS') " +
" AND r.TM <= TO_DATE(#{map.endTime}, 'YYYY-MM-DD HH24:MI:SS') " +
"ORDER BY NVL(mab.ORDER_INDEX, 999999) ASC, NVL(sab.SORT, 999999) ASC " +
") WHERE ROWNUM = 1";
}
private String buildAlongDefaultRvcdLatestSql() {
return "SELECT rvcd, tm FROM ( " +
"SELECT mab.RVCD AS rvcd, TRUNC(r.TM, 'HH24') AS tm " +
"FROM MS_ALONG_B mab " +
"INNER JOIN MS_ALONGDET_B sab ON sab.ALONG_ID = mab.ID " +
"INNER JOIN SD_WQ_B_H wq ON wq.STCD = sab.STCD AND sab.STTP = 'WQ' AND NVL(wq.IS_DELETED, 0) = 0 " +
"INNER JOIN SD_ENGINFO_B_H eng ON eng.STCD = wq.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " +
"INNER JOIN SD_WQ_R r ON r.STCD = sab.STCD AND NVL(r.IS_DELETED, 0) = 0 " +
"WHERE NVL(mab.IS_DELETED, 0) = 0 " +
" AND NVL(sab.IS_DELETED, 0) = 0 " +
" AND mab.CODE = 'common' " +
" AND eng.BASE_ID = #{map.baseId} " +
"ORDER BY r.TM DESC " +
") WHERE ROWNUM = 1";
}
private String buildAlongWqMaxTmSql(String rvcd, String baseId, boolean hasTmRange) { private String buildAlongWqMaxTmSql(String rvcd, String baseId, boolean hasTmRange) {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("SELECT TM FROM (") sql.append("SELECT TM FROM (")