From 3ae25318873c7175aedc529f05bacde8005d8b50 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期二, 23 四月 2024 17:52:30 +0800 Subject: [PATCH] 获取模版信息与考勤修改 --- models/fineness_check_item.go | 62 +++++++++++++++++++++++------- 1 files changed, 47 insertions(+), 15 deletions(-) diff --git a/models/fineness_check_item.go b/models/fineness_check_item.go index 0efd875..016398b 100644 --- a/models/fineness_check_item.go +++ b/models/fineness_check_item.go @@ -1,6 +1,7 @@ package models import ( + "encoding/json" "fmt" "github.com/shopspring/decimal" "gorm.io/gorm" @@ -11,24 +12,23 @@ // 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 int8 `json:"position"` //杞﹀彿 - FinenessRoundingItem FinenessRoundingItem - AverageFineness decimal.Decimal `gorm:"type:decimal(12,2);not null;comment:骞冲潎绾ゅ害" json:"averageFineness"` //骞冲潎绾ゅ害 - MeasureFineness decimal.Decimal `gorm:"type:decimal(12,2);not null;comment:鍏噺绾ゅ害" json:"measureFineness"` //鍏噺绾ゅ害 - 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"` //鎬诲樊 - FinenessGrade string `gorm:"type:varchar(255);not null;comment:绾ゅ害绛夌骇" json:"finenessGrade"` //绾ゅ害绛夌骇 - Cleanliness string `gorm:"type:varchar(255);not null;comment:娓呮磥搴�" json:"cleanliness"` //娓呮磥搴� - Purity string `gorm:"type:varchar(255);not null;comment:娲佸噣搴�" json:"purity"` //娲佸噣搴� - TwiceChange string `gorm:"type:varchar(255);not null;comment:浜屽害鍙樺寲" json:"twiceChange"` //浜屽害鍙樺寲 - Remark string `gorm:"type:varchar(255);not null;comment:澶囨敞" json:"remark"` //澶囨敞 + 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"` //鎬诲樊 + FinenessGrade string `gorm:"type:varchar(255);not null;comment:绾ゅ害绛夌骇" json:"finenessGrade"` //绾ゅ害绛夌骇 + Cleanliness decimal.Decimal `gorm:"type:varchar(255);not null;comment:娓呮磥搴�" json:"cleanliness"` //娓呮磥搴� + Purity decimal.Decimal `gorm:"type:varchar(255);not null;comment:娲佸噣搴�" json:"purity"` //娲佸噣搴� + TwiceChange decimal.Decimal `gorm:"type:varchar(255);not null;comment:浜屽害鍙樺寲" json:"twiceChange"` //浜屽害鍙樺寲 + Remark string `gorm:"type:varchar(255);not null;default:'';comment:澶囨敞" json:"remark"` //澶囨敞 } FinenessRoundingItem struct { Fineness decimal.Decimal `json:"fineness"` //绾ゅ害 - Quantity decimal.Decimal `json:"quantity"` //鏁伴噺 + Quantity int `json:"quantity"` //鏁伴噺 } FinenessCheckItemSearch struct { FinenessCheckItem @@ -41,7 +41,30 @@ ) func (slf *FinenessCheckItem) TableName() string { - return "fineness_check" + return "silk_fineness_check_item" +} + +func (slf *FinenessCheckItem) AfterFind(tx *gorm.DB) error { + if slf.FinenessRounding != "" { + items := make([]*FinenessRoundingItem, 0) + err := json.Unmarshal([]byte(slf.FinenessRounding), &items) + if err != nil { + return err + } + slf.FinenessRoundingItems = items + } + return nil +} + +func (slf *FinenessCheckItem) BeforeCreate(tx *gorm.DB) error { + if len(slf.FinenessRoundingItems) > 0 { + bts, err := json.Marshal(slf.FinenessRoundingItems) + if err != nil { + return err + } + slf.FinenessRounding = string(bts) + } + return nil } func NewFinenessCheckItemSearch() *FinenessCheckItemSearch { @@ -73,6 +96,11 @@ return slf } +func (slf *FinenessCheckItemSearch) SetFinenessRegisterID(id uint) *FinenessCheckItemSearch { + slf.FinenessRegisterID = id + return slf +} + func (slf *FinenessCheckItemSearch) build() *gorm.DB { var db = slf.Orm.Table(slf.TableName()) @@ -80,6 +108,10 @@ db = db.Where("id = ?", slf.ID) } + if slf.FinenessRegisterID != 0 { + db = db.Where("fineness_register_id = ?", slf.FinenessRegisterID) + } + if slf.Order != "" { db = db.Order(slf.Order) } -- Gitblit v1.8.0