@newpeak/barista-cli 0.1.5 → 0.1.7

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.
Files changed (192) hide show
  1. package/README.en.md +714 -0
  2. package/README.ja.md +708 -0
  3. package/README.md +68 -0
  4. package/README.vi.md +714 -0
  5. package/dist/commands/liberica/currency/create.d.ts +3 -0
  6. package/dist/commands/liberica/currency/create.d.ts.map +1 -0
  7. package/dist/commands/liberica/currency/create.js +168 -0
  8. package/dist/commands/liberica/currency/create.js.map +1 -0
  9. package/dist/commands/liberica/currency/delete.d.ts +3 -0
  10. package/dist/commands/liberica/currency/delete.d.ts.map +1 -0
  11. package/dist/commands/liberica/currency/delete.js +122 -0
  12. package/dist/commands/liberica/currency/delete.js.map +1 -0
  13. package/dist/commands/liberica/currency/disable.d.ts +3 -0
  14. package/dist/commands/liberica/currency/disable.d.ts.map +1 -0
  15. package/dist/commands/liberica/currency/disable.js +145 -0
  16. package/dist/commands/liberica/currency/disable.js.map +1 -0
  17. package/dist/commands/liberica/currency/enable.d.ts +3 -0
  18. package/dist/commands/liberica/currency/enable.d.ts.map +1 -0
  19. package/dist/commands/liberica/currency/enable.js +125 -0
  20. package/dist/commands/liberica/currency/enable.js.map +1 -0
  21. package/dist/commands/liberica/currency/get.d.ts +3 -0
  22. package/dist/commands/liberica/currency/get.d.ts.map +1 -0
  23. package/dist/commands/liberica/currency/get.js +80 -0
  24. package/dist/commands/liberica/currency/get.js.map +1 -0
  25. package/dist/commands/liberica/currency/index.d.ts +3 -0
  26. package/dist/commands/liberica/currency/index.d.ts.map +1 -0
  27. package/dist/commands/liberica/currency/index.js +21 -0
  28. package/dist/commands/liberica/currency/index.js.map +1 -0
  29. package/dist/commands/liberica/currency/list.d.ts +3 -0
  30. package/dist/commands/liberica/currency/list.d.ts.map +1 -0
  31. package/dist/commands/liberica/currency/list.js +106 -0
  32. package/dist/commands/liberica/currency/list.js.map +1 -0
  33. package/dist/commands/liberica/currency/update.d.ts +3 -0
  34. package/dist/commands/liberica/currency/update.d.ts.map +1 -0
  35. package/dist/commands/liberica/currency/update.js +123 -0
  36. package/dist/commands/liberica/currency/update.js.map +1 -0
  37. package/dist/commands/liberica/index.d.ts.map +1 -1
  38. package/dist/commands/liberica/index.js +7 -0
  39. package/dist/commands/liberica/index.js.map +1 -1
  40. package/dist/commands/liberica/materials/create.d.ts.map +1 -1
  41. package/dist/commands/liberica/materials/create.js +35 -9
  42. package/dist/commands/liberica/materials/create.js.map +1 -1
  43. package/dist/commands/liberica/orgs/index.d.ts.map +1 -1
  44. package/dist/commands/liberica/orgs/index.js.map +1 -1
  45. package/dist/commands/liberica/users/create.d.ts.map +1 -1
  46. package/dist/commands/liberica/users/create.js +1 -0
  47. package/dist/commands/liberica/users/create.js.map +1 -1
  48. package/dist/commands/liberica/warehouses/create.d.ts +3 -0
  49. package/dist/commands/liberica/warehouses/create.d.ts.map +1 -0
  50. package/dist/commands/liberica/warehouses/create.js +196 -0
  51. package/dist/commands/liberica/warehouses/create.js.map +1 -0
  52. package/dist/commands/liberica/warehouses/delete.d.ts +3 -0
  53. package/dist/commands/liberica/warehouses/delete.d.ts.map +1 -0
  54. package/dist/commands/liberica/warehouses/delete.js +111 -0
  55. package/dist/commands/liberica/warehouses/delete.js.map +1 -0
  56. package/dist/commands/liberica/warehouses/disable.d.ts +3 -0
  57. package/dist/commands/liberica/warehouses/disable.d.ts.map +1 -0
  58. package/dist/commands/liberica/warehouses/disable.js +173 -0
  59. package/dist/commands/liberica/warehouses/disable.js.map +1 -0
  60. package/dist/commands/liberica/warehouses/enable.d.ts +3 -0
  61. package/dist/commands/liberica/warehouses/enable.d.ts.map +1 -0
  62. package/dist/commands/liberica/warehouses/enable.js +173 -0
  63. package/dist/commands/liberica/warehouses/enable.js.map +1 -0
  64. package/dist/commands/liberica/warehouses/get.d.ts +3 -0
  65. package/dist/commands/liberica/warehouses/get.d.ts.map +1 -0
  66. package/dist/commands/liberica/warehouses/get.js +90 -0
  67. package/dist/commands/liberica/warehouses/get.js.map +1 -0
  68. package/dist/commands/liberica/warehouses/index.d.ts +3 -0
  69. package/dist/commands/liberica/warehouses/index.d.ts.map +1 -0
  70. package/dist/commands/liberica/warehouses/index.js +23 -0
  71. package/dist/commands/liberica/warehouses/index.js.map +1 -0
  72. package/dist/commands/liberica/warehouses/list.d.ts +3 -0
  73. package/dist/commands/liberica/warehouses/list.d.ts.map +1 -0
  74. package/dist/commands/liberica/warehouses/list.js +101 -0
  75. package/dist/commands/liberica/warehouses/list.js.map +1 -0
  76. package/dist/commands/liberica/warehouses/locations/create.d.ts +3 -0
  77. package/dist/commands/liberica/warehouses/locations/create.d.ts.map +1 -0
  78. package/dist/commands/liberica/warehouses/locations/create.js +199 -0
  79. package/dist/commands/liberica/warehouses/locations/create.js.map +1 -0
  80. package/dist/commands/liberica/warehouses/locations/delete.d.ts +3 -0
  81. package/dist/commands/liberica/warehouses/locations/delete.d.ts.map +1 -0
  82. package/dist/commands/liberica/warehouses/locations/delete.js +115 -0
  83. package/dist/commands/liberica/warehouses/locations/delete.js.map +1 -0
  84. package/dist/commands/liberica/warehouses/locations/disable.d.ts +3 -0
  85. package/dist/commands/liberica/warehouses/locations/disable.d.ts.map +1 -0
  86. package/dist/commands/liberica/warehouses/locations/disable.js +173 -0
  87. package/dist/commands/liberica/warehouses/locations/disable.js.map +1 -0
  88. package/dist/commands/liberica/warehouses/locations/enable.d.ts +3 -0
  89. package/dist/commands/liberica/warehouses/locations/enable.d.ts.map +1 -0
  90. package/dist/commands/liberica/warehouses/locations/enable.js +173 -0
  91. package/dist/commands/liberica/warehouses/locations/enable.js.map +1 -0
  92. package/dist/commands/liberica/warehouses/locations/get.d.ts +3 -0
  93. package/dist/commands/liberica/warehouses/locations/get.d.ts.map +1 -0
  94. package/dist/commands/liberica/warehouses/locations/get.js +73 -0
  95. package/dist/commands/liberica/warehouses/locations/get.js.map +1 -0
  96. package/dist/commands/liberica/warehouses/locations/index.d.ts +3 -0
  97. package/dist/commands/liberica/warehouses/locations/index.d.ts.map +1 -0
  98. package/dist/commands/liberica/warehouses/locations/index.js +21 -0
  99. package/dist/commands/liberica/warehouses/locations/index.js.map +1 -0
  100. package/dist/commands/liberica/warehouses/locations/list.d.ts +3 -0
  101. package/dist/commands/liberica/warehouses/locations/list.d.ts.map +1 -0
  102. package/dist/commands/liberica/warehouses/locations/list.js +104 -0
  103. package/dist/commands/liberica/warehouses/locations/list.js.map +1 -0
  104. package/dist/commands/liberica/warehouses/locations/update.d.ts +3 -0
  105. package/dist/commands/liberica/warehouses/locations/update.d.ts.map +1 -0
  106. package/dist/commands/liberica/warehouses/locations/update.js +128 -0
  107. package/dist/commands/liberica/warehouses/locations/update.js.map +1 -0
  108. package/dist/commands/liberica/warehouses/update.d.ts +3 -0
  109. package/dist/commands/liberica/warehouses/update.d.ts.map +1 -0
  110. package/dist/commands/liberica/warehouses/update.js +143 -0
  111. package/dist/commands/liberica/warehouses/update.js.map +1 -0
  112. package/dist/core/api/client.d.ts +26 -0
  113. package/dist/core/api/client.d.ts.map +1 -1
  114. package/dist/core/api/client.js +471 -0
  115. package/dist/core/api/client.js.map +1 -1
  116. package/dist/index.js +1 -3
  117. package/dist/index.js.map +1 -1
  118. package/dist/types/currency.d.ts +74 -0
  119. package/dist/types/currency.d.ts.map +1 -0
  120. package/dist/types/currency.js +2 -0
  121. package/dist/types/currency.js.map +1 -0
  122. package/dist/types/index.d.ts +4 -4
  123. package/dist/types/index.d.ts.map +1 -1
  124. package/dist/types/location.d.ts +53 -0
  125. package/dist/types/location.d.ts.map +1 -0
  126. package/dist/types/location.js +2 -0
  127. package/dist/types/location.js.map +1 -0
  128. package/dist/types/warehouse.d.ts +68 -0
  129. package/dist/types/warehouse.d.ts.map +1 -0
  130. package/dist/types/warehouse.js +2 -0
  131. package/dist/types/warehouse.js.map +1 -0
  132. package/docs/COMMAND_DESIGN_SPEC.md +42 -13
  133. package/docs/commands/liberica/currency/create.md +145 -0
  134. package/docs/commands/liberica/currency/delete.md +121 -0
  135. package/docs/commands/liberica/currency/disable.md +119 -0
  136. package/docs/commands/liberica/currency/enable.md +115 -0
  137. package/docs/commands/liberica/currency/get.md +118 -0
  138. package/docs/commands/liberica/currency/list.md +149 -0
  139. package/docs/commands/liberica/currency/update.md +141 -0
  140. package/docs/commands/liberica/locations/create.md +195 -0
  141. package/docs/commands/liberica/locations/list.md +171 -0
  142. package/docs/commands/liberica/warehouses/create.md +222 -0
  143. package/docs/commands/liberica/warehouses/list.md +184 -0
  144. package/package.json +1 -1
  145. package/src/commands/liberica/currency/create.ts +183 -0
  146. package/src/commands/liberica/currency/delete.ts +124 -0
  147. package/src/commands/liberica/currency/disable.ts +147 -0
  148. package/src/commands/liberica/currency/enable.ts +128 -0
  149. package/src/commands/liberica/currency/get.ts +91 -0
  150. package/src/commands/liberica/currency/index.ts +23 -0
  151. package/src/commands/liberica/currency/list.ts +140 -0
  152. package/src/commands/liberica/currency/update.ts +129 -0
  153. package/src/commands/liberica/index.ts +7 -0
  154. package/src/commands/liberica/materials/create.ts +32 -9
  155. package/src/commands/liberica/orgs/index.ts +0 -1
  156. package/src/commands/liberica/users/create.ts +1 -0
  157. package/src/commands/liberica/warehouses/create.ts +204 -0
  158. package/src/commands/liberica/warehouses/delete.ts +112 -0
  159. package/src/commands/liberica/warehouses/disable.ts +174 -0
  160. package/src/commands/liberica/warehouses/enable.ts +174 -0
  161. package/src/commands/liberica/warehouses/get.ts +101 -0
  162. package/src/commands/liberica/warehouses/index.ts +25 -0
  163. package/src/commands/liberica/warehouses/list.ts +136 -0
  164. package/src/commands/liberica/warehouses/locations/create.ts +209 -0
  165. package/src/commands/liberica/warehouses/locations/delete.ts +116 -0
  166. package/src/commands/liberica/warehouses/locations/disable.ts +174 -0
  167. package/src/commands/liberica/warehouses/locations/enable.ts +174 -0
  168. package/src/commands/liberica/warehouses/locations/get.ts +84 -0
  169. package/src/commands/liberica/warehouses/locations/index.ts +23 -0
  170. package/src/commands/liberica/warehouses/locations/list.ts +140 -0
  171. package/src/commands/liberica/warehouses/locations/update.ts +135 -0
  172. package/src/commands/liberica/warehouses/update.ts +142 -0
  173. package/src/core/api/client.ts +632 -0
  174. package/src/index.ts +1 -3
  175. package/src/types/currency.ts +90 -0
  176. package/src/types/index.ts +4 -4
  177. package/src/types/location.ts +66 -0
  178. package/src/types/warehouse.ts +82 -0
  179. /package/docs/commands/liberica/{materials-create.md → materials/create.md} +0 -0
  180. /package/docs/commands/liberica/{materials-delete.md → materials/delete.md} +0 -0
  181. /package/docs/commands/liberica/{materials-disable.md → materials/disable.md} +0 -0
  182. /package/docs/commands/liberica/{materials-enable.md → materials/enable.md} +0 -0
  183. /package/docs/commands/liberica/{materials-get.md → materials/get.md} +0 -0
  184. /package/docs/commands/liberica/{materials-list.md → materials/list.md} +0 -0
  185. /package/docs/commands/liberica/{materials-update.md → materials/update.md} +0 -0
  186. /package/docs/commands/liberica/{uoms-create.md → uoms/create.md} +0 -0
  187. /package/docs/commands/liberica/{uoms-delete.md → uoms/delete.md} +0 -0
  188. /package/docs/commands/liberica/{uoms-disable.md → uoms/disable.md} +0 -0
  189. /package/docs/commands/liberica/{uoms-enable.md → uoms/enable.md} +0 -0
  190. /package/docs/commands/liberica/{uoms-get.md → uoms/get.md} +0 -0
  191. /package/docs/commands/liberica/{uoms-list.md → uoms/list.md} +0 -0
  192. /package/docs/commands/liberica/{uoms-update.md → uoms/update.md} +0 -0
@@ -280,17 +280,46 @@ coffee-barista-cli/
280
280
  └── docs/
281
281
  └── commands/
282
282
  ├── liberica/
283
- │ ├── orders-create.md
284
- │ ├── orders-list.md
285
- │ ├── orders-get.md
286
- └── ...
287
- ├── arabica/
288
- │ ├── products-list.md
289
- │ └── ...
290
- └── cross/
283
+ │ ├── employees/
284
+ ├── create.md
285
+ ├── list.md
286
+ │ ├── get.md
287
+ │ │ ├── update.md
288
+ ├── enable.md
289
+ └── delete.md
290
+ │ ├── materials/
291
+ │ │ ├── list.md
292
+ │ │ ├── get.md
293
+ │ │ ├── create.md
294
+ │ │ ├── update.md
295
+ │ │ ├── enable.md
296
+ │ │ └── delete.md
297
+ │ ├── uoms/
298
+ │ │ ├── list.md
299
+ │ │ ├── get.md
300
+ │ │ ├── create.md
301
+ │ │ ├── update.md
302
+ │ │ ├── enable.md
303
+ │ │ └── delete.md
304
+ │ ├── clients/
305
+ │ ├── suppliers/
306
+ │ ├── currency/
307
+ │ ├── users/
308
+ │ ├── auth/
309
+ │ ├── context/
310
+ │ ├── orgs/
311
+ │ ├── positions/
312
+ │ └── roles/
313
+ └── arabica/
291
314
  └── ...
292
315
  ```
293
316
 
317
+ **命名规范:**
318
+ - 每个命令资源一个子目录(如 `materials/`、`uoms/`)
319
+ - 命令文档使用动作名称(如 `list.md`、`create.md`)
320
+ - 禁止使用横杠连接(如 `materials-list.md` ❌)
321
+ - 禁止扁平化存放(如 `materials-list.md` 与 `materials-get.md` 同目录 ❌)
322
+
294
323
  ---
295
324
 
296
325
  ## 5. 命令开发流程规范
@@ -515,15 +544,15 @@ barista liberica orders create \
515
544
 
516
545
  ```
517
546
  deliverables/
518
- ├── docs/commands/<service>/<resource>-<action>.md # 设计文档
547
+ ├── docs/commands/<service>/<resource>/<action>.md # 设计文档
519
548
  ├── src/
520
549
  │ ├── commands/<service>/<resource>/<action>.ts # 命令实现
521
- │ ├── types/api.ts # 类型定义(更新)
522
- │ └── core/api/<service>-client.ts # API客户端(更新)
550
+ │ ├── types/<resource>.ts # 类型定义(更新)
551
+ │ └── core/api/client.ts # API客户端(更新)
523
552
  ├── tests/
524
- │ └── unit/commands/<service>/<resource>-<action>.test.ts # 单元测试
553
+ │ └── unit/commands/<service>/<resource>/<action>.test.ts # 单元测试
525
554
  └── .sisyphus/evidence/
526
- └── <resource>-<action>-test.md # 集成测试证据
555
+ └── <service>-<resource>-<action>-test.md # 集成测试证据
527
556
  ```
528
557
 
529
558
  ---
@@ -0,0 +1,145 @@
1
+ # barista liberica currency create
2
+
3
+ 创建新的币种。
4
+
5
+ ## 2.1 命令元数据
6
+
7
+ | 字段 | 值 |
8
+ |------|-----|
9
+ | 完整命令 | `barista liberica currency create` |
10
+ | 功能描述 | 创建新的币种 |
11
+ | HTTP方法 | POST |
12
+ | 是否需要认证 | ✅ 是 |
13
+ | 是否支持dry-run | ✅ 是 |
14
+
15
+ ## 2.2 后端接口引用
16
+
17
+ ### Controller位置
18
+ ```
19
+ coffee-liberica-end/
20
+ └── facade/liberica-facade-enterprise/
21
+ └── src/main/java/com/newpeak/liberica/facade/enterprise/controller/finance/
22
+ └── FinanceCurrencyController.java
23
+ └── addCurrency(@PostResource(path = "/add"))
24
+ └── public ResponseData<CurrencyResponse> addCurrency(
25
+ @RequestBody @Validated CurrencyRequest request
26
+ )
27
+ ```
28
+
29
+ ### Request DTO位置
30
+ ```
31
+ coffee-liberica-end/
32
+ └── business/liberica-business-finance/finance-api/src/main/java/com/newpeak/liberica/finance/api/pojo/request/CurrencyRequest.java
33
+ ├── currencyCode: String (@NotBlank, 3位编码)
34
+ ├── currencyName: String (@NotBlank)
35
+ └── currencySign: String (符号,如 ¥, $)
36
+ ```
37
+
38
+ ### Response DTO位置
39
+ ```
40
+ coffee-liberica-end/
41
+ └── business/liberica-business-finance/finance-api/src/main/java/com/newpeak/liberica/finance/api/pojo/response/CurrencyResponse.java
42
+ ├── currencyId: String
43
+ ├── currencyCode: String (3位编码)
44
+ ├── currencyName: String
45
+ ├── currencySign: String
46
+ ├── statusFlag: Integer (1=启用)
47
+ ├── createTime: String
48
+ └── updateTime: String
49
+ ```
50
+
51
+ ### 辅助接口(创建流程内部使用)
52
+ ```
53
+ coffee-liberica-end/
54
+ └── facade/liberica-facade-platform/
55
+ └── src/main/java/com/newpeak/liberica/facade/platform/controller/
56
+ └── MasterCurrencyController.java
57
+ └── getAvailableList(@GetResource(path = "/available/list"))
58
+ └── 获取可用币种列表(用于选择currencyCode)
59
+ └── getCurrencyDefault(@GetResource(path = "/currency/default"))
60
+ └── 获取币种默认值(根据currencyCode自动填充名称和符号)
61
+ ```
62
+
63
+ ## 2.3 CLI参数设计
64
+
65
+ ### 命令结构
66
+ ```
67
+ barista liberica currency create [options]
68
+ ```
69
+
70
+ ### 全局选项
71
+ | 选项 | 类型 | 说明 |
72
+ |------|------|------|
73
+ | `--env` | string | 目标环境(dev\|test\|prod-cn\|prod-jp) |
74
+ | `--tenant` | string | 租户代码 |
75
+ | `--dry-run` | boolean | 预览模式 |
76
+ | `--json` | boolean | JSON输出 |
77
+
78
+ ### 命令选项
79
+ | 选项 | 短选项 | 类型 | 必填 | 默认值 | 说明 | 对应DTO字段 |
80
+ |------|--------|------|------|--------|------|-------------|
81
+ | --code | -c | string | ✅ | - | 币种编码(3位,如 CNY) | currencyCode |
82
+ | --name | -n | string | ⬜ | - | 币种名称(可自动填充) | currencyName |
83
+ | --sign | -S | string | ⬜ | - | 币种符号(可自动填充,如 ¥) | currencySign |
84
+
85
+ ## 2.4 字段映射表
86
+
87
+ | CLI参数 | DTO字段 | 类型转换 | 验证规则 |
88
+ |---------|---------|----------|----------|
89
+ | --code / -c | currencyCode | string→String | @NotBlank, 3位字母, ISO 4217 |
90
+ | --name / -n | currencyName | string→String | @NotBlank, max=255 |
91
+ | --sign / -S | currencySign | string→String | max=10 |
92
+
93
+ ## 2.5 错误码引用
94
+
95
+ ### ExceptionEnum位置
96
+ ```
97
+ coffee-liberica-end/
98
+ └── business/liberica-business-finance/finance-api/src/main/java/com/newpeak/liberica/finance/api/exception/enums/CurrencyExceptionEnum.java
99
+ ```
100
+
101
+ ### 已知错误码
102
+ | 错误码 | 错误消息 | 触发条件 |
103
+ |--------|----------|----------|
104
+ | CURRENCY_CODE_DUPLICATE | 币种编码重复 | 编码重复 |
105
+ | CURRENCY_CODE_EMPTY | 币种编码不能为空 | 编码为空 |
106
+ | CURRENCY_NAME_EMPTY | 币种名称不能为空 | 名称为空 |
107
+ | CURRENCY_CODE_INVALID | 币种编码无效 | 非标准3位编码 |
108
+
109
+ ## 2.6 权限检查
110
+
111
+ | 检查项 | 位置 | 说明 |
112
+ |--------|------|------|
113
+ | 注解 | FinanceCurrencyController.java | 需要 `finance_currency:add` 权限 |
114
+
115
+ ## 2.7 实现要点
116
+
117
+ 1. **必填参数**:currencyCode 为必填参数,currencyName 和 currencySign 可自动填充
118
+ 2. **自动填充流程**:
119
+ - 用户输入 currencyCode(如 CNY)
120
+ - 调用 `/master/currency/currency/default` 获取默认值
121
+ - 自动填充 currencyName(人民币)和 currencySign(¥)
122
+ 3. **编码规范**:currencyCode 必须为3位字母,符合ISO 4217标准
123
+ 4. **dry-run 支持**:支持 `--dry-run` 预览模式,显示将要创建的币种信息
124
+ 5. **编码唯一性**:后端会校验 currencyCode 是否已存在
125
+ 6. **状态默认**:新创建币种默认状态为启用(statusFlag=1)
126
+ 7. **API路径**:POST `/api/enterprise/finance/currency/add`
127
+ 8. **成功响应**:返回创建的币种详情,包括生成的 currencyId
128
+
129
+ ## 2.8 示例用法
130
+
131
+ ```bash
132
+ # 创建币种(自动填充名称和符号)
133
+ barista liberica currency create --code "CNY"
134
+ barista liberica currency create -c "USD"
135
+
136
+ # 创建并指定完整信息
137
+ barista liberica currency create --code "EUR" --name "欧元" --sign "€"
138
+ barista liberica currency create -c "JPY" -n "日元" -S "¥"
139
+
140
+ # 预览模式(dry-run)
141
+ barista liberica currency create --code "GBP" --dry-run
142
+
143
+ # JSON 输出
144
+ barista liberica currency create --code "CNY" --json
145
+ ```
@@ -0,0 +1,121 @@
1
+ # barista liberica currency delete
2
+
3
+ 删除币种。
4
+
5
+ ## 2.1 命令元数据
6
+
7
+ | 字段 | 值 |
8
+ |------|-----|
9
+ | 完整命令 | `barista liberica currency delete <currency-id>` |
10
+ | 功能描述 | 删除币种 |
11
+ | HTTP方法 | POST |
12
+ | 是否需要认证 | ✅ 是 |
13
+ | 是否支持dry-run | ⬜ 否 |
14
+
15
+ ## 2.2 后端接口引用
16
+
17
+ ### Controller位置
18
+ ```
19
+ coffee-liberica-end/
20
+ └── facade/liberica-facade-enterprise/
21
+ └── src/main/java/com/newpeak/liberica/facade/enterprise/controller/finance/
22
+ └── FinanceCurrencyController.java
23
+ └── deleteCurrency(@PostResource(path = "/delete"))
24
+ └── public ResponseData<Void> deleteCurrency(
25
+ @RequestBody CurrencyRequest request
26
+ )
27
+ ```
28
+
29
+ ### Request DTO位置
30
+ ```
31
+ coffee-liberica-end/business/liberica-business-finance/finance-api/src/main/java/com/newpeak/liberica/finance/api/pojo/request/CurrencyRequest.java
32
+ - 删除请求使用:{ currencyId: String }
33
+ ```
34
+
35
+ ### Response DTO位置
36
+ ```
37
+ - 返回 void 或成功标记(ResponseData<Void>)
38
+ ```
39
+
40
+ ## 2.3 CLI参数设计
41
+
42
+ ### 命令结构
43
+ ```
44
+ barista liberica currency delete <currency-id> [options]
45
+ ```
46
+
47
+ ### 全局选项
48
+ | 选项 | 类型 | 说明 |
49
+ |------|------|------|
50
+ | `--env` | string | 目标环境(dev\|test\|prod-cn\|prod-jp) |
51
+ | `--tenant` | string | 租户代码 |
52
+ | `--json` | boolean | JSON输出 |
53
+
54
+ ### 位置参数
55
+ | 参数 | 类型 | 必填 | 说明 |
56
+ |------|------|------|------|
57
+ | currency-id | string | ✅ | 币种ID |
58
+
59
+ ### 命令选项
60
+ | 选项 | 短选项 | 类型 | 必填 | 默认值 | 说明 | 对应DTO字段 |
61
+ |------|--------|------|------|--------|------|-------------|
62
+ | --currency-id | -i | string | ⬜ | - | 币种ID(与位置参数互斥) | currencyId |
63
+ | --force | -f | boolean | ⬜ | false | 强制删除,跳过确认提示 | - |
64
+
65
+ ## 2.4 字段映射表
66
+
67
+ | CLI参数 | DTO字段 | 类型转换 | 验证规则 |
68
+ |---------|---------|----------|----------|
69
+ | currency-id (位置参数) | currencyId | string→String | @NotBlank |
70
+ | --currency-id / -i | currencyId | string→String | @NotBlank |
71
+
72
+ ## 2.5 错误码引用
73
+
74
+ ### ExceptionEnum位置
75
+ ```
76
+ coffee-liberica-end/
77
+ └── business/liberica-business-finance/finance-api/src/main/java/com/newpeak/liberica/finance/api/exception/enums/CurrencyExceptionEnum.java
78
+ ```
79
+
80
+ ### 已知错误码
81
+ | 错误码 | 错误消息 | 触发条件 |
82
+ |--------|----------|----------|
83
+ | CURRENCY_NOT_EXIST | 币种不存在 | 币种不存在 |
84
+ | CURRENCY_IN_USE | 币种已被使用,无法删除 | 币种已被财务单据引用 |
85
+ | CURRENCY_NO_PERMISSION | 无权限删除 | 无权限删除 |
86
+ | CURRENCY_CANNOT_DELETE_BASE | 基础币种不能删除 | 系统预设币种无法删除 |
87
+
88
+ ## 2.6 权限检查
89
+
90
+ | 检查项 | 位置 | 说明 |
91
+ |--------|------|------|
92
+ | 注解 | FinanceCurrencyController.java | 需要 `finance_currency:remove` 权限 |
93
+
94
+ ## 2.7 实现要点
95
+
96
+ 1. **ID必填**:currencyId为必填参数(位置参数或 --currency-id 选项)
97
+ 2. **确认提示**:默认会显示确认提示,需要用户确认(除非使用 --force)
98
+ 3. **强制删除**:使用 `--force` 或 `-f` 跳过确认提示
99
+ 4. **依赖检查**:后端可能会检查币种是否被财务单据引用
100
+ 5. **基础币种保护**:系统预设币种(如 CNY)可能无法删除
101
+ 6. **不可恢复**:删除操作不可逆,需谨慎操作
102
+ 7. **API路径**:POST `/api/enterprise/finance/currency/delete`
103
+ 8. **批量删除**:未来可能支持批量删除(通过逗号分隔的ID列表)
104
+
105
+ ## 2.8 示例用法
106
+
107
+ ```bash
108
+ # 删除币种(带确认提示)
109
+ barista liberica currency delete "1234567890123456789"
110
+
111
+ # 通过选项参数删除
112
+ barista liberica currency delete --currency-id "1234567890123456789"
113
+ barista liberica currency delete -i "1234567890123456789"
114
+
115
+ # 强制删除(跳过确认)
116
+ barista liberica currency delete "1234567890123456789" --force
117
+ barista liberica currency delete "1234567890123456789" -f
118
+
119
+ # JSON 输出
120
+ barista liberica currency delete "1234567890123456789" --force --json
121
+ ```
@@ -0,0 +1,119 @@
1
+ # barista liberica currency disable
2
+
3
+ 禁用币种(批量)。
4
+
5
+ ## 2.1 命令元数据
6
+
7
+ | 字段 | 值 |
8
+ |------|-----|
9
+ | 完整命令 | `barista liberica currency disable <currency-id...>` |
10
+ | 功能描述 | 禁用一个或多个币种 |
11
+ | HTTP方法 | POST |
12
+ | 是否需要认证 | ✅ 是 |
13
+ | 是否支持dry-run | ⬜ 否 |
14
+
15
+ ## 2.2 后端接口引用
16
+
17
+ ### Controller位置
18
+ ```
19
+ coffee-liberica-end/
20
+ └── facade/liberica-facade-enterprise/
21
+ └── src/main/java/com/newpeak/liberica/facade/enterprise/controller/finance/
22
+ └── FinanceCurrencyController.java
23
+ └── batchDeActive(@PostResource(path = "/batchDeActive"))
24
+ └── public ResponseData<Void> batchDeActive(
25
+ @RequestBody Map<String, List<String>> request
26
+ )
27
+ ```
28
+
29
+ ### Request DTO位置
30
+ ```
31
+ - 批量禁用请求:{ currencyIdList: List<String> }
32
+ ```
33
+
34
+ ### Response DTO位置
35
+ ```
36
+ - 返回 void 或成功标记(ResponseData<Void>)
37
+ ```
38
+
39
+ ## 2.3 CLI参数设计
40
+
41
+ ### 命令结构
42
+ ```
43
+ barista liberica currency disable <currency-id...> [options]
44
+ ```
45
+
46
+ ### 全局选项
47
+ | 选项 | 类型 | 说明 |
48
+ |------|------|------|
49
+ | `--env` | string | 目标环境(dev\|test\|prod-cn\|prod-jp) |
50
+ | `--tenant` | string | 租户代码 |
51
+ | `--json` | boolean | JSON输出 |
52
+
53
+ ### 位置参数
54
+ | 参数 | 类型 | 必填 | 说明 |
55
+ |------|------|------|------|
56
+ | currency-id... | string | ✅ | 一个或多个币种ID |
57
+
58
+ ### 命令选项
59
+ | 选项 | 短选项 | 类型 | 必填 | 默认值 | 说明 | 对应DTO字段 |
60
+ |------|--------|------|------|--------|------|-------------|
61
+ | --currency-id | -i | string | ⬜ | - | 币种ID(逗号分隔,与位置参数互斥) | currencyIdList |
62
+
63
+ ## 2.4 字段映射表
64
+
65
+ | CLI参数 | DTO字段 | 类型转换 | 验证规则 |
66
+ |---------|---------|----------|----------|
67
+ | currency-id... (位置参数) | currencyIdList | string[]→List<String> | 至少一个ID |
68
+ | --currency-id / -i | currencyIdList | string→List<String> | 逗号分隔 |
69
+
70
+ ## 2.5 错误码引用
71
+
72
+ ### ExceptionEnum位置
73
+ ```
74
+ coffee-liberica-end/
75
+ └── business/liberica-business-finance/finance-api/src/main/java/com/newpeak/liberica/finance/api/exception/enums/CurrencyExceptionEnum.java
76
+ ```
77
+
78
+ ### 已知错误码
79
+ | 错误码 | 错误消息 | 触发条件 |
80
+ |--------|----------|----------|
81
+ | CURRENCY_NOT_EXIST | 币种不存在 | 币种不存在 |
82
+ | CURRENCY_IN_USE | 币种已被使用,无法禁用 | 币种已被财务单据引用 |
83
+ | CURRENCY_NO_PERMISSION | 无权限操作 | 无权限操作 |
84
+ | CURRENCY_CANNOT_DISABLE_BASE | 基础币种不能禁用 | 系统预设币种无法禁用 |
85
+
86
+ ## 2.6 权限检查
87
+
88
+ | 检查项 | 位置 | 说明 |
89
+ |--------|------|------|
90
+ | 注解 | FinanceCurrencyController.java | 需要 `finance_currency:edit` 权限 |
91
+
92
+ ## 2.7 实现要点
93
+
94
+ 1. **批量支持**:支持单个ID或多个ID(空格分隔)
95
+ 2. **ID来源**:可通过位置参数或 --currency-id 选项传递
96
+ 3. **逗号分隔**:--currency-id 选项支持逗号分隔的多个ID
97
+ 4. **状态变更**:将 statusFlag 从 1(启用)改为 2(禁用)
98
+ 5. **依赖检查**:后端可能会检查币种是否被财务单据引用
99
+ 6. **基础币种保护**:系统预设币种(如 CNY)可能无法禁用
100
+ 7. **部分失败**:如果某些ID不存在,后端可能返回错误或仅处理存在的ID
101
+ 8. **API路径**:POST `/api/enterprise/finance/currency/batchDeActive`
102
+ 9. **请求格式**:{ currencyIdList: ["id1", "id2", ...] }
103
+
104
+ ## 2.8 示例用法
105
+
106
+ ```bash
107
+ # 禁用单个币种
108
+ barista liberica currency disable "1234567890123456789"
109
+
110
+ # 禁用多个币种
111
+ barista liberica currency disable "1234567890123456789" "9876543210987654321"
112
+
113
+ # 通过选项参数禁用(逗号分隔)
114
+ barista liberica currency disable --currency-id "1234567890123456789,9876543210987654321"
115
+ barista liberica currency disable -i "1234567890123456789,9876543210987654321"
116
+
117
+ # JSON 输出
118
+ barista liberica currency disable "1234567890123456789" --json
119
+ ```
@@ -0,0 +1,115 @@
1
+ # barista liberica currency enable
2
+
3
+ 启用币种(批量)。
4
+
5
+ ## 2.1 命令元数据
6
+
7
+ | 字段 | 值 |
8
+ |------|-----|
9
+ | 完整命令 | `barista liberica currency enable <currency-id...>` |
10
+ | 功能描述 | 启用一个或多个币种 |
11
+ | HTTP方法 | POST |
12
+ | 是否需要认证 | ✅ 是 |
13
+ | 是否支持dry-run | ⬜ 否 |
14
+
15
+ ## 2.2 后端接口引用
16
+
17
+ ### Controller位置
18
+ ```
19
+ coffee-liberica-end/
20
+ └── facade/liberica-facade-enterprise/
21
+ └── src/main/java/com/newpeak/liberica/facade/enterprise/controller/finance/
22
+ └── FinanceCurrencyController.java
23
+ └── batchActive(@PostResource(path = "/batchActive"))
24
+ └── public ResponseData<Void> batchActive(
25
+ @RequestBody Map<String, List<String>> request
26
+ )
27
+ ```
28
+
29
+ ### Request DTO位置
30
+ ```
31
+ - 批量启用请求:{ currencyIdList: List<String> }
32
+ ```
33
+
34
+ ### Response DTO位置
35
+ ```
36
+ - 返回 void 或成功标记(ResponseData<Void>)
37
+ ```
38
+
39
+ ## 2.3 CLI参数设计
40
+
41
+ ### 命令结构
42
+ ```
43
+ barista liberica currency enable <currency-id...> [options]
44
+ ```
45
+
46
+ ### 全局选项
47
+ | 选项 | 类型 | 说明 |
48
+ |------|------|------|
49
+ | `--env` | string | 目标环境(dev\|test\|prod-cn\|prod-jp) |
50
+ | `--tenant` | string | 租户代码 |
51
+ | `--json` | boolean | JSON输出 |
52
+
53
+ ### 位置参数
54
+ | 参数 | 类型 | 必填 | 说明 |
55
+ |------|------|------|------|
56
+ | currency-id... | string | ✅ | 一个或多个币种ID |
57
+
58
+ ### 命令选项
59
+ | 选项 | 短选项 | 类型 | 必填 | 默认值 | 说明 | 对应DTO字段 |
60
+ |------|--------|------|------|--------|------|-------------|
61
+ | --currency-id | -i | string | ⬜ | - | 币种ID(逗号分隔,与位置参数互斥) | currencyIdList |
62
+
63
+ ## 2.4 字段映射表
64
+
65
+ | CLI参数 | DTO字段 | 类型转换 | 验证规则 |
66
+ |---------|---------|----------|----------|
67
+ | currency-id... (位置参数) | currencyIdList | string[]→List<String> | 至少一个ID |
68
+ | --currency-id / -i | currencyIdList | string→List<String> | 逗号分隔 |
69
+
70
+ ## 2.5 错误码引用
71
+
72
+ ### ExceptionEnum位置
73
+ ```
74
+ coffee-liberica-end/
75
+ └── business/liberica-business-finance/finance-api/src/main/java/com/newpeak/liberica/finance/api/exception/enums/CurrencyExceptionEnum.java
76
+ ```
77
+
78
+ ### 已知错误码
79
+ | 错误码 | 错误消息 | 触发条件 |
80
+ |--------|----------|----------|
81
+ | CURRENCY_NOT_EXIST | 币种不存在 | 币种不存在 |
82
+ | CURRENCY_NO_PERMISSION | 无权限操作 | 无权限操作 |
83
+
84
+ ## 2.6 权限检查
85
+
86
+ | 检查项 | 位置 | 说明 |
87
+ |--------|------|------|
88
+ | 注解 | FinanceCurrencyController.java | 需要 `finance_currency:edit` 权限 |
89
+
90
+ ## 2.7 实现要点
91
+
92
+ 1. **批量支持**:支持单个ID或多个ID(空格分隔)
93
+ 2. **ID来源**:可通过位置参数或 --currency-id 选项传递
94
+ 3. **逗号分隔**:--currency-id 选项支持逗号分隔的多个ID
95
+ 4. **状态变更**:将 statusFlag 从 2(禁用)改为 1(启用)
96
+ 5. **部分失败**:如果某些ID不存在,后端可能返回错误或仅处理存在的ID
97
+ 6. **API路径**:POST `/api/enterprise/finance/currency/batchActive`
98
+ 7. **请求格式**:{ currencyIdList: ["id1", "id2", ...] }
99
+
100
+ ## 2.8 示例用法
101
+
102
+ ```bash
103
+ # 启用单个币种
104
+ barista liberica currency enable "1234567890123456789"
105
+
106
+ # 启用多个币种
107
+ barista liberica currency enable "1234567890123456789" "9876543210987654321"
108
+
109
+ # 通过选项参数启用(逗号分隔)
110
+ barista liberica currency enable --currency-id "1234567890123456789,9876543210987654321"
111
+ barista liberica currency enable -i "1234567890123456789,9876543210987654321"
112
+
113
+ # JSON 输出
114
+ barista liberica currency enable "1234567890123456789" --json
115
+ ```
@@ -0,0 +1,118 @@
1
+ # barista liberica currency get
2
+
3
+ 获取单个币种详情。
4
+
5
+ ## 2.1 命令元数据
6
+
7
+ | 字段 | 值 |
8
+ |------|-----|
9
+ | 完整命令 | `barista liberica currency get <currency-id>` |
10
+ | 功能描述 | 获取币种详情 |
11
+ | HTTP方法 | GET |
12
+ | 是否需要认证 | ✅ 是 |
13
+ | 是否支持dry-run | ⬜ 否 |
14
+
15
+ ## 2.2 后端接口引用
16
+
17
+ ### Controller位置
18
+ ```
19
+ coffee-liberica-end/
20
+ └── facade/liberica-facade-enterprise/
21
+ └── src/main/java/com/newpeak/liberica/facade/enterprise/controller/finance/
22
+ └── FinanceCurrencyController.java
23
+ └── getCurrency(@GetResource(path = "/detail"))
24
+ └── public ResponseData<CurrencyResponse> getCurrency(
25
+ @RequestParam String currencyId
26
+ )
27
+ ```
28
+
29
+ ### Request DTO位置
30
+ ```
31
+ [无Request DTO]
32
+ - currencyId通过@RequestParam传递
33
+ ```
34
+
35
+ ### Response DTO位置
36
+ ```
37
+ coffee-liberica-end/
38
+ └── business/liberica-business-finance/finance-api/src/main/java/com/newpeak/liberica/finance/api/pojo/response/CurrencyResponse.java
39
+ ├── currencyId: String
40
+ ├── currencyCode: String (3位编码,如 CNY)
41
+ ├── currencyName: String (币种名称)
42
+ ├── currencySign: String (符号,如 ¥)
43
+ ├── statusFlag: Integer (1=启用,2=禁用)
44
+ ├── createTime: String
45
+ └── updateTime: String
46
+ ```
47
+
48
+ ## 2.3 CLI参数设计
49
+
50
+ ### 命令结构
51
+ ```
52
+ barista liberica currency get <currency-id> [options]
53
+ ```
54
+
55
+ ### 全局选项
56
+ | 选项 | 类型 | 说明 |
57
+ |------|------|------|
58
+ | `--env` | string | 目标环境(dev\|test\|prod-cn\|prod-jp) |
59
+ | `--tenant` | string | 租户代码 |
60
+ | `--json` | boolean | JSON输出 |
61
+
62
+ ### 位置参数
63
+ | 参数 | 类型 | 必填 | 说明 |
64
+ |------|------|------|------|
65
+ | currency-id | string | ✅ | 币种ID |
66
+
67
+ ### 命令选项
68
+ | 选项 | 短选项 | 类型 | 必填 | 默认值 | 说明 | 对应DTO字段 |
69
+ |------|--------|------|------|--------|------|-------------|
70
+ | --currency-id | -i | string | ⬜ | - | 币种ID(与位置参数互斥) | currencyId |
71
+
72
+ ## 2.4 字段映射表
73
+
74
+ | CLI参数 | DTO字段 | 类型转换 | 验证规则 |
75
+ |---------|---------|----------|----------|
76
+ | currency-id (位置参数) | currencyId | string→String | @NotBlank |
77
+ | --currency-id / -i | currencyId | string→String | @NotBlank |
78
+
79
+ ## 2.5 错误码引用
80
+
81
+ ### ExceptionEnum位置
82
+ ```
83
+ coffee-liberica-end/
84
+ └── business/liberica-business-finance/finance-api/src/main/java/com/newpeak/liberica/finance/api/exception/enums/CurrencyExceptionEnum.java
85
+ ```
86
+
87
+ ### 已知错误码
88
+ | 错误码 | 错误消息 | 触发条件 |
89
+ |--------|----------|----------|
90
+ | CURRENCY_NOT_EXIST | 币种不存在 | ID不存在 |
91
+
92
+ ## 2.6 权限检查
93
+
94
+ | 检查项 | 位置 | 说明 |
95
+ |--------|------|------|
96
+ | 注解 | 无需权限 | 登录用户可访问 |
97
+
98
+ ## 2.7 实现要点
99
+
100
+ 1. **参数解析**:支持位置参数 `<currency-id>` 和选项参数 `--currency-id`
101
+ 2. **ID必填**:currencyId为必填参数
102
+ 3. **输出格式**:格式化展示币种详情,包括基本信息和状态
103
+ 4. **错误处理**:币种不存在时显示友好错误提示
104
+ 5. **API路径**:GET `/api/enterprise/finance/currency/detail`
105
+
106
+ ## 2.8 示例用法
107
+
108
+ ```bash
109
+ # 通过位置参数获取
110
+ barista liberica currency get "1234567890123456789"
111
+
112
+ # 通过选项参数获取
113
+ barista liberica currency get --currency-id "1234567890123456789"
114
+ barista liberica currency get -i "1234567890123456789"
115
+
116
+ # JSON 输出
117
+ barista liberica currency get "1234567890123456789" --json
118
+ ```