models

package
v0.0.0-...-b699e3b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 25, 2021 License: AGPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddBag

func AddBag(ctx context.Context, bag *Bag) error

func AddContainer

func AddContainer(ctx context.Context, c *Container) error

AddContainer 添加一个箱子,箱子的核心属性货架名、行号、列号必须合法 如果没有填写箱子容量,则使用默认的箱子容量

func AddShelf

func AddShelf(ctx context.Context, s *Shelf, initContainers bool) error

AddShelf 是添加货架的操作,添加货架会根据输入参数初始化好货架上相关的箱子,箱子默认为空 货架名必填且不能与已有的货架重复 行数对应货架的层数(默认最大为 10) 列数对应货架每一层摆放的箱子数(默认最大为 20) 容量对应的是每个箱子规划存放多少个包裹

func BlockContainer

func BlockContainer(ctx context.Context, c *Container) error

BlockContainer 会禁用输入的箱子,要禁用的箱子必须在当前系统里存在 箱子被禁用后,不能再作为新包裹的存放点,但是仍旧可以取出里面的包裹

func BlockShelf

func BlockShelf(ctx context.Context, s *Shelf) error

BlockShelf 会禁用输入的货架,要禁用的货架必须在当前系统里存在 禁用货架会同时禁用货架上所有的箱子,被禁用的箱子不能存放新的包裹,但是箱子里现存的包裹可以继续出库

func DeleteBag

func DeleteBag(ctx context.Context, bag *Bag) error

func DeleteContainer

func DeleteContainer(ctx context.Context, c *Container) error

DeleteContainer 根据输入删除系统里的箱子 仅当箱子为空时才能删除

func DeleteShelf

func DeleteShelf(ctx context.Context, s *Shelf) error

DeleteShelf 根据输入删除系统里的货架,以及货架关联的所有箱子 仅当货架上所有的箱子都为空时才能删除 货架的删除是硬删除,避免删除货架后重新创建同名货架的异常

func UnblockContainer

func UnblockContainer(ctx context.Context, c *Container) error

UnblockContainer 会解禁输入的箱子,要解禁的箱子必须在当前系统里存在

func UnblockShelf

func UnblockShelf(ctx context.Context, s *Shelf) error

UnblockShelf 会解禁输入的货架,要解禁的货架必须在当前系统里存在 解禁货架会同时解禁货架上所有的箱子,箱子解禁后支持入库、出库等操作

func UpdateBagCnt

func UpdateBagCnt(ctx context.Context, bag *Bag, cnt uint) error

func UpdateBagPosition

func UpdateBagPosition(ctx context.Context, bag *Bag, pos uint) error

func UpdateContainer

func UpdateContainer(ctx context.Context, c *Container) error

UpdateContainer 根据输入更新系统里的箱子信息

func UpdateShelf

func UpdateShelf(ctx context.Context, s *Shelf) error

UpdateShelf 根据输入更新系统里的货架信息

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 可以把货架上的位置信息和产品信息关联在一起

func GetBag

func GetBag(ctx context.Context, bag *Bag) (*BagDetails, error)

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 ProductDetails struct {
	ID           uint          `json:"id"`
	ProductSpec  string        `json:"product_spec"`
	CategoryID   uint          `json:"category_id"`
	CategoryName string        `json:"category_name"`
	Desc         string        `json:"desc"`
	Bags         []*BagDetails `json:"bags"`
}

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 Shelf

type Shelf struct {
	ID           uint   `gorm:"primarykey"`
	Name         string `gorm:"index"`
	Rows         uint
	Cols         uint
	ContainerCap uint
	Desc         string
	CreatedAt    time.Time
	UpdatedAt    time.Time
	DeletedAt    soft_delete.DeletedAt
}

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 包含的是货架信息,关联了对应货架上所有的容器

func GetShelf

func GetShelf(ctx context.Context, s *Shelf) (*ShelfDetails, error)

type User

type User struct {
	ID        uint `gorm:"primarykey"`
	Name      string
	Password  string
	Role      string
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt soft_delete.DeletedAt
}

用户信息

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL