From 440392a932fb2dc8118caf1f4996e7d8b72574a1 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期一, 29 四月 2024 19:18:21 +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..0d039e2 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:"index;not null;comment:绾ゅ害鐧昏琛↖D" json:"finenessRegisterID"` //绾ゅ害鐧昏琛↖D
+ FinenessCheckID uint `gorm:"index;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