From 4f9f21d3c72d724f3cf41939e4d48a46de0848d8 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 09 四月 2024 15:09:08 +0800
Subject: [PATCH] 纤度登记表增加登记表id,修改登记时先删除检验记录再生成新的检验记录

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

diff --git a/service/fineness.go b/service/fineness.go
index 863c71f..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
 }

--
Gitblit v1.8.0