Dockerfile

This commit is contained in:
2026-03-18 10:18:03 +08:00
parent 5c5dbc7420
commit b65f3439f3
189 changed files with 19027 additions and 0 deletions

View File

@@ -0,0 +1,110 @@
package dto
import (
"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"
)
// CreateInventoryCountAdjustHistoryReq 创建盘点调整历史请求
type CreateInventoryCountAdjustHistoryReq struct {
g.Meta `path:"/createInventoryCountAdjustHistory" method:"post" tags:"盘点调整历史管理" summary:"创建盘点调整历史" dc:"创建新的盘点调整历史记录"`
CountID *bson.ObjectID `json:"countId" v:"required" dc:"盘点任务ID"`
DetailID *bson.ObjectID `json:"detailId" v:"required" dc:"盘点明细ID"`
AssetSkuID *bson.ObjectID `json:"assetSkuId" v:"required" dc:"商品SKU ID"`
WarehouseID *bson.ObjectID `json:"warehouseId" v:"required" dc:"仓库ID"`
ZoneID *bson.ObjectID `json:"zoneId" dc:"库区ID"`
LocationID *bson.ObjectID `json:"locationId" dc:"库位ID"`
BeforeQuantity int `json:"beforeQuantity" v:"required" dc:"调整前库存"`
AfterQuantity int `json:"afterQuantity" v:"required" dc:"调整后库存"`
Difference int `json:"difference" v:"required" dc:"差值"`
Reason string `json:"reason" dc:"调整原因"`
AdjustedBy string `json:"adjustedBy" dc:"调整人ID"`
AdjustedByName string `json:"adjustedByName" dc:"调整人姓名"`
BatchNo string `json:"batchNo" dc:"批次号"`
}
// CreateInventoryCountAdjustHistoryRes 创建盘点调整历史响应
type CreateInventoryCountAdjustHistoryRes struct {
Id *bson.ObjectID `json:"id" dc:"历史记录ID"`
}
// GetInventoryCountAdjustHistoryReq 获取盘点调整历史详情请求
type GetInventoryCountAdjustHistoryReq struct {
g.Meta `path:"/getInventoryCountAdjustHistory" method:"get" tags:"盘点调整历史管理" summary:"获取盘点调整历史详情" dc:"获取盘点调整历史详情"`
Id *bson.ObjectID `json:"id" v:"required" dc:"历史记录ID"`
}
// GetInventoryCountAdjustHistoryRes 获取盘点调整历史详情响应
type GetInventoryCountAdjustHistoryRes struct {
Id *bson.ObjectID `json:"id" dc:"历史记录ID"`
CountID *bson.ObjectID `json:"countId" dc:"盘点任务ID"`
DetailID *bson.ObjectID `json:"detailId" dc:"盘点明细ID"`
AssetSkuID *bson.ObjectID `json:"assetSkuId" dc:"商品SKU ID"`
AssetSkuName string `json:"assetSkuName" dc:"商品SKU名称"`
WarehouseID *bson.ObjectID `json:"warehouseId" dc:"仓库ID"`
WarehouseName string `json:"warehouseName" dc:"仓库名称"`
ZoneID *bson.ObjectID `json:"zoneId" dc:"库区ID"`
ZoneName string `json:"zoneName" dc:"库区名称"`
LocationID *bson.ObjectID `json:"locationId" dc:"库位ID"`
LocationName string `json:"locationName" dc:"库位名称"`
BeforeQuantity int `json:"beforeQuantity" dc:"调整前库存"`
AfterQuantity int `json:"afterQuantity" dc:"调整后库存"`
Difference int `json:"difference" dc:"差值"`
Reason string `json:"reason" dc:"调整原因"`
AdjustedBy string `json:"adjustedBy" dc:"调整人ID"`
AdjustedByName string `json:"adjustedByName" dc:"调整人姓名"`
AdjustedAt *gtime.Time `json:"adjustedAt" dc:"调整时间"`
BatchNo string `json:"batchNo" dc:"批次号"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
}
// DeleteInventoryCountAdjustHistoryReq 删除盘点调整历史请求
type DeleteInventoryCountAdjustHistoryReq struct {
g.Meta `path:"/deleteInventoryCountAdjustHistory" method:"delete" tags:"盘点调整历史管理" summary:"删除盘点调整历史" dc:"删除盘点调整历史记录"`
Id *bson.ObjectID `json:"id" v:"required" dc:"历史记录ID"`
}
// DeleteInventoryCountAdjustHistoryRes 删除盘点调整历史响应
type DeleteInventoryCountAdjustHistoryRes struct {
Id *bson.ObjectID `json:"id" dc:"历史记录ID"`
}
// ListInventoryCountAdjustHistoryReq 获取盘点调整历史列表请求
type ListInventoryCountAdjustHistoryReq struct {
g.Meta `path:"/listInventoryCountAdjustHistories" method:"get" tags:"盘点调整历史管理" summary:"获取盘点调整历史列表" dc:"分页查询盘点调整历史列表"`
*beans.Page
OrderBy []beans.OrderBy `json:"orderBy" dc:"排序规则"`
CountID string `json:"countId" dc:"盘点任务ID"`
DetailID string `json:"detailId" dc:"盘点明细ID"`
AssetSkuID string `json:"assetSkuId" dc:"商品SKU ID"`
WarehouseID string `json:"warehouseId" dc:"仓库ID"`
BatchNo string `json:"batchNo" dc:"批次号"`
}
// ListInventoryCountAdjustHistoryRes 获取盘点调整历史列表响应
type ListInventoryCountAdjustHistoryRes struct {
List []InventoryCountAdjustHistoryListItem `json:"list" dc:"调整历史列表"`
Total int64 `json:"total" dc:"总数"`
}
// InventoryCountAdjustHistoryListItem 盘点调整历史列表项
type InventoryCountAdjustHistoryListItem struct {
Id *bson.ObjectID `json:"id" dc:"历史记录ID"`
CountID *bson.ObjectID `json:"countId" dc:"盘点任务ID"`
DetailID *bson.ObjectID `json:"detailId" dc:"盘点明细ID"`
AssetSkuID *bson.ObjectID `json:"assetSkuId" dc:"商品SKU ID"`
AssetSkuName string `json:"assetSkuName" dc:"商品SKU名称"`
WarehouseID *bson.ObjectID `json:"warehouseId" dc:"仓库ID"`
WarehouseName string `json:"warehouseName" dc:"仓库名称"`
BeforeQuantity int `json:"beforeQuantity" dc:"调整前库存"`
AfterQuantity int `json:"afterQuantity" dc:"调整后库存"`
Difference int `json:"difference" dc:"差值"`
Reason string `json:"reason" dc:"调整原因"`
AdjustedBy string `json:"adjustedBy" dc:"调整人ID"`
AdjustedByName string `json:"adjustedByName" dc:"调整人姓名"`
AdjustedAt *gtime.Time `json:"adjustedAt" dc:"调整时间"`
BatchNo string `json:"batchNo" dc:"批次号"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
}

View File

@@ -0,0 +1,179 @@
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"
)
// CreateInventoryCountDetailReq 创建盘点明细请求
type CreateInventoryCountDetailReq struct {
g.Meta `path:"/createInventoryCountDetail" method:"post" tags:"盘点明细管理" summary:"创建盘点明细" dc:"创建新的盘点明细"`
CountID string `json:"countId" v:"required" dc:"盘点单ID"`
AssetID string `json:"assetId" v:"required" dc:"资产ID"`
AssetSkuID string `json:"assetSkuId" v:"required" dc:"资产SKU ID"`
WarehouseID string `json:"warehouseId" v:"required" dc:"仓库ID"`
ZoneID string `json:"zoneId" dc:"库区ID"`
LocationID string `json:"locationId" dc:"库位ID"`
BookQuantity int `json:"bookQuantity" v:"required" dc:"账面数量"`
BookBatchInfo map[string]int `json:"bookBatchInfo" dc:"账面批次信息"`
ActualQuantity int `json:"actualQuantity" dc:"实盘数量"`
ActualBatchInfo map[string]int `json:"actualBatchInfo" dc:"实盘批次信息"`
Remark string `json:"remark" dc:"备注"`
}
// CreateInventoryCountDetailRes 创建盘点明细响应
type CreateInventoryCountDetailRes struct {
Id *bson.ObjectID `json:"id" dc:"盘点明细ID"`
}
// UpdateInventoryCountDetailReq 更新盘点明细请求
type UpdateInventoryCountDetailReq struct {
g.Meta `path:"/updateInventoryCountDetail" method:"put" tags:"盘点明细管理" summary:"更新盘点明细" dc:"更新盘点明细信息"`
Id *bson.ObjectID `json:"id" v:"required" dc:"盘点明细ID"`
ActualQuantity *int `json:"actualQuantity" dc:"实盘数量"`
ActualBatchInfo map[string]int `json:"actualBatchInfo" dc:"实盘批次信息"`
DiscrepancyReason string `json:"discrepancyReason" dc:"差异原因"`
Status *stock.InventoryDetailStatus `json:"status" dc:"明细状态"`
Remark string `json:"remark" dc:"备注"`
}
// UpdateInventoryCountDetailRes 更新盘点明细响应
type UpdateInventoryCountDetailRes struct {
Id *bson.ObjectID `json:"id" dc:"盘点明细ID"`
}
// DeleteInventoryCountDetailReq 删除盘点明细请求
type DeleteInventoryCountDetailReq struct {
g.Meta `path:"/deleteInventoryCountDetail" method:"delete" tags:"盘点明细管理" summary:"删除盘点明细" dc:"删除盘点明细"`
Id *bson.ObjectID `json:"id" v:"required" dc:"盘点明细ID"`
}
// DeleteInventoryCountDetailRes 删除盘点明细响应
type DeleteInventoryCountDetailRes struct {
Id *bson.ObjectID `json:"id" dc:"盘点明细ID"`
}
// GetInventoryCountDetailReq 获取盘点明细详情请求
type GetInventoryCountDetailReq struct {
g.Meta `path:"/getInventoryCountDetail" method:"get" tags:"盘点明细管理" summary:"获取盘点明细详情" dc:"获取盘点明细详情"`
Id *bson.ObjectID `json:"id" v:"required" dc:"盘点明细ID"`
}
// GetInventoryCountDetailRes 获取盘点明细详情响应
type GetInventoryCountDetailRes struct {
Id *bson.ObjectID `json:"id" dc:"盘点明细ID"`
CountID *bson.ObjectID `json:"countId" dc:"盘点单ID"`
CountNo string `json:"countNo" dc:"盘点单号"`
AssetID *bson.ObjectID `json:"assetId" dc:"资产ID"`
AssetName string `json:"assetName" dc:"资产名称"`
AssetSkuID *bson.ObjectID `json:"assetSkuId" dc:"资产SKU ID"`
AssetSkuName string `json:"assetSkuName" dc:"资产SKU名称"`
WarehouseID *bson.ObjectID `json:"warehouseId" dc:"仓库ID"`
WarehouseName string `json:"warehouseName" dc:"仓库名称"`
ZoneID *bson.ObjectID `json:"zoneId" dc:"库区ID"`
ZoneName string `json:"zoneName" dc:"库区名称"`
LocationID *bson.ObjectID `json:"locationId" dc:"库位ID"`
LocationName string `json:"locationName" dc:"库位名称"`
BookQuantity int `json:"bookQuantity" dc:"账面数量"`
BookBatchInfo map[string]int `json:"bookBatchInfo" dc:"账面批次信息"`
ActualQuantity int `json:"actualQuantity" dc:"实盘数量"`
ActualBatchInfo map[string]int `json:"actualBatchInfo" dc:"实盘批次信息"`
CountBy string `json:"countBy" dc:"盘点人ID"`
CountByName string `json:"countByName" dc:"盘点人名称"`
CountAt *gtime.Time `json:"countAt" dc:"盘点时间"`
Difference int `json:"difference" dc:"差异数量"`
DifferenceRate float64 `json:"differenceRate" dc:"差异率"`
DiscrepancyType stock.DiscrepancyType `json:"discrepancyType" dc:"差异类型"`
DiscrepancyTypeText string `json:"discrepancyTypeText" dc:"差异类型文本"`
DiscrepancyReason string `json:"discrepancyReason" dc:"差异原因"`
Status stock.InventoryDetailStatus `json:"status" dc:"明细状态"`
StatusText string `json:"statusText" dc:"状态文本"`
IsAdjusted bool `json:"isAdjusted" dc:"是否已调整"`
AdjustedAt *gtime.Time `json:"adjustedAt" dc:"调整时间"`
AdjustedBy string `json:"adjustedBy" dc:"调整人ID"`
AdjustedByName string `json:"adjustedByName" dc:"调整人名称"`
Remark string `json:"remark" dc:"备注"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
}
// ListInventoryCountDetailReq 获取盘点明细列表请求
type ListInventoryCountDetailReq struct {
g.Meta `path:"/listInventoryCountDetails" method:"get" tags:"盘点明细管理" summary:"获取盘点明细列表" dc:"分页查询盘点明细列表"`
*beans.Page
OrderBy []beans.OrderBy `json:"orderBy" dc:"排序规则"`
CountID string `json:"countId" v:"required" dc:"盘点单ID"`
AssetID string `json:"assetId" dc:"资产ID"`
AssetSkuID string `json:"assetSkuId" dc:"资产SKU ID"`
WarehouseID string `json:"warehouseId" dc:"仓库ID"`
ZoneID string `json:"zoneId" dc:"库区ID"`
LocationID string `json:"locationId" dc:"库位ID"`
DiscrepancyType *stock.DiscrepancyType `json:"discrepancyType" dc:"差异类型"`
Status *stock.InventoryDetailStatus `json:"status" dc:"明细状态"`
IsAdjusted *bool `json:"isAdjusted" dc:"是否已调整"`
Keyword string `json:"keyword" dc:"关键词搜索"`
}
// ListInventoryCountDetailRes 获取盘点明细列表响应
type ListInventoryCountDetailRes struct {
List []InventoryCountDetailListItem `json:"list" dc:"盘点明细列表"`
Total int64 `json:"total" dc:"总数"`
}
// InventoryCountDetailListItem 盘点明细列表项
type InventoryCountDetailListItem struct {
Id *bson.ObjectID `json:"id" dc:"盘点明细ID"`
CountID *bson.ObjectID `json:"countId" dc:"盘点单ID"`
AssetID *bson.ObjectID `json:"assetId" dc:"资产ID"`
AssetName string `json:"assetName" dc:"资产名称"`
AssetSkuID *bson.ObjectID `json:"assetSkuId" dc:"资产SKU ID"`
AssetSkuName string `json:"assetSkuName" dc:"资产SKU名称"`
WarehouseID *bson.ObjectID `json:"warehouseId" dc:"仓库ID"`
WarehouseName string `json:"warehouseName" dc:"仓库名称"`
ZoneID *bson.ObjectID `json:"zoneId" dc:"库区ID"`
ZoneName string `json:"zoneName" dc:"库区名称"`
LocationID *bson.ObjectID `json:"locationId" dc:"库位ID"`
LocationName string `json:"locationName" dc:"库位名称"`
BookQuantity int `json:"bookQuantity" dc:"账面数量"`
ActualQuantity int `json:"actualQuantity" dc:"实盘数量"`
Difference int `json:"difference" dc:"差异数量"`
DifferenceRate float64 `json:"differenceRate" dc:"差异率"`
DiscrepancyType stock.DiscrepancyType `json:"discrepancyType" dc:"差异类型"`
DiscrepancyTypeText string `json:"discrepancyTypeText" dc:"差异类型文本"`
Status stock.InventoryDetailStatus `json:"status" dc:"明细状态"`
StatusText string `json:"statusText" dc:"状态文本"`
IsAdjusted bool `json:"isAdjusted" dc:"是否已调整"`
CountBy string `json:"countBy" dc:"盘点人ID"`
CountByName string `json:"countByName" dc:"盘点人名称"`
CountAt *gtime.Time `json:"countAt" dc:"盘点时间"`
Remark string `json:"remark" dc:"备注"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
}
// SearchSimilarAssetsReq 查询相似商品请求
type SearchSimilarAssetsReq struct {
g.Meta `path:"/searchSimilarAssets" method:"get" tags:"盘点明细管理" summary:"查询相似商品" dc:"单字模糊查询相似商品"`
Keyword string `json:"keyword" v:"required" dc:"关键词"`
WarehouseID *bson.ObjectID `json:"warehouseId" dc:"仓库ID"`
}
// SearchSimilarAssetsRes 查询相似商品响应
type SearchSimilarAssetsRes struct {
List []SimilarAssetItem `json:"list" dc:"相似商品列表"`
}
// SimilarAssetItem 相似商品项
type SimilarAssetItem struct {
AssetID *bson.ObjectID `json:"assetId" dc:"资产ID"`
AssetName string `json:"assetName" dc:"资产名称"`
AssetSkuID *bson.ObjectID `json:"assetSkuId" dc:"资产SKU ID"`
AssetSkuName string `json:"assetSkuName" dc:"资产SKU名称"`
AvailableQty int `json:"availableQty" dc:"可用库存"`
WarehouseID *bson.ObjectID `json:"warehouseId" dc:"仓库ID"`
WarehouseName string `json:"warehouseName" dc:"仓库名称"`
}

View File

@@ -0,0 +1,202 @@
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"
)
// CreateInventoryCountReq 创建盘点任务请求
type CreateInventoryCountReq struct {
g.Meta `path:"/createInventoryCount" method:"post" tags:"盘点管理" summary:"创建盘点任务" dc:"创建新的盘点任务"`
Title string `json:"title" v:"required|max-length:200#盘点标题不能为空|盘点标题不能超过200个字符" dc:"盘点标题"`
Description string `json:"description" dc:"盘点描述"`
WarehouseIDs []string `json:"warehouseId" dc:"仓库ID列表按仓库/库区/库位盘点时必填)"`
ZoneIDs []string `json:"zoneId" dc:"库区ID列表可选"`
LocationIDs []string `json:"locationId" dc:"库位ID列表可选"`
AssetSkuIDs []string `json:"assetSkuId" dc:"资产SKU ID列表可选"`
CountType stock.InventoryCountType `json:"countType" v:"required" dc:"盘点类型"`
Scope stock.InventoryCountScope `json:"scope" v:"required" dc:"盘点范围"`
AssigneeID string `json:"assigneeId" v:"required" dc:"负责人ID"`
AssigneeName string `json:"assigneeName" dc:"负责人名称"`
Participants []string `json:"participants" dc:"参与人员ID列表"`
Remark string `json:"remark" dc:"备注"`
}
// CreateInventoryCountRes 创建盘点任务响应
type CreateInventoryCountRes struct {
Id *bson.ObjectID `json:"id" dc:"盘点任务ID"`
CountNo string `json:"countNo" dc:"盘点单号"`
}
// UpdateInventoryCountReq 更新盘点任务请求
type UpdateInventoryCountReq struct {
g.Meta `path:"/updateInventoryCount" method:"put" tags:"盘点管理" summary:"更新盘点任务" dc:"更新盘点任务信息"`
Id *bson.ObjectID `json:"id" v:"required" dc:"盘点任务ID"`
Title string `json:"title" dc:"盘点标题"`
Description string `json:"description" dc:"盘点描述"`
AssigneeID string `json:"assigneeId" dc:"负责人ID"`
AssigneeName string `json:"assigneeName" dc:"负责人名称"`
Participants []string `json:"participants" dc:"参与人员ID列表"`
Status *stock.InventoryCountStatus `json:"status" dc:"盘点状态"`
Remark string `json:"remark" dc:"备注"`
}
// UpdateInventoryCountRes 更新盘点任务响应
type UpdateInventoryCountRes struct {
Id *bson.ObjectID `json:"id" dc:"盘点任务ID"`
}
// DeleteInventoryCountReq 删除盘点任务请求
type DeleteInventoryCountReq struct {
g.Meta `path:"/deleteInventoryCount" method:"delete" tags:"盘点管理" summary:"删除盘点任务" dc:"删除盘点任务"`
Id *bson.ObjectID `json:"id" v:"required" dc:"盘点任务ID"`
}
// DeleteInventoryCountRes 删除盘点任务响应
type DeleteInventoryCountRes struct {
Id *bson.ObjectID `json:"id" dc:"盘点任务ID"`
}
// GetInventoryCountReq 获取盘点任务详情请求
type GetInventoryCountReq struct {
g.Meta `path:"/getInventoryCount" method:"get" tags:"盘点管理" summary:"获取盘点任务详情" dc:"获取盘点任务详情"`
Id *bson.ObjectID `json:"id" v:"required" dc:"盘点任务ID"`
}
// GetInventoryCountRes 获取盘点任务详情响应
type GetInventoryCountRes struct {
Id *bson.ObjectID `json:"id" dc:"盘点任务ID"`
CountNo string `json:"countNo" dc:"盘点单号"`
Title string `json:"title" dc:"盘点标题"`
Description string `json:"description" dc:"盘点描述"`
WarehouseIDs []*bson.ObjectID `json:"warehouseIds" dc:"仓库ID列表"`
WarehouseNames []string `json:"warehouseNames" dc:"仓库名称列表"`
ZoneIDs []*bson.ObjectID `json:"zoneIds" dc:"库区ID列表"`
ZoneNames []string `json:"zoneNames" dc:"库区名称列表"`
LocationIDs []*bson.ObjectID `json:"locationIds" dc:"库位ID列表"`
LocationNames []string `json:"locationNames" dc:"库位名称列表"`
AssetSkuIDs []*bson.ObjectID `json:"assetSkuIds" dc:"资产SKU ID列表"`
AssetSkuNames []string `json:"assetSkuNames" dc:"资产SKU名称列表"`
CountType stock.InventoryCountType `json:"countType" dc:"盘点类型"`
CountTypeText string `json:"countTypeText" dc:"盘点类型文本"`
Scope stock.InventoryCountScope `json:"scope" dc:"盘点范围"`
ScopeText string `json:"scopeText" dc:"盘点范围文本"`
ActualStartTime *gtime.Time `json:"actualStartTime" dc:"实际开始时间"`
ActualEndTime *gtime.Time `json:"actualEndTime" dc:"实际结束时间"`
Status stock.InventoryCountStatus `json:"status" dc:"盘点状态"`
StatusText string `json:"statusText" dc:"状态文本"`
Progress float64 `json:"progress" dc:"进度百分比"`
CreatorID string `json:"creatorId" dc:"创建人ID"`
CreatorName string `json:"creatorName" dc:"创建人名称"`
AssigneeID string `json:"assigneeId" dc:"负责人ID"`
AssigneeName string `json:"assigneeName" dc:"负责人名称"`
Participants []string `json:"participants" dc:"参与人员ID列表"`
ParticipantNames []string `json:"participantNames" dc:"参与人员名称列表"`
TotalItems int `json:"totalItems" dc:"盘点条目总数"`
CompletedItems int `json:"completedItems" dc:"已完成条目数"`
DiscrepancyItems int `json:"discrepancyItems" dc:"有差异条目数"`
Remark string `json:"remark" dc:"备注"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
}
// ListInventoryCountReq 获取盘点任务列表请求
type ListInventoryCountReq struct {
g.Meta `path:"/listInventoryCounts" 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列表批量查询"`
CountType *stock.InventoryCountType `json:"countType" dc:"盘点类型"`
Status *stock.InventoryCountStatus `json:"status" dc:"盘点状态"`
AssigneeID string `json:"assigneeId" dc:"负责人ID"`
StartDate string `json:"startDate" dc:"开始日期"`
EndDate string `json:"endDate" dc:"结束日期"`
Keyword string `json:"keyword" dc:"关键词搜索(单号/标题)"`
}
// ListInventoryCountRes 获取盘点任务列表响应
type ListInventoryCountRes struct {
List []InventoryCountListItem `json:"list" dc:"盘点任务列表"`
Total int64 `json:"total" dc:"总数"`
}
// InventoryCountListItem 盘点任务列表项
type InventoryCountListItem struct {
Id *bson.ObjectID `json:"id" dc:"盘点任务ID"`
CountNo string `json:"countNo" dc:"盘点单号"`
Title string `json:"title" dc:"盘点标题"`
WarehouseIDs []*bson.ObjectID `json:"warehouseIds" dc:"仓库ID列表"`
WarehouseNames []string `json:"warehouseNames" dc:"仓库名称列表"`
ZoneIDs []*bson.ObjectID `json:"zoneIds" dc:"库区ID列表"`
ZoneNames []string `json:"zoneNames" dc:"库区名称列表"`
CountType stock.InventoryCountType `json:"countType" dc:"盘点类型"`
CountTypeText string `json:"countTypeText" dc:"盘点类型文本"`
Scope stock.InventoryCountScope `json:"scope" dc:"盘点范围"`
ScopeText string `json:"scopeText" dc:"盘点范围文本"`
Status stock.InventoryCountStatus `json:"status" dc:"盘点状态"`
StatusText string `json:"statusText" dc:"状态文本"`
Progress float64 `json:"progress" dc:"进度百分比"`
AssigneeID string `json:"assigneeId" dc:"负责人ID"`
AssigneeName string `json:"assigneeName" dc:"负责人名称"`
ActualStartTime *gtime.Time `json:"actualStartTime" dc:"实际开始时间"`
ActualEndTime *gtime.Time `json:"actualEndTime" dc:"实际结束时间"`
TotalItems int `json:"totalItems" dc:"盘点条目总数"`
CompletedItems int `json:"completedItems" dc:"已完成条目数"`
DiscrepancyItems int `json:"discrepancyItems" dc:"有差异条目数"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
}
// CompleteInventoryCountReq 完成盘点请求
type CompleteInventoryCountReq struct {
g.Meta `path:"/completeInventoryCount" method:"post" tags:"盘点管理" summary:"完成盘点" dc:"完成盘点任务"`
Id *bson.ObjectID `json:"id" v:"required" dc:"盘点任务ID"`
}
// CompleteInventoryCountRes 完成盘点响应
type CompleteInventoryCountRes struct {
Id *bson.ObjectID `json:"id" dc:"盘点任务ID"`
}
// ExportInventoryCountTemplateReq 导出盘点模板请求
type ExportInventoryCountTemplateReq struct {
g.Meta `path:"/exportInventoryCountTemplate" method:"get" tags:"盘点管理" summary:"导出盘点模板" dc:"导出Excel盘点模板明盘/盲盘)"`
Id *bson.ObjectID `json:"id" v:"required" dc:"盘点任务ID"`
}
// CancelInventoryCountReq 取消盘点请求
type CancelInventoryCountReq struct {
g.Meta `path:"/cancelInventoryCount" method:"post" tags:"盘点管理" summary:"取消盘点" dc:"取消盘点任务"`
Id *bson.ObjectID `json:"id" v:"required" dc:"盘点任务ID"`
Reason string `json:"reason" dc:"取消原因"`
}
// CancelInventoryCountRes 取消盘点响应
type CancelInventoryCountRes struct {
Id *bson.ObjectID `json:"id" dc:"盘点任务ID"`
}
// ExportInventoryCountTemplateRes 导出盘点模板响应
type ExportInventoryCountTemplateRes struct {
FileName string `json:"fileName" dc:"文件名"`
FileData []byte `json:"fileData" dc:"文件数据(Base64编码)"`
}
// ImportInventoryCountReq 上传盘点Excel请求
type ImportInventoryCountReq struct {
g.Meta `path:"/importInventoryCount" method:"post" tags:"盘点管理" summary:"上传盘点Excel" dc:"上传盘点结果Excel"`
Id *bson.ObjectID `json:"id" v:"required" dc:"盘点任务ID"`
}
// ImportInventoryCountRes 上传盘点Excel响应
type ImportInventoryCountRes struct {
SuccessCount int `json:"successCount" dc:"成功导入数量"`
FailCount int `json:"failCount" dc:"失败数量"`
}

View File

@@ -0,0 +1 @@
package dto

View File

@@ -0,0 +1 @@
package dto

View File

@@ -0,0 +1,214 @@
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"
)
// CreateInventoryWarningReq 创建库存预警请求
type CreateInventoryWarningReq struct {
g.Meta `path:"/createInventoryWarning" method:"post" tags:"库存预警管理" summary:"创建库存预警" dc:"创建新的库存预警"`
WarningType stock.WarningType `json:"warningType" v:"required" dc:"预警类型"`
BatchID *bson.ObjectID `json:"batchId" v:"required" dc:"关联批次ID"`
AssetID *bson.ObjectID `json:"assetId" dc:"关联资产ID"`
AssetSkuID *bson.ObjectID `json:"assetSkuId" dc:"关联资产SKU ID"`
SupplierID *bson.ObjectID `json:"supplierId" dc:"关联供应商ID"`
BatchNo string `json:"batchNo" dc:"批次号"`
BatchQty int `json:"batchQty" dc:"批次数量"`
AvailableQty int `json:"availableQty" dc:"可用数量"`
ProductionDate *gtime.Time `json:"productionDate" dc:"生产日期"`
ExpiryDate *gtime.Time `json:"expiryDate" dc:"过期日期"`
ExpiryWarningDate *gtime.Time `json:"expiryWarningDate" dc:"临期预警时间"`
MinStockThreshold int `json:"minStockThreshold" dc:"最低库存阈值"`
Status stock.ExpiryMessageStatus `json:"status" dc:"消息状态"`
ProcessedAt *gtime.Time `json:"processedAt" dc:"处理时间"`
Processor string `json:"processor" dc:"处理人"`
ProcessNote string `json:"processNote" dc:"处理备注"`
ProcessMethod *stock.ExpiryProcessMethod `json:"processMethod" dc:"处理方式"`
PromotionPlanID string `json:"promotionPlanId" dc:"促销方案ID"`
SupportsRecycle bool `json:"supportsRecycle" dc:"是否支持回收"`
Notes string `json:"notes" dc:"备注"`
}
// CreateInventoryWarningRes 创建库存预警响应
type CreateInventoryWarningRes struct {
Id *bson.ObjectID `json:"id" dc:"预警ID"`
}
// UpdateInventoryWarningReq 更新库存预警请求
type UpdateInventoryWarningReq struct {
g.Meta `path:"/updateInventoryWarning" method:"put" tags:"库存预警管理" summary:"更新库存预警" dc:"更新库存预警信息"`
Id *bson.ObjectID `json:"id" v:"required" dc:"预警ID"`
WarningType stock.WarningType `json:"warningType" v:"required" dc:"预警类型"`
BatchID *bson.ObjectID `json:"batchId" v:"required" dc:"关联批次ID"`
AssetID *bson.ObjectID `json:"assetId" dc:"关联资产ID"`
AssetSkuID *bson.ObjectID `json:"assetSkuId" dc:"关联资产SKU ID"`
SupplierID *bson.ObjectID `json:"supplierId" dc:"关联供应商ID"`
BatchNo string `json:"batchNo" dc:"批次号"`
BatchQty int `json:"batchQty" dc:"批次数量"`
AvailableQty int `json:"availableQty" dc:"可用数量"`
ProductionDate *gtime.Time `json:"productionDate" dc:"生产日期"`
ExpiryDate *gtime.Time `json:"expiryDate" dc:"过期日期"`
ExpiryWarningDate *gtime.Time `json:"expiryWarningDate" dc:"临期预警时间"`
MinStockThreshold int `json:"minStockThreshold" dc:"最低库存阈值"`
Status stock.ExpiryMessageStatus `json:"status" dc:"消息状态"`
ProcessedAt *gtime.Time `json:"processedAt" dc:"处理时间"`
Processor string `json:"processor" dc:"处理人"`
ProcessNote string `json:"processNote" dc:"处理备注"`
ProcessMethod *stock.ExpiryProcessMethod `json:"processMethod" dc:"处理方式"`
PromotionPlanID string `json:"promotionPlanId" dc:"促销方案ID"`
SupportsRecycle bool `json:"supportsRecycle" dc:"是否支持回收"`
Notes string `json:"notes" dc:"备注"`
}
// UpdateInventoryWarningRes 更新库存预警响应
type UpdateInventoryWarningRes struct {
Id *bson.ObjectID `json:"id" dc:"预警ID"`
}
// DeleteInventoryWarningReq 删除库存预警请求
type DeleteInventoryWarningReq struct {
g.Meta `path:"/deleteInventoryWarning" method:"delete" tags:"库存预警管理" summary:"删除库存预警" dc:"删除库存预警"`
Id *bson.ObjectID `json:"id" v:"required" dc:"预警ID"`
}
// DeleteInventoryWarningRes 删除库存预警响应
type DeleteInventoryWarningRes struct {
Id *bson.ObjectID `json:"id" dc:"预警ID"`
}
// GetInventoryWarningReq 获取库存预警详情请求
type GetInventoryWarningReq struct {
g.Meta `path:"/getInventoryWarning" method:"get" tags:"库存预警管理" summary:"获取库存预警详情" dc:"获取库存预警详情"`
Id *bson.ObjectID `json:"id" v:"required" dc:"预警ID"`
}
// GetInventoryWarningRes 获取库存预警详情响应
type GetInventoryWarningRes struct {
Id *bson.ObjectID `json:"id" dc:"预警ID"`
WarningType stock.WarningType `json:"warningType" dc:"预警类型"`
WarningTypeText string `json:"warningTypeText" dc:"预警类型文本"`
BatchID *bson.ObjectID `json:"batchId" dc:"关联批次ID"`
AssetID *bson.ObjectID `json:"assetId" dc:"关联资产ID"`
AssetName string `json:"assetName" dc:"资产名称"`
AssetSkuID *bson.ObjectID `json:"assetSkuId" dc:"关联资产SKU ID"`
AssetSkuName string `json:"assetSkuName" dc:"资产SKU名称"`
SupplierID *bson.ObjectID `json:"supplierId" dc:"关联供应商ID"`
SupplierName string `json:"supplierName" dc:"供应商名称"`
BatchNo string `json:"batchNo" dc:"批次号"`
BatchQty int `json:"batchQty" dc:"批次数量"`
AvailableQty int `json:"availableQty" dc:"可用数量"`
ProductionDate *gtime.Time `json:"productionDate" dc:"生产日期"`
ExpiryDate *gtime.Time `json:"expiryDate" dc:"过期日期"`
ExpiryWarningDate *gtime.Time `json:"expiryWarningDate" dc:"临期预警时间"`
MinStockThreshold int `json:"minStockThreshold" dc:"最低库存阈值"`
Status stock.ExpiryMessageStatus `json:"status" dc:"消息状态"`
StatusText string `json:"statusText" dc:"状态文本"`
ProcessedAt *gtime.Time `json:"processedAt" dc:"处理时间"`
Processor string `json:"processor" dc:"处理人"`
ProcessorName string `json:"processorName" dc:"处理人名称"`
ProcessNote string `json:"processNote" dc:"处理备注"`
ProcessMethod *stock.ExpiryProcessMethod `json:"processMethod" dc:"处理方式"`
ProcessMethodText string `json:"processMethodText" dc:"处理方式文本"`
PromotionPlanID string `json:"promotionPlanId" dc:"促销方案ID"`
SupportsRecycle bool `json:"supportsRecycle" dc:"是否支持回收"`
Notes string `json:"notes" dc:"备注"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
}
// ListInventoryWarningReq 获取库存预警列表请求
type ListInventoryWarningReq struct {
g.Meta `path:"/listInventoryWarnings" method:"get" tags:"库存预警管理" summary:"获取库存预警列表" dc:"分页查询库存预警列表"`
*beans.Page
OrderBy []beans.OrderBy `json:"orderBy" dc:"排序规则"`
WarningType *stock.WarningType `json:"warningType" dc:"预警类型"`
BatchID string `json:"batchId" dc:"关联批次ID单个兼容旧版"`
BatchIDs []string `json:"batchIds" dc:"批次ID列表批量查询"`
AssetID string `json:"assetId" dc:"关联资产ID单个兼容旧版"`
AssetIDs []string `json:"assetIds" dc:"资产ID列表批量查询"`
AssetSkuID string `json:"assetSkuId" dc:"关联资产SKU ID单个兼容旧版"`
AssetSkuIDs []string `json:"assetSkuIds" dc:"资产SKU ID列表批量查询"`
SupplierID string `json:"supplierId" dc:"关联供应商ID单个兼容旧版"`
SupplierIDs []string `json:"supplierIds" dc:"供应商ID列表批量查询"`
Status *stock.ExpiryMessageStatus `json:"status" dc:"消息状态"`
ProcessMethod *stock.ExpiryProcessMethod `json:"processMethod" dc:"处理方式"`
SupportsRecycle *bool `json:"supportsRecycle" dc:"是否支持回收"`
StartDate string `json:"startDate" dc:"开始日期"`
EndDate string `json:"endDate" dc:"结束日期"`
Keyword string `json:"keyword" dc:"关键词搜索(批次号/备注)"`
}
// ListInventoryWarningRes 获取库存预警列表响应
type ListInventoryWarningRes struct {
List []InventoryWarningListItem `json:"list" dc:"库存预警列表"`
Total int64 `json:"total" dc:"总数"`
}
// InventoryWarningListItem 库存预警列表项
type InventoryWarningListItem struct {
Id *bson.ObjectID `json:"id" dc:"预警ID"`
WarningType stock.WarningType `json:"warningType" dc:"预警类型"`
WarningTypeText string `json:"warningTypeText" dc:"预警类型文本"`
BatchID *bson.ObjectID `json:"batchId" dc:"关联批次ID"`
BatchNo string `json:"batchNo" dc:"批次号"`
AssetID *bson.ObjectID `json:"assetId" dc:"关联资产ID"`
AssetName string `json:"assetName" dc:"资产名称"`
AssetSkuID *bson.ObjectID `json:"assetSkuId" dc:"关联资产SKU ID"`
AssetSkuName string `json:"assetSkuName" dc:"资产SKU名称"`
SupplierID *bson.ObjectID `json:"supplierId" dc:"关联供应商ID"`
SupplierName string `json:"supplierName" dc:"供应商名称"`
BatchQty int `json:"batchQty" dc:"批次数量"`
AvailableQty int `json:"availableQty" dc:"可用数量"`
ProductionDate *gtime.Time `json:"productionDate" dc:"生产日期"`
ExpiryDate *gtime.Time `json:"expiryDate" dc:"过期日期"`
MinStockThreshold int `json:"minStockThreshold" dc:"最低库存阈值"`
Status stock.ExpiryMessageStatus `json:"status" dc:"消息状态"`
StatusText string `json:"statusText" dc:"状态文本"`
ProcessedAt *gtime.Time `json:"processedAt" dc:"处理时间"`
Processor string `json:"processor" dc:"处理人"`
ProcessorName string `json:"processorName" dc:"处理人名称"`
ProcessMethod *stock.ExpiryProcessMethod `json:"processMethod" dc:"处理方式"`
ProcessMethodText string `json:"processMethodText" dc:"处理方式文本"`
SupportsRecycle bool `json:"supportsRecycle" dc:"是否支持回收"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
}
// ProcessInventoryWarningReq 处理库存预警请求
type ProcessInventoryWarningReq struct {
g.Meta `path:"/processInventoryWarning" method:"post" tags:"库存预警管理" summary:"处理库存预警" dc:"处理库存预警"`
Id *bson.ObjectID `json:"id" v:"required" dc:"预警ID"`
Status stock.ExpiryMessageStatus `json:"status" v:"required" dc:"处理状态"`
Processor string `json:"processor" v:"required" dc:"处理人"`
ProcessNote string `json:"processNote" dc:"处理备注"`
ProcessMethod *stock.ExpiryProcessMethod `json:"processMethod" dc:"处理方式"`
PromotionPlanID string `json:"promotionPlanId" dc:"促销方案ID"`
}
// ProcessInventoryWarningRes 处理库存预警响应
type ProcessInventoryWarningRes struct {
Id *bson.ObjectID `json:"id" dc:"预警ID"`
}

View File

@@ -0,0 +1,117 @@
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"
)
// GetInventoryWarningHistoryReq 获取预警历史详情请求
type GetInventoryWarningHistoryReq struct {
g.Meta `path:"/getInventoryWarningHistory" method:"get" tags:"预警历史管理" summary:"获取预警历史详情" dc:"获取预警历史详情"`
Id *bson.ObjectID `json:"id" v:"required" dc:"预警历史ID"`
}
// GetInventoryWarningHistoryRes 获取预警历史详情响应
type GetInventoryWarningHistoryRes struct {
Id *bson.ObjectID `json:"id" dc:"预警历史ID"`
WarningType stock.WarningType `json:"warningType" dc:"预警类型"`
WarningTypeText string `json:"warningTypeText" dc:"预警类型文本"`
BatchID *bson.ObjectID `json:"batchId" dc:"批次ID"`
BatchNo string `json:"batchNo" dc:"批次号"`
AssetID *bson.ObjectID `json:"assetId" dc:"资产ID"`
AssetName string `json:"assetName" dc:"资产名称"`
AssetSkuID *bson.ObjectID `json:"assetSkuId" dc:"资产SKU ID"`
AssetSkuName string `json:"assetSkuName" dc:"资产SKU名称"`
SupplierID *bson.ObjectID `json:"supplierId" dc:"供应商ID"`
SupplierName string `json:"supplierName" dc:"供应商名称"`
BatchQty int `json:"batchQty" dc:"批次数量"`
AvailableQty int `json:"availableQty" dc:"可用数量"`
ProductionDate *gtime.Time `json:"productionDate" dc:"生产日期"`
ExpiryDate *gtime.Time `json:"expiryDate" dc:"过期日期"`
ExpiryWarningDate *gtime.Time `json:"expiryWarningDate" dc:"临期预警时间"`
MinStockThreshold int `json:"minStockThreshold" dc:"最低库存阈值"`
Status stock.ExpiryMessageStatus `json:"status" dc:"消息状态"`
StatusText string `json:"statusText" dc:"状态文本"`
ProcessedAt *gtime.Time `json:"processedAt" dc:"处理时间"`
Processor string `json:"processor" dc:"处理人"`
ProcessorName string `json:"processorName" dc:"处理人名称"`
ProcessNote string `json:"processNote" dc:"处理备注"`
ProcessMethod *stock.ExpiryProcessMethod `json:"processMethod" dc:"处理方式"`
ProcessMethodText string `json:"processMethodText" dc:"处理方式文本"`
PromotionPlanID *bson.ObjectID `json:"promotionPlanId" dc:"促销方案ID"`
SupportsRecycle bool `json:"supportsRecycle" dc:"是否支持回收"`
Notes string `json:"notes" dc:"备注"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
}
// ListInventoryWarningHistoryReq 获取预警历史列表请求
type ListInventoryWarningHistoryReq struct {
g.Meta `path:"/listInventoryWarningHistories" method:"get" tags:"预警历史管理" summary:"获取预警历史列表" dc:"分页查询预警历史列表"`
*beans.Page
OrderBy []beans.OrderBy `json:"orderBy" dc:"排序规则"`
WarningType *stock.WarningType `json:"warningType" dc:"预警类型"`
BatchID string `json:"batchId" dc:"批次ID单个兼容旧版"`
BatchIDs []string `json:"batchIds" dc:"批次ID列表批量查询"`
AssetID string `json:"assetId" dc:"资产ID单个兼容旧版"`
AssetIDs []string `json:"assetIds" dc:"资产ID列表批量查询"`
AssetSkuID string `json:"assetSkuId" dc:"资产SKU ID单个兼容旧版"`
AssetSkuIDs []string `json:"assetSkuIds" dc:"资产SKU ID列表批量查询"`
SupplierID string `json:"supplierId" dc:"供应商ID单个兼容旧版"`
SupplierIDs []string `json:"supplierIds" dc:"供应商ID列表批量查询"`
Status *stock.ExpiryMessageStatus `json:"status" dc:"消息状态"`
ProcessMethod *stock.ExpiryProcessMethod `json:"processMethod" dc:"处理方式"`
StartDate string `json:"startDate" dc:"开始日期"`
EndDate string `json:"endDate" dc:"结束日期"`
Keyword string `json:"keyword" dc:"关键词搜索(批次号)"`
}
// ListInventoryWarningHistoryRes 获取预警历史列表响应
type ListInventoryWarningHistoryRes struct {
List []InventoryWarningHistoryListItem `json:"list" dc:"预警历史列表"`
Total int64 `json:"total" dc:"总数"`
}
// InventoryWarningHistoryListItem 预警历史列表项
type InventoryWarningHistoryListItem struct {
Id *bson.ObjectID `json:"id" dc:"预警历史ID"`
WarningType stock.WarningType `json:"warningType" dc:"预警类型"`
WarningTypeText string `json:"warningTypeText" dc:"预警类型文本"`
BatchID *bson.ObjectID `json:"batchId" dc:"批次ID"`
BatchNo string `json:"batchNo" dc:"批次号"`
AssetID *bson.ObjectID `json:"assetId" dc:"资产ID"`
AssetName string `json:"assetName" dc:"资产名称"`
AssetSkuID *bson.ObjectID `json:"assetSkuId" dc:"资产SKU ID"`
AssetSkuName string `json:"assetSkuName" dc:"资产SKU名称"`
SupplierID *bson.ObjectID `json:"supplierId" dc:"供应商ID"`
SupplierName string `json:"supplierName" dc:"供应商名称"`
BatchQty int `json:"batchQty" dc:"批次数量"`
AvailableQty int `json:"availableQty" dc:"可用数量"`
ProductionDate *gtime.Time `json:"productionDate" dc:"生产日期"`
ExpiryDate *gtime.Time `json:"expiryDate" dc:"过期日期"`
MinStockThreshold int `json:"minStockThreshold" dc:"最低库存阈值"`
Status stock.ExpiryMessageStatus `json:"status" dc:"消息状态"`
StatusText string `json:"statusText" dc:"状态文本"`
ProcessedAt *gtime.Time `json:"processedAt" dc:"处理时间"`
Processor string `json:"processor" dc:"处理人"`
ProcessorName string `json:"processorName" dc:"处理人名称"`
ProcessMethod *stock.ExpiryProcessMethod `json:"processMethod" dc:"处理方式"`
ProcessMethodText string `json:"processMethodText" dc:"处理方式文本"`
SupportsRecycle bool `json:"supportsRecycle" dc:"是否支持回收"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
}
// DeleteInventoryWarningHistoryReq 删除预警历史请求
type DeleteInventoryWarningHistoryReq struct {
g.Meta `path:"/deleteInventoryWarningHistory" method:"delete" tags:"预警历史管理" summary:"删除预警历史" dc:"删除预警历史记录"`
Id *bson.ObjectID `json:"id" v:"required" dc:"预警历史ID"`
}
// DeleteInventoryWarningHistoryRes 删除预警历史响应
type DeleteInventoryWarningHistoryRes struct {
Id *bson.ObjectID `json:"id" dc:"预警历史ID"`
}

View File

@@ -0,0 +1,136 @@
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:"更新时间"`
}

View File

@@ -0,0 +1,137 @@
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"
)
// CreatePrivateStockReq 创建实物库存批次请求
type CreatePrivateStockReq struct {
g.Meta `path:"/createPrivateStock" method:"post" tags:"实物库存批次管理" summary:"创建实物库存批次" dc:"创建新的实物库存批次"`
WarehouseId *bson.ObjectID `json:"warehouseId" v:"required" dc:"仓库ID"`
ZoneId *bson.ObjectID `json:"zoneId" dc:"库区ID"`
LocationId *bson.ObjectID `json:"locationId" dc:"库位ID"`
PrivateSkuID *bson.ObjectID `json:"privateSkuId" v:"required" dc:"私域SKU ID"`
BatchNo string `json:"batchNo" v:"required" dc:"批次号"`
BatchQty int `json:"batchQty" v:"required|min:1" dc:"批次总数量"`
AvailableQty int `json:"availableQty" v:"required|min:0" dc:"可用数量"`
BatchStatus *stock.BatchStatus `json:"batchStatus" dc:"批次状态"`
StockStatus *stock.StockStatus `json:"stockStatus" dc:"库存状态"`
SupplierID *bson.ObjectID `json:"supplierId" dc:"供应商ID"`
SupportsRecycle bool `json:"supportsRecycle" dc:"是否支持回收"`
ProductionDate *gtime.Time `json:"productionDate" dc:"生产日期"`
ExpiryDate *gtime.Time `json:"expiryDate" dc:"过期日期"`
ExpiryWarningDate *gtime.Time `json:"expiryWarningDate" dc:"临期预警时间"`
PrivateCategoryPath string `json:"privateCategoryPath" dc:"私域分类路径"`
StockType stock.StockLocationType `json:"stockType" dc:"库存类型"`
}
// CreatePrivateStockRes 创建实物库存批次响应
type CreatePrivateStockRes struct {
Id *bson.ObjectID `json:"id"`
}
// UpdatePrivateStockReq 更新实物库存批次请求
type UpdatePrivateStockReq struct {
g.Meta `path:"/updatePrivateStock" method:"put" tags:"实物库存批次管理" summary:"更新实物库存批次" dc:"更新实物库存批次信息"`
Id *bson.ObjectID `json:"id" v:"required" dc:"实物库存批次ID"`
WarehouseId *bson.ObjectID `json:"warehouseId" dc:"仓库ID"`
ZoneId *bson.ObjectID `json:"zoneId" dc:"库区ID"`
LocationId *bson.ObjectID `json:"locationId" dc:"库位ID"`
PrivateSkuID *bson.ObjectID `json:"privateSkuId" dc:"私域SKU ID"`
BatchNo string `json:"batchNo" dc:"批次号"`
BatchQty int `json:"batchQty" dc:"批次总数量"`
AvailableQty int `json:"availableQty" dc:"可用数量"`
BatchStatus *stock.BatchStatus `json:"batchStatus" dc:"批次状态"`
StockStatus *stock.StockStatus `json:"stockStatus" dc:"库存状态"`
SupplierID *bson.ObjectID `json:"supplierId" dc:"供应商ID"`
SupportsRecycle *bool `json:"supportsRecycle" dc:"是否支持回收"`
ProductionDate *gtime.Time `json:"productionDate" dc:"生产日期"`
ExpiryDate *gtime.Time `json:"expiryDate" dc:"过期日期"`
ExpiryWarningDate *gtime.Time `json:"expiryWarningDate" dc:"临期预警时间"`
PrivateCategoryPath string `json:"privateCategoryPath" dc:"私域分类路径"`
StockType stock.StockLocationType `json:"stockType" dc:"库存类型"`
}
// DeletePrivateStockReq 删除私域库存请求
type DeletePrivateStockReq struct {
g.Meta `path:"/deletePrivateStock" method:"delete" tags:"私域库存管理" summary:"删除私域库存" dc:"删除私域库存"`
Id *bson.ObjectID `json:"id" v:"required" dc:"私域库存ID"`
}
// GetPrivateStockReq 获取私域库存详情请求
type GetPrivateStockReq struct {
g.Meta `path:"/getPrivateStock" method:"get" tags:"私域库存管理" summary:"获取私域库存详情" dc:"获取私域库存详情"`
Id *bson.ObjectID `json:"id" v:"required" dc:"私域库存ID"`
}
// GetPrivateStockRes 获取私域库存详情响应
type GetPrivateStockRes struct {
Id *bson.ObjectID `json:"id"`
StockType stock.StockLocationType `json:"stockType"`
WarehouseId *bson.ObjectID `json:"warehouseId"`
WarehouseCode string `json:"warehouseCode"`
WarehouseName string `json:"warehouseName"`
ZoneId *bson.ObjectID `json:"zoneId"`
ZoneCode string `json:"zoneCode"`
ZoneName string `json:"zoneName"`
ZoneType stock.ZoneType `json:"zoneType"`
LocationId *bson.ObjectID `json:"locationId"`
LocationCode string `json:"locationCode"`
LocationName string `json:"locationName"`
LocationType stock.LocationType `json:"locationType"`
PrivateSkuID *bson.ObjectID `json:"privateSkuId"`
BatchNo string `json:"batchNo"`
BatchQty int `json:"batchQty"`
AvailableQty int `json:"availableQty"`
BatchStatus stock.BatchStatus `json:"batchStatus"`
OrderID *bson.ObjectID `json:"orderId"`
SupplierID *bson.ObjectID `json:"supplierId"`
SupportsRecycle bool `json:"supportsRecycle"`
ProductionDate *gtime.Time `json:"productionDate"`
ExpiryDate *gtime.Time `json:"expiryDate"`
ExpiryWarningDate *gtime.Time `json:"expiryWarningDate"`
PrivateCategoryPath string `json:"privateCategoryPath"`
StockStatus stock.StockStatus `json:"stockStatus"`
LastMovedAt *gtime.Time `json:"lastMovedAt"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
}
// ListPrivateStockReq 获取私域库存列表请求
type ListPrivateStockReq struct {
g.Meta `path:"/listPrivateStocks" method:"get" tags:"私域库存管理" summary:"获取私域库存列表" dc:"分页查询私域库存列表"`
*beans.Page
OrderBy []beans.OrderBy `json:"orderBy" dc:"排序规则"`
WarehouseId *bson.ObjectID `json:"warehouseId" dc:"仓库ID"`
ZoneId *bson.ObjectID `json:"zoneId" dc:"库区ID"`
LocationId *bson.ObjectID `json:"locationId" dc:"库位ID"`
PrivateSkuID *bson.ObjectID `json:"privateSkuId" dc:"私域SKU ID"`
BatchStatus *stock.BatchStatus `json:"batchStatus" dc:"批次状态"`
StockStatus *stock.StockStatus `json:"stockStatus" dc:"库存状态"`
SupplierID *bson.ObjectID `json:"supplierId" dc:"供应商ID"`
PrivateCategoryPath string `json:"privateCategoryPath" dc:"私域分类路径"`
StockType stock.StockLocationType `json:"stockType" dc:"库存类型"`
}
// ListPrivateStockRes 获取私域库存列表响应
type ListPrivateStockRes struct {
List []GetPrivateStockRes `json:"list"`
Total int64 `json:"total"`
}
// OutboundPrivateStockReq 实物库存批次出库请求
type OutboundPrivateStockReq struct {
g.Meta `path:"/outboundPrivateStock" method:"post" tags:"实物库存批次管理" summary:"实物库存批次出库" dc:"实物库存批次出库操作"`
StockId *bson.ObjectID `json:"stockId" v:"required" dc:"实物库存批次ID"`
OutboundQty int `json:"outboundQty" v:"required|min:1" dc:"出库数量"`
StockType stock.StockLocationType `json:"stockType" v:"required" dc:"库存类型必须为PrivateStock"`
}

View File

@@ -0,0 +1,90 @@
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"
)
// CommonResp 通用响应
type CommonResp struct {
Success bool `json:"success"` // 是否成功
Message string `json:"message"` // 消息
}
// --- 批次管理API相关结构 ---
// CreateBatchReq 创建批次请求
type CreateBatchReq struct {
g.Meta `path:"/createBatch" method:"post" tags:"库存批次管理" summary:"创建批次" dc:"创建新的库存批次"`
AssetId *bson.ObjectID `json:"assetId" v:"required" dc:"资产ID"`
AssetSkuId *bson.ObjectID `json:"assetSkuId" v:"required" dc:"SKU ID"`
BatchNo string `json:"batchNo" v:"required" dc:"批次号"`
BatchQty int `json:"batchQty" v:"required|min:1" dc:"批次数量"`
AvailableQty int `json:"availableQty" v:"required|min:1" dc:"可用数量"`
Metadata []map[string]interface{} `json:"metadata" dc:"元数据"`
Status stock.BatchStatus `json:"status" dc:"状态"`
ProductionDate *gtime.Time `json:"productionDate" dc:"生产日期(格式:2006-01-02)"`
ExpiryDate *gtime.Time `json:"expiryDate" dc:"过期日期(格式:2006-01-02)"`
ExpiryWarningDate *gtime.Time `json:"expiryWarningDate" dc:"临期预警时间(格式:2006-01-02)"`
}
// CreateBatchRes 创建批次响应
type CreateBatchRes struct {
Id *bson.ObjectID `json:"id"` // 批次ID
}
// UpdateBatchReq 更新批次请求
type UpdateBatchReq struct {
g.Meta `path:"/updateBatch" method:"put" tags:"库存批次管理" summary:"更新批次" dc:"更新批次信息"`
Id *bson.ObjectID `json:"id" v:"required" dc:"批次ID"`
BatchQty int `json:"batchQty" v:"required|min:1" dc:"批次数量"`
AvailableQty int `json:"availableQty" v:"required|min:1" dc:"可用数量"`
}
// DeleteBatchReq 删除批次请求
type DeleteBatchReq struct {
g.Meta `path:"/deleteBatch" method:"delete" tags:"库存批次管理" summary:"删除批次" dc:"删除批次"`
Id *bson.ObjectID `json:"id" v:"required" dc:"批次ID"`
}
// GetBatchReq 获取批次详情请求
type GetBatchReq struct {
g.Meta `path:"/getBatch" method:"get" tags:"库存批次管理" summary:"获取批次详情" dc:"获取批次详情"`
Id *bson.ObjectID `json:"id" v:"required" dc:"批次ID"`
}
// GetBatchRes 获取批次详情响应
type GetBatchRes struct {
Id *bson.ObjectID `json:"id"`
AssetId *bson.ObjectID `json:"assetId"`
AssetSkuId *bson.ObjectID `json:"assetSkuId"`
BatchNo string `json:"batchNo"`
BatchQty int `json:"batchQty"`
AvailableQty int `json:"availableQty"`
Metadata []map[string]interface{} `json:"metadata"`
Status stock.BatchStatus `json:"status"`
ProductionDate *gtime.Time `json:"productionDate"`
ExpiryDate *gtime.Time `json:"expiryDate"`
ExpiryWarningDate *gtime.Time `json:"expiryWarningDate"`
}
// ListBatchReq 获取批次列表请求
type ListBatchReq struct {
g.Meta `path:"/listBatches" method:"get" tags:"库存批次管理" summary:"获取批次列表" dc:"分页查询批次列表"`
*beans.Page
OrderBy []beans.OrderBy `json:"orderBy" dc:"排序规则"`
AssetId *bson.ObjectID `json:"assetId" dc:"资产ID"`
AssetSkuId *bson.ObjectID `json:"assetSkuId" dc:"SKU ID"`
}
// ListBatchRes 获取批次列表响应
type ListBatchRes struct {
List []GetBatchRes `json:"list"`
Total int64 `json:"total"`
}

View File

@@ -0,0 +1,67 @@
package dto
import (
"assets/consts/stock"
"gitea.com/red-future/common/beans"
"github.com/gogf/gf/v2/frame/g"
"go.mongodb.org/mongo-driver/v2/bson"
)
// GetStockDetailsReq 获取库存明细详情请求
type GetStockDetailsReq struct {
g.Meta `path:"/getStockDetails" method:"get" tags:"库存明细管理" summary:"获取库存明细详情" dc:"获取库存明细详情"`
Id *bson.ObjectID `json:"id" v:"required" dc:"库存明细ID"`
}
// GetStockDetailsRes 获取库存明细详情响应
type GetStockDetailsRes struct {
Id *bson.ObjectID `json:"id"`
AssetId *bson.ObjectID `json:"assetId"`
AssetSkuId *bson.ObjectID `json:"assetSkuId"`
Status stock.StockStatus `json:"status"`
OrderId *bson.ObjectID `json:"orderId"`
LockExpire string `json:"lockExpire"`
Metadata map[string]interface{} `json:"metadata"`
TokenId string `json:"tokenId"`
AssignedChannel string `json:"assignedChannel"`
ChannelSKU string `json:"channelSku"`
AllocatedAt string `json:"allocatedAt"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
}
// ListStockDetailsReq 获取库存明细列表请求
type ListStockDetailsReq struct {
g.Meta `path:"/listStockDetails" method:"get" tags:"库存明细管理" summary:"获取库存明细列表" dc:"分页查询库存明细列表,支持多条件筛选"`
*beans.Page
OrderBy []beans.OrderBy `json:"orderBy" dc:"排序规则"`
AssetId *bson.ObjectID `json:"assetId" dc:"资产ID"`
AssetSkuId *bson.ObjectID `json:"assetSkuId" dc:"SKU ID"`
CategoryPath string `json:"categoryPath" dc:"分类路径"`
Status stock.StockStatus `json:"status" dc:"状态"`
}
// ListStockDetailsRes 获取库存明细列表响应
type ListStockDetailsRes struct {
List []*StockDetailsListItem `json:"list" dc:"库存明细列表"`
Total int64 `json:"total" dc:"总数"`
}
// StockDetailsListItem 库存明细列表项
type StockDetailsListItem struct {
Id *bson.ObjectID `json:"id"`
AssetId *bson.ObjectID `json:"assetId"`
AssetSkuId *bson.ObjectID `json:"assetSkuId"`
Status stock.StockStatus `json:"status"`
OrderId *bson.ObjectID `json:"orderId"`
LockExpire string `json:"lockExpire"`
Metadata map[string]interface{} `json:"metadata"`
TokenId *bson.ObjectID `json:"tokenId"`
AssignedChannel string `json:"assignedChannel"`
ChannelSKU string `json:"channelSku"`
AllocatedAt string `json:"allocatedAt"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
}

View File

@@ -0,0 +1,77 @@
package dto
import (
"assets/consts/stock"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gtime"
"go.mongodb.org/mongo-driver/v2/bson"
)
type StockOperationReq struct {
g.Meta `path:"/stockOperation" method:"post" tags:"库存管理" summary:"库存操作(创建/修改)" dc:"库存操作(创建/修改)"`
AssetSkuId *bson.ObjectID `json:"assetSkuId" v:"required" dc:"关联资产SKU ID"`
Stock int `json:"stock" v:"required|min:1" dc:"库存数量"`
// 批次模式专用字段
BatchNo string `json:"batchNo" dc:"批次号(批次模式必填)"`
ProductionDate *gtime.Time `json:"productionDate" dc:"生产日期(批次模式,格式:2006-01-02)"`
ExpiryDate *gtime.Time `json:"expiryDate" dc:"过期日期(批次模式,格式:2006-01-02)"`
ExpiryWarningDate *gtime.Time `json:"expiryWarningDate" dc:"临期预警时间(格式:2006-01-02)"`
}
// StockPublishMessage 库存发布消息
type StockPublishMessage struct {
AssetId string `json:"assetId"`
AssetSkuId string `json:"assetSkuId"`
TenantId interface{} `json:"tenantId"`
UserName interface{} `json:"userName"`
StockCount int `json:"stockCount"`
OperationType string `json:"operationType"`
Metadata []map[string]interface{} `json:"metadata"`
StockId string `json:"stockId"`
StockMode int `json:"stockMode"`
BatchNo string `json:"batchNo"`
ProductionDate *gtime.Time `json:"productionDate"`
ExpiryDate *gtime.Time `json:"expiryDate"`
ExpiryWarningDate *gtime.Time `json:"expiryWarningDate"`
}
// GetStockFormFieldsReq 获取库存表单字段请求
type GetStockFormFieldsReq struct {
g.Meta `path:"/getStockFormFields" method:"get" tags:"库存管理" summary:"获取库存操作表单字段" dc:"根据资产SKU的库存管理模式动态返回表单字段"`
AssetSkuId *bson.ObjectID `json:"assetSkuId" v:"required" dc:"关联资产ID"`
}
// GetStockFormFieldsRes 获取库存表单字段响应
type GetStockFormFieldsRes struct {
StockMode stock.StockMode `json:"stockMode" dc:"库存管理模式:1-明细模式 2-批次模式"`
Fields []map[string]interface{} `json:"fields" dc:"表单字段列表"`
}
// MoveStockReq 移库请求(库位间移动)
type MoveStockReq struct {
g.Meta `path:"/moveStock" method:"post" tags:"库存管理" summary:"移库" dc:"将库存从一个库位移动到另一个库位(仅支持私域库存)"`
StockType stock.StockLocationType `json:"stockType" v:"required|in:2" dc:"库存类型2-PrivateStock仅支持私域库存"`
StockId *bson.ObjectID `json:"stockId" v:"required" dc:"私域库存ID"`
FromLocationId *bson.ObjectID `json:"fromLocationId" v:"required" dc:"源库位ID"`
ToLocationId *bson.ObjectID `json:"toLocationId" v:"required" dc:"目标库位ID"`
Quantity int `json:"quantity" dc:"移动数量(保留字段,暂未使用)"`
Remark string `json:"remark" dc:"备注"`
}
// TransferStockReq 调拨请求(仓库间调拨)
type TransferStockReq struct {
g.Meta `path:"/transferStock" method:"post" tags:"库存管理" summary:"调拨" dc:"将库存从一个仓库调拨到另一个仓库(仅支持私域库存)"`
StockType stock.StockLocationType `json:"stockType" v:"required|in:2" dc:"库存类型2-PrivateStock仅支持私域库存"`
StockId *bson.ObjectID `json:"stockId" v:"required" dc:"私域库存ID"`
FromWarehouseId *bson.ObjectID `json:"fromWarehouseId" v:"required" dc:"源仓库ID"`
ToWarehouseId *bson.ObjectID `json:"toWarehouseId" v:"required" dc:"目标仓库ID"`
ToZoneId *bson.ObjectID `json:"toZoneId" dc:"目标库区ID可选"`
ToLocationId *bson.ObjectID `json:"toLocationId" dc:"目标库位ID可选"`
Quantity int `json:"quantity" dc:"调拨数量(保留字段,暂未使用)"`
Remark string `json:"remark" dc:"备注"`
}

View File

@@ -0,0 +1 @@
package dto

View File

@@ -0,0 +1 @@
package dto

View File

@@ -0,0 +1,56 @@
package dto
import (
"assets/consts/stock"
entity "assets/model/entity/stock"
"github.com/gogf/gf/v2/frame/g"
"go.mongodb.org/mongo-driver/v2/bson"
)
// CreateUnitConversionReq 创建单位换算请求
type CreateUnitConversionReq struct {
g.Meta `path:"/createUnitConversion" method:"post" tags:"单位换算" summary:"创建单位换算" dc:"创建新的单位换算规则"`
ConversionCode string `json:"conversionCode" v:"required" dc:"换算编码"`
ConversionName string `json:"conversionName" v:"required" dc:"换算名称"`
UnitType stock.CapacityUnitType `json:"unitType" v:"required" dc:"单位类型"`
FromUnit string `json:"fromUnit" v:"required" dc:"源单位"`
ToUnit string `json:"toUnit" v:"required" dc:"目标单位"`
ConversionFactor float64 `json:"conversionFactor" v:"required|min:0" dc:"换算系数"`
Remark string `json:"remark" dc:"备注"`
}
type CreateUnitConversionRes struct {
Id *bson.ObjectID `json:"id" dc:"换算规则ID"`
}
// UpdateUnitConversionReq 更新单位换算请求
type UpdateUnitConversionReq struct {
g.Meta `path:"/updateUnitConversion" method:"put" tags:"单位换算" summary:"更新单位换算" dc:"更新单位换算规则"`
Id *bson.ObjectID `json:"id" v:"required" dc:"换算规则ID"`
ConversionCode string `json:"conversionCode" dc:"换算编码"`
ConversionName string `json:"conversionName" dc:"换算名称"`
UnitType stock.CapacityUnitType `json:"unitType" dc:"单位类型"`
FromUnit string `json:"fromUnit" dc:"源单位"`
ToUnit string `json:"toUnit" dc:"目标单位"`
ConversionFactor float64 `json:"conversionFactor" v:"min:0" dc:"换算系数"`
Remark string `json:"remark" dc:"备注"`
}
// DeleteUnitConversionReq 删除单位换算请求
type DeleteUnitConversionReq struct {
g.Meta `path:"/deleteUnitConversion" method:"delete" tags:"单位换算" summary:"删除单位换算" dc:"删除单位换算规则"`
Id *bson.ObjectID `json:"id" v:"required" dc:"换算规则ID"`
}
// ListUnitConversionReq 查询单位换算列表请求
type ListUnitConversionReq struct {
g.Meta `path:"/listUnitConversion" method:"get" tags:"单位换算" summary:"查询单位换算列表" dc:"查询单位换算规则列表"`
UnitType *stock.CapacityUnitType `json:"unitType" dc:"过滤单位类型"`
FromUnit string `json:"fromUnit" dc:"过滤源单位"`
ToUnit string `json:"toUnit" dc:"过滤目标单位"`
}
type ListUnitConversionRes struct {
List []entity.UnitConversion `json:"list" dc:"换算规则列表"`
}

View File

@@ -0,0 +1,115 @@
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"
)
// CreateWarehouseReq 创建仓库请求
type CreateWarehouseReq struct {
g.Meta `path:"/createWarehouse" method:"post" tags:"仓库管理" summary:"创建仓库" dc:"创建新的仓库"`
WarehouseCode string `json:"warehouseCode" v:"required|max-length:50#仓库编码不能为空|仓库编码不能超过50个字符" dc:"仓库编码"`
WarehouseName string `json:"warehouseName" v:"required|max-length:100#仓库名称不能为空|仓库名称不能超过100个字符" dc:"仓库名称"`
Address string `json:"address" dc:"仓库地址"`
ContactPerson string `json:"contactPerson" dc:"联系人"`
ContactPhone string `json:"contactPhone" dc:"联系电话"`
Status *stock.WarehouseStatus `json:"status" dc:"仓库状态(可选,默认启用)"`
Remark string `json:"remark" dc:"备注"`
}
// CreateWarehouseRes 创建仓库响应
type CreateWarehouseRes struct {
Id *bson.ObjectID `json:"id" dc:"仓库ID"`
}
// UpdateWarehouseReq 更新仓库请求
type UpdateWarehouseReq struct {
g.Meta `path:"/updateWarehouse" method:"put" tags:"仓库管理" summary:"更新仓库" dc:"更新仓库信息"`
Id *bson.ObjectID `json:"id" v:"required" dc:"仓库ID"`
WarehouseCode string `json:"warehouseCode" dc:"仓库编码"`
WarehouseName string `json:"warehouseName" dc:"仓库名称"`
Address string `json:"address" dc:"仓库地址"`
ContactPerson string `json:"contactPerson" dc:"联系人"`
ContactPhone string `json:"contactPhone" dc:"联系电话"`
Status *stock.WarehouseStatus `json:"status" dc:"仓库状态"`
Remark string `json:"remark" dc:"备注"`
}
// UpdateWarehouseRes 更新仓库响应
type UpdateWarehouseRes struct {
Id *bson.ObjectID `json:"id" dc:"仓库ID"`
}
// DeleteWarehouseReq 删除仓库请求
type DeleteWarehouseReq struct {
g.Meta `path:"/deleteWarehouse" method:"delete" tags:"仓库管理" summary:"删除仓库" dc:"删除仓库"`
Id *bson.ObjectID `json:"id" v:"required" dc:"仓库ID"`
}
// UpdateWarehouseStatusReq 更新仓库状态请求
type UpdateWarehouseStatusReq struct {
g.Meta `path:"/updateWarehouseStatus" method:"put" tags:"仓库管理" summary:"更新仓库状态" dc:"单独更新仓库状态(启用/停用)"`
Id *bson.ObjectID `json:"id" v:"required" dc:"仓库ID"`
Status stock.WarehouseStatus `json:"status" v:"required|in:enable,disable#状态不能为空|状态值无效" dc:"仓库状态"`
}
// DeleteWarehouseRes 删除仓库响应
type DeleteWarehouseRes struct {
Id *bson.ObjectID `json:"id" dc:"仓库ID"`
}
// GetWarehouseReq 获取仓库详情请求
type GetWarehouseReq struct {
g.Meta `path:"/getWarehouse" method:"get" tags:"仓库管理" summary:"获取仓库详情" dc:"获取仓库详情"`
Id *bson.ObjectID `json:"id" v:"required" dc:"仓库ID"`
}
// GetWarehouseRes 获取仓库详情响应
type GetWarehouseRes struct {
Id *bson.ObjectID `json:"id" dc:"仓库ID"`
WarehouseCode string `json:"warehouseCode" dc:"仓库编码"`
WarehouseName string `json:"warehouseName" dc:"仓库名称"`
Address string `json:"address" dc:"仓库地址"`
ContactPerson string `json:"contactPerson" dc:"联系人"`
ContactPhone string `json:"contactPhone" dc:"联系电话"`
Status stock.WarehouseStatus `json:"status" dc:"仓库状态"`
StatusText string `json:"statusText" dc:"状态文本"`
Remark string `json:"remark" dc:"备注"`
ZoneCount int `json:"zoneCount" dc:"库区数量"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
}
// ListWarehouseReq 获取仓库列表请求
type ListWarehouseReq struct {
g.Meta `path:"/listWarehouses" method:"get" tags:"仓库管理" summary:"获取仓库列表" dc:"分页查询仓库列表"`
*beans.Page
OrderBy []beans.OrderBy `json:"orderBy" dc:"排序规则"`
Status *stock.WarehouseStatus `json:"status" dc:"仓库状态"`
Keyword string `json:"keyword" dc:"关键词搜索(编码/名称)"`
}
// ListWarehouseRes 获取仓库列表响应
type ListWarehouseRes struct {
List []WarehouseListItem `json:"list" dc:"仓库列表"`
Total int64 `json:"total" dc:"总数"`
}
// WarehouseListItem 仓库列表项
type WarehouseListItem struct {
Id *bson.ObjectID `json:"id" dc:"仓库ID"`
WarehouseCode string `json:"warehouseCode" dc:"仓库编码"`
WarehouseName string `json:"warehouseName" dc:"仓库名称"`
Address string `json:"address" dc:"仓库地址"`
ContactPerson string `json:"contactPerson" dc:"联系人"`
ContactPhone string `json:"contactPhone" dc:"联系电话"`
Status stock.WarehouseStatus `json:"status" dc:"仓库状态"`
StatusText string `json:"statusText" dc:"状态文本"`
ZoneCount int `json:"zoneCount" dc:"库区数量"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
}

122
model/dto/stock/zone_dto.go Normal file
View File

@@ -0,0 +1,122 @@
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"
)
// CreateZoneReq 创建库区请求
type CreateZoneReq struct {
g.Meta `path:"/createZone" method:"post" tags:"库区管理" summary:"创建库区" dc:"创建新的库区"`
WarehouseId string `json:"warehouseId" v:"required" dc:"仓库ID"`
ZoneCode string `json:"zoneCode" v:"required|max-length:50#库区编码不能为空|库区编码不能超过50个字符" dc:"库区编码"`
ZoneName string `json:"zoneName" v:"required|max-length:100#库区名称不能为空|库区名称不能超过100个字符" dc:"库区名称"`
ZoneType stock.ZoneType `json:"zoneType" v:"required" dc:"库区类型"`
Capacity int `json:"capacity" dc:"容量"`
Status *stock.ZoneStatus `json:"status" dc:"库区状态(可选,默认启用)"`
Remark string `json:"remark" dc:"备注"`
}
// CreateZoneRes 创建库区响应
type CreateZoneRes struct {
Id *bson.ObjectID `json:"id" dc:"库区ID"`
}
// UpdateZoneReq 更新库区请求
type UpdateZoneReq struct {
g.Meta `path:"/updateZone" method:"put" tags:"库区管理" summary:"更新库区" dc:"更新库区信息"`
Id *bson.ObjectID `json:"id" v:"required" dc:"库区ID"`
WarehouseId string `json:"warehouseId" dc:"仓库ID"`
ZoneCode string `json:"zoneCode" dc:"库区编码"`
ZoneName string `json:"zoneName" dc:"库区名称"`
ZoneType *stock.ZoneType `json:"zoneType" dc:"库区类型"`
Capacity *int `json:"capacity" dc:"容量"`
Status *stock.ZoneStatus `json:"status" dc:"库区状态"`
Remark string `json:"remark" dc:"备注"`
}
// UpdateZoneRes 更新库区响应
type UpdateZoneRes struct {
Id *bson.ObjectID `json:"id" dc:"库区ID"`
}
// DeleteZoneReq 删除库区请求
type DeleteZoneReq struct {
g.Meta `path:"/deleteZone" method:"delete" tags:"库区管理" summary:"删除库区" dc:"删除库区"`
Id *bson.ObjectID `json:"id" v:"required" dc:"库区ID"`
}
// UpdateZoneStatusReq 更新库区状态请求
type UpdateZoneStatusReq struct {
g.Meta `path:"/updateZoneStatus" method:"put" tags:"库区管理" summary:"更新库区状态" dc:"单独更新库区状态(启用/停用)"`
Id *bson.ObjectID `json:"id" v:"required" dc:"库区ID"`
Status stock.ZoneStatus `json:"status" v:"required|in:enable,disable#状态不能为空|状态值无效" dc:"库区状态"`
}
// DeleteZoneRes 删除库区响应
type DeleteZoneRes struct {
Id *bson.ObjectID `json:"id" dc:"库区ID"`
}
// GetZoneReq 获取库区详情请求
type GetZoneReq struct {
g.Meta `path:"/getZone" method:"get" tags:"库区管理" summary:"获取库区详情" dc:"获取库区详情"`
Id *bson.ObjectID `json:"id" v:"required" dc:"库区ID"`
}
// GetZoneRes 获取库区详情响应
type GetZoneRes struct {
Id *bson.ObjectID `json:"id" dc:"库区ID"`
WarehouseId string `json:"warehouseId" dc:"仓库ID"`
WarehouseName string `json:"warehouseName" dc:"仓库名称"`
ZoneCode string `json:"zoneCode" dc:"库区编码"`
ZoneName string `json:"zoneName" dc:"库区名称"`
ZoneType stock.ZoneType `json:"zoneType" dc:"库区类型"`
ZoneTypeText string `json:"zoneTypeText" dc:"库区类型文本"`
Capacity int `json:"capacity" dc:"容量"`
Status stock.ZoneStatus `json:"status" dc:"库区状态"`
StatusText string `json:"statusText" dc:"状态文本"`
Remark string `json:"remark" dc:"备注"`
LocationCount int `json:"locationCount" dc:"库位数量"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
}
// ListZoneReq 获取库区列表请求
type ListZoneReq struct {
g.Meta `path:"/listZones" 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列表批量查询"`
ZoneType *stock.ZoneType `json:"zoneType" dc:"库区类型"`
Status *stock.ZoneStatus `json:"status" dc:"库区状态"`
Keyword string `json:"keyword" dc:"关键词搜索(编码/名称)"`
}
// ListZoneRes 获取库区列表响应
type ListZoneRes struct {
List []ZoneListItem `json:"list" dc:"库区列表"`
Total int64 `json:"total" dc:"总数"`
}
// ZoneListItem 库区列表项
type ZoneListItem struct {
Id *bson.ObjectID `json:"id" dc:"库区ID"`
WarehouseId string `json:"warehouseId" dc:"仓库ID"`
WarehouseName string `json:"warehouseName" dc:"仓库名称"`
ZoneCode string `json:"zoneCode" dc:"库区编码"`
ZoneName string `json:"zoneName" dc:"库区名称"`
ZoneType stock.ZoneType `json:"zoneType" dc:"库区类型"`
ZoneTypeText string `json:"zoneTypeText" dc:"库区类型文本"`
Capacity int `json:"capacity" dc:"容量"`
Status stock.ZoneStatus `json:"status" dc:"库区状态"`
StatusText string `json:"statusText" dc:"状态文本"`
LocationCount int `json:"locationCount" dc:"库位数量"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
}