22 lines
708 B
Python
22 lines
708 B
Python
"""进销存工具函数模块
|
|
|
|
提供进销存系统通用的工具函数。置于 inventory 顶层(非 api 下),
|
|
以便 services 层与 api 层共用,避免 services -> api 的循环导入。
|
|
"""
|
|
from datetime import datetime, timezone
|
|
import secrets
|
|
|
|
|
|
def generate_order_no(prefix: str) -> str:
|
|
"""生成订单编号
|
|
|
|
Args:
|
|
prefix: 订单类型前缀,如 PO(采购订单)、SO(销售订单)、SM(库存变动)
|
|
|
|
Returns:
|
|
格式为 {prefix}{YYYYMMDDHHMMSS}{8位随机字符} 的订单编号
|
|
"""
|
|
date_str = datetime.now(timezone.utc).strftime("%Y%m%d%H%M%S")
|
|
random_str = secrets.token_hex(4).upper()
|
|
return f"{prefix}{date_str}{random_str}"
|