@newpeak/barista-cli 0.1.4 → 0.1.5
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/dist/commands/liberica/auth/index.d.ts.map +1 -1
- package/dist/commands/liberica/auth/index.js +5 -0
- package/dist/commands/liberica/auth/index.js.map +1 -1
- package/dist/commands/liberica/index.d.ts.map +1 -1
- package/dist/commands/liberica/index.js +8 -0
- package/dist/commands/liberica/index.js.map +1 -1
- package/dist/commands/liberica/materials/create.d.ts +3 -0
- package/dist/commands/liberica/materials/create.d.ts.map +1 -0
- package/dist/commands/liberica/materials/create.js +154 -0
- package/dist/commands/liberica/materials/create.js.map +1 -0
- package/dist/commands/liberica/materials/delete.d.ts +3 -0
- package/dist/commands/liberica/materials/delete.d.ts.map +1 -0
- package/dist/commands/liberica/materials/delete.js +104 -0
- package/dist/commands/liberica/materials/delete.js.map +1 -0
- package/dist/commands/liberica/materials/disable.d.ts +3 -0
- package/dist/commands/liberica/materials/disable.d.ts.map +1 -0
- package/dist/commands/liberica/materials/disable.js +146 -0
- package/dist/commands/liberica/materials/disable.js.map +1 -0
- package/dist/commands/liberica/materials/enable.d.ts +3 -0
- package/dist/commands/liberica/materials/enable.d.ts.map +1 -0
- package/dist/commands/liberica/materials/enable.js +126 -0
- package/dist/commands/liberica/materials/enable.js.map +1 -0
- package/dist/commands/liberica/materials/get.d.ts +3 -0
- package/dist/commands/liberica/materials/get.d.ts.map +1 -0
- package/dist/commands/liberica/materials/get.js +71 -0
- package/dist/commands/liberica/materials/get.js.map +1 -0
- package/dist/commands/liberica/materials/index.d.ts +3 -0
- package/dist/commands/liberica/materials/index.d.ts.map +1 -0
- package/dist/commands/liberica/materials/index.js +21 -0
- package/dist/commands/liberica/materials/index.js.map +1 -0
- package/dist/commands/liberica/materials/list.d.ts +3 -0
- package/dist/commands/liberica/materials/list.d.ts.map +1 -0
- package/dist/commands/liberica/materials/list.js +107 -0
- package/dist/commands/liberica/materials/list.js.map +1 -0
- package/dist/commands/liberica/materials/update.d.ts +3 -0
- package/dist/commands/liberica/materials/update.d.ts.map +1 -0
- package/dist/commands/liberica/materials/update.js +118 -0
- package/dist/commands/liberica/materials/update.js.map +1 -0
- package/dist/commands/liberica/suppliers/create.d.ts +3 -0
- package/dist/commands/liberica/suppliers/create.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/create.js +140 -0
- package/dist/commands/liberica/suppliers/create.js.map +1 -0
- package/dist/commands/liberica/suppliers/delete.d.ts +3 -0
- package/dist/commands/liberica/suppliers/delete.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/delete.js +102 -0
- package/dist/commands/liberica/suppliers/delete.js.map +1 -0
- package/dist/commands/liberica/suppliers/disable.d.ts +3 -0
- package/dist/commands/liberica/suppliers/disable.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/disable.js +144 -0
- package/dist/commands/liberica/suppliers/disable.js.map +1 -0
- package/dist/commands/liberica/suppliers/enable.d.ts +3 -0
- package/dist/commands/liberica/suppliers/enable.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/enable.js +124 -0
- package/dist/commands/liberica/suppliers/enable.js.map +1 -0
- package/dist/commands/liberica/suppliers/get.d.ts +3 -0
- package/dist/commands/liberica/suppliers/get.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/get.js +75 -0
- package/dist/commands/liberica/suppliers/get.js.map +1 -0
- package/dist/commands/liberica/suppliers/index.d.ts +3 -0
- package/dist/commands/liberica/suppliers/index.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/index.js +21 -0
- package/dist/commands/liberica/suppliers/index.js.map +1 -0
- package/dist/commands/liberica/suppliers/list.d.ts +3 -0
- package/dist/commands/liberica/suppliers/list.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/list.js +100 -0
- package/dist/commands/liberica/suppliers/list.js.map +1 -0
- package/dist/commands/liberica/suppliers/update.d.ts +3 -0
- package/dist/commands/liberica/suppliers/update.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/update.js +122 -0
- package/dist/commands/liberica/suppliers/update.js.map +1 -0
- package/dist/commands/liberica/uoms/create.d.ts +3 -0
- package/dist/commands/liberica/uoms/create.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/create.js +120 -0
- package/dist/commands/liberica/uoms/create.js.map +1 -0
- package/dist/commands/liberica/uoms/delete.d.ts +3 -0
- package/dist/commands/liberica/uoms/delete.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/delete.js +104 -0
- package/dist/commands/liberica/uoms/delete.js.map +1 -0
- package/dist/commands/liberica/uoms/disable.d.ts +3 -0
- package/dist/commands/liberica/uoms/disable.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/disable.js +146 -0
- package/dist/commands/liberica/uoms/disable.js.map +1 -0
- package/dist/commands/liberica/uoms/enable.d.ts +3 -0
- package/dist/commands/liberica/uoms/enable.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/enable.js +126 -0
- package/dist/commands/liberica/uoms/enable.js.map +1 -0
- package/dist/commands/liberica/uoms/get.d.ts +3 -0
- package/dist/commands/liberica/uoms/get.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/get.js +71 -0
- package/dist/commands/liberica/uoms/get.js.map +1 -0
- package/dist/commands/liberica/uoms/index.d.ts +3 -0
- package/dist/commands/liberica/uoms/index.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/index.js +21 -0
- package/dist/commands/liberica/uoms/index.js.map +1 -0
- package/dist/commands/liberica/uoms/list.d.ts +3 -0
- package/dist/commands/liberica/uoms/list.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/list.js +98 -0
- package/dist/commands/liberica/uoms/list.js.map +1 -0
- package/dist/commands/liberica/uoms/update.d.ts +3 -0
- package/dist/commands/liberica/uoms/update.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/update.js +115 -0
- package/dist/commands/liberica/uoms/update.js.map +1 -0
- package/dist/core/api/client.d.ts +24 -0
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +465 -0
- package/dist/core/api/client.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/types/index.d.ts +5 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/material.d.ts +49 -0
- package/dist/types/material.d.ts.map +1 -0
- package/dist/types/material.js +2 -0
- package/dist/types/material.js.map +1 -0
- package/dist/types/supplier.d.ts +53 -0
- package/dist/types/supplier.d.ts.map +1 -0
- package/dist/types/supplier.js +2 -0
- package/dist/types/supplier.js.map +1 -0
- package/dist/types/uom.d.ts +47 -0
- package/dist/types/uom.d.ts.map +1 -0
- package/dist/types/uom.js +2 -0
- package/dist/types/uom.js.map +1 -0
- package/docs/commands/liberica/materials-create.md +293 -0
- package/docs/commands/liberica/materials-delete.md +240 -0
- package/docs/commands/liberica/materials-disable.md +150 -0
- package/docs/commands/liberica/materials-enable.md +146 -0
- package/docs/commands/liberica/materials-get.md +188 -0
- package/docs/commands/liberica/materials-list.md +198 -0
- package/docs/commands/liberica/materials-update.md +250 -0
- package/docs/commands/liberica/uoms-create.md +136 -0
- package/docs/commands/liberica/uoms-delete.md +119 -0
- package/docs/commands/liberica/uoms-disable.md +117 -0
- package/docs/commands/liberica/uoms-enable.md +115 -0
- package/docs/commands/liberica/uoms-get.md +119 -0
- package/docs/commands/liberica/uoms-list.md +155 -0
- package/docs/commands/liberica/uoms-update.md +148 -0
- package/package.json +2 -4
- package/src/commands/liberica/auth/index.ts +6 -0
- package/src/commands/liberica/index.ts +8 -0
- package/src/commands/liberica/materials/create.ts +168 -0
- package/src/commands/liberica/materials/delete.ts +105 -0
- package/src/commands/liberica/materials/disable.ts +148 -0
- package/src/commands/liberica/materials/enable.ts +129 -0
- package/src/commands/liberica/materials/get.ts +83 -0
- package/src/commands/liberica/materials/index.ts +23 -0
- package/src/commands/liberica/materials/list.ts +142 -0
- package/src/commands/liberica/materials/update.ts +125 -0
- package/src/commands/liberica/suppliers/create.ts +149 -0
- package/src/commands/liberica/suppliers/delete.ts +102 -0
- package/src/commands/liberica/suppliers/disable.ts +145 -0
- package/src/commands/liberica/suppliers/enable.ts +126 -0
- package/src/commands/liberica/suppliers/get.ts +86 -0
- package/src/commands/liberica/suppliers/index.ts +23 -0
- package/src/commands/liberica/suppliers/list.ts +134 -0
- package/src/commands/liberica/suppliers/update.ts +128 -0
- package/src/commands/liberica/uoms/create.ts +134 -0
- package/src/commands/liberica/uoms/delete.ts +105 -0
- package/src/commands/liberica/uoms/disable.ts +148 -0
- package/src/commands/liberica/uoms/enable.ts +129 -0
- package/src/commands/liberica/uoms/get.ts +83 -0
- package/src/commands/liberica/uoms/index.ts +23 -0
- package/src/commands/liberica/uoms/list.ts +129 -0
- package/src/commands/liberica/uoms/update.ts +124 -0
- package/src/core/api/client.ts +585 -0
- package/src/index.ts +1 -1
- package/src/types/index.ts +5 -2
- package/src/types/material.ts +61 -0
- package/src/types/supplier.ts +66 -0
- package/src/types/uom.ts +60 -0
- package/bin/barista.js +0 -3
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# barista liberica materials get
|
|
2
|
+
|
|
3
|
+
获取单个物料详情。
|
|
4
|
+
|
|
5
|
+
## 2.1 命令元数据
|
|
6
|
+
|
|
7
|
+
| 字段 | 值 |
|
|
8
|
+
|------|-----|
|
|
9
|
+
| 完整命令 | `barista liberica materials get <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/master/
|
|
22
|
+
└── EnterpriseMaterialController.java
|
|
23
|
+
└── detail(@GetResource(path = "/detail"))
|
|
24
|
+
└── public ResponseData<MasterMaterialResponse> detail(
|
|
25
|
+
@RequestHeader("X-TENANT-ID") Long tenantId,
|
|
26
|
+
@ParameterObject @Validated(BaseRequest.detail.class) MasterMaterialRequest masterMaterialRequest
|
|
27
|
+
)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Request DTO位置
|
|
31
|
+
```
|
|
32
|
+
coffee-liberica-end/
|
|
33
|
+
└── business/liberica-business-sales/sales-api/
|
|
34
|
+
└── src/main/java/com/newpeak/liberica/sales/api/pojo/request/
|
|
35
|
+
└── MasterMaterialRequest.java
|
|
36
|
+
└── materialId: Long (@NotNull on detail)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Response DTO位置
|
|
40
|
+
```
|
|
41
|
+
coffee-liberica-end/
|
|
42
|
+
└── business/liberica-business-sales/sales-api/
|
|
43
|
+
└── src/main/java/com/newpeak/liberica/sales/api/pojo/response/
|
|
44
|
+
└── MasterMaterialResponse.java
|
|
45
|
+
├── materialId: Long
|
|
46
|
+
├── materialCode: String
|
|
47
|
+
├── materialNo: String
|
|
48
|
+
├── materialName: String
|
|
49
|
+
├── materialShortName: String
|
|
50
|
+
├── materialMaker: String
|
|
51
|
+
├── materialTags: Tags
|
|
52
|
+
├── materialTagNames: List<String>
|
|
53
|
+
├── materialClass: String
|
|
54
|
+
├── mouldType: String
|
|
55
|
+
├── materialBarCode: String
|
|
56
|
+
├── materialType: String
|
|
57
|
+
├── materialUomCode: String
|
|
58
|
+
├── enableMultiUom: String (Y/N)
|
|
59
|
+
├── multiUomCodes: MultiUom
|
|
60
|
+
├── enableSale: String (Y/N)
|
|
61
|
+
├── enablePurchase: String (Y/N)
|
|
62
|
+
├── enableSubMaterial: String (Y/N)
|
|
63
|
+
├── enableOutsourcing: String (Y/N)
|
|
64
|
+
├── enableDivision: String (Y/N)
|
|
65
|
+
├── enableShelfLifeManagement: String (Y/N)
|
|
66
|
+
├── stopProduction: String (Y/N)
|
|
67
|
+
├── shelfLifeUnit: String
|
|
68
|
+
├── shelfLife: Integer
|
|
69
|
+
├── shelfLifeWarningDays: Integer
|
|
70
|
+
├── shippingMethod: String
|
|
71
|
+
├── transactionMethod: String
|
|
72
|
+
├── tradeType: String
|
|
73
|
+
├── productionPeriod: Integer
|
|
74
|
+
├── productionQuantityPerLot: BigDecimal
|
|
75
|
+
├── lowLotRate: Float
|
|
76
|
+
├── useMaterialLotRate: String (Y/N)
|
|
77
|
+
├── substituteMaterials: SubstituteMaterials
|
|
78
|
+
├── safetyInventory: BigDecimal
|
|
79
|
+
├── defaultWarehouse: String
|
|
80
|
+
├── defaultSupplier: String
|
|
81
|
+
├── follower: String
|
|
82
|
+
├── minPackageQuantity: String
|
|
83
|
+
├── grossWeight: String
|
|
84
|
+
├── netWeight: String
|
|
85
|
+
├── color: String
|
|
86
|
+
├── longX: BigDecimal
|
|
87
|
+
├── longXUom: String
|
|
88
|
+
├── wideY: BigDecimal
|
|
89
|
+
├── wideYUom: String
|
|
90
|
+
├── highZ: BigDecimal
|
|
91
|
+
├── highZUom: String
|
|
92
|
+
├── volume: String
|
|
93
|
+
├── volumeUom: String
|
|
94
|
+
├── thickness: BigDecimal
|
|
95
|
+
├── thicknessUom: String
|
|
96
|
+
├── totalThickness: BigDecimal
|
|
97
|
+
├── diameter: BigDecimal
|
|
98
|
+
├── diameterUom: String
|
|
99
|
+
├── outerDiameter: BigDecimal
|
|
100
|
+
├── outerDiameterUom: String
|
|
101
|
+
├── innerDiameter: BigDecimal
|
|
102
|
+
├── innerDiameterUom: String
|
|
103
|
+
├── defaultClient: String
|
|
104
|
+
├── unitPrice: BigDecimal
|
|
105
|
+
├── currency: String
|
|
106
|
+
├── statusFlag: Integer (1=enable, 2=disable)
|
|
107
|
+
├── remark: String
|
|
108
|
+
├── salesOrderCount: String
|
|
109
|
+
├── salesOrderSummary: String
|
|
110
|
+
├── createTime: String
|
|
111
|
+
└── updateTime: String
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## 2.3 CLI参数设计
|
|
115
|
+
|
|
116
|
+
### 命令结构
|
|
117
|
+
```
|
|
118
|
+
barista liberica materials get <id> [options]
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 位置参数
|
|
122
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
123
|
+
|------|------|------|------|
|
|
124
|
+
| id | string | ✅ | 物料ID (materialId) |
|
|
125
|
+
|
|
126
|
+
### 全局选项
|
|
127
|
+
| 选项 | 类型 | 说明 |
|
|
128
|
+
|------|------|------|
|
|
129
|
+
| `--env` | string | 目标环境(dev\|test\|prod-cn\|prod-jp) |
|
|
130
|
+
| `--tenant` | string | 租户代码 |
|
|
131
|
+
| `--json` | boolean | JSON输出 |
|
|
132
|
+
|
|
133
|
+
### 命令选项
|
|
134
|
+
| 选项 | 短选项 | 类型 | 必填 | 默认值 | 说明 |
|
|
135
|
+
|------|--------|------|------|--------|------|
|
|
136
|
+
| — | — | — | — | — | 此命令无额外选项,ID 通过位置参数传入 |
|
|
137
|
+
|
|
138
|
+
## 2.4 字段映射表
|
|
139
|
+
|
|
140
|
+
| CLI参数 | DTO字段 | 类型转换 | 验证规则 |
|
|
141
|
+
|---------|---------|----------|----------|
|
|
142
|
+
| <id> (位置参数) | materialId | string→Long | @NotNull, 必须为正整数 |
|
|
143
|
+
|
|
144
|
+
## 2.5 错误码引用
|
|
145
|
+
|
|
146
|
+
### ExceptionEnum位置
|
|
147
|
+
```
|
|
148
|
+
coffee-liberica-end/
|
|
149
|
+
└── business/liberica-business-sales/sales-api/
|
|
150
|
+
└── src/main/java/com/newpeak/liberica/sales/api/exception/enums/
|
|
151
|
+
└── MasterMaterialExceptionEnum.java
|
|
152
|
+
├── MASTER_MATERIAL_NOT_EXIST("01001340001", "租户物料不存在")
|
|
153
|
+
├── MASTER_MATERIAL_CODE_VALIDATE_NOT_EXIST_ERROR("01001340006", "指定{}不存在")
|
|
154
|
+
└── MASTER_MATERIAL_NAME_VALIDATE_NOT_EXIST_ERROR("01001340010", "指定{}不存在")
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### 已知错误码
|
|
158
|
+
| 错误码 | 错误消息 | 触发条件 |
|
|
159
|
+
|--------|----------|----------|
|
|
160
|
+
| 01001340001 | 租户物料不存在 | materialId 不存在或不属于当前租户 |
|
|
161
|
+
|
|
162
|
+
## 2.6 权限检查
|
|
163
|
+
|
|
164
|
+
| 检查项 | 位置 | 说明 |
|
|
165
|
+
|--------|------|------|
|
|
166
|
+
| 注解 | `@GetResource(path = "/detail")` | 无 requiredPermission |
|
|
167
|
+
|
|
168
|
+
## 2.7 实现要点
|
|
169
|
+
|
|
170
|
+
1. **位置参数**:`get` 命令使用 `<id>` 位置参数指定物料ID
|
|
171
|
+
2. **错误处理**:物料不存在时抛出 `MASTER_MATERIAL_NOT_EXIST`,CLI 显示友好错误信息
|
|
172
|
+
3. **tenantId来源**:来自 X-TENANT-ID header,后端自动按租户隔离数据
|
|
173
|
+
4. **API端点**:GET `/api/enterprise/sales/material/detail?materialId={id}`
|
|
174
|
+
5. **ID类型注意**:后端使用 Long (BigInteger) 类型,CLI 中使用 string 避免 JavaScript 精度丢失
|
|
175
|
+
|
|
176
|
+
## 2.8 示例用法
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
# 获取物料详情
|
|
180
|
+
barista liberica materials get 12345
|
|
181
|
+
|
|
182
|
+
# JSON 输出
|
|
183
|
+
barista liberica materials get 12345 --json
|
|
184
|
+
|
|
185
|
+
# 物料不存在
|
|
186
|
+
barista liberica materials get 99999
|
|
187
|
+
# 输出: Error: 租户物料不存在 (01001340001)
|
|
188
|
+
```
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# barista liberica materials list
|
|
2
|
+
|
|
3
|
+
分页查询物料列表。
|
|
4
|
+
|
|
5
|
+
## 2.1 命令元数据
|
|
6
|
+
|
|
7
|
+
| 字段 | 值 |
|
|
8
|
+
|------|-----|
|
|
9
|
+
| 完整命令 | `barista liberica materials list` |
|
|
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/master/
|
|
22
|
+
└── EnterpriseMaterialController.java
|
|
23
|
+
└── page(@GetResource(path = "/page"))
|
|
24
|
+
└── public ResponseData<PageResult<MasterMaterialResponse>> page(
|
|
25
|
+
@RequestHeader("X-TENANT-ID") Long tenantId,
|
|
26
|
+
@ParameterObject MasterMaterialRequest masterMaterialRequest
|
|
27
|
+
)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Request DTO位置
|
|
31
|
+
```
|
|
32
|
+
coffee-liberica-end/
|
|
33
|
+
└── business/liberica-business-sales/sales-api/
|
|
34
|
+
└── src/main/java/com/newpeak/liberica/sales/api/pojo/request/
|
|
35
|
+
└── MasterMaterialRequest.java
|
|
36
|
+
├── pageNo: Long (分页页码,从0开始)
|
|
37
|
+
├── pageSize: Long (分页大小)
|
|
38
|
+
├── materialId: Long (物料ID)
|
|
39
|
+
├── materialCode: String (物料编码)
|
|
40
|
+
├── materialNo: String (物料号码)
|
|
41
|
+
├── materialName: String (物料名称)
|
|
42
|
+
├── materialClass: String (物料类别)
|
|
43
|
+
├── statusFlag: Integer (状态:1=启用,2=禁用)
|
|
44
|
+
├── queryMaterialTags: List<String> (物料标签查询条件)
|
|
45
|
+
├── queryMaterialClass: List<String> (物料类别查询条件)
|
|
46
|
+
├── queryMaterialCode: Set<String> (物料编码范围查询条件)
|
|
47
|
+
└── excludeMaterialCode: Set<String> (排除物料编码范围查询条件)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Response DTO位置
|
|
51
|
+
```
|
|
52
|
+
coffee-liberica-end/
|
|
53
|
+
└── business/liberica-business-sales/sales-api/
|
|
54
|
+
└── src/main/java/com/newpeak/liberica/sales/api/pojo/response/
|
|
55
|
+
└── MasterMaterialResponse.java
|
|
56
|
+
├── materialId: Long
|
|
57
|
+
├── materialCode: String
|
|
58
|
+
├── materialNo: String
|
|
59
|
+
├── materialName: String
|
|
60
|
+
├── materialShortName: String
|
|
61
|
+
├── materialMaker: String
|
|
62
|
+
├── materialTags: Tags
|
|
63
|
+
├── materialClass: String
|
|
64
|
+
├── materialBarCode: String
|
|
65
|
+
├── materialType: String
|
|
66
|
+
├── materialUomCode: String
|
|
67
|
+
├── enableMultiUom: String (Y/N)
|
|
68
|
+
├── enableSale: String (Y/N)
|
|
69
|
+
├── enablePurchase: String (Y/N)
|
|
70
|
+
├── enableSubMaterial: String (Y/N)
|
|
71
|
+
├── enableOutsourcing: String (Y/N)
|
|
72
|
+
├── enableDivision: String (Y/N)
|
|
73
|
+
├── enableShelfLifeManagement: String (Y/N)
|
|
74
|
+
├── stopProduction: String (Y/N)
|
|
75
|
+
├── safetyInventory: BigDecimal
|
|
76
|
+
├── defaultWarehouse: String
|
|
77
|
+
├── defaultSupplier: String
|
|
78
|
+
├── follower: String
|
|
79
|
+
├── unitPrice: BigDecimal
|
|
80
|
+
├── currency: String
|
|
81
|
+
├── statusFlag: Integer (1=启用,2=禁用)
|
|
82
|
+
├── remark: String
|
|
83
|
+
├── createTime: String
|
|
84
|
+
└── updateTime: String
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 分页包装器
|
|
88
|
+
```
|
|
89
|
+
cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult
|
|
90
|
+
├── totalRows: long
|
|
91
|
+
├── pageSize: long
|
|
92
|
+
├── pageNo: long
|
|
93
|
+
└── rows: List<MasterMaterialResponse>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## 2.3 CLI参数设计
|
|
97
|
+
|
|
98
|
+
### 命令结构
|
|
99
|
+
```
|
|
100
|
+
barista liberica materials list [options]
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 全局选项
|
|
104
|
+
| 选项 | 类型 | 说明 |
|
|
105
|
+
|------|------|------|
|
|
106
|
+
| `--env` | string | 目标环境(dev\|test\|prod-cn\|prod-jp) |
|
|
107
|
+
| `--tenant` | string | 租户代码 |
|
|
108
|
+
| `--json` | boolean | JSON输出 |
|
|
109
|
+
|
|
110
|
+
### 命令选项
|
|
111
|
+
| 选项 | 短选项 | 类型 | 必填 | 默认值 | 说明 | 对应DTO字段 |
|
|
112
|
+
|------|--------|------|------|--------|------|-------------|
|
|
113
|
+
| --page | -p | number | ⬜ | 1 | 页码(从1开始) | pageNo (转换:CLI页码-1) |
|
|
114
|
+
| --size | -s | number | ⬜ | 20 | 每页条数 | pageSize |
|
|
115
|
+
| --status | — | string | ⬜ | - | 状态:enable/disable | statusFlag (enable=1, disable=2) |
|
|
116
|
+
| --class | -c | string | ⬜ | - | 物料类别 | queryMaterialClass |
|
|
117
|
+
| --keyword | -k | string | ⬜ | - | 搜索关键词(物料编码/物料号码/物料名称) | materialCode/materialNo/materialName |
|
|
118
|
+
|
|
119
|
+
## 2.4 字段映射表
|
|
120
|
+
|
|
121
|
+
| CLI参数 | DTO字段 | 类型转换 | 验证规则 |
|
|
122
|
+
|---------|---------|----------|----------|
|
|
123
|
+
| --page / -p | pageNo | number→Long,CLI页码-1 | >= 1 |
|
|
124
|
+
| --size / -s | pageSize | number→Long | 1-100 |
|
|
125
|
+
| --status | statusFlag | string→Integer | enable=1, disable=2 |
|
|
126
|
+
| --class / -c | queryMaterialClass | string→List<String> | - |
|
|
127
|
+
| --keyword / -k | materialCode/materialNo/materialName | 直接传递 | 模糊查询 |
|
|
128
|
+
|
|
129
|
+
## 2.5 错误码引用
|
|
130
|
+
|
|
131
|
+
### ExceptionEnum位置
|
|
132
|
+
```
|
|
133
|
+
coffee-liberica-end/
|
|
134
|
+
└── business/liberica-business-sales/sales-api/
|
|
135
|
+
└── src/main/java/com/newpeak/liberica/sales/api/exception/enums/
|
|
136
|
+
└── MasterMaterialExceptionEnum.java
|
|
137
|
+
├── MASTER_MATERIAL_NOT_EXIST("01001411001", "租户物料不存在")
|
|
138
|
+
├── MASTER_MATERIAL_CODE_FORMAT_CANNOT_EMPTY("01001411003", "物料编码规则不能为空")
|
|
139
|
+
├── MASTER_MATERIAL_CODE_FORMAT_NOT_CORRECT("01001411004", "物料编码规则格式不正确")
|
|
140
|
+
├── MASTER_MATERIAL_CODE_VALIDATE_EMPTY_ERROR("01001411005", "{}不能为空")
|
|
141
|
+
├── MASTER_MATERIAL_CODE_VALIDATE_NOT_EXIST_ERROR("01001411006", "指定{}不存在")
|
|
142
|
+
├── MASTER_MATERIAL_NO_VALIDATE_EMPTY_ERROR("01001411007", "{}不能为空")
|
|
143
|
+
├── MASTER_MATERIAL_NO_VALIDATE_NOT_EXIST_ERROR("01001411008", "指定{}不存在")
|
|
144
|
+
├── MASTER_MATERIAL_NAME_VALIDATE_EMPTY_ERROR("01001411009", "{}不能为空")
|
|
145
|
+
├── MASTER_MATERIAL_NAME_VALIDATE_NOT_EXIST_ERROR("01001411010", "指定{}不存在")
|
|
146
|
+
└── MASTER_MATERIAL_NAME_DOES_NOT_MATCH_NO_ERROR("01001411011", "{}与{}不匹配")
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### 已知错误码
|
|
150
|
+
| 错误码 | 错误消息 | 触发条件 |
|
|
151
|
+
|--------|----------|----------|
|
|
152
|
+
| 01001411001 | 租户物料不存在 | 查询详情时ID不存在 |
|
|
153
|
+
| 01001411006 | 指定物料编码不存在 | 物料编码无效 |
|
|
154
|
+
| 01001411008 | 指定物料号码不存在 | 物料号码无效 |
|
|
155
|
+
| 01001411010 | 指定物料名称不存在 | 物料名称无效 |
|
|
156
|
+
|
|
157
|
+
## 2.6 权限检查
|
|
158
|
+
|
|
159
|
+
| 检查项 | 位置 | 说明 |
|
|
160
|
+
|--------|------|------|
|
|
161
|
+
| 注解 | `@GetResource(path = "/page")` | 无 requiredPermission(无需权限码) |
|
|
162
|
+
|
|
163
|
+
**注意**:page 接口在 Controller 层无需权限校验,数据范围通过 tenantId 隔离。
|
|
164
|
+
|
|
165
|
+
## 2.7 实现要点
|
|
166
|
+
|
|
167
|
+
1. **分页默认值**:page=1, size=20
|
|
168
|
+
2. **分页转换**:CLI使用1-based页码,API使用0-based页码(调用时需减1)
|
|
169
|
+
3. **搜索行为**:keyword 同时匹配 materialCode、materialNo 和 materialName(模糊查询)
|
|
170
|
+
4. **状态映射**:CLI参数 `enable`/`disable` 映射到 API 值 `1`/`2`
|
|
171
|
+
5. **无结果处理**:返回空列表,不抛出异常
|
|
172
|
+
6. **tenantId来源**:来自 JWT token(无需 X-TENANT-ID header)
|
|
173
|
+
7. **输出格式**:表格形式展示,分页信息在底部显示
|
|
174
|
+
|
|
175
|
+
## 2.8 示例用法
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# 默认分页
|
|
179
|
+
barista liberica materials list
|
|
180
|
+
|
|
181
|
+
# 指定页码和每页条数
|
|
182
|
+
barista liberica materials list --page 2 --size 50
|
|
183
|
+
|
|
184
|
+
# 按状态筛选
|
|
185
|
+
barista liberica materials list --status enable
|
|
186
|
+
|
|
187
|
+
# 按物料类别筛选
|
|
188
|
+
barista liberica materials list --class "raw_material"
|
|
189
|
+
|
|
190
|
+
# 关键词搜索
|
|
191
|
+
barista liberica materials list --keyword "螺丝"
|
|
192
|
+
|
|
193
|
+
# 组合筛选
|
|
194
|
+
barista liberica materials list --page 1 --size 10 --status enable --keyword "M001"
|
|
195
|
+
|
|
196
|
+
# JSON 输出(便于脚本处理)
|
|
197
|
+
barista liberica materials list --page 1 --size 20 --json
|
|
198
|
+
```
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
# barista liberica materials update
|
|
2
|
+
|
|
3
|
+
更新物料信息。
|
|
4
|
+
|
|
5
|
+
## 2.1 命令元数据
|
|
6
|
+
|
|
7
|
+
| 字段 | 值 |
|
|
8
|
+
|------|-----|
|
|
9
|
+
| 完整命令 | `barista liberica materials update <materialId>` |
|
|
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/master/
|
|
22
|
+
└── EnterpriseMaterialController.java
|
|
23
|
+
└── edit(@PostResource(path = "/edit", requiredPermission = true, requirePermissionCode = "EDIT_MASTER_MATERIAL"))
|
|
24
|
+
└── public ResponseData<?> edit(
|
|
25
|
+
@RequestHeader("X-TENANT-ID") Long tenantId,
|
|
26
|
+
@RequestBody @Validated(BaseRequest.edit.class) MasterMaterialRequest masterMaterialRequest
|
|
27
|
+
)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Request DTO位置
|
|
31
|
+
```
|
|
32
|
+
coffee-liberica-end/
|
|
33
|
+
└── business/liberica-business-sales/sales-api/
|
|
34
|
+
└── src/main/java/com/newpeak/liberica/sales/api/pojo/request/
|
|
35
|
+
└── MasterMaterialRequest.java
|
|
36
|
+
├── materialId: Long (@NotNull on edit) — 必须提供
|
|
37
|
+
├── materialCode: String
|
|
38
|
+
├── materialNo: String
|
|
39
|
+
├── materialName: String
|
|
40
|
+
├── materialShortName: String
|
|
41
|
+
├── materialMaker: String
|
|
42
|
+
├── materialClass: String
|
|
43
|
+
├── materialType: String
|
|
44
|
+
├── materialUomCode: String
|
|
45
|
+
├── materialBarCode: String
|
|
46
|
+
├── enableSale: String (Y/N)
|
|
47
|
+
├── enablePurchase: String (Y/N)
|
|
48
|
+
├── enableSubMaterial: String (Y/N)
|
|
49
|
+
├── enableOutsourcing: String (Y/N)
|
|
50
|
+
├── enableDivision: String (Y/N)
|
|
51
|
+
├── productionPeriod: Integer
|
|
52
|
+
├── unitPrice: BigDecimal
|
|
53
|
+
├── currency: String
|
|
54
|
+
├── defaultWarehouse: String
|
|
55
|
+
├── defaultSupplier: String
|
|
56
|
+
├── defaultClient: String
|
|
57
|
+
├── safetyInventory: BigDecimal
|
|
58
|
+
├── longX: BigDecimal
|
|
59
|
+
├── wideY: BigDecimal
|
|
60
|
+
├── highZ: BigDecimal
|
|
61
|
+
├── thickness: BigDecimal
|
|
62
|
+
├── grossWeight: String
|
|
63
|
+
├── netWeight: String
|
|
64
|
+
├── color: String
|
|
65
|
+
└── remark: String
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Response DTO位置
|
|
69
|
+
```
|
|
70
|
+
coffee-liberica-end/
|
|
71
|
+
└── business/liberica-business-sales/sales-api/
|
|
72
|
+
└── src/main/java/com/newpeak/liberica/sales/api/pojo/response/
|
|
73
|
+
└── MasterMaterialResponse.java
|
|
74
|
+
├── materialId: Long
|
|
75
|
+
├── materialCode: String
|
|
76
|
+
├── materialNo: String
|
|
77
|
+
├── materialName: String
|
|
78
|
+
├── materialShortName: String
|
|
79
|
+
├── materialClass: String
|
|
80
|
+
├── materialType: String
|
|
81
|
+
├── materialUomCode: String
|
|
82
|
+
├── statusFlag: Integer (1=enable, 2=disable)
|
|
83
|
+
├── createTime: String
|
|
84
|
+
└── updateTime: String
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## 2.3 CLI参数设计
|
|
88
|
+
|
|
89
|
+
### 命令结构
|
|
90
|
+
```
|
|
91
|
+
barista liberica materials update <materialId> [options]
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### 位置参数
|
|
95
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
96
|
+
|------|------|------|------|
|
|
97
|
+
| materialId | string | ✅ | 物料ID (materialId) |
|
|
98
|
+
|
|
99
|
+
### 全局选项
|
|
100
|
+
| 选项 | 类型 | 说明 |
|
|
101
|
+
|------|------|------|
|
|
102
|
+
| `--env` | string | 目标环境(dev\|test\|prod-cn\|prod-jp) |
|
|
103
|
+
| `--tenant` | string | 租户代码 |
|
|
104
|
+
| `--dry-run` | boolean | 预览模式(不实际调用API) |
|
|
105
|
+
| `--json` | boolean | JSON输出 |
|
|
106
|
+
|
|
107
|
+
### 命令选项
|
|
108
|
+
| 选项 | 短选项 | 类型 | 必填 | 默认值 | 说明 | 对应DTO字段 |
|
|
109
|
+
|------|--------|------|------|--------|------|-------------|
|
|
110
|
+
| --name | -n | string | ⬜ | - | 物料名称 | materialName |
|
|
111
|
+
| --class | -c | string | ⬜ | - | 物料类别 | materialClass |
|
|
112
|
+
| --type | -t | string | ⬜ | - | 规格型号 | materialType |
|
|
113
|
+
| --unit | -u | string | ⬜ | - | 计量单位 | materialUomCode |
|
|
114
|
+
| --short-name | — | string | ⬜ | - | 物料简称 | materialShortName |
|
|
115
|
+
| --maker | — | string | ⬜ | - | 生产厂商 | materialMaker |
|
|
116
|
+
| --barcode | — | string | ⬜ | - | 条形码 | materialBarCode |
|
|
117
|
+
| --enable-sale | — | boolean | ⬜ | - | 可销售 | enableSale |
|
|
118
|
+
| --enable-purchase | — | boolean | ⬜ | - | 可采购 | enablePurchase |
|
|
119
|
+
| --enable-sub-material | — | boolean | ⬜ | - | 可为子件 | enableSubMaterial |
|
|
120
|
+
| --enable-outsourcing | — | boolean | ⬜ | - | 可委外 | enableOutsourcing |
|
|
121
|
+
| --enable-division | — | boolean | ⬜ | - | 可切割 | enableDivision |
|
|
122
|
+
| --production-period | — | number | ⬜ | - | 生产周期(天) | productionPeriod |
|
|
123
|
+
| --unit-price | — | number | ⬜ | - | 单价 | unitPrice |
|
|
124
|
+
| --currency | — | string | ⬜ | - | 币种 | currency |
|
|
125
|
+
| --default-warehouse | — | string | ⬜ | - | 默认仓库 | defaultWarehouse |
|
|
126
|
+
| --default-supplier | — | string | ⬜ | - | 默认供应商 | defaultSupplier |
|
|
127
|
+
| --default-client | — | string | ⬜ | - | 默认客户 | defaultClient |
|
|
128
|
+
| --safety-inventory | — | number | ⬜ | - | 安全库存 | safetyInventory |
|
|
129
|
+
| --long-x | — | number | ⬜ | - | 长 | longX |
|
|
130
|
+
| --wide-y | — | number | ⬜ | - | 宽 | wideY |
|
|
131
|
+
| --high-z | — | number | ⬜ | - | 高 | highZ |
|
|
132
|
+
| --thickness | — | number | ⬜ | - | 厚度 | thickness |
|
|
133
|
+
| --gross-weight | — | string | ⬜ | - | 毛重 | grossWeight |
|
|
134
|
+
| --net-weight | — | string | ⬜ | - | 净重 | netWeight |
|
|
135
|
+
| --color | — | string | ⬜ | - | 颜色 | color |
|
|
136
|
+
| --remark | -r | string | ⬜ | - | 备注 | remark |
|
|
137
|
+
|
|
138
|
+
**注意**:物料ID(materialId)为必填,通过位置参数 `<materialId>` 传入。后端处理部分更新,未提供的字段保持原值。
|
|
139
|
+
|
|
140
|
+
## 2.4 字段映射表
|
|
141
|
+
|
|
142
|
+
| CLI参数 | DTO字段 | 类型转换 | 验证规则 |
|
|
143
|
+
|---------|---------|----------|----------|
|
|
144
|
+
| <materialId> (位置参数) | materialId | string→Long | @NotNull |
|
|
145
|
+
| --name / -n | materialName | 直接传递 | max=255 |
|
|
146
|
+
| --class / -c | materialClass | 直接传递 | max=255 |
|
|
147
|
+
| --type / -t | materialType | 直接传递 | max=255 |
|
|
148
|
+
| --unit / -u | materialUomCode | 直接传递 | max=255 |
|
|
149
|
+
| --short-name | materialShortName | 直接传递 | max=255 |
|
|
150
|
+
| --maker | materialMaker | 直接传递 | max=255 |
|
|
151
|
+
| --barcode | materialBarCode | 直接传递 | max=255 |
|
|
152
|
+
| --enable-sale | enableSale | boolean→String | Y 或 N |
|
|
153
|
+
| --enable-purchase | enablePurchase | boolean→String | Y 或 N |
|
|
154
|
+
| --enable-sub-material | enableSubMaterial | boolean→String | Y 或 N |
|
|
155
|
+
| --enable-outsourcing | enableOutsourcing | boolean→String | Y 或 N |
|
|
156
|
+
| --enable-division | enableDivision | boolean→String | Y 或 N |
|
|
157
|
+
| --production-period | productionPeriod | number→Integer | - |
|
|
158
|
+
| --unit-price | unitPrice | number→BigDecimal | - |
|
|
159
|
+
| --currency | currency | 直接传递 | max=255 |
|
|
160
|
+
| --default-warehouse | defaultWarehouse | 直接传递 | max=255 |
|
|
161
|
+
| --default-supplier | defaultSupplier | 直接传递 | max=255 |
|
|
162
|
+
| --default-client | defaultClient | 直接传递 | max=255 |
|
|
163
|
+
| --safety-inventory | safetyInventory | number→BigDecimal | - |
|
|
164
|
+
| --long-x | longX | number→BigDecimal | - |
|
|
165
|
+
| --wide-y | wideY | number→BigDecimal | - |
|
|
166
|
+
| --high-z | highZ | number→BigDecimal | - |
|
|
167
|
+
| --thickness | thickness | number→BigDecimal | - |
|
|
168
|
+
| --gross-weight | grossWeight | 直接传递 | max=255 |
|
|
169
|
+
| --net-weight | netWeight | 直接传递 | max=255 |
|
|
170
|
+
| --color | color | 直接传递 | max=255 |
|
|
171
|
+
| --remark / -r | remark | 直接传递 | max=255 |
|
|
172
|
+
|
|
173
|
+
## 2.5 错误码引用
|
|
174
|
+
|
|
175
|
+
### ExceptionEnum位置
|
|
176
|
+
```
|
|
177
|
+
coffee-liberica-end/
|
|
178
|
+
└── business/liberica-business-sales/sales-api/
|
|
179
|
+
└── src/main/java/com/newpeak/liberica/sales/api/exception/enums/
|
|
180
|
+
└── MasterMaterialExceptionEnum.java
|
|
181
|
+
├── MASTER_MATERIAL_NOT_EXIST("01001512001", "租户物料不存在")
|
|
182
|
+
├── MASTER_MATERIAL_CODE_VALIDATE_NOT_EXIST_ERROR("01001512006", "指定{}不存在")
|
|
183
|
+
├── MASTER_MATERIAL_NAME_VALIDATE_NOT_EXIST_ERROR("01001512010", "指定{}不存在")
|
|
184
|
+
├── ENABLE_DIVISION_MATERIAL_NEED_WIDE_AND_LONG("01001512012", "可分割物料必须设置长和宽")
|
|
185
|
+
└── ENABLE_DIVISION_MATERIAL_NEED_WIDE_AND_LONG_GT_ZERO("01001512013", "可分割物料长和宽必须大于0")
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### 已知错误码
|
|
189
|
+
| 错误码 | 错误消息 | 触发条件 |
|
|
190
|
+
|--------|----------|----------|
|
|
191
|
+
| 01001512001 | 租户物料不存在 | materialId 不存在或不属于当前租户 |
|
|
192
|
+
| 01001512006 | 指定xxx不存在 | 指定关联的物料编码不存在 |
|
|
193
|
+
| 01001512012 | 可分割物料必须设置长和宽 | 设置enableDivision=Y但未提供长宽 |
|
|
194
|
+
| 01001512013 | 可分割物料长和宽必须大于0 | 设置enableDivision=Y且长宽<=0 |
|
|
195
|
+
|
|
196
|
+
## 2.6 权限检查
|
|
197
|
+
|
|
198
|
+
| 检查项 | 位置 | 说明 |
|
|
199
|
+
|--------|------|------|
|
|
200
|
+
| PermissionConstants | `MasterMaterialPermissionConstants.EDIT_MASTER_MATERIAL` | Controller层 `@PostResource(requirePermissionCode = "EDIT_MASTER_MATERIAL")` |
|
|
201
|
+
|
|
202
|
+
## 2.7 实现要点
|
|
203
|
+
|
|
204
|
+
1. **materialId位置参数**:`<materialId>` 通过位置参数传入,映射到 `materialId` 字段
|
|
205
|
+
2. **请求体结构**:必须将 `materialId` 包含在请求体中,后端通过此ID定位记录
|
|
206
|
+
3. **部分更新**:只发送需要更新的字段,未提供的字段保持原值
|
|
207
|
+
4. **Dry-run支持**:使用 --dry-run 时构造请求体但不发送,显示预览信息
|
|
208
|
+
5. **后端验证**:edit() 方法调用 `masterMaterialBusiness.edit()`,后端会校验物料是否存在
|
|
209
|
+
|
|
210
|
+
## 2.8 示例用法
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
# 更新物料名称
|
|
214
|
+
barista liberica materials update 12345 --name "新产品名称"
|
|
215
|
+
|
|
216
|
+
# 更新物料类别和规格
|
|
217
|
+
barista liberica materials update 12345 \
|
|
218
|
+
--class "原材料" \
|
|
219
|
+
--type "ABC-001" \
|
|
220
|
+
--unit "KG"
|
|
221
|
+
|
|
222
|
+
# 更新价格信息
|
|
223
|
+
barista liberica materials update 12345 \
|
|
224
|
+
--unit-price 100.50 \
|
|
225
|
+
--currency "CNY"
|
|
226
|
+
|
|
227
|
+
# 启用可销售属性
|
|
228
|
+
barista liberica materials update 12345 --enable-sale true
|
|
229
|
+
|
|
230
|
+
# 同时更新多个字段
|
|
231
|
+
barista liberica materials update 12345 \
|
|
232
|
+
--name "新产品" \
|
|
233
|
+
--class "成品" \
|
|
234
|
+
--type "XYZ-999" \
|
|
235
|
+
--unit "PCS" \
|
|
236
|
+
--unit-price 299.99 \
|
|
237
|
+
--enable-sale true \
|
|
238
|
+
--enable-purchase true \
|
|
239
|
+
--remark "更新备注信息"
|
|
240
|
+
|
|
241
|
+
# Dry-run 预览
|
|
242
|
+
barista liberica materials update 12345 --name "新产品" --dry-run
|
|
243
|
+
|
|
244
|
+
# JSON 输出
|
|
245
|
+
barista liberica materials update 12345 --name "新产品" --json
|
|
246
|
+
|
|
247
|
+
# 物料不存在
|
|
248
|
+
barista liberica materials update 99999 --name "测试"
|
|
249
|
+
# 输出: Error: 租户物料不存在 (01001512001)
|
|
250
|
+
```
|