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,17 @@
package consts
// AssetSkuStatus SKU状态枚举
type AssetSkuStatus int
const (
AssetSkuStatusActive AssetSkuStatus = 1 // 启用
AssetSkuStatusInactive AssetSkuStatus = 0 // 停用
)
// GetAllSkuStatuses 获取所有SKU状态
func GetAllSkuStatuses() []AssetSkuStatus {
return []AssetSkuStatus{
AssetSkuStatusActive,
AssetSkuStatusInactive,
}
}

View File

@@ -0,0 +1,17 @@
package consts
// AssetStatus 资产状态枚举
type AssetStatus int
const (
AssetStatusActive AssetStatus = 1 // 启用
AssetStatusInactive AssetStatus = 0 // 停用
)
// GetAllAssetStatuses 获取所有资产状态
func GetAllAssetStatuses() []AssetStatus {
return []AssetStatus{
AssetStatusActive,
AssetStatusInactive,
}
}

View File

@@ -0,0 +1,73 @@
package consts
// AssetType 资产类型枚举
type AssetType string
const (
AssetTypePhysical AssetType = "physical" // 实物资产
AssetTypeVirtual AssetType = "virtual" // 虚拟资产
AssetTypeService AssetType = "service" // 服务资产
)
// GetAllAssetTypeKey 获取所有资产类型
func GetAllAssetTypeKey() []AssetType {
return []AssetType{
AssetTypePhysical,
AssetTypeVirtual,
AssetTypeService,
}
}
type AssetTypeKeyValue struct {
Key AssetType // 对应原有常量值physical/virtual/service
Value string // 对应描述信息(实物资产/虚拟资产/服务资产)
}
// 定义枚举实例Key-Value 绑定),相当于改造后的常量
var (
AssetTypePhysicalKeyValue = AssetTypeKeyValue{Key: AssetTypePhysical, Value: "实物资产"}
AssetTypeVirtualKeyValue = AssetTypeKeyValue{Key: AssetTypeVirtual, Value: "虚拟资产"}
AssetTypeServiceKeyValue = AssetTypeKeyValue{Key: AssetTypeService, Value: "服务资产"}
)
func GetAllAssetTypeKeyValue() []AssetTypeKeyValue {
return []AssetTypeKeyValue{
AssetTypePhysicalKeyValue,
AssetTypeVirtualKeyValue,
AssetTypeServiceKeyValue,
}
}
// -------------- 核心构建Map映射 + 查询方法 --------------
// 预初始化资产类型映射表(包初始化时执行,仅初始化一次)
var assetTypeValueMap = map[AssetType]string{
AssetTypePhysical: AssetTypePhysicalKeyValue.Value,
AssetTypeVirtual: AssetTypeVirtualKeyValue.Value,
AssetTypeService: AssetTypeServiceKeyValue.Value,
}
// GetAssetTypeValueByKey 根据 AssetType 键获取对应的描述值
// 返回值:第一个返回值是描述信息,第二个返回值是是否存在该键
func GetAssetTypeValueByKey(key AssetType) (value string) {
value, exists := assetTypeValueMap[key]
if !exists {
value = "未知资产类型"
}
return
}
// VirtualAssetType 虚拟资产类型二级分类枚举
type VirtualAssetType string
const (
VirtualAssetTypeRecharge VirtualAssetType = "recharge" // 虚拟资产-充值
VirtualTypeSubscribe VirtualAssetType = "subscribe" // 服务资产-订阅
)
// ServiceAssetType 服务资产类型二级分类枚举
type ServiceAssetType string
const (
ServiceAssetTypeArrival ServiceAssetType = "arrival" // 虚拟资产-到店
ServiceTypeVisit ServiceAssetType = "visit" // 服务资产-上门
)

View File

@@ -0,0 +1,47 @@
package consts
// AttributeType 属性类型枚举
type AttributeType string
const (
AttributeTypeText AttributeType = "text" // 文本
//AttributeTypeNumber AttributeType = "number" // 数字
//AttributeTypeDate AttributeType = "date" // 日期
AttributeTypeSelect AttributeType = "select" // 单选
AttributeTypeMultiSelect AttributeType = "multi_select" // 多选
)
// GetAllAttributeTypes 获取所有属性类型
func GetAllAttributeTypes() []AttributeType {
return []AttributeType{
AttributeTypeText,
//AttributeTypeNumber,
//AttributeTypeDate,
AttributeTypeSelect,
AttributeTypeMultiSelect,
}
}
type AttrTypeKeyValue struct {
Key AttributeType // 对应原有常量值
Value string // 对应描述信息
}
// 定义枚举实例Key-Value 绑定),相当于改造后的常量
var (
AttrTypeTextKeyValue = AttrTypeKeyValue{Key: AttributeTypeText, Value: "文本"}
//AttrTypeNumberKeyValue = AttrTypeKeyValue{Key: AttributeTypeNumber, Value: "数字"}
//AttrTypeDateKeyValue = AttrTypeKeyValue{Key: AttributeTypeDate, Value: "日期"}
AttrTypeSelectKeyValue = AttrTypeKeyValue{Key: AttributeTypeSelect, Value: "单选"}
AttrTypeMultiSelectKeyValue = AttrTypeKeyValue{Key: AttributeTypeMultiSelect, Value: "多选"}
)
func GetAllAttrTypeKeyValue() []AttrTypeKeyValue {
return []AttrTypeKeyValue{
AttrTypeTextKeyValue,
//AttrTypeNumberKeyValue,
//AttrTypeDateKeyValue,
AttrTypeSelectKeyValue,
AttrTypeMultiSelectKeyValue,
}
}

View File

@@ -0,0 +1,14 @@
package consts
// CategoryStatus 分类状态枚举
type CategoryStatusType *int
type CategoryStatus struct {
Status CategoryStatusType
}
//var CategoryStatusVal = CategoryStatus{
// CategoryStatusActive: gconv.PtrInt(1),
// CategoryStatusInactive: gconv.PtrInt(0),
//}

View File

@@ -0,0 +1,52 @@
package consts
// ApprovalStatus 审批状态枚举
type ApprovalStatus int
const (
ApprovalStatusPending ApprovalStatus = 1 // 待审批
ApprovalStatusApproved ApprovalStatus = 2 // 已批准
ApprovalStatusRejected ApprovalStatus = 3 // 已拒绝
ApprovalStatusCanceled ApprovalStatus = 4 // 已撤销
)
// GetAllApprovalStatuses 获取所有审批状态
func GetAllApprovalStatuses() []ApprovalStatus {
return []ApprovalStatus{
ApprovalStatusPending,
ApprovalStatusApproved,
ApprovalStatusRejected,
ApprovalStatusCanceled,
}
}
// String 获取审批状态字符串表示
func (a ApprovalStatus) String() string {
switch a {
case ApprovalStatusPending:
return "待审批"
case ApprovalStatusApproved:
return "已批准"
case ApprovalStatusRejected:
return "已拒绝"
case ApprovalStatusCanceled:
return "已撤销"
default:
return "未知"
}
}
type ApprovalStatusKeyValue struct {
Key int `json:"key"`
Value string `json:"value"`
}
// GetAllApprovalStatusKeyValue 获取所有审批状态的键值对
func GetAllApprovalStatusKeyValue() []ApprovalStatusKeyValue {
return []ApprovalStatusKeyValue{
{Key: 1, Value: "待审批"},
{Key: 2, Value: "已批准"},
{Key: 3, Value: "已拒绝"},
{Key: 4, Value: "已撤销"},
}
}

View File

@@ -0,0 +1,52 @@
package consts
// BidMode 竞价模式枚举
type BidMode string
const (
BidModePrice BidMode = "price" // 优先价格
BidModeQuality BidMode = "quality" // 优先质量
BidModeTime BidMode = "time" // 优先时效
BidModeMixed BidMode = "mixed" // 综合评价
)
// GetAllBidModes 获取所有竞价模式
func GetAllBidModes() []BidMode {
return []BidMode{
BidModePrice,
BidModeQuality,
BidModeTime,
BidModeMixed,
}
}
// String 获取竞价模式字符串表示
func (b BidMode) String() string {
switch b {
case BidModePrice:
return "优先价格"
case BidModeQuality:
return "优先质量"
case BidModeTime:
return "优先时效"
case BidModeMixed:
return "综合评价"
default:
return "未知"
}
}
// IsValidBidMode 验证竞价模式是否有效
func (b BidMode) IsValid() bool {
switch b {
case BidModePrice, BidModeQuality, BidModeTime, BidModeMixed:
return true
default:
return false
}
}
// GetBidModeText 获取竞价模式文本
func GetBidModeText(bidMode BidMode) string {
return bidMode.String()
}

View File

@@ -0,0 +1,49 @@
package consts
// BidStatus 投标状态枚举
type BidStatus string
const (
BidStatusDraft BidStatus = "draft" // 草稿
BidStatusSubmitted BidStatus = "submitted" // 已提交
BidStatusViewed BidStatus = "viewed" // 已查看
BidStatusWinning BidStatus = "winning" // 中标
BidStatusLost BidStatus = "lost" // 未中标
BidStatusWithdrawn BidStatus = "withdrawn" // 已撤回
BidStatusExpired BidStatus = "expired" // 已过期
)
// GetAllBidStatuses 获取所有投标状态
func GetAllBidStatuses() []BidStatus {
return []BidStatus{
BidStatusDraft,
BidStatusSubmitted,
BidStatusViewed,
BidStatusWinning,
BidStatusLost,
BidStatusWithdrawn,
BidStatusExpired,
}
}
// String 获取投标状态字符串表示
func (b BidStatus) String() string {
switch b {
case BidStatusDraft:
return "草稿"
case BidStatusSubmitted:
return "已提交"
case BidStatusViewed:
return "已查看"
case BidStatusWinning:
return "中标"
case BidStatusLost:
return "未中标"
case BidStatusWithdrawn:
return "已撤回"
case BidStatusExpired:
return "已过期"
default:
return "未知"
}
}

View File

@@ -0,0 +1,21 @@
package consts
// BillingMethod 计费方式枚举
type BillingMethod string
const (
BillingMethodCount BillingMethod = "count" // 按数量
BillingMethodDuration BillingMethod = "duration" // 按时长
BillingMethodSku BillingMethod = "sku" // 按SKU
BillingMethodDurationAndSku BillingMethod = "duration_and_sku" // 按时长+SKU
)
// GetAllBillingMethods 获取所有计费方式
func GetAllBillingMethods() []BillingMethod {
return []BillingMethod{
BillingMethodCount,
BillingMethodDuration,
BillingMethodSku,
BillingMethodDurationAndSku,
}
}

View File

@@ -0,0 +1,47 @@
package consts
// ProcessMethod 处理方式枚举
type ProcessMethod int
const (
ProcessMethodRefund ProcessMethod = 1 // 退款
ProcessMethodReplace ProcessMethod = 2 // 更换
ProcessMethodRepair ProcessMethod = 3 // 维修
)
// GetAllProcessMethods 获取所有处理方式
func GetAllProcessMethods() []ProcessMethod {
return []ProcessMethod{
ProcessMethodRefund,
ProcessMethodReplace,
ProcessMethodRepair,
}
}
// String 获取处理方式字符串表示
func (p ProcessMethod) String() string {
switch p {
case ProcessMethodRefund:
return "退款"
case ProcessMethodReplace:
return "更换"
case ProcessMethodRepair:
return "维修"
default:
return "未知"
}
}
type ProcessMethodKeyValue struct {
Key int `json:"key"`
Value string `json:"value"`
}
// GetAllProcessMethodKeyValue 获取所有处理方式的键值对
func GetAllProcessMethodKeyValue() []ProcessMethodKeyValue {
return []ProcessMethodKeyValue{
{Key: 1, Value: "退款"},
{Key: 2, Value: "更换"},
{Key: 3, Value: "维修"},
}
}

View File

@@ -0,0 +1,58 @@
package consts
// PurchaseOrderStatus 采购订单状态枚举
type PurchaseOrderStatus string
const (
PurchaseOrderStatusDraft PurchaseOrderStatus = "draft" // 草稿
PurchaseOrderStatusPublished PurchaseOrderStatus = "published" // 已发布
PurchaseOrderStatusProcessing PurchaseOrderStatus = "processing" // 处理中
PurchaseOrderStatusAssigned PurchaseOrderStatus = "assigned" // 已指派
PurchaseOrderStatusBidding PurchaseOrderStatus = "bidding" // 竞价中
PurchaseOrderStatusCompleted PurchaseOrderStatus = "completed" // 已完成
PurchaseOrderStatusCancelled PurchaseOrderStatus = "cancelled" // 已取消
PurchaseOrderStatusExpired PurchaseOrderStatus = "expired" // 已过期
)
// GetAllPurchaseOrderStatuses 获取所有采购订单状态
func GetAllPurchaseOrderStatuses() []PurchaseOrderStatus {
return []PurchaseOrderStatus{
PurchaseOrderStatusDraft,
PurchaseOrderStatusPublished,
PurchaseOrderStatusProcessing,
PurchaseOrderStatusAssigned,
PurchaseOrderStatusBidding,
PurchaseOrderStatusCompleted,
PurchaseOrderStatusCancelled,
PurchaseOrderStatusExpired,
}
}
// String 获取采购订单状态字符串表示
func (p PurchaseOrderStatus) String() string {
switch p {
case PurchaseOrderStatusDraft:
return "草稿"
case PurchaseOrderStatusPublished:
return "已发布"
case PurchaseOrderStatusProcessing:
return "处理中"
case PurchaseOrderStatusAssigned:
return "已指派"
case PurchaseOrderStatusBidding:
return "竞价中"
case PurchaseOrderStatusCompleted:
return "已完成"
case PurchaseOrderStatusCancelled:
return "已取消"
case PurchaseOrderStatusExpired:
return "已过期"
default:
return "未知"
}
}
// GetPurchaseOrderStatusText 获取采购订单状态文本
func GetPurchaseOrderStatusText(status PurchaseOrderStatus) string {
return status.String()
}

View File

@@ -0,0 +1,53 @@
package consts
// PurchaseOrderType 采购订单类型枚举
type PurchaseOrderType string
const (
PurchaseOrderTypeDirect PurchaseOrderType = "direct" // 直接采购(指定供应商)
PurchaseOrderTypeBidding PurchaseOrderType = "bidding" // 竞价采购
PurchaseOrderTypeAuction PurchaseOrderType = "auction" // 拍卖采购
PurchaseOrderTypeGroup PurchaseOrderType = "group" // 团购采购
)
// GetAllPurchaseOrderTypes 获取所有采购订单类型
func GetAllPurchaseOrderTypes() []PurchaseOrderType {
return []PurchaseOrderType{
PurchaseOrderTypeDirect,
PurchaseOrderTypeBidding,
PurchaseOrderTypeAuction,
PurchaseOrderTypeGroup,
}
}
// String 获取采购订单类型字符串表示
func (p PurchaseOrderType) String() string {
switch p {
case PurchaseOrderTypeDirect:
return "直接采购"
case PurchaseOrderTypeBidding:
return "竞价采购"
case PurchaseOrderTypeAuction:
return "拍卖采购"
case PurchaseOrderTypeGroup:
return "团购采购"
default:
return "未知"
}
}
// IsValidOrderType 验证订单类型是否有效
func (p PurchaseOrderType) IsValid() bool {
switch p {
case PurchaseOrderTypeDirect, PurchaseOrderTypeBidding,
PurchaseOrderTypeAuction, PurchaseOrderTypeGroup:
return true
default:
return false
}
}
// GetPurchaseOrderTypeText 获取采购订单类型文本
func GetPurchaseOrderTypeText(orderType PurchaseOrderType) string {
return orderType.String()
}

View File

@@ -0,0 +1,57 @@
package consts
// PurchaseStatus 采购单状态枚举
type PurchaseStatus string
const (
PurchaseStatusNotArrived PurchaseStatus = "not_arrived" // 未到货
PurchaseStatusReceived PurchaseStatus = "received" // 已入库
PurchaseStatusPartial PurchaseStatus = "partial" // 部分入库
PurchaseStatusCancelled PurchaseStatus = "cancelled" // 已取消
)
// GetAllPurchaseStatuses 获取所有采购单状态
func GetAllPurchaseStatuses() []PurchaseStatus {
return []PurchaseStatus{
PurchaseStatusNotArrived,
PurchaseStatusReceived,
PurchaseStatusPartial,
PurchaseStatusCancelled,
}
}
type PurchaseStatusKeyValue struct {
Key PurchaseStatus
Value string
}
var (
PurchaseStatusNotArrivedKeyValue = PurchaseStatusKeyValue{Key: PurchaseStatusNotArrived, Value: "未到货"}
PurchaseStatusReceivedKeyValue = PurchaseStatusKeyValue{Key: PurchaseStatusReceived, Value: "已入库"}
PurchaseStatusPartialKeyValue = PurchaseStatusKeyValue{Key: PurchaseStatusPartial, Value: "部分入库"}
PurchaseStatusCancelledKeyValue = PurchaseStatusKeyValue{Key: PurchaseStatusCancelled, Value: "已取消"}
)
func GetAllPurchaseStatusKeyValue() []PurchaseStatusKeyValue {
return []PurchaseStatusKeyValue{
PurchaseStatusNotArrivedKeyValue,
PurchaseStatusReceivedKeyValue,
PurchaseStatusPartialKeyValue,
PurchaseStatusCancelledKeyValue,
}
}
var purchaseStatusValueMap = map[PurchaseStatus]string{
PurchaseStatusNotArrived: PurchaseStatusNotArrivedKeyValue.Value,
PurchaseStatusReceived: PurchaseStatusReceivedKeyValue.Value,
PurchaseStatusPartial: PurchaseStatusPartialKeyValue.Value,
PurchaseStatusCancelled: PurchaseStatusCancelledKeyValue.Value,
}
func GetPurchaseStatusValueByKey(key PurchaseStatus) (value string) {
value, exists := purchaseStatusValueMap[key]
if !exists {
value = "未知状态"
}
return
}

View File

@@ -0,0 +1,53 @@
package consts
// ReturnItemStatus 退换明细状态枚举
type ReturnItemStatus string
const (
ReturnItemStatusPending ReturnItemStatus = "pending" // 待处理
ReturnItemStatusApproved ReturnItemStatus = "approved" // 已批准
ReturnItemStatusRejected ReturnItemStatus = "rejected" // 已拒绝
ReturnItemStatusShipped ReturnItemStatus = "shipped" // 已发货
ReturnItemStatusReceived ReturnItemStatus = "received" // 已收货
ReturnItemStatusProcessing ReturnItemStatus = "processing" // 处理中
ReturnItemStatusCompleted ReturnItemStatus = "completed" // 已完成
ReturnItemStatusCancelled ReturnItemStatus = "cancelled" // 已取消
)
// GetAllReturnItemStatuses 获取所有退换明细状态
func GetAllReturnItemStatuses() []ReturnItemStatus {
return []ReturnItemStatus{
ReturnItemStatusPending,
ReturnItemStatusApproved,
ReturnItemStatusRejected,
ReturnItemStatusShipped,
ReturnItemStatusReceived,
ReturnItemStatusProcessing,
ReturnItemStatusCompleted,
ReturnItemStatusCancelled,
}
}
// String 获取退换明细状态字符串表示
func (r ReturnItemStatus) String() string {
switch r {
case ReturnItemStatusPending:
return "待处理"
case ReturnItemStatusApproved:
return "已批准"
case ReturnItemStatusRejected:
return "已拒绝"
case ReturnItemStatusShipped:
return "已发货"
case ReturnItemStatusReceived:
return "已收货"
case ReturnItemStatusProcessing:
return "处理中"
case ReturnItemStatusCompleted:
return "已完成"
case ReturnItemStatusCancelled:
return "已取消"
default:
return "未知"
}
}

View File

@@ -0,0 +1,65 @@
package consts
// ReturnReason 退换原因枚举
type ReturnReason string
const (
ReturnReasonQualityDefect ReturnReason = "quality_defect" // 质量问题
ReturnReasonDamaged ReturnReason = "damaged" // 运输损坏
ReturnReasonWrongGoods ReturnReason = "wrong_goods" // 错发商品
ReturnReasonExpired ReturnReason = "expired" // 商品过期
ReturnReasonNotAsDescribed ReturnReason = "not_as_described" // 与描述不符
ReturnReasonOverstock ReturnReason = "overstock" // 库存积压
ReturnReasonChangeMind ReturnReason = "change_mind" // 改变主意
ReturnReasonDuplicateOrder ReturnReason = "duplicate_order" // 重复下单
ReturnReasonPriceError ReturnReason = "price_error" // 价格错误
ReturnReasonSupplierDelay ReturnReason = "supplier_delay" // 供应商延期
ReturnReasonOther ReturnReason = "other" // 其他原因
)
// GetAllReturnReasons 获取所有退换原因
func GetAllReturnReasons() []ReturnReason {
return []ReturnReason{
ReturnReasonQualityDefect,
ReturnReasonDamaged,
ReturnReasonWrongGoods,
ReturnReasonExpired,
ReturnReasonNotAsDescribed,
ReturnReasonOverstock,
ReturnReasonChangeMind,
ReturnReasonDuplicateOrder,
ReturnReasonPriceError,
ReturnReasonSupplierDelay,
ReturnReasonOther,
}
}
// String 获取退换原因字符串表示
func (r ReturnReason) String() string {
switch r {
case ReturnReasonQualityDefect:
return "质量问题"
case ReturnReasonDamaged:
return "运输损坏"
case ReturnReasonWrongGoods:
return "错发商品"
case ReturnReasonExpired:
return "商品过期"
case ReturnReasonNotAsDescribed:
return "与描述不符"
case ReturnReasonOverstock:
return "库存积压"
case ReturnReasonChangeMind:
return "改变主意"
case ReturnReasonDuplicateOrder:
return "重复下单"
case ReturnReasonPriceError:
return "价格错误"
case ReturnReasonSupplierDelay:
return "供应商延期"
case ReturnReasonOther:
return "其他原因"
default:
return "未知"
}
}

View File

@@ -0,0 +1,57 @@
package consts
// ReturnStatus 退换状态枚举
type ReturnStatus string
const (
ReturnStatusDraft ReturnStatus = "draft" // 草稿
ReturnStatusPending ReturnStatus = "pending" // 待审核
ReturnStatusApproved ReturnStatus = "approved" // 已审核通过
ReturnStatusRejected ReturnStatus = "rejected" // 审核拒绝
ReturnStatusShipped ReturnStatus = "shipped" // 已发货(退货中)
ReturnStatusReceived ReturnStatus = "received" // 已收货
ReturnStatusProcessing ReturnStatus = "processing" // 处理中
ReturnStatusCompleted ReturnStatus = "completed" // 已完成
ReturnStatusCancelled ReturnStatus = "cancelled" // 已取消
)
// GetAllReturnStatuses 获取所有退换状态
func GetAllReturnStatuses() []ReturnStatus {
return []ReturnStatus{
ReturnStatusDraft,
ReturnStatusPending,
ReturnStatusApproved,
ReturnStatusRejected,
ReturnStatusShipped,
ReturnStatusReceived,
ReturnStatusProcessing,
ReturnStatusCompleted,
ReturnStatusCancelled,
}
}
// String 获取退换状态字符串表示
func (r ReturnStatus) String() string {
switch r {
case ReturnStatusDraft:
return "草稿"
case ReturnStatusPending:
return "待审核"
case ReturnStatusApproved:
return "已审核通过"
case ReturnStatusRejected:
return "审核拒绝"
case ReturnStatusShipped:
return "已发货(退货中)"
case ReturnStatusReceived:
return "已收货"
case ReturnStatusProcessing:
return "处理中"
case ReturnStatusCompleted:
return "已完成"
case ReturnStatusCancelled:
return "已取消"
default:
return "未知"
}
}

View File

@@ -0,0 +1,33 @@
package consts
// ReturnType 退换类型枚举
type ReturnType string
const (
ReturnTypeReturn ReturnType = "return" // 退货
ReturnTypeRefund ReturnType = "refund" // 退款
ReturnTypeExchange ReturnType = "exchange" // 换货
)
// GetAllReturnTypes 获取所有退换类型
func GetAllReturnTypes() []ReturnType {
return []ReturnType{
ReturnTypeReturn,
ReturnTypeRefund,
ReturnTypeExchange,
}
}
// String 获取退换类型字符串表示
func (r ReturnType) String() string {
switch r {
case ReturnTypeReturn:
return "退货"
case ReturnTypeRefund:
return "退款"
case ReturnTypeExchange:
return "换货"
default:
return "未知"
}
}

View File

@@ -0,0 +1,52 @@
package consts
// ReviewStatus 审核状态枚举
type ReviewStatus int
const (
ReviewStatusPending ReviewStatus = 1 // 待审核
ReviewStatusApproved ReviewStatus = 2 // 已通过
ReviewStatusRejected ReviewStatus = 3 // 已拒绝
ReviewStatusCanceled ReviewStatus = 4 // 已撤销
)
// GetAllReviewStatuses 获取所有审核状态
func GetAllReviewStatuses() []ReviewStatus {
return []ReviewStatus{
ReviewStatusPending,
ReviewStatusApproved,
ReviewStatusRejected,
ReviewStatusCanceled,
}
}
// String 获取审核状态字符串表示
func (r ReviewStatus) String() string {
switch r {
case ReviewStatusPending:
return "待审核"
case ReviewStatusApproved:
return "已通过"
case ReviewStatusRejected:
return "已拒绝"
case ReviewStatusCanceled:
return "已撤销"
default:
return "未知"
}
}
type ReviewStatusKeyValue struct {
Key int `json:"key"`
Value string `json:"value"`
}
// GetAllReviewStatusKeyValue 获取所有审核状态的键值对
func GetAllReviewStatusKeyValue() []ReviewStatusKeyValue {
return []ReviewStatusKeyValue{
{Key: 1, Value: "待审核"},
{Key: 2, Value: "已通过"},
{Key: 3, Value: "已拒绝"},
{Key: 4, Value: "已撤销"},
}
}

View File

@@ -0,0 +1,29 @@
package consts
// SupplierStatus 供应商状态枚举
type SupplierStatus int
const (
SupplierStatusActive SupplierStatus = 1 // 活跃
SupplierStatusInactive SupplierStatus = 0 // 停用
)
// GetAllSupplierStatuses 获取所有供应商状态
func GetAllSupplierStatuses() []SupplierStatus {
return []SupplierStatus{
SupplierStatusActive,
SupplierStatusInactive,
}
}
// GetSupplierStatusText 获取供应商状态文本
func GetSupplierStatusText(status SupplierStatus) string {
switch status {
case SupplierStatusActive:
return "活跃"
case SupplierStatusInactive:
return "停用"
default:
return "未知"
}
}

View File

@@ -0,0 +1,32 @@
package public
// MongoDB集合名称常量
const (
AssetCollection = "assets_asset" // 资产集合
CategoryCollection = "assets_category" // 分类集合
PrivateCategoryCollection = "private_category" // 私域分类集合
StockDetailsCollection = "stock_details" // 库存明细集合
StockBatchCollection = "stock_batch" // 库存批次集合
PrivateStockCollection = "private_stock" // 私域库存批次集合
PurchaseOrderCollection = "purchase_order" // 采购订单主表集合(统一模式)
PurchaseOrderItemCollection = "purchase_order_item" // 采购订单明细集合
PurchaseBidCollection = "purchase_bid" // 采购投标单集合(供应商抢单参与记录)
AssetSkuCollection = "asset_sku" // SKU集合
PrivateSkuCollection = "private_sku" // 私域sku集合
SupplierCollection = "supplier" // 供应商集合
ExpiryMessageCollection = "expiry_message" // 临期消息集合(兼容旧数据)
ExpiryMessageHistoryCollection = "expiry_message_history" // 临期消息历史集合(兼容旧数据)
InventoryWarningCollection = "inventory_warning" // 库存预警集合
InventoryWarningHistoryCollection = "inventory_warning_history" // 库存预警历史集合
PurchaseReturnCollection = "purchase_return" // 采购退换单主表集合
PurchaseReturnItemCollection = "purchase_return_item" // 采购退换单明细集合
PurchaseInboundCollection = "purchase_inbound" // 采购入库记录集合
DealerStockCollection = "dealer_stock" // 经销商库存集合
WarehouseCollection = "warehouse" // 仓库集合
ZoneCollection = "zone" // 库区集合
LocationCollection = "location" // 库位集合
InventoryCountCollection = "inventory_count" // 库存盘点主表集合
InventoryCountDetailCollection = "inventory_count_detail" // 库存盘点明细表集合
InventoryCountAdjustHistoryCollection = "inventory_count_adjust_history" // 库存盘点调整历史表集合
UnitConversionCollection = "unit_conversion" // 单位换算集合
)

17
consts/public/currency.go Normal file
View File

@@ -0,0 +1,17 @@
package public
// Currency 货币类型枚举
type Currency string
const (
CurrencyCNY Currency = "CNY" // 人民币
CurrencyUSD Currency = "USD" // 美元
)
// GetAllCurrencies 获取所有货币类型
func GetAllCurrencies() []Currency {
return []Currency{
CurrencyCNY,
CurrencyUSD,
}
}

View File

@@ -0,0 +1,66 @@
package public
import (
"time"
"github.com/gogf/gf/v2/os/gtime"
)
// DurationType 时长类型枚举
type DurationType string
const (
DurationTypeHour DurationType = "hour" // 小时
DurationTypeDay DurationType = "day" // 天
DurationTypeMonth DurationType = "month" // 月
DurationTypeYear DurationType = "year" // 年
)
// GetAllDurationTypes 获取所有时长类型
func GetAllDurationTypes() []DurationType {
return []DurationType{
DurationTypeHour,
DurationTypeDay,
DurationTypeMonth,
DurationTypeYear,
}
}
type DurationTypeKeyValue struct {
Key DurationType // 对应原有常量值
Value string // 对应描述信息
}
// 定义枚举实例Key-Value 绑定),相当于改造后的常量
var (
DurationTypeHourKeyValue = DurationTypeKeyValue{Key: DurationTypeHour, Value: "小时"}
DurationTypeDayKeyValue = DurationTypeKeyValue{Key: DurationTypeDay, Value: "天"}
DurationTypeMonthKeyValue = DurationTypeKeyValue{Key: DurationTypeMonth, Value: "月"}
DurationTypeYearKeyValue = DurationTypeKeyValue{Key: DurationTypeYear, Value: "年"}
)
func GetAllDurationTypeKeyValue() []DurationTypeKeyValue {
return []DurationTypeKeyValue{
DurationTypeHourKeyValue,
DurationTypeDayKeyValue,
DurationTypeMonthKeyValue,
DurationTypeYearKeyValue,
}
}
// AddTime 根据时长类型和数量计算到期时间
func (dt DurationType) AddTime(count int) *gtime.Time {
now := gtime.Now()
switch dt {
case DurationTypeHour:
return gtime.NewFromTime(now.Time.Add(time.Hour * time.Duration(count)))
case DurationTypeDay:
return gtime.NewFromTime(now.Time.AddDate(0, 0, count))
case DurationTypeMonth:
return gtime.NewFromTime(now.Time.AddDate(0, count, 0))
case DurationTypeYear:
return gtime.NewFromTime(now.Time.AddDate(count, 0, 0))
default:
return now
}
}

View File

@@ -0,0 +1,17 @@
package public
const StockDetailLockKey = "stock:lock:skuId-%s"
// 消费者配置(从 Redis Stream 消费请求)
const StockDetailQueueName = "assets:stock:detail:request:stream" // 请求 Stream 键名与发消息的key一致
const StockDetailGroupName = "assets:stock:detail:consumer:group" // 消费者组名
const StockDetailConsumerName = "message-consumer-1" // 消费者名称(唯一标识)
const StockDetailPrefetchCount = 1 // 批处理大小每次读取1条
const StockDetailAutoAck = false // ACK是否自动确认true自动确认false不确认
// 业务自增序列号前缀 Redis Key
const (
StockInventoryNoKeyPrefix = "IC" // 序列号Key前缀如 IC-202602101215-000001
StockInboundNoKeyPrefix = "INB" // 序列号Key前缀如 INB-202602101215-000001
StockBatchNoKeyPrefix = "BATCH" // 序列号Key前缀如 BATCH-202602101215-000001
)

View File

@@ -0,0 +1,145 @@
package public
import "fmt"
// SyncPlatform 同步渠道平台枚举
type SyncPlatform string
const (
SyncPlatformTaobao SyncPlatform = "taobao" // 淘宝
SyncPlatformJD SyncPlatform = "jd" // 京东
SyncPlatformKuaishou SyncPlatform = "kuaishou" // 快手
SyncPlatformDouyin SyncPlatform = "douyin" // 抖音
SyncPlatformXiaohongshu SyncPlatform = "xiaohongshu" // 小红书
SyncPlatformPinduoduo SyncPlatform = "pinduoduo" // 拼多多
SyncPlatformXianyu SyncPlatform = "xianyu" // 闲鱼
SyncPlatformBlockchain SyncPlatform = "blockchain" // 区块链平台
SyncPlatformInternal SyncPlatform = "internal" // 内部平台
)
// SyncStatus 同步状态枚举
type SyncStatus string
const (
SyncStatusPending SyncStatus = "pending" // 等待同步
SyncStatusSyncing SyncStatus = "syncing" // 同步中
SyncStatusSuccess SyncStatus = "success" // 同步成功
SyncStatusFailed SyncStatus = "failed" // 同步失败
)
// SyncType 同步类型
type SyncType string
const (
SyncTypeIncremental SyncType = "incremental" // 增量同步
)
// PlatformSyncConfig 平台同步配置结构
type PlatformSyncConfig struct {
Platform SyncPlatform // 平台名称
IsEnabled bool // 是否启用
SyncInterval int // 同步间隔(秒)
BatchSize int // 批量同步数量
MaxRetries int // 最大重试次数
APIEndpoint string // API端点地址
Description string // 平台描述
}
// GetPlatformSyncConfig 获取平台默认同步配置
func GetPlatformSyncConfig(platform SyncPlatform) (PlatformSyncConfig, error) {
switch platform {
case SyncPlatformTaobao:
return PlatformSyncConfig{
Platform: SyncPlatformTaobao,
IsEnabled: true,
SyncInterval: 300, // 5分钟
BatchSize: 50, // 淘宝API限制较严
MaxRetries: 3,
APIEndpoint: "https://eco.taobao.com/router/rest",
Description: "淘宝电商平台API限制严格",
}, nil
case SyncPlatformJD:
return PlatformSyncConfig{
Platform: SyncPlatformJD,
IsEnabled: true,
SyncInterval: 240, // 4分钟
BatchSize: 100, // 京东API支持较大批次
MaxRetries: 3,
APIEndpoint: "https://api.jd.com/routerjson",
Description: "京东电商平台API相对稳定",
}, nil
case SyncPlatformKuaishou:
return PlatformSyncConfig{
Platform: SyncPlatformKuaishou,
IsEnabled: true,
SyncInterval: 180, // 3分钟直播数据更新快
BatchSize: 80,
MaxRetries: 2, // 快手API相对不稳定
APIEndpoint: "https://open.kuaishou.com/api",
Description: "快手直播平台,数据更新频繁",
}, nil
case SyncPlatformDouyin:
return PlatformSyncConfig{
Platform: SyncPlatformDouyin,
IsEnabled: true,
SyncInterval: 120, // 2分钟内容更新非常频繁
BatchSize: 60,
MaxRetries: 3,
APIEndpoint: "https://open.douyin.com/api",
Description: "抖音短视频平台,实时性要求高",
}, nil
case SyncPlatformXiaohongshu:
return PlatformSyncConfig{
Platform: SyncPlatformXiaohongshu,
IsEnabled: true,
SyncInterval: 300, // 5分钟
BatchSize: 40, // 小红书API限制严格
MaxRetries: 2,
APIEndpoint: "https://open.xiaohongshu.com/api",
Description: "小红书内容平台API调用频率限制严格",
}, nil
case SyncPlatformPinduoduo:
return PlatformSyncConfig{
Platform: SyncPlatformPinduoduo,
IsEnabled: true,
SyncInterval: 360, // 6分钟避免频率限制
BatchSize: 120, // 拼多多支持大批次
MaxRetries: 3,
APIEndpoint: "https://open.pinduoduo.com/api",
Description: "拼多多电商平台,需要控制调用频率",
}, nil
case SyncPlatformXianyu:
return PlatformSyncConfig{
Platform: SyncPlatformXianyu,
IsEnabled: false, // 默认关闭
SyncInterval: 600, // 10分钟闲鱼更新较慢
BatchSize: 30,
MaxRetries: 1,
APIEndpoint: "https://api.xianyu.com/api",
Description: "闲鱼二手平台,数据更新较慢,谨慎使用",
}, nil
case SyncPlatformBlockchain:
return PlatformSyncConfig{
Platform: SyncPlatformBlockchain,
IsEnabled: true,
SyncInterval: 60, // 1分钟需要高实时性
BatchSize: 20, // 区块链数据复杂,减小批次
MaxRetries: 5, // 区块链网络可能不稳定
APIEndpoint: "https://api.blockchain.com/api",
Description: "区块链平台,数据需要高实时性和稳定性",
}, nil
case SyncPlatformInternal:
return PlatformSyncConfig{
Platform: SyncPlatformInternal,
IsEnabled: true,
SyncInterval: 30, // 30秒内部系统实时性高
BatchSize: 200, // 内部系统支持大批次
MaxRetries: 1, // 内部系统稳定
APIEndpoint: "http://localhost:3004/api",
Description: "内部系统平台,高实时性和大批次处理能力",
}, nil
default:
// 返回错误,未知平台
return PlatformSyncConfig{}, fmt.Errorf("unsupported sync platform: %s", platform)
}
}

View File

@@ -0,0 +1,21 @@
package stock
// BatchStatus 批次状态枚举
type BatchStatus int
const (
BatchStatusActive BatchStatus = 1 // 活跃
BatchStatusExpiring BatchStatus = 2 // 临期
BatchStatusExpired BatchStatus = 3 // 过期
BatchStatusSoldOut BatchStatus = 4 // 售罄
)
// GetAllBatchStatuses 获取所有批次状态
func GetAllBatchStatuses() []BatchStatus {
return []BatchStatus{
BatchStatusActive,
BatchStatusExpiring,
BatchStatusExpired,
BatchStatusSoldOut,
}
}

View File

@@ -0,0 +1,57 @@
package stock
// CapacityUnitArea 面积单位枚举
type CapacityUnitArea string
const (
CapacityUnitAreaSquareM CapacityUnitArea = "M2" // 平方米
CapacityUnitAreaSquareFT CapacityUnitArea = "FT2" // 平方英尺
CapacityUnitAreaSquareIN CapacityUnitArea = "IN2" // 平方英寸
CapacityUnitAreaSquareCM CapacityUnitArea = "CM2" // 平方厘米
)
// GetAllCapacityUnitAreas 获取所有面积单位
func GetAllCapacityUnitAreas() []CapacityUnitArea {
return []CapacityUnitArea{
CapacityUnitAreaSquareM,
CapacityUnitAreaSquareFT,
CapacityUnitAreaSquareIN,
CapacityUnitAreaSquareCM,
}
}
type CapacityUnitAreaKeyValue struct {
Key CapacityUnitArea
Value string
}
var (
CapacityUnitAreaSquareMKeyValue = CapacityUnitAreaKeyValue{Key: CapacityUnitAreaSquareM, Value: "平方米"}
CapacityUnitAreaSquareFTKeyValue = CapacityUnitAreaKeyValue{Key: CapacityUnitAreaSquareFT, Value: "平方英尺"}
CapacityUnitAreaSquareINKeyValue = CapacityUnitAreaKeyValue{Key: CapacityUnitAreaSquareIN, Value: "平方英寸"}
CapacityUnitAreaSquareCMKeyValue = CapacityUnitAreaKeyValue{Key: CapacityUnitAreaSquareCM, Value: "平方厘米"}
)
func GetAllCapacityUnitAreaKeyValue() []CapacityUnitAreaKeyValue {
return []CapacityUnitAreaKeyValue{
CapacityUnitAreaSquareMKeyValue,
CapacityUnitAreaSquareFTKeyValue,
CapacityUnitAreaSquareINKeyValue,
CapacityUnitAreaSquareCMKeyValue,
}
}
var capacityUnitAreaValueMap = map[CapacityUnitArea]string{
CapacityUnitAreaSquareM: CapacityUnitAreaSquareMKeyValue.Value,
CapacityUnitAreaSquareFT: CapacityUnitAreaSquareFTKeyValue.Value,
CapacityUnitAreaSquareIN: CapacityUnitAreaSquareINKeyValue.Value,
CapacityUnitAreaSquareCM: CapacityUnitAreaSquareCMKeyValue.Value,
}
func GetCapacityUnitAreaValueByKey(key CapacityUnitArea) (value string) {
value, exists := capacityUnitAreaValueMap[key]
if !exists {
value = "未知单位"
}
return
}

View File

@@ -0,0 +1,72 @@
package stock
// CapacityUnitLength 长度单位枚举
type CapacityUnitLength string
const (
CapacityUnitLengthM CapacityUnitLength = "M" // 米
CapacityUnitLengthCM CapacityUnitLength = "CM" // 厘米
CapacityUnitLengthMM CapacityUnitLength = "MM" // 毫米
CapacityUnitLengthKM CapacityUnitLength = "KM" // 千米
CapacityUnitLengthFT CapacityUnitLength = "FT" // 英尺
CapacityUnitLengthIN CapacityUnitLength = "IN" // 英寸
CapacityUnitLengthYD CapacityUnitLength = "YD" // 码
)
// GetAllCapacityUnitLengths 获取所有长度单位
func GetAllCapacityUnitLengths() []CapacityUnitLength {
return []CapacityUnitLength{
CapacityUnitLengthM,
CapacityUnitLengthCM,
CapacityUnitLengthMM,
CapacityUnitLengthKM,
CapacityUnitLengthFT,
CapacityUnitLengthIN,
CapacityUnitLengthYD,
}
}
type CapacityUnitLengthKeyValue struct {
Key CapacityUnitLength
Value string
}
var (
CapacityUnitLengthMKeyValue = CapacityUnitLengthKeyValue{Key: CapacityUnitLengthM, Value: "米"}
CapacityUnitLengthCMKeyValue = CapacityUnitLengthKeyValue{Key: CapacityUnitLengthCM, Value: "厘米"}
CapacityUnitLengthMMKeyValue = CapacityUnitLengthKeyValue{Key: CapacityUnitLengthMM, Value: "毫米"}
CapacityUnitLengthKMKeyValue = CapacityUnitLengthKeyValue{Key: CapacityUnitLengthKM, Value: "千米"}
CapacityUnitLengthFTKeyValue = CapacityUnitLengthKeyValue{Key: CapacityUnitLengthFT, Value: "英尺"}
CapacityUnitLengthINKeyValue = CapacityUnitLengthKeyValue{Key: CapacityUnitLengthIN, Value: "英寸"}
CapacityUnitLengthYDKeyValue = CapacityUnitLengthKeyValue{Key: CapacityUnitLengthYD, Value: "码"}
)
func GetAllCapacityUnitLengthKeyValue() []CapacityUnitLengthKeyValue {
return []CapacityUnitLengthKeyValue{
CapacityUnitLengthMKeyValue,
CapacityUnitLengthCMKeyValue,
CapacityUnitLengthMMKeyValue,
CapacityUnitLengthKMKeyValue,
CapacityUnitLengthFTKeyValue,
CapacityUnitLengthINKeyValue,
CapacityUnitLengthYDKeyValue,
}
}
var capacityUnitLengthValueMap = map[CapacityUnitLength]string{
CapacityUnitLengthM: CapacityUnitLengthMKeyValue.Value,
CapacityUnitLengthCM: CapacityUnitLengthCMKeyValue.Value,
CapacityUnitLengthMM: CapacityUnitLengthMMKeyValue.Value,
CapacityUnitLengthKM: CapacityUnitLengthKMKeyValue.Value,
CapacityUnitLengthFT: CapacityUnitLengthFTKeyValue.Value,
CapacityUnitLengthIN: CapacityUnitLengthINKeyValue.Value,
CapacityUnitLengthYD: CapacityUnitLengthYDKeyValue.Value,
}
func GetCapacityUnitLengthValueByKey(key CapacityUnitLength) (value string) {
value, exists := capacityUnitLengthValueMap[key]
if !exists {
value = "未知单位"
}
return
}

View File

@@ -0,0 +1,252 @@
package stock
// CapacityUnitPackaging 包装单位枚举
type CapacityUnitPackaging string
const (
// 纸箱类
CapacityUnitPackagingCartonInner CapacityUnitPackaging = "CARTON_INNER" // 内盒
CapacityUnitPackagingCartonOuter CapacityUnitPackaging = "CARTON_OUTER" // 外箱
CapacityUnitPackagingCarton CapacityUnitPackaging = "CARTON" // 纸箱
CapacityUnitPackagingCase CapacityUnitPackaging = "CASE" // 箱/盒
CapacityUnitPackagingBox CapacityUnitPackaging = "BOX" // 箱
CapacityUnitPackagingMiniBox CapacityUnitPackaging = "MINI_BOX" // 迷你盒
// 托盘/容器类
CapacityUnitPackagingPallet CapacityUnitPackaging = "PALLET" // 托盘
CapacityUnitPackagingTray CapacityUnitPackaging = "TRAY" // 托盘/托架
CapacityUnitPackagingContainer CapacityUnitPackaging = "CONTAINER" // 集装箱/货柜
CapacityUnitPackagingBin CapacityUnitPackaging = "BIN" // 料箱
CapacityUnitPackagingCrate CapacityUnitPackaging = "CRATE" // 条板箱
CapacityUnitPackagingBasket CapacityUnitPackaging = "BASKET" // 篮子
CapacityUnitPackagingCart CapacityUnitPackaging = "CART" // 手推车
// 袋/包/捆类
CapacityUnitPackagingBag CapacityUnitPackaging = "BAG" // 袋
CapacityUnitPackagingSack CapacityUnitPackaging = "SACK" // 麻袋
CapacityUnitPackagingPack CapacityUnitPackaging = "PACK" // 包
CapacityUnitPackagingBundle CapacityUnitPackaging = "BUNDLE" // 捆
CapacityUnitPackagingBale CapacityUnitPackaging = "BALE" // 大包/捆
CapacityUnitPackagingPacket CapacityUnitPackaging = "PACKET" // 小包
// 瓶/罐/桶类
CapacityUnitPackagingBottle CapacityUnitPackaging = "BOTTLE" // 瓶
CapacityUnitPackagingDrum CapacityUnitPackaging = "DRUM" // 桶
CapacityUnitPackagingJar CapacityUnitPackaging = "JAR" // 罐/瓶
CapacityUnitPackagingCan CapacityUnitPackaging = "CAN" // 罐/听
CapacityUnitPackagingBarrel CapacityUnitPackaging = "BARREL" // 大桶
CapacityUnitPackagingKeg CapacityUnitPackaging = "KEG" // 小桶
CapacityUnitPackagingTin CapacityUnitPackaging = "TIN" // 锡罐
// 卷/轴/管类
CapacityUnitPackagingRoll CapacityUnitPackaging = "ROLL" // 卷
CapacityUnitPackagingReel CapacityUnitPackaging = "REEL" // 卷盘
CapacityUnitPackagingSpool CapacityUnitPackaging = "SPOOL" // 线轴
CapacityUnitPackagingTube CapacityUnitPackaging = "TUBE" // 筒/管
CapacityUnitPackagingCoil CapacityUnitPackaging = "COIL" // 线圈
// 板/片/块类
CapacityUnitPackagingSheet CapacityUnitPackaging = "SHEET" // 张/片
CapacityUnitPackagingPanel CapacityUnitPackaging = "PANEL" // 板
CapacityUnitPackagingBlock CapacityUnitPackaging = "BLOCK" // 块
CapacityUnitPackagingPlate CapacityUnitPackaging = "PLATE" // 板/片
CapacityUnitPackagingSlab CapacityUnitPackaging = "SLAB" // 厚板
)
// GetAllCapacityUnitPackaging 获取所有包装单位
func GetAllCapacityUnitPackaging() []CapacityUnitPackaging {
return []CapacityUnitPackaging{
// 纸箱类
CapacityUnitPackagingCartonInner,
CapacityUnitPackagingCartonOuter,
CapacityUnitPackagingCarton,
CapacityUnitPackagingCase,
CapacityUnitPackagingBox,
CapacityUnitPackagingMiniBox,
// 托盘/容器类
CapacityUnitPackagingPallet,
CapacityUnitPackagingTray,
CapacityUnitPackagingContainer,
CapacityUnitPackagingBin,
CapacityUnitPackagingCrate,
CapacityUnitPackagingBasket,
CapacityUnitPackagingCart,
// 袋/包/捆类
CapacityUnitPackagingBag,
CapacityUnitPackagingSack,
CapacityUnitPackagingPack,
CapacityUnitPackagingBundle,
CapacityUnitPackagingBale,
CapacityUnitPackagingPacket,
// 瓶/罐/桶类
CapacityUnitPackagingBottle,
CapacityUnitPackagingDrum,
CapacityUnitPackagingJar,
CapacityUnitPackagingCan,
CapacityUnitPackagingBarrel,
CapacityUnitPackagingKeg,
CapacityUnitPackagingTin,
// 卷/轴/管类
CapacityUnitPackagingRoll,
CapacityUnitPackagingReel,
CapacityUnitPackagingSpool,
CapacityUnitPackagingTube,
CapacityUnitPackagingCoil,
// 板/片/块类
CapacityUnitPackagingSheet,
CapacityUnitPackagingPanel,
CapacityUnitPackagingBlock,
CapacityUnitPackagingPlate,
CapacityUnitPackagingSlab,
}
}
type CapacityUnitPackagingKeyValue struct {
Key CapacityUnitPackaging
Value string
}
var (
// 纸箱类
CapacityUnitPackagingCartonInnerKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingCartonInner, Value: "内盒"}
CapacityUnitPackagingCartonOuterKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingCartonOuter, Value: "外箱"}
CapacityUnitPackagingCartonKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingCarton, Value: "纸箱"}
CapacityUnitPackagingCaseKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingCase, Value: "箱/盒"}
CapacityUnitPackagingBoxKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingBox, Value: "箱"}
CapacityUnitPackagingMiniBoxKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingMiniBox, Value: "迷你盒"}
// 托盘/容器类
CapacityUnitPackagingPalletKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingPallet, Value: "托盘"}
CapacityUnitPackagingTrayKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingTray, Value: "托盘/托架"}
CapacityUnitPackagingContainerKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingContainer, Value: "集装箱/货柜"}
CapacityUnitPackagingBinKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingBin, Value: "料箱"}
CapacityUnitPackagingCrateKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingCrate, Value: "条板箱"}
CapacityUnitPackagingBasketKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingBasket, Value: "篮子"}
CapacityUnitPackagingCartKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingCart, Value: "手推车"}
// 袋/包/捆类
CapacityUnitPackagingBagKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingBag, Value: "袋"}
CapacityUnitPackagingSackKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingSack, Value: "麻袋"}
CapacityUnitPackagingPackKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingPack, Value: "包"}
CapacityUnitPackagingBundleKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingBundle, Value: "捆"}
CapacityUnitPackagingBaleKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingBale, Value: "大包/捆"}
CapacityUnitPackagingPacketKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingPacket, Value: "小包"}
// 瓶/罐/桶类
CapacityUnitPackagingBottleKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingBottle, Value: "瓶"}
CapacityUnitPackagingDrumKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingDrum, Value: "桶"}
CapacityUnitPackagingJarKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingJar, Value: "罐/瓶"}
CapacityUnitPackagingCanKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingCan, Value: "罐/听"}
CapacityUnitPackagingBarrelKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingBarrel, Value: "大桶"}
CapacityUnitPackagingKegKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingKeg, Value: "小桶"}
CapacityUnitPackagingTinKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingTin, Value: "锡罐"}
// 卷/轴/管类
CapacityUnitPackagingRollKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingRoll, Value: "卷"}
CapacityUnitPackagingReelKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingReel, Value: "卷盘"}
CapacityUnitPackagingSpoolKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingSpool, Value: "线轴"}
CapacityUnitPackagingTubeKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingTube, Value: "筒/管"}
CapacityUnitPackagingCoilKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingCoil, Value: "线圈"}
// 板/片/块类
CapacityUnitPackagingSheetKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingSheet, Value: "张/片"}
CapacityUnitPackagingPanelKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingPanel, Value: "板"}
CapacityUnitPackagingBlockKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingBlock, Value: "块"}
CapacityUnitPackagingPlateKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingPlate, Value: "板/片"}
CapacityUnitPackagingSlabKeyValue = CapacityUnitPackagingKeyValue{Key: CapacityUnitPackagingSlab, Value: "厚板"}
)
func GetAllCapacityUnitPackagingKeyValue() []CapacityUnitPackagingKeyValue {
return []CapacityUnitPackagingKeyValue{
// 纸箱类
CapacityUnitPackagingCartonInnerKeyValue,
CapacityUnitPackagingCartonOuterKeyValue,
CapacityUnitPackagingCartonKeyValue,
CapacityUnitPackagingCaseKeyValue,
CapacityUnitPackagingBoxKeyValue,
CapacityUnitPackagingMiniBoxKeyValue,
// 托盘/容器类
CapacityUnitPackagingPalletKeyValue,
CapacityUnitPackagingTrayKeyValue,
CapacityUnitPackagingContainerKeyValue,
CapacityUnitPackagingBinKeyValue,
CapacityUnitPackagingCrateKeyValue,
CapacityUnitPackagingBasketKeyValue,
CapacityUnitPackagingCartKeyValue,
// 袋/包/捆类
CapacityUnitPackagingBagKeyValue,
CapacityUnitPackagingSackKeyValue,
CapacityUnitPackagingPackKeyValue,
CapacityUnitPackagingBundleKeyValue,
CapacityUnitPackagingBaleKeyValue,
CapacityUnitPackagingPacketKeyValue,
// 瓶/罐/桶类
CapacityUnitPackagingBottleKeyValue,
CapacityUnitPackagingDrumKeyValue,
CapacityUnitPackagingJarKeyValue,
CapacityUnitPackagingCanKeyValue,
CapacityUnitPackagingBarrelKeyValue,
CapacityUnitPackagingKegKeyValue,
CapacityUnitPackagingTinKeyValue,
// 卷/轴/管类
CapacityUnitPackagingRollKeyValue,
CapacityUnitPackagingReelKeyValue,
CapacityUnitPackagingSpoolKeyValue,
CapacityUnitPackagingTubeKeyValue,
CapacityUnitPackagingCoilKeyValue,
// 板/片/块类
CapacityUnitPackagingSheetKeyValue,
CapacityUnitPackagingPanelKeyValue,
CapacityUnitPackagingBlockKeyValue,
CapacityUnitPackagingPlateKeyValue,
CapacityUnitPackagingSlabKeyValue,
}
}
var capacityUnitPackagingValueMap = map[CapacityUnitPackaging]string{
// 纸箱类
CapacityUnitPackagingCartonInner: CapacityUnitPackagingCartonInnerKeyValue.Value,
CapacityUnitPackagingCartonOuter: CapacityUnitPackagingCartonOuterKeyValue.Value,
CapacityUnitPackagingCarton: CapacityUnitPackagingCartonKeyValue.Value,
CapacityUnitPackagingCase: CapacityUnitPackagingCaseKeyValue.Value,
CapacityUnitPackagingBox: CapacityUnitPackagingBoxKeyValue.Value,
CapacityUnitPackagingMiniBox: CapacityUnitPackagingMiniBoxKeyValue.Value,
// 托盘/容器类
CapacityUnitPackagingPallet: CapacityUnitPackagingPalletKeyValue.Value,
CapacityUnitPackagingTray: CapacityUnitPackagingTrayKeyValue.Value,
CapacityUnitPackagingContainer: CapacityUnitPackagingContainerKeyValue.Value,
CapacityUnitPackagingBin: CapacityUnitPackagingBinKeyValue.Value,
CapacityUnitPackagingCrate: CapacityUnitPackagingCrateKeyValue.Value,
CapacityUnitPackagingBasket: CapacityUnitPackagingBasketKeyValue.Value,
CapacityUnitPackagingCart: CapacityUnitPackagingCartKeyValue.Value,
// 袋/包/捆类
CapacityUnitPackagingBag: CapacityUnitPackagingBagKeyValue.Value,
CapacityUnitPackagingSack: CapacityUnitPackagingSackKeyValue.Value,
CapacityUnitPackagingPack: CapacityUnitPackagingPackKeyValue.Value,
CapacityUnitPackagingBundle: CapacityUnitPackagingBundleKeyValue.Value,
CapacityUnitPackagingBale: CapacityUnitPackagingBaleKeyValue.Value,
CapacityUnitPackagingPacket: CapacityUnitPackagingPacketKeyValue.Value,
// 瓶/罐/桶类
CapacityUnitPackagingBottle: CapacityUnitPackagingBottleKeyValue.Value,
CapacityUnitPackagingDrum: CapacityUnitPackagingDrumKeyValue.Value,
CapacityUnitPackagingJar: CapacityUnitPackagingJarKeyValue.Value,
CapacityUnitPackagingCan: CapacityUnitPackagingCanKeyValue.Value,
CapacityUnitPackagingBarrel: CapacityUnitPackagingBarrelKeyValue.Value,
CapacityUnitPackagingKeg: CapacityUnitPackagingKegKeyValue.Value,
CapacityUnitPackagingTin: CapacityUnitPackagingTinKeyValue.Value,
// 卷/轴/管类
CapacityUnitPackagingRoll: CapacityUnitPackagingRollKeyValue.Value,
CapacityUnitPackagingReel: CapacityUnitPackagingReelKeyValue.Value,
CapacityUnitPackagingSpool: CapacityUnitPackagingSpoolKeyValue.Value,
CapacityUnitPackagingTube: CapacityUnitPackagingTubeKeyValue.Value,
CapacityUnitPackagingCoil: CapacityUnitPackagingCoilKeyValue.Value,
// 板/片/块类
CapacityUnitPackagingSheet: CapacityUnitPackagingSheetKeyValue.Value,
CapacityUnitPackagingPanel: CapacityUnitPackagingPanelKeyValue.Value,
CapacityUnitPackagingBlock: CapacityUnitPackagingBlockKeyValue.Value,
CapacityUnitPackagingPlate: CapacityUnitPackagingPlateKeyValue.Value,
CapacityUnitPackagingSlab: CapacityUnitPackagingSlabKeyValue.Value,
}
func GetCapacityUnitPackagingValueByKey(key CapacityUnitPackaging) (value string) {
value, exists := capacityUnitPackagingValueMap[key]
if !exists {
value = "未知单位"
}
return
}

View File

@@ -0,0 +1,92 @@
package stock
// CapacityUnitQuantity 数量单位枚举
type CapacityUnitQuantity string
const (
CapacityUnitQuantityPCS CapacityUnitQuantity = "PCS" // 件
CapacityUnitQuantityPiece CapacityUnitQuantity = "PIECE" // 个
CapacityUnitQuantityUnit CapacityUnitQuantity = "UNIT" // 单位
CapacityUnitQuantityItem CapacityUnitQuantity = "ITEM" // 项
CapacityUnitQuantityEach CapacityUnitQuantity = "EACH" // 每一个
CapacityUnitQuantityPair CapacityUnitQuantity = "PAIR" // 双/对
CapacityUnitQuantitySet CapacityUnitQuantity = "SET" // 套
CapacityUnitQuantityKit CapacityUnitQuantity = "KIT" // 成套件
CapacityUnitQuantityGroup CapacityUnitQuantity = "GROUP" // 组
CapacityUnitQuantityLot CapacityUnitQuantity = "LOT" // 批
CapacityUnitQuantityBatch CapacityUnitQuantity = "BATCH" // 批次
)
// GetAllCapacityUnitQuantities 获取所有数量单位
func GetAllCapacityUnitQuantities() []CapacityUnitQuantity {
return []CapacityUnitQuantity{
CapacityUnitQuantityPCS,
CapacityUnitQuantityPiece,
CapacityUnitQuantityUnit,
CapacityUnitQuantityItem,
CapacityUnitQuantityEach,
CapacityUnitQuantityPair,
CapacityUnitQuantitySet,
CapacityUnitQuantityKit,
CapacityUnitQuantityGroup,
CapacityUnitQuantityLot,
CapacityUnitQuantityBatch,
}
}
type CapacityUnitQuantityKeyValue struct {
Key CapacityUnitQuantity
Value string
}
var (
CapacityUnitQuantityPCSKeyValue = CapacityUnitQuantityKeyValue{Key: CapacityUnitQuantityPCS, Value: "件"}
CapacityUnitQuantityPieceKeyValue = CapacityUnitQuantityKeyValue{Key: CapacityUnitQuantityPiece, Value: "个"}
CapacityUnitQuantityUnitKeyValue = CapacityUnitQuantityKeyValue{Key: CapacityUnitQuantityUnit, Value: "单位"}
CapacityUnitQuantityItemKeyValue = CapacityUnitQuantityKeyValue{Key: CapacityUnitQuantityItem, Value: "项"}
CapacityUnitQuantityEachKeyValue = CapacityUnitQuantityKeyValue{Key: CapacityUnitQuantityEach, Value: "每一个"}
CapacityUnitQuantityPairKeyValue = CapacityUnitQuantityKeyValue{Key: CapacityUnitQuantityPair, Value: "双/对"}
CapacityUnitQuantitySetKeyValue = CapacityUnitQuantityKeyValue{Key: CapacityUnitQuantitySet, Value: "套"}
CapacityUnitQuantityKitKeyValue = CapacityUnitQuantityKeyValue{Key: CapacityUnitQuantityKit, Value: "成套件"}
CapacityUnitQuantityGroupKeyValue = CapacityUnitQuantityKeyValue{Key: CapacityUnitQuantityGroup, Value: "组"}
CapacityUnitQuantityLotKeyValue = CapacityUnitQuantityKeyValue{Key: CapacityUnitQuantityLot, Value: "批"}
CapacityUnitQuantityBatchKeyValue = CapacityUnitQuantityKeyValue{Key: CapacityUnitQuantityBatch, Value: "批次"}
)
func GetAllCapacityUnitQuantityKeyValue() []CapacityUnitQuantityKeyValue {
return []CapacityUnitQuantityKeyValue{
CapacityUnitQuantityPCSKeyValue,
CapacityUnitQuantityPieceKeyValue,
CapacityUnitQuantityUnitKeyValue,
CapacityUnitQuantityItemKeyValue,
CapacityUnitQuantityEachKeyValue,
CapacityUnitQuantityPairKeyValue,
CapacityUnitQuantitySetKeyValue,
CapacityUnitQuantityKitKeyValue,
CapacityUnitQuantityGroupKeyValue,
CapacityUnitQuantityLotKeyValue,
CapacityUnitQuantityBatchKeyValue,
}
}
var capacityUnitQuantityValueMap = map[CapacityUnitQuantity]string{
CapacityUnitQuantityPCS: CapacityUnitQuantityPCSKeyValue.Value,
CapacityUnitQuantityPiece: CapacityUnitQuantityPieceKeyValue.Value,
CapacityUnitQuantityUnit: CapacityUnitQuantityUnitKeyValue.Value,
CapacityUnitQuantityItem: CapacityUnitQuantityItemKeyValue.Value,
CapacityUnitQuantityEach: CapacityUnitQuantityEachKeyValue.Value,
CapacityUnitQuantityPair: CapacityUnitQuantityPairKeyValue.Value,
CapacityUnitQuantitySet: CapacityUnitQuantitySetKeyValue.Value,
CapacityUnitQuantityKit: CapacityUnitQuantityKitKeyValue.Value,
CapacityUnitQuantityGroup: CapacityUnitQuantityGroupKeyValue.Value,
CapacityUnitQuantityLot: CapacityUnitQuantityLotKeyValue.Value,
CapacityUnitQuantityBatch: CapacityUnitQuantityBatchKeyValue.Value,
}
func GetCapacityUnitQuantityValueByKey(key CapacityUnitQuantity) (value string) {
value, exists := capacityUnitQuantityValueMap[key]
if !exists {
value = "未知单位"
}
return
}

View File

@@ -0,0 +1,67 @@
package stock
// CapacityUnitType 容量单位类型枚举
type CapacityUnitType string
const (
CapacityUnitTypeQuantity CapacityUnitType = "quantity" // 数量单位
CapacityUnitTypeWeight CapacityUnitType = "weight" // 重量单位
CapacityUnitTypeVolume CapacityUnitType = "volume" // 体积单位
CapacityUnitTypeArea CapacityUnitType = "area" // 面积单位
CapacityUnitTypeLength CapacityUnitType = "length" // 长度单位
CapacityUnitTypePackaging CapacityUnitType = "packaging" // 包装单位
)
// GetAllCapacityUnitTypes 获取所有容量单位类型
func GetAllCapacityUnitTypes() []CapacityUnitType {
return []CapacityUnitType{
CapacityUnitTypeQuantity,
CapacityUnitTypeWeight,
CapacityUnitTypeVolume,
CapacityUnitTypeArea,
CapacityUnitTypeLength,
CapacityUnitTypePackaging,
}
}
type CapacityUnitTypeKeyValue struct {
Key CapacityUnitType
Value string
}
var (
CapacityUnitTypeQuantityKeyValue = CapacityUnitTypeKeyValue{Key: CapacityUnitTypeQuantity, Value: "数量单位"}
CapacityUnitTypeWeightKeyValue = CapacityUnitTypeKeyValue{Key: CapacityUnitTypeWeight, Value: "重量单位"}
CapacityUnitTypeVolumeKeyValue = CapacityUnitTypeKeyValue{Key: CapacityUnitTypeVolume, Value: "体积单位"}
CapacityUnitTypeAreaKeyValue = CapacityUnitTypeKeyValue{Key: CapacityUnitTypeArea, Value: "面积单位"}
CapacityUnitTypeLengthKeyValue = CapacityUnitTypeKeyValue{Key: CapacityUnitTypeLength, Value: "长度单位"}
CapacityUnitTypePackagingKeyValue = CapacityUnitTypeKeyValue{Key: CapacityUnitTypePackaging, Value: "包装单位"}
)
func GetAllCapacityUnitTypeKeyValue() []CapacityUnitTypeKeyValue {
return []CapacityUnitTypeKeyValue{
CapacityUnitTypeQuantityKeyValue,
CapacityUnitTypeWeightKeyValue,
CapacityUnitTypeVolumeKeyValue,
CapacityUnitTypeAreaKeyValue,
CapacityUnitTypeLengthKeyValue,
CapacityUnitTypePackagingKeyValue,
}
}
var capacityUnitTypeValueMap = map[CapacityUnitType]string{
CapacityUnitTypeQuantity: CapacityUnitTypeQuantityKeyValue.Value,
CapacityUnitTypeWeight: CapacityUnitTypeWeightKeyValue.Value,
CapacityUnitTypeVolume: CapacityUnitTypeVolumeKeyValue.Value,
CapacityUnitTypeArea: CapacityUnitTypeAreaKeyValue.Value,
CapacityUnitTypeLength: CapacityUnitTypeLengthKeyValue.Value,
CapacityUnitTypePackaging: CapacityUnitTypePackagingKeyValue.Value,
}
func GetCapacityUnitTypeValueByKey(key CapacityUnitType) (value string) {
value, exists := capacityUnitTypeValueMap[key]
if !exists {
value = "未知类型"
}
return
}

View File

@@ -0,0 +1,62 @@
package stock
// CapacityUnitVolume 体积单位枚举
type CapacityUnitVolume string
const (
CapacityUnitVolumeCBM CapacityUnitVolume = "CBM" // 立方米
CapacityUnitVolumeM3 CapacityUnitVolume = "M3" // 立方米
CapacityUnitVolumeL CapacityUnitVolume = "L" // 升
CapacityUnitVolumeML CapacityUnitVolume = "ML" // 毫升
CapacityUnitVolumeGAL CapacityUnitVolume = "GAL" // 加仑
)
// GetAllCapacityUnitVolumes 获取所有体积单位
func GetAllCapacityUnitVolumes() []CapacityUnitVolume {
return []CapacityUnitVolume{
CapacityUnitVolumeCBM,
CapacityUnitVolumeM3,
CapacityUnitVolumeL,
CapacityUnitVolumeML,
CapacityUnitVolumeGAL,
}
}
type CapacityUnitVolumeKeyValue struct {
Key CapacityUnitVolume
Value string
}
var (
CapacityUnitVolumeCBMKeyValue = CapacityUnitVolumeKeyValue{Key: CapacityUnitVolumeCBM, Value: "立方米"}
CapacityUnitVolumeM3KeyValue = CapacityUnitVolumeKeyValue{Key: CapacityUnitVolumeM3, Value: "立方米"}
CapacityUnitVolumeLKeyValue = CapacityUnitVolumeKeyValue{Key: CapacityUnitVolumeL, Value: "升"}
CapacityUnitVolumeMLKeyValue = CapacityUnitVolumeKeyValue{Key: CapacityUnitVolumeML, Value: "毫升"}
CapacityUnitVolumeGALKeyValue = CapacityUnitVolumeKeyValue{Key: CapacityUnitVolumeGAL, Value: "加仑"}
)
func GetAllCapacityUnitVolumeKeyValue() []CapacityUnitVolumeKeyValue {
return []CapacityUnitVolumeKeyValue{
CapacityUnitVolumeCBMKeyValue,
CapacityUnitVolumeM3KeyValue,
CapacityUnitVolumeLKeyValue,
CapacityUnitVolumeMLKeyValue,
CapacityUnitVolumeGALKeyValue,
}
}
var capacityUnitVolumeValueMap = map[CapacityUnitVolume]string{
CapacityUnitVolumeCBM: CapacityUnitVolumeCBMKeyValue.Value,
CapacityUnitVolumeM3: CapacityUnitVolumeM3KeyValue.Value,
CapacityUnitVolumeL: CapacityUnitVolumeLKeyValue.Value,
CapacityUnitVolumeML: CapacityUnitVolumeMLKeyValue.Value,
CapacityUnitVolumeGAL: CapacityUnitVolumeGALKeyValue.Value,
}
func GetCapacityUnitVolumeValueByKey(key CapacityUnitVolume) (value string) {
value, exists := capacityUnitVolumeValueMap[key]
if !exists {
value = "未知单位"
}
return
}

View File

@@ -0,0 +1,67 @@
package stock
// CapacityUnitWeight 重量单位枚举
type CapacityUnitWeight string
const (
CapacityUnitWeightKG CapacityUnitWeight = "KG" // 千克
CapacityUnitWeightTon CapacityUnitWeight = "TON" // 吨
CapacityUnitWeightG CapacityUnitWeight = "G" // 克
CapacityUnitWeightMG CapacityUnitWeight = "MG" // 毫克
CapacityUnitWeightLB CapacityUnitWeight = "LB" // 磅
CapacityUnitWeightOZ CapacityUnitWeight = "OZ" // 盎司
)
// GetAllCapacityUnitWeights 获取所有重量单位
func GetAllCapacityUnitWeights() []CapacityUnitWeight {
return []CapacityUnitWeight{
CapacityUnitWeightKG,
CapacityUnitWeightTon,
CapacityUnitWeightG,
CapacityUnitWeightMG,
CapacityUnitWeightLB,
CapacityUnitWeightOZ,
}
}
type CapacityUnitWeightKeyValue struct {
Key CapacityUnitWeight
Value string
}
var (
CapacityUnitWeightKGKeyValue = CapacityUnitWeightKeyValue{Key: CapacityUnitWeightKG, Value: "千克"}
CapacityUnitWeightTonKeyValue = CapacityUnitWeightKeyValue{Key: CapacityUnitWeightTon, Value: "吨"}
CapacityUnitWeightGKeyValue = CapacityUnitWeightKeyValue{Key: CapacityUnitWeightG, Value: "克"}
CapacityUnitWeightMGKeyValue = CapacityUnitWeightKeyValue{Key: CapacityUnitWeightMG, Value: "毫克"}
CapacityUnitWeightLBKeyValue = CapacityUnitWeightKeyValue{Key: CapacityUnitWeightLB, Value: "磅"}
CapacityUnitWeightOZKeyValue = CapacityUnitWeightKeyValue{Key: CapacityUnitWeightOZ, Value: "盎司"}
)
func GetAllCapacityUnitWeightKeyValue() []CapacityUnitWeightKeyValue {
return []CapacityUnitWeightKeyValue{
CapacityUnitWeightKGKeyValue,
CapacityUnitWeightTonKeyValue,
CapacityUnitWeightGKeyValue,
CapacityUnitWeightMGKeyValue,
CapacityUnitWeightLBKeyValue,
CapacityUnitWeightOZKeyValue,
}
}
var capacityUnitWeightValueMap = map[CapacityUnitWeight]string{
CapacityUnitWeightKG: CapacityUnitWeightKGKeyValue.Value,
CapacityUnitWeightTon: CapacityUnitWeightTonKeyValue.Value,
CapacityUnitWeightG: CapacityUnitWeightGKeyValue.Value,
CapacityUnitWeightMG: CapacityUnitWeightMGKeyValue.Value,
CapacityUnitWeightLB: CapacityUnitWeightLBKeyValue.Value,
CapacityUnitWeightOZ: CapacityUnitWeightOZKeyValue.Value,
}
func GetCapacityUnitWeightValueByKey(key CapacityUnitWeight) (value string) {
value, exists := capacityUnitWeightValueMap[key]
if !exists {
value = "未知单位"
}
return
}

View File

@@ -0,0 +1,45 @@
package stock
// DiscrepancyType 差异类型枚举
type DiscrepancyType int
const (
DiscrepancyTypeNone DiscrepancyType = 0 // 无差异
DiscrepancyTypeOverflow DiscrepancyType = 1 // 盘盈
DiscrepancyTypeShortage DiscrepancyType = 2 // 盘亏
DiscrepancyTypeWrongItem DiscrepancyType = 3 // 错货
DiscrepancyTypeDamage DiscrepancyType = 4 // 损坏
DiscrepancyTypeExpired DiscrepancyType = 5 // 过期
)
// GetAllDiscrepancyTypes 获取所有差异类型
func GetAllDiscrepancyTypes() []DiscrepancyType {
return []DiscrepancyType{
DiscrepancyTypeNone,
DiscrepancyTypeOverflow,
DiscrepancyTypeShortage,
DiscrepancyTypeWrongItem,
DiscrepancyTypeDamage,
DiscrepancyTypeExpired,
}
}
// String 获取差异类型字符串表示
func (d DiscrepancyType) String() string {
switch d {
case DiscrepancyTypeNone:
return "无差异"
case DiscrepancyTypeOverflow:
return "盘盈"
case DiscrepancyTypeShortage:
return "盘亏"
case DiscrepancyTypeWrongItem:
return "错货"
case DiscrepancyTypeDamage:
return "损坏"
case DiscrepancyTypeExpired:
return "过期"
default:
return "未知"
}
}

View File

@@ -0,0 +1,38 @@
package stock
// ExpiryMessageStatus 临期消息状态
type ExpiryMessageStatus int
const (
ExpiryMessageStatusPending ExpiryMessageStatus = 1 // 待处理
ExpiryMessageStatusCompleted ExpiryMessageStatus = 2 // 已处理
)
// ExpiryProcessMethod 临期处理方式
type ExpiryProcessMethod int
const (
ExpiryProcessMethodSupplierRecycle ExpiryProcessMethod = 1 // 供货商回收
ExpiryProcessMethodReprocess ExpiryProcessMethod = 2 // 二次加工
ExpiryProcessMethodScrap ExpiryProcessMethod = 3 // 报废
ExpiryProcessMethodInternal ExpiryProcessMethod = 4 // 内部消化
ExpiryProcessMethodPromotion ExpiryProcessMethod = 5 // 促销
)
// GetProcessMethodName 获取处理方式名称
func GetProcessMethodName(method ExpiryProcessMethod) string {
switch method {
case ExpiryProcessMethodSupplierRecycle:
return "供货商回收"
case ExpiryProcessMethodReprocess:
return "二次加工"
case ExpiryProcessMethodScrap:
return "报废"
case ExpiryProcessMethodInternal:
return "内部消化"
case ExpiryProcessMethodPromotion:
return "促销"
default:
return "未知"
}
}

View File

@@ -0,0 +1,41 @@
package stock
// InventoryCountScope 库存盘点范围枚举
type InventoryCountScope int
const (
InventoryCountScopeWarehouse InventoryCountScope = 1 // 按仓库盘点
InventoryCountScopeZone InventoryCountScope = 2 // 按库区盘点
InventoryCountScopeLocation InventoryCountScope = 3 // 按库位盘点
InventoryCountScopeSku InventoryCountScope = 4 // 按SKU盘点
InventoryCountScopeAsset InventoryCountScope = 5 // 按资产盘点
)
// GetAllInventoryCountScopes 获取所有盘点范围
func GetAllInventoryCountScopes() []InventoryCountScope {
return []InventoryCountScope{
InventoryCountScopeWarehouse,
InventoryCountScopeZone,
InventoryCountScopeLocation,
InventoryCountScopeSku,
InventoryCountScopeAsset,
}
}
// String 获取盘点范围字符串表示
func (i InventoryCountScope) String() string {
switch i {
case InventoryCountScopeWarehouse:
return "按仓库盘点"
case InventoryCountScopeZone:
return "按库区盘点"
case InventoryCountScopeLocation:
return "按库位盘点"
case InventoryCountScopeSku:
return "按SKU盘点"
case InventoryCountScopeAsset:
return "按资产盘点"
default:
return "未知"
}
}

View File

@@ -0,0 +1,33 @@
package stock
// InventoryCountStatus 库存盘点状态枚举
type InventoryCountStatus int
const (
InventoryCountStatusInProgress InventoryCountStatus = 1 // 进行中
InventoryCountStatusCompleted InventoryCountStatus = 2 // 已完成
InventoryCountStatusCancelled InventoryCountStatus = 3 // 已取消
)
// GetAllInventoryCountStatuses 获取所有盘点状态
func GetAllInventoryCountStatuses() []InventoryCountStatus {
return []InventoryCountStatus{
InventoryCountStatusInProgress,
InventoryCountStatusCompleted,
InventoryCountStatusCancelled,
}
}
// String 获取盘点状态字符串表示
func (i InventoryCountStatus) String() string {
switch i {
case InventoryCountStatusInProgress:
return "进行中"
case InventoryCountStatusCompleted:
return "已完成"
case InventoryCountStatusCancelled:
return "已取消"
default:
return "未知"
}
}

View File

@@ -0,0 +1,29 @@
package stock
// InventoryCountType 库存盘点类型枚举
type InventoryCountType int
const (
OpenPrice InventoryCountType = 1 // 明盘
HiddenPrice InventoryCountType = 2 // 盲盘
)
// GetAllInventoryCountTypes 获取所有盘点类型
func GetAllInventoryCountTypes() []InventoryCountType {
return []InventoryCountType{
OpenPrice,
HiddenPrice,
}
}
// String 获取盘点类型字符串表示
func (i InventoryCountType) String() string {
switch i {
case OpenPrice:
return "明盘"
case HiddenPrice:
return "盲盘"
default:
return "未知"
}
}

View File

@@ -0,0 +1,29 @@
package stock
// InventoryDetailStatus 库存盘点明细状态枚举
type InventoryDetailStatus int
const (
InventoryDetailStatusPending InventoryDetailStatus = 1 // 待盘点(创建时默认)
InventoryDetailStatusCompleted InventoryDetailStatus = 2 // 已完成Excel导入后
)
// GetAllInventoryDetailStatuses 获取所有明细状态
func GetAllInventoryDetailStatuses() []InventoryDetailStatus {
return []InventoryDetailStatus{
InventoryDetailStatusPending,
InventoryDetailStatusCompleted,
}
}
// String 获取明细状态字符串表示
func (i InventoryDetailStatus) String() string {
switch i {
case InventoryDetailStatusPending:
return "待盘点"
case InventoryDetailStatusCompleted:
return "已完成"
default:
return "未知"
}
}

View File

@@ -0,0 +1,57 @@
package stock
// LocationStatus 库位状态枚举
type LocationStatus string
const (
LocationStatusIdle LocationStatus = "idle" // 空闲
LocationStatusOccupied LocationStatus = "occupied" // 占用
LocationStatusDisabled LocationStatus = "disable" // 禁用
LocationStatusReserved LocationStatus = "reserved" // 预留
)
// GetAllLocationStatuses 获取所有库位状态
func GetAllLocationStatuses() []LocationStatus {
return []LocationStatus{
LocationStatusIdle,
LocationStatusOccupied,
LocationStatusDisabled,
LocationStatusReserved,
}
}
type LocationStatusKeyValue struct {
Key LocationStatus
Value string
}
var (
LocationStatusIdleKeyValue = LocationStatusKeyValue{Key: LocationStatusIdle, Value: "空闲"}
LocationStatusOccupiedKeyValue = LocationStatusKeyValue{Key: LocationStatusOccupied, Value: "占用"}
LocationStatusDisabledKeyValue = LocationStatusKeyValue{Key: LocationStatusDisabled, Value: "禁用"}
LocationStatusReservedKeyValue = LocationStatusKeyValue{Key: LocationStatusReserved, Value: "预留"}
)
func GetAllLocationStatusKeyValue() []LocationStatusKeyValue {
return []LocationStatusKeyValue{
LocationStatusIdleKeyValue,
LocationStatusOccupiedKeyValue,
LocationStatusDisabledKeyValue,
LocationStatusReservedKeyValue,
}
}
var locationStatusValueMap = map[LocationStatus]string{
LocationStatusIdle: LocationStatusIdleKeyValue.Value,
LocationStatusOccupied: LocationStatusOccupiedKeyValue.Value,
LocationStatusDisabled: LocationStatusDisabledKeyValue.Value,
LocationStatusReserved: LocationStatusReservedKeyValue.Value,
}
func GetLocationStatusValueByKey(key LocationStatus) (value string) {
value, exists := locationStatusValueMap[key]
if !exists {
value = "未知状态"
}
return
}

View File

@@ -0,0 +1,72 @@
package stock
// LocationType 库位类型枚举
type LocationType string
const (
LocationTypeShelf LocationType = "shelf" // 货架
LocationTypeStack LocationType = "stack" // 堆垛
LocationTypeCold LocationType = "cold" // 冷藏位
LocationTypeFreeze LocationType = "freeze" // 冷冻位
LocationTypeBin LocationType = "bin" // 料箱位
LocationTypePallet LocationType = "pallet" // 托盘位
LocationTypeFloor LocationType = "floor" // 地面堆放
)
// GetAllLocationTypes 获取所有库位类型
func GetAllLocationTypes() []LocationType {
return []LocationType{
LocationTypeShelf,
LocationTypeStack,
LocationTypeCold,
LocationTypeFreeze,
LocationTypeBin,
LocationTypePallet,
LocationTypeFloor,
}
}
type LocationTypeKeyValue struct {
Key LocationType
Value string
}
var (
LocationTypeShelfKeyValue = LocationTypeKeyValue{Key: LocationTypeShelf, Value: "货架"}
LocationTypeStackKeyValue = LocationTypeKeyValue{Key: LocationTypeStack, Value: "堆垛"}
LocationTypeColdKeyValue = LocationTypeKeyValue{Key: LocationTypeCold, Value: "冷藏位"}
LocationTypeFreezeKeyValue = LocationTypeKeyValue{Key: LocationTypeFreeze, Value: "冷冻位"}
LocationTypeBinKeyValue = LocationTypeKeyValue{Key: LocationTypeBin, Value: "料箱位"}
LocationTypePalletKeyValue = LocationTypeKeyValue{Key: LocationTypePallet, Value: "托盘位"}
LocationTypeFloorKeyValue = LocationTypeKeyValue{Key: LocationTypeFloor, Value: "地面堆放"}
)
func GetAllLocationTypeKeyValue() []LocationTypeKeyValue {
return []LocationTypeKeyValue{
LocationTypeShelfKeyValue,
LocationTypeStackKeyValue,
LocationTypeColdKeyValue,
LocationTypeFreezeKeyValue,
LocationTypeBinKeyValue,
LocationTypePalletKeyValue,
LocationTypeFloorKeyValue,
}
}
var locationTypeValueMap = map[LocationType]string{
LocationTypeShelf: LocationTypeShelfKeyValue.Value,
LocationTypeStack: LocationTypeStackKeyValue.Value,
LocationTypeCold: LocationTypeColdKeyValue.Value,
LocationTypeFreeze: LocationTypeFreezeKeyValue.Value,
LocationTypeBin: LocationTypeBinKeyValue.Value,
LocationTypePallet: LocationTypePalletKeyValue.Value,
LocationTypeFloor: LocationTypeFloorKeyValue.Value,
}
func GetLocationTypeValueByKey(key LocationType) (value string) {
value, exists := locationTypeValueMap[key]
if !exists {
value = "未知类型"
}
return
}

View File

@@ -0,0 +1,33 @@
package stock
// StockLocationType 库存位置关联类型枚举
type StockLocationType int
const (
StockLocationTypeStockDetails StockLocationType = 1 // StockDetails库存的位置关联
StockLocationTypePrivateStock StockLocationType = 2 // PrivateStock库存的位置关联
StockLocationTypeStockBatch StockLocationType = 3 // StockBatch库存的位置关联
)
// GetAllStockLocationTypes 获取所有库存位置关联类型
func GetAllStockLocationTypes() []StockLocationType {
return []StockLocationType{
StockLocationTypeStockDetails,
StockLocationTypePrivateStock,
StockLocationTypeStockBatch,
}
}
// String 获取库存位置关联类型字符串表示
func (s StockLocationType) String() string {
switch s {
case StockLocationTypeStockDetails:
return "StockDetails库存"
case StockLocationTypePrivateStock:
return "PrivateStock库存"
case StockLocationTypeStockBatch:
return "StockBatch库存"
default:
return "未知"
}
}

View File

@@ -0,0 +1,17 @@
package stock
// StockMode 库存管理模式枚举
type StockMode int
const (
StockModeDetail StockMode = 1 // 明细模式(每件一条记录)
StockModeBatch StockMode = 2 // 批次模式(批次记录)
)
// GetAllStockModes 获取所有库存管理模式
func GetAllStockModes() []StockMode {
return []StockMode{
StockModeDetail,
StockModeBatch,
}
}

View File

@@ -0,0 +1,21 @@
package stock
// StockStatus 库存状态枚举
type StockStatus int
const (
StockStatusAvailable StockStatus = 1 // 可用,未分配渠道
StockStatusSold StockStatus = 2 // 已售出
StockStatusReserved StockStatus = 3 // 预留
StockStatusLocked StockStatus = 4 // 锁定
)
// GetAllStockStatuses 获取所有库存状态
func GetAllStockStatuses() []StockStatus {
return []StockStatus{
StockStatusAvailable,
StockStatusSold,
StockStatusReserved,
StockStatusLocked,
}
}

View File

@@ -0,0 +1,47 @@
package stock
// WarehouseStatus 仓库状态枚举
type WarehouseStatus string
const (
WarehouseStatusEnabled WarehouseStatus = "enable" // 启用
WarehouseStatusDisabled WarehouseStatus = "disable" // 停用
)
// GetAllWarehouseStatuses 获取所有仓库状态
func GetAllWarehouseStatuses() []WarehouseStatus {
return []WarehouseStatus{
WarehouseStatusEnabled,
WarehouseStatusDisabled,
}
}
type WarehouseStatusKeyValue struct {
Key WarehouseStatus
Value string
}
var (
WarehouseStatusEnabledKeyValue = WarehouseStatusKeyValue{Key: WarehouseStatusEnabled, Value: "启用"}
WarehouseStatusDisabledKeyValue = WarehouseStatusKeyValue{Key: WarehouseStatusDisabled, Value: "停用"}
)
func GetAllWarehouseStatusKeyValue() []WarehouseStatusKeyValue {
return []WarehouseStatusKeyValue{
WarehouseStatusEnabledKeyValue,
WarehouseStatusDisabledKeyValue,
}
}
var warehouseStatusValueMap = map[WarehouseStatus]string{
WarehouseStatusEnabled: WarehouseStatusEnabledKeyValue.Value,
WarehouseStatusDisabled: WarehouseStatusDisabledKeyValue.Value,
}
func GetWarehouseStatusValueByKey(key WarehouseStatus) (value string) {
value, exists := warehouseStatusValueMap[key]
if !exists {
value = "未知状态"
}
return
}

View File

@@ -0,0 +1,42 @@
package stock
// WarningType 预警类型枚举
type WarningType int
const (
WarningTypeExpiry WarningType = 1 // 临期预警
WarningTypeLowStock WarningType = 2 // 库存不足预警
)
// GetAllWarningTypes 获取所有预警类型
func GetAllWarningTypes() []WarningType {
return []WarningType{
WarningTypeExpiry,
WarningTypeLowStock,
}
}
// String 获取预警类型字符串表示
func (w WarningType) String() string {
switch w {
case WarningTypeExpiry:
return "临期预警"
case WarningTypeLowStock:
return "库存不足预警"
default:
return "未知"
}
}
type WarningTypeKeyValue struct {
Key int `json:"key"`
Value string `json:"value"`
}
// GetAllWarningTypeKeyValue 获取所有预警类型的键值对
func GetAllWarningTypeKeyValue() []WarningTypeKeyValue {
return []WarningTypeKeyValue{
{Key: 1, Value: "临期预警"},
{Key: 2, Value: "库存不足预警"},
}
}

View File

@@ -0,0 +1,47 @@
package stock
// ZoneStatus 库区状态枚举
type ZoneStatus string
const (
ZoneStatusEnabled ZoneStatus = "enable" // 启用
ZoneStatusDisabled ZoneStatus = "disable" // 停用
)
// GetAllZoneStatuses 获取所有库区状态
func GetAllZoneStatuses() []ZoneStatus {
return []ZoneStatus{
ZoneStatusEnabled,
ZoneStatusDisabled,
}
}
type ZoneStatusKeyValue struct {
Key ZoneStatus
Value string
}
var (
ZoneStatusEnabledKeyValue = ZoneStatusKeyValue{Key: ZoneStatusEnabled, Value: "启用"}
ZoneStatusDisabledKeyValue = ZoneStatusKeyValue{Key: ZoneStatusDisabled, Value: "停用"}
)
func GetAllZoneStatusKeyValue() []ZoneStatusKeyValue {
return []ZoneStatusKeyValue{
ZoneStatusEnabledKeyValue,
ZoneStatusDisabledKeyValue,
}
}
var zoneStatusValueMap = map[ZoneStatus]string{
ZoneStatusEnabled: ZoneStatusEnabledKeyValue.Value,
ZoneStatusDisabled: ZoneStatusDisabledKeyValue.Value,
}
func GetZoneStatusValueByKey(key ZoneStatus) (value string) {
value, exists := zoneStatusValueMap[key]
if !exists {
value = "未知状态"
}
return
}

67
consts/stock/zone_type.go Normal file
View File

@@ -0,0 +1,67 @@
package stock
// ZoneType 库区类型枚举
type ZoneType string
const (
ZoneTypeNormal ZoneType = "normal" // 常温区
ZoneTypeCold ZoneType = "cold" // 冷藏区
ZoneTypeFreeze ZoneType = "freeze" // 冷冻区
ZoneTypeFresh ZoneType = "fresh" // 保鲜区
ZoneTypeHazardous ZoneType = "hazardous" // 危险品区
ZoneTypeBonded ZoneType = "bonded" // 保税区
)
// GetAllZoneTypes 获取所有库区类型
func GetAllZoneTypes() []ZoneType {
return []ZoneType{
ZoneTypeNormal,
ZoneTypeCold,
ZoneTypeFreeze,
ZoneTypeFresh,
ZoneTypeHazardous,
ZoneTypeBonded,
}
}
type ZoneTypeKeyValue struct {
Key ZoneType
Value string
}
var (
ZoneTypeNormalKeyValue = ZoneTypeKeyValue{Key: ZoneTypeNormal, Value: "常温区"}
ZoneTypeColdKeyValue = ZoneTypeKeyValue{Key: ZoneTypeCold, Value: "冷藏区"}
ZoneTypeFreezeKeyValue = ZoneTypeKeyValue{Key: ZoneTypeFreeze, Value: "冷冻区"}
ZoneTypeFreshKeyValue = ZoneTypeKeyValue{Key: ZoneTypeFresh, Value: "保鲜区"}
ZoneTypeHazardousKeyValue = ZoneTypeKeyValue{Key: ZoneTypeHazardous, Value: "危险品区"}
ZoneTypeBondedKeyValue = ZoneTypeKeyValue{Key: ZoneTypeBonded, Value: "保税区"}
)
func GetAllZoneTypeKeyValue() []ZoneTypeKeyValue {
return []ZoneTypeKeyValue{
ZoneTypeNormalKeyValue,
ZoneTypeColdKeyValue,
ZoneTypeFreezeKeyValue,
ZoneTypeFreshKeyValue,
ZoneTypeHazardousKeyValue,
ZoneTypeBondedKeyValue,
}
}
var zoneTypeValueMap = map[ZoneType]string{
ZoneTypeNormal: ZoneTypeNormalKeyValue.Value,
ZoneTypeCold: ZoneTypeColdKeyValue.Value,
ZoneTypeFreeze: ZoneTypeFreezeKeyValue.Value,
ZoneTypeFresh: ZoneTypeFreshKeyValue.Value,
ZoneTypeHazardous: ZoneTypeHazardousKeyValue.Value,
ZoneTypeBonded: ZoneTypeBondedKeyValue.Value,
}
func GetZoneTypeValueByKey(key ZoneType) (value string) {
value, exists := zoneTypeValueMap[key]
if !exists {
value = "未知类型"
}
return
}