From 329095b4c501351cda9316f26d1e617b1b0bc3ec Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 09 四月 2024 15:11:27 +0800
Subject: [PATCH] 纤度检验表返回设备登记表详情

---
 service/fineness.go |   30 ++++++++++++++++++++++++++++--
 1 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/service/fineness.go b/service/fineness.go
index 95039f3..6128727 100644
--- a/service/fineness.go
+++ b/service/fineness.go
@@ -10,7 +10,7 @@
 	"sort"
 )
 
-func FinenessCheck(finenessRegister *models.FinenessRegister) (err error) {
+func FinenessCheck(finenessRegister *models.FinenessRegister, isNew bool) (err error) {
 	standardMap, err := GetSilkRankStandard()
 	if err != nil {
 		return err
@@ -88,11 +88,28 @@
 	finenessCheck.FinenessGrade = CalcFinenessGrade(finenessCheck.Deviation, finenessCheck.TotalDeviation, finenessCheck.Cleanliness, finenessCheck.Purity, finenessCheck.TwiceChange, standardMap)
 
 	err = models.WithTransaction(func(db *gorm.DB) error {
+		if !isNew {
+			err = models.NewFinenessCheckSearch().SetOrm(db).SetFinenessRegisterID(finenessRegister.ID).Delete()
+			if err != nil {
+				return err
+			}
+			err = models.NewFinenessCheckItemSearch().SetOrm(db).SetFinenessRegisterID(finenessRegister.ID).Delete()
+			if err != nil {
+				return err
+			}
+		}
 		err := models.NewFinenessCheckSearch().SetOrm(db).Create(&finenessCheck)
 		if err != nil {
 			return err
 		}
-		return models.NewFinenessCheckItemSearch().SetOrm(db).CreateBatch(finenessCheckItems)
+		for _, v := range finenessCheckItems {
+			v.FinenessCheckID = finenessCheck.ID
+		}
+		err = models.NewFinenessCheckItemSearch().SetOrm(db).CreateBatch(finenessCheckItems)
+		if err != nil {
+			return err
+		}
+		return models.NewFinenessRegisterSearch().SetOrm(db).SetID(finenessRegister.ID).UpdateByMap(map[string]interface{}{"fineness_check_id": finenessCheck.ID})
 	})
 	return err
 }
@@ -202,3 +219,12 @@
 	result = float32(math.Round(float64(result)*10) / 10)
 	return result
 }
+
+func FinenessReCheck(finenessCheck *models.FinenessCheck) (err error) {
+	standardMap, err := GetSilkRankStandard()
+	if err != nil {
+		return err
+	}
+	finenessCheck.FinenessGrade = CalcFinenessGrade(finenessCheck.Deviation, finenessCheck.TotalDeviation, finenessCheck.Cleanliness, finenessCheck.Purity, finenessCheck.TwiceChange, standardMap)
+	return
+}

--
Gitblit v1.8.0