From 6da8ee2f471792e9bd21839b99c9dc925c76242e Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期一, 11 三月 2024 13:48:43 +0800 Subject: [PATCH] 保存生丝定级标准 --- models/raw_silk_rank_standard.go | 16 +++++++- controllers/request/system_set.go | 26 ++++++++++++ controllers/response/raw_silk_standard.go | 1 controllers/raw_silk_standard.go | 61 ++++++++++++++++++++++++++++++ router/router.go | 3 + 5 files changed, 103 insertions(+), 4 deletions(-) diff --git a/controllers/raw_silk_standard.go b/controllers/raw_silk_standard.go index 823619c..7659034 100644 --- a/controllers/raw_silk_standard.go +++ b/controllers/raw_silk_standard.go @@ -2,11 +2,13 @@ import ( "github.com/gin-gonic/gin" + "gorm.io/gorm" "silkserver/controllers/request" "silkserver/controllers/response" "silkserver/extend/code" "silkserver/extend/util" "silkserver/models" + "silkserver/pkg/snowflake" "strconv" ) @@ -108,6 +110,7 @@ var dr response.DynamicsRank dr.RankName = standard.RankName dr.RankValue = standard.RankValue + dr.RankProp = standard.RankProp rankStandard, ok := m[standard.LineId] if !ok { rankStandard.LineId = standard.LineId @@ -127,3 +130,61 @@ } util.ResponseFormat(c, code.Success, data) } + +// SaveRankStandard +// +// @Tags 绯荤粺璁剧疆/鐢熶笣瀹氱骇鏍囧噯 +// @Summary 淇濆瓨鐢熶笣瀹氱骇鏍囧噯 +// @Produce application/json +// @Param object body request.SaveRankStandard true "鍙傛暟" +// @Success 200 {object} util.Response "鎴愬姛" +// @Router /api-jl/v1/system/saveRankStandard [post] +func (slf RawSilkStandardController) SaveRankStandard(c *gin.Context) { + var rankStandard request.SaveRankStandard + err := c.BindJSON(&rankStandard) + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") + return + } + batch := make([]*models.RawSilkRankStandard, 0) + for _, standard := range rankStandard.RankStandard { + var rank models.RawSilkRankStandard + if standard.LineId == "" { + rank.LineId = snowflake.GenerateIdStr() + } else { + rank.LineId = standard.LineId + } + rank.CheckItem = standard.CheckItem + rank.StartFineness = standard.StartFineness + rank.EndFineness = standard.EndFineness + rank.RankA = standard.RankA + rank.RankB = standard.RankB + rank.RankC = standard.RankC + for _, dynamicsRank := range standard.DynamicsRanks { + rs := rank + rs.RankProp = dynamicsRank.RankProp + rs.RankName = dynamicsRank.RankName + rs.RankValue = dynamicsRank.RankValue + batch = append(batch, &rs) + } + } + + err = models.WithTransaction(func(db *gorm.DB) error { + err = models.NewRawSilkRankStandardSearch().SetOrm(db).DeleteAll() + if err != nil { + return err + } + if len(batch) > 0 { + err = models.NewRawSilkRankStandardSearch().SetOrm(db).CreateBatch(batch) + if err != nil { + return err + } + } + return nil + }) + if err != nil { + util.ResponseFormat(c, code.SaveFail, "淇濆瓨澶辫触") + return + } + util.ResponseFormat(c, code.Success, "淇濆瓨鎴愬姛") +} diff --git a/controllers/request/system_set.go b/controllers/request/system_set.go index c87cd33..c7cb7d3 100644 --- a/controllers/request/system_set.go +++ b/controllers/request/system_set.go @@ -1,6 +1,9 @@ package request -import "silkserver/constvar" +import ( + "github.com/shopspring/decimal" + "silkserver/constvar" +) type GetDictList struct { PageInfo @@ -25,6 +28,27 @@ KeyWord string `json:"keyWord"` } +type SaveRankStandard struct { + RankStandard []RankStandard `json:"rankStandard"` +} + +type RankStandard struct { + LineId string `json:"lineId"` //琛宨d + CheckItem constvar.CheckItem `json:"checkItem"` //妫�鏌ラ」鐩悕绉� + StartFineness decimal.Decimal `json:"startFineness"` //寮�濮嬬氦搴� + EndFineness decimal.Decimal `json:"endFineness"` //缁撴潫绾ゅ害 + RankA decimal.Decimal `json:"rankA"` //閲庣氦 + RankB decimal.Decimal `json:"rankB"` //澶ч噹 + RankC decimal.Decimal `json:"rankC"` //鐗归噹 + DynamicsRanks []DynamicsRank `json:"dynamicsRanks"` +} + +type DynamicsRank struct { + RankProp string `json:"rankProp"` //鍓嶇紑key + RankName string `json:"rankName"` //绛夌骇鍚嶇О + RankValue decimal.Decimal `json:"rankValue"` //绛夌骇鍊� +} + // ---------------------------------------杞﹂棿--------------------------------- type GetWorkshopManage struct { PageInfo diff --git a/controllers/response/raw_silk_standard.go b/controllers/response/raw_silk_standard.go index b9bb7db..4c6890e 100644 --- a/controllers/response/raw_silk_standard.go +++ b/controllers/response/raw_silk_standard.go @@ -17,6 +17,7 @@ } type DynamicsRank struct { + RankProp string `json:"rankProp"` //鍓嶇紑key RankName string `json:"rankName"` //绛夌骇鍚嶇О RankValue decimal.Decimal `json:"rankValue"` //绛夌骇鍊� } diff --git a/models/raw_silk_rank_standard.go b/models/raw_silk_rank_standard.go index fdc2770..4ecf2e3 100644 --- a/models/raw_silk_rank_standard.go +++ b/models/raw_silk_rank_standard.go @@ -19,6 +19,7 @@ RankA decimal.Decimal `json:"rankA" gorm:"type:decimal(20,4);comment:閲庣氦"` RankB decimal.Decimal `json:"rankB" gorm:"type:decimal(20,4);comment:澶ч噹"` RankC decimal.Decimal `json:"rankC" gorm:"type:decimal(20,4);comment:鐗归噹"` + RankProp string `json:"rankProp" gorm:"type:varchar(255);comment:鍓嶇紑key"` RankName string `json:"rankName" gorm:"type:varchar(255);comment:绛夌骇鍚嶇О"` RankValue decimal.Decimal `json:"rankValue" gorm:"type:decimal(20,4);comment:绛夌骇鍊�"` } @@ -68,6 +69,17 @@ return nil } +// CreateBatch 鎵归噺鎻掑叆 +func (slf *RawSilkRankStandardSearch) CreateBatch(records []*RawSilkRankStandard) error { + var db = slf.build() + + if err := db.Create(&records).Error; err != nil { + return fmt.Errorf("create batch err: %v, records: %+v", err, records) + } + + return nil +} + func (slf *RawSilkRankStandardSearch) FindNotTotal() ([]*RawSilkRankStandard, error) { var ( records = make([]*RawSilkRankStandard, 0) @@ -91,10 +103,10 @@ return nil } -func (slf *RawSilkRankStandardSearch) Delete() error { +func (slf *RawSilkRankStandardSearch) DeleteAll() error { var db = slf.build() - if err := db.Unscoped().Delete(&RawSilkRankStandard{}).Error; err != nil { + if err := db.Where("1=1").Delete(&RawSilkRankStandard{}).Error; err != nil { return err } diff --git a/router/router.go b/router/router.go index 3201fc2..8e8214f 100644 --- a/router/router.go +++ b/router/router.go @@ -39,7 +39,8 @@ systemApi.POST("savePriceStandard", rawSilkController.SavePriceStandard) //淇濆瓨鐢熶笣瀹氫环鏍囧噯 systemApi.DELETE("deletePriceStandard/:id", rawSilkController.DeletePriceStandard) //鍒犻櫎鐢熶笣瀹氫环鏍囧噯 //鐢熶笣瀹氫环 - systemApi.GET("getRankStandard", rawSilkController.GetRankStandard) + systemApi.GET("getRankStandard", rawSilkController.GetRankStandard) //鑾峰彇鐢熶笣瀹氱骇鏍囧噯 + systemApi.POST("saveRankStandard", rawSilkController.SaveRankStandard) //淇濆瓨鐢熶笣瀹氱骇鏍囧噯 //杞﹂棿绠$悊 systemApi.GET("getWorkshopManageList", workshopController.GetWorkshopManageList) //鑾峰彇杞﹂棿绠$悊鍒楄〃 systemApi.POST("saveWorkshopManage", workshopController.SaveWorkshopManage) //淇濆瓨杞﹂棿绠$悊 -- Gitblit v1.8.0