jiangshuai
2024-02-06 6712c63bce309ab3a7642b48595b8ff136cf3847
models/material.go
@@ -59,7 +59,7 @@
      ControlStrategy     constvar.InvoicingStrategy `gorm:"type:int(11);comment:控制策略" json:"controlStrategy"`             //控制策略
      BuyExplain          string                     `gorm:"type:varchar(512);comment:采购说明" json:"buyExplain"`             //采购说明
      Principal           string                     `gorm:"type:varchar(255);comment:负责人" json:"principal"`               //负责人
      Weight              decimal.Decimal            `gorm:"type:decimal(20,2);comment:重量" json:"weight"`                  //重量
      Weight              decimal.Decimal            `gorm:"type:decimal(20,3);comment:重量" json:"weight"`                  //重量
      Volume              decimal.Decimal            `gorm:"type:decimal(20,2);comment:体积" json:"volume"`                  //体积
      MakeAdvanceTime     decimal.Decimal            `gorm:"type:decimal(20,2);comment:制造前置时间" json:"makeAdvanceTime"`     //制造前置时间(天)
      OrderAdvanceTime    decimal.Decimal            `gorm:"type:decimal(20,2);comment:订单准备天数" json:"orderAdvanceTime"`    //订单准备天数(天)
@@ -67,17 +67,22 @@
      //HSCode                  string                     `gorm:"type:varchar(255);comment:HS编码" json:"HSCode"`                    //HS编码
      //OriginCountryId         int                        `gorm:"type:int(11);comment:原产地id" json:"originCountryId"`               //原产地id
      //OriginCountryName       string                     `gorm:"type:varchar(255);comment:原产地名称" json:"originCountryName"`        //原产地名称
      InStorageExplain        string          `gorm:"type:varchar(512);comment:入库说明" json:"inStorageExplain"`          //入库说明
      OutStorageExplain       string          `gorm:"type:varchar(512);comment:出库说明" json:"outStorageExplain"`         //出库说明
      InternalTransferExplain string          `gorm:"type:varchar(512);comment:内部调拨说明" json:"internalTransferExplain"` //内部调拨说明
      AttachmentList          []*Attachment   `json:"attachmentList" gorm:"many2many:material_attachment"`
      AttachmentIDs           []uint          `json:"attachmentIDs" gorm:"-"`
      PredictionAmount        decimal.Decimal `json:"predictionAmount" gorm:"-"`
      InputAmount             decimal.Decimal `json:"inputAmount" gorm:"-"`
      OutputAmount            decimal.Decimal `json:"outputAmount" gorm:"-"`
      MinInventoryRule        decimal.Decimal `json:"minInventoryRule" gorm:"-"` //最小库存
      MaxInventoryRule        decimal.Decimal `json:"maxInventoryRule" gorm:"-"` //最大库存
      ReorderRuleNum          int64           `json:"reorderRuleNum"`
      InStorageExplain        string        `gorm:"type:varchar(512);comment:入库说明" json:"inStorageExplain"`          //入库说明
      OutStorageExplain       string        `gorm:"type:varchar(512);comment:出库说明" json:"outStorageExplain"`         //出库说明
      InternalTransferExplain string        `gorm:"type:varchar(512);comment:内部调拨说明" json:"internalTransferExplain"` //内部调拨说明
      AttachmentList          []*Attachment `json:"attachmentList" gorm:"many2many:material_attachment"`
      IsStorage               int           `gorm:"type:tinyint(1);default:1;comment:是否存库(1是2否)" json:"isStorage"`   //无库存的在wms以及srm中需要过滤掉
      IsVirtual               int           `json:"isVirtual" gorm:"type:tinyint(1);default:2;comment:是否虚拟物料(1是2否)"` //虚拟物料在MRP计算时跳过该层级直接领用下级物料,虚拟物料不生成工单
      ReorderRuleNum          int64         `json:"reorderRuleNum"`
      //以下为不存库的字段
      AttachmentIDs    []uint          `json:"attachmentIDs" gorm:"-"`
      PredictionAmount decimal.Decimal `json:"predictionAmount" gorm:"-"`
      InputAmount      decimal.Decimal `json:"inputAmount" gorm:"-"`
      OutputAmount     decimal.Decimal `json:"outputAmount" gorm:"-"`
      MinInventoryRule decimal.Decimal `json:"minInventoryRule" gorm:"-"` //最小库存
      MaxInventoryRule decimal.Decimal `json:"maxInventoryRule" gorm:"-"` //最大库存
   }
   MaterialSearch struct {
@@ -105,7 +110,7 @@
}
func NewMaterialSearch() *MaterialSearch {
   return &MaterialSearch{Orm: mysqlx.GetDB()}
   return &MaterialSearch{Orm: mysqlx.GetDB().Where("is_storage = ?", 1)} //只查询有库存的
}
func (slf *MaterialSearch) SetOrm(tx *gorm.DB) *MaterialSearch {