| | |
| | | OperationTypeId int `json:"operationTypeId" gorm:"type:int;not null;comment:作业类型id"` //作业类型id |
| | | OperationTypeName string `json:"operationTypeName" gorm:"type:varchar(127);comment:作业类型名称"` //作业类型名称 |
| | | Status constvar.OperationStatus `json:"status" gorm:"type:int(11);not null;comment:状态"` //状态 |
| | | //FromLocationID int `json:"fromLocationId" gorm:"type:int;not null;comment:源位置id"` //源位置id |
| | | //FromLocation Location `json:"fromLocation" gorm:"foreignKey:FromLocationID;references:Id"` //源位置 |
| | | //ToLocationID int `json:"toLocationId" gorm:"type:int;not null;comment:目标位置id"` //目标位置id |
| | | //ToLocation Location `json:"toLocation" gorm:"foreignKey:ToLocationID;references:Id"` //目标位置 |
| | | OperationDate string `json:"operationDate" gorm:"type:varchar(31);comment:安排日期"` |
| | | ContacterID int `json:"contacterID" gorm:"type:int;comment:联系人ID"` |
| | | ContacterName string `json:"contacterName" gorm:"type:varchar(63);comment:联系人姓名"` |
| | |
| | | Custodian string `json:"custodian" gorm:"type:varchar(255);comment:保管员名称"` |
| | | CreatedBy string `json:"createBy" gorm:"type:varchar(255);comment:创建者UserId"` |
| | | CheckedBy string `json:"checkedBy" gorm:"type:varchar(255);comment:验证者UserId"` |
| | | Remark string `json:"remark" gorm:"-"` |
| | | Remark string `json:"remark"` |
| | | |
| | | IsInternalOutput bool `json:"isInternalOutput"` //是否调拨产生的出库 |
| | | WarehouseId int `json:"warehouseId" gorm:"type:int;not null;default:0;comment:仓库id"` |
| | | Warehouse Warehouse `json:"warehouse" gorm:"foreignKey:WarehouseId"` |
| | | IsInternalOutput bool `json:"isInternalOutput"` //是否调拨产生的出库 |
| | | DealerType string `json:"dealerType" gorm:"type:varchar(255);comment:调拨出入库类型"` |
| | | } |
| | | |
| | | OperationSearch struct { |
| | | Operation |
| | | Order string |
| | | PageNum int |
| | | PageSize int |
| | | Keyword string |
| | | Orm *gorm.DB |
| | | Preload bool |
| | | Disuse bool |
| | | Ids []int |
| | | SourceNumbers []string |
| | | SalesDetailsNumbers []string |
| | | Fields string |
| | | BeginTime time.Time |
| | | EndTime time.Time |
| | | Order string |
| | | PageNum int |
| | | PageSize int |
| | | Keyword string |
| | | Orm *gorm.DB |
| | | Preload bool |
| | | Disuse bool |
| | | Ids []int |
| | | SourceNumbers []string |
| | | SalesDetailsNumbers []string |
| | | Fields string |
| | | BeginTime time.Time |
| | | EndTime time.Time |
| | | InventoryDealerTypeIds []int // |
| | | } |
| | | ) |
| | | |
| | |
| | | |
| | | func NewOperationSearch() *OperationSearch { |
| | | return &OperationSearch{Orm: mysqlx.GetDB()} |
| | | } |
| | | |
| | | func (slf *OperationSearch) BeforeCreate(tx *gorm.DB) { |
| | | for k := range slf.Details { |
| | | slf.Details[k].BaseOperationType = slf.BaseOperationType |
| | | slf.Details[k].DealerType = slf.DealerType |
| | | } |
| | | } |
| | | |
| | | func (slf *OperationSearch) SetOrm(tx *gorm.DB) *OperationSearch { |
| | |
| | | return slf |
| | | } |
| | | |
| | | func (slf *OperationSearch) SetInventoryDealerTypeIds(inventoryDealerTypeArr []int) *OperationSearch { |
| | | slf.InventoryDealerTypeIds = inventoryDealerTypeArr |
| | | return slf |
| | | } |
| | | |
| | | func (slf *OperationSearch) SetWarehouseId(warehouseId int) *OperationSearch { |
| | | slf.WarehouseId = warehouseId |
| | | return slf |
| | | } |
| | | |
| | | func (slf *OperationSearch) build() *gorm.DB { |
| | | var db = slf.Orm.Model(&Operation{}) |
| | | |
| | |
| | | } |
| | | |
| | | if slf.Preload { |
| | | db = db.Model(&Operation{}).Preload("Details").Preload("Details.Product").Preload("LogisticCompany").Preload("Location").Preload("ToLocation").Preload("Details.FromLocation").Preload("Details.ToLocation") |
| | | db = db.Model(&Operation{}).Preload("Details"). |
| | | Preload("Details.Product"). |
| | | Preload("LogisticCompany"). |
| | | Preload("Location"). |
| | | Preload("ToLocation"). |
| | | Preload("Details.FromLocation"). |
| | | Preload("Details.ToLocation").Preload("Warehouse") |
| | | } |
| | | |
| | | if slf.Disuse { |
| | |
| | | if !slf.BeginTime.IsZero() && !slf.EndTime.IsZero() { |
| | | db = db.Where("created_at between ? and ?", slf.BeginTime, slf.EndTime) |
| | | } |
| | | |
| | | if len(slf.InventoryDealerTypeIds) > 0 { |
| | | db = db.Where("inventory_dealer_type in (?)", slf.InventoryDealerTypeIds) |
| | | } |
| | | |
| | | if slf.WarehouseId != 0 { |
| | | db = db.Where("warehouse_id = ?", slf.WarehouseId) |
| | | } |
| | | |
| | | return db |
| | | } |
| | | |