From 2234e8fa97e85e1e69a6f970416602f283e09df6 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期日, 07 四月 2024 21:57:28 +0800
Subject: [PATCH] 解决联调问题,增加纤度检验相关接口

---
 models/fineness_check_item.go |   58 ++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 46 insertions(+), 12 deletions(-)

diff --git a/models/fineness_check_item.go b/models/fineness_check_item.go
index 9a22f55..778f74a 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,17 +12,18 @@
 	// 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"`                                           //杞﹀彿
-		FinenessRoundingItem []*FinenessRoundingItem
-		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;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 {
@@ -39,7 +41,30 @@
 )
 
 func (slf *FinenessCheckItem) TableName() string {
-	return "fineness_check"
+	return "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 {
@@ -71,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())
 
@@ -78,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