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/silk_rank.go |   37 ++++++++++++++++++-------------------
 1 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/service/silk_rank.go b/service/silk_rank.go
index a694467..dcd96f7 100644
--- a/service/silk_rank.go
+++ b/service/silk_rank.go
@@ -14,7 +14,7 @@
 	EndFineness   decimal.Decimal
 	GradeMap      map[string]struct{}
 	ValueList     []*Pair
-	SortType      SortType
+	SortType      ValueType
 	GradeRank     map[string]int
 }
 
@@ -23,23 +23,23 @@
 	RankValue decimal.Decimal
 }
 
-type SortType int
+type ValueType int
 
 const (
-	SortTypeAsc  SortType = 0
-	SortTypeDesc SortType = 1
+	ValueTypeSmallerBetter ValueType = 0 //鍊兼寜鍗囧簭鎺掑悕锛堝�艰秺灏忥紝绛夌骇瓒婇珮锛�
+	ValueTypeGreaterBetter ValueType = 1 //鍊兼寜闄嶅簭鎺掑悕锛堝�艰秺澶э紝绛夌骇瓒婇珮锛�
 )
 
-var sortTypeMap = map[constvar.CheckItem]SortType{
-	constvar.CheckItemDeviation:    SortTypeAsc,
-	constvar.CheckItemTwiceChange:  SortTypeAsc,
-	constvar.CheckItemCleanliness:  SortTypeDesc,
-	constvar.CheckItemPurity:       SortTypeDesc,
-	constvar.CheckItemMaxDeviation: SortTypeAsc,
+var sortTypeMap = map[constvar.CheckItem]ValueType{
+	constvar.CheckItemDeviation:    ValueTypeSmallerBetter,
+	constvar.CheckItemTwiceChange:  ValueTypeSmallerBetter,
+	constvar.CheckItemCleanliness:  ValueTypeGreaterBetter,
+	constvar.CheckItemPurity:       ValueTypeGreaterBetter,
+	constvar.CheckItemMaxDeviation: ValueTypeSmallerBetter,
 }
 
-func GetSilkRankStandard() (map[string]*Standard, error) {
-	rankStandards, err := models.NewRawSilkRankStandardSearch().FindNotTotal()
+func GetSilkRankStandard(startFineness, endFineness decimal.Decimal) (map[string]*Standard, error) {
+	rankStandards, err := models.NewRawSilkRankStandardSearch().SetFineness(startFineness, endFineness).FindNotTotal()
 	if err != nil {
 		return nil, err
 	}
@@ -87,25 +87,24 @@
 		}
 	}
 	//value鎺掑簭
-	for k := range standardMap {
+	for k := range standardMap { //绛夌骇闄嶅簭鎺掑垪
 		sort.Slice(standardMap[k].ValueList, func(i, j int) bool {
 			sortType := sortTypeMap[standardMap[k].CheckItem]
 			standardMap[k].SortType = sortType
-			if sortType == SortTypeAsc {
+			if sortType == ValueTypeSmallerBetter {
 				return standardMap[k].ValueList[i].RankValue.LessThan(standardMap[k].ValueList[j].RankValue)
 			} else {
 				return standardMap[k].ValueList[i].RankValue.GreaterThan(standardMap[k].ValueList[j].RankValue)
 			}
 		})
 	}
-	//绛夌骇鎺掑悕
+	//绛夌骇鎺掑悕 GradeRank瓒婂ぇ锛岀瓑绾ц秺楂�
 	for lineId, standard := range standardMap {
 		for k, pair := range standard.ValueList {
-			if standard.SortType == SortTypeAsc {
-				standardMap[lineId].GradeRank[pair.RankName] = k + 1
-			} else {
-				standardMap[lineId].GradeRank[pair.RankName] = len(standard.ValueList) - k
+			if standardMap[lineId].GradeRank == nil {
+				standardMap[lineId].GradeRank = make(map[string]int, 0)
 			}
+			standardMap[lineId].GradeRank[pair.RankName] = len(standard.ValueList) - k
 		}
 	}
 	return standardMap, nil

--
Gitblit v1.8.0