"""进销存工具函数模块 提供进销存系统通用的工具函数。置于 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}"