yeg
2026-09-08 9f50d0d505e1ebcd43a8cc05159ccebf4ef114f5
保留旧拼接有效来源的实验覆盖
1个文件已修改
7 ■■■■■ 已修改文件
battery-business/src/main/java/com/battery/business/report/SpliceReportService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
battery-business/src/main/java/com/battery/business/report/SpliceReportService.java
@@ -163,10 +163,13 @@
  var settings = settings(snapshot.getJSONObject("settings"), false);
  // 主动更新才启用独立来源详情;旧版本读取和普通编辑不隐式迁移。
  if (!settings.containsKey("sourceDetailOverrides")) {
   // 旧版实验已按来源保存,可直接保留;旧字段人工值仍留在原报表字段,不按名称改绑共享身份。
   // 旧页面移除来源时可能残留实验键;只迁移当前来源,旧版本与原报表字段人工值仍保持不变。
   Map<String,Object> details = new LinkedHashMap<>();
   var experiments = JSON.parseObject(JSON.toJSONString(settings.getOrDefault("sourceExperimentNames", Map.of())));
   experiments.forEach((key, value) -> details.put(key, Map.of("experimentName", value)));
   for (var selection : selections) {
    String key = selection.testId() + "|" + selection.testBatteryId();
    if (experiments.containsKey(key)) details.put(key, Map.of("experimentName", experiments.get(key)));
   }
   settings.put("sourceDetailOverrides", details);
  }
  Matrix matrix = freeze(preview(selections), fields(settings));