| | |
| | | "silkserver/models" |
| | | "silkserver/utils" |
| | | "sort" |
| | | "strings" |
| | | ) |
| | | |
| | | func FinenessCheck(finenessRegister *models.FinenessRegister, standardMap map[string]*Standard, endCarMap map[int]bool, isNew bool) (err error) { |
| | |
| | | // 保留一位小数,并在整数情况下在小数点后加一个零 |
| | | result = float32(math.Round(float64(result)*10) / 10) |
| | | return result |
| | | } |
| | | |
| | | func FinenessReCheck(finenessCheck *models.FinenessCheck) (err error) { |
| | | finenessRegister, err := models.NewFinenessRegisterSearch().SetID(finenessCheck.FinenessRegisterID).First() |
| | | if err != nil { |
| | | return err |
| | | } |
| | | specArr := strings.Split(finenessRegister.Spec, "/") |
| | | start, _ := decimal.NewFromString(specArr[0]) |
| | | end, _ := decimal.NewFromString(specArr[1]) |
| | | standardMap, err := GetSilkRankStandard(start, end) |
| | | if err != nil { |
| | | return err |
| | | } |
| | | finenessCheck.FinenessGrade = CalcFinenessGrade(finenessCheck.Deviation, finenessCheck.TotalDeviation, finenessCheck.Cleanliness, finenessCheck.Purity, finenessCheck.TwiceChange, standardMap) |
| | | return |
| | | } |
| | | |
| | | func TotalDeviation(numbers []decimal.Decimal, average decimal.Decimal) decimal.Decimal { |