From 3e988d2b353efc784f07b2c8a470b3cd7d59d264 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期二, 09 四月 2024 09:56:12 +0800 Subject: [PATCH] 产量登记表 --- controllers/request/yield_register_request.go | 53 +++++++ models/yield_register.go | 145 ++++++++++++++++++++ models/workshop_manage.go | 12 + controllers/yield_register_controller.go | 28 ++++ models/yield_register_circle.go | 88 ++++++++++++ models/yield_register_item.go | 86 ++++++++++++ controllers/workshop_manage_controller.go | 2 7 files changed, 410 insertions(+), 4 deletions(-) diff --git a/controllers/request/yield_register_request.go b/controllers/request/yield_register_request.go new file mode 100644 index 0000000..31dd4f0 --- /dev/null +++ b/controllers/request/yield_register_request.go @@ -0,0 +1,53 @@ +package request + +import "github.com/shopspring/decimal" + +type YieldRegisterInfo struct { + Id uint `json:"id"` + Number string `json:"number"` //缂栧彿 + CreateTime string `json:"createTime"` //鍒涘缓鏃堕棿 + MarketId uint `json:"marketId"` //搴勫彛id + WorkshopId uint `json:"workshopId"` //杞﹂棿id + GroupNumber int `json:"groupNumber"` //缁勫埆 + Spec string `json:"spec"` //瑙勬牸 + JieZhuang string `json:"jieZhuang"` //鏄惁缁撳簞 + Level string `json:"level"` //绛夌骇 + Record decimal.Decimal `json:"record"` //鐢熶骇鐢ㄦ椂 + Circle int `json:"circle"` //鍥炴暟 + FallingSilkCocoonNumber decimal.Decimal `json:"fallingSilkCocoonNumber"` //钀戒笣鑼ф暟 + BucketCocoonNumber decimal.Decimal `json:"bucketCocoonNumber"` //姣忔《鑼ф暟 + VehicleSpeed decimal.Decimal `json:"vehicleSpeed"` //瀹炴椂杞﹂�� + TimeYi string `json:"timeYi"` //涔欑彮鏃堕棿 + TimeJia string `json:"timeJia"` //鐢茬彮鏃堕棿 + GroupReelingdiscount string `json:"groupReelingdiscount"` //杞︾粍缂姌 + FallingSilkBucketOne decimal.Decimal `json:"fallingSilkBucketOne"` //钀戒笣妗舵暟1 + FallingSilkBucketTwo decimal.Decimal `json:"fallingSilkBucketTwo"` //钀戒笣妗舵暟2 + FallingSilkBucketThree decimal.Decimal `json:"fallingSilkBucketThree"` //钀戒笣妗舵暟3 + TheorySilkAmount decimal.Decimal `json:"theorySilkAmount"` //鐞嗚涓濋噺 + HourYield decimal.Decimal `json:"hourYield"` //鍙版椂浜ч噺 + OneBack string `json:"oneBack"` //绗竴鍥� + TwoBack string `json:"twoBack"` //绗簩鍥� + ThreeBack string `json:"threeBack"` //绗笁鍥� + Total decimal.Decimal `json:"total"` //鎬讳骇閲� + ItemInfo []YieldRegisterItemInfo `json:"itemInfo"` + CircleInfo []YieldRegisterCircleInfo `json:"circleInfo"` +} + +type YieldRegisterItemInfo struct { + YieldRegisterId uint `json:"yieldRegisterId"` //浜ч噺鐧昏琛╥d + CarNumber int `json:"carNumber"` //杞﹀彿 + OneYield decimal.Decimal `json:"oneYield"` //鍙颁骇閲� + PeopleYield decimal.Decimal `json:"peopleYield"` //涓汉浜ч噺 + HourYield decimal.Decimal `json:"hourYield"` //鍙版椂浜ч噺 + PersonReelingdiscount string `json:"personReelingdiscount"` //涓汉缂姌 +} + +type YieldRegisterCircleInfo struct { + YieldRegisterId uint `json:"yieldRegisterId"` //浜ч噺鐧昏琛╥d + CarNumber int `json:"carNumber"` //杞﹀彿 + Circle int `json:"circle"` //鍥炴暟 + PieceNumber int `json:"pieceNumber"` //鐗囨暟 + AllYield decimal.Decimal `json:"allYield"` //浜ч噺 + OneYield decimal.Decimal `json:"oneYield"` //鍙颁骇 + Reelingdiscount string `json:"reelingdiscount"` //缂姌 +} diff --git a/controllers/workshop_manage_controller.go b/controllers/workshop_manage_controller.go index c1c85c2..b06c4d9 100644 --- a/controllers/workshop_manage_controller.go +++ b/controllers/workshop_manage_controller.go @@ -86,5 +86,5 @@ util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎澶辫触") return } - util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎鎴愬姛") + util.ResponseFormat(c, code.Success, "鍒犻櫎鎴愬姛") } diff --git a/controllers/yield_register_controller.go b/controllers/yield_register_controller.go new file mode 100644 index 0000000..2c8ff8e --- /dev/null +++ b/controllers/yield_register_controller.go @@ -0,0 +1,28 @@ +package controllers + +import ( + "github.com/gin-gonic/gin" + "silkserver/controllers/request" + "silkserver/extend/code" + "silkserver/extend/util" +) + +type YieldRegisterController struct { +} + +// SaveYieldRegister +// +// @Tags 鐢熶骇绠$悊/浜ч噺鐧昏琛� +// @Summary 淇濆瓨浜ч噺鐧昏琛� +// @Produce application/json +// @Param object body models.WorkshopManage true "鍙傛暟" +// @Success 200 {object} util.Response "鎴愬姛" +// @Router /api-jl/v1/system/saveYieldRegister [post] +func (slf WorkshopManageController) SaveYieldRegister(c *gin.Context) { + var params request.YieldRegisterInfo + err := c.BindJSON(¶ms) + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") + return + } +} diff --git a/models/workshop_manage.go b/models/workshop_manage.go index dc5166b..f1bdc07 100644 --- a/models/workshop_manage.go +++ b/models/workshop_manage.go @@ -13,8 +13,8 @@ gorm.Model WorkshopNumber string `json:"workshopNumber" gorm:"type:varchar(255);comment:杞﹂棿缂栧彿"` GroupNumber int `json:"groupNumber" gorm:"type:int(11);comment:缁勫埆"` - StartCarNumber int `json:"startCarNumber" gorm:"type:int(11);comment:缁勫埆"` - EndCarNumber int `json:"endCarNumber" gorm:"type:int(11);comment:缁勫埆"` + StartCarNumber int `json:"startCarNumber" gorm:"type:int(11);comment:寮�濮嬭溅鍙�"` + EndCarNumber int `json:"endCarNumber" gorm:"type:int(11);comment:缁撴潫杞﹀彿"` CarFlag constvar.CarFlag `json:"carFlag" gorm:"type:int(1);comment:鍗婅溅鏍囧織"` Notes string `json:"notes" gorm:"type:varchar(255);comment:澶囨敞"` } @@ -22,6 +22,7 @@ WorkshopManage PageNum int PageSize int + Order string Orm *gorm.DB } ) @@ -56,6 +57,11 @@ func (slf *WorkshopManageSearch) SetGroupNumber(groupNumber int) *WorkshopManageSearch { slf.GroupNumber = groupNumber + return slf +} + +func (slf *WorkshopManageSearch) SetOrder(order string) *WorkshopManageSearch { + slf.Order = order return slf } @@ -100,7 +106,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) } diff --git a/models/yield_register.go b/models/yield_register.go new file mode 100644 index 0000000..421d2a8 --- /dev/null +++ b/models/yield_register.go @@ -0,0 +1,145 @@ +package models + +import ( + "fmt" + "github.com/shopspring/decimal" + "gorm.io/gorm" + "silkserver/pkg/mysqlx" +) + +type ( + // YieldRegister 浜ч噺鐧昏琛� + YieldRegister struct { + gorm.Model + Number string `json:"number" gorm:"type:varchar(255);not null;comment:缂栧彿"` + CreateTime string `json:"createTime" gorm:"type:varchar(255);comment:鍒涘缓鏃堕棿"` + MarketId uint `json:"marketId" gorm:"type:int(11);comment:搴勫彛id"` + WorkshopId uint `json:"workshopId" gorm:"type:int(11);comment:杞﹂棿id"` + GroupNumber int `json:"groupNumber" gorm:"type:int(11);comment:缁勫埆"` + Spec string `json:"spec" gorm:"type:varchar(255);comment:瑙勬牸"` + JieZhuang string `json:"jieZhuang" gorm:"type:varchar(255);comment:鏄惁缁撳簞"` + Level string `json:"level" gorm:"type:varchar(255);comment:绛夌骇"` + Record decimal.Decimal `json:"record" gorm:"type:decimal(12,2);comment:鐢熶骇鐢ㄦ椂"` + Circle int `json:"circle" gorm:"type:int(11);comment:鍥炴暟"` + FallingSilkCocoonNumber decimal.Decimal `json:"fallingSilkCocoonNumber" gorm:"type:decimal(12,2);comment:钀戒笣鑼ф暟"` + BucketCocoonNumber decimal.Decimal `json:"bucketCocoonNumber" gorm:"type:decimal(12,2);comment:姣忔《鑼ф暟"` + VehicleSpeed decimal.Decimal `json:"vehicleSpeed" gorm:"type:decimal(12,2);comment:瀹炴椂杞﹂��"` + TimeYi string `json:"timeYi" gorm:"type:varchar(255);comment:涔欑彮鏃堕棿"` + TimeJia string `json:"timeJia" gorm:"type:varchar(255);comment:鐢茬彮鏃堕棿"` + GroupReelingdiscount string `json:"groupReelingdiscount" gorm:"type:varchar(255);comment:杞︾粍缂姌"` + FallingSilkBucketOne decimal.Decimal `json:"fallingSilkBucketOne" gorm:"type:decimal(12,2);comment:钀戒笣妗舵暟1"` + FallingSilkBucketTwo decimal.Decimal `json:"fallingSilkBucketTwo" gorm:"type:decimal(12,2);comment:钀戒笣妗舵暟2"` + FallingSilkBucketThree decimal.Decimal `json:"fallingSilkBucketThree" gorm:"type:decimal(12,2);comment:钀戒笣妗舵暟3"` + TheorySilkAmount decimal.Decimal `json:"theorySilkAmount" gorm:"type:decimal(12,2);comment:鐞嗚涓濋噺"` + HourYield decimal.Decimal `json:"hourYield" gorm:"type:decimal(12,2);comment:鍙版椂浜ч噺"` + OneBack string `json:"oneBack" gorm:"type:varchar(255);comment:绗竴鍥�"` + 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"` + } + YieldRegisterSearch struct { + YieldRegister + Orm *gorm.DB + PageNum int + PageSize int + Preload bool + } +) + +func (slf YieldRegister) TableName() string { + return "yield_register" +} + +func NewYieldRegisterSearch() *YieldRegisterSearch { + return &YieldRegisterSearch{Orm: mysqlx.GetDB()} +} + +func (slf *YieldRegisterSearch) SetOrm(tx *gorm.DB) *YieldRegisterSearch { + slf.Orm = tx + return slf +} + +func (slf *YieldRegisterSearch) SetPage(page, size int) *YieldRegisterSearch { + slf.PageNum, slf.PageSize = page, size + return slf +} + +func (slf *YieldRegisterSearch) SetPreload(preload bool) *YieldRegisterSearch { + slf.Preload = preload + 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") + } + + return db +} + +// Create 鍗曟潯鎻掑叆 +func (slf *YieldRegisterSearch) Create(record *YieldRegister) error { + db := slf.build() + err := db.Create(record).Error + if err != nil { + return fmt.Errorf("create err: %v, record: %+v", err, record) + } + return nil +} + +func (slf *YieldRegisterSearch) Find() ([]*YieldRegister, int64, error) { + var ( + records = make([]*YieldRegister, 0) + total int64 + db = slf.build() + ) + + if err := db.Count(&total).Error; err != nil { + return records, total, fmt.Errorf("find count err: %v", err) + } + 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 { + return records, total, fmt.Errorf("find records err: %v", err) + } + + return records, total, nil +} + +func (slf *YieldRegisterSearch) FindNotTotal() ([]*YieldRegister, error) { + var ( + records = make([]*YieldRegister, 0) + db = slf.build() + ) + + if err := db.Find(&records).Error; err != nil { + return records, fmt.Errorf("find records err: %v", err) + } + + return records, nil +} + +func (slf *YieldRegisterSearch) Save(record *YieldRegister) error { + var db = slf.build() + + if err := db.Save(record).Error; err != nil { + return fmt.Errorf("save err: %v, record: %+v", err, record) + } + + return nil +} + +func (slf *YieldRegisterSearch) Delete() error { + var db = slf.build() + + if err := db.Unscoped().Delete(&YieldRegister{}).Error; err != nil { + return err + } + + return nil +} diff --git a/models/yield_register_circle.go b/models/yield_register_circle.go new file mode 100644 index 0000000..cdd036e --- /dev/null +++ b/models/yield_register_circle.go @@ -0,0 +1,88 @@ +package models + +import ( + "fmt" + "github.com/shopspring/decimal" + "gorm.io/gorm" + "silkserver/pkg/mysqlx" +) + +type ( + //YieldRegisterCircle 浜ч噺鐧昏鍥炴暟鍏崇郴琛� + YieldRegisterCircle struct { + gorm.Model + YieldRegisterId uint `json:"yieldRegisterId" gorm:"type:int(11);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:鐗囨暟"` + Value decimal.Decimal `json:"value" gorm:"type:decimal(12,2);comment:鍊�"` + AllYield decimal.Decimal `json:"allYield" gorm:"type:decimal(12,2);comment:浜ч噺"` + OneYield decimal.Decimal `json:"oneYield" gorm:"type:decimal(12,2);comment:鍙颁骇"` + Reelingdiscount string `json:"reelingdiscount" gorm:"type:varchar(255);comment:缂姌"` + } + YieldRegisterCircleSearch struct { + YieldRegisterCircle + Orm *gorm.DB + } +) + +func (slf YieldRegisterCircle) TableName() string { + return "yield_register_circle" +} + +func NewYieldRegisterCircleSearch() *YieldRegisterCircleSearch { + return &YieldRegisterCircleSearch{Orm: mysqlx.GetDB()} +} + +func (slf *YieldRegisterCircleSearch) SetOrm(tx *gorm.DB) *YieldRegisterCircleSearch { + slf.Orm = tx + return slf +} + +func (slf *YieldRegisterCircleSearch) SetYieldRegisterId(id uint) *YieldRegisterCircleSearch { + slf.YieldRegisterId = id + return slf +} + +func (slf *YieldRegisterCircleSearch) build() *gorm.DB { + db := slf.Orm.Table(slf.TableName()) + + if slf.YieldRegisterId > 0 { + db = db.Where("yield_register_id = ?", slf.YieldRegisterId) + } + + return db +} + +// Create 鎵归噺鎻掑叆 +func (slf *YieldRegisterCircleSearch) Create(record []*YieldRegisterCircle) error { + db := slf.build() + err := db.Create(&record).Error + if err != nil { + return fmt.Errorf("create err: %v, record: %+v", err, record) + } + return nil +} + +func (slf *YieldRegisterCircleSearch) FindNotTotal() ([]*YieldRegisterCircle, error) { + var ( + records = make([]*YieldRegisterCircle, 0) + db = slf.build() + ) + + if err := db.Find(&records).Error; err != nil { + return records, fmt.Errorf("find records err: %v", err) + } + + return records, nil +} + +func (slf *YieldRegisterCircleSearch) Delete() error { + var db = slf.build() + + if err := db.Unscoped().Delete(&YieldRegisterCircle{}).Error; err != nil { + return err + } + + return nil +} diff --git a/models/yield_register_item.go b/models/yield_register_item.go new file mode 100644 index 0000000..c948733 --- /dev/null +++ b/models/yield_register_item.go @@ -0,0 +1,86 @@ +package models + +import ( + "fmt" + "github.com/shopspring/decimal" + "gorm.io/gorm" + "silkserver/pkg/mysqlx" +) + +type ( + //YieldRegisterItem 浜ч噺鐧昏璇︽儏琛� + YieldRegisterItem struct { + gorm.Model + YieldRegisterId uint `json:"yieldRegisterId" gorm:"type:int(11);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:涓汉浜ч噺"` + HourYield decimal.Decimal `json:"hourYield" gorm:"type:decimal(12,2);comment:鍙版椂浜ч噺"` + PersonReelingdiscount string `json:"personReelingdiscount" gorm:"type:varchar(255);comment:涓汉缂姌"` + } + YieldRegisterItemSearch struct { + YieldRegisterItem + Orm *gorm.DB + } +) + +func (slf YieldRegisterItem) TableName() string { + return "yield_register_item" +} + +func NewYieldRegisterItemSearch() *YieldRegisterItemSearch { + return &YieldRegisterItemSearch{Orm: mysqlx.GetDB()} +} + +func (slf *YieldRegisterItemSearch) SetOrm(tx *gorm.DB) *YieldRegisterItemSearch { + slf.Orm = tx + return slf +} + +func (slf *YieldRegisterItemSearch) SetYieldRegisterId(id uint) *YieldRegisterItemSearch { + slf.YieldRegisterId = id + return slf +} + +func (slf *YieldRegisterItemSearch) build() *gorm.DB { + db := slf.Orm.Table(slf.TableName()) + + if slf.YieldRegisterId > 0 { + db = db.Where("yield_register_id = ?", slf.YieldRegisterId) + } + + return db +} + +// Create 鎵归噺鎻掑叆 +func (slf *YieldRegisterItemSearch) Create(record []*YieldRegisterItem) error { + db := slf.build() + err := db.Create(&record).Error + if err != nil { + return fmt.Errorf("create err: %v, record: %+v", err, record) + } + return nil +} + +func (slf *YieldRegisterItemSearch) FindNotTotal() ([]*YieldRegisterItem, error) { + var ( + records = make([]*YieldRegisterItem, 0) + db = slf.build() + ) + + if err := db.Find(&records).Error; err != nil { + return records, fmt.Errorf("find records err: %v", err) + } + + return records, nil +} + +func (slf *YieldRegisterItemSearch) Delete() error { + var db = slf.build() + + if err := db.Unscoped().Delete(&YieldRegisterItem{}).Error; err != nil { + return err + } + + return nil +} -- Gitblit v1.8.0