package model import ( "gorm.io/gorm" "time" ) type Report struct { ID int64 `json:"id" gorm:"primaryKey"` Product string `json:"product"` // 成品型号 Lot string `json:"lot"` //晶圆批次 Factory string `json:"factory"` // 测试厂 TestMachine string `json:"test_machine"` // 测试机台 TestProgram string `json:"test_program"` // 测试程序 PBI string `json:"pbi"` // PBI SubBatch string `json:"sub_batch"` // 子批次 OrderDate string `json:"order_date"` // 下单日期 Seal string `json:"seal"` // 丝印 TestQuantity string `json:"test_quantity"` // 测试数量 FirstPassQuantity string `json:"first_pass_quantity"` // 初测良品数量 FirstPassProbability string `json:"first_pass_probability"` // 初测良率 PassQuantity string `json:"pass_quantity"` // 良品数量(包括回收数据) PassProbability string `json:"pass_probability"` // 良率(包括回收数据) WaferID string `json:"wafer_id"` // 片号 TestTime string `json:"test_time"` // 测试时间 Step string `json:"step"` // 工序 StackingMaterials bool `json:"stacking_materials"` // 是否叠料 BinFail []BinFail `json:"bin_fail" gorm:"foreignKey:ReportID"` // 硬件和软件Bin的不良数量 Site []ReportSites `json:"site" gorm:"foreignKey:ReportID"` // Site测试情况 CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"-"` DeletedAt gorm.DeletedAt `gorm:"index" json:"-"` } type FinalReport struct { ID int64 `json:"id" gorm:"primaryKey"` Product string `json:"product"` Lot string `json:"lot"` PBI string `json:"pbi"` Step string `json:"step"` ReportTestQuantity string `json:"report_test_quantity"` // 报表测试数量 ReportPassQuantity string `json:"report_pass_quantity"` // 报表良品数量 ReportPassProbability string `json:"report_pass_probability"` // 报表良率 CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"-"` DeletedAt gorm.DeletedAt `gorm:"index" json:"-"` } type ReportSites struct { ID int64 `json:"id" gorm:"primaryKey"` ReportID int64 `json:"report_id"` Site string `json:"site"` // Site TestQuantity string `json:"test_quantity"` // 测试总数 PassQuantity string `json:"pass_quantity"` // 测试良品数 PassProbability string `json:"pass_probability"` // 良率 BinFail []BinFail `json:"bin_fail" gorm:"foreignKey:ReportSiteID"` // 硬件和软件Bin的不良数量 CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"-"` DeletedAt gorm.DeletedAt `gorm:"index" json:"-"` } type BinFail struct { ID int64 `json:"id" gorm:"primaryKey"` ReportID int64 `json:"report_id"` ReportSiteID int64 `json:"report_site_id"` HardBin string `json:"hard_bin"` // 硬件Bin名称 SoftBin string `json:"soft_bin"` // 软件Bin名称 Quantity string `json:"quantity"` // 数量 CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"-"` DeletedAt gorm.DeletedAt `gorm:"index" json:"-"` } type ReportList struct { ID int64 `json:"id" gorm:"primaryKey"` Product string `json:"product"` // 成品型号 Lot string `json:"lot"` //晶圆批次 Factory string `json:"factory"` // 测试厂 TestMachine string `json:"test_machine"` // 测试机台 TestProgram string `json:"test_program"` // 测试程序 PBI string `json:"pbi"` // PBI SubBatch string `json:"sub_batch"` // 子批次 OrderDate string `json:"order_date"` // 下单日期 Seal string `json:"seal"` // 丝印 TestQuantity string `json:"test_quantity"` // 测试数量 FirstPassQuantity string `json:"first_pass_quantity"` // 初测良品数量 FirstPassProbability string `json:"first_pass_probability"` // 初测良率 PassQuantity string `json:"pass_quantity"` // 良品数量(包括回收数据) PassProbability string `json:"pass_probability"` // 良率(包括回收数据) ReportTestQuantity string `json:"report_test_quantity"` // 报表测试数量 ReportPassQuantity string `json:"report_pass_quantity"` // 报表良品数量 ReportPassProbability string `json:"report_pass_probability"` // 报表良率 WaferID string `json:"wafer_id"` // 片号 TestTime string `json:"test_time"` // 测试时间 Step string `json:"step"` // 工序 TestQuantityDiff string `json:"test_quantity_diff"` // 测试数量差异 TestQuantityDiffLabel bool `json:"test_quantity_diff_label"` PassQuantityDiff string `json:"pass_quantity_diff"` // 良品数量差异 PassQuantityDiffLabel bool `json:"pass_quantity_diff_label"` ReturnProbability string `json:"return_probability"` // 回收率 ReturnProbabilityLabel bool `json:"return_probability_label"` StackingMaterials bool `json:"stacking_materials"` // 是否叠料 SoftBinFailMap map[string]float64 `json:"soft_bin_fail_map"` // 软件Bin的不良数量 HardBinFailMap map[string]float64 `json:"hard_bin_fail_map"` // 硬件Bin的不良数量 SoftBinFail []*ReportBinFail `json:"soft_bin_fail"` // 软件Bin的不良数量 HardBinFail []*ReportBinFail `json:"hard_bin_fail"` // 硬件Bin的不良数量 Site []*ReportListSites `json:"site"` // Site测试情况 } type ReportListSites struct { ID int64 `json:"id" gorm:"primaryKey"` ReportID int64 `json:"report_id"` Site string `json:"site"` // Site TestQuantity string `json:"test_quantity"` // 测试总数 PassQuantity string `json:"pass_quantity"` // 测试良品数 PassProbability string `json:"pass_probability"` // 良率 SoftBinFailMap map[string]float64 `json:"soft_bin_fail_map"` // 软件Bin的不良数量 HardBinFailMap map[string]float64 `json:"hard_bin_fail_map"` // 硬件Bin的不良数量 SoftBinFail []*ReportBinFail `json:"soft_bin_fail"` // 软件Bin的不良数量 HardBinFail []*ReportBinFail `json:"hard_bin_fail"` // 硬件Bin的不良数量 } type ReportBinFail struct { Bin string `json:"bin"` Quantity float64 `json:"quantity"` Proportion string `json:"proportion"` ReportProportion string `json:"report_proportion"` }