fix: _merge_map_objectives保留O+KR额外字段

This commit is contained in:
Hermes CI Fix
2026-07-26 17:07:49 +08:00
parent 71674d62ab
commit 84749a35ca
+12 -1
View File
@@ -308,7 +308,18 @@ def _merge_map_objectives(m, db):
for dim in dims:
key = dim.get("key", "")
if key in grouped:
dim["objectives"] = [{"name": o.name, "description": o.description or "", "icon": o.icon or "target", "kpis": o.kpis or []} for o in grouped[key]]
merged = []
for i, o in enumerate(grouped[key]):
# 保留原有JSON中的额外字段(targetValue/krs等)
existing = dim["objectives"][i] if i < len(dim["objectives"]) else {}
merged.append({
"name": o.name,
"description": o.description or existing.get("description", ""),
"icon": o.icon or existing.get("icon", "target"),
"kpis": o.kpis or existing.get("kpis", []),
**{k: existing[k] for k in existing if k not in ("name", "description", "icon", "kpis")},
})
dim["objectives"] = merged
m.dimensions = dims