weaver-e10-builder 1.0.12-beta → 1.1.1
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/actionflow.d.ts.map +1 -1
- package/dist/commands/actionflow.js +17 -3
- package/dist/commands/actionflow.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +3 -0
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/form-association-manage.d.ts +3 -0
- package/dist/commands/form-association-manage.d.ts.map +1 -0
- package/dist/commands/form-association-manage.js +76 -0
- package/dist/commands/form-association-manage.js.map +1 -0
- package/dist/commands/form-association.d.ts.map +1 -1
- package/dist/commands/form-association.js +29 -25
- package/dist/commands/form-association.js.map +1 -1
- package/dist/commands/form-button.d.ts.map +1 -1
- package/dist/commands/form-button.js +71 -159
- package/dist/commands/form-button.js.map +1 -1
- package/dist/commands/form-field-linkage.d.ts +3 -0
- package/dist/commands/form-field-linkage.d.ts.map +1 -0
- package/dist/commands/form-field-linkage.js +300 -0
- package/dist/commands/form-field-linkage.js.map +1 -0
- package/dist/commands/form-list-columns.d.ts +3 -0
- package/dist/commands/form-list-columns.d.ts.map +1 -0
- package/dist/commands/form-list-columns.js +50 -0
- package/dist/commands/form-list-columns.js.map +1 -0
- package/dist/commands/form-list-stats.d.ts +0 -8
- package/dist/commands/form-list-stats.d.ts.map +1 -1
- package/dist/commands/form-list-stats.js +41 -133
- package/dist/commands/form-list-stats.js.map +1 -1
- package/dist/commands/form-list.d.ts.map +1 -1
- package/dist/commands/form-list.js +2 -126
- package/dist/commands/form-list.js.map +1 -1
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +116 -2
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/interface.d.ts +3 -0
- package/dist/commands/interface.d.ts.map +1 -0
- package/dist/commands/interface.js +51 -0
- package/dist/commands/interface.js.map +1 -0
- package/dist/commands/menu-permission.d.ts.map +1 -1
- package/dist/commands/menu-permission.js +133 -82
- package/dist/commands/menu-permission.js.map +1 -1
- package/dist/commands/skill.js +2 -2
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/update.d.ts +13 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +101 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/workflow-node-empty-handle.d.ts +13 -0
- package/dist/commands/workflow-node-empty-handle.d.ts.map +1 -0
- package/dist/commands/workflow-node-empty-handle.js +137 -0
- package/dist/commands/workflow-node-empty-handle.js.map +1 -0
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +90 -18
- package/dist/commands/workflow.js.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/postinstall.d.ts +2 -0
- package/dist/postinstall.d.ts.map +1 -0
- package/dist/postinstall.js +17 -0
- package/dist/postinstall.js.map +1 -0
- package/dist/services/actionflow/command_output.d.ts +4 -0
- package/dist/services/actionflow/command_output.d.ts.map +1 -1
- package/dist/services/actionflow/command_output.js +44 -0
- package/dist/services/actionflow/command_output.js.map +1 -1
- package/dist/services/actionflow/component_registry.d.ts.map +1 -1
- package/dist/services/actionflow/component_registry.js +5 -1
- package/dist/services/actionflow/component_registry.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.js +1 -1
- package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
- package/dist/services/actionflow/components/approve_trigger.d.ts +5 -0
- package/dist/services/actionflow/components/approve_trigger.d.ts.map +1 -1
- package/dist/services/actionflow/components/approve_trigger.js +22 -1
- package/dist/services/actionflow/components/approve_trigger.js.map +1 -1
- package/dist/services/actionflow/components/approve_trigger_compiler.js +2 -2
- package/dist/services/actionflow/components/approve_trigger_compiler.js.map +1 -1
- package/dist/services/actionflow/components/custom_trigger.d.ts +9 -0
- package/dist/services/actionflow/components/custom_trigger.d.ts.map +1 -0
- package/dist/services/actionflow/components/custom_trigger.js +47 -0
- package/dist/services/actionflow/components/custom_trigger.js.map +1 -0
- package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -1
- package/dist/services/actionflow/components/enquiry_form.js +29 -3
- package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
- package/dist/services/actionflow/components/event_button.d.ts +3 -0
- package/dist/services/actionflow/components/event_button.d.ts.map +1 -0
- package/dist/services/actionflow/components/event_button.js +32 -0
- package/dist/services/actionflow/components/event_button.js.map +1 -0
- package/dist/services/actionflow/components/index.d.ts.map +1 -1
- package/dist/services/actionflow/components/index.js +10 -0
- package/dist/services/actionflow/components/index.js.map +1 -1
- package/dist/services/actionflow/components/inner_mq_listener.d.ts +3 -0
- package/dist/services/actionflow/components/inner_mq_listener.d.ts.map +1 -0
- package/dist/services/actionflow/components/inner_mq_listener.js +40 -0
- package/dist/services/actionflow/components/inner_mq_listener.js.map +1 -0
- package/dist/services/actionflow/components/inner_mq_send.d.ts +5 -0
- package/dist/services/actionflow/components/inner_mq_send.d.ts.map +1 -0
- package/dist/services/actionflow/components/inner_mq_send.js +72 -0
- package/dist/services/actionflow/components/inner_mq_send.js.map +1 -0
- package/dist/services/actionflow/components/send_message.d.ts.map +1 -1
- package/dist/services/actionflow/components/send_message.js +7 -4
- package/dist/services/actionflow/components/send_message.js.map +1 -1
- package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
- package/dist/services/actionflow/context_preflight.js +7 -1
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/design_client.d.ts +13 -2
- package/dist/services/actionflow/design_client.d.ts.map +1 -1
- package/dist/services/actionflow/design_client.js +56 -8
- package/dist/services/actionflow/design_client.js.map +1 -1
- package/dist/services/actionflow/enrich_approve_trigger.d.ts.map +1 -1
- package/dist/services/actionflow/enrich_approve_trigger.js +31 -0
- package/dist/services/actionflow/enrich_approve_trigger.js.map +1 -1
- package/dist/services/actionflow/form_source.d.ts +2 -0
- package/dist/services/actionflow/form_source.d.ts.map +1 -1
- package/dist/services/actionflow/form_source.js +5 -0
- package/dist/services/actionflow/form_source.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts +1 -1
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +118 -12
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/functions_catalog.d.ts +2 -1
- package/dist/services/actionflow/functions_catalog.d.ts.map +1 -1
- package/dist/services/actionflow/functions_catalog.js +2392 -180
- package/dist/services/actionflow/functions_catalog.js.map +1 -1
- package/dist/services/actionflow/functions_source.d.ts.map +1 -1
- package/dist/services/actionflow/functions_source.js +3 -0
- package/dist/services/actionflow/functions_source.js.map +1 -1
- package/dist/services/actionflow/generation_service.d.ts +11 -0
- package/dist/services/actionflow/generation_service.d.ts.map +1 -1
- package/dist/services/actionflow/generation_service.js +66 -23
- package/dist/services/actionflow/generation_service.js.map +1 -1
- package/dist/services/actionflow/plan_constraints.d.ts +5 -0
- package/dist/services/actionflow/plan_constraints.d.ts.map +1 -0
- package/dist/services/actionflow/plan_constraints.js +54 -0
- package/dist/services/actionflow/plan_constraints.js.map +1 -0
- package/dist/services/actionflow/preflight_service.d.ts +3 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +152 -8
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/readback_verifier.d.ts.map +1 -1
- package/dist/services/actionflow/readback_verifier.js +63 -2
- package/dist/services/actionflow/readback_verifier.js.map +1 -1
- package/dist/services/actionflow/save_workflow_draft.d.ts.map +1 -1
- package/dist/services/actionflow/save_workflow_draft.js +43 -2
- package/dist/services/actionflow/save_workflow_draft.js.map +1 -1
- package/dist/services/actionflow/update_service.d.ts +41 -0
- package/dist/services/actionflow/update_service.d.ts.map +1 -0
- package/dist/services/actionflow/update_service.js +767 -0
- package/dist/services/actionflow/update_service.js.map +1 -0
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +120 -12
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/esb-interface/document-parser.d.ts +6 -0
- package/dist/services/esb-interface/document-parser.d.ts.map +1 -0
- package/dist/services/esb-interface/document-parser.js +247 -0
- package/dist/services/esb-interface/document-parser.js.map +1 -0
- package/dist/services/esb-interface/importer.d.ts +9 -0
- package/dist/services/esb-interface/importer.d.ts.map +1 -0
- package/dist/services/esb-interface/importer.js +44 -0
- package/dist/services/esb-interface/importer.js.map +1 -0
- package/dist/services/esb-interface/postman-collection.d.ts +9 -0
- package/dist/services/esb-interface/postman-collection.d.ts.map +1 -0
- package/dist/services/esb-interface/postman-collection.js +125 -0
- package/dist/services/esb-interface/postman-collection.js.map +1 -0
- package/dist/services/esb-interface/types.d.ts +91 -0
- package/dist/services/esb-interface/types.d.ts.map +1 -0
- package/dist/services/esb-interface/types.js +2 -0
- package/dist/services/esb-interface/types.js.map +1 -0
- package/dist/services/form-association.d.ts +49 -0
- package/dist/services/form-association.d.ts.map +1 -0
- package/dist/services/form-association.js +279 -0
- package/dist/services/form-association.js.map +1 -0
- package/dist/services/form-button-position.d.ts +35 -0
- package/dist/services/form-button-position.d.ts.map +1 -0
- package/dist/services/form-button-position.js +109 -0
- package/dist/services/form-button-position.js.map +1 -0
- package/dist/services/form-list-columns.d.ts +54 -0
- package/dist/services/form-list-columns.d.ts.map +1 -0
- package/dist/services/form-list-columns.js +236 -0
- package/dist/services/form-list-columns.js.map +1 -0
- package/dist/services/form-list-stats.d.ts +44 -0
- package/dist/services/form-list-stats.d.ts.map +1 -0
- package/dist/services/form-list-stats.js +302 -0
- package/dist/services/form-list-stats.js.map +1 -0
- package/dist/services/skill-provision.d.ts +6 -1
- package/dist/services/skill-provision.d.ts.map +1 -1
- package/dist/services/skill-provision.js +12 -2
- package/dist/services/skill-provision.js.map +1 -1
- package/dist/services/update-check.d.ts +24 -0
- package/dist/services/update-check.d.ts.map +1 -0
- package/dist/services/update-check.js +108 -0
- package/dist/services/update-check.js.map +1 -0
- package/package.json +2 -1
- package/skill-docs/SKILL.md +29 -107
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +61 -39
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbDelete.md +23 -21
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +23 -21
- package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +101 -75
- package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +33 -0
- package/skill-docs/actionflows/references/components/logic/Condition.md +23 -23
- package/skill-docs/actionflows/references/components/message/InnerMQSend.md +40 -0
- package/skill-docs/actionflows/references/components/message/SendMessage.md +2 -2
- package/skill-docs/actionflows/references/components/trigger/CustomTrigger.md +45 -0
- package/skill-docs/actionflows/references/components/trigger/InnerMQListener.md +40 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveTrigger.md +35 -0
- package/skill-docs/actionflows/references/condition_rules.md +4 -2
- package/skill-docs/actionflows/references/examples/enquiry-form-batch-insert-scene2.json +1043 -1046
- package/skill-docs/actionflows/references/trigger_runtime_notes.md +53 -51
- package/skill-docs/references/common/guide-plan-template.md +201 -0
- package/skill-docs/references/common/ref-cli-commands.md +45 -11
- package/skill-docs/references/form/guide-create-form.md +4 -2
- package/skill-docs/references/form/guide-field-linkage.md +121 -0
- package/skill-docs/references/form/guide-form-association.md +108 -0
- package/skill-docs/references/form/guide-form-button.md +54 -0
- package/skill-docs/references/form/guide-form-view.md +26 -9
- package/skill-docs/references/form/guide-list-columns.md +52 -0
- package/skill-docs/references/form/guide-list-stats.md +83 -0
- package/skill-docs/references/workflow/guide-workflow-action.md +172 -168
- package/skill-docs/references/workflow/guide-workflow.md +16 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-node-empty-handle.d.ts","sourceRoot":"","sources":["../../src/commands/workflow-node-empty-handle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,wBAAgB,uCAAuC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA0G9F"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { AuthSession } from '../core/auth.js';
|
|
2
|
+
import { ApiClient } from '../core/client.js';
|
|
3
|
+
const HANDLE_WAY_OPTIONS = [
|
|
4
|
+
{ id: '1', content: '由指定人员处理', disabled: false, separator: false },
|
|
5
|
+
{ id: '3', content: '由流程发起人处理', disabled: false, separator: false },
|
|
6
|
+
{ id: '4', content: '自动流转至下一节点', disabled: false, separator: false },
|
|
7
|
+
{ id: '5', content: '提交至指定节点', disabled: false, separator: false },
|
|
8
|
+
{ id: '2', content: '由用户指定操作者', disabled: false, separator: false },
|
|
9
|
+
];
|
|
10
|
+
const WAY_LABEL = { '1': '由指定人员处理', '2': '由用户指定操作者', '3': '由流程发起人处理', '4': '自动流转至下一节点', '5': '提交至指定节点' };
|
|
11
|
+
async function readForm(client, baseUrl, wf, node) {
|
|
12
|
+
const r = await client.get(`${baseUrl}/api/bs/workflow/pathdef/emptyhandleset/getEmptyHandleForm?workflowId=${wf}&nodeId=${node}&isMobile=0`);
|
|
13
|
+
return r?.data?.data || {};
|
|
14
|
+
}
|
|
15
|
+
export function registerWorkflowNodeEmptyHandleCommands(wfCmd, program) {
|
|
16
|
+
const nodeCmd = wfCmd.commands.find((c) => c.name() === 'node')
|
|
17
|
+
|| wfCmd.command('node').description('节点维度设置');
|
|
18
|
+
const eh = nodeCmd.command('empty-handle')
|
|
19
|
+
.description('节点流程异常处理(空处理:无可处理人时怎么办)');
|
|
20
|
+
eh.command('get')
|
|
21
|
+
.description('查看节点流程异常处理配置')
|
|
22
|
+
.argument('<workflowId>', '流程 ID')
|
|
23
|
+
.argument('<nodeId>', '节点 ID')
|
|
24
|
+
.action(async (workflowId, nodeId) => {
|
|
25
|
+
const opts = program.opts();
|
|
26
|
+
const auth = await AuthSession.fromOptions(opts);
|
|
27
|
+
if (!auth)
|
|
28
|
+
process.exit(1);
|
|
29
|
+
const client = new ApiClient(auth);
|
|
30
|
+
const d = await readForm(client, auth.getBaseUrl(), workflowId, nodeId);
|
|
31
|
+
const ho = d.handleWayObj || {};
|
|
32
|
+
console.log(`节点 ${d.nodeName || nodeId} 流程异常处理: ${d.isOpen ? '✅ 启用' : '未启用'}`);
|
|
33
|
+
console.log(` 处理方式: ${WAY_LABEL[ho.handleWay] || ho.handleWay || '-'} (id=${d.id || 0}) ccType=${d.ccType} sync=${d.sync}`);
|
|
34
|
+
if (ho.handleWay === '5' && (ho.assignNode || []).length)
|
|
35
|
+
console.log(` 提交至节点: ${ho.assignNode.map((n) => n.content || n.name || n.id).join(', ')}`);
|
|
36
|
+
if (ho.handleWay === '1' && (ho.assignPerson || []).length)
|
|
37
|
+
console.log(` 指定人员: ${ho.assignPerson.map((p) => p.content || p.name || p.id).join(', ')}`);
|
|
38
|
+
});
|
|
39
|
+
eh.command('set')
|
|
40
|
+
.description('设置节点流程异常处理(handle-way 1指定人员/2用户指定/3发起人/4自动流转下一节点/5提交指定节点)')
|
|
41
|
+
.argument('<workflowId>', '流程 ID')
|
|
42
|
+
.argument('<nodeId>', '节点 ID')
|
|
43
|
+
.option('--handle-way <n>', '处理方式: 1/2/3/4/5(默认读原值或 1)')
|
|
44
|
+
.option('--person <name|id>', '指定人员(--handle-way 1 用;名称或 ID)')
|
|
45
|
+
.option('--assign-node <id|name>', '指定节点(--handle-way 5 用;节点 ID)')
|
|
46
|
+
.option('--cc-type <0|1>', '节点抄送人:0 不启用(默认) / 1 节点操作者设置', '0')
|
|
47
|
+
.option('--sync', '同步到所有节点')
|
|
48
|
+
.option('--off', '关闭流程异常处理(isOpen=false)')
|
|
49
|
+
.action(async (workflowId, nodeId, o) => {
|
|
50
|
+
const opts = program.opts();
|
|
51
|
+
const auth = await AuthSession.fromOptions(opts);
|
|
52
|
+
if (!auth)
|
|
53
|
+
process.exit(1);
|
|
54
|
+
const client = new ApiClient(auth);
|
|
55
|
+
const baseUrl = auth.getBaseUrl();
|
|
56
|
+
const cur = await readForm(client, baseUrl, workflowId, nodeId);
|
|
57
|
+
const curHo = cur.handleWayObj || {};
|
|
58
|
+
const handleWay = o.handleWay || curHo.handleWay || '1';
|
|
59
|
+
if (!HANDLE_WAY_OPTIONS.find((h) => h.id === handleWay)) {
|
|
60
|
+
console.error(`不支持的处理方式: ${handleWay}(1/2/3/4/5)`);
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
const assignNode = [];
|
|
64
|
+
const assignPerson = [];
|
|
65
|
+
let assignNodeId = '';
|
|
66
|
+
let assignPersonId = '';
|
|
67
|
+
if (!o.off) {
|
|
68
|
+
if (handleWay === '5') {
|
|
69
|
+
let nid = o.assignNode || '';
|
|
70
|
+
let nname = o.assignNode || '';
|
|
71
|
+
if (!/^\d+$/.test(nid) && nid) {
|
|
72
|
+
// 按名称找节点:遍历该流程节点
|
|
73
|
+
const meta = await client.get(`${baseUrl}/api/bs/workflow/pathdef/nodeBase/getWorkflowNodesByWorkflowId?workflowId=${workflowId}`).catch(() => null);
|
|
74
|
+
const list = meta?.data?.nodes || meta?.data || [];
|
|
75
|
+
const hit = (Array.isArray(list) ? list : []).find((n) => n.nodeName === nid || String(n.id) === nid);
|
|
76
|
+
if (!hit) {
|
|
77
|
+
console.error(`未找到节点: ${o.assignNode}`);
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
nid = hit.id;
|
|
81
|
+
nname = hit.nodeName;
|
|
82
|
+
}
|
|
83
|
+
if (!nid) {
|
|
84
|
+
console.error('--handle-way 5 需要 --assign-node <节点ID/名称>');
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
assignNodeId = nid;
|
|
88
|
+
assignNode.push({ content: nname, isDelete: false, isComplete: false, _entityImId: 0, _secretLevel: 0, _secretLevelEnd: 0, id: nid, dataId: nid });
|
|
89
|
+
}
|
|
90
|
+
else if (handleWay === '1') {
|
|
91
|
+
if (!o.person) {
|
|
92
|
+
console.error('--handle-way 1 需要 --person <名称/ID>');
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
const uid = /^\d+$/.test(o.person) ? o.person : '';
|
|
96
|
+
let userObj = null;
|
|
97
|
+
if (uid) {
|
|
98
|
+
userObj = { id: uid, name: o.person, content: o.person, title: o.person };
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
const r = await client.post(`${baseUrl}/api/hrm/common/getEmployeeByKeyWords`, { keyword: o.person, searchType: 1, searchCount: 1, appDetachModule: 'EM', disableAppDetach: 0, pageNo: 1, pageSize: 1 });
|
|
102
|
+
const u = (r?.data?.userList || []).find((x) => x.name === o.person || x.content === o.person) || r?.data?.userList?.[0];
|
|
103
|
+
if (!u?.id) {
|
|
104
|
+
console.error(`未找到人员: ${o.person}`);
|
|
105
|
+
process.exit(1);
|
|
106
|
+
}
|
|
107
|
+
userObj = u;
|
|
108
|
+
}
|
|
109
|
+
assignPersonId = userObj.id;
|
|
110
|
+
assignPerson.push(userObj);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const payload = {
|
|
114
|
+
workflowId, nodeId,
|
|
115
|
+
nodeName: cur.nodeName || nodeId,
|
|
116
|
+
ccType: o.ccType ?? (cur.ccType ?? '0'),
|
|
117
|
+
isOpen: !o.off,
|
|
118
|
+
handleWayOption: HANDLE_WAY_OPTIONS,
|
|
119
|
+
handleWayObj: { handleWay, assignNode, assignPerson },
|
|
120
|
+
id: cur.id || 0,
|
|
121
|
+
sync: o.sync || false,
|
|
122
|
+
assignNode: assignNodeId,
|
|
123
|
+
assignPerson: assignPersonId,
|
|
124
|
+
handleWay,
|
|
125
|
+
};
|
|
126
|
+
const r = await client.post(`${baseUrl}/api/bs/workflow/pathdef/emptyhandleset/saveEmptyHandleSet`, payload);
|
|
127
|
+
if (r?.code !== 200 || !r?.status) {
|
|
128
|
+
console.error(`保存失败: ${r?.msg || '未知错误'}`);
|
|
129
|
+
process.exit(1);
|
|
130
|
+
}
|
|
131
|
+
const on = o.off ? '已关闭' : `已启用(${WAY_LABEL[handleWay]}${assignPersonId ? `:${o.person}` : ''}${assignNodeId ? `:${o.assignNode}` : ''})`;
|
|
132
|
+
console.log(`节点 ${nodeId} 流程异常处理 ${on}`);
|
|
133
|
+
if (o.sync)
|
|
134
|
+
console.log(' 已同步到所有节点');
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=workflow-node-empty-handle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-node-empty-handle.js","sourceRoot":"","sources":["../../src/commands/workflow-node-empty-handle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/commands/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAyDhD;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/commands/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAyDhD;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAgkFlE"}
|
|
@@ -91,7 +91,7 @@ export function registerWorkflowCommands(program) {
|
|
|
91
91
|
.argument('<name>', '流程名称')
|
|
92
92
|
.argument('[desc]', '流程描述', '')
|
|
93
93
|
.option('--workflow-type <type>', '工作流类型:名称(如"公文审批")或 ID(默认 -1=其它)', '-1')
|
|
94
|
-
.option('--
|
|
94
|
+
.option('--menu', '建流程后添加发起菜单(默认不加;漏加可用 `e10-cli menu add-start` 补)')
|
|
95
95
|
.option('--no-auto-layout', '跳过建后自动排版节点(默认建完跑 auto-layout)')
|
|
96
96
|
.action(async (appId, formObjId, name, desc, cmdOpts) => {
|
|
97
97
|
const opts = program.opts();
|
|
@@ -207,7 +207,7 @@ export function registerWorkflowCommands(program) {
|
|
|
207
207
|
const workflowUrl = `${baseUrl}/sp/workflow/flowpage/create/${workflowId}`;
|
|
208
208
|
// Auto-add 发起 menu (LAYOUT → form create page, triggers bound workflow)
|
|
209
209
|
let menuId = null;
|
|
210
|
-
if (cmdOpts.menu
|
|
210
|
+
if (cmdOpts.menu) {
|
|
211
211
|
try {
|
|
212
212
|
const { addFormStartMenu } = await import('./menu.js');
|
|
213
213
|
menuId = await addFormStartMenu(client, baseUrl, appId, formObjId, name);
|
|
@@ -475,6 +475,9 @@ export function registerWorkflowCommands(program) {
|
|
|
475
475
|
.option('--sign-order <order>', '签署顺序: 会签(默认) / 非会签 / 竞签 / 依次处理(默认倒序) / 抄送 / 抄送需批注', '会签')
|
|
476
476
|
.option('--execute-order <spec>', '依次处理的执行顺序码: 2-2 人员显示顺序-倒序(默认) / 2-1 正序 / 1-1,2-2 安全级别正序+人员显示倒序', '')
|
|
477
477
|
.option('--dept-scope <scope>', '指定部门的范围: 本部门 / 本及下级(默认)', '本及下级')
|
|
478
|
+
.option('--org-non-sign', '指定部门时:单个部门内非会签(跨部门仍按 --sign-order;对齐设计器"单个部门内非会签")')
|
|
479
|
+
.option('--pos-scope <scope>', '指定岗位的范围: 全部机构(默认) / 发起人同部门(岗位限定发起人所在部门,如"部门主管/财务经理(本部门)")', '全部机构')
|
|
480
|
+
.option('--superior-scope <scope>', '上级/本人的范围(仅 --type superior): 直接上级(默认) / 所有上级(整条上级链,如抄送所有上级)', '直接上级')
|
|
478
481
|
.option('--orders <orders>', '批次号(两位小数,如 0.00 / 1.00)', '0.00')
|
|
479
482
|
.option('--workflow-form <objId>', '流程绑定的表单 objId(valueFieldId 引用字段时在此表单查找)')
|
|
480
483
|
.option('--matrix-id <id>', '矩阵 ID(--type matrix 必填)')
|
|
@@ -495,6 +498,47 @@ export function registerWorkflowCommands(program) {
|
|
|
495
498
|
const baseUrl = auth.getBaseUrl();
|
|
496
499
|
// 追加模式(--append)下提示语用「追加」,否则「设置」
|
|
497
500
|
const verb = cmdOpts.append ? '已追加操作者组' : '已设置操作者';
|
|
501
|
+
// 0b. 先解析目标关键词(dept/position/role/user 需按名解析)——解析失败直接退出,**不先清空旧组**
|
|
502
|
+
// (否则节点操作者会被清成"无",footgun:找不到部门名时节点无人可处理)。
|
|
503
|
+
if (!cmdOpts.append && ['dept', 'position', 'role', 'user'].includes(cmdOpts.type)) {
|
|
504
|
+
if (!keyword) {
|
|
505
|
+
console.error(`--type ${cmdOpts.type} 需要关键词`);
|
|
506
|
+
process.exit(1);
|
|
507
|
+
}
|
|
508
|
+
if (cmdOpts.type === 'dept') {
|
|
509
|
+
for (const dn of keyword.split(',').map((s) => s.trim()).filter(Boolean)) {
|
|
510
|
+
const r = await client.post(`${baseUrl}/api/workflow/pathdef/common/browser/complete/department`, { browserMultiple: true, virtualType: 'All', showSanYuan: true, newly: 0, searchValue: dn });
|
|
511
|
+
if (!r?.data?.data?.[0]) {
|
|
512
|
+
console.error(`未找到部门: ${dn}(未改动节点操作者)`);
|
|
513
|
+
process.exit(1);
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
else if (cmdOpts.type === 'position') {
|
|
518
|
+
const r = await client.post(`${baseUrl}/api/workflow/pathdef/common/browser/complete/position`, { browserMultiple: true, newly: 0, searchValue: keyword });
|
|
519
|
+
if (!r?.data?.data?.[0]) {
|
|
520
|
+
console.error(`未找到岗位: ${keyword}(未改动节点操作者)`);
|
|
521
|
+
process.exit(1);
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
else if (cmdOpts.type === 'role') {
|
|
525
|
+
const { findRolesByKeywords } = await import('../services/workflow-operator.js');
|
|
526
|
+
const treeData = await client.get(`${baseUrl}/api/bs/auth/role/tree?menuCode=roleSettings`);
|
|
527
|
+
const roles = treeData?.data?.data || [];
|
|
528
|
+
const { missing } = findRolesByKeywords(roles, keyword);
|
|
529
|
+
if (missing) {
|
|
530
|
+
console.error(`未找到角色: ${missing}(未改动节点操作者)`);
|
|
531
|
+
process.exit(1);
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
else if (cmdOpts.type === 'user') {
|
|
535
|
+
const r = await client.post(`${baseUrl}/api/hrm/common/getEmployeeByKeyWords`, { keyword, searchType: 1, searchCount: 5, appDetachModule: 'EM', disableAppDetach: 0, pageNo: 1, pageSize: 5 });
|
|
536
|
+
if (!(r?.data?.userList || []).length) {
|
|
537
|
+
console.error(`未找到人员: ${keyword}(未改动节点操作者)`);
|
|
538
|
+
process.exit(1);
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
}
|
|
498
542
|
// 0. 清理节点已有的操作者组(防止重复设置堆积多组,全量重建)。
|
|
499
543
|
// --append 时跳过清理:新组追加到已有组之后(如 部门领导矩阵 + 门店经理矩阵 双组会签)。
|
|
500
544
|
if (!cmdOpts.append) {
|
|
@@ -524,13 +568,25 @@ export function registerWorkflowCommands(program) {
|
|
|
524
568
|
// 区别(抓包 2026-08-24):本人 includeType=12+itemName=本人+isSuportVirtualId/openProjectOrganization=true;
|
|
525
569
|
// 上级 includeType=13+itemName=直接上级+这两个 false。
|
|
526
570
|
const isInitiator = cmdOpts.type === 'initiator';
|
|
571
|
+
// 上级/本人组也跟随 --sign-order(对齐设计器:可直接上级会签,或依次逐个处理=逐级审批,或抄送)——不再写死会签
|
|
572
|
+
const SUPERIOR_SIGN = {
|
|
573
|
+
'会签': { code: '1', cn: '会签' }, '非会签': { code: '0', cn: '非会签' },
|
|
574
|
+
'竞签': { code: '0', cn: '非会签' }, '依次处理': { code: '2', cn: '依次逐个处理' },
|
|
575
|
+
'抄送': { code: '3', cn: '抄送' }, '抄送需批注': { code: '4', cn: '抄送' },
|
|
576
|
+
};
|
|
577
|
+
const sOpt = SUPERIOR_SIGN[cmdOpts.signOrder || '会签'] || SUPERIOR_SIGN['会签'];
|
|
578
|
+
// 上级范围:直接上级(includeType 13) / 所有上级(includeType 14,整条上级链,常用于抄送)
|
|
579
|
+
const supAll = !isInitiator && cmdOpts.superiorScope === '所有上级';
|
|
580
|
+
const supInclude = isInitiator ? '12' : (supAll ? '14' : '13');
|
|
581
|
+
const supIncludeCN = isInitiator ? '本人' : (supAll ? '所有上级' : '上级');
|
|
582
|
+
const supName = isInitiator ? '本人' : (supAll ? '所有上级' : '直接上级');
|
|
527
583
|
targetId = '';
|
|
528
|
-
targetName =
|
|
584
|
+
targetName = supName;
|
|
529
585
|
groupType = '流程发起人';
|
|
530
586
|
groupTypeId = '114';
|
|
531
|
-
itemName =
|
|
587
|
+
itemName = supName;
|
|
532
588
|
// Build payload directly — superior/initiator has no browserData
|
|
533
|
-
console.error(` 操作者: ${isInitiator ? '流程发起人(本人)' : '发起人上级(直接上级)'} 类型: ${groupType}`);
|
|
589
|
+
console.error(` 操作者: ${isInitiator ? '流程发起人(本人)' : (supAll ? '发起人上级(所有上级)' : '发起人上级(直接上级)')} 类型: ${groupType}${cmdOpts.signOrder !== '会签' ? `,${sOpt.cn}` : ''}`);
|
|
534
590
|
const rg = await client.post(`${baseUrl}/api/bs/workflow/pathdef/nodeOperator/getLayoutConfigInfo`, {
|
|
535
591
|
groupId: '', workflowId, nodeId, sourceType: '1', isOperatorRuleAuth: true,
|
|
536
592
|
});
|
|
@@ -538,16 +594,18 @@ export function registerWorkflowCommands(program) {
|
|
|
538
594
|
const payload = {
|
|
539
595
|
workflowId, nodeId, groupId: '', isCreate: '', reserveGroupId,
|
|
540
596
|
itemDatas: [{
|
|
541
|
-
includeType:
|
|
542
|
-
includeTypeCN:
|
|
543
|
-
virtualId: '',
|
|
544
|
-
virtualIdCN: '',
|
|
597
|
+
includeType: supInclude,
|
|
598
|
+
includeTypeCN: supIncludeCN,
|
|
599
|
+
virtualId: '1',
|
|
600
|
+
virtualIdCN: '行政组织',
|
|
545
601
|
objLevelType: '1',
|
|
546
602
|
objLevelTypeCN: '全部机构',
|
|
547
603
|
objectId: '1',
|
|
548
604
|
objectIdCN: '直接上级',
|
|
549
|
-
signOrder:
|
|
550
|
-
signOrderCN:
|
|
605
|
+
signOrder: sOpt.code,
|
|
606
|
+
signOrderCN: sOpt.cn,
|
|
607
|
+
...(cmdOpts.signOrder === '竞签' ? { competeSignOrder: '1', competeSignOrderCN: '竞签' } : {}),
|
|
608
|
+
...(cmdOpts.signOrder === '依次处理' && cmdOpts.executeOrder ? { executeOrders: cmdOpts.executeOrder } : {}),
|
|
551
609
|
isOut: false,
|
|
552
610
|
isSaveHrmOperator: false,
|
|
553
611
|
id: '1',
|
|
@@ -566,8 +624,8 @@ export function registerWorkflowCommands(program) {
|
|
|
566
624
|
condition: '',
|
|
567
625
|
groupCondition: '',
|
|
568
626
|
level: '',
|
|
569
|
-
isSuportVirtualId:
|
|
570
|
-
openProjectOrganization:
|
|
627
|
+
isSuportVirtualId: true,
|
|
628
|
+
openProjectOrganization: true,
|
|
571
629
|
isExtendType: 0,
|
|
572
630
|
}],
|
|
573
631
|
oldGroupName: '',
|
|
@@ -579,7 +637,7 @@ export function registerWorkflowCommands(program) {
|
|
|
579
637
|
};
|
|
580
638
|
const data = await client.post(`${baseUrl}/api/bs/workflow/pathdef/nodeOperator/saveOperatorGroup`, payload);
|
|
581
639
|
if (data?.code === 200 && data?.status) {
|
|
582
|
-
const label = isInitiator ? '流程发起人(本人)' : '发起人上级(直接上级)';
|
|
640
|
+
const label = isInitiator ? '流程发起人(本人)' : (supAll ? '发起人上级(所有上级)' : '发起人上级(直接上级)');
|
|
583
641
|
const msg = opts.json
|
|
584
642
|
? JSON.stringify({ success: true, workflowId, nodeId, operator: label, type: groupType, append: !!cmdOpts.append })
|
|
585
643
|
: `${verb}: ${label} → 节点 ${nodeId}`;
|
|
@@ -890,10 +948,15 @@ export function registerWorkflowCommands(program) {
|
|
|
890
948
|
itemData.hrmOperatorsCN = depts.map((d) => d.name).join(',');
|
|
891
949
|
itemData.includeType = includeType;
|
|
892
950
|
itemData.includeTypeCN = includeTypeCN;
|
|
951
|
+
// 对齐设计器「单个部门内非会签」:organizeSignOrder=1(跨部门仍按 signOrder,外层会签则=跨部门会签)
|
|
952
|
+
if (cmdOpts.orgNonSign) {
|
|
953
|
+
itemData.organizeSignOrder = '1';
|
|
954
|
+
itemData.organizeSignOrderCN = '单个部门内非会签';
|
|
955
|
+
}
|
|
893
956
|
itemData.level = '10~90';
|
|
894
957
|
itemData.itemLevel = '10~90';
|
|
895
958
|
itemData.hrmBrowserDataDtos = depts.map((d) => ({ id: d.id, name: d.name, _entityType: 'department' }));
|
|
896
|
-
console.error(` 操作者: ${depts.map((d) => d.name).join(',')} 类型: 指定部门(${includeTypeCN})`);
|
|
959
|
+
console.error(` 操作者: ${depts.map((d) => d.name).join(',')} 类型: 指定部门(${includeTypeCN})${cmdOpts.orgNonSign ? ',单个部门内非会签' : ''}`);
|
|
897
960
|
}
|
|
898
961
|
else if (cmdOpts.type === 'position') {
|
|
899
962
|
if (!keyword) {
|
|
@@ -913,10 +976,19 @@ export function registerWorkflowCommands(program) {
|
|
|
913
976
|
itemName = pos.name || keyword;
|
|
914
977
|
itemData.hrmOperators = pos.id || '';
|
|
915
978
|
itemData.hrmOperatorsCN = pos.name || '';
|
|
916
|
-
|
|
917
|
-
|
|
979
|
+
// 岗位范围:全部机构(1) / 发起人同部门(4, objLevelType=4 + virtualId=1行政组织 + includeType本部门)
|
|
980
|
+
const posDept = cmdOpts.posScope === '发起人同部门';
|
|
981
|
+
itemData.objLevelType = posDept ? '4' : '1';
|
|
982
|
+
itemData.objLevelTypeCN = posDept ? '发起人同部门' : '全部机构';
|
|
983
|
+
if (posDept) {
|
|
984
|
+
itemData.virtualId = '1';
|
|
985
|
+
itemData.virtualIdCN = '行政组织';
|
|
986
|
+
itemData.includeType = '1';
|
|
987
|
+
itemData.includeTypeCN = '本部门';
|
|
988
|
+
itemData.itemLevel = '发起人同部门(行政组织)';
|
|
989
|
+
}
|
|
918
990
|
itemData.hrmBrowserDataDtos = [{ id: pos.id, name: pos.name, _entityType: 'position' }];
|
|
919
|
-
console.error(` 操作者: ${pos.name} (${pos.id}) 类型: 指定岗位(全部机构)`);
|
|
991
|
+
console.error(` 操作者: ${pos.name} (${pos.id}) 类型: 指定岗位(${posDept ? '发起人同部门' : '全部机构'})`);
|
|
920
992
|
}
|
|
921
993
|
else if (cmdOpts.type === 'all') {
|
|
922
994
|
// 对齐浏览器:level/itemLevel 用全量 -999~999(eteams 浏览器实发、sjrdemo 也接受),
|