09b2c1dce5
build / build (push) Successful in 1m17s
修正筛选入口位置:五项条件在表头就地选择,保持完整集筛选与无感续载。 统一固定规则:未覆盖一律待确认,原问答/人工模型证据不改写,已覆盖仍保留点踩优先。 验证:行为红绿、前端/Go全套及隔离PostgreSQL全mirror竞态通过;完整本地门禁与原生备份真实恢复通过。
78 lines
2.8 KiB
Go
78 lines
2.8 KiB
Go
package qaopsquality
|
|
|
|
import "knowledge-governance/internal/dobotaiops"
|
|
|
|
func FeedbackForcesIncorrect(feedback dobotaiops.RecordFeedback) bool {
|
|
return feedback.Down > 0 || feedback.AskerValue == "down"
|
|
}
|
|
|
|
func ProjectMasterWithEdits(v View, stored map[string]string, derived dobotaiops.CoverageCheck, edits map[string]string, feedback ...dobotaiops.RecordFeedback) View {
|
|
v = ProjectMaster(v, stored, derived)
|
|
v.FeedbackRule = ""
|
|
v.CorrectnessRule = ""
|
|
v.MasterFeedback = nil
|
|
if len(feedback) > 0 {
|
|
current := feedback[0]
|
|
v.MasterFeedback = ¤t
|
|
}
|
|
if value, ok := edits["coverage"]; ok {
|
|
v.Effective.Coverage = map[string]string{"是": "covered", "否": "uncovered", "否但不计入": "excluded"}[value]
|
|
v.Effective.ExclusionReason = ""
|
|
if value == "否但不计入" {
|
|
v.Effective.ExclusionReason = "详情字段选择:否但不计入"
|
|
}
|
|
}
|
|
if value, ok := edits["is_correct"]; ok {
|
|
v.Effective.Correctness = map[string]string{"是": "correct", "否": "incorrect", "待确认": "pending"}[value]
|
|
}
|
|
if value, ok := edits["product_category"]; ok {
|
|
v.Effective.ProductCategory = value
|
|
}
|
|
if value, ok := edits["problem_type"]; ok {
|
|
v.Effective.ProblemType = value
|
|
}
|
|
if value, ok := edits["root_cause"]; ok {
|
|
v.Effective.RootCause = value
|
|
}
|
|
if v.Effective.Coverage == "uncovered" {
|
|
v.Effective.Correctness = "pending"
|
|
v.CorrectnessRule = "coverage-correctness-v1"
|
|
} else if len(feedback) > 0 && FeedbackForcesIncorrect(feedback[0]) {
|
|
v.Effective.Correctness = "incorrect"
|
|
v.FeedbackRule = "downvote-is-incorrect-v1"
|
|
}
|
|
if v.Effective.Coverage != "uncovered" && v.Effective.Correctness == "pending" {
|
|
v.Effective.Correctness = ""
|
|
v.CorrectnessRule = "coverage-correctness-v1"
|
|
}
|
|
if v.Effective.Correctness == "correct" {
|
|
v.Effective.RootCause = ""
|
|
}
|
|
return v
|
|
}
|
|
|
|
// Stored master labels remain their original provenance, not synthetic reviews.
|
|
func ProjectMaster(v View, stored map[string]string, derived dobotaiops.CoverageCheck) View {
|
|
v.EffectiveSource = "master-effective-fields-v1"
|
|
if v.State != "reviewed" {
|
|
v.Effective.Coverage = map[string]string{"是": "covered", "否": "uncovered", "部分覆盖": "partial", "待确认": "pending"}[stored["coverage"]]
|
|
if v.Effective.Coverage == "" {
|
|
v.Effective.Coverage = derived.Verdict
|
|
}
|
|
v.Effective.Correctness = map[string]string{"是": "correct", "否": "incorrect", "待确认": "pending"}[stored["is_correct"]]
|
|
}
|
|
if v.Effective.ProductCategory == "" {
|
|
v.Effective.ProductCategory = stored["product_category"]
|
|
}
|
|
if v.Effective.ProblemType == "" {
|
|
v.Effective.ProblemType = stored["problem_type"]
|
|
}
|
|
if v.Effective.RootCause == "" && v.Effective.Correctness != "correct" {
|
|
v.Effective.RootCause = stored["root_cause"]
|
|
}
|
|
if v.Effective.Correctness == "correct" {
|
|
v.Effective.RootCause = ""
|
|
}
|
|
return v
|
|
}
|