Documentation ¶
Index ¶
- func AddBag(ctx context.Context, bag *Bag) error
- func AddContainer(ctx context.Context, c *Container) error
- func AddShelf(ctx context.Context, s *Shelf, initContainers bool) error
- func BlockContainer(ctx context.Context, c *Container) error
- func BlockShelf(ctx context.Context, s *Shelf) error
- func DeleteBag(ctx context.Context, bag *Bag) error
- func DeleteContainer(ctx context.Context, c *Container) error
- func DeleteShelf(ctx context.Context, s *Shelf) error
- func UnblockContainer(ctx context.Context, c *Container) error
- func UnblockShelf(ctx context.Context, s *Shelf) error
- func UpdateBagCnt(ctx context.Context, bag *Bag, cnt uint) error
- func UpdateBagPosition(ctx context.Context, bag *Bag, pos uint) error
- func UpdateContainer(ctx context.Context, c *Container) error
- func UpdateShelf(ctx context.Context, s *Shelf) error
- type Audit
- type Bag
- type BagDetails
- type Category
- type CategoryDetails
- type Container
- type ContainerDetails
- type Drawing
- type Product
- type ProductDetails
- type ProductName
- type Shelf
- type ShelfDetails
- type User
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddContainer ¶
AddContainer 添加一个箱子,箱子的核心属性货架名、行号、列号必须合法 如果没有填写箱子容量,则使用默认的箱子容量
func AddShelf ¶
AddShelf 是添加货架的操作,添加货架会根据输入参数初始化好货架上相关的箱子,箱子默认为空 货架名必填且不能与已有的货架重复 行数对应货架的层数(默认最大为 10) 列数对应货架每一层摆放的箱子数(默认最大为 20) 容量对应的是每个箱子规划存放多少个包裹
func BlockContainer ¶
BlockContainer 会禁用输入的箱子,要禁用的箱子必须在当前系统里存在 箱子被禁用后,不能再作为新包裹的存放点,但是仍旧可以取出里面的包裹
func BlockShelf ¶
BlockShelf 会禁用输入的货架,要禁用的货架必须在当前系统里存在 禁用货架会同时禁用货架上所有的箱子,被禁用的箱子不能存放新的包裹,但是箱子里现存的包裹可以继续出库
func DeleteContainer ¶
DeleteContainer 根据输入删除系统里的箱子 仅当箱子为空时才能删除
func DeleteShelf ¶
DeleteShelf 根据输入删除系统里的货架,以及货架关联的所有箱子 仅当货架上所有的箱子都为空时才能删除 货架的删除是硬删除,避免删除货架后重新创建同名货架的异常
func UnblockContainer ¶
UnblockContainer 会解禁输入的箱子,要解禁的箱子必须在当前系统里存在
func UnblockShelf ¶
UnblockShelf 会解禁输入的货架,要解禁的货架必须在当前系统里存在 解禁货架会同时解禁货架上所有的箱子,箱子解禁后支持入库、出库等操作
func UpdateContainer ¶
UpdateContainer 根据输入更新系统里的箱子信息
Types ¶
type Audit ¶
type Audit struct { ID uint `gorm:"primarykey"` UserID uint // 录入人 CategoryID uint // 产品类别 ProductID uint // 产品信息 BagID uint // 包裹信息 ContainerID uint // 存放位置 Option string // 操作,入库/出库/盘点 Count int // 变更数量 CreatedAt time.Time UpdatedAt time.Time DeletedAt soft_delete.DeletedAt }
审计日志
type Bag ¶
type Bag struct { ID uint `gorm:"primarykey"` SerialNo string `gorm:"unique"` // 二维码序列号 ProductID uint `gorm:"index"` // 关联产品 ContainerID uint `gorm:"index"` // 位置信息 Count uint `grom:"index"` // 存货数量 Desc string // 包装描述 CreatedAt time.Time UpdatedAt time.Time DeletedAt soft_delete.DeletedAt }
包裹信息
type BagDetails ¶
type BagDetails struct { ID uint `json:"id"` SerialNo string `json:"serial_no"` Count uint `json:"count"` Desc string `json:"desc"` CategoryID uint `json:"category_id"` CategoryName string `json:"category_name"` ProductID uint `json:"product_id"` ProductSpec string `json:"product_desc"` ContainerID uint `json:"container_id"` ContainerShelf string `json:"container_shelf"` ContainerRow uint `json:"container_row"` ContainerCol uint `json:"container_col"` }
BagDetails 是包裹信息,关联了存放包裹的类别、产品规格以及存放位置信息 Bag 是整套系统的核心,通过 Bag 可以把货架上的位置信息和产品信息关联在一起
type Category ¶
type Category struct { ID uint `gorm:"primarykey"` Name string `gorm:"index"` Desc string CreatedAt time.Time UpdatedAt time.Time DeletedAt soft_delete.DeletedAt }
产品类别
type CategoryDetails ¶
type CategoryDetails struct { ID uint `json:"id"` CategoryName string `json:"category_name"` Desc string `json:"desc"` Products []*ProductDetails `json:"products"` }
type Container ¶
type Container struct { ID uint `gorm:"primarykey"` ShelfID uint `gorm:"index"` // 货架 Row uint `gorm:"index"` // 货架行 Col uint `gorm:"index"` // 货架列 Used uint `gorm:"index"` // 已存货量 Capacity uint `gorm:"index"` // 最大存货量 IsBlocked bool `gorm:"index"` // 是否禁用(标记为禁用的容器不能存入包裹) Desc string // 描述信息 CreatedAt time.Time UpdatedAt time.Time DeletedAt soft_delete.DeletedAt }
存放容器(货架上的箱子)
type ContainerDetails ¶
type ContainerDetails struct { ID uint `json:"id"` ShelfID uint `json:"shelf_id"` ShelfName string `json:"shelf_name"` Row uint `json:"row"` Col uint `json:"col"` Used uint `json:"used"` Capacity uint `json:"capacity"` IsBlocked bool `json:"is_blocked"` Desc string `json:"desc"` Bags []*BagDetails `json:"bags"` }
ContainerDetails 是箱子信息,关联了该箱子所属的货架信息和箱子中存放的包裹信息
func GetContainer ¶
func GetContainer(ctx context.Context, c *Container) (*ContainerDetails, error)
type Drawing ¶
type Drawing struct { ID uint `gorm:"primarykey"` From string `gorm:"index"` Name string Version string Desc string CreatedAt time.Time UpdatedAt time.Time DeletedAt soft_delete.DeletedAt }
图番表,不能被其他表用 ID 关联
type Product ¶
type Product struct { ID uint `gorm:"primarykey"` Name string `gorm:"index"` CategoryID uint `gorm:"index"` // 类别信息 DrawingID uint `gorm:"index"` // 图纸信息 Spec string // 规格 Desc string // 额外描述 CreatedAt time.Time UpdatedAt time.Time DeletedAt soft_delete.DeletedAt }
现存产品,核心字段有 类别、名称、图纸、型号 例如 非标件 / 螺丝 / 803-2220_REV_01 / NULL
type ProductDetails ¶
type ProductName ¶
type ProductName struct { ID uint `gorm:"primarykey"` Name string `gorm:"index"` Desc string CreatedAt time.Time UpdatedAt time.Time DeletedAt soft_delete.DeletedAt }
产品名称表,不能被其他表用 ID 关联
type ShelfDetails ¶
type ShelfDetails struct { ID uint `json:"id"` ShelfName string `json:"shelf_name"` Rows uint `json:"rows"` Cols uint `json:"cols"` ContainerCap uint `json:"container_cap"` Desc string `json:"desc"` Containers []*ContainerDetails `json:"containers"` }
ShelfDetails 包含的是货架信息,关联了对应货架上所有的容器