yinbentan
2024-08-02 3032034d254fc15f06a1d4260f35c49f0ef1e12f
models/yield_register.go
@@ -14,7 +14,9 @@
      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"`
      MarketNumber            string                 `gorm:"size:255;comment:庄口" json:"marketNumber"` //庄口编号
      WorkshopId              uint                   `json:"workshopId" gorm:"type:int(11);comment:车间Id"`
      WorkshopNumber          string                 `json:"workshopNumber" gorm:"type:varchar(255);comment:车间编码"`
      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:是否结庄"`
@@ -30,14 +32,21 @@
      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"`
      SelectOne               bool                   `json:"selectOne" gorm:"type:int(1);comment:落丝桶数1选中"`
      SelectTwo               bool                   `json:"selectTwo" gorm:"type:int(1);comment:落丝桶数2选中"`
      SelectThree             bool                   `json:"selectThree" gorm:"type:int(1);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"`
      Items                   []*YieldRegisterItem   `json:"items" gorm:"foreignKey:YieldRegisterId"`
      Circles                 []*YieldRegisterCircle `json:"circles" gorm:"foreignKey:YieldRegisterId"`
      MarketName   string `json:"marketName" gorm:"-"`   //庄口名
      WorkshopName string `json:"workshopName" gorm:"-"` //车间名
   }
   YieldRegisterSearch struct {
      YieldRegister
@@ -49,7 +58,7 @@
)
func (slf YieldRegister) TableName() string {
   return "yield_register"
   return "silk_yield_register"
}
func NewYieldRegisterSearch() *YieldRegisterSearch {
@@ -71,6 +80,36 @@
   return slf
}
func (slf *YieldRegisterSearch) SetNumber(number string) *YieldRegisterSearch {
   slf.Number = number
   return slf
}
func (slf *YieldRegisterSearch) SetCreateTime(createTime string) *YieldRegisterSearch {
   slf.CreateTime = createTime
   return slf
}
func (slf *YieldRegisterSearch) SetMarketId(marketId uint) *YieldRegisterSearch {
   slf.MarketId = marketId
   return slf
}
func (slf *YieldRegisterSearch) SetWorkshopNumber(workshopNumber string) *YieldRegisterSearch {
   slf.WorkshopNumber = workshopNumber
   return slf
}
func (slf *YieldRegisterSearch) SetGroupNumber(groupNumber int) *YieldRegisterSearch {
   slf.GroupNumber = groupNumber
   return slf
}
func (slf *YieldRegisterSearch) SetSpec(spec string) *YieldRegisterSearch {
   slf.Spec = spec
   return slf
}
func (slf *YieldRegisterSearch) build() *gorm.DB {
   db := slf.Orm.Table(slf.TableName())
@@ -78,6 +117,29 @@
      db = db.Model(YieldRegister{}).Preload("Items").Preload("Circles")
   }
   if slf.Number != "" {
      db = db.Where("number = ?", slf.Number)
   }
   if slf.CreateTime != "" {
      db = db.Where("create_time = ?", slf.CreateTime)
   }
   if slf.WorkshopNumber != "" {
      db = db.Where("workshop_number = ?", slf.WorkshopNumber)
   }
   if slf.MarketId > 0 {
      db = db.Where("market_id = ?", slf.MarketId)
   }
   if slf.GroupNumber > 0 {
      db = db.Where("group_number = ?", slf.GroupNumber)
   }
   if slf.Spec != "" {
      db = db.Where("spec = ?", slf.Spec)
   }
   return db
}
@@ -89,6 +151,19 @@
      return fmt.Errorf("create err: %v, record: %+v", err, record)
   }
   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) {
@@ -104,7 +179,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 +202,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)
   }
@@ -143,3 +218,32 @@
   return nil
}
func (slf *YieldRegisterSearch) Count() (int64, error) {
   var (
      total int64
      db    = slf.build()
   )
   if err := db.Count(&total).Error; err != nil {
      return total, fmt.Errorf("find count err: %v", err)
   }
   return total, nil
}
func (slf *YieldRegisterSearch) MaxAutoIncr() (int, error) {
   type Result struct {
      Max int
   }
   var (
      result Result
      db     = slf.build()
   )
   err := db.Select("MAX(id) as max").Scan(&result).Error
   if err != nil {
      return result.Max, fmt.Errorf("max err: %v", err)
   }
   return result.Max, nil
}