销售计划快速查询工具 (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 [选项]

查询选项

选项

简写

说明

示例

--customer

-c

按客户查询(模糊匹配)

--customer "东方电气"

--product

-p

按产品型号查询(模糊匹配)

--product "蝶阀"

--order

-o

按销售订单号查询(模糊匹配)

--order "SO2024"

--status

-s

按生产状态查询(精确匹配)

--status "待生产"

--supply

按供货方式查询(精确匹配)

--supply "自制"

列表选项

选项

说明

--list-customers

列出所有客户

--list-products

列出所有产品型号

--list-orders

列出所有销售订单号

--stats

显示统计信息

显示选项

选项

简写

说明

默认值

--page

页码

1

--limit

-l

每页条数

20

--all

-a

显示所有结果(不分页)

False

导出选项

选项

简写

说明

--export

-e

导出结果到 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 查询界面