数据分析平台 预警设置窗口新增判断条件与获取产品名称
This commit is contained in:
parent
07af57b147
commit
37300badf3
@ -35,7 +35,12 @@ func (S *SWarningService) Update(c *gin.Context) {
|
|||||||
response.FailWithMessage(msg, c)
|
response.FailWithMessage(msg, c)
|
||||||
return
|
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 数据分析平台
|
// @Tags 数据分析平台
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package erp
|
package erp
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strings"
|
||||||
"testData/global"
|
"testData/global"
|
||||||
"testData/model"
|
"testData/model"
|
||||||
)
|
)
|
||||||
@ -13,10 +14,15 @@ func GetFactorySelections() []string {
|
|||||||
|
|
||||||
func GetAllProductSelection() []string {
|
func GetAllProductSelection() []string {
|
||||||
var products []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)
|
productsMap := make(map[string]bool)
|
||||||
for _, product := range products {
|
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{}
|
products = []string{}
|
||||||
for product := range productsMap {
|
for product := range productsMap {
|
||||||
|
@ -3,11 +3,28 @@ package test_data
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
|
"strconv"
|
||||||
"testData/global"
|
"testData/global"
|
||||||
"testData/model"
|
"testData/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func UpdateWarning(req *model.Warning) error {
|
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
|
var warning *model.Warning
|
||||||
if errors.Is(global.PostGreSQL.Where("product = ? AND step = ?", req.Product, req.Step).First(&warning).Error, gorm.ErrRecordNotFound) {
|
if errors.Is(global.PostGreSQL.Where("product = ? AND step = ?", req.Product, req.Step).First(&warning).Error, gorm.ErrRecordNotFound) {
|
||||||
global.PostGreSQL.Create(&model.Warning{
|
global.PostGreSQL.Create(&model.Warning{
|
||||||
@ -27,33 +44,61 @@ func UpdateWarning(req *model.Warning) error {
|
|||||||
"average_pass_probability": req.AveragePassProbability,
|
"average_pass_probability": req.AveragePassProbability,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
for k := range req.ProductionControl {
|
//for k := range req.ProductionControl {
|
||||||
req.ProductionControl[k].ID = 0
|
// req.ProductionControl[k].ID = 0
|
||||||
req.ProductionControl[k].WarningID = warning.ID
|
// req.ProductionControl[k].WarningID = warning.ID
|
||||||
}
|
//}
|
||||||
global.PostGreSQL.Where("warning_id = ?", warning.ID).Delete(&model.ProductionControl{})
|
//global.PostGreSQL.Where("warning_id = ?", warning.ID).Delete(&model.ProductionControl{})
|
||||||
global.PostGreSQL.Create(&req.ProductionControl)
|
//global.PostGreSQL.Create(&req.ProductionControl)
|
||||||
for k := range req.PassProbabilityDiff {
|
for k := range req.PassProbabilityDiff {
|
||||||
req.PassProbabilityDiff[k].ID = 0
|
req.PassProbabilityDiff[k].ID = 0
|
||||||
req.PassProbabilityDiff[k].WarningID = warning.ID
|
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.Where("warning_id = ?", warning.ID).Delete(&model.PassProbabilityDiff{})
|
||||||
global.PostGreSQL.Create(&req.PassProbabilityDiff)
|
global.PostGreSQL.Create(&req.PassProbabilityDiff)
|
||||||
for k := range req.BinControl {
|
for k := range req.BinControl {
|
||||||
req.BinControl[k].ID = 0
|
req.BinControl[k].ID = 0
|
||||||
req.BinControl[k].WarningID = warning.ID
|
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.Where("warning_id = ?", warning.ID).Delete(&model.BinControl{})
|
||||||
global.PostGreSQL.Create(&req.BinControl)
|
global.PostGreSQL.Create(&req.BinControl)
|
||||||
for k := range req.SelectionDiffControl {
|
for k := range req.SelectionDiffControl {
|
||||||
req.SelectionDiffControl[k].ID = 0
|
req.SelectionDiffControl[k].ID = 0
|
||||||
req.SelectionDiffControl[k].WarningID = warning.ID
|
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.Where("warning_id = ?", warning.ID).Delete(&model.SelectionDiffControl{})
|
||||||
global.PostGreSQL.Create(&req.SelectionDiffControl)
|
global.PostGreSQL.Create(&req.SelectionDiffControl)
|
||||||
for k := range req.StackingMaterialsWarning {
|
for k := range req.StackingMaterialsWarning {
|
||||||
req.StackingMaterialsWarning[k].ID = 0
|
req.StackingMaterialsWarning[k].ID = 0
|
||||||
req.StackingMaterialsWarning[k].WarningID = warning.ID
|
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.Where("warning_id = ?", warning.ID).Delete(&model.StackingMaterialsWarning{})
|
||||||
global.PostGreSQL.Create(&req.StackingMaterialsWarning)
|
global.PostGreSQL.Create(&req.StackingMaterialsWarning)
|
||||||
|
Loading…
Reference in New Issue
Block a user