From e99cc5acf40323379cf538bc5f08228a42aa2bee Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期二, 09 四月 2024 17:52:26 +0800
Subject: [PATCH] 产量登记表2

---
 controllers/request/yield_register_request.go |   11 ++
 models/yield_register.go                      |   30 ++++++-
 models/workshop_manage.go                     |    2 
 models/db.go                                  |    3 
 controllers/yield_register_controller.go      |   89 +++++++++++++++++++++
 models/yield_register_circle.go               |    2 
 models/yield_register_item.go                 |    2 
 controllers/raw_silk_standard.go              |   23 +++++
 models/raw_silk_price_standard.go             |   12 +-
 router/router.go                              |   10 ++
 10 files changed, 164 insertions(+), 20 deletions(-)

diff --git a/controllers/raw_silk_standard.go b/controllers/raw_silk_standard.go
index 7659034..10c3b1d 100644
--- a/controllers/raw_silk_standard.go
+++ b/controllers/raw_silk_standard.go
@@ -188,3 +188,26 @@
 	}
 	util.ResponseFormat(c, code.Success, "淇濆瓨鎴愬姛")
 }
+
+// GetRankStandardGrade
+//
+//	@Tags		绯荤粺璁剧疆/鐢熶笣瀹氱骇鏍囧噯
+//	@Summary	鑾峰彇鐢熶笣绛夌骇
+//	@Produce	application/json
+//	@Success	200	{object}	util.Response{data=map[string]string}	"鎴愬姛"
+//	@Router		/api-jl/v1/system/getRankStandardGrade [get]
+func (slf RawSilkStandardController) GetRankStandardGrade(c *gin.Context) {
+	standards, err := models.NewRawSilkRankStandardSearch().FindNotTotal()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鑾峰彇鐢熶笣绛夌骇澶辫触")
+		return
+	}
+	m := make(map[string]string)
+	m["閲庣氦"] = "閲庣氦"
+	m["澶ч噹"] = "澶ч噹"
+	m["鐗归噹"] = "鐗归噹"
+	for _, standard := range standards {
+		m[standard.RankName] = standard.RankName
+	}
+	util.ResponseFormat(c, code.Success, m)
+}
diff --git a/controllers/request/yield_register_request.go b/controllers/request/yield_register_request.go
index 31dd4f0..30033a9 100644
--- a/controllers/request/yield_register_request.go
+++ b/controllers/request/yield_register_request.go
@@ -2,6 +2,12 @@
 
 import "github.com/shopspring/decimal"
 
+type GetYieldRegisterList struct {
+	PageInfo
+	KeyWord string `json:"keyWord"`
+	Number  string `json:"number"` //浜ч噺鐧昏琛ㄧ紪鍙�
+}
+
 type YieldRegisterInfo struct {
 	Id                      uint                      `json:"id"`
 	Number                  string                    `json:"number"`                  //缂栧彿
@@ -29,8 +35,8 @@
 	TwoBack                 string                    `json:"twoBack"`                 //绗簩鍥�
 	ThreeBack               string                    `json:"threeBack"`               //绗笁鍥�
 	Total                   decimal.Decimal           `json:"total"`                   //鎬讳骇閲�
-	ItemInfo                []YieldRegisterItemInfo   `json:"itemInfo"`
-	CircleInfo              []YieldRegisterCircleInfo `json:"circleInfo"`
+	Items                   []YieldRegisterItemInfo   `json:"items"`
+	Circles                 []YieldRegisterCircleInfo `json:"circles"`
 }
 
 type YieldRegisterItemInfo struct {
@@ -47,6 +53,7 @@
 	CarNumber       int             `json:"carNumber"`       //杞﹀彿
 	Circle          int             `json:"circle"`          //鍥炴暟
 	PieceNumber     int             `json:"pieceNumber"`     //鐗囨暟
+	Value           decimal.Decimal `json:"value"`           //鍊�
 	AllYield        decimal.Decimal `json:"allYield"`        //浜ч噺
 	OneYield        decimal.Decimal `json:"oneYield"`        //鍙颁骇
 	Reelingdiscount string          `json:"reelingdiscount"` //缂姌
diff --git a/controllers/yield_register_controller.go b/controllers/yield_register_controller.go
index 2c8ff8e..fbade43 100644
--- a/controllers/yield_register_controller.go
+++ b/controllers/yield_register_controller.go
@@ -2,9 +2,12 @@
 
 import (
 	"github.com/gin-gonic/gin"
+	"gorm.io/gorm"
 	"silkserver/controllers/request"
 	"silkserver/extend/code"
 	"silkserver/extend/util"
+	"silkserver/models"
+	"silkserver/pkg/structx"
 )
 
 type YieldRegisterController struct {
@@ -15,14 +18,94 @@
 //	@Tags		鐢熶骇绠$悊/浜ч噺鐧昏琛�
 //	@Summary	淇濆瓨浜ч噺鐧昏琛�
 //	@Produce	application/json
-//	@Param		object	body		models.WorkshopManage	true	"鍙傛暟"
+//	@Param		object	body		request.YieldRegisterInfo	true	"鍙傛暟"
 //	@Success	200		{object}	util.Response		"鎴愬姛"
-//	@Router		/api-jl/v1/system/saveYieldRegister [post]
-func (slf WorkshopManageController) SaveYieldRegister(c *gin.Context) {
+//	@Router		/api-jl/v1/fineness/saveYieldRegister [post]
+func (slf YieldRegisterController) SaveYieldRegister(c *gin.Context) {
 	var params request.YieldRegisterInfo
+	var yield models.YieldRegister
 	err := c.BindJSON(&params)
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
 		return
 	}
+	err = structx.AssignTo(params, &yield)
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鏁版嵁杞崲澶辫触")
+		return
+	}
+	if yield.ID > 0 {
+		//鏇存柊
+		err = models.WithTransaction(func(db *gorm.DB) error {
+			err = models.NewYieldRegisterItemSearch().SetOrm(db).SetYieldRegisterId(yield.ID).Delete()
+			if err != nil {
+				return err
+			}
+			err = models.NewYieldRegisterCircleSearch().SetOrm(db).SetYieldRegisterId(yield.ID).Delete()
+			if err != nil {
+				return err
+			}
+			err = models.NewYieldRegisterSearch().SetOrm(db).Save(&yield)
+			return err
+		})
+
+		if err != nil {
+			util.ResponseFormat(c, code.RequestParamError, "淇濆瓨澶辫触")
+			return
+		}
+	} else {
+		//淇濆瓨
+		err = models.NewYieldRegisterSearch().Create(&yield)
+		if err != nil {
+			util.ResponseFormat(c, code.RequestParamError, "淇濆瓨澶辫触")
+			return
+		}
+	}
+	util.ResponseFormat(c, code.Success, "淇濆瓨鎴愬姛")
+}
+
+// GetYieldRegisterList
+//
+//	@Tags		鐢熶骇绠$悊/浜ч噺鐧昏琛�
+//	@Summary	鑾峰彇浜ч噺鐧昏琛�
+//	@Produce	application/json
+//	@Param		object	body		request.GetYieldRegisterList	true	"鍙傛暟"
+//	@Success	200		{object}	util.ResponseList{data=[]models.YieldRegister}		"鎴愬姛"
+//	@Router		/api-jl/v1/fineness/getYieldRegisterList [post]
+func (slf YieldRegisterController) GetYieldRegisterList(c *gin.Context) {
+	var params request.GetYieldRegisterList
+	err := c.BindJSON(&params)
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		return
+	}
+	list, total, err := models.NewYieldRegisterSearch().SetPage(params.Page, params.PageSize).Find()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鏌ヨ澶辫触")
+		return
+	}
+	util.ResponseFormatList(c, code.Success, list, total)
+}
+
+// GetYieldRegisterInfo
+//
+//	@Tags		鐢熶骇绠$悊/浜ч噺鐧昏琛�
+//	@Summary	鑾峰彇浜ч噺鐧昏琛ㄨ鎯�
+//	@Produce	application/json
+//	@Param		object	body		request.GetYieldRegisterList	true	"鍙傛暟"
+//	@Success	200		{object}	util.Response{data=models.YieldRegister}		"鎴愬姛"
+//	@Router		/api-jl/v1/fineness/getYieldRegisterInfo [post]
+func (slf YieldRegisterController) GetYieldRegisterInfo(c *gin.Context) {
+	var params request.GetYieldRegisterList
+	err := c.BindJSON(&params)
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		return
+	}
+	register, err := models.NewYieldRegisterSearch().SetPreload(true).SetNumber(params.Number).First()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鏌ヨ澶辫触")
+		return
+	}
+	util.ResponseFormat(c, code.Success, register)
 }
diff --git a/models/db.go b/models/db.go
index f4b1266..0198c31 100644
--- a/models/db.go
+++ b/models/db.go
@@ -81,6 +81,9 @@
 		RawSilkPriceStandard{},
 		RawSilkRankStandard{},
 		WorkshopManage{},
+		YieldRegister{},
+		YieldRegisterItem{},
+		YieldRegisterCircle{},
 	)
 	return err
 }
diff --git a/models/raw_silk_price_standard.go b/models/raw_silk_price_standard.go
index b8390dd..d103af3 100644
--- a/models/raw_silk_price_standard.go
+++ b/models/raw_silk_price_standard.go
@@ -11,11 +11,11 @@
 type (
 	RawSilkPriceStandard struct {
 		gorm.Model
-		MarketNumber       string          `json:"marketNumber" gorm:"type:varchar(255);comment:搴勫彛缂栧彿"`
-		RawSilkGradeNumber string          `json:"rawSilkGradeNumber" gorm:"type:varchar(255);comment:鐢熶笣绛夌骇缂栧彿"`
-		PayStandard        decimal.Decimal `json:"payStandard" gorm:"type:decimal(20,3);comment:钖叕鏍囧噯"`
-		Unit               string          `json:"unit" gorm:"type:varchar(100);comment:鍗曚綅"`
-		Notes              string          `json:"notes" gorm:"type:varchar(255);comment:澶囨敞"`
+		MarketNumber string          `json:"marketNumber" gorm:"type:varchar(255);comment:搴勫彛缂栧彿"`
+		RawSilkGrade string          `json:"rawSilkGrade" gorm:"type:varchar(255);comment:鐢熶笣绛夌骇"`
+		PayStandard  decimal.Decimal `json:"payStandard" gorm:"type:decimal(20,3);comment:钖叕鏍囧噯"`
+		Unit         string          `json:"unit" gorm:"type:varchar(100);comment:鍗曚綅"`
+		Notes        string          `json:"notes" gorm:"type:varchar(255);comment:澶囨敞"`
 	}
 	RawSilkPriceStandardSearch struct {
 		RawSilkPriceStandard
@@ -97,7 +97,7 @@
 func (slf *RawSilkPriceStandardSearch) Save(record *RawSilkPriceStandard) error {
 	var db = slf.build()
 
-	if err := db.Save(record).Error; err != nil {
+	if err := db.Omit("CreatedAt").Save(record).Error; err != nil {
 		return fmt.Errorf("save err: %v, record: %+v", err, record)
 	}
 
diff --git a/models/workshop_manage.go b/models/workshop_manage.go
index f1bdc07..623308b 100644
--- a/models/workshop_manage.go
+++ b/models/workshop_manage.go
@@ -129,7 +129,7 @@
 func (slf *WorkshopManageSearch) Save(record *WorkshopManage) error {
 	var db = slf.build()
 
-	if err := db.Save(record).Error; err != nil {
+	if err := db.Omit("CreatedAt").Save(record).Error; err != nil {
 		return fmt.Errorf("save err: %v, record: %+v", err, record)
 	}
 
diff --git a/models/yield_register.go b/models/yield_register.go
index 421d2a8..c5ec8c7 100644
--- a/models/yield_register.go
+++ b/models/yield_register.go
@@ -36,8 +36,8 @@
 		TwoBack                 string                 `json:"twoBack" gorm:"type:varchar(255);comment:绗簩鍥�"`
 		ThreeBack               string                 `json:"threeBack" gorm:"type:varchar(255);comment:绗笁鍥�"`
 		Total                   decimal.Decimal        `json:"total" gorm:"type:decimal(12,2);comment:鎬讳骇閲�"`
-		Items                   []*YieldRegisterItem   `json:"items" gorm:"foreignKey:YieldRegisterId;references:Id"`
-		Circles                 []*YieldRegisterCircle `json:"circles" gorm:"foreignKey:YieldRegisterId;references:Id"`
+		Items                   []*YieldRegisterItem   `json:"items" gorm:"foreignKey:YieldRegisterId"`
+		Circles                 []*YieldRegisterCircle `json:"circles" gorm:"foreignKey:YieldRegisterId"`
 	}
 	YieldRegisterSearch struct {
 		YieldRegister
@@ -71,11 +71,20 @@
 	return slf
 }
 
+func (slf *YieldRegisterSearch) SetNumber(number string) *YieldRegisterSearch {
+	slf.Number = number
+	return slf
+}
+
 func (slf *YieldRegisterSearch) build() *gorm.DB {
 	db := slf.Orm.Table(slf.TableName())
 
 	if slf.Preload {
 		db = db.Model(YieldRegister{}).Preload("Items").Preload("Circles")
+	}
+
+	if slf.Number != "" {
+		db = db.Where("number = ?", slf.Number)
 	}
 
 	return db
@@ -91,6 +100,19 @@
 	return nil
 }
 
+func (slf *YieldRegisterSearch) First() (*YieldRegister, error) {
+	var (
+		record = new(YieldRegister)
+		db     = slf.build()
+	)
+
+	if err := db.First(record).Error; err != nil {
+		return record, err
+	}
+
+	return record, nil
+}
+
 func (slf *YieldRegisterSearch) Find() ([]*YieldRegister, int64, error) {
 	var (
 		records = make([]*YieldRegister, 0)
@@ -104,7 +126,7 @@
 	if slf.PageNum*slf.PageSize > 0 {
 		db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
 	}
-	if err := db.Find(&records).Error; err != nil {
+	if err := db.Order("updated_at desc").Find(&records).Error; err != nil {
 		return records, total, fmt.Errorf("find records err: %v", err)
 	}
 
@@ -127,7 +149,7 @@
 func (slf *YieldRegisterSearch) Save(record *YieldRegister) error {
 	var db = slf.build()
 
-	if err := db.Save(record).Error; err != nil {
+	if err := db.Omit("CreatedAt").Save(record).Error; err != nil {
 		return fmt.Errorf("save err: %v, record: %+v", err, record)
 	}
 
diff --git a/models/yield_register_circle.go b/models/yield_register_circle.go
index cdd036e..b55a990 100644
--- a/models/yield_register_circle.go
+++ b/models/yield_register_circle.go
@@ -11,7 +11,7 @@
 	//YieldRegisterCircle 浜ч噺鐧昏鍥炴暟鍏崇郴琛�
 	YieldRegisterCircle struct {
 		gorm.Model
-		YieldRegisterId uint            `json:"yieldRegisterId" gorm:"type:int(11);comment:浜ч噺鐧昏琛╥d"`
+		YieldRegisterId uint            `json:"yieldRegisterId" gorm:"type:int(11);not null;comment:浜ч噺鐧昏琛╥d"`
 		CarNumber       int             `json:"carNumber" gorm:"type:int(11);comment:杞﹀彿"`
 		Circle          int             `json:"circle" gorm:"type:int(11);comment:鍥炴暟"`
 		PieceNumber     int             `json:"pieceNumber" gorm:"type:int(11);comment:鐗囨暟"`
diff --git a/models/yield_register_item.go b/models/yield_register_item.go
index c948733..6232808 100644
--- a/models/yield_register_item.go
+++ b/models/yield_register_item.go
@@ -11,7 +11,7 @@
 	//YieldRegisterItem 浜ч噺鐧昏璇︽儏琛�
 	YieldRegisterItem struct {
 		gorm.Model
-		YieldRegisterId       uint            `json:"yieldRegisterId" gorm:"type:int(11);comment:浜ч噺鐧昏琛╥d"`
+		YieldRegisterId       uint            `json:"yieldRegisterId" gorm:"type:int(11);not null;comment:浜ч噺鐧昏琛╥d"`
 		CarNumber             int             `json:"carNumber"  gorm:"type:int(11);comment:杞﹀彿"`
 		OneYield              decimal.Decimal `json:"oneYield" gorm:"type:decimal(12,2);comment:鍙颁骇閲�"`
 		PeopleYield           decimal.Decimal `json:"peopleYield"  gorm:"type:decimal(12,2);comment:涓汉浜ч噺"`
diff --git a/router/router.go b/router/router.go
index a16a304..29cf8c3 100644
--- a/router/router.go
+++ b/router/router.go
@@ -39,8 +39,9 @@
 		systemApi.POST("savePriceStandard", rawSilkController.SavePriceStandard)           //淇濆瓨鐢熶笣瀹氫环鏍囧噯
 		systemApi.DELETE("deletePriceStandard/:id", rawSilkController.DeletePriceStandard) //鍒犻櫎鐢熶笣瀹氫环鏍囧噯
 		//鐢熶笣瀹氫环
-		systemApi.GET("getRankStandard", rawSilkController.GetRankStandard)    //鑾峰彇鐢熶笣瀹氱骇鏍囧噯
-		systemApi.POST("saveRankStandard", rawSilkController.SaveRankStandard) //淇濆瓨鐢熶笣瀹氱骇鏍囧噯
+		systemApi.GET("getRankStandard", rawSilkController.GetRankStandard)           //鑾峰彇鐢熶笣瀹氱骇鏍囧噯
+		systemApi.GET("getRankStandardGrade", rawSilkController.GetRankStandardGrade) //鑾峰彇鐢熶笣绛夌骇
+		systemApi.POST("saveRankStandard", rawSilkController.SaveRankStandard)        //淇濆瓨鐢熶笣瀹氱骇鏍囧噯
 		//杞﹂棿绠$悊
 		systemApi.GET("getWorkshopManageList", workshopController.GetWorkshopManageList)      //鑾峰彇杞﹂棿绠$悊鍒楄〃
 		systemApi.POST("saveWorkshopManage", workshopController.SaveWorkshopManage)           //淇濆瓨杞﹂棿绠$悊
@@ -49,6 +50,7 @@
 
 	// 鐢熶骇绠$悊
 	FinenessController := new(controllers.FinenessController)
+	yieldController := new(controllers.YieldRegisterController)
 	finenessApi := r.Group(urlPrefix + "/fineness")
 	{
 		finenessApi.GET("register", FinenessController.RegisterList)          // 鑾峰彇绾ゅ害鐧昏鍒楄〃
@@ -60,6 +62,10 @@
 		finenessApi.DELETE("check/:id", FinenessController.CheckDelete) // 鍒犻櫎绾ゅ害妫�楠�
 		finenessApi.PUT("check", FinenessController.CheckEdit)          // 淇敼绾ゅ害妫�楠�
 		finenessApi.GET("check/:id", FinenessController.CheckInfo)      // 鑾峰彇绾ゅ害妫�楠岃鎯�
+
+		finenessApi.POST("saveYieldRegister", yieldController.SaveYieldRegister)       // 淇濆瓨浜ч噺鐧昏琛�
+		finenessApi.POST("getYieldRegisterList", yieldController.GetYieldRegisterList) // 鑾峰彇浜ч噺鐧昏琛�
+		finenessApi.POST("getYieldRegisterInfo", yieldController.GetYieldRegisterInfo) // 鑾峰彇浜ч噺鐧昏琛ㄨ鎯�
 	}
 
 	return r

--
Gitblit v1.8.0