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