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 中的顺序
* 水质指标水温PH溶解氧电导率浊度 河道水情流速流量水位
* <p>
* 支持别名前端传 "wq" 等价于传 "wtmp,ph,dox,cond,tu"
*/
private List<ExportIndicatorProcessor> resolveProcessors(List<String> dataFields) {
Map<String, ExportIndicatorProcessor> processorMap = new LinkedHashMap<>();
@ -252,10 +254,20 @@ public class QgcExportServiceImpl implements IQgcExportService {
processorMap.put("q", qProcessor);
processorMap.put("z", zProcessor);
List<ExportIndicatorProcessor> result = new ArrayList<>();
// WQ 别名展开为全部水质指标
List<String> expanded = new ArrayList<>();
for (String field : dataFields) {
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 instanceof RiverIndicatorProcessor) {
((RiverIndicatorProcessor) p).setMappers(sdRiverRMapper, sdRiverdaySMapper);