数据分析平台 报表查询测试数据去除临时测试文件数据

This commit is contained in:
jh_peng 2025-05-09 17:43:33 +08:00
parent 6cd854ae17
commit c5dc5b8838
3 changed files with 37 additions and 24 deletions

View File

@ -1469,17 +1469,17 @@ func ExportFT(isWeek bool) string {
var ftLists []*model.FTList
var pbis, lots []string
if isWeek {
global.PostGreSQL.Model(&model.Report{}).Where("pbi != ? AND created_at BETWEEN ? AND ?", "",
global.PostGreSQL.Model(&model.Report{}).Where("pbi != ? AND pbi LIKE ? AND created_at BETWEEN ? AND ?", "", "%M%",
carbon.Now().SubWeek().Format("Y-m-d"), carbon.Now().Format("Y-m-d")).
Group("pbi").Select("pbi").Find(&pbis)
global.PostGreSQL.Model(&model.Report{}).Where("lot != ? AND created_at BETWEEN ? AND ?", "",
global.PostGreSQL.Model(&model.Report{}).Where("lot != ? AND pbi LIKE ? AND created_at BETWEEN ? AND ?", "", "%M%",
carbon.Now().SubWeek().Format("Y-m-d"), carbon.Now().Format("Y-m-d")).
Group("lot").Select("lot").Find(&lots)
} else {
global.PostGreSQL.Model(&model.Report{}).Where("pbi != ? AND created_at BETWEEN ? AND ?", "",
global.PostGreSQL.Model(&model.Report{}).Where("pbi != ? AND pbi LIKE ? AND created_at BETWEEN ? AND ?", "", "%M%",
carbon.Now().SubMonths(2).Format("Y-m-d"), carbon.Now().Format("Y-m-d")).
Group("pbi").Select("pbi").Find(&pbis)
global.PostGreSQL.Model(&model.Report{}).Where("lot != ? AND created_at BETWEEN ? AND ?", "",
global.PostGreSQL.Model(&model.Report{}).Where("lot != ? AND pbi LIKE ? AND created_at BETWEEN ? AND ?", "", "%M%",
carbon.Now().SubMonths(2).Format("Y-m-d"), carbon.Now().Format("Y-m-d")).
Group("lot").Select("lot").Find(&lots)
}
@ -1601,7 +1601,7 @@ func ExportFT(isWeek bool) string {
}
}
var fileHandles []*model.FileHandled
global.PostGreSQL.Where("step = ? AND pbi = ? AND product = ? AND lot = ?", "FT", ftList.PBI,
global.PostGreSQL.Where("step = ? AND pbi = ?AND product = ? AND lot = ?", "FT", ftList.PBI,
ftList.Product, ftList.Lot).Find(&fileHandles)
siteDiffState := "正常"
stackingMaterials := "否"

View File

@ -571,17 +571,17 @@ func PassProbability(r *request.PassProbability) (interface{}, string) {
r.EndDate = carbon.Parse(r.EndDate).AddDay().Format("Y-m-d")
var reports []*model.Report
if len(r.Product) == 0 && len(r.Lot) == 0 {
global.PostGreSQL.Where("step LIKE ? AND DATE(created_at) BETWEEN DATE(?) AND DATE(?)", "%"+r.Step+"%", r.StartDate, r.EndDate).
Order("created_at").Find(&reports)
global.PostGreSQL.Where("step LIKE ? AND DATE(created_at) BETWEEN DATE(?) AND DATE(?) AND pbi LIKE ?", "%"+r.Step+"%", r.StartDate, r.EndDate, "%M%").
Find(&reports)
} else if len(r.Product) != 0 && len(r.Lot) == 0 {
global.PostGreSQL.Where("step LIKE ? AND DATE(created_at) BETWEEN DATE(?) AND DATE(?)", "%"+r.Step+"%", r.StartDate, r.EndDate).
Where("product IN ?", r.Product).Order("created_at").Find(&reports)
global.PostGreSQL.Where("step LIKE ? AND DATE(created_at) BETWEEN DATE(?) AND DATE(?) AND pbi LIKE ?", "%"+r.Step+"%", r.StartDate, r.EndDate, "%M%").
Where("product IN ?", r.Product).Find(&reports)
} else if len(r.Product) == 0 && len(r.Lot) != 0 {
global.PostGreSQL.Where("step LIKE ? AND DATE(created_at) BETWEEN DATE(?) AND DATE(?)", "%"+r.Step+"%", r.StartDate, r.EndDate).
Where("lot IN ?", r.Lot).Order("created_at").Find(&reports)
global.PostGreSQL.Where("step LIKE ? AND DATE(created_at) BETWEEN DATE(?) AND DATE(?) AND pbi LIKE ?", "%"+r.Step+"%", r.StartDate, r.EndDate, "%M%").
Where("lot IN ?", r.Lot).Find(&reports)
} else if len(r.Product) != 0 && len(r.Lot) != 0 {
global.PostGreSQL.Where("step LIKE ? AND DATE(created_at) BETWEEN DATE(?) AND DATE(?)", "%"+r.Step+"%", r.StartDate, r.EndDate).
Where("product IN ? AND lot IN ?", r.Product, r.Lot).Order("created_at").Find(&reports)
global.PostGreSQL.Where("step LIKE ? AND DATE(created_at) BETWEEN DATE(?) AND DATE(?) AND pbi LIKE ?", "%"+r.Step+"%", r.StartDate, r.EndDate, "%M%").
Where("product IN ? AND lot IN ?", r.Product, r.Lot).Find(&reports)
}
passProbabilityMap := make(map[string][]float64)
@ -643,8 +643,15 @@ func PassProbability(r *request.PassProbability) (interface{}, string) {
if _, ok := passProbabilityMap[s]; !ok {
passProbabilityMap[s] = []float64{}
}
testQuantityDecimal, _ := decimal.NewFromString(report.TestQuantity)
passQuantityDecimal, _ := decimal.NewFromString(report.PassQuantity)
var testQuantityDecimal, passQuantityDecimal decimal.Decimal
if r.Y == "初测良率" {
testQuantityDecimal, _ = decimal.NewFromString(report.TestQuantity)
passQuantityDecimal, _ = decimal.NewFromString(report.FirstPassQuantity)
} else if r.Y == "良率" {
testQuantityDecimal, _ = decimal.NewFromString(report.TestQuantity)
passQuantityDecimal, _ = decimal.NewFromString(report.PassQuantity)
}
if !testQuantityDecimal.IsZero() {
passProbability, _ := passQuantityDecimal.Div(testQuantityDecimal).Round(4).Mul(decimal.NewFromInt(100)).Float64()
passProbabilityMap[s] = append(passProbabilityMap[s], passProbability)
@ -739,15 +746,20 @@ func PassProbability(r *request.PassProbability) (interface{}, string) {
}
}
} else {
for k, v := range passProbabilityMap {
for k := range passProbabilityMap {
x = append(x, k)
}
sort.Slice(x, func(i, j int) bool {
return x[i] < x[j]
})
for _, v := range x {
average := 0.0
for _, passProbability := range v {
for _, passProbability := range passProbabilityMap[v] {
average += passProbability
}
if len(v) != 0 {
average /= float64(len(v))
if len(passProbabilityMap[v]) != 0 {
average /= float64(len(passProbabilityMap[v]))
}
x = append(x, k)
y = append(y, decimal.NewFromFloat(average).Round(2).String())
}
}
@ -765,14 +777,14 @@ func PassProbability(r *request.PassProbability) (interface{}, string) {
if _, ok := passProbabilityGroup[s]; !ok {
groupY = append(groupY, "")
} else {
averagea := 0.0
average := 0.0
for _, passProbability := range passProbabilityGroup[s] {
averagea += passProbability
average += passProbability
}
if len(passProbabilityGroup[s]) != 0 {
averagea /= float64(len(passProbabilityGroup[s]))
average /= float64(len(passProbabilityGroup[s]))
}
groupY = append(groupY, decimal.NewFromFloat(averagea).Round(2).String())
groupY = append(groupY, decimal.NewFromFloat(average).Round(2).String())
}
}
lineSeries := &model.Line{

View File

@ -39,6 +39,7 @@ type PassProbability struct {
StartDate string `json:"start_date"`
EndDate string `json:"end_date"`
X []string `json:"x"`
Y string `json:"y"`
Product []string `json:"product"`
Lot []string `json:"lot"`
ChartType string `json:"chart_type"`