From 062590a0320c631a1a0d5ac921d132388785db59 Mon Sep 17 00:00:00 2001 From: tangwei Date: Thu, 6 Aug 2026 16:08:01 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E6=B0=B4=E8=B4=A8?= =?UTF-8?q?=E8=BE=BE=E6=A0=87=E7=8E=87=E7=9A=84=E6=B1=A1=E6=9F=93=E7=89=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qgc_export/mapper/SdWqRMapper.java | 5 +++ .../service/impl/QgcExportServiceImpl.java | 39 ++++++++++++++----- .../mapper/qgc_export/SdWqRMapper.xml | 9 +++++ 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/backend/src/main/java/com/yfd/platform/qgc_export/mapper/SdWqRMapper.java b/backend/src/main/java/com/yfd/platform/qgc_export/mapper/SdWqRMapper.java index aa9cb6b2..433c6e62 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_export/mapper/SdWqRMapper.java +++ b/backend/src/main/java/com/yfd/platform/qgc_export/mapper/SdWqRMapper.java @@ -39,4 +39,9 @@ public interface SdWqRMapper extends BaseMapper { List> selectPollutants(@Param("stcdList") List stcdList, @Param("startTime") String startTime, @Param("endTime") String endTime); + + /** + * 查询 SD_WQ_R 表的字段注释(字段名 → 中文描述) + */ + List> selectColumnComments(); } diff --git a/backend/src/main/java/com/yfd/platform/qgc_export/service/impl/QgcExportServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_export/service/impl/QgcExportServiceImpl.java index 9fb70f3e..05089b7e 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_export/service/impl/QgcExportServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_export/service/impl/QgcExportServiceImpl.java @@ -518,9 +518,37 @@ public class QgcExportServiceImpl implements IQgcExportService { List> hourlyData = sdWqRMapper.selectComplianceData(uniqueStcds, startStr, endStr); // 查询日均达标数据 List> dailyData = sdWqdaySMapper.selectComplianceData(uniqueStcds, startStr, endStr); - // 查询主要污染物 + // 查询主要污染物(从小时表 WQ_SFDBHN_YS 获取) List> pollutantData = sdWqRMapper.selectPollutants(uniqueStcds, startStr, endStr); + // 查询要素中文名映射(通过 ST_TB_YS_B.YS_SHOW_NAME,COLUMN_NAME → 显示名) + Map colCommentMap = new LinkedHashMap<>(); + List> colComments = sdWqRMapper.selectColumnComments(); + for (Map cm : colComments) { + String colName = (String) cm.get("COLUMN_NAME"); + String comment = (String) cm.get("COMMENTS"); + if (colName != null && comment != null && !comment.isEmpty()) { + colCommentMap.put(colName, comment); + } + } + + // 按 STCD 聚合污染物(拆分逗号、映射中文名、去重) + Map> pollutantSetMap = new LinkedHashMap<>(); + for (Map m : pollutantData) { + String stcd = (String) m.get("STCD"); + String pol = (String) m.get("POLLUTANT"); + if (pol != null && !pol.isEmpty()) { + Set set = pollutantSetMap.computeIfAbsent(stcd, k -> new LinkedHashSet<>()); + for (String field : pol.split(",")) { + String f = field.trim(); + if (!f.isEmpty()) { + String desc = colCommentMap.getOrDefault(f, f); + set.add(desc); + } + } + } + } + // 按 STCD 索引达标统计 Map> hourlyMap = new LinkedHashMap<>(); for (Map m : hourlyData) { @@ -530,15 +558,6 @@ public class QgcExportServiceImpl implements IQgcExportService { for (Map m : dailyData) { dailyMap.put((String) m.get("STCD"), m); } - // 按 STCD 聚合污染物(去重后用逗号分隔) - Map> pollutantSetMap = new LinkedHashMap<>(); - for (Map m : pollutantData) { - String stcd = (String) m.get("STCD"); - String pol = (String) m.get("POLLUTANT"); - if (pol != null && !pol.isEmpty()) { - pollutantSetMap.computeIfAbsent(stcd, k -> new LinkedHashSet<>()).add(pol); - } - } // ======== Row 0: 子标题行 ======== List subRow = new ArrayList<>(); diff --git a/backend/src/main/resources/mapper/qgc_export/SdWqRMapper.xml b/backend/src/main/resources/mapper/qgc_export/SdWqRMapper.xml index 987b757e..c19016a0 100644 --- a/backend/src/main/resources/mapper/qgc_export/SdWqRMapper.xml +++ b/backend/src/main/resources/mapper/qgc_export/SdWqRMapper.xml @@ -59,4 +59,13 @@ AND TM < TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS') + + +