137 lines
7.5 KiB
Go
137 lines
7.5 KiB
Go
package dto
|
||
|
||
import (
|
||
"assets/consts/stock"
|
||
|
||
"gitea.com/red-future/common/beans"
|
||
"github.com/gogf/gf/v2/frame/g"
|
||
"github.com/gogf/gf/v2/os/gtime"
|
||
"go.mongodb.org/mongo-driver/v2/bson"
|
||
)
|
||
|
||
// CreateLocationReq 创建库位请求
|
||
type CreateLocationReq struct {
|
||
g.Meta `path:"/createLocation" method:"post" tags:"库位管理" summary:"创建库位" dc:"创建新的库位"`
|
||
WarehouseId string `json:"warehouseId" v:"required" dc:"仓库ID"`
|
||
ZoneId string `json:"zoneId" v:"required" dc:"库区ID"`
|
||
LocationCode string `json:"locationCode" v:"required|max-length:50#库位编码不能为空|库位编码不能超过50个字符" dc:"库位编码"`
|
||
LocationName string `json:"locationName" v:"required|max-length:100#库位名称不能为空|库位名称不能超过100个字符" dc:"库位名称"`
|
||
LocationType stock.LocationType `json:"locationType" v:"required" dc:"库位类型"`
|
||
CapacityUnitType stock.CapacityUnitType `json:"capacityUnitType" v:"required" dc:"容量单位类型"`
|
||
CapacityUnit string `json:"capacityUnit" v:"required" dc:"容量单位(如箱、托盘)"`
|
||
MaxCapacity int `json:"maxCapacity" v:"required|min:1#最大容量不能为空|最大容量必须大于0" dc:"最大容量"`
|
||
Status *stock.LocationStatus `json:"status" dc:"库位状态(可选,默认空闲)"`
|
||
Remark string `json:"remark" dc:"备注"`
|
||
}
|
||
|
||
// CreateLocationRes 创建库位响应
|
||
type CreateLocationRes struct {
|
||
Id *bson.ObjectID `json:"id" dc:"库位ID"`
|
||
}
|
||
|
||
// UpdateLocationReq 更新库位请求
|
||
type UpdateLocationReq struct {
|
||
g.Meta `path:"/updateLocation" method:"put" tags:"库位管理" summary:"更新库位" dc:"更新库位信息"`
|
||
Id *bson.ObjectID `json:"id" v:"required" dc:"库位ID"`
|
||
WarehouseId string `json:"warehouseId" dc:"仓库ID"`
|
||
ZoneId string `json:"zoneId" dc:"库区ID"`
|
||
LocationCode string `json:"locationCode" dc:"库位编码"`
|
||
LocationName string `json:"locationName" dc:"库位名称"`
|
||
LocationType *stock.LocationType `json:"locationType" dc:"库位类型"`
|
||
CapacityUnitType *stock.CapacityUnitType `json:"capacityUnitType" dc:"容量单位类型"`
|
||
CapacityUnit string `json:"capacityUnit" dc:"容量单位"`
|
||
MaxCapacity *int `json:"maxCapacity" dc:"最大容量"`
|
||
Status *stock.LocationStatus `json:"status" dc:"库位状态"`
|
||
Remark string `json:"remark" dc:"备注"`
|
||
}
|
||
|
||
// UpdateLocationRes 更新库位响应
|
||
type UpdateLocationRes struct {
|
||
Id *bson.ObjectID `json:"id" dc:"库位ID"`
|
||
}
|
||
|
||
// DeleteLocationReq 删除库位请求
|
||
type DeleteLocationReq struct {
|
||
g.Meta `path:"/deleteLocation" method:"delete" tags:"库位管理" summary:"删除库位" dc:"删除库位"`
|
||
Id *bson.ObjectID `json:"id" v:"required" dc:"库位ID"`
|
||
}
|
||
|
||
// UpdateLocationStatusReq 更新库位状态请求
|
||
type UpdateLocationStatusReq struct {
|
||
g.Meta `path:"/updateLocationStatus" method:"put" tags:"库位管理" summary:"更新库位状态" dc:"单独更新库位状态(空闲/占用/锁定/维护)"`
|
||
Id *bson.ObjectID `json:"id" v:"required" dc:"库位ID"`
|
||
Status stock.LocationStatus `json:"status" v:"required|in:idle,occupied,locked,maintenance#状态不能为空|状态值无效" dc:"库位状态"`
|
||
}
|
||
|
||
// DeleteLocationRes 删除库位响应
|
||
type DeleteLocationRes struct {
|
||
Id *bson.ObjectID `json:"id" dc:"库位ID"`
|
||
}
|
||
|
||
// GetLocationReq 获取库位详情请求
|
||
type GetLocationReq struct {
|
||
g.Meta `path:"/getLocation" method:"get" tags:"库位管理" summary:"获取库位详情" dc:"获取库位详情"`
|
||
Id *bson.ObjectID `json:"id" v:"required" dc:"库位ID"`
|
||
}
|
||
|
||
// GetLocationRes 获取库位详情响应
|
||
type GetLocationRes struct {
|
||
Id *bson.ObjectID `json:"id" dc:"库位ID"`
|
||
WarehouseId *bson.ObjectID `json:"warehouseId" dc:"仓库ID"`
|
||
WarehouseName string `json:"warehouseName" dc:"仓库名称"`
|
||
ZoneId *bson.ObjectID `json:"zoneId" dc:"库区ID"`
|
||
ZoneName string `json:"zoneName" dc:"库区名称"`
|
||
LocationCode string `json:"locationCode" dc:"库位编码"`
|
||
LocationName string `json:"locationName" dc:"库位名称"`
|
||
LocationType stock.LocationType `json:"locationType" dc:"库位类型"`
|
||
LocationTypeText string `json:"locationTypeText" dc:"库位类型文本"`
|
||
MaxCapacity int `json:"maxCapacity" dc:"最大容量"`
|
||
CurrentCapacity int `json:"currentCapacity" dc:"当前容量"`
|
||
UsageRate float64 `json:"usageRate" dc:"使用率"`
|
||
Status stock.LocationStatus `json:"status" dc:"库位状态"`
|
||
StatusText string `json:"statusText" dc:"状态文本"`
|
||
Remark string `json:"remark" dc:"备注"`
|
||
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
|
||
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
|
||
}
|
||
|
||
// ListLocationReq 获取库位列表请求
|
||
type ListLocationReq struct {
|
||
g.Meta `path:"/listLocations" method:"get" tags:"库位管理" summary:"获取库位列表" dc:"分页查询库位列表"`
|
||
*beans.Page
|
||
OrderBy []beans.OrderBy `json:"orderBy" dc:"排序规则"`
|
||
WarehouseId string `json:"warehouseId" dc:"仓库ID(单个,兼容旧版)"`
|
||
WarehouseIds []string `json:"warehouseIds" dc:"仓库ID列表(批量查询)"`
|
||
ZoneId string `json:"zoneId" dc:"库区ID(单个,兼容旧版)"`
|
||
ZoneIds []string `json:"zoneIds" dc:"库区ID列表(批量查询)"`
|
||
LocationType *stock.LocationType `json:"locationType" dc:"库位类型"`
|
||
Status *stock.LocationStatus `json:"status" dc:"库位状态"`
|
||
Keyword string `json:"keyword" dc:"关键词搜索(编码/名称)"`
|
||
}
|
||
|
||
// ListLocationRes 获取库位列表响应
|
||
type ListLocationRes struct {
|
||
List []LocationListItem `json:"list" dc:"库位列表"`
|
||
Total int64 `json:"total" dc:"总数"`
|
||
}
|
||
|
||
// LocationListItem 库位列表项
|
||
type LocationListItem struct {
|
||
Id *bson.ObjectID `json:"id" dc:"库位ID"`
|
||
WarehouseId *bson.ObjectID `json:"warehouseId" dc:"仓库ID"`
|
||
WarehouseName string `json:"warehouseName" dc:"仓库名称"`
|
||
ZoneId *bson.ObjectID `json:"zoneId" dc:"库区ID"`
|
||
ZoneName string `json:"zoneName" dc:"库区名称"`
|
||
LocationCode string `json:"locationCode" dc:"库位编码"`
|
||
LocationName string `json:"locationName" dc:"库位名称"`
|
||
LocationType stock.LocationType `json:"locationType" dc:"库位类型"`
|
||
LocationTypeText string `json:"locationTypeText" dc:"库位类型文本"`
|
||
MaxCapacity int `json:"maxCapacity" dc:"最大容量"`
|
||
CurrentCapacity int `json:"currentCapacity" dc:"当前容量"`
|
||
UsageRate float64 `json:"usageRate" dc:"使用率"`
|
||
Status stock.LocationStatus `json:"status" dc:"库位状态"`
|
||
StatusText string `json:"statusText" dc:"状态文本"`
|
||
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
|
||
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
|
||
}
|