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);not null;comment:产量登记表id"` 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 YieldRegisterIds []uint Order string Orm *gorm.DB } ) func (slf YieldRegisterCircle) TableName() string { return "silk_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) SetYieldRegisterIds(ids []uint) *YieldRegisterCircleSearch { slf.YieldRegisterIds = ids return slf } func (slf *YieldRegisterCircleSearch) SetOrder(order string) *YieldRegisterCircleSearch { slf.Order = order 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) } if len(slf.YieldRegisterIds) > 0 { db = db.Where("yield_register_id in ?", slf.YieldRegisterIds) } if slf.Order != "" { db = db.Order(slf.Order) } 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.Order("car_number").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 }