feat: 根据条件查询电站页水温基础站点列表
This commit is contained in:
parent
dd9ca6df75
commit
c0499f93dc
@ -197,6 +197,12 @@ public class SdWTMonitorController {
|
|||||||
return ResponseResult.successData(sdWtMonitorService.getMsstbprptList(dataSourceRequest));
|
return ResponseResult.successData(sdWtMonitorService.getMsstbprptList(dataSourceRequest));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/msstbprpt/eng/GetKendoList")
|
||||||
|
@Operation(summary = "根据条件查询电站页水温基础站点列表")
|
||||||
|
public ResponseResult getMsstbprptEngList(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
return ResponseResult.successData(sdWtMonitorService.getMsstbprptEngList(dataSourceRequest));
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/msstbprpt/getStcdInfo")
|
@GetMapping("/msstbprpt/getStcdInfo")
|
||||||
@Operation(summary = "根据站码查询单条水温基础数据")
|
@Operation(summary = "根据站码查询单条水温基础数据")
|
||||||
public ResponseResult getStcdInfo(@RequestParam String stcd) {
|
public ResponseResult getStcdInfo(@RequestParam String stcd) {
|
||||||
|
|||||||
@ -74,6 +74,15 @@ public class SdWtBaseInfoVO implements Serializable {
|
|||||||
@Schema(description = "所属电站编码")
|
@Schema(description = "所属电站编码")
|
||||||
private String rstcd;
|
private String rstcd;
|
||||||
|
|
||||||
|
@Schema(description = "设备类型")
|
||||||
|
private Integer wtDeviceType;
|
||||||
|
|
||||||
|
@Schema(description = "接入类型")
|
||||||
|
private Integer dtinType;
|
||||||
|
|
||||||
|
@Schema(description = "监测方式")
|
||||||
|
private Integer mway;
|
||||||
|
|
||||||
@Schema(description = "所属测站编码")
|
@Schema(description = "所属测站编码")
|
||||||
private String stCode;
|
private String stCode;
|
||||||
|
|
||||||
|
|||||||
@ -22,6 +22,8 @@ public interface SdWtMonitorService {
|
|||||||
|
|
||||||
DataSourceResult getMsstbprptList(DataSourceRequest dataSourceRequest);
|
DataSourceResult getMsstbprptList(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
|
DataSourceResult getMsstbprptEngList(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
WtBaseInfoVo getStcdInfo(String stcd);
|
WtBaseInfoVo getStcdInfo(String stcd);
|
||||||
|
|
||||||
DataSourceResult getCxDetailList(DataSourceRequest dataSourceRequest);
|
DataSourceResult getCxDetailList(DataSourceRequest dataSourceRequest);
|
||||||
|
|||||||
@ -856,14 +856,31 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
|
|||||||
|
|
||||||
StringBuilder sql = new StringBuilder();
|
StringBuilder sql = new StringBuilder();
|
||||||
sql.append("SELECT ").append(selectSql).append(" ")
|
sql.append("SELECT ").append(selectSql).append(" ")
|
||||||
.append("FROM SD_WT_B_H wt ")
|
.append(buildWtMsstbprptFromSql());
|
||||||
.append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = wt.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ")
|
|
||||||
.append("LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 ")
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
.append("LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = eng.BASE_ID AND NVL(hbrv.IS_DELETED, 0) = 0 ")
|
appendWtMsstbprptFilters(sql, paramMap, dataSourceRequest == null ? null : dataSourceRequest.getFilter());
|
||||||
.append("LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = wt.STTP AND NVL(sttp.IS_DELETED, 0) = 0 ")
|
sql.append(buildVmsstbprptOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
|
||||||
.append("LEFT JOIN (SELECT DISTINCT STCD FROM SD_WTRV_R WHERE IS_DELETED = 0 AND TM >= SYSDATE - 1) rvRecent ON rvRecent.STCD = wt.STCD ")
|
|
||||||
.append("LEFT JOIN (SELECT DISTINCT STCD FROM SD_WTVT_R WHERE IS_DELETED = 0 AND TM >= SYSDATE - 1) vtRecent ON vtRecent.STCD = wt.STCD ")
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest();
|
||||||
.append("WHERE NVL(wt.IS_DELETED, 0) = 0 AND NVL(wt.DTIN_TYPE, 0) = 0 ");
|
Page<?> page = QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||||
|
List<SdWtBaseInfoVO> list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, SdWtBaseInfoVO.class);
|
||||||
|
|
||||||
|
DataSourceResult<SdWtBaseInfoVO> result = new DataSourceResult<>();
|
||||||
|
result.setData(list);
|
||||||
|
result.setTotal(page != null ? page.getTotal() : list.size());
|
||||||
|
result.setAggregates(new HashMap<>());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataSourceResult getMsstbprptEngList(DataSourceRequest dataSourceRequest) {
|
||||||
|
List<String> selectFields = dataSourceRequest == null ? null : dataSourceRequest.getSelect();
|
||||||
|
String selectSql = buildWtMsstbprptEngSelectSql(selectFields);
|
||||||
|
|
||||||
|
StringBuilder sql = new StringBuilder();
|
||||||
|
sql.append("SELECT ").append(selectSql).append(" ")
|
||||||
|
.append(buildWtMsstbprptFromSql());
|
||||||
|
|
||||||
Map<String, Object> paramMap = new HashMap<>();
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
appendWtMsstbprptFilters(sql, paramMap, dataSourceRequest == null ? null : dataSourceRequest.getFilter());
|
appendWtMsstbprptFilters(sql, paramMap, dataSourceRequest == null ? null : dataSourceRequest.getFilter());
|
||||||
@ -1980,6 +1997,16 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
|
|||||||
orderColumns.add("NVL(dtin, -1) " + dir + " NULLS LAST");
|
orderColumns.add("NVL(dtin, -1) " + dir + " NULLS LAST");
|
||||||
} else if ("dtinName".equals(field)) {
|
} else if ("dtinName".equals(field)) {
|
||||||
orderColumns.add("CASE WHEN NVL(dtin, 0) = 1 THEN '已接入' ELSE '未接入' END " + dir + " NULLS LAST");
|
orderColumns.add("CASE WHEN NVL(dtin, 0) = 1 THEN '已接入' ELSE '未接入' END " + dir + " NULLS LAST");
|
||||||
|
} else if ("wtDeviceType".equals(field)) {
|
||||||
|
orderColumns.add("NVL(wtDeviceType, -1) " + dir + " NULLS LAST");
|
||||||
|
} else if ("dtinType".equals(field)) {
|
||||||
|
orderColumns.add("NVL(dtinType, -1) " + dir + " NULLS LAST");
|
||||||
|
} else if ("mway".equals(field)) {
|
||||||
|
orderColumns.add("NVL(mway, -1) " + dir + " NULLS LAST");
|
||||||
|
} else if ("lgtd".equals(field)) {
|
||||||
|
orderColumns.add("lgtd " + dir + " NULLS LAST");
|
||||||
|
} else if ("lttd".equals(field)) {
|
||||||
|
orderColumns.add("lttd " + dir + " NULLS LAST");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1991,6 +2018,54 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String buildWtMsstbprptSelectSql(List<String> selectFields) {
|
private String buildWtMsstbprptSelectSql(List<String> selectFields) {
|
||||||
|
Map<String, String> columnMap = buildWtMsstbprptColumnMap();
|
||||||
|
|
||||||
|
List<String> actualColumns = new ArrayList<>();
|
||||||
|
if (selectFields != null && !selectFields.isEmpty()) {
|
||||||
|
for (String field : selectFields) {
|
||||||
|
String column = columnMap.get(field);
|
||||||
|
if (StrUtil.isNotBlank(column)) {
|
||||||
|
actualColumns.add(column);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (actualColumns.isEmpty()) {
|
||||||
|
actualColumns.addAll(columnMap.values());
|
||||||
|
}
|
||||||
|
return String.join(", ", actualColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String buildWtMsstbprptEngSelectSql(List<String> selectFields) {
|
||||||
|
Map<String, String> columnMap = buildWtMsstbprptColumnMap();
|
||||||
|
List<String> actualColumns = new ArrayList<>();
|
||||||
|
if (selectFields == null || selectFields.isEmpty()) {
|
||||||
|
actualColumns.add(columnMap.get("stcd"));
|
||||||
|
actualColumns.add(columnMap.get("stnm"));
|
||||||
|
actualColumns.add(columnMap.get("wtDeviceType"));
|
||||||
|
actualColumns.add(columnMap.get("dtinType"));
|
||||||
|
actualColumns.add(columnMap.get("mway"));
|
||||||
|
actualColumns.add(columnMap.get("lgtd"));
|
||||||
|
actualColumns.add(columnMap.get("lttd"));
|
||||||
|
actualColumns.add(columnMap.get("baseId"));
|
||||||
|
actualColumns.add(columnMap.get("baseName"));
|
||||||
|
} else {
|
||||||
|
for (String field : selectFields) {
|
||||||
|
String column = columnMap.get(field);
|
||||||
|
if (StrUtil.isNotBlank(column)) {
|
||||||
|
actualColumns.add(column);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ensureWtMsstbprptColumn(actualColumns, columnMap, "stcd");
|
||||||
|
ensureWtMsstbprptColumn(actualColumns, columnMap, "stnm");
|
||||||
|
ensureWtMsstbprptColumn(actualColumns, columnMap, "lgtd");
|
||||||
|
ensureWtMsstbprptColumn(actualColumns, columnMap, "lttd");
|
||||||
|
ensureWtMsstbprptColumn(actualColumns, columnMap, "baseId");
|
||||||
|
ensureWtMsstbprptColumn(actualColumns, columnMap, "baseName");
|
||||||
|
return String.join(", ", actualColumns);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, String> buildWtMsstbprptColumnMap() {
|
||||||
Map<String, String> columnMap = new LinkedHashMap<>();
|
Map<String, String> columnMap = new LinkedHashMap<>();
|
||||||
columnMap.put("baseName", "hb.BASENAME AS baseName");
|
columnMap.put("baseName", "hb.BASENAME AS baseName");
|
||||||
columnMap.put("baseId", "hb.BASEID AS baseId");
|
columnMap.put("baseId", "hb.BASEID AS baseId");
|
||||||
@ -2009,31 +2084,43 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
|
|||||||
columnMap.put("stcd", "wt.STCD AS stcd");
|
columnMap.put("stcd", "wt.STCD AS stcd");
|
||||||
columnMap.put("fhstcd", "wt.FHSTCD AS fhstcd");
|
columnMap.put("fhstcd", "wt.FHSTCD AS fhstcd");
|
||||||
columnMap.put("rstcd", "wt.RSTCD AS rstcd");
|
columnMap.put("rstcd", "wt.RSTCD AS rstcd");
|
||||||
// columnMap.put("bldsttCcodeName", "CASE WHEN wt.BLDSTT_CODE IN ('1', '10', '11') THEN '已建' WHEN wt.BLDSTT_CODE IN ('2', '7', '8') THEN '在建' ELSE '未建/规划' END AS bldsttCcodeName");
|
|
||||||
columnMap.put("bldsttCcodeName",
|
columnMap.put("bldsttCcodeName",
|
||||||
"CASE WHEN wt.BLDSTT_CODE = 0 THEN '未建/规划' " +
|
"CASE WHEN wt.BLDSTT_CODE = 0 THEN '未建/规划' " +
|
||||||
"WHEN wt.BLDSTT_CODE = 1 THEN '在建' " +
|
"WHEN wt.BLDSTT_CODE = 1 THEN '在建' " +
|
||||||
"WHEN wt.BLDSTT_CODE = 2 THEN '已建' " +
|
"WHEN wt.BLDSTT_CODE = 2 THEN '已建' " +
|
||||||
"ELSE '未知' END");
|
"ELSE '未知' END AS bldsttCcodeName");
|
||||||
columnMap.put("bldsttCcode", "wt.BLDSTT_CODE AS bldsttCcode");
|
columnMap.put("bldsttCcode", "wt.BLDSTT_CODE AS bldsttCcode");
|
||||||
columnMap.put("stCode", "NULL AS stCode");
|
columnMap.put("stCode", "NULL AS stCode");
|
||||||
columnMap.put("stName", "NULL AS stName");
|
columnMap.put("stName", "NULL AS stName");
|
||||||
columnMap.put("dvtp", "eng.DVTP AS dvtp");
|
columnMap.put("dvtp", "eng.DVTP AS dvtp");
|
||||||
columnMap.put("hbrvcd", "eng.HBRVCD AS hbrvcd");
|
columnMap.put("hbrvcd", "eng.HBRVCD AS hbrvcd");
|
||||||
|
columnMap.put("lgtd", "wt.LGTD AS lgtd");
|
||||||
|
columnMap.put("lttd", "wt.LTTD AS lttd");
|
||||||
|
columnMap.put("wtDeviceType", "wt.WT_DEVICE_TYPE AS wtDeviceType");
|
||||||
|
columnMap.put("dtinType", "wt.DTIN_TYPE AS dtinType");
|
||||||
|
columnMap.put("mway", "wt.MWAY AS mway");
|
||||||
|
return columnMap;
|
||||||
|
}
|
||||||
|
|
||||||
List<String> actualColumns = new ArrayList<>();
|
private void ensureWtMsstbprptColumn(List<String> actualColumns, Map<String, String> columnMap, String field) {
|
||||||
if (selectFields != null && !selectFields.isEmpty()) {
|
String column = columnMap.get(field);
|
||||||
for (String field : selectFields) {
|
if (StrUtil.isBlank(column)) {
|
||||||
String column = columnMap.get(field);
|
return;
|
||||||
if (StrUtil.isNotBlank(column)) {
|
|
||||||
actualColumns.add(column);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (actualColumns.isEmpty()) {
|
if (!actualColumns.contains(column)) {
|
||||||
actualColumns.addAll(columnMap.values());
|
actualColumns.add(column);
|
||||||
}
|
}
|
||||||
return String.join(", ", actualColumns);
|
}
|
||||||
|
|
||||||
|
private String buildWtMsstbprptFromSql() {
|
||||||
|
return "FROM SD_WT_B_H wt " +
|
||||||
|
"LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = wt.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 " +
|
||||||
|
"LEFT JOIN SD_HYDROBASE hb ON hb.BASEID = eng.BASE_ID AND NVL(hb.IS_DELETED, 0) = 0 " +
|
||||||
|
"LEFT JOIN SD_HBRV_DIC hbrv ON hbrv.HBRVCD = eng.HBRVCD AND hbrv.BASEID = eng.BASE_ID AND NVL(hbrv.IS_DELETED, 0) = 0 " +
|
||||||
|
"LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = wt.STTP AND NVL(sttp.IS_DELETED, 0) = 0 " +
|
||||||
|
"LEFT JOIN (SELECT DISTINCT STCD FROM SD_WTRV_R WHERE IS_DELETED = 0 AND TM >= SYSDATE - 1) rvRecent ON rvRecent.STCD = wt.STCD " +
|
||||||
|
"LEFT JOIN (SELECT DISTINCT STCD FROM SD_WTVT_R WHERE IS_DELETED = 0 AND TM >= SYSDATE - 1) vtRecent ON vtRecent.STCD = wt.STCD " +
|
||||||
|
"WHERE NVL(wt.IS_DELETED, 0) = 0 AND NVL(wt.DTIN_TYPE, 0) = 0 ";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void appendWtMsstbprptFilters(StringBuilder sql,
|
private void appendWtMsstbprptFilters(StringBuilder sql,
|
||||||
@ -2061,6 +2148,8 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
|
|||||||
appendWtMsstbprptLeaf(sql, paramMap, paramKey, "wt.RSTCD", operator, value);
|
appendWtMsstbprptLeaf(sql, paramMap, paramKey, "wt.RSTCD", operator, value);
|
||||||
} else if ("baseId".equals(field)) {
|
} else if ("baseId".equals(field)) {
|
||||||
appendWtMsstbprptLeaf(sql, paramMap, paramKey, "eng.BASE_ID", operator, value);
|
appendWtMsstbprptLeaf(sql, paramMap, paramKey, "eng.BASE_ID", operator, value);
|
||||||
|
} else if ("sttpFullPath".equals(field)) {
|
||||||
|
appendWtMsstbprptLeaf(sql, paramMap, paramKey, "sttp.FULL_PATH", operator, value);
|
||||||
} else if ("mway".equals(field)) {
|
} else if ("mway".equals(field)) {
|
||||||
appendWtMsstbprptLeaf(sql, paramMap, paramKey, "wt.MWAY", operator, value);
|
appendWtMsstbprptLeaf(sql, paramMap, paramKey, "wt.MWAY", operator, value);
|
||||||
} else if ("dtin".equals(field)) {
|
} else if ("dtin".equals(field)) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user