zhangqian
2024-07-31 155f70979af20ca520a55b89c6ec8cd46c43f8a5
models/move_history.go
@@ -1,6 +1,7 @@
package models
import (
   "encoding/json"
   "fmt"
   "github.com/shopspring/decimal"
   "gorm.io/gorm"
@@ -29,6 +30,9 @@
      ToLocationId      int                        `json:"toLocationId"  gorm:"type:int;not null;comment:目标位置id"`              //目标位置id
      ToLocation        string                     `json:"toLocation"    gorm:"type:varchar(255);not null;comment:目标位置"`       //目标位置
      Operator          string                     `json:"operator"    gorm:"type:varchar(255);not null;comment:操作者"`          //操作者
      MoreUnitList  []UnitItems `json:"moreUnitList" gorm:"-"`
      MoreUnitValue string      `json:"-" gorm:"type:varchar(255);comment:多单位值"`
   }
   MoveHistorySearch struct {
@@ -46,6 +50,37 @@
   return "wms_move_history"
}
func (slf *MoveHistory) AfterFind(tx *gorm.DB) (err error) {
   if slf.MoreUnitValue != "" {
      var arr []UnitItems
      err := json.Unmarshal([]byte(slf.MoreUnitValue), &arr)
      if err != nil {
         return err
      }
      slf.MoreUnitList = arr
   }
   return
}
func (slf *MoveHistory) BeforeCreate(tx *gorm.DB) (err error) {
   if len(slf.MoreUnitList) != 0 {
      items := make([]UnitItems, 0)
      for k, item := range slf.MoreUnitList {
         if item.Unit != "" && !item.Amount.IsZero() {
            items = append(items, slf.MoreUnitList[k])
         }
      }
      str, err := json.Marshal(items)
      if err != nil {
         return err
      }
      slf.MoreUnitValue = string(str)
   }
   return
}
func NewMoveHistorySearch() *MoveHistorySearch {
   return &MoveHistorySearch{Orm: mysqlx.GetDB()}
}