销售计划快速查询工具 (CLI)¶
⚠️ 本文档对应
scripts/quick_query.py(早期独立脚本)。 新版 CLI 命令为certflow quick-query,详见 CLI.md。
概述¶
quick_query.py 是一个命令行快速查询工具,无需启动 UI 即可查询销售计划数据,支持条件筛选、分页浏览、数据导出和统计分析。
安装¶
工具已集成在项目中,无需额外安装。需要确保已安装 tabulate 依赖:
uv add tabulate
基本用法¶
uv run python scripts/quick_query.py [选项]
查询选项¶
选项 |
简写 |
说明 |
示例 |
|---|---|---|---|
|
|
按客户查询(模糊匹配) |
|
|
|
按产品型号查询(模糊匹配) |
|
|
|
按销售订单号查询(模糊匹配) |
|
|
|
按生产状态查询(精确匹配) |
|
|
按供货方式查询(精确匹配) |
|
列表选项¶
选项 |
说明 |
|---|---|
|
列出所有客户 |
|
列出所有产品型号 |
|
列出所有销售订单号 |
|
显示统计信息 |
显示选项¶
选项 |
简写 |
说明 |
默认值 |
|---|---|---|---|
|
页码 |
1 |
|
|
|
每页条数 |
20 |
|
|
显示所有结果(不分页) |
False |
导出选项¶
选项 |
简写 |
说明 |
|---|---|---|
|
|
导出结果到 Excel 文件 |
使用示例¶
1. 查看所有客户¶
uv run python scripts/quick_query.py --list-customers
输出示例:
📋 共有 156 个客户:
1. 东方电气集团国际合作有限公司
2. 重庆水轮机厂有限责任公司
3. 四川越西县普雄二级水电站
...
2. 查看所有产品型号¶
uv run python scripts/quick_query.py --list-products
3. 查看统计信息¶
uv run python scripts/quick_query.py --stats
输出示例:
==================================================
📊 数据库统计信息
==================================================
总记录数: 2450
按生产状态分布:
待生产 : 1230 条 ████████████████████████████████████████
已发货 : 856 条 ████████████████████████████
已完成 : 364 条 ████████████
4. 查询客户订单¶
uv run python scripts/quick_query.py --customer "东方电气"
输出示例:
┌─────────────────────┬──────────────────────────────┬────────────────────┬────────┬──────────┬────────────┐
│ 销售订单号 │ 产品型号 │ 客户 │ 数量 │ 状态 │ 计划日期 │
├─────────────────────┼──────────────────────────────┼────────────────────┼────────┼──────────┼────────────┤
│ SO2024-001 │ 蝶阀 D341X-10C DN150 │ 东方电气集团 │ 2 │ 待生产 │ 2024-03-15 │
│ SO2024-002 │ 闸阀 Z41H-16C DN200 │ 东方电气集团 │ 4 │ 已发货 │ 2024-02-10 │
└─────────────────────┴──────────────────────────────┴────────────────────┴────────┴──────────┴────────────┘
📊 第 1 / 3 页
共 45 条记录,显示 20 条
5. 组合条件查询¶
# 查询蝶阀且状态为待生产的记录
uv run python scripts/quick_query.py --product "蝶阀" --status "待生产"
# 查询某订单号包含的关键字
uv run python scripts/quick_query.py --order "SO2024" --limit 50
6. 分页查询¶
# 第一页
uv run python scripts/quick_query.py --customer "东方电气" --page 1 --limit 20
# 第二页
uv run python scripts/quick_query.py --customer "东方电气" --page 2 --limit 20
# 显示所有结果(不分页)
uv run python scripts/quick_query.py --customer "东方电气" --all
7. 导出到 Excel¶
# 导出某客户的所有订单
uv run python scripts/quick_query.py --customer "东方电气" --export 东方电气订单.xlsx
# 导出某产品的订单
uv run python scripts/quick_query.py --product "蝶阀" --export 蝶阀订单.xlsx
支持的生产状态值¶
状态 |
说明 |
|---|---|
待生产 |
尚未开始生产 |
生产中 |
正在生产 |
已完成 |
生产完成 |
已发货 |
已发货交付 |
支持的供货方式¶
方式 |
说明 |
|---|---|
自制 |
自行生产 |
外购 |
外部采购 |
外协 |
外部协作 |
常见问题¶
Q: 查询结果太多怎么办?¶
使用 --limit 限制返回数量,或使用 --page 分页查看。
Q: 如何精确匹配而不是模糊匹配?¶
--status 和 --supply 使用精确匹配,其他字段使用模糊匹配。
Q: 导出的 Excel 文件在哪里?¶
文件会保存在当前执行目录下,也可以指定完整路径:
uv run python scripts/quick_query.py --customer "东方电气" --export /path/to/export.xlsx
与其他工具对比¶
方式 |
优点 |
适用场景 |
|---|---|---|
UI 界面 |
直观、鼠标操作 |
日常查看、临时筛选 |
CLI 工具 |
快速、可脚本化 |
批量导出、自动化任务 |
直接 SQL |
最灵活 |
复杂数据分析 |
相关文件¶
scripts/quick_query.py- CLI 工具主文件src/certflow/services/query_service.py- 底层查询服务src/certflow/views/query_view.py- UI 查询界面