From 30e38e3b2a55a4c9d503b7fbda303437865793be Mon Sep 17 00:00:00 2001
From: yinbentan <yinbentan@live.com>
Date: 星期二, 16 七月 2024 20:08:30 +0800
Subject: [PATCH] 添加方法,根据纤度登记ID获取纤度检验详情
---
service/fineness.go | 34 +++-------------------------------
1 files changed, 3 insertions(+), 31 deletions(-)
diff --git a/service/fineness.go b/service/fineness.go
index d5e3663..04a2a08 100644
--- a/service/fineness.go
+++ b/service/fineness.go
@@ -44,11 +44,11 @@
}
carCheckNumber++
- if carCheckNumber == constvar.EveryPersonCarCheckNumber {
+ if carCheckNumber == constvar.EveryPersonCarCheckNumber { //姣忎汉姣忚溅鍙峰彇涓や釜涓濓紝鎵�浠ユ瘡涓や釜绛変簬涓�涓溅鍙凤紝瀛樹竴琛� models.FinenessCheckItem
carCheckNumber = 0
if endCarMap[finenessItem.Position] { //璧板埌浜嗘煇涓汉鏈�鍚庣殑杞﹀彿,姣忎汉绠椾竴娆″亸宸拰绛夌骇
deviation = utils.Deviation(personFinenessList)
- totalDeviation = TotalDeviation(personFinenessList, utils.Average(personFinenessList))
+ totalDeviation = utils.TotalDeviation(personFinenessList, utils.Average(personFinenessList))
finenessGrade = CalcFinenessGrade(deviation, totalDeviation, decimal.Zero, decimal.Zero, decimal.Zero, standardMap)
personFinenessList = personFinenessList[:0]
} else {
@@ -73,7 +73,7 @@
MarketProcessOrderNumber: "",
Inspector: "",
}
- finenessCheck.TotalDeviation = TotalDeviation(allFinenessList, finenessCheck.AverageFineness)
+ finenessCheck.TotalDeviation = utils.TotalDeviation(allFinenessList, finenessCheck.AverageFineness)
finenessCheck.FinenessGrade = CalcFinenessGrade(finenessCheck.Deviation, finenessCheck.TotalDeviation, finenessCheck.Cleanliness, finenessCheck.Purity, finenessCheck.TwiceChange, standardMap)
err = models.WithTransaction(func(db *gorm.DB) error {
@@ -229,32 +229,4 @@
// 淇濈暀涓�浣嶅皬鏁帮紝骞跺湪鏁存暟鎯呭喌涓嬪湪灏忔暟鐐瑰悗鍔犱竴涓浂
result = float32(math.Round(float64(result)*10) / 10)
return result
-}
-
-func TotalDeviation(numbers []decimal.Decimal, average decimal.Decimal) decimal.Decimal {
- if len(numbers) < 2 {
- return decimal.Zero
- }
-
- n := len(numbers)
- ratio := decimal.NewFromFloat(0.02)
- length := decimal.NewFromInt(int64(n)).Mul(ratio).Ceil().IntPart()
- if length >= int64(n) {
- return decimal.Zero
- }
-
- sort.Slice(numbers, func(i, j int) bool {
- return numbers[i].LessThan(numbers[j])
- })
-
- minPart := numbers[:length-1]
- maxPart := numbers[length:]
-
- minAverage := utils.Average(minPart)
- maxAverage := utils.Average(maxPart)
-
- minDiff := minAverage.Sub(average).Abs()
- maxDiff := maxAverage.Sub(average).Abs()
-
- return decimal.Max(minDiff, maxDiff)
}
--
Gitblit v1.8.0