zhangqian
2024-07-31 155f70979af20ca520a55b89c6ec8cd46c43f8a5
产品流水表增加多单位存储
2个文件已修改
36 ■■■■■ 已修改文件
models/move_history.go 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/move_history.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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()}
}
service/move_history.go
@@ -25,6 +25,7 @@
                FromLocation:      v.FromLocation.Name,
                ToLocationId:      v.ToLocationID,
                ToLocation:        v.ToLocation.Name,
                MoreUnitList:      v.MoreUnitList,
            }
            histories = append(histories, history)
        }