From a342d66ff9b048bca2198cefb7b09ba8611e7f19 Mon Sep 17 00:00:00 2001 From: tangwei Date: Fri, 29 May 2026 10:30:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=A0=B9=E6=8D=AE=E7=AB=99=E7=A0=81?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=8D=95=E6=9D=A1=E8=BF=87=E9=B1=BC=E8=AE=BE?= =?UTF-8?q?=E6=96=BD=E5=9F=BA=E7=A1=80=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fp/controller/FishPassageController.java | 6 +++ .../env/fp/service/FpBuildService.java | 2 + .../fp/service/impl/FpBuildServiceImpl.java | 51 ++++++++++++------- 3 files changed, 42 insertions(+), 17 deletions(-) diff --git a/backend/src/main/java/com/yfd/platform/env/fp/controller/FishPassageController.java b/backend/src/main/java/com/yfd/platform/env/fp/controller/FishPassageController.java index c0d3543a..f218d426 100644 --- a/backend/src/main/java/com/yfd/platform/env/fp/controller/FishPassageController.java +++ b/backend/src/main/java/com/yfd/platform/env/fp/controller/FishPassageController.java @@ -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) { diff --git a/backend/src/main/java/com/yfd/platform/env/fp/service/FpBuildService.java b/backend/src/main/java/com/yfd/platform/env/fp/service/FpBuildService.java index 1492859d..1053e9ee 100644 --- a/backend/src/main/java/com/yfd/platform/env/fp/service/FpBuildService.java +++ b/backend/src/main/java/com/yfd/platform/env/fp/service/FpBuildService.java @@ -10,4 +10,6 @@ public interface FpBuildService { DataSourceResult processKendoList(DataSourceRequest dataSourceRequest); DataSourceResult getVmsstbprptList(DataSourceRequest dataSourceRequest); + + FpVmsstbprptVo getStInfoByStcd(String stcd); } diff --git a/backend/src/main/java/com/yfd/platform/env/fp/service/impl/FpBuildServiceImpl.java b/backend/src/main/java/com/yfd/platform/env/fp/service/impl/FpBuildServiceImpl.java index d01d3196..6153fdb7 100644 --- a/backend/src/main/java/com/yfd/platform/env/fp/service/impl/FpBuildServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/env/fp/service/impl/FpBuildServiceImpl.java @@ -62,6 +62,39 @@ public class FpBuildServiceImpl implements FpBuildService { Page page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake()); Map 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 list = microservicDynamicSQLMapper.pageAllListWithResultType( + page, sql.toString(), paramMap, FpVmsstbprptVo.class); + + DataSourceResult 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 paramMap = new HashMap<>(); + paramMap.put("stcd", stcd); + String sql = buildVmsstbprptBaseSql() + " AND fp.STCD = #{map.stcd}"; + List 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 list = microservicDynamicSQLMapper.pageAllListWithResultType( - page, sql.toString(), paramMap, FpVmsstbprptVo.class); - - DataSourceResult 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,