zhangqian
2024-07-31 155f70979af20ca520a55b89c6ec8cd46c43f8a5
models/material.go
@@ -80,7 +80,9 @@
      ReorderRuleNum          int64           `json:"reorderRuleNum"`
      MoreUnit                *bool           `json:"moreUnit" gorm:"type:tinyint(1);default:false;comment:启动多单位"`
      MoreUnitList            []UnitItems     `json:"moreUnitList" gorm:"-"`
      MoreUnitValue           string          `json:"-" gorm:"type:varchar(255);comment:多单位值"`
      MoreUnitValue           string          `json:"-" gorm:"type:varchar(255);comment:多单位值"` //多单位换算比例
      StockMoreUnitList       []UnitItems     `json:"-" gorm:"-"`                              //多单位存储的值
      StockMoreUnitValue      string          `json:"-" gorm:"type:varchar(512);comment:多单位值"` //多单位存储的值
      GrossWeight             decimal.Decimal `json:"grossWeight" gorm:"type:decimal(20,3);comment:毛重"`
      NetWeight               decimal.Decimal `json:"netWeight" gorm:"type:decimal(20,3);comment:净重"`
      GrossUnit               string          `json:"grossUnit" gorm:"type:varchar(255);comment:毛重单位"`
@@ -120,7 +122,7 @@
   }
   UnitItems struct {
      Amount   decimal.Decimal `json:"amount"`
      Amount   decimal.Decimal `json:"amount"` //在物料中为换算率(1辅单位=换算率*主单位),在明细或库存中为具体值
      Unit     string          `json:"unit"`
      Floating bool            `json:"floating"` //是否浮动利率
   }
@@ -164,12 +166,33 @@
      }
   }
   if len(slf.MoreUnitList) != 0 {
      str, err := json.Marshal(slf.MoreUnitList)
      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)
   }
   if len(slf.StockMoreUnitList) != 0 {
      items := make([]UnitItems, 0)
      for k, item := range slf.StockMoreUnitList {
         if item.Unit != "" && !item.Amount.IsZero() {
            items = append(items, slf.StockMoreUnitList[k])
         }
      }
      str, err := json.Marshal(items)
      if err != nil {
         return err
      }
      slf.StockMoreUnitValue = string(str)
   }
   return
}