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(¶ms) 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(¶ms) + 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(¶ms) + 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