From 4f9f21d3c72d724f3cf41939e4d48a46de0848d8 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 09 四月 2024 15:09:08 +0800
Subject: [PATCH] 纤度登记表增加登记表id,修改登记时先删除检验记录再生成新的检验记录
---
models/fineness_check_item.go | 8 ++--
service/fineness.go | 21 +++++++++-
controllers/fineness.go | 7 ++-
models/fineness_check.go | 9 ++++
models/fineness.go | 25 ++++++------
5 files changed, 50 insertions(+), 20 deletions(-)
diff --git a/controllers/fineness.go b/controllers/fineness.go
index b675bcf..5203bba 100644
--- a/controllers/fineness.go
+++ b/controllers/fineness.go
@@ -43,10 +43,13 @@
util.ResponseFormat(c, code.RequestParamError, err.Error())
return
}
+
+ isNew := params.ID == 0
+
err := models.WithTransaction(func(db *gorm.DB) error {
search := models.NewFinenessRegisterSearch().SetOrm(db)
- if params.ID != 0 {
+ if !isNew {
if err := models.NewFinenessItemSearch().SetOrm(db).SetFinenessRegisterID(params.ID).Delete(); err != nil {
return err
}
@@ -59,7 +62,7 @@
util.ResponseFormat(c, code.RequestParamError, "淇濆瓨澶辫触")
}
- err = service.FinenessCheck(¶ms)
+ err = service.FinenessCheck(¶ms, isNew)
if err != nil {
logx.Errorf("service.FinenessCheck err:%v, finenessRegister:%+v", err, params)
util.ResponseFormat(c, code.RequestParamError, "鐢熸垚妫�楠岃〃澶辫触")
diff --git a/models/fineness.go b/models/fineness.go
index 39cda4f..c82e5a5 100644
--- a/models/fineness.go
+++ b/models/fineness.go
@@ -11,18 +11,19 @@
// FinenessRegister 绾ゅ害鐧昏
FinenessRegister struct {
gorm.Model
- Number string `gorm:"type:varchar(255);not null;comment:缂栧彿" json:"number"` //缂栧彿
- FinishDate string `gorm:"type:varchar(255);not null;comment:钀戒笣鏃堕棿" json:"finishDate"` //钀戒笣鏃堕棿
- Workshop string `gorm:"type:varchar(255);not null;comment:杞﹂棿" json:"name"` //杞﹂棿
- WorkshopGroup int `gorm:"type:int(11);not null;default:0;comment:杞︾粍" json:"workshopGroup"` //杞︾粍
- Market string `gorm:"type:varchar(255);not null;comment:搴勫彛" json:"market"` //搴勫彛
- Spec string `gorm:"type:varchar(255);not null;comment:瑙勬牸" json:"spec"` //瑙勬牸
- Circle uint8 `gorm:"not null;default:0;comment:鍥炴暟" json:"circle"` //鍥炴暟
- TotalCircle uint8 `gorm:"not null;default:0;comment:鎬诲洖鏁�" json:"totalCircle"` //鎬诲洖鏁�
- FinenessList []FinenessItem `gorm:"foreignkey:FinenessRegisterID;references:ID" json:"finenessList"`
- SumFineness decimal.Decimal `gorm:"type:decimal(12,2);not null;comment:鍚堣绾ゅ害" json:"sumFineness"`
- SumQuantity decimal.Decimal `gorm:"type:decimal(12,2);not null;comment:鍚堣鏁伴噺" json:"sumQuantity"`
- Position int `gorm:"not null;default:0;comment:杞﹀彿" json:"position"` //鏈�鍚庝竴涓溅鍙�
+ Number string `gorm:"type:varchar(255);not null;comment:缂栧彿" json:"number"` //缂栧彿
+ FinenessCheckID uint `gorm:"not null;comment:绾ゅ害妫�楠岃〃ID" json:"finenessCheckID"` //绾ゅ害妫�楠岃〃ID
+ FinishDate string `gorm:"type:varchar(255);not null;comment:钀戒笣鏃堕棿" json:"finishDate"` //钀戒笣鏃堕棿
+ Workshop string `gorm:"type:varchar(255);not null;comment:杞﹂棿" json:"name"` //杞﹂棿
+ WorkshopGroup int `gorm:"type:int(11);not null;default:0;comment:杞︾粍" json:"workshopGroup"` //杞︾粍
+ Market string `gorm:"type:varchar(255);not null;comment:搴勫彛" json:"market"` //搴勫彛
+ Spec string `gorm:"type:varchar(255);not null;comment:瑙勬牸" json:"spec"` //瑙勬牸
+ Circle uint8 `gorm:"not null;default:0;comment:鍥炴暟" json:"circle"` //鍥炴暟
+ TotalCircle uint8 `gorm:"not null;default:0;comment:鎬诲洖鏁�" json:"totalCircle"` //鎬诲洖鏁�
+ FinenessList []FinenessItem `gorm:"foreignkey:FinenessRegisterID;references:ID" json:"finenessList"`
+ SumFineness decimal.Decimal `gorm:"type:decimal(12,2);not null;comment:鍚堣绾ゅ害" json:"sumFineness"`
+ SumQuantity decimal.Decimal `gorm:"type:decimal(12,2);not null;comment:鍚堣鏁伴噺" json:"sumQuantity"`
+ Position int `gorm:"not null;default:0;comment:杞﹀彿" json:"position"` //鏈�鍚庝竴涓溅鍙�
}
FinenessRegisterSearch struct {
FinenessRegister
diff --git a/models/fineness_check.go b/models/fineness_check.go
index 5620fee..0544afe 100644
--- a/models/fineness_check.go
+++ b/models/fineness_check.go
@@ -68,6 +68,11 @@
return slf
}
+func (slf *FinenessCheckSearch) SetFinenessRegisterID(id uint) *FinenessCheckSearch {
+ slf.FinenessRegisterID = id
+ return slf
+}
+
func (slf *FinenessCheckSearch) SetKeyword(keyword string) *FinenessCheckSearch {
slf.Keyword = keyword
return slf
@@ -88,6 +93,10 @@
db = db.Where("number like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
}
+ if slf.FinenessRegisterID != 0 {
+ db = db.Where("fineness_register_id = ?", slf.FinenessRegisterID)
+ }
+
if slf.Preload {
db = db.Model(&FinenessCheck{}).Preload("FinenessRegister")
}
diff --git a/models/fineness_check_item.go b/models/fineness_check_item.go
index 80e4217..6c8eeb3 100644
--- a/models/fineness_check_item.go
+++ b/models/fineness_check_item.go
@@ -12,10 +12,10 @@
// FinenessCheckItem 绾ゅ害妫�楠屾槑缁�
FinenessCheckItem struct {
gorm.Model
- FinenessRegisterID uint `gorm:"not null;comment:绾ゅ害鐧昏琛↖D" json:"finenessRegisterID"` //绾ゅ害鐧昏琛↖D
- //FinenessCheckID uint `gorm:"not null;comment:绾ゅ害妫�楠岃〃ID" json:"finenessCheckID"` //绾ゅ害妫�楠岃〃ID
- Position int `json:"position"` //杞﹀彿
- FinenessRoundingItems []*FinenessRoundingItem `json:"finenessRoundingItems" gorm:"-"` //绾ゅ害鍒楄〃
+ FinenessRegisterID uint `gorm:"not null;comment:绾ゅ害鐧昏琛↖D" json:"finenessRegisterID"` //绾ゅ害鐧昏琛↖D
+ FinenessCheckID uint `gorm:"not null;comment:绾ゅ害妫�楠岃〃ID" json:"finenessCheckID"` //绾ゅ害妫�楠岃〃ID
+ Position int `json:"position"` //杞﹀彿
+ FinenessRoundingItems []*FinenessRoundingItem `json:"finenessRoundingItems" gorm:"-"` //绾ゅ害鍒楄〃
FinenessRounding string `json:"-"`
Deviation decimal.Decimal `gorm:"type:decimal(12,2);not null;comment:鍋忓樊" json:"deviation"` //鍋忓樊
TotalDeviation decimal.Decimal `gorm:"type:decimal(12,2);not null;comment:鎬诲樊" json:"totalDeviation"` //鎬诲樊
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