From ed0e6ed372d5f7d8eef2c0fad4ed768d2be5a223 Mon Sep 17 00:00:00 2001 From: tangwei Date: Mon, 22 Jun 2026 13:52:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B5=81=E5=9F=9F=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E6=A1=86=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2&=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SdRvcdDicController.java | 9 ++++ .../qgc_base/mapper/SdRvcdDicMapper.java | 2 + .../qgc_base/service/ISdRvcdDicService.java | 2 + .../service/impl/SdRvcdDicServiceImpl.java | 6 +++ .../vd/service/impl/VdMonitorServiceImpl.java | 45 +++++++++++++++++-- .../mapper/qgc_base/SdRvcdDicMapper.xml | 25 +++++++++++ 6 files changed, 85 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdRvcdDicController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdRvcdDicController.java index 4ee42f4c..f49830ed 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdRvcdDicController.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdRvcdDicController.java @@ -111,6 +111,15 @@ public class SdRvcdDicController { return ResponseResult.successData(rvcdDicService.selectForDropdown(rvnm, rvcd)); } + @GetMapping("/selectRvcdDropdown") + @Operation(summary = "流域下拉框列表查询") + public ResponseResult selectRvcdDropdown( + @RequestParam(required = false) String rvnm, + @RequestParam(required = false) String baseId + ) { + return ResponseResult.successData(rvcdDicService.selectRvcdDropdown(rvnm,baseId)); + } + @GetMapping("/regDropdown") @Operation(summary = "下拉框列表查询(注册)") public ResponseResult regDropdown( diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdRvcdDicMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdRvcdDicMapper.java index 537d2e5f..f54fece4 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdRvcdDicMapper.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdRvcdDicMapper.java @@ -32,4 +32,6 @@ public interface SdRvcdDicMapper extends BaseMapper { * 注册场景下拉框查询,仅返回能被电站表 RVCD 命中的流域 */ List selectRegDropdownWithEng(@Param("rvnm") String rvnm, @Param("rvcd") String rvcd); + + List selectRvcdDropdown(@Param("rvnm") String rvnm,@Param("baseId") String baseId); } diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdRvcdDicService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdRvcdDicService.java index 8eee4131..027d4b5c 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdRvcdDicService.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdRvcdDicService.java @@ -55,5 +55,7 @@ public interface ISdRvcdDicService extends IService { List selectForDropdown(String rvnm, String rvcd); + List selectRvcdDropdown(String rvnm,String baseId); + List regDropdown(String rvnm, String rvcd); } diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdRvcdDicServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdRvcdDicServiceImpl.java index ed0b961b..60446e27 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdRvcdDicServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdRvcdDicServiceImpl.java @@ -149,6 +149,12 @@ public class SdRvcdDicServiceImpl extends ServiceImpl selectRvcdDropdown(String rvnm,String baseId) { + List dropdownList = this.baseMapper.selectRvcdDropdown(rvnm,baseId); + return dropdownList; + } + @Override public Set getUserAuthorizedStationCodes() { diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/vd/service/impl/VdMonitorServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/vd/service/impl/VdMonitorServiceImpl.java index 3c4cc27f..b0d6d265 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/vd/service/impl/VdMonitorServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/vd/service/impl/VdMonitorServiceImpl.java @@ -131,9 +131,30 @@ public class VdMonitorServiceImpl implements VdMonitorService { GroupingInfo[] groups, String filterSql, Map paramMap) { + List groupDescriptors = dataSourceRequest == null ? null : dataSourceRequest.getGroup(); + List selectItems = new ArrayList<>(); + if (CollUtil.isNotEmpty(groupDescriptors)) { + for (DataSourceRequest.GroupDescriptor descriptor : groupDescriptors) { + if (descriptor == null || StrUtil.isBlank(descriptor.getField())) { + continue; + } + String column = mapColumn(descriptor.getField()); + if (StrUtil.isBlank(column)) { + continue; + } + selectItems.add(column + " AS " + descriptor.getField()); + selectItems.add("COUNT(1) AS count_" + descriptor.getField()); + } + } + if (selectItems.isEmpty()) { + selectItems.add("t.sttpCode AS sttpCode"); + selectItems.add("COUNT(1) AS count_sttpCode"); + } + StringBuilder sql = new StringBuilder(); - sql.append("SELECT t.sttpCode AS sttpCode, COUNT(1) AS count_sttpCode ") - .append("FROM (") + sql.append("SELECT ") + .append(String.join(", ", selectItems)) + .append(" FROM (") .append(buildVmsstbprptViewSql()) .append(") t ") .append("WHERE 1 = 1 "); @@ -141,8 +162,24 @@ public class VdMonitorServiceImpl implements VdMonitorService { sql.append(" AND ").append(filterSql).append(" "); } - sql.append(" GROUP BY t.sttpCode "); - sql.append(buildOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getGroup())); + List groupByColumns = new ArrayList<>(); + if (CollUtil.isNotEmpty(groupDescriptors)) { + for (DataSourceRequest.GroupDescriptor descriptor : groupDescriptors) { + if (descriptor == null || StrUtil.isBlank(descriptor.getField())) { + continue; + } + String column = mapColumn(descriptor.getField()); + if (StrUtil.isNotBlank(column)) { + groupByColumns.add(column); + } + } + } + if (!groupByColumns.isEmpty()) { + sql.append(" GROUP BY ").append(String.join(", ", groupByColumns)); + } else { + sql.append(" GROUP BY t.sttpCode "); + } + sql.append(buildOrderBySql(groupDescriptors)); List> rows = microservicDynamicSQLMapper.pageAllList(null, sql.toString(), paramMap); DataSourceResult result = new DataSourceResult<>(); diff --git a/backend/src/main/resources/mapper/qgc_base/SdRvcdDicMapper.xml b/backend/src/main/resources/mapper/qgc_base/SdRvcdDicMapper.xml index 504dcc0b..3d40173f 100644 --- a/backend/src/main/resources/mapper/qgc_base/SdRvcdDicMapper.xml +++ b/backend/src/main/resources/mapper/qgc_base/SdRvcdDicMapper.xml @@ -212,5 +212,30 @@ ORDER BY t.ORDER_PATH ASC, t.RVCD ASC +