feat: 补齐消毒、种源与二维码身份链

This commit is contained in:
weijuesen
2026-08-14 08:39:56 +08:00
parent cc93c9a053
commit 6b222abb7b
24 changed files with 1344 additions and 9 deletions
+29
View File
@@ -262,6 +262,35 @@ func autoTrace(db *gorm.DB) gin.HandlerFunc {
"pastCount": pastCount,
}
// 生物安全证据:种源与消毒记录
bio := map[string]interface{}{
"seedSourceCount": int64(0),
"disinfectionCount": int64(0),
"evidenceSufficient": false,
"missing": []string{"种源", "消毒"},
}
if t.RoomID != nil {
var seedCount, disinfectionCount int64
db.Table("seed_sources").
Joins("JOIN batches ON batches.id = seed_sources.batch_id AND batches.room_id = ?", *t.RoomID).
Count(&seedCount)
db.Table("disinfection_records").
Joins("JOIN batches ON batches.id = disinfection_records.batch_id AND batches.room_id = ?", *t.RoomID).
Count(&disinfectionCount)
missing := []string{}
if seedCount == 0 {
missing = append(missing, "种源")
}
if disinfectionCount == 0 {
missing = append(missing, "消毒")
}
bio["seedSourceCount"] = seedCount
bio["disinfectionCount"] = disinfectionCount
bio["evidenceSufficient"] = seedCount > 0 && disinfectionCount > 0
bio["missing"] = missing
}
report["biosecurity"] = bio
// 传播途径推断
mode, source := service.TransmissionInference(t.Disease)
report["transmission"] = map[string]interface{}{"mode": mode, "source": source}