package model import ( "gorm.io/gorm" "time" ) type Report struct { ID int64 `json:"id" gorm:"primaryKey"` Step string `json:"step"` // 工序 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"` // 丝印 // Log File 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"` // 良率(包括回收数据) // Report File //ReportTestQuantity string `json:"report_test_quantity"` // 结批测试数量 //ReportPassQuantity string `json:"report_pass_quantity"` // 结批良品数量 //ReportPassProbability string `json:"report_pass_probability"` // 结批良率 //Bin2 string `json:"bin2"` //Bin3 string `json:"bin3"` //Bin4 string `json:"bin4"` //Bin5 string `json:"bin5"` //Bin6 string `json:"bin6"` //Bin7 string `json:"bin7"` //Bin8 string `json:"bin8"` //Bin9 string `json:"bin9"` //Bin10 string `json:"bin10"` //OutlookFail string `json:"outlook_fail"` // 外观不良 //Other string `json:"other"` // 少数 //BentStitch string `json:"bent_stitch"` // 弯脚 //Scrapped string `json:"scrapped"` // 报废 WaferID string `json:"wafer_id"` // 片号 TestTime string `json:"test_time"` // 测试时间 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"` Step string `json:"step"` Product string `json:"product"` // 成品型号 Lot string `json:"lot"` // 晶圆批次 Factory string `json:"factory"` // 测试厂 TestProgram string `json:"test_program"` // 测试程序 PBI string `json:"pbi"` // PBI OrderDate string `json:"order_date"` // 下单日期 Seal string `json:"seal"` // 丝印 SubBatch string `json:"sub_batch"` // 子批次 WaferID string `json:"wafer_id"` // 片号 ReportTestQuantity string `json:"report_test_quantity"` // 结批测试数量 ReportPassQuantity string `json:"report_pass_quantity"` // 结批良品数量 ReportPassProbability string `json:"report_pass_probability"` // 结批良率 Bin1 string `json:"bin1"` Bin2 string `json:"bin2"` Bin3 string `json:"bin3"` Bin4 string `json:"bin4"` Bin5 string `json:"bin5"` Bin6 string `json:"bin6"` Bin7 string `json:"bin7"` Bin8 string `json:"bin8"` Bin9 string `json:"bin9"` Bin10 string `json:"bin10"` OutlookFail string `json:"outlook_fail"` // 外观不良 Other string `json:"other"` // 少数 BentStitch string `json:"bent_stitch"` // 弯脚 Scrapped string `json:"scrapped"` // 报废 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 { 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"` ReportQuantity float64 `json:"report_quantity"` ReportProportion string `json:"report_proportion"` } type FinalReportExcel struct { ID int64 `json:"id" gorm:"primaryKey"` Step string `json:"step"` // 工序 Product string `json:"product"` // 成品型号 Lot string `json:"lot"` // 晶圆批次 SubBatch string `json:"sub_batch"` // 子批次 WaferID string `json:"wafer_id"` // 片号 Factory string `json:"factory"` // 测试厂 TestProgram string `json:"test_program"` // 测试程序 PBI string `json:"pbi"` // PBI OrderDate string `json:"order_date"` // 下单日期 Seal string `json:"seal"` // 丝印 FinalTestQuantity string `json:"final_test_quantity"` // 结批测试数量 FinalPassQuantity string `json:"final_pass_quantity"` // 结批良品数量 FinalPassProbability string `json:"final_pass_probability"` // 结批良率 Bin1 string `json:"bin1"` Bin2 string `json:"bin2"` Bin3 string `json:"bin3"` Bin4 string `json:"bin4"` Bin5 string `json:"bin5"` Bin6 string `json:"bin6"` Bin7 string `json:"bin7"` Bin8 string `json:"bin8"` Bin9 string `json:"bin9"` Bin10 string `json:"bin10"` OutlookFail string `json:"outlook_fail"` // 外观不良 Other string `json:"other"` // 少数 BentStitch string `json:"bent_stitch"` // 弯脚 Scrapped string `json:"scrapped"` // 报废 CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"-"` DeletedAt gorm.DeletedAt `gorm:"index" json:"-"` }