feat: 根据站码查询单条过鱼设施基础数据

This commit is contained in:
tangwei 2026-05-29 10:30:24 +08:00
parent 3acd4386f0
commit a342d66ff9
3 changed files with 42 additions and 17 deletions

View File

@ -46,6 +46,12 @@ public class FishPassageController {
return ResponseResult.successData(fpBuildService.getVmsstbprptList(dataSourceRequest));
}
@GetMapping("/msstbprpt/getStInfoByStcd")
@Operation(summary = "根据站码查询单条过鱼设施基础数据")
public ResponseResult getStInfoByStcd(@RequestParam String stcd) {
return ResponseResult.successData(fpBuildService.getStInfoByStcd(stcd));
}
@GetMapping("/run/qgc/year/GetYearFpStatistics")
@Operation(summary = "全过程过鱼统计总数,根据基地分组")
public ResponseResult getYearFpStatic(@RequestParam("year") String year) {

View File

@ -10,4 +10,6 @@ public interface FpBuildService {
DataSourceResult<FpConstructionSituationVo> processKendoList(DataSourceRequest dataSourceRequest);
DataSourceResult<FpVmsstbprptVo> getVmsstbprptList(DataSourceRequest dataSourceRequest);
FpVmsstbprptVo getStInfoByStcd(String stcd);
}

View File

@ -62,6 +62,39 @@ public class FpBuildServiceImpl implements FpBuildService {
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
Map<String, Object> paramMap = new HashMap<>();
StringBuilder sql = new StringBuilder(buildVmsstbprptBaseSql());
String filterSql = buildVmsstbprptFilterCondition(dataSourceRequest == null ? null : dataSourceRequest.getFilter(),
paramMap, new int[]{0});
if (!filterSql.isBlank()) {
sql.append(" AND ").append(filterSql);
}
sql.append(buildVmsstbprptOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
List<FpVmsstbprptVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(
page, sql.toString(), paramMap, FpVmsstbprptVo.class);
DataSourceResult<FpVmsstbprptVo> result = new DataSourceResult<>();
result.setData(list);
result.setTotal(page != null ? page.getTotal() : list.size());
result.setAggregates(new HashMap<>());
return result;
}
@Override
public FpVmsstbprptVo getStInfoByStcd(String stcd) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("stcd", stcd);
String sql = buildVmsstbprptBaseSql() + " AND fp.STCD = #{map.stcd}";
List<FpVmsstbprptVo> list = microservicDynamicSQLMapper.getAllListWithResultType(sql, paramMap, FpVmsstbprptVo.class);
if (list == null || list.isEmpty()) {
return null;
}
return list.getFirst();
}
private String buildVmsstbprptBaseSql() {
StringBuilder sql = new StringBuilder();
sql.append("SELECT ")
.append("fp.STCD AS stcd, ")
@ -151,23 +184,7 @@ public class FpBuildServiceImpl implements FpBuildService {
.append("LEFT JOIN SD_STTP_B sttp ON sttp.STTP_CODE = fp.STTP ")
.append(" AND NVL(sttp.IS_DELETED, 0) = 0 AND NVL(sttp.ENABLE, 1) = 1 ")
.append("WHERE 1 = 1 ");
String filterSql = buildVmsstbprptFilterCondition(dataSourceRequest == null ? null : dataSourceRequest.getFilter(),
paramMap, new int[]{0});
if (!filterSql.isBlank()) {
sql.append(" AND ").append(filterSql);
}
sql.append(buildVmsstbprptOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
List<FpVmsstbprptVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(
page, sql.toString(), paramMap, FpVmsstbprptVo.class);
DataSourceResult<FpVmsstbprptVo> result = new DataSourceResult<>();
result.setData(list);
result.setTotal(page != null ? page.getTotal() : list.size());
result.setAggregates(new HashMap<>());
return result;
return sql.toString();
}
private String buildVmsstbprptFilterCondition(DataSourceRequest.FilterDescriptor filter,