feat: 获取水质达标率默认有数据的电站

This commit is contained in:
tangwei 2026-08-10 16:19:10 +08:00
parent 9608b91f92
commit 9add0769b9
6 changed files with 96 additions and 1 deletions

View File

@ -14,7 +14,7 @@ public class SdEngInfoBHRequest {
private String hbrvcd; private String hbrvcd;
private String rvcd; private String rvcd;
private String reachcd; private String reachcd;
private List<String> basIds; private List<String> baseIds;
private List<String> hbrvcds; private List<String> hbrvcds;
private List<String> rvcds; private List<String> rvcds;
// private List<String> rvcds; // private List<String> rvcds;

View File

@ -198,6 +198,7 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
@Cacheable(cacheNames = "engInfoCache#3600", keyGenerator = "cacheKeyGenerator") @Cacheable(cacheNames = "engInfoCache#3600", keyGenerator = "cacheKeyGenerator")
public List<SdEngInfoBH> selectForDropdownCached(SdEngInfoBHRequest sdEngInfoBHRequest) { public List<SdEngInfoBH> selectForDropdownCached(SdEngInfoBHRequest sdEngInfoBHRequest) {
String baseId = sdEngInfoBHRequest.getBaseId(); String baseId = sdEngInfoBHRequest.getBaseId();
List<String> baseIds = sdEngInfoBHRequest.getBaseIds();
String hbrvcd = sdEngInfoBHRequest.getHbrvcd(); String hbrvcd = sdEngInfoBHRequest.getHbrvcd();
String ennm = sdEngInfoBHRequest.getEnnm(); String ennm = sdEngInfoBHRequest.getEnnm();
String rvcd = sdEngInfoBHRequest.getRvcd(); String rvcd = sdEngInfoBHRequest.getRvcd();
@ -210,6 +211,7 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
.eq(StrUtil.isNotBlank(reachcd), SdEngInfoBH::getReachcd, reachcd) .eq(StrUtil.isNotBlank(reachcd), SdEngInfoBH::getReachcd, reachcd)
.eq(StrUtil.isNotBlank(rvcd), SdEngInfoBH::getRvcd, rvcd) .eq(StrUtil.isNotBlank(rvcd), SdEngInfoBH::getRvcd, rvcd)
.in(rvcds != null && !rvcds.isEmpty(), SdEngInfoBH::getReachcd, rvcds) .in(rvcds != null && !rvcds.isEmpty(), SdEngInfoBH::getReachcd, rvcds)
.in(baseIds != null && !baseIds.isEmpty(), SdEngInfoBH::getBaseId, baseIds)
.in(hbrvcds != null && !hbrvcds.isEmpty(), SdEngInfoBH::getHbrvcd, hbrvcds) .in(hbrvcds != null && !hbrvcds.isEmpty(), SdEngInfoBH::getHbrvcd, hbrvcds)
.like(StringUtils.hasText(ennm), SdEngInfoBH::getEnnm, ennm) .like(StringUtils.hasText(ennm), SdEngInfoBH::getEnnm, ennm)
.select(SdEngInfoBH::getStcd, SdEngInfoBH::getEnnm, SdEngInfoBH::getReachcdName, SdEngInfoBH::getYrgeb, SdEngInfoBH::getBaseId) .select(SdEngInfoBH::getStcd, SdEngInfoBH::getEnnm, SdEngInfoBH::getReachcdName, SdEngInfoBH::getYrgeb, SdEngInfoBH::getBaseId)

View File

@ -157,6 +157,12 @@ public class EnvWqDataController {
return ResponseResult.successData(envWqDataService.getWqWarRuleList(dataSourceRequest)); return ResponseResult.successData(envWqDataService.getWqWarRuleList(dataSourceRequest));
} }
@PostMapping("/default/stcd")
@Operation(summary = "获取水质达标率默认有数据的电站")
public ResponseResult getDefaultStcd(@RequestBody DataSourceRequest dataSourceRequest) {
return ResponseResult.successData(envWqDataService.getDefaultStcd(dataSourceRequest));
}
@PostMapping("/anchorPoint/GetKendoListCust") @PostMapping("/anchorPoint/GetKendoListCust")
@Operation(summary = "水质锚点") @Operation(summary = "水质锚点")
public ResponseResult getAnchorPointKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) { public ResponseResult getAnchorPointKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {

View File

@ -0,0 +1,22 @@
package com.yfd.platform.qgc_env.wq.entity.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* 水质达标率默认有数据的电站 VO
*/
@Data
@Schema(description = "水质默认电站信息")
public class WqDefaultStcdVo implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "站码")
private String stcd;
@Schema(description = "站名")
private String stnm;
}

View File

@ -6,6 +6,7 @@ import com.yfd.platform.qgc_base.entity.vo.BatchDeleteAo;
import com.yfd.platform.qgc_env.wq.entity.ao.JobBaseAo; import com.yfd.platform.qgc_env.wq.entity.ao.JobBaseAo;
import com.yfd.platform.qgc_env.wq.entity.vo.WqBaseInfoVo; import com.yfd.platform.qgc_env.wq.entity.vo.WqBaseInfoVo;
import com.yfd.platform.qgc_env.wq.entity.vo.EnvWqAnchorPointVo; import com.yfd.platform.qgc_env.wq.entity.vo.EnvWqAnchorPointVo;
import com.yfd.platform.qgc_env.wq.entity.vo.WqDefaultStcdVo;
import java.util.Map; import java.util.Map;
@ -47,5 +48,10 @@ public interface EnvWqDataService {
DataSourceResult<EnvWqAnchorPointVo> getAnchorPointKendoListCust(DataSourceRequest dataSourceRequest); DataSourceResult<EnvWqAnchorPointVo> getAnchorPointKendoListCust(DataSourceRequest dataSourceRequest);
/**
* 获取水质达标率默认有数据的电站
*/
DataSourceResult<WqDefaultStcdVo> getDefaultStcd(DataSourceRequest dataSourceRequest);
void wqLastData(JobBaseAo ao); void wqLastData(JobBaseAo ao);
} }

View File

@ -4997,4 +4997,63 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
redisCacheUtil.setString("wqLastDate:" + wqDataVo.getStcd(), JSONUtil.toJsonStr(wqDataVo)); redisCacheUtil.setString("wqLastDate:" + wqDataVo.getStcd(), JSONUtil.toJsonStr(wqDataVo));
} }
} }
@Override
public DataSourceResult<WqDefaultStcdVo> getDefaultStcd(DataSourceRequest dataSourceRequest) {
DataSourceResult<WqDefaultStcdVo> result = new DataSourceResult<>();
result.setAggregates(new HashMap<>());
if (dataSourceRequest == null) {
result.setData(new ArrayList<>());
result.setTotal(0L);
return result;
}
// 构建过滤条件
Map<String, Object> paramMap = new HashMap<>();
String filterSql = QgcQueryWrapperUtil.buildFilterCondition(
dataSourceRequest.getFilter(),
paramMap,
new int[]{0},
this::mapWqDefaultStcdColumn
);
String sql = "SELECT sb.STCD AS stcd, sb.STNM AS stnm " +
"FROM MS_WQ_T wq " +
"INNER JOIN SD_WQ_B_H sb ON wq.STCD = sb.STCD " +
"WHERE sb.STTP = 'WQ' " +
" AND sb.USFL = 1 " +
" AND NVL(sb.IS_DELETED, 0) = 0 " +
" AND NVL(wq.IS_DELETED, 0) = 0 ";
// 拼接动态过滤条件
if (StrUtil.isNotBlank(filterSql)) {
sql += " AND " + filterSql + " ";
}
sql += " AND ROWNUM = 1";
List<WqDefaultStcdVo> dataList = microservicDynamicSQLMapper
.pageAllListWithResultType(null, sql, paramMap, WqDefaultStcdVo.class);
result.setData(dataList);
result.setTotal(dataList != null ? dataList.size() : 0L);
return result;
}
/**
* 水质默认电站过滤字段映射
*/
private String mapWqDefaultStcdColumn(String field) {
if (StrUtil.isBlank(field)) {
return null;
}
return switch (field.toLowerCase()) {
case "tm" -> "wq.TM";
case "stcd" -> "sb.STCD";
case "base_id", "baseid" -> "sb.BASE_ID";
case "rstcd" -> "sb.RSTCD";
default -> null;
};
}
} }