数据分析平台 预警设置窗口新增判断条件与获取产品名称
This commit is contained in:
parent
07af57b147
commit
37300badf3
@ -35,7 +35,12 @@ func (S *SWarningService) Update(c *gin.Context) {
|
||||
response.FailWithMessage(msg, c)
|
||||
return
|
||||
}
|
||||
response.OkWithData(test_data.UpdateWarning(&r), c)
|
||||
if err := test_data.UpdateWarning(&r); err != nil {
|
||||
response.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
} else {
|
||||
response.Ok(c)
|
||||
}
|
||||
}
|
||||
|
||||
// @Tags 数据分析平台
|
||||
|
@ -1,6 +1,7 @@
|
||||
package erp
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testData/global"
|
||||
"testData/model"
|
||||
)
|
||||
@ -13,10 +14,15 @@ func GetFactorySelections() []string {
|
||||
|
||||
func GetAllProductSelection() []string {
|
||||
var products []string
|
||||
global.Oracle.Model(&model.ImaFile{}).Select("Ima02").Group("Ima02").Find(&products)
|
||||
global.Oracle.Model(&model.ImaFile{}).Where("IMA06 IN ?", []string{"FT", "AB", "ABFT", "CP", "CPAB", "TR", "WF"}).
|
||||
Select("Ima02").Group("Ima02").Find(&products)
|
||||
productsMap := make(map[string]bool)
|
||||
for _, product := range products {
|
||||
productsMap[product[:6]] = true
|
||||
s := strings.Split(product, "_")
|
||||
s1 := strings.Split(s[0], "-")
|
||||
s2 := strings.ReplaceAll(s1[0], "管装", "")
|
||||
s2 = strings.ReplaceAll(s2, "白板", "")
|
||||
productsMap[s2] = true
|
||||
}
|
||||
products = []string{}
|
||||
for product := range productsMap {
|
||||
|
@ -3,11 +3,28 @@ package test_data
|
||||
import (
|
||||
"errors"
|
||||
"gorm.io/gorm"
|
||||
"strconv"
|
||||
"testData/global"
|
||||
"testData/model"
|
||||
)
|
||||
|
||||
func UpdateWarning(req *model.Warning) error {
|
||||
_, err := strconv.ParseFloat(req.FirstPassProbabilityLimitL, 64)
|
||||
if err != nil {
|
||||
return errors.New("一次通过率下限必须是数字")
|
||||
}
|
||||
_, err = strconv.ParseFloat(req.ReturnProbabilityLimitH, 64)
|
||||
if err != nil {
|
||||
return errors.New("回收率上限必须是数字")
|
||||
}
|
||||
_, err = strconv.ParseFloat(req.PassProbabilityLimitL, 64)
|
||||
if err != nil {
|
||||
return errors.New("良率下限必须是数字")
|
||||
}
|
||||
_, err = strconv.ParseFloat(req.AveragePassProbability, 64)
|
||||
if err != nil {
|
||||
return errors.New("平均良率必须是数字")
|
||||
}
|
||||
var warning *model.Warning
|
||||
if errors.Is(global.PostGreSQL.Where("product = ? AND step = ?", req.Product, req.Step).First(&warning).Error, gorm.ErrRecordNotFound) {
|
||||
global.PostGreSQL.Create(&model.Warning{
|
||||
@ -27,33 +44,61 @@ func UpdateWarning(req *model.Warning) error {
|
||||
"average_pass_probability": req.AveragePassProbability,
|
||||
})
|
||||
}
|
||||
for k := range req.ProductionControl {
|
||||
req.ProductionControl[k].ID = 0
|
||||
req.ProductionControl[k].WarningID = warning.ID
|
||||
}
|
||||
global.PostGreSQL.Where("warning_id = ?", warning.ID).Delete(&model.ProductionControl{})
|
||||
global.PostGreSQL.Create(&req.ProductionControl)
|
||||
//for k := range req.ProductionControl {
|
||||
// req.ProductionControl[k].ID = 0
|
||||
// req.ProductionControl[k].WarningID = warning.ID
|
||||
//}
|
||||
//global.PostGreSQL.Where("warning_id = ?", warning.ID).Delete(&model.ProductionControl{})
|
||||
//global.PostGreSQL.Create(&req.ProductionControl)
|
||||
for k := range req.PassProbabilityDiff {
|
||||
req.PassProbabilityDiff[k].ID = 0
|
||||
req.PassProbabilityDiff[k].WarningID = warning.ID
|
||||
_, err = strconv.ParseFloat(req.PassProbabilityDiff[k].SitePassProbabilityDiff, 64)
|
||||
if err != nil {
|
||||
return errors.New("良率差异设置必须是数字")
|
||||
}
|
||||
_, err = strconv.ParseFloat(req.PassProbabilityDiff[k].PassProbabilityDiff, 64)
|
||||
if err != nil {
|
||||
return errors.New("良率差异设置必须是数字")
|
||||
}
|
||||
_, err = strconv.ParseFloat(req.PassProbabilityDiff[k].PassProbabilityWave, 64)
|
||||
if err != nil {
|
||||
return errors.New("良率差异设置必须是数字")
|
||||
}
|
||||
}
|
||||
global.PostGreSQL.Where("warning_id = ?", warning.ID).Delete(&model.PassProbabilityDiff{})
|
||||
global.PostGreSQL.Create(&req.PassProbabilityDiff)
|
||||
for k := range req.BinControl {
|
||||
req.BinControl[k].ID = 0
|
||||
req.BinControl[k].WarningID = warning.ID
|
||||
_, err = strconv.ParseFloat(req.BinControl[k].BinFailLimitH, 64)
|
||||
if err != nil {
|
||||
return errors.New("关键BIN设置必须是数字")
|
||||
}
|
||||
}
|
||||
global.PostGreSQL.Where("warning_id = ?", warning.ID).Delete(&model.BinControl{})
|
||||
global.PostGreSQL.Create(&req.BinControl)
|
||||
for k := range req.SelectionDiffControl {
|
||||
req.SelectionDiffControl[k].ID = 0
|
||||
req.SelectionDiffControl[k].WarningID = warning.ID
|
||||
_, err = strconv.ParseFloat(req.SelectionDiffControl[k].SiteDiff, 64)
|
||||
if err != nil {
|
||||
return errors.New("参数允许差异设置必须是数字")
|
||||
}
|
||||
_, err = strconv.ParseFloat(req.SelectionDiffControl[k].SubBatchDiff, 64)
|
||||
if err != nil {
|
||||
return errors.New("参数允许差异设置必须是数字")
|
||||
}
|
||||
}
|
||||
global.PostGreSQL.Where("warning_id = ?", warning.ID).Delete(&model.SelectionDiffControl{})
|
||||
global.PostGreSQL.Create(&req.SelectionDiffControl)
|
||||
for k := range req.StackingMaterialsWarning {
|
||||
req.StackingMaterialsWarning[k].ID = 0
|
||||
req.StackingMaterialsWarning[k].WarningID = warning.ID
|
||||
_, err = strconv.ParseFloat(req.StackingMaterialsWarning[k].Diff, 64)
|
||||
if err != nil {
|
||||
return errors.New("叠料报警设置必须是数字")
|
||||
}
|
||||
}
|
||||
global.PostGreSQL.Where("warning_id = ?", warning.ID).Delete(&model.StackingMaterialsWarning{})
|
||||
global.PostGreSQL.Create(&req.StackingMaterialsWarning)
|
||||
|
Loading…
Reference in New Issue
Block a user