jiangshuai
2023-10-26 be19d957b591ad27a47057929c4a8694f0776a1a
models/location_product_amount.go
@@ -12,8 +12,14 @@
   LocationProductAmount struct {
      WmsModel
      Id                int             `json:"id"  gorm:"column:id;primary_key;AUTO_INCREMENT"`
      LocationProductId int             `json:"locationProductId" gorm:"type:int;not null;comment:上架规则id"` //上架规则id
      LocationProduct   LocationProduct `json:"locationProduct" gorm:"foreignKey:LocationProductId;references:Id"`
      //LocationProductId int             `json:"locationProductId" gorm:"type:int;not null;comment:上架规则id"` //上架规则id
      //LocationProduct   LocationProduct `json:"locationProduct" gorm:"foreignKey:LocationProductId;references:Id"`
      LocationId        int             `json:"locationId" gorm:"type:int;not null;comment:位置id"` //位置id
      Location          Location        `json:"location" gorm:"foreignKey:LocationId;references:id"`
      ProductCategoryID int             `json:"productCategoryId" gorm:"type:int;not null;comment:产品种类id"` //产品种类id
      ProductCategory   ProductCategory `json:"productCategory"`
      ProductId         string          `json:"productId" gorm:"type:varchar(191);not null;comment:产品id"` //产品id
      Product           Material        `json:"product" gorm:"foreignKey:ProductId;references:ID"`
      Amount            decimal.Decimal `json:"amount" gorm:"type:decimal(20,2);not null;comment:库存数量"` //库存数量
      CreateDate        string          `json:"createDate" gorm:"type:varchar(63);comment:日期"`          //日期
   }
@@ -26,7 +32,8 @@
      Keyword            string
      Orm                *gorm.DB
      Preload            bool
      LocationProductIds []int
      //LocationProductIds []int
      LocationIds []int
   }
   LocationProductAmountWithOperation struct {
@@ -85,13 +92,23 @@
   return slf
}
func (slf *LocationProductAmountSearch) SetLocationProductId(id int) *LocationProductAmountSearch {
   slf.LocationProductId = id
func (slf *LocationProductAmountSearch) SetProductId(productId string) *LocationProductAmountSearch {
   slf.ProductId = productId
   return slf
}
func (slf *LocationProductAmountSearch) SetLocationProductIds(ids []int) *LocationProductAmountSearch {
   slf.LocationProductIds = ids
func (slf *LocationProductAmountSearch) SetLocationId(locationId int) *LocationProductAmountSearch {
   slf.LocationId = locationId
   return slf
}
//func (slf *LocationProductAmountSearch) SetLocationProductIds(ids []int) *LocationProductAmountSearch {
//   slf.LocationProductIds = ids
//   return slf
//}
func (slf *LocationProductAmountSearch) SetLocationIds(ids []int) *LocationProductAmountSearch {
   slf.LocationIds = ids
   return slf
}
@@ -110,13 +127,25 @@
   }
   if slf.Preload {
      db = db.Model(&LocationProductAmount{}).Preload("LocationProduct").Preload("LocationProduct.Location").Preload("LocationProduct.Product")
      db = db.Model(&LocationProductAmount{}).Preload("Location").Preload("Product").Preload("ProductCategory")
   }
   if slf.LocationProductId != 0 {
      db = db.Where("location_product_id=?", slf.LocationProductId)
   //if slf.LocationProductId != 0 {
   //   db = db.Where("location_product_id=?", slf.LocationProductId)
   //}
   //if len(slf.LocationProductIds) > 0 {
   //   db = db.Where("location_product_id in (?)", slf.LocationProductIds)
   //}
   if len(slf.LocationIds) > 0 {
      db = db.Where("location_id in (?)", slf.LocationIds)
   }
   if len(slf.LocationProductIds) > 0 {
      db = db.Where("location_product_id in (?)", slf.LocationProductIds)
   if slf.LocationId != 0 {
      db = db.Where("location_id = ?", slf.LocationId)
   }
   if slf.ProductId != "" {
      db = db.Where("product_id=?", slf.ProductId)
   }
   return db
@@ -204,3 +233,12 @@
   return records, nil
}
func (slf *LocationProductAmountSearch) FirstRes() (*LocationProductAmount, *gorm.DB) {
   var (
      record = new(LocationProductAmount)
      db     = slf.build()
   )
   return record, db.First(&record)
}