jiangshuai
2023-09-20 6becb6b281b34e17197a25af86acd35628e88811
models/location.go
@@ -12,15 +12,15 @@
   Location struct {
      WmsModel
      Id                int                   `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
      Name              string                `json:"name" gorm:"index;type:varchar(255);not null;comment:位置名称"`     //位置名称
      ParentId          int                   `json:"parentId" gorm:"type:int;not null"`                             //上级id
      CompanyId         int                   `json:"companyId" gorm:"type:int;not null"`                            //公司id
      Company           Company               `json:"company" gorm:"foreignKey:CompanyId"`                           //公司
      Type              constvar.LocationType `json:"type" gorm:"type:int(11);not null;comment:位置类型"`                //位置类型
      CountFrequency    int                   `json:"countFrequency" gorm:"type:tinyint;not null;comment:盘点频率(天)"`   //盘点频率(天)
      IsScrapLocation   bool                  `json:"isScrapLocation" gorm:"type:tinyint;not null;comment:是否报废位置"`   //是否报废位置
      IsReturnLocation  bool                  `json:"isReturnLocation" gorm:"type:tinyint;not null;comment:是否退货位置"`  //是否退货位置
      ReplenishLocation bool                  `json:"replenishLocation" gorm:"type:tinyint;not null;comment:是否补充位置"` //是否补充位置
      Name              string                `json:"name" gorm:"index;type:varchar(255);not null;comment:位置名称"` //位置名称
      ParentId          string                `json:"parentId" gorm:"type:varchar(255)"`                         //上级id
      CompanyId         int                   `json:"companyId" gorm:"type:int"`                                 //公司id
      Company           Company               `json:"company" gorm:"foreignKey:CompanyId"`                       //公司
      Type              constvar.LocationType `json:"type" gorm:"type:int(11);comment:位置类型"`                     //位置类型
      CountFrequency    int                   `json:"countFrequency" gorm:"type:tinyint;comment:盘点频率(天)"`        //盘点频率(天)
      IsScrapLocation   bool                  `json:"isScrapLocation" gorm:"type:tinyint;comment:是否报废位置"`        //是否报废位置
      IsReturnLocation  bool                  `json:"isReturnLocation" gorm:"type:tinyint;comment:是否退货位置"`       //是否退货位置
      ReplenishLocation bool                  `json:"replenishLocation" gorm:"type:tinyint;comment:是否补充位置"`      //是否补充位置
   }
   LocationSearch struct {
@@ -31,6 +31,7 @@
      Keyword  string
      Orm      *gorm.DB
      Preload  bool
      Parents  []string
   }
)
@@ -57,8 +58,12 @@
   return slf
}
func (slf *LocationSearch) SetID(id uint) *LocationSearch {
   slf.ID = id
func (slf *LocationSearch) SetID(id int) *LocationSearch {
   slf.Id = id
   return slf
}
func (slf *LocationSearch) SetParents(ids []string) *LocationSearch {
   slf.Parents = ids
   return slf
}
@@ -82,7 +87,7 @@
   return slf
}
func (slf *LocationSearch) SetParentId(parentId int) *LocationSearch {
func (slf *LocationSearch) SetParentId(parentId string) *LocationSearch {
   slf.ParentId = parentId
   return slf
}
@@ -93,10 +98,10 @@
}
func (slf *LocationSearch) build() *gorm.DB {
   var db = slf.Orm.Model(&Location{})
   var db = slf.Orm.Table(slf.TableName())
   if slf.ID != 0 {
      db = db.Where("id = ?", slf.ID)
   if slf.Id != 0 {
      db = db.Where("id = ?", slf.Id)
   }
   if slf.Order != "" {
@@ -115,11 +120,14 @@
      db = db.Where("type=?", slf.Type)
   }
   if slf.ParentId != 0 {
   if slf.ParentId != "" {
      db = db.Where("parent_id=?", slf.ParentId)
   }
   if slf.CompanyId != 0 {
      db = db.Where("company_id=?", slf.CompanyId)
   }
   if len(slf.Parents) != 0 {
      db = db.Where("parent_id in (?)", slf.Parents)
   }
   return db
@@ -134,6 +142,16 @@
   }
   return nil
}
func (slf *LocationSearch) CreateReturnId(record *Location) (int, error) {
   var db = slf.build()
   if err := db.Create(record).Error; err != nil {
      return 0, err
   }
   return record.Id, nil
}
// CreateBatch 批量插入
@@ -183,7 +201,7 @@
func (slf *LocationSearch) Delete() error {
   var db = slf.build()
   return db.Delete(&Location{}).Error
   return db.Unscoped().Delete(&Location{}).Error
}
func (slf *LocationSearch) First() (*Location, error) {
@@ -278,7 +296,9 @@
      records = make([]*Location, 0)
      db      = slf.build()
   )
   if err := db.Find(&records); err != nil {
   err := db.Find(&records)
   if err != nil {
      fmt.Println(err)
      return records, fmt.Errorf("func FindAll err: %v", err)
   }
   return records, nil