test_data/model/report.go

201 lines
12 KiB
Go

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:"-"`
}