From 09fe1d906147cc88bb00cb0a6a1361ddd4112fa4 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期二, 30 四月 2024 09:49:05 +0800 Subject: [PATCH] 修复&优化 --- service/fineness.go | 37 +++++++++++++++++++++---------------- 1 files changed, 21 insertions(+), 16 deletions(-) diff --git a/service/fineness.go b/service/fineness.go index 21fe070..d5e3663 100644 --- a/service/fineness.go +++ b/service/fineness.go @@ -18,7 +18,7 @@ var carCheckNumber = 0 //鍗曚釜car宸叉鏌ユ牱鏈暟 var item *models.FinenessCheckItem - var deviation decimal.Decimal + var deviation, totalDeviation decimal.Decimal var finenessGrade string var roundingItemMap = make(map[float32]*models.FinenessRoundingItem, 0) lastCarNo = finenessRegister.FinenessList[0].Position @@ -31,8 +31,9 @@ fineness := decimal.NewFromFloat32(roundedHalfFineness) for i := 0; i < finenessItem.Quantity; i++ { allFinenessList = append(allFinenessList, fineness) + personFinenessList = append(personFinenessList, fineness) } - personFinenessList = append(personFinenessList, fineness) + if roundingItemMap[roundedHalfFineness] == nil { roundingItemMap[roundedHalfFineness] = &models.FinenessRoundingItem{ Fineness: fineness, @@ -47,13 +48,15 @@ carCheckNumber = 0 if endCarMap[finenessItem.Position] { //璧板埌浜嗘煇涓汉鏈�鍚庣殑杞﹀彿,姣忎汉绠椾竴娆″亸宸拰绛夌骇 deviation = utils.Deviation(personFinenessList) - finenessGrade = CalcFinenessGrade(item.Deviation, item.TotalDeviation, item.Cleanliness, item.Purity, item.TwiceChange, standardMap) + totalDeviation = TotalDeviation(personFinenessList, utils.Average(personFinenessList)) + finenessGrade = CalcFinenessGrade(deviation, totalDeviation, decimal.Zero, decimal.Zero, decimal.Zero, standardMap) personFinenessList = personFinenessList[:0] } else { deviation = decimal.Zero + totalDeviation = decimal.Zero finenessGrade = "" } - item = MakeFinenessCheckItem(roundingItemMap, finenessRegister.ID, lastCarNo, deviation, finenessGrade) + item = MakeFinenessCheckItem(roundingItemMap, finenessRegister.ID, lastCarNo, deviation, totalDeviation, finenessGrade) finenessCheckItems = append(finenessCheckItems, item) roundingItemMap = make(map[float32]*models.FinenessRoundingItem, 0) //閲嶇疆 } @@ -103,7 +106,7 @@ return err } -func MakeFinenessCheckItem(roundingItemMap map[float32]*models.FinenessRoundingItem, finenessRegisterID uint, position int, deviation decimal.Decimal, finenessGrade string) *models.FinenessCheckItem { +func MakeFinenessCheckItem(roundingItemMap map[float32]*models.FinenessRoundingItem, finenessRegisterID uint, position int, deviation, totalDeviation decimal.Decimal, finenessGrade string) *models.FinenessCheckItem { roundingItems := make([]*models.FinenessRoundingItem, 0, len(roundingItemMap)) for _, v := range roundingItemMap { roundingItems = append(roundingItems, &models.FinenessRoundingItem{ @@ -116,6 +119,7 @@ Position: position, FinenessRoundingItems: roundingItems, Deviation: deviation, + TotalDeviation: totalDeviation, FinenessGrade: finenessGrade, Remark: "", } @@ -136,7 +140,7 @@ for _, pair := range st.ValueList { switch st.CheckItem { case constvar.CheckItemDeviation: - if st.SortType == SortTypeAsc { + if st.SortType == ValueTypeSmallerBetter { if deviation.LessThanOrEqual(pair.RankValue) { grade = pair.RankName } @@ -146,7 +150,7 @@ } } case constvar.CheckItemMaxDeviation: - if st.SortType == SortTypeAsc { + if st.SortType == ValueTypeSmallerBetter { if totalDeviation.LessThanOrEqual(pair.RankValue) { grade = pair.RankName } @@ -156,7 +160,7 @@ } } case constvar.CheckItemTwiceChange: - if st.SortType == SortTypeAsc { + if st.SortType == ValueTypeSmallerBetter { if twiceChange.LessThanOrEqual(pair.RankValue) { grade = pair.RankName } @@ -166,7 +170,7 @@ } } case constvar.CheckItemCleanliness: - if st.SortType == SortTypeAsc { + if st.SortType == ValueTypeSmallerBetter { if cleanliness.LessThanOrEqual(pair.RankValue) { grade = pair.RankName } @@ -176,7 +180,7 @@ } } case constvar.CheckItemPurity: - if st.SortType == SortTypeAsc { + if st.SortType == ValueTypeSmallerBetter { if purity.LessThanOrEqual(pair.RankValue) { grade = pair.RankName } @@ -190,13 +194,14 @@ break } } - if grade != "" { - checkItemGradeMap[st.CheckItem] = grade - gradeRanks = append(gradeRanks, gradeRank{ - gradeName: grade, - gradeRank: st.GradeRank[grade], - }) + if grade == "" { + grade = constvar.BadFinenessGradeC } + checkItemGradeMap[st.CheckItem] = grade + gradeRanks = append(gradeRanks, gradeRank{ + gradeName: grade, + gradeRank: st.GradeRank[grade], + }) } if len(gradeRanks) == 0 { return "" -- Gitblit v1.8.0