@besile/scm-cli 2026.3.29 → 2026.3.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.zh.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
4
  [![Node.js](https://img.shields.io/badge/node-%3E%3D14-blue.svg)](https://nodejs.org/)
5
+ [![npm version](https://img.shields.io/npm/v/@besile/scm-cli.svg)](https://www.npmjs.com/package/@besile/scm-cli)
5
6
 
6
7
  供应链管理(SCM)系统 CLI 工具 — 在终端中查询大货生产订单、物料订单和 QC 质检订单,对接飞书身份认证系统。
7
8
 
@@ -36,25 +37,22 @@
36
37
 
37
38
  以下两种方式**任选其一**:
38
39
 
39
- **方式一 — 从源码安装(推荐):**
40
+ **方式一 — 从 npm 安装(推荐):**
40
41
 
41
42
  ```bash
42
- git clone <your-repo-url>
43
- cd scm-cli
44
- ./install.sh
43
+ # 安装 CLI
44
+ npm install -g @besile/scm-cli
45
+
46
+ # 安装 CLI SKILL(必需,AI Agent 调用时需要)
47
+ npx skills add @besile/scm-cli -y -g
45
48
  ```
46
49
 
47
- **方式二 — 手动安装:**
50
+ **方式二 — 从源码安装:**
48
51
 
49
52
  ```bash
50
- # 克隆项目
51
- git clone <your-repo-url>
53
+ git clone git@home.cogo.club:xubinghua/scm-cli.git
52
54
  cd scm-cli
53
-
54
- # 安装依赖
55
55
  npm install
56
-
57
- # 链接到全局
58
56
  npm link
59
57
  ```
60
58
 
@@ -442,6 +440,19 @@ npm run test:watch
442
440
  npm run test:coverage
443
441
  ```
444
442
 
443
+ ## 发布
444
+
445
+ ```bash
446
+ # 1. 升级版本号(patch / minor / major)
447
+ npm version patch # e.g. 2026.3.29 → 2026.3.30
448
+
449
+ # 2. 发布到 npm
450
+ npm publish
451
+
452
+ # 发布后验证
453
+ npm view @besile/scm-cli
454
+ ```
455
+
445
456
  ## 贡献
446
457
 
447
458
  欢迎提交 Issue 或 Pull Request!对于较大的改动,建议先通过 Issue 讨论。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@besile/scm-cli",
3
- "version": "2026.3.29",
3
+ "version": "2026.3.30",
4
4
  "description": "SCM CLI — Supply Chain Management CLI Tool",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "repository": {
12
12
  "type": "git",
13
- "url": "https://github.com/wfs/scm-cli"
13
+ "url": "git@home.cogo.club:xubinghua/scm-cli.git"
14
14
  },
15
15
  "keywords": [
16
16
  "scm",
@@ -22,11 +22,16 @@
22
22
  "files": [
23
23
  "bin/",
24
24
  "src/",
25
+ "skills/",
25
26
  "index.d.ts"
26
27
  ],
27
28
  "bin": {
28
29
  "scm-cli": "./bin/scm-cli.js"
29
30
  },
31
+ "publishConfig": {
32
+ "access": "public",
33
+ "registry": "https://registry.npmjs.org"
34
+ },
30
35
  "exports": {
31
36
  ".": {
32
37
  "import": "./src/internal/index.js",
@@ -0,0 +1,152 @@
1
+ ---
2
+ name: scm-login
3
+ description: |
4
+ SCM 供应链管理系统的用户登录认证。先检查 Token 缓存,如果有则直接返回;如果没有则执行 CLI 命令登录。Token 会自动缓存和刷新。
5
+
6
+ **当以下情况时使用此 Skill**:
7
+ (1) 用户需要登录 SCM 系统
8
+ (2) 用户查询订单时提示 Token 过期
9
+ (3) 用户首次使用 SCM 功能
10
+ (4) 用户提到"登录"、"认证"、"Token"、"会话"等相关词汇
11
+ compatibility:
12
+ - cli
13
+ ---
14
+
15
+ # SCM 登录认证 Skill
16
+
17
+ ## 功能说明
18
+
19
+ 此 skill 用于登录 SCM 供应链管理系统。**优先检查 Token 缓存**,如果有缓存且有效的 Token 则直接返回,无需重新登录;如果没有或已过期,才调用 CLI 命令进行登录。
20
+
21
+ ## 执行流程
22
+
23
+ ```
24
+ 1. 检查 Token 缓存 → scm-cli auth token show <openId>
25
+
26
+ 2. 判断结果
27
+ ├── 有有效 Token → 直接返回 Token 信息
28
+ └── 无 Token 或已过期 → 执行 CLI 登录
29
+ ```
30
+
31
+ ## CLI 命令
32
+
33
+ ### 检查 Token 缓存
34
+
35
+ ```bash
36
+ scm-cli auth token show <openId>
37
+ ```
38
+
39
+ **输出示例**:
40
+ ```
41
+ Token 信息:
42
+ - 用户: 张三
43
+ - User ID: 12345
44
+ - 有效期至: 2026-04-30 14:30:00
45
+ - 状态: ✅ 有效
46
+ ```
47
+
48
+ ### 执行登录
49
+
50
+ ```bash
51
+ scm-cli auth login --openId <openId> --mobile <mobile> --password <password>
52
+ ```
53
+
54
+ ## 使用场景
55
+
56
+ ### 场景 1: Token 已存在(直接返回)
57
+
58
+ **用户输入**:
59
+ ```
60
+ 登录 SCM 系统
61
+ ```
62
+
63
+ **处理步骤**:
64
+ 1. 执行 `scm-cli auth token show <openId>` 检查缓存
65
+ 2. 如果 Token 存在且有效,直接返回
66
+
67
+ **返回结果**:
68
+ ```
69
+ ✅ 您已登录 SCM 系统
70
+ 用户: 张三
71
+ User ID: 12345
72
+ Token 有效期至: 2026-04-30 14:30:00
73
+ ```
74
+
75
+ ### 场景 2: Token 不存在或已过期(执行登录)
76
+
77
+ **用户输入**:
78
+ ```
79
+ 登录 SCM 系统,手机号 13800138000,密码 xxxxxx
80
+ ```
81
+
82
+ **处理步骤**:
83
+ 1. 执行 `scm-cli auth token show <openId>` 检查缓存 → 无效或不存在
84
+ 2. 执行 `scm-cli auth login --openId <openId> --mobile 13800138000 --password xxxxxx`
85
+ 3. 返回登录结果
86
+
87
+ **返回结果**:
88
+ ```
89
+ ✅ 登录成功!
90
+ 用户: 张三
91
+ User ID: 12345
92
+ Open ID: ou_xxxxx
93
+ Token 已缓存
94
+ ```
95
+
96
+ ### 场景 3: Token 过期
97
+
98
+ **用户输入**:
99
+ ```
100
+ 查询我的生产订单
101
+ ```
102
+
103
+ **返回错误**:
104
+ ```
105
+ Token 已过期,请重新登录
106
+ ```
107
+
108
+ **处理步骤**:
109
+ 1. 提示用户需要重新登录
110
+ 2. 询问用户的手机号和密码
111
+ 3. 执行 CLI 命令重新登录
112
+ 4. 登录成功后,继续执行用户的查询请求
113
+
114
+ ## 行为规则
115
+
116
+ - **优先检查**:使用前先检查 Token 缓存,避免重复登录
117
+ - **Token 管理**:登录成功后,Token 自动缓存到 `~/.scm_cache/user_tokens.json`
118
+ - **多用户支持**:通过 openId 区分不同用户,每个用户的 Token 独立管理
119
+ - **自动刷新**:Token 会在过期前自动刷新
120
+ - **密码安全**:密码使用 AES-128-CBC 加密存储,不会明文保存
121
+
122
+ ## 返回值示例
123
+
124
+ **Token 有效(直接返回)**:
125
+ ```
126
+ ✅ 您已登录 SCM 系统
127
+ 用户: 张三
128
+ User ID: 12345
129
+ Token 有效期至: 2026-04-30 14:30:00
130
+ ```
131
+
132
+ **新登录成功**:
133
+ ```
134
+ ✅ 登录成功!
135
+ 用户: 张三
136
+ User ID: 12345
137
+ Open ID: ou_xxxxx
138
+ Token 已缓存
139
+ ```
140
+
141
+ **登录失败**:
142
+ ```
143
+ ❌ 登录失败: 手机号或密码错误
144
+ ```
145
+
146
+ ## 注意事项
147
+
148
+ 1. **openId 获取**:openId 通常通过飞书消息上下文自动获取,无需用户手动提供
149
+ 2. **密码安全**:用户密码不会明文存储,系统使用 AES 加密保护
150
+ 3. **Token 时效**:Token 有时效限制(默认 12 小时),过期后需要重新登录
151
+ 4. **多设备登录**:同一用户可以在多个设备登录,Token 独立管理
152
+ 5. **CLI 路径**:确保 `scm-cli` 命令在 PATH 中可用
@@ -0,0 +1,149 @@
1
+ ---
2
+ name: material-orders
3
+ description: |
4
+ 查询 SCM物料订单信息。物料订单是大货生产过程中的原材料、辅料等物料的采购订单。支持多维度筛选:订单号、款号、批次、状态、供应商、仓库等。需先登录 SCM。当用户需要查询物料订单相关信息时,无论使用什么表述方式,都应该触发此 skill。
5
+ compatibility:
6
+ - cli
7
+ ---
8
+
9
+ # SCM 物料订单查询 Skill
10
+
11
+ ## 功能说明
12
+
13
+ 此 skill 用于查询 SCM 系统中的物料订单。物料订单是指大货生产过程中需要的原材料、辅料、包材等物料的采购订单。用户需要先登录 SCM 系统,获取有效的 Token 后才能使用此功能。
14
+
15
+ ## CLI 命令调用
16
+
17
+ 此 skill 通过执行 `scm-cli material-orders` CLI 命令来执行查询操作。
18
+
19
+ ### 命令格式
20
+
21
+ ```bash
22
+ scm-cli material-orders --openId <openId> [选项...]
23
+ ```
24
+
25
+ ### CLI 参数说明
26
+
27
+ **必填参数:**
28
+ - `--openId <openId>`: 飞书用户 openId(用于获取对应用户的 Token)
29
+
30
+ **可选参数(筛选条件):**
31
+
32
+ #### 分页参数
33
+ - `--pageNo <pageNo>`: 页码,从 1 开始(默认: 1)
34
+ - `--pageSize <pageSize>`: 每页条数,最大 100(默认: 20)
35
+
36
+ #### 订单状态参数
37
+ - `--status <status>`: 物料订单状态:0-待采购 | 1-采购中 | 2-部分到货 | 3-已到货 | 4-已取消
38
+ - `--cooperationMode <mode>`: 合作模式:0-CMT | 1-FOB
39
+
40
+ #### 商品信息参数
41
+ - `--goodsFullCode <code>`: 大货款号
42
+ - `--goodsBatch <batch>`: 大货批次
43
+ - `--goodsType <type>`: 大货类型:0-首单 | 1-加单 | 2-翻单
44
+ - `--orderNo <no>`: 物料订单号
45
+
46
+ #### 供应商参数
47
+ - `--supplierName <name>`: 供应商名称
48
+
49
+ #### 人员参数
50
+ - `--purchaserIdList <ids>`: 采购员 ID 列表(逗号分隔)
51
+ - `--pdUserIdList <ids>`: PD 用户 ID 列表(逗号分隔)
52
+ - `--designerName <name>`: 设计师名称
53
+
54
+ #### 时间参数
55
+ - `--type <type>`: 时间查询类型:0-大货上市时间 | 1-商品下单时间 | 2-合同交期时间 | 3-调整到货时间 | 4-订单关单时间 | 5-生产下单时间 | 6-工厂接单时间 | 7-计划到货时间 | 8-实际到货时间 | 9-需求到货时间
56
+ - `--startTime <time>`: 开始时间(ISO 8601 格式)
57
+ - `--endTime <time>`: 结束时间(ISO 8601 格式)
58
+
59
+ #### 输出格式
60
+ - `--format <format>`: 输出格式,table|json(默认: table)
61
+
62
+ **可选全局参数:**
63
+ - `-v, --verbose`: 显示详细日志
64
+
65
+ ## 使用步骤
66
+
67
+ 1. **检查登录状态**:确认用户已登录(执行过 `scm-cli auth login`)
68
+ 2. **构造查询参数**:根据用户的查询需求,构造相应的筛选条件
69
+ 3. **执行 CLI 命令**:执行 `scm-cli material-orders --openId <openId> [选项...]` 命令
70
+ 4. **处理结果**:将查询结果以友好的方式呈现给用户
71
+
72
+ ## 行为规则
73
+
74
+ - **简洁响应**:查询结果必须简洁明了
75
+ - **无数据处理**:当查询结果为空时,直接返回"没有查询到该数据"
76
+ - **避免冗余**:不重复询问已提供的信息,不添加不必要的解释
77
+ - **登录检查**:使用前需确认用户已登录
78
+
79
+ ## 示例
80
+
81
+ ### 示例 1:查询特定物料订单
82
+
83
+ **用户输入**:
84
+ ```
85
+ 查询物料订单,订单号:MO2026030001
86
+ ```
87
+
88
+ **执行的 CLI 命令**:
89
+ ```bash
90
+ scm-cli material-orders --openId ou_xxxxx --orderNo MO2026030001
91
+ ```
92
+
93
+ **助手响应**(如果有数据):
94
+ ```
95
+ 找到物料订单信息:
96
+ - 订单号:MO2026030001
97
+ - 大货款号:FESTHLFJWTS223W4
98
+ - 物料名称:棉布
99
+ - 供应商:XXX纺织厂
100
+ - 订单状态:生产中
101
+ ```
102
+
103
+ ### 示例 2:按供应商查询
104
+
105
+ **用户输入**:
106
+ ```
107
+ 查询供应商"XXX纺织厂"的所有物料订单
108
+ ```
109
+
110
+ **执行的 CLI 命令**:
111
+ ```bash
112
+ scm-cli material-orders --openId ou_xxxxx --supplierName "XXX纺织厂"
113
+ ```
114
+
115
+ **助手响应**:
116
+ ```
117
+ 找到 3 条物料订单:
118
+ 1. [订单摘要...]
119
+ 2. [订单摘要...]
120
+ 3. [订单摘要...]
121
+ ```
122
+
123
+ ### 示例 3:无数据
124
+
125
+ **用户输入**:
126
+ ```
127
+ 查询订单号为 "NONEXISTENT" 的物料订单
128
+ ```
129
+
130
+ **助手响应**:
131
+ ```
132
+ 没有查询到该数据
133
+ ```
134
+
135
+ ## 与生产订单的区别
136
+
137
+ | 订单类型 | 说明 | CLI 命令 |
138
+ |----------|------|----------|
139
+ | **生产订单** | 大货生产订单,包含款号、批次、供应商生产进度等 | `scm-cli production-orders` |
140
+ | **物料订单** | 原材料、辅料、包材等物料采购订单 | `scm-cli material-orders` |
141
+ | **QC 订单** | 质检订单,用于质量检验流程 | `scm-cli qc-orders` |
142
+
143
+ ## 注意事项
144
+
145
+ 1. **登录要求**:使用此功能前必须先执行 `scm-cli auth login` 登录
146
+ 2. **参数灵活使用**:筛选条件为可选,根据用户需求灵活组合
147
+ 3. **响应格式**:CLI 默认以表格形式输出,支持 `--format json` 输出 JSON 格式
148
+ 4. **空结果处理**:如果查询结果为空,直接返回"没有查询到该数据"
149
+ 5. **CLI 路径**:确保 `scm-cli` 命令在 PATH 中可用
@@ -0,0 +1,143 @@
1
+ ---
2
+ name: production_orders
3
+ description: 查询SCM大货生产订单。支持多维度筛选:款号、批次、状态、时间范围等。需先登录 SCM。当用户需要查询生产订单信息时,无论使用什么表述方式,都应该触发此 skill。
4
+ compatibility:
5
+ - cli
6
+ ---
7
+
8
+ # SCM 大货生产订单查询 Skill
9
+
10
+ ## 功能说明
11
+
12
+ 此 skill 用于查询 SCM 系统中的大货生产订单,支持多维度筛选条件。用户需要先登录 SCM 系统,获取有效的 Token 后才能使用此功能。
13
+
14
+ ## CLI 命令调用
15
+
16
+ 此 skill 通过执行 `scm-cli production-orders` CLI 命令来执行查询操作。
17
+
18
+ ### 命令格式
19
+
20
+ ```bash
21
+ scm-cli production-orders --openId <openId> [选项...]
22
+ ```
23
+
24
+ ### CLI 参数说明
25
+
26
+ **必填参数:**
27
+ - `--openId <openId>`: 飞书用户 openId(用于获取对应用户的 Token)
28
+
29
+ **可选参数(筛选条件):**
30
+
31
+ #### 分页参数
32
+ - `--pageNo <pageNo>`: 页码,从 1 开始(默认: 1)
33
+ - `--pageSize <pageSize>`: 每页条数,最大 100(默认: 20)
34
+
35
+ #### 订单状态参数
36
+ - `--prodStatus <status>`: 大货生产订单状态:-1-全部 | 0-待确定 | 1-待同步 | 2-在途中 | 3-已完成 | 100-已取消
37
+ - `--confirmSupplier <status>`: 确认供应商:0-未确认 | 1-已确认
38
+ - `--supplierOrderStatus <status>`: 供应商生产订单状态:0-待接单 | 1-生产中 | 2-已退单 | 3-已完成 | 4-已取消
39
+ - `--quotationStatus <status>`: 报价单状态:0-确认中 | 1-已驳回 | 2-已确认 | 3-未提报
40
+ - `--washStatus <status>`: 洗唛订单状态:-1-无 | 0-未同步 | 1-已同步 | 2-未确认 | 3-生产中 | 4-已发货 | 5-已取消
41
+
42
+ #### 商品信息参数
43
+ - `--goodsFullCode <code>`: 大货款号
44
+ - `--goodsBatch <batch>`: 大货批次
45
+ - `--goodsType <type>`: 大货类型:0-首单 | 1-加单 | 2-翻单
46
+
47
+ #### 供应商参数
48
+ - `--supplierName <name>`: 供应商名称
49
+ - `--cooperationMode <mode>`: 合作模式:0-CMT | 1-FOB
50
+
51
+ #### 人员参数
52
+ - `--pdUserIdList <ids>`: PD 用户 ID 列表(逗号分隔)
53
+ - `--purchaserIdList <ids>`: 采购员 ID 列表(逗号分隔)
54
+ - `--designerName <name>`: 设计师名称
55
+
56
+ #### 分类参数
57
+ - `--saleArea <ids>`: 销售地区 ID 列表(逗号分隔)
58
+
59
+ #### 状态标识参数
60
+ - `--qcInspection <status>`: QC 质检结果
61
+
62
+ #### 时间参数
63
+ - `--type <type>`: 时间查询类型:0-大货上市时间 | 1-商品下单时间 | 2-合同交期时间 | 3-调整到货时间 | 4-订单关单时间 | 5-生产下单时间 | 6-工厂接单时间 | 7-计划到货时间 | 8-实际到货时间 | 9-需求到货时间
64
+ - `--startTime <time>`: 开始时间(ISO 8601 格式)
65
+ - `--endTime <time>`: 结束时间(ISO 8601 格式)
66
+
67
+ #### 输出格式
68
+ - `--format <format>`: 输出格式,table|json(默认: table)
69
+
70
+ **可选全局参数:**
71
+ - `-v, --verbose`: 显示详细日志
72
+
73
+ ## 使用步骤
74
+
75
+ 1. **用户登录**:用户需要先执行 `scm-cli auth login` 命令进行登录,获取有效的 Token。
76
+ 2. **构造查询参数**:根据用户的查询需求,构造相应的筛选条件。
77
+ 3. **执行 CLI 命令**:执行 `scm-cli production-orders --openId <openId> [选项...]` 命令。
78
+ 4. **处理结果**:将查询结果以友好的方式呈现给用户。
79
+
80
+ ## 示例
81
+
82
+ ### 示例 1:查询所有生产订单
83
+
84
+ **用户输入**:
85
+ ```
86
+ 查询所有大货生产订单
87
+ ```
88
+
89
+ **助手响应**:
90
+ ```
91
+ 正在查询大货生产订单...
92
+ ```
93
+
94
+ **执行的 CLI 命令**:
95
+ ```bash
96
+ scm-cli production-orders --openId ou_xxxxx --pageSize 10
97
+ ```
98
+
99
+ ### 示例 2:按款号和状态查询
100
+
101
+ **用户输入**:
102
+ ```
103
+ 查询款号为 "A12345" 且状态为 "已完成" 的大货生产订单
104
+ ```
105
+
106
+ **执行的 CLI 命令**:
107
+ ```bash
108
+ scm-cli production-orders --openId ou_xxxxx --goodsFullCode A12345 --prodStatus 3
109
+ ```
110
+
111
+ ### 示例 3:按时间范围查询
112
+
113
+ **用户输入**:
114
+ ```
115
+ 查询 2026 年 1 月 1 日到 2026 年 1 月 31 日的大货生产订单
116
+ ```
117
+
118
+ **执行的 CLI 命令**:
119
+ ```bash
120
+ scm-cli production-orders --openId ou_xxxxx --type 1 --startTime 2026-01-01 --endTime 2026-01-31
121
+ ```
122
+
123
+ ### 示例 4:多条件组合查询
124
+
125
+ **用户输入**:
126
+ ```
127
+ 查询供应商"XXX纺织厂"的、生产中的、洗唛已同步的大货订单
128
+ ```
129
+
130
+ **执行的 CLI 命令**:
131
+ ```bash
132
+ scm-cli production-orders --openId ou_xxxxx --supplierName "XXX纺织厂" --supplierOrderStatus 1 --washStatus 1
133
+ ```
134
+
135
+ ## 注意事项
136
+
137
+ 1. **登录要求**:使用此功能前必须先执行 `scm-cli auth login` 登录,否则会返回认证错误。
138
+ 2. **参数说明**:
139
+ - `openId` 是必填参数,用于获取用户的 Token
140
+ - 其他筛选条件为可选,根据用户需求灵活使用
141
+ 3. **响应格式**:CLI 默认以表格形式输出,支持 `--format json` 输出 JSON 格式
142
+ 4. **错误处理**:如果查询失败,将返回相应的错误信息,如认证失败、参数错误等
143
+ 5. **CLI 路径**:确保 `scm-cli` 命令在 PATH 中可用
@@ -0,0 +1,23 @@
1
+ {
2
+ "skill_name": "production_orders",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "查询所有大货生产订单",
7
+ "expected_output": "助手应询问用户的飞书 openId,并说明可以指定的筛选条件",
8
+ "files": []
9
+ },
10
+ {
11
+ "id": 2,
12
+ "prompt": "查询款号为 A12345 且状态为已完成的大货生产订单",
13
+ "expected_output": "助手应询问用户的飞书 openId,并确认查询条件",
14
+ "files": []
15
+ },
16
+ {
17
+ "id": 3,
18
+ "prompt": "查询 2026 年 1 月 1 日到 2026 年 1 月 31 日的大货生产订单",
19
+ "expected_output": "助手应询问用户的飞书 openId,并确认时间范围",
20
+ "files": []
21
+ }
22
+ ]
23
+ }
@@ -0,0 +1,137 @@
1
+ ---
2
+ name: qc-orders
3
+ description: 查询SCM QC质检订单。支持多维度筛选:订单状态、款号、大货类型、供应商、商品分级、中查管理、尾查管理、时间范围等。需先登录 SCM。当用户需要查询质检订单信息时,无论使用什么表述方式,都应该触发此 skill。
4
+ compatibility:
5
+ - cli
6
+ ---
7
+
8
+ # SCM QC 质检订单查询 Skill
9
+
10
+ ## 功能说明
11
+
12
+ 此 skill 用于查询 SCM 系统中的 QC 质检订单,支持多维度筛选条件。用户需要先登录 SCM 系统,获取有效的 Token 后才能使用此功能。
13
+
14
+ ## CLI 命令调用
15
+
16
+ 此 skill 通过执行 `scm-cli qc-orders` CLI 命令来执行查询操作。
17
+
18
+ ### 命令格式
19
+
20
+ ```bash
21
+ scm-cli qc-orders --openId <openId> [选项...]
22
+ ```
23
+
24
+ ### CLI 参数说明
25
+
26
+ **必填参数:**
27
+ - `--openId <openId>`: 飞书用户 openId(用于获取对应用户的 Token)
28
+
29
+ **可选参数(筛选条件):**
30
+
31
+ #### 分页参数
32
+ - `--pageNo <pageNo>`: 页码,从 1 开始(默认: 1)
33
+ - `--pageSize <pageSize>`: 每页条数,最大 100(默认: 20)
34
+
35
+ #### 订单状态参数
36
+ - `--qcOrderStatus <status>`: 质检订单状态:-1-全部 | 0-待分配 | 1-已分配 | 2-已完成 | 3-已取消
37
+
38
+ #### 商品信息参数
39
+ - `--goodsFullCode <code>`: 大货款号
40
+ - `--goodsType <type>`: 大货类型:1-大货 | 2-翻单 | 3-补料
41
+
42
+ #### 供应商参数
43
+ - `--supplierName <name>`: 供应商名称
44
+
45
+ #### 商品信息参数
46
+ - `--goodsGradeList <grades>`: 商品分级列表(逗号分隔)
47
+
48
+ #### 人员参数
49
+ - `--midManager <name>`: 中查管理人员
50
+ - `--checkGoods <name>`: 查货人员
51
+ - `--tailManager <name>`: 尾查管理人员
52
+ - `--qcUserIdList <ids>`: QC 质检员 ID 列表(逗号分隔)
53
+ - `--prodManagerIdList <ids>`: 生产经理 ID 列表(逗号分隔)
54
+ - `--purchaserIdList <ids>`: 采购员 ID 列表(逗号分隔)
55
+
56
+ #### 时间参数
57
+ - `--timeType <type>`: 时间类型:0-预约验货 | 1-下单 | 2-接单 | 3-分配 | 4-完成 | 5-交期
58
+ - `--startTime <time>`: 开始时间(ISO 8601 格式)
59
+ - `--endTime <time>`: 结束时间(ISO 8601 格式)
60
+
61
+ #### 输出格式
62
+ - `--format <format>`: 输出格式,table|json(默认: table)
63
+
64
+ **可选全局参数:**
65
+ - `-v, --verbose`: 显示详细日志
66
+
67
+ ## 使用步骤
68
+
69
+ 1. **用户登录**:用户需要先执行 `scm-cli auth login` 命令进行登录,获取有效的 Token。
70
+ 2. **构造查询参数**:根据用户的查询需求,构造相应的筛选条件。
71
+ 3. **执行 CLI 命令**:执行 `scm-cli qc-orders --openId <openId> [选项...]` 命令。
72
+ 4. **处理结果**:将查询结果以友好的方式呈现给用户。
73
+
74
+ ## 示例
75
+
76
+ ### 示例 1:查询所有质检订单
77
+
78
+ **用户输入**:
79
+ ```
80
+ 查询所有 QC 质检订单
81
+ ```
82
+
83
+ **执行的 CLI 命令**:
84
+ ```bash
85
+ scm-cli qc-orders --openId ou_xxxxx --pageSize 10
86
+ ```
87
+
88
+ **助手响应**:
89
+ ```
90
+ 正在查询 QC 质检订单...
91
+ ```
92
+
93
+ ### 示例 2:按款号和状态查询
94
+
95
+ **用户输入**:
96
+ ```
97
+ 查询款号为 "A12345" 且状态为 "已完成" 的 QC 质检订单
98
+ ```
99
+
100
+ **执行的 CLI 命令**:
101
+ ```bash
102
+ scm-cli qc-orders --openId ou_xxxxx --goodsFullCode A12345 --qcOrderStatus 2
103
+ ```
104
+
105
+ ### 示例 3:按时间范围查询
106
+
107
+ **用户输入**:
108
+ ```
109
+ 查询 2026 年 3 月 1 日到 2026 年 3 月 31 日的 QC 质检订单
110
+ ```
111
+
112
+ **执行的 CLI 命令**:
113
+ ```bash
114
+ scm-cli qc-orders --openId ou_xxxxx --timeType 1 --startTime 2026-03-01 --endTime 2026-03-31
115
+ ```
116
+
117
+ ### 示例 4:按供应商和质检人员查询
118
+
119
+ **用户输入**:
120
+ ```
121
+ 查询供应商"XXX纺织厂"的、中查为"李四"的质检订单
122
+ ```
123
+
124
+ **执行的 CLI 命令**:
125
+ ```bash
126
+ scm-cli qc-orders --openId ou_xxxxx --supplierName "XXX纺织厂" --midManager "李四"
127
+ ```
128
+
129
+ ## 注意事项
130
+
131
+ 1. **登录要求**:使用此功能前必须先执行 `scm-cli auth login` 登录,否则会返回认证错误。
132
+ 2. **参数说明**:
133
+ - `openId` 是必填参数,用于获取用户的 Token
134
+ - 其他筛选条件为可选,根据用户需求灵活使用
135
+ 3. **响应格式**:CLI 默认以表格形式输出,支持 `--format json` 输出 JSON 格式
136
+ 4. **错误处理**:如果查询失败,将返回相应的错误信息,如认证失败、参数错误等
137
+ 5. **CLI 路径**:确保 `scm-cli` 命令在 PATH 中可用
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: scm-cli
3
+ description: |
4
+ SCM 供应链管理系统 CLI 工具入口。当用户需要使用 SCM 系统相关功能时触发,如查询生产订单、物料订单、QC 订单,或登录认证等。
5
+ compatibility:
6
+ - cli
7
+ metadata:
8
+ requires:
9
+ bins: ["scm-cli"]
10
+ cliHelp: "scm-cli --help"
11
+ ---
12
+
13
+ # SCM CLI — 供应链管理 CLI 工具
14
+
15
+ ## 功能说明
16
+
17
+ `scm-cli` 是 SCM 供应链管理系统的命令行工具,提供以下能力:
18
+
19
+ - **认证管理**:登录、登出、Token 状态检查、Token 管理
20
+ - **大货生产订单**:查询生产订单列表,支持多维度筛选
21
+ - **物料订单**:查询物料采购订单
22
+ - **QC 质检订单**:查询质检订单
23
+
24
+ ## 子 Skills
25
+
26
+ | Skill | 说明 |
27
+ |-------|------|
28
+ | `scm-login` | 登录认证(自动检查 Token 缓存) |
29
+ | `production_orders` | 大货生产订单查询 |
30
+ | `material-orders` | 物料订单查询 |
31
+ | `qc-orders` | QC 质检订单查询 |
32
+
33
+ ## 安装
34
+
35
+ ```bash
36
+ npm install -g @besile/scm-cli
37
+ ```
38
+
39
+ ## 验证安装
40
+
41
+ ```bash
42
+ scm-cli --help
43
+ ```