@newpeak/barista-cli 0.1.7 → 0.1.9
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.md +10 -10
- package/dist/commands/liberica/calendar/index.d.ts +3 -0
- package/dist/commands/liberica/calendar/index.d.ts.map +1 -0
- package/dist/commands/liberica/calendar/index.js +11 -0
- package/dist/commands/liberica/calendar/index.js.map +1 -0
- package/dist/commands/liberica/calendar/list.d.ts +3 -0
- package/dist/commands/liberica/calendar/list.d.ts.map +1 -0
- package/dist/commands/liberica/calendar/list.js +181 -0
- package/dist/commands/liberica/calendar/list.js.map +1 -0
- package/dist/commands/liberica/calendar/set.d.ts +3 -0
- package/dist/commands/liberica/calendar/set.d.ts.map +1 -0
- package/dist/commands/liberica/calendar/set.js +120 -0
- package/dist/commands/liberica/calendar/set.js.map +1 -0
- package/dist/commands/liberica/client-contacts/create.d.ts +3 -0
- package/dist/commands/liberica/client-contacts/create.d.ts.map +1 -0
- package/dist/commands/liberica/client-contacts/create.js +132 -0
- package/dist/commands/liberica/client-contacts/create.js.map +1 -0
- package/dist/commands/liberica/client-contacts/delete.d.ts +3 -0
- package/dist/commands/liberica/client-contacts/delete.d.ts.map +1 -0
- package/dist/commands/liberica/client-contacts/delete.js +139 -0
- package/dist/commands/liberica/client-contacts/delete.js.map +1 -0
- package/dist/commands/liberica/client-contacts/get.d.ts +3 -0
- package/dist/commands/liberica/client-contacts/get.d.ts.map +1 -0
- package/dist/commands/liberica/client-contacts/get.js +92 -0
- package/dist/commands/liberica/client-contacts/get.js.map +1 -0
- package/dist/commands/liberica/client-contacts/index.d.ts +3 -0
- package/dist/commands/liberica/client-contacts/index.d.ts.map +1 -0
- package/dist/commands/liberica/client-contacts/index.js +17 -0
- package/dist/commands/liberica/client-contacts/index.js.map +1 -0
- package/dist/commands/liberica/client-contacts/list.d.ts +3 -0
- package/dist/commands/liberica/client-contacts/list.d.ts.map +1 -0
- package/dist/commands/liberica/client-contacts/list.js +92 -0
- package/dist/commands/liberica/client-contacts/list.js.map +1 -0
- package/dist/commands/liberica/client-contacts/update.d.ts +3 -0
- package/dist/commands/liberica/client-contacts/update.d.ts.map +1 -0
- package/dist/commands/liberica/client-contacts/update.js +156 -0
- package/dist/commands/liberica/client-contacts/update.js.map +1 -0
- package/dist/commands/liberica/dict-types/get.d.ts +3 -0
- package/dist/commands/liberica/dict-types/get.d.ts.map +1 -0
- package/dist/commands/liberica/dict-types/get.js +62 -0
- package/dist/commands/liberica/dict-types/get.js.map +1 -0
- package/dist/commands/liberica/dict-types/index.d.ts +3 -0
- package/dist/commands/liberica/dict-types/index.d.ts.map +1 -0
- package/dist/commands/liberica/dict-types/index.js +13 -0
- package/dist/commands/liberica/dict-types/index.js.map +1 -0
- package/dist/commands/liberica/dict-types/list.d.ts +3 -0
- package/dist/commands/liberica/dict-types/list.d.ts.map +1 -0
- package/dist/commands/liberica/dict-types/list.js +91 -0
- package/dist/commands/liberica/dict-types/list.js.map +1 -0
- package/dist/commands/liberica/dict-types/update.d.ts +3 -0
- package/dist/commands/liberica/dict-types/update.d.ts.map +1 -0
- package/dist/commands/liberica/dict-types/update.js +127 -0
- package/dist/commands/liberica/dict-types/update.js.map +1 -0
- package/dist/commands/liberica/dicts/create.d.ts +3 -0
- package/dist/commands/liberica/dicts/create.d.ts.map +1 -0
- package/dist/commands/liberica/dicts/create.js +157 -0
- package/dist/commands/liberica/dicts/create.js.map +1 -0
- package/dist/commands/liberica/dicts/delete.d.ts +3 -0
- package/dist/commands/liberica/dicts/delete.d.ts.map +1 -0
- package/dist/commands/liberica/dicts/delete.js +106 -0
- package/dist/commands/liberica/dicts/delete.js.map +1 -0
- package/dist/commands/liberica/dicts/get.d.ts +3 -0
- package/dist/commands/liberica/dicts/get.d.ts.map +1 -0
- package/dist/commands/liberica/dicts/get.js +69 -0
- package/dist/commands/liberica/dicts/get.js.map +1 -0
- package/dist/commands/liberica/dicts/index.d.ts +3 -0
- package/dist/commands/liberica/dicts/index.d.ts.map +1 -0
- package/dist/commands/liberica/dicts/index.js +17 -0
- package/dist/commands/liberica/dicts/index.js.map +1 -0
- package/dist/commands/liberica/dicts/list.d.ts +3 -0
- package/dist/commands/liberica/dicts/list.d.ts.map +1 -0
- package/dist/commands/liberica/dicts/list.js +88 -0
- package/dist/commands/liberica/dicts/list.js.map +1 -0
- package/dist/commands/liberica/dicts/update.d.ts +3 -0
- package/dist/commands/liberica/dicts/update.d.ts.map +1 -0
- package/dist/commands/liberica/dicts/update.js +112 -0
- package/dist/commands/liberica/dicts/update.js.map +1 -0
- package/dist/commands/liberica/index.d.ts.map +1 -1
- package/dist/commands/liberica/index.js +20 -0
- package/dist/commands/liberica/index.js.map +1 -1
- package/dist/commands/liberica/materials/create.d.ts.map +1 -1
- package/dist/commands/liberica/materials/create.js +13 -6
- package/dist/commands/liberica/materials/create.js.map +1 -1
- package/dist/commands/liberica/materials/update.js +1 -1
- package/dist/commands/liberica/materials/update.js.map +1 -1
- package/dist/commands/liberica/mould/get.d.ts +3 -0
- package/dist/commands/liberica/mould/get.d.ts.map +1 -0
- package/dist/commands/liberica/mould/get.js +90 -0
- package/dist/commands/liberica/mould/get.js.map +1 -0
- package/dist/commands/liberica/mould/index.d.ts +3 -0
- package/dist/commands/liberica/mould/index.d.ts.map +1 -0
- package/dist/commands/liberica/mould/index.js +15 -0
- package/dist/commands/liberica/mould/index.js.map +1 -0
- package/dist/commands/liberica/mould/list.d.ts +3 -0
- package/dist/commands/liberica/mould/list.d.ts.map +1 -0
- package/dist/commands/liberica/mould/list.js +114 -0
- package/dist/commands/liberica/mould/list.js.map +1 -0
- package/dist/commands/liberica/mould/set-status.d.ts +3 -0
- package/dist/commands/liberica/mould/set-status.d.ts.map +1 -0
- package/dist/commands/liberica/mould/set-status.js +84 -0
- package/dist/commands/liberica/mould/set-status.js.map +1 -0
- package/dist/commands/liberica/mould/stock-in.d.ts +3 -0
- package/dist/commands/liberica/mould/stock-in.d.ts.map +1 -0
- package/dist/commands/liberica/mould/stock-in.js +160 -0
- package/dist/commands/liberica/mould/stock-in.js.map +1 -0
- package/dist/commands/liberica/operations/active.d.ts +3 -0
- package/dist/commands/liberica/operations/active.d.ts.map +1 -0
- package/dist/commands/liberica/operations/active.js +152 -0
- package/dist/commands/liberica/operations/active.js.map +1 -0
- package/dist/commands/liberica/operations/batch-delete.d.ts +3 -0
- package/dist/commands/liberica/operations/batch-delete.d.ts.map +1 -0
- package/dist/commands/liberica/operations/batch-delete.js +130 -0
- package/dist/commands/liberica/operations/batch-delete.js.map +1 -0
- package/dist/commands/liberica/operations/copy.d.ts +3 -0
- package/dist/commands/liberica/operations/copy.d.ts.map +1 -0
- package/dist/commands/liberica/operations/copy.js +137 -0
- package/dist/commands/liberica/operations/copy.js.map +1 -0
- package/dist/commands/liberica/operations/create.d.ts +3 -0
- package/dist/commands/liberica/operations/create.d.ts.map +1 -0
- package/dist/commands/liberica/operations/create.js +212 -0
- package/dist/commands/liberica/operations/create.js.map +1 -0
- package/dist/commands/liberica/operations/deactive.d.ts +3 -0
- package/dist/commands/liberica/operations/deactive.d.ts.map +1 -0
- package/dist/commands/liberica/operations/deactive.js +152 -0
- package/dist/commands/liberica/operations/deactive.js.map +1 -0
- package/dist/commands/liberica/operations/delete.d.ts +3 -0
- package/dist/commands/liberica/operations/delete.d.ts.map +1 -0
- package/dist/commands/liberica/operations/delete.js +128 -0
- package/dist/commands/liberica/operations/delete.js.map +1 -0
- package/dist/commands/liberica/operations/get.d.ts +3 -0
- package/dist/commands/liberica/operations/get.d.ts.map +1 -0
- package/dist/commands/liberica/operations/get.js +93 -0
- package/dist/commands/liberica/operations/get.js.map +1 -0
- package/dist/commands/liberica/operations/index.d.ts +3 -0
- package/dist/commands/liberica/operations/index.d.ts.map +1 -0
- package/dist/commands/liberica/operations/index.js +25 -0
- package/dist/commands/liberica/operations/index.js.map +1 -0
- package/dist/commands/liberica/operations/list.d.ts +3 -0
- package/dist/commands/liberica/operations/list.d.ts.map +1 -0
- package/dist/commands/liberica/operations/list.js +141 -0
- package/dist/commands/liberica/operations/list.js.map +1 -0
- package/dist/commands/liberica/operations/update.d.ts +3 -0
- package/dist/commands/liberica/operations/update.d.ts.map +1 -0
- package/dist/commands/liberica/operations/update.js +208 -0
- package/dist/commands/liberica/operations/update.js.map +1 -0
- package/dist/commands/liberica/stock/__tests__/ledger.test.d.ts +2 -0
- package/dist/commands/liberica/stock/__tests__/ledger.test.d.ts.map +1 -0
- package/dist/commands/liberica/stock/__tests__/ledger.test.js +41 -0
- package/dist/commands/liberica/stock/__tests__/ledger.test.js.map +1 -0
- package/dist/commands/liberica/stock/__tests__/list.test.d.ts +2 -0
- package/dist/commands/liberica/stock/__tests__/list.test.d.ts.map +1 -0
- package/dist/commands/liberica/stock/__tests__/list.test.js +39 -0
- package/dist/commands/liberica/stock/__tests__/list.test.js.map +1 -0
- package/dist/commands/liberica/stock/index.d.ts +3 -0
- package/dist/commands/liberica/stock/index.d.ts.map +1 -0
- package/dist/commands/liberica/stock/index.js +11 -0
- package/dist/commands/liberica/stock/index.js.map +1 -0
- package/dist/commands/liberica/stock/ledger.d.ts +3 -0
- package/dist/commands/liberica/stock/ledger.d.ts.map +1 -0
- package/dist/commands/liberica/stock/ledger.js +154 -0
- package/dist/commands/liberica/stock/ledger.js.map +1 -0
- package/dist/commands/liberica/stock/list.d.ts +3 -0
- package/dist/commands/liberica/stock/list.d.ts.map +1 -0
- package/dist/commands/liberica/stock/list.js +127 -0
- package/dist/commands/liberica/stock/list.js.map +1 -0
- package/dist/commands/liberica/supplier-contacts/create.d.ts +3 -0
- package/dist/commands/liberica/supplier-contacts/create.d.ts.map +1 -0
- package/dist/commands/liberica/supplier-contacts/create.js +129 -0
- package/dist/commands/liberica/supplier-contacts/create.js.map +1 -0
- package/dist/commands/liberica/supplier-contacts/delete.d.ts +3 -0
- package/dist/commands/liberica/supplier-contacts/delete.d.ts.map +1 -0
- package/dist/commands/liberica/supplier-contacts/delete.js +88 -0
- package/dist/commands/liberica/supplier-contacts/delete.js.map +1 -0
- package/dist/commands/liberica/supplier-contacts/get.d.ts +3 -0
- package/dist/commands/liberica/supplier-contacts/get.d.ts.map +1 -0
- package/dist/commands/liberica/supplier-contacts/get.js +84 -0
- package/dist/commands/liberica/supplier-contacts/get.js.map +1 -0
- package/dist/commands/liberica/supplier-contacts/index.d.ts +3 -0
- package/dist/commands/liberica/supplier-contacts/index.d.ts.map +1 -0
- package/dist/commands/liberica/supplier-contacts/index.js +17 -0
- package/dist/commands/liberica/supplier-contacts/index.js.map +1 -0
- package/dist/commands/liberica/supplier-contacts/list.d.ts +3 -0
- package/dist/commands/liberica/supplier-contacts/list.d.ts.map +1 -0
- package/dist/commands/liberica/supplier-contacts/list.js +98 -0
- package/dist/commands/liberica/supplier-contacts/list.js.map +1 -0
- package/dist/commands/liberica/supplier-contacts/update.d.ts +3 -0
- package/dist/commands/liberica/supplier-contacts/update.d.ts.map +1 -0
- package/dist/commands/liberica/supplier-contacts/update.js +136 -0
- package/dist/commands/liberica/supplier-contacts/update.js.map +1 -0
- package/dist/core/api/client.d.ts +63 -0
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +1050 -65
- package/dist/core/api/client.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/types/calendar.d.ts +28 -0
- package/dist/types/calendar.d.ts.map +1 -0
- package/dist/types/calendar.js +2 -0
- package/dist/types/calendar.js.map +1 -0
- package/dist/types/client-contact.d.ts +65 -0
- package/dist/types/client-contact.d.ts.map +1 -0
- package/dist/types/client-contact.js +4 -0
- package/dist/types/client-contact.js.map +1 -0
- package/dist/types/dict.d.ts +97 -0
- package/dist/types/dict.d.ts.map +1 -0
- package/dist/types/dict.js +2 -0
- package/dist/types/dict.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/material.d.ts +1 -1
- package/dist/types/material.d.ts.map +1 -1
- package/dist/types/mould-stock-in.d.ts +70 -0
- package/dist/types/mould-stock-in.d.ts.map +1 -0
- package/dist/types/mould-stock-in.js +3 -0
- package/dist/types/mould-stock-in.js.map +1 -0
- package/dist/types/mould.d.ts +61 -0
- package/dist/types/mould.d.ts.map +1 -0
- package/dist/types/mould.js +2 -0
- package/dist/types/mould.js.map +1 -0
- package/dist/types/operation.d.ts +66 -0
- package/dist/types/operation.d.ts.map +1 -0
- package/dist/types/operation.js +2 -0
- package/dist/types/operation.js.map +1 -0
- package/dist/types/stock.d.ts +133 -0
- package/dist/types/stock.d.ts.map +1 -0
- package/dist/types/stock.js +3 -0
- package/dist/types/stock.js.map +1 -0
- package/dist/types/supplier-contact.d.ts +65 -0
- package/dist/types/supplier-contact.d.ts.map +1 -0
- package/dist/types/supplier-contact.js +4 -0
- package/dist/types/supplier-contact.js.map +1 -0
- package/docs/commands/REFERENCE.md +24 -4
- package/docs/commands/liberica/calendar/DESIGN.md +333 -0
- package/docs/commands/liberica/client-contacts/create.md +152 -0
- package/docs/commands/liberica/client-contacts/delete.md +123 -0
- package/docs/commands/liberica/client-contacts/get.md +133 -0
- package/docs/commands/liberica/client-contacts/list.md +143 -0
- package/docs/commands/liberica/client-contacts/update.md +158 -0
- package/docs/commands/liberica/stock/ledger.md +209 -0
- package/docs/commands/liberica/stock/list.md +165 -0
- package/docs/commands/liberica/supplier-contacts/create.md +152 -0
- package/docs/commands/liberica/supplier-contacts/delete.md +123 -0
- package/docs/commands/liberica/supplier-contacts/get.md +133 -0
- package/docs/commands/liberica/supplier-contacts/list.md +143 -0
- package/docs/commands/liberica/supplier-contacts/update.md +158 -0
- package/package.json +1 -1
- package/src/commands/liberica/calendar/index.ts +13 -0
- package/src/commands/liberica/calendar/list.ts +214 -0
- package/src/commands/liberica/calendar/set.ts +130 -0
- package/src/commands/liberica/client-contacts/create.ts +115 -0
- package/src/commands/liberica/client-contacts/delete.ts +140 -0
- package/src/commands/liberica/client-contacts/get.ts +103 -0
- package/src/commands/liberica/client-contacts/index.ts +19 -0
- package/src/commands/liberica/client-contacts/list.ts +118 -0
- package/src/commands/liberica/client-contacts/update.ts +137 -0
- package/src/commands/liberica/dict-types/get.ts +74 -0
- package/src/commands/liberica/dict-types/index.ts +15 -0
- package/src/commands/liberica/dict-types/list.ts +118 -0
- package/src/commands/liberica/dict-types/update.ts +134 -0
- package/src/commands/liberica/dicts/create.ts +175 -0
- package/src/commands/liberica/dicts/delete.ts +107 -0
- package/src/commands/liberica/dicts/get.ts +80 -0
- package/src/commands/liberica/dicts/index.ts +19 -0
- package/src/commands/liberica/dicts/list.ts +114 -0
- package/src/commands/liberica/dicts/update.ts +116 -0
- package/src/commands/liberica/index.ts +20 -0
- package/src/commands/liberica/materials/create.ts +13 -5
- package/src/commands/liberica/materials/update.ts +1 -1
- package/src/commands/liberica/mould/get.ts +111 -0
- package/src/commands/liberica/mould/index.ts +17 -0
- package/src/commands/liberica/mould/list.ts +157 -0
- package/src/commands/liberica/mould/set-status.ts +99 -0
- package/src/commands/liberica/mould/stock-in.ts +165 -0
- package/src/commands/liberica/operations/active.ts +153 -0
- package/src/commands/liberica/operations/batch-delete.ts +131 -0
- package/src/commands/liberica/operations/copy.ts +138 -0
- package/src/commands/liberica/operations/create.ts +223 -0
- package/src/commands/liberica/operations/deactive.ts +152 -0
- package/src/commands/liberica/operations/delete.ts +128 -0
- package/src/commands/liberica/operations/design.md +587 -0
- package/src/commands/liberica/operations/get.ts +112 -0
- package/src/commands/liberica/operations/index.ts +27 -0
- package/src/commands/liberica/operations/list.ts +180 -0
- package/src/commands/liberica/operations/update.ts +218 -0
- package/src/commands/liberica/stock/index.ts +13 -0
- package/src/commands/liberica/stock/ledger.ts +159 -0
- package/src/commands/liberica/stock/list.ts +128 -0
- package/src/commands/liberica/supplier-contacts/create.ts +120 -0
- package/src/commands/liberica/supplier-contacts/delete.ts +88 -0
- package/src/commands/liberica/supplier-contacts/get.ts +94 -0
- package/src/commands/liberica/supplier-contacts/index.ts +19 -0
- package/src/commands/liberica/supplier-contacts/list.ts +130 -0
- package/src/commands/liberica/supplier-contacts/update.ts +127 -0
- package/src/core/api/client.ts +1238 -17
- package/src/index.ts +1 -1
- package/src/types/calendar.ts +36 -0
- package/src/types/client-contact.ts +78 -0
- package/src/types/dict.ts +121 -0
- package/src/types/index.ts +7 -0
- package/src/types/material.ts +1 -1
- package/src/types/mould-stock-in.ts +82 -0
- package/src/types/mould.ts +74 -0
- package/src/types/operation.ts +72 -0
- package/src/types/stock.ts +161 -0
- package/src/types/supplier-contact.ts +78 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { configManager } from '../../../core/config/manager.js';
|
|
4
|
+
import { apiClient } from '../../../core/api/client.js';
|
|
5
|
+
import { Environment } from '../../../types/index.js';
|
|
6
|
+
import { Operation } from '../../../types/operation.js';
|
|
7
|
+
|
|
8
|
+
export function createOperationsDeleteCommand(): Command {
|
|
9
|
+
const deleteCommand = new Command('delete');
|
|
10
|
+
deleteCommand
|
|
11
|
+
.description('Delete an operation')
|
|
12
|
+
.option('--id <id>', 'Operation ID')
|
|
13
|
+
.option('--force', 'Skip confirmation and delete directly')
|
|
14
|
+
.option('--dry-run', 'Preview without making API call')
|
|
15
|
+
.option('--json', 'Output as JSON')
|
|
16
|
+
.action(async (options: Record<string, unknown>) => {
|
|
17
|
+
const context = configManager.getCurrentContext();
|
|
18
|
+
const environment = context.environment as Environment;
|
|
19
|
+
const tenant = context.tenant;
|
|
20
|
+
const dryRun = options.dryRun === true;
|
|
21
|
+
const jsonOutput = options.json === true;
|
|
22
|
+
|
|
23
|
+
const operationId = options.id as string | undefined;
|
|
24
|
+
if (!operationId) {
|
|
25
|
+
if (jsonOutput) {
|
|
26
|
+
console.log(JSON.stringify({ success: false, error: { code: 'MISSING_ID', message: '--id is required' } }));
|
|
27
|
+
} else {
|
|
28
|
+
console.error(chalk.red('\n✗ --id is required\n'));
|
|
29
|
+
}
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (!jsonOutput) {
|
|
34
|
+
console.log(chalk.bold(`\n🗑️ Delete Operation (${environment})\n`));
|
|
35
|
+
console.log(chalk.gray(` Operation ID: ${operationId}`));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
let operation: Operation | undefined;
|
|
39
|
+
try {
|
|
40
|
+
const operationResponse = await apiClient.getOperationDetail(environment, tenant, operationId);
|
|
41
|
+
if (!operationResponse.success || !operationResponse.data || !('operationId' in operationResponse.data)) {
|
|
42
|
+
const errMsg = `Operation not found: ${operationId}`;
|
|
43
|
+
if (jsonOutput) {
|
|
44
|
+
console.log(JSON.stringify({ success: false, error: { code: 'NOT_FOUND', message: errMsg } }));
|
|
45
|
+
} else {
|
|
46
|
+
console.error(chalk.red(`\n✗ ${errMsg}\n`));
|
|
47
|
+
}
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
operation = operationResponse.data as Operation;
|
|
51
|
+
} catch (error) {
|
|
52
|
+
const errMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
53
|
+
if (jsonOutput) {
|
|
54
|
+
console.log(JSON.stringify({ success: false, error: { code: 'FETCH_ERROR', message: `Failed to fetch operation: ${errMsg}` } }));
|
|
55
|
+
} else {
|
|
56
|
+
console.error(chalk.red(`\n✗ Failed to fetch operation: ${errMsg}\n`));
|
|
57
|
+
}
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (!jsonOutput) {
|
|
62
|
+
console.log(chalk.gray(` Name: ${operation.operationName}`));
|
|
63
|
+
console.log(chalk.gray(` Code: ${operation.operationCode}`));
|
|
64
|
+
console.log(chalk.gray(` Type: ${operation.operationType}`));
|
|
65
|
+
if (operation.workCenterCode) {
|
|
66
|
+
console.log(chalk.gray(` Work Center: ${operation.workCenterCode}`));
|
|
67
|
+
}
|
|
68
|
+
if (operation.leadTime) {
|
|
69
|
+
console.log(chalk.gray(` Lead Time: ${operation.leadTime}h`));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (dryRun) {
|
|
74
|
+
if (jsonOutput) {
|
|
75
|
+
console.log(JSON.stringify({ success: true, dryRun: true, operation }));
|
|
76
|
+
} else {
|
|
77
|
+
console.log(chalk.cyan('\n🔍 Dry-Run Mode: No actual deletion will be made\n'));
|
|
78
|
+
console.log(chalk.yellow(' To delete, add: --force\n'));
|
|
79
|
+
}
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (!options.force) {
|
|
84
|
+
if (jsonOutput) {
|
|
85
|
+
console.log(JSON.stringify({ success: true, dryRun: true, operation }));
|
|
86
|
+
} else {
|
|
87
|
+
console.log(chalk.cyan('\n🔍 Dry-Run Mode: No actual deletion will be made\n'));
|
|
88
|
+
console.log(chalk.yellow(' To delete, add: --force\n'));
|
|
89
|
+
}
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
try {
|
|
94
|
+
const response = await apiClient.deleteOperation(environment, tenant, operationId);
|
|
95
|
+
|
|
96
|
+
if (response.success) {
|
|
97
|
+
if (jsonOutput) {
|
|
98
|
+
console.log(JSON.stringify({ success: true, operationId, name: operation.operationName }));
|
|
99
|
+
} else {
|
|
100
|
+
console.log(chalk.green(`\n✓ Operation "${operation.operationName}" (ID: ${operationId}) deleted\n`));
|
|
101
|
+
}
|
|
102
|
+
} else {
|
|
103
|
+
const errorMsg = response.error?.message || 'Unknown error';
|
|
104
|
+
const errorCode = response.error?.code || 'DELETE_ERROR';
|
|
105
|
+
if (jsonOutput) {
|
|
106
|
+
console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
|
|
107
|
+
} else {
|
|
108
|
+
console.error(chalk.red(`\n✗ Failed to delete operation: ${errorMsg}`));
|
|
109
|
+
if (response.error?.code) {
|
|
110
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
111
|
+
}
|
|
112
|
+
console.error();
|
|
113
|
+
}
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
116
|
+
} catch (error) {
|
|
117
|
+
const errMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
118
|
+
if (jsonOutput) {
|
|
119
|
+
console.log(JSON.stringify({ success: false, error: { code: 'ERROR', message: errMsg } }));
|
|
120
|
+
} else {
|
|
121
|
+
console.error(chalk.red(`\n✗ Error: ${errMsg}\n`));
|
|
122
|
+
}
|
|
123
|
+
process.exit(1);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
return deleteCommand;
|
|
128
|
+
}
|
|
@@ -0,0 +1,587 @@
|
|
|
1
|
+
# Liberica Operations Command Design Specification
|
|
2
|
+
|
|
3
|
+
## 1. Overview
|
|
4
|
+
|
|
5
|
+
This document specifies the command-line interface design for managing **Operations** (工序/工艺) in the Liberica production management system.
|
|
6
|
+
|
|
7
|
+
### 1.1 Resource Description
|
|
8
|
+
|
|
9
|
+
- **Resource**: Operation (工序)
|
|
10
|
+
- **Chinese Name**: 工序
|
|
11
|
+
- **API Path Prefix**: `/api/enterprise/manufacture/operation/*`
|
|
12
|
+
- **Purpose**: Manage manufacturing operations/work steps in production processes
|
|
13
|
+
|
|
14
|
+
### 1.2 Entity Fields
|
|
15
|
+
|
|
16
|
+
| Field | Type | Required | Description |
|
|
17
|
+
|-------|------|----------|-------------|
|
|
18
|
+
| operationId | string | Auto | Unique identifier (BigInteger) |
|
|
19
|
+
| operationCode | string | Auto | Auto-generated code |
|
|
20
|
+
| operationName | string | Yes | Operation name |
|
|
21
|
+
| operationType | string | Yes | Operation type (EQUIPMENT/HUMAN/PACKAGE/QUALITY_TESTING/OTHER) |
|
|
22
|
+
| workCenterCode | string | No | Work center code |
|
|
23
|
+
| mouldCode | string | No | Mould code (if applicable) |
|
|
24
|
+
| mouldType | string | No | Mould type |
|
|
25
|
+
| equipmentType | string | No | Equipment type |
|
|
26
|
+
| leadTime | number | No | Lead time (hours) |
|
|
27
|
+
| remark | string | No | Remarks |
|
|
28
|
+
| statusFlag | number | Auto | Status (1=enable, 2=disable) |
|
|
29
|
+
| createTime | string | Auto | Creation timestamp |
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 2. Subcommand Structure
|
|
34
|
+
|
|
35
|
+
### 2.1 Command Tree
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
barista liberica operations <subcommand> [options]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2.2 Available Subcommands
|
|
42
|
+
|
|
43
|
+
| # | Subcommand | Description | CRUD Type |
|
|
44
|
+
|---|------------|-------------|-----------|
|
|
45
|
+
| 1 | `list` | List operations with pagination | Read |
|
|
46
|
+
| 2 | `get` | Get operation details by ID | Read |
|
|
47
|
+
| 3 | `create` | Create a new operation | Create |
|
|
48
|
+
| 4 | `update` | Update an existing operation | Update |
|
|
49
|
+
| 5 | `delete` | Delete an operation | Delete |
|
|
50
|
+
| 6 | `copy` | Copy an operation (duplicate with new code) | Create |
|
|
51
|
+
| 7 | `batch-delete` | Delete multiple operations at once | Delete |
|
|
52
|
+
| 8 | `active` | Enable an operation (set statusFlag=1) | Update |
|
|
53
|
+
| 9 | `deactive` | Disable an operation (set statusFlag=2) | Update |
|
|
54
|
+
| 10 | `enable` | Alias for `active` | Update |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 3. Subcommand Specifications
|
|
59
|
+
|
|
60
|
+
### 3.1 list - List Operations
|
|
61
|
+
|
|
62
|
+
**Command**:
|
|
63
|
+
```bash
|
|
64
|
+
barista liberica operations list [options]
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Options**:
|
|
68
|
+
| Option | Alias | Description | Default |
|
|
69
|
+
|--------|-------|-------------|---------|
|
|
70
|
+
| `--page` | `-p` | Page number | 1 |
|
|
71
|
+
| `--size` | `-s` | Page size | 20 |
|
|
72
|
+
| `--status` | - | Status filter (1=enable, 2=disable) | - |
|
|
73
|
+
| `--name` | - | Filter by operation name (partial match) | - |
|
|
74
|
+
| `--code` | - | Filter by operation code (exact match) | - |
|
|
75
|
+
| `--type` | - | Filter by operation type (EQUIPMENT/HUMAN/PACKAGE/QUALITY_TESTING/OTHER) | - |
|
|
76
|
+
| `--json` | - | Output as JSON | false |
|
|
77
|
+
|
|
78
|
+
**API Endpoint**: `GET /api/enterprise/manufacture/operation/page`
|
|
79
|
+
|
|
80
|
+
**Parameters**:
|
|
81
|
+
```typescript
|
|
82
|
+
{
|
|
83
|
+
pageNo: number; // 0-based (CLI page - 1)
|
|
84
|
+
pageSize: number;
|
|
85
|
+
status?: 1 | 2;
|
|
86
|
+
operationName?: string;
|
|
87
|
+
operationCode?: string;
|
|
88
|
+
operationType?: string;
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Output Format**:
|
|
93
|
+
- Table: ID | Code | Name | Type | Work Center | Status
|
|
94
|
+
- JSON: `{ success: true, data: { items: Operation[], pagination: { pageNo, pageSize, totalRows } } }`
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### 3.2 get - Get Operation Details
|
|
99
|
+
|
|
100
|
+
**Command**:
|
|
101
|
+
```bash
|
|
102
|
+
barista liberica operations get <operation-id> [options]
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Arguments**:
|
|
106
|
+
| Argument | Description |
|
|
107
|
+
|----------|-------------|
|
|
108
|
+
| `operation-id` | Operation ID (required) |
|
|
109
|
+
|
|
110
|
+
**Options**:
|
|
111
|
+
| Option | Description |
|
|
112
|
+
|--------|-------------|
|
|
113
|
+
| `--json` | Output as JSON |
|
|
114
|
+
|
|
115
|
+
**API Endpoint**: `GET /api/enterprise/manufacture/operation/detail`
|
|
116
|
+
|
|
117
|
+
**Parameters**:
|
|
118
|
+
```typescript
|
|
119
|
+
{
|
|
120
|
+
operationId: string;
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Output Format**:
|
|
125
|
+
- Table: All fields displayed in key-value format
|
|
126
|
+
- JSON: Full operation object
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
### 3.3 create - Create Operation
|
|
131
|
+
|
|
132
|
+
**Command**:
|
|
133
|
+
```bash
|
|
134
|
+
barista liberica operations create [options]
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Options**:
|
|
138
|
+
| Option | Alias | Required | Description |
|
|
139
|
+
|--------|-------|----------|-------------|
|
|
140
|
+
| `--name` | `-n` | Yes | Operation name |
|
|
141
|
+
| `--type` | `-t` | Yes | Operation type (supports bilingual: 机器/EQUIPMENT, 手工/HUMAN, 包装/PACKAGE, 质检/QUALITY_TESTING, 其它/OTHER) |
|
|
142
|
+
| `--work-center` | `-w` | No | Work center code |
|
|
143
|
+
| `--mould-code` | - | No | Mould code |
|
|
144
|
+
| `--mould-type` | - | No | Mould type |
|
|
145
|
+
| `--equipment-type` | - | No | Equipment type |
|
|
146
|
+
| `--lead-time` | - | No | Lead time (hours) |
|
|
147
|
+
| `--remark` | - | No | Remarks |
|
|
148
|
+
| `--dry-run` | - | No | Preview without API call |
|
|
149
|
+
| `--json` | - | No | Output as JSON |
|
|
150
|
+
|
|
151
|
+
**API Endpoint**: `POST /api/enterprise/manufacture/operation/add`
|
|
152
|
+
|
|
153
|
+
**Request Body**:
|
|
154
|
+
```typescript
|
|
155
|
+
{
|
|
156
|
+
operationName: string;
|
|
157
|
+
operationType: string; // Converted to API enum
|
|
158
|
+
workCenterCode?: string;
|
|
159
|
+
mouldCode?: string;
|
|
160
|
+
mouldType?: string;
|
|
161
|
+
equipmentType?: string;
|
|
162
|
+
leadTime?: number;
|
|
163
|
+
remark?: string;
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**Notes**:
|
|
168
|
+
- `operationCode` is auto-generated by the backend
|
|
169
|
+
- `statusFlag` defaults to 1 (enabled)
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
### 3.4 update - Update Operation
|
|
174
|
+
|
|
175
|
+
**Command**:
|
|
176
|
+
```bash
|
|
177
|
+
barista liberica operations update <operation-id> [options]
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Arguments**:
|
|
181
|
+
| Argument | Description |
|
|
182
|
+
|----------|-------------|
|
|
183
|
+
| `operation-id` | Operation ID (required) |
|
|
184
|
+
|
|
185
|
+
**Options**:
|
|
186
|
+
| Option | Alias | Description |
|
|
187
|
+
|--------|-------|-------------|
|
|
188
|
+
| `--name` | `-n` | Operation name |
|
|
189
|
+
| `--type` | `-t` | Operation type (supports bilingual) |
|
|
190
|
+
| `--work-center` | `-w` | Work center code |
|
|
191
|
+
| `--mould-code` | - | Mould code |
|
|
192
|
+
| `--mould-type` | - | Mould type |
|
|
193
|
+
| `--equipment-type` | - | Equipment type |
|
|
194
|
+
| `--lead-time` | - | Lead time (hours) |
|
|
195
|
+
| `--remark` | - | Remarks |
|
|
196
|
+
| `--dry-run` | - | Preview without API call |
|
|
197
|
+
| `--json` | - | Output as JSON |
|
|
198
|
+
|
|
199
|
+
**API Endpoint**: `POST /api/enterprise/manufacture/operation/edit`
|
|
200
|
+
|
|
201
|
+
**Parameters**:
|
|
202
|
+
```typescript
|
|
203
|
+
{
|
|
204
|
+
operationId: string;
|
|
205
|
+
operationName?: string;
|
|
206
|
+
operationType?: string;
|
|
207
|
+
workCenterCode?: string;
|
|
208
|
+
mouldCode?: string;
|
|
209
|
+
mouldType?: string;
|
|
210
|
+
equipmentType?: string;
|
|
211
|
+
leadTime?: number;
|
|
212
|
+
remark?: string;
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
### 3.5 delete - Delete Operation
|
|
219
|
+
|
|
220
|
+
**Command**:
|
|
221
|
+
```bash
|
|
222
|
+
barista liberica operations delete <operation-id> [options]
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Arguments**:
|
|
226
|
+
| Argument | Description |
|
|
227
|
+
|----------|-------------|
|
|
228
|
+
| `operation-id` | Operation ID (required) |
|
|
229
|
+
|
|
230
|
+
**Options**:
|
|
231
|
+
| Option | Description |
|
|
232
|
+
|--------|-------------|
|
|
233
|
+
| `--force` | Skip confirmation, delete directly |
|
|
234
|
+
| `--dry-run` | Preview without API call (default) |
|
|
235
|
+
| `--json` | Output as JSON |
|
|
236
|
+
|
|
237
|
+
**API Endpoint**: `POST /api/enterprise/manufacture/operation/delete`
|
|
238
|
+
|
|
239
|
+
**Parameters**:
|
|
240
|
+
```typescript
|
|
241
|
+
{
|
|
242
|
+
operationId: string;
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**Behavior**:
|
|
247
|
+
- Default: Dry-run mode (shows operation details, no actual deletion)
|
|
248
|
+
- With `--force`: Execute deletion
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
### 3.6 copy - Copy Operation
|
|
253
|
+
|
|
254
|
+
**Command**:
|
|
255
|
+
```bash
|
|
256
|
+
barista liberica operations copy <operation-id> [options]
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
**Arguments**:
|
|
260
|
+
| Argument | Description |
|
|
261
|
+
|----------|-------------|
|
|
262
|
+
| `operation-id` | Source operation ID (required) |
|
|
263
|
+
|
|
264
|
+
**Options**:
|
|
265
|
+
| Option | Alias | Description |
|
|
266
|
+
|--------|-------|-------------|
|
|
267
|
+
| `--name` | `-n` | New operation name (optional, defaults to "Copy of {originalName}") |
|
|
268
|
+
| `--dry-run` | - | Preview without API call |
|
|
269
|
+
| `--json` | - | Output as JSON |
|
|
270
|
+
|
|
271
|
+
**API Endpoint**: `POST /api/enterprise/manufacture/operation/copy`
|
|
272
|
+
|
|
273
|
+
**Parameters**:
|
|
274
|
+
```typescript
|
|
275
|
+
{
|
|
276
|
+
operationId: string; // Source operation ID
|
|
277
|
+
operationName?: string; // New name (optional)
|
|
278
|
+
}
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**Notes**:
|
|
282
|
+
- Creates a new operation with auto-generated code
|
|
283
|
+
- Copies all fields from source except operationCode
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
### 3.7 batch-delete - Batch Delete Operations
|
|
288
|
+
|
|
289
|
+
**Command**:
|
|
290
|
+
```bash
|
|
291
|
+
barista liberica operations batch-delete [options]
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
**Options**:
|
|
295
|
+
| Option | Alias | Required | Description |
|
|
296
|
+
|--------|-------|----------|-------------|
|
|
297
|
+
| `--ids` | - | Yes | Comma-separated operation IDs |
|
|
298
|
+
| `--force` | - | No | Skip confirmation |
|
|
299
|
+
| `--dry-run` | - | No | Preview without API call (default) |
|
|
300
|
+
| `--json` | - | No | Output as JSON |
|
|
301
|
+
|
|
302
|
+
**API Endpoint**: `POST /api/enterprise/manufacture/operation/batchDelete`
|
|
303
|
+
|
|
304
|
+
**Parameters**:
|
|
305
|
+
```typescript
|
|
306
|
+
{
|
|
307
|
+
operationIdList: string[];
|
|
308
|
+
}
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
**Notes**:
|
|
312
|
+
- Requires at least 1 ID
|
|
313
|
+
- Default: Dry-run mode
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
### 3.8 active - Enable Operation
|
|
318
|
+
|
|
319
|
+
**Command**:
|
|
320
|
+
```bash
|
|
321
|
+
barista liberica operations active <operation-id> [options]
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
**Arguments**:
|
|
325
|
+
| Argument | Description |
|
|
326
|
+
|----------|-------------|
|
|
327
|
+
| `operation-id` | Operation ID (required) |
|
|
328
|
+
|
|
329
|
+
**Options**:
|
|
330
|
+
| Option | Description |
|
|
331
|
+
|--------|-------------|
|
|
332
|
+
| `--force` | Skip confirmation |
|
|
333
|
+
| `--json` | Output as JSON |
|
|
334
|
+
|
|
335
|
+
**API Endpoint**: `POST /api/enterprise/manufacture/operation/active`
|
|
336
|
+
|
|
337
|
+
**Parameters**:
|
|
338
|
+
```typescript
|
|
339
|
+
{
|
|
340
|
+
operationId: string;
|
|
341
|
+
}
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
**Status Change**: Sets `statusFlag` to `1`
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
### 3.9 deactive - Disable Operation
|
|
349
|
+
|
|
350
|
+
**Command**:
|
|
351
|
+
```bash
|
|
352
|
+
barista liberica operations deactive <operation-id> [options]
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
**Arguments**:
|
|
356
|
+
| Argument | Description |
|
|
357
|
+
|----------|-------------|
|
|
358
|
+
| `operation-id` | Operation ID (required) |
|
|
359
|
+
|
|
360
|
+
**Options**:
|
|
361
|
+
| Option | Description |
|
|
362
|
+
|--------|-------------|
|
|
363
|
+
| `--force` | Skip confirmation |
|
|
364
|
+
| `--json` | Output as JSON |
|
|
365
|
+
|
|
366
|
+
**API Endpoint**: `POST /api/enterprise/manufacture/operation/deActive`
|
|
367
|
+
|
|
368
|
+
**Parameters**:
|
|
369
|
+
```typescript
|
|
370
|
+
{
|
|
371
|
+
operationId: string;
|
|
372
|
+
}
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
**Status Change**: Sets `statusFlag` to `2`
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
### 3.10 enable - Enable Operation (Alias)
|
|
380
|
+
|
|
381
|
+
**Command**:
|
|
382
|
+
```bash
|
|
383
|
+
barista liberica operations enable <operation-id> [options]
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
**Notes**: Alias for `active` command. See section 3.8.
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
## 4. Dictionary Mappings
|
|
391
|
+
|
|
392
|
+
### 4.1 OPERATION_TYPE (工序类型)
|
|
393
|
+
|
|
394
|
+
| English | Chinese | API Value | CLI Input Values |
|
|
395
|
+
|---------|---------|-----------|------------------|
|
|
396
|
+
| EQUIPMENT | 机器 | EQUIPMENT | `EQUIPMENT`, `equipment`, `机器` |
|
|
397
|
+
| HUMAN | 手工 | HUMAN | `HUMAN`, `human`, `手工` |
|
|
398
|
+
| PACKAGE | 包装 | PACKAGE | `PACKAGE`, `package`, `包装` |
|
|
399
|
+
| QUALITY_TESTING | 质检 | QUALITY_TESTING | `QUALITY_TESTING`, `quality_testing`, `qualitytesting`, `质检` |
|
|
400
|
+
| OTHER | 其它 | OTHER | `OTHER`, `other`, `其它` |
|
|
401
|
+
|
|
402
|
+
**Type Conversion Logic**:
|
|
403
|
+
```typescript
|
|
404
|
+
function normalizeOperationType(input: string): string {
|
|
405
|
+
const mapping: Record<string, string> = {
|
|
406
|
+
// English variants
|
|
407
|
+
'EQUIPMENT': 'EQUIPMENT',
|
|
408
|
+
'equipment': 'EQUIPMENT',
|
|
409
|
+
'HUMAN': 'HUMAN',
|
|
410
|
+
'human': 'HUMAN',
|
|
411
|
+
'PACKAGE': 'PACKAGE',
|
|
412
|
+
'package': 'PACKAGE',
|
|
413
|
+
'QUALITY_TESTING': 'QUALITY_TESTING',
|
|
414
|
+
'quality_testing': 'QUALITY_TESTING',
|
|
415
|
+
'qualitytesting': 'QUALITY_TESTING',
|
|
416
|
+
'OTHER': 'OTHER',
|
|
417
|
+
'other': 'OTHER',
|
|
418
|
+
// Chinese variants
|
|
419
|
+
'机器': 'EQUIPMENT',
|
|
420
|
+
'手工': 'HUMAN',
|
|
421
|
+
'包装': 'PACKAGE',
|
|
422
|
+
'质检': 'QUALITY_TESTING',
|
|
423
|
+
'其它': 'OTHER',
|
|
424
|
+
'其他': 'OTHER',
|
|
425
|
+
};
|
|
426
|
+
|
|
427
|
+
const normalized = input.trim().toUpperCase();
|
|
428
|
+
return mapping[normalized] || mapping[input] || input;
|
|
429
|
+
}
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
---
|
|
433
|
+
|
|
434
|
+
### 4.2 MOULD_TYPE (模具类型)
|
|
435
|
+
|
|
436
|
+
| Code | Description |
|
|
437
|
+
|------|-------------|
|
|
438
|
+
| INTERNAL | 内部模具 |
|
|
439
|
+
| EXTERNAL | 外部模具 |
|
|
440
|
+
| STANDARD | 标准模具 |
|
|
441
|
+
| CUSTOM | 定制模具 |
|
|
442
|
+
|
|
443
|
+
**CLI Input**: Supports both code and Chinese description.
|
|
444
|
+
|
|
445
|
+
---
|
|
446
|
+
|
|
447
|
+
### 4.3 EQUIPMENT_TYPE (设备类型)
|
|
448
|
+
|
|
449
|
+
| Code | Description |
|
|
450
|
+
|------|-------------|
|
|
451
|
+
| CNC | CNC数控机床 |
|
|
452
|
+
| DRILLING | 钻孔机 |
|
|
453
|
+
| MILLING | 铣床 |
|
|
454
|
+
| LATHE | 车床 |
|
|
455
|
+
| PRESS | 冲压机 |
|
|
456
|
+
| INJECTION | 注塑机 |
|
|
457
|
+
| WELDING | 焊接设备 |
|
|
458
|
+
| ASSEMBLY | 装配线 |
|
|
459
|
+
| TESTING | 测试设备 |
|
|
460
|
+
| OTHER | 其他设备 |
|
|
461
|
+
|
|
462
|
+
**CLI Input**: Supports both code and Chinese description.
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
|
|
466
|
+
## 5. Bilingual Support Design
|
|
467
|
+
|
|
468
|
+
### 5.1 --type Parameter
|
|
469
|
+
|
|
470
|
+
The `--type` option accepts both English and Chinese inputs:
|
|
471
|
+
|
|
472
|
+
```bash
|
|
473
|
+
# All valid
|
|
474
|
+
barista liberica operations create -n "冲压" -t EQUIPMENT
|
|
475
|
+
barista liberica operations create -n "冲压" -t 机器
|
|
476
|
+
barista liberica operations create -n "包装" -t PACKAGE
|
|
477
|
+
barista liberica operations create -n "包装" -t 包装
|
|
478
|
+
barista liberica operations create -n "质检" -t QUALITY_TESTING
|
|
479
|
+
barista liberica operations create -n "质检" -t 质检
|
|
480
|
+
|
|
481
|
+
# List filter
|
|
482
|
+
barista liberica operations list --type HUMAN
|
|
483
|
+
barista liberica operations list --type 手工
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
### 5.2 Output Display
|
|
487
|
+
|
|
488
|
+
In table output, operation types are displayed in Chinese by default:
|
|
489
|
+
|
|
490
|
+
| API Value | Display |
|
|
491
|
+
|-----------|---------|
|
|
492
|
+
| EQUIPMENT | 机器 |
|
|
493
|
+
| HUMAN | 手工 |
|
|
494
|
+
| PACKAGE | 包装 |
|
|
495
|
+
| QUALITY_TESTING | 质检 |
|
|
496
|
+
| OTHER | 其它 |
|
|
497
|
+
|
|
498
|
+
---
|
|
499
|
+
|
|
500
|
+
## 6. API Mapping Summary
|
|
501
|
+
|
|
502
|
+
| CLI Subcommand | HTTP Method | API Path | Notes |
|
|
503
|
+
|----------------|-------------|----------|-------|
|
|
504
|
+
| `list` | GET | `/operation/page` | Pagination parameters |
|
|
505
|
+
| `get` | GET | `/operation/detail` | Query param: operationId |
|
|
506
|
+
| `create` | POST | `/operation/add` | Request body |
|
|
507
|
+
| `update` | POST | `/operation/edit` | Request body with operationId |
|
|
508
|
+
| `delete` | POST | `/operation/delete` | Request body with operationId |
|
|
509
|
+
| `copy` | POST | `/operation/copy` | Request body with operationId |
|
|
510
|
+
| `batch-delete` | POST | `/operation/batchDelete` | Request body: { operationIdList: [] } |
|
|
511
|
+
| `active` | POST | `/operation/active` | Request body with operationId |
|
|
512
|
+
| `deactive` | POST | `/operation/deActive` | Request body with operationId |
|
|
513
|
+
|
|
514
|
+
---
|
|
515
|
+
|
|
516
|
+
## 7. Common Options
|
|
517
|
+
|
|
518
|
+
All subcommands support these global options:
|
|
519
|
+
|
|
520
|
+
| Option | Description |
|
|
521
|
+
|--------|-------------|
|
|
522
|
+
| `--env <env>` | Environment (dev/test/prod-cn/prod-jp) |
|
|
523
|
+
| `--tenant <tenant>` | Tenant ID |
|
|
524
|
+
| `--json` | Output as JSON |
|
|
525
|
+
|
|
526
|
+
---
|
|
527
|
+
|
|
528
|
+
## 8. Error Handling
|
|
529
|
+
|
|
530
|
+
### 8.1 Common Error Codes
|
|
531
|
+
|
|
532
|
+
| Code | Description | Handling |
|
|
533
|
+
|------|-------------|----------|
|
|
534
|
+
| A150001 | Operation not found | Show "Operation not found: {id}" |
|
|
535
|
+
| A150002 | Duplicate operation code | Show "Operation code already exists" |
|
|
536
|
+
| A150003 | Invalid operation type | Show "Invalid operation type: {type}" |
|
|
537
|
+
| A150004 | Operation in use | Show "Cannot delete: operation is referenced by work orders" |
|
|
538
|
+
|
|
539
|
+
### 8.2 Error Response Formats
|
|
540
|
+
|
|
541
|
+
```typescript
|
|
542
|
+
// Format 1: Top-level error
|
|
543
|
+
{ success: false, code: "A150001", message: "查询结果不存在" }
|
|
544
|
+
|
|
545
|
+
// Format 2: Nested error
|
|
546
|
+
{ success: false, error: { code: "01001150001", message: "工序不存在" } }
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
---
|
|
550
|
+
|
|
551
|
+
## 9. Implementation Notes
|
|
552
|
+
|
|
553
|
+
1. **ID Type**: All operation IDs must be `string` type (BigInteger)
|
|
554
|
+
2. **Pagination**: CLI uses 1-based page numbers, API uses 0-based
|
|
555
|
+
3. **Auto-generated Code**: operationCode is auto-generated by backend
|
|
556
|
+
4. **No Inquirer**: Pure CLI argument mode, no interactive prompts
|
|
557
|
+
5. **Default Dry-Run**: Delete and batch-delete default to dry-run mode
|
|
558
|
+
6. **Bilingual I/O**: Accept bilingual input, display Chinese in table output
|
|
559
|
+
|
|
560
|
+
---
|
|
561
|
+
|
|
562
|
+
## 10. File Structure
|
|
563
|
+
|
|
564
|
+
```
|
|
565
|
+
src/
|
|
566
|
+
├── commands/liberica/
|
|
567
|
+
│ ├── operations/
|
|
568
|
+
│ │ ├── index.ts # Main command aggregator
|
|
569
|
+
│ │ ├── list.ts # List command
|
|
570
|
+
│ │ ├── get.ts # Get command
|
|
571
|
+
│ │ ├── create.ts # Create command
|
|
572
|
+
│ │ ├── update.ts # Update command
|
|
573
|
+
│ │ ├── delete.ts # Delete command
|
|
574
|
+
│ │ ├── copy.ts # Copy command
|
|
575
|
+
│ │ ├── batch-delete.ts # Batch delete command
|
|
576
|
+
│ │ ├── active.ts # Enable command
|
|
577
|
+
│ │ ├── deactive.ts # Disable command
|
|
578
|
+
│ │ └── types.ts # TypeScript interfaces
|
|
579
|
+
│ └── ...
|
|
580
|
+
└── types/
|
|
581
|
+
└── operation.ts # Operation type definitions
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
---
|
|
585
|
+
|
|
586
|
+
*Document Version: 1.0*
|
|
587
|
+
*Last Updated: 2026-04-15*
|