fix: 优化excel综合导出水质指标空值问题

This commit is contained in:
tangwei 2026-08-05 15:25:19 +08:00
parent 616c1fbcba
commit f96d86b1c1

View File

@ -238,6 +238,8 @@ public class QgcExportServiceImpl implements IQgcExportService {
/** /**
* 注册顺序决定 Sheet Excel 中的顺序 * 注册顺序决定 Sheet Excel 中的顺序
* 水质指标水温PH溶解氧电导率浊度 河道水情流速流量水位 * 水质指标水温PH溶解氧电导率浊度 河道水情流速流量水位
* <p>
* 支持别名前端传 "wq" 等价于传 "wtmp,ph,dox,cond,tu"
*/ */
private List<ExportIndicatorProcessor> resolveProcessors(List<String> dataFields) { private List<ExportIndicatorProcessor> resolveProcessors(List<String> dataFields) {
Map<String, ExportIndicatorProcessor> processorMap = new LinkedHashMap<>(); Map<String, ExportIndicatorProcessor> processorMap = new LinkedHashMap<>();
@ -252,10 +254,20 @@ public class QgcExportServiceImpl implements IQgcExportService {
processorMap.put("q", qProcessor); processorMap.put("q", qProcessor);
processorMap.put("z", zProcessor); processorMap.put("z", zProcessor);
List<ExportIndicatorProcessor> result = new ArrayList<>(); // WQ 别名展开为全部水质指标
List<String> expanded = new ArrayList<>();
for (String field : dataFields) { for (String field : dataFields) {
String lower = field.trim().toLowerCase(); String lower = field.trim().toLowerCase();
ExportIndicatorProcessor p = processorMap.get(lower); if ("wq".equals(lower)) {
expanded.addAll(List.of("wtmp", "ph", "dox", "cond", "tu"));
} else {
expanded.add(lower);
}
}
List<ExportIndicatorProcessor> result = new ArrayList<>();
for (String field : expanded) {
ExportIndicatorProcessor p = processorMap.get(field);
if (p != null) { if (p != null) {
if (p instanceof RiverIndicatorProcessor) { if (p instanceof RiverIndicatorProcessor) {
((RiverIndicatorProcessor) p).setMappers(sdRiverRMapper, sdRiverdaySMapper); ((RiverIndicatorProcessor) p).setMappers(sdRiverRMapper, sdRiverdaySMapper);