weaver-e10-builder 1.0.7-beta → 1.0.9-beta
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 +7 -0
- package/dist/commands/actionflow.d.ts.map +1 -0
- package/dist/commands/actionflow.js +105 -0
- package/dist/commands/actionflow.js.map +1 -0
- package/dist/commands/auth.js +1 -1
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/form-list.d.ts.map +1 -1
- package/dist/commands/form-list.js +18 -9
- package/dist/commands/form-list.js.map +1 -1
- package/dist/commands/form-native.d.ts +0 -14
- package/dist/commands/form-native.d.ts.map +1 -1
- package/dist/commands/form-native.js +398 -72
- package/dist/commands/form-native.js.map +1 -1
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +5 -2
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/wf-form.d.ts.map +1 -1
- package/dist/commands/wf-form.js +872 -42
- package/dist/commands/wf-form.js.map +1 -1
- package/dist/commands/workflow-action.d.ts +11 -0
- package/dist/commands/workflow-action.d.ts.map +1 -1
- package/dist/commands/workflow-action.js +13 -1586
- package/dist/commands/workflow-action.js.map +1 -1
- package/dist/commands/workflow-create-workflow.d.ts.map +1 -1
- package/dist/commands/workflow-create-workflow.js +111 -30
- package/dist/commands/workflow-create-workflow.js.map +1 -1
- package/dist/commands/workflow-node-robot.js +1 -1
- package/dist/commands/workflow-node-robot.js.map +1 -1
- package/dist/commands/workflow-node-validate.d.ts.map +1 -1
- package/dist/commands/workflow-node-validate.js +56 -45
- package/dist/commands/workflow-node-validate.js.map +1 -1
- package/dist/commands/workflow-numbering.d.ts.map +1 -1
- package/dist/commands/workflow-numbering.js +98 -2
- package/dist/commands/workflow-numbering.js.map +1 -1
- package/dist/commands/workflow-operator-sign.d.ts +3 -0
- package/dist/commands/workflow-operator-sign.d.ts.map +1 -0
- package/dist/commands/workflow-operator-sign.js +118 -0
- package/dist/commands/workflow-operator-sign.js.map +1 -0
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +83 -6
- package/dist/commands/workflow.js.map +1 -1
- package/dist/core/client.d.ts +2 -0
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +2 -0
- package/dist/core/client.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/build_workflow_draft.d.ts +20 -0
- package/dist/services/actionflow/build_workflow_draft.d.ts.map +1 -0
- package/dist/services/actionflow/build_workflow_draft.js +222 -0
- package/dist/services/actionflow/build_workflow_draft.js.map +1 -0
- package/dist/services/actionflow/calendar_mapper.d.ts +3 -0
- package/dist/services/actionflow/calendar_mapper.d.ts.map +1 -0
- package/dist/services/actionflow/calendar_mapper.js +152 -0
- package/dist/services/actionflow/calendar_mapper.js.map +1 -0
- package/dist/services/actionflow/component_registry.d.ts +13 -0
- package/dist/services/actionflow/component_registry.d.ts.map +1 -0
- package/dist/services/actionflow/component_registry.js +213 -0
- package/dist/services/actionflow/component_registry.js.map +1 -0
- package/dist/services/actionflow/components/action_eb_add.d.ts +3 -0
- package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -0
- package/dist/services/actionflow/components/action_eb_add.js +127 -0
- package/dist/services/actionflow/components/action_eb_add.js.map +1 -0
- package/dist/services/actionflow/components/action_eb_add_compiler.d.ts +4 -0
- package/dist/services/actionflow/components/action_eb_add_compiler.d.ts.map +1 -0
- package/dist/services/actionflow/components/action_eb_add_compiler.js +13 -0
- package/dist/services/actionflow/components/action_eb_add_compiler.js.map +1 -0
- package/dist/services/actionflow/components/action_eb_delete.d.ts +3 -0
- package/dist/services/actionflow/components/action_eb_delete.d.ts.map +1 -0
- package/dist/services/actionflow/components/action_eb_delete.js +69 -0
- package/dist/services/actionflow/components/action_eb_delete.js.map +1 -0
- package/dist/services/actionflow/components/action_eb_delete_compiler.d.ts +4 -0
- package/dist/services/actionflow/components/action_eb_delete_compiler.d.ts.map +1 -0
- package/dist/services/actionflow/components/action_eb_delete_compiler.js +7 -0
- package/dist/services/actionflow/components/action_eb_delete_compiler.js.map +1 -0
- package/dist/services/actionflow/components/action_eb_recover.d.ts +3 -0
- package/dist/services/actionflow/components/action_eb_recover.d.ts.map +1 -0
- package/dist/services/actionflow/components/action_eb_recover.js +28 -0
- package/dist/services/actionflow/components/action_eb_recover.js.map +1 -0
- package/dist/services/actionflow/components/action_eb_recover_compiler.d.ts +3 -0
- package/dist/services/actionflow/components/action_eb_recover_compiler.d.ts.map +1 -0
- package/dist/services/actionflow/components/action_eb_recover_compiler.js +16 -0
- package/dist/services/actionflow/components/action_eb_recover_compiler.js.map +1 -0
- package/dist/services/actionflow/components/action_eb_save_version.d.ts +3 -0
- package/dist/services/actionflow/components/action_eb_save_version.d.ts.map +1 -0
- package/dist/services/actionflow/components/action_eb_save_version.js +30 -0
- package/dist/services/actionflow/components/action_eb_save_version.js.map +1 -0
- package/dist/services/actionflow/components/action_eb_save_version_compiler.d.ts +3 -0
- package/dist/services/actionflow/components/action_eb_save_version_compiler.d.ts.map +1 -0
- package/dist/services/actionflow/components/action_eb_save_version_compiler.js +15 -0
- package/dist/services/actionflow/components/action_eb_save_version_compiler.js.map +1 -0
- package/dist/services/actionflow/components/action_eb_update.d.ts +3 -0
- package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -0
- package/dist/services/actionflow/components/action_eb_update.js +154 -0
- package/dist/services/actionflow/components/action_eb_update.js.map +1 -0
- package/dist/services/actionflow/components/action_eb_update_compiler.d.ts +16 -0
- package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -0
- package/dist/services/actionflow/components/action_eb_update_compiler.js +94 -0
- package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -0
- package/dist/services/actionflow/components/approve_create.d.ts +3 -0
- package/dist/services/actionflow/components/approve_create.d.ts.map +1 -0
- package/dist/services/actionflow/components/approve_create.js +44 -0
- package/dist/services/actionflow/components/approve_create.js.map +1 -0
- package/dist/services/actionflow/components/approve_trigger.d.ts +5 -0
- package/dist/services/actionflow/components/approve_trigger.d.ts.map +1 -0
- package/dist/services/actionflow/components/approve_trigger.js +184 -0
- package/dist/services/actionflow/components/approve_trigger.js.map +1 -0
- package/dist/services/actionflow/components/approve_trigger_compiler.d.ts +4 -0
- package/dist/services/actionflow/components/approve_trigger_compiler.d.ts.map +1 -0
- package/dist/services/actionflow/components/approve_trigger_compiler.js +20 -0
- package/dist/services/actionflow/components/approve_trigger_compiler.js.map +1 -0
- package/dist/services/actionflow/components/condition.d.ts +3 -0
- package/dist/services/actionflow/components/condition.d.ts.map +1 -0
- package/dist/services/actionflow/components/condition.js +23 -0
- package/dist/services/actionflow/components/condition.js.map +1 -0
- package/dist/services/actionflow/components/date_trigger.d.ts +5 -0
- package/dist/services/actionflow/components/date_trigger.d.ts.map +1 -0
- package/dist/services/actionflow/components/date_trigger.js +129 -0
- package/dist/services/actionflow/components/date_trigger.js.map +1 -0
- package/dist/services/actionflow/components/document_actions.d.ts +28 -0
- package/dist/services/actionflow/components/document_actions.d.ts.map +1 -0
- package/dist/services/actionflow/components/document_actions.js +266 -0
- package/dist/services/actionflow/components/document_actions.js.map +1 -0
- package/dist/services/actionflow/components/eb_get_data_by_id.d.ts +5 -0
- package/dist/services/actionflow/components/eb_get_data_by_id.d.ts.map +1 -0
- package/dist/services/actionflow/components/eb_get_data_by_id.js +44 -0
- package/dist/services/actionflow/components/eb_get_data_by_id.js.map +1 -0
- package/dist/services/actionflow/components/enquiry_form.d.ts +5 -0
- package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -0
- package/dist/services/actionflow/components/enquiry_form.js +100 -0
- package/dist/services/actionflow/components/enquiry_form.js.map +1 -0
- package/dist/services/actionflow/components/event_form_data.d.ts +3 -0
- package/dist/services/actionflow/components/event_form_data.d.ts.map +1 -0
- package/dist/services/actionflow/components/event_form_data.js +29 -0
- package/dist/services/actionflow/components/event_form_data.js.map +1 -0
- package/dist/services/actionflow/components/hrm_actions.d.ts +7 -0
- package/dist/services/actionflow/components/hrm_actions.d.ts.map +1 -0
- package/dist/services/actionflow/components/hrm_actions.js +138 -0
- package/dist/services/actionflow/components/hrm_actions.js.map +1 -0
- package/dist/services/actionflow/components/index.d.ts +32 -0
- package/dist/services/actionflow/components/index.d.ts.map +1 -0
- package/dist/services/actionflow/components/index.js +132 -0
- package/dist/services/actionflow/components/index.js.map +1 -0
- package/dist/services/actionflow/components/logic_flow_set.d.ts +10 -0
- package/dist/services/actionflow/components/logic_flow_set.d.ts.map +1 -0
- package/dist/services/actionflow/components/logic_flow_set.js +79 -0
- package/dist/services/actionflow/components/logic_flow_set.js.map +1 -0
- package/dist/services/actionflow/components/meeting_create.d.ts +5 -0
- package/dist/services/actionflow/components/meeting_create.d.ts.map +1 -0
- package/dist/services/actionflow/components/meeting_create.js +37 -0
- package/dist/services/actionflow/components/meeting_create.js.map +1 -0
- package/dist/services/actionflow/components/multiple_execution.d.ts +5 -0
- package/dist/services/actionflow/components/multiple_execution.d.ts.map +1 -0
- package/dist/services/actionflow/components/multiple_execution.js +136 -0
- package/dist/services/actionflow/components/multiple_execution.js.map +1 -0
- package/dist/services/actionflow/components/output.d.ts +9 -0
- package/dist/services/actionflow/components/output.d.ts.map +1 -0
- package/dist/services/actionflow/components/output.js +81 -0
- package/dist/services/actionflow/components/output.js.map +1 -0
- package/dist/services/actionflow/components/schedule_create.d.ts +5 -0
- package/dist/services/actionflow/components/schedule_create.d.ts.map +1 -0
- package/dist/services/actionflow/components/schedule_create.js +42 -0
- package/dist/services/actionflow/components/schedule_create.js.map +1 -0
- package/dist/services/actionflow/components/send_message.d.ts +7 -0
- package/dist/services/actionflow/components/send_message.d.ts.map +1 -0
- package/dist/services/actionflow/components/send_message.js +200 -0
- package/dist/services/actionflow/components/send_message.js.map +1 -0
- package/dist/services/actionflow/components/simple_scheduler.d.ts +5 -0
- package/dist/services/actionflow/components/simple_scheduler.d.ts.map +1 -0
- package/dist/services/actionflow/components/simple_scheduler.js +22 -0
- package/dist/services/actionflow/components/simple_scheduler.js.map +1 -0
- package/dist/services/actionflow/components/time_batch_trigger.d.ts +5 -0
- package/dist/services/actionflow/components/time_batch_trigger.d.ts.map +1 -0
- package/dist/services/actionflow/components/time_batch_trigger.js +92 -0
- package/dist/services/actionflow/components/time_batch_trigger.js.map +1 -0
- package/dist/services/actionflow/components/workflow_actions.d.ts +26 -0
- package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -0
- package/dist/services/actionflow/components/workflow_actions.js +403 -0
- package/dist/services/actionflow/components/workflow_actions.js.map +1 -0
- package/dist/services/actionflow/context_data_builder.d.ts +9 -0
- package/dist/services/actionflow/context_data_builder.d.ts.map +1 -0
- package/dist/services/actionflow/context_data_builder.js +31 -0
- package/dist/services/actionflow/context_data_builder.js.map +1 -0
- package/dist/services/actionflow/context_preflight.d.ts +6 -0
- package/dist/services/actionflow/context_preflight.d.ts.map +1 -0
- package/dist/services/actionflow/context_preflight.js +122 -0
- package/dist/services/actionflow/context_preflight.js.map +1 -0
- package/dist/services/actionflow/context_provider.d.ts +18 -0
- package/dist/services/actionflow/context_provider.d.ts.map +1 -0
- package/dist/services/actionflow/context_provider.js +102 -0
- package/dist/services/actionflow/context_provider.js.map +1 -0
- package/dist/services/actionflow/context_source.d.ts +7 -0
- package/dist/services/actionflow/context_source.d.ts.map +1 -0
- package/dist/services/actionflow/context_source.js +10 -0
- package/dist/services/actionflow/context_source.js.map +1 -0
- package/dist/services/actionflow/design_client.d.ts +48 -0
- package/dist/services/actionflow/design_client.d.ts.map +1 -0
- package/dist/services/actionflow/design_client.js +170 -0
- package/dist/services/actionflow/design_client.js.map +1 -0
- package/dist/services/actionflow/document_source.d.ts +5 -0
- package/dist/services/actionflow/document_source.d.ts.map +1 -0
- package/dist/services/actionflow/document_source.js +5 -0
- package/dist/services/actionflow/document_source.js.map +1 -0
- package/dist/services/actionflow/enrich_approve_trigger.d.ts +12 -0
- package/dist/services/actionflow/enrich_approve_trigger.d.ts.map +1 -0
- package/dist/services/actionflow/enrich_approve_trigger.js +107 -0
- package/dist/services/actionflow/enrich_approve_trigger.js.map +1 -0
- package/dist/services/actionflow/filter_rules.d.ts +14 -0
- package/dist/services/actionflow/filter_rules.d.ts.map +1 -0
- package/dist/services/actionflow/filter_rules.js +259 -0
- package/dist/services/actionflow/filter_rules.js.map +1 -0
- package/dist/services/actionflow/form_source.d.ts +17 -0
- package/dist/services/actionflow/form_source.d.ts.map +1 -0
- package/dist/services/actionflow/form_source.js +42 -0
- package/dist/services/actionflow/form_source.js.map +1 -0
- package/dist/services/actionflow/formula_service.d.ts +51 -0
- package/dist/services/actionflow/formula_service.d.ts.map +1 -0
- package/dist/services/actionflow/formula_service.js +999 -0
- package/dist/services/actionflow/formula_service.js.map +1 -0
- package/dist/services/actionflow/generation_service.d.ts +28 -0
- package/dist/services/actionflow/generation_service.d.ts.map +1 -0
- package/dist/services/actionflow/generation_service.js +283 -0
- package/dist/services/actionflow/generation_service.js.map +1 -0
- package/dist/services/actionflow/hrm_source.d.ts +4 -0
- package/dist/services/actionflow/hrm_source.d.ts.map +1 -0
- package/dist/services/actionflow/hrm_source.js +8 -0
- package/dist/services/actionflow/hrm_source.js.map +1 -0
- package/dist/services/actionflow/id_generator.d.ts +13 -0
- package/dist/services/actionflow/id_generator.d.ts.map +1 -0
- package/dist/services/actionflow/id_generator.js +33 -0
- package/dist/services/actionflow/id_generator.js.map +1 -0
- package/dist/services/actionflow/person_source.d.ts +7 -0
- package/dist/services/actionflow/person_source.d.ts.map +1 -0
- package/dist/services/actionflow/person_source.js +34 -0
- package/dist/services/actionflow/person_source.js.map +1 -0
- package/dist/services/actionflow/preflight_service.d.ts +42 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -0
- package/dist/services/actionflow/preflight_service.js +1247 -0
- package/dist/services/actionflow/preflight_service.js.map +1 -0
- package/dist/services/actionflow/query_field_defaults.d.ts +3 -0
- package/dist/services/actionflow/query_field_defaults.d.ts.map +1 -0
- package/dist/services/actionflow/query_field_defaults.js +46 -0
- package/dist/services/actionflow/query_field_defaults.js.map +1 -0
- package/dist/services/actionflow/readback_verifier.d.ts +11 -0
- package/dist/services/actionflow/readback_verifier.d.ts.map +1 -0
- package/dist/services/actionflow/readback_verifier.js +252 -0
- package/dist/services/actionflow/readback_verifier.js.map +1 -0
- package/dist/services/actionflow/request.d.ts +13 -0
- package/dist/services/actionflow/request.d.ts.map +1 -0
- package/dist/services/actionflow/request.js +15 -0
- package/dist/services/actionflow/request.js.map +1 -0
- package/dist/services/actionflow/runtime_metadata.d.ts +27 -0
- package/dist/services/actionflow/runtime_metadata.d.ts.map +1 -0
- package/dist/services/actionflow/runtime_metadata.js +142 -0
- package/dist/services/actionflow/runtime_metadata.js.map +1 -0
- package/dist/services/actionflow/save_workflow_draft.d.ts +34 -0
- package/dist/services/actionflow/save_workflow_draft.d.ts.map +1 -0
- package/dist/services/actionflow/save_workflow_draft.js +449 -0
- package/dist/services/actionflow/save_workflow_draft.js.map +1 -0
- package/dist/services/actionflow/system_params.d.ts +5 -0
- package/dist/services/actionflow/system_params.d.ts.map +1 -0
- package/dist/services/actionflow/system_params.js +55 -0
- package/dist/services/actionflow/system_params.js.map +1 -0
- package/dist/services/actionflow/trigger_common.d.ts +6 -0
- package/dist/services/actionflow/trigger_common.d.ts.map +1 -0
- package/dist/services/actionflow/trigger_common.js +41 -0
- package/dist/services/actionflow/trigger_common.js.map +1 -0
- package/dist/services/actionflow/workflow_compiler.d.ts +27 -0
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -0
- package/dist/services/actionflow/workflow_compiler.js +1804 -0
- package/dist/services/actionflow/workflow_compiler.js.map +1 -0
- package/dist/services/actionflow/workflow_source.d.ts +14 -0
- package/dist/services/actionflow/workflow_source.d.ts.map +1 -0
- package/dist/services/actionflow/workflow_source.js +86 -0
- package/dist/services/actionflow/workflow_source.js.map +1 -0
- package/dist/services/workflow-initiator.d.ts +15 -0
- package/dist/services/workflow-initiator.d.ts.map +1 -0
- package/dist/services/workflow-initiator.js +77 -0
- package/dist/services/workflow-initiator.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { buildTriggerDataSource, buildTriggerOperators, buildTriggerQueryFields } from '../trigger_common.js';
|
|
2
|
+
export const TIME_BATCH_TRIGGER_COMPONENT = {
|
|
3
|
+
type: 'TimeBatchTrigger',
|
|
4
|
+
nodeRole: 'event',
|
|
5
|
+
description: '按 Cron 表达式扫描数据源中符合条件的数据并批量触发动作流。',
|
|
6
|
+
display: { typeName: '定时批量触发', componentName: '定时批量触发', componentDesc: '定时扫描数据源符合条件的数据并触发动作流', icon: 'Icon-scheduled-batch-triggering-mcolor' },
|
|
7
|
+
params: {
|
|
8
|
+
dataSource: { required: true, description: '要扫描的数据源(表单)。标准格式为 groupId/id。', valueType: 'platform_reference', referenceType: 'ebuilder_form', valueShape: 'object' },
|
|
9
|
+
cornString: { required: true, description: 'Quartz Cron 表达式。例如每天 10:00:0 0 10 * * ?。', valueType: 'string' },
|
|
10
|
+
queryFields: { required: false, description: '批量查询输出字段;未提供或传空数组时默认全选(含数据ID等系统字段)。仅在需求明确限制输出时传字段列表。', valueType: 'array', valueShape: 'array' },
|
|
11
|
+
orderFields: { required: false, description: '查询排序字段。', valueType: 'array', valueShape: 'array' },
|
|
12
|
+
openRetryFlag: { required: false, description: '是否启用失败重试。', valueType: 'boolean' },
|
|
13
|
+
filterCondition: { required: false, description: '批量筛选条件。', valueType: 'object', valueShape: 'object' },
|
|
14
|
+
operator: { required: true, description: '操作人。', valueType: 'platform_reference', referenceType: 'user_assignment', valueShape: 'object' },
|
|
15
|
+
},
|
|
16
|
+
propertySources: [
|
|
17
|
+
{ properties: ['dataSource', 'queryFields', 'filterCondition'], module: 'core.form_source', lookups: ['dsGroup', 'dsList', 'getEbField', 'showDataSourceFields'], purpose: '解析批量触发表单、查询字段和筛选字段', fallback: 'real_candidate_only' },
|
|
18
|
+
{ properties: ['operator'], module: 'core.person_source', lookups: ['resourceData'], purpose: '补全必填操作人', fallback: 'real_candidate_only' },
|
|
19
|
+
],
|
|
20
|
+
dataMapping: {
|
|
21
|
+
dataSource: '_timeBatchDataSource', cornString: 'cornString', queryFields: 'queryFields', orderFields: 'orderFields',
|
|
22
|
+
openRetryFlag: 'openRetryFlag', filterCondition: 'filterInput', operator: 'operator',
|
|
23
|
+
},
|
|
24
|
+
defaultData: { rate: '6', radioVal: 'cycle', cycle: 1, openRetry: false, openRetryFlag: false, physical: true, typeFrom: 'FORM' },
|
|
25
|
+
triggerType: 'TimerTrigger',
|
|
26
|
+
triggerTypeName: '定时批量触发',
|
|
27
|
+
runtimeContext: { inputs: [], outputs: ['FormData', 'FormField', 'SettingInfo', 'accessId', 'monitorId'] },
|
|
28
|
+
dataFields: {
|
|
29
|
+
dataSource: { type: 'object', required: true, subfields: ['id', 'groupId', 'text', 'type'] },
|
|
30
|
+
filterInput: { type: 'object', required: true },
|
|
31
|
+
rate: { type: 'string', required: true, default: '6' },
|
|
32
|
+
cornString: { type: 'string', required: true },
|
|
33
|
+
operator: { type: 'array', required: true },
|
|
34
|
+
queryFields: { type: 'array', required: false },
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
const TIME_BATCH_DEFAULTS = {
|
|
38
|
+
radioVal: 'cycle', rate: 6, cycle: 1, hourDb: '', dayDb: '', weekDb: '', monthDb: '',
|
|
39
|
+
atWeekDb: '', atWeekDetailDb: '', lastWeekDb: '', cornString: '', endTime: '', startTime: '',
|
|
40
|
+
openRetry: false, openRetryFlag: false, physical: true, typeFrom: 'FORM',
|
|
41
|
+
filterInput: { isNewFilter: true, isParent: true, datas: [], parentNode: '', relationship: '1', key: '' },
|
|
42
|
+
operator: [], queryFields: [], filterText: '',
|
|
43
|
+
};
|
|
44
|
+
export function timeBatchTriggerCompiler(draftParams, ctx) {
|
|
45
|
+
const meta = ctx.meta || {};
|
|
46
|
+
const appId = ctx.appId;
|
|
47
|
+
const result = JSON.parse(JSON.stringify(TIME_BATCH_DEFAULTS));
|
|
48
|
+
const ds = draftParams.dataSource || {};
|
|
49
|
+
const [dsId, dsGroup, dataSource] = buildTriggerDataSource(ds, { includeSourceId: true });
|
|
50
|
+
if (ds && typeof ds === 'object') {
|
|
51
|
+
result.dataSource = dataSource;
|
|
52
|
+
result.sourceId = dsId;
|
|
53
|
+
result.tableNames = String(ds.text || ds.name || '');
|
|
54
|
+
result.groupId = dsGroup;
|
|
55
|
+
result.typeFrom = String(ds.type || 'FORM');
|
|
56
|
+
result.physical = true;
|
|
57
|
+
result.appId = dsGroup;
|
|
58
|
+
}
|
|
59
|
+
const cornString = String(draftParams.cornString ?? '').trim();
|
|
60
|
+
if (!cornString)
|
|
61
|
+
throw new Error('TimeBatchTrigger 缺少必填的 cornString(Quartz Cron 表达式)');
|
|
62
|
+
result.rate = 6;
|
|
63
|
+
result.radioVal = 'cycle';
|
|
64
|
+
result.cornString = cornString;
|
|
65
|
+
for (const key of ['orderFields']) {
|
|
66
|
+
const value = draftParams[key];
|
|
67
|
+
if (value !== undefined && value !== null && value !== '' && !(Array.isArray(value) && value.length === 0)) {
|
|
68
|
+
result[key] = JSON.parse(JSON.stringify(value));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (draftParams.openRetryFlag !== undefined && draftParams.openRetryFlag !== null) {
|
|
72
|
+
result.openRetryFlag = Boolean(draftParams.openRetryFlag);
|
|
73
|
+
result.openRetry = Boolean(draftParams.openRetryFlag);
|
|
74
|
+
}
|
|
75
|
+
const fc = draftParams.filterCondition;
|
|
76
|
+
if (fc && typeof fc === 'object' && Object.keys(fc).length) {
|
|
77
|
+
if (!ctx.buildFilterInput)
|
|
78
|
+
throw new Error('TimeBatchTrigger.filterCondition requires a filter builder');
|
|
79
|
+
result.filterInput = ctx.buildFilterInput(result, fc, meta, appId, 'TimeBatchTrigger');
|
|
80
|
+
}
|
|
81
|
+
const operators = buildTriggerOperators(draftParams.operator);
|
|
82
|
+
if (operators.length)
|
|
83
|
+
result.operator = operators;
|
|
84
|
+
result.queryFields = buildTriggerQueryFields(draftParams.queryFields, dsId);
|
|
85
|
+
result.applicationName = draftParams.dataSource && typeof draftParams.dataSource === 'object' ? String(draftParams.dataSource.text || '') : '';
|
|
86
|
+
if (appId) {
|
|
87
|
+
result.currentApplication = appId;
|
|
88
|
+
result.applicationId = appId;
|
|
89
|
+
}
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=time_batch_trigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time_batch_trigger.js","sourceRoot":"","sources":["../../../../src/services/actionflow/components/time_batch_trigger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE9G,MAAM,CAAC,MAAM,4BAA4B,GAAwB;IAC/D,IAAI,EAAE,kBAAkB;IACxB,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,kCAAkC;IAC/C,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,sBAAsB,EAAE,IAAI,EAAE,wCAAwC,EAAE;IAC/I,MAAM,EAAE;QACN,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,+BAA+B,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE;QACnK,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0CAA0C,EAAE,SAAS,EAAE,QAAQ,EAAE;QAC5G,WAAW,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,sDAAsD,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE;QAC9I,WAAW,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE;QACjG,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE;QAClF,eAAe,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE;QACvG,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE;KAC3I;IACD,eAAe,EAAE;QACf,EAAE,UAAU,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,sBAAsB,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,qBAAqB,EAAE;QAClO,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,qBAAqB,EAAE;KAC3I;IACD,WAAW,EAAE;QACX,UAAU,EAAE,sBAAsB,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa;QACpH,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU;KACrF;IACD,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE;IACjI,WAAW,EAAE,cAAc;IAC3B,eAAe,EAAE,QAAQ;IACzB,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE;IAC1G,UAAU,EAAE;QACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;QAC5F,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE;QACtD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9C,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3C,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;KAChD;CACF,CAAC;AAEF,MAAM,mBAAmB,GAAwB;IAC/C,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;IACpF,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;IAC5F,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM;IACxE,WAAW,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;IACzG,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE;CAC9C,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,WAAgC,EAAE,GAAoB;IAC7F,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACxB,MAAM,MAAM,GAAwB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAEpF,MAAM,EAAE,GAAG,WAAW,CAAC,UAAU,IAAI,EAAE,CAAC;IACxC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1F,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/D,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACvF,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;IAChB,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IAE/B,KAAK,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3G,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,IAAI,WAAW,CAAC,aAAa,KAAK,SAAS,IAAI,WAAW,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;QAClF,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC1D,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,EAAE,GAAG,WAAW,CAAC,eAAe,CAAC;IACvC,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3D,IAAI,CAAC,GAAG,CAAC,gBAAgB;YAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QACzG,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9D,IAAI,SAAS,CAAC,MAAM;QAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;IAElD,MAAM,CAAC,WAAW,GAAG,uBAAuB,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAE5E,MAAM,CAAC,eAAe,GAAG,WAAW,CAAC,UAAU,IAAI,OAAO,WAAW,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/I,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAClC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** Native workflow actions. The DTO fields here are taken from the workflow component
|
|
2
|
+
* frontend and backend; keep reference values as FormulaBeans rather than raw IDs. */
|
|
3
|
+
import type { CompilerContext } from './index.js';
|
|
4
|
+
export declare const APPROVE_SAVE_COMPONENT: Record<string, any>;
|
|
5
|
+
export declare const APPROVE_MANDATORY_ARCHIVING_COMPONENT: Record<string, any>;
|
|
6
|
+
export declare const APPROVE_COMMIT_COMPONENT: Record<string, any>;
|
|
7
|
+
export declare const APPROVE_DELETE_COMPONENT: Record<string, any>;
|
|
8
|
+
export declare const APPROVE_DO_CIRCULATE_COMPONENT: Record<string, any>;
|
|
9
|
+
export declare const APPROVE_INTERVENTION_COMPONENT: Record<string, any>;
|
|
10
|
+
export declare const WORKFLOW_DOC_EMPOWERMENT_COMPONENT: Record<string, any>;
|
|
11
|
+
export declare const APPROVE_DO_FORWARD_COMPONENT: Record<string, any>;
|
|
12
|
+
export declare const APPROVE_DO_TURN_TODO_COMPONENT: Record<string, any>;
|
|
13
|
+
export declare const APPROVE_CONSUL_TURN_TODO_COMPONENT: Record<string, any>;
|
|
14
|
+
export declare const APPROVE_MANUAL_CC_COMPONENT: Record<string, any>;
|
|
15
|
+
export declare const APPROVE_ADD_SIGN_COMPONENT: Record<string, any>;
|
|
16
|
+
export declare const APPROVE_AGREE_REJECT_APPLY_COMPONENT: Record<string, any>;
|
|
17
|
+
export declare const APPROVE_REFUSE_REJECT_APPLY_COMPONENT: Record<string, any>;
|
|
18
|
+
export declare const APPROVE_REJECT_APPLY_COMPONENT: Record<string, any>;
|
|
19
|
+
export declare const APPROVE_WITHDRAW_COMPONENT: Record<string, any>;
|
|
20
|
+
export declare const APPROVE_SHARE_ENTRY_COMPONENT: Record<string, any>;
|
|
21
|
+
export declare const APPROVE_SEND_BACK_COMPONENT: Record<string, any>;
|
|
22
|
+
export declare const APPROVE_COMPLETELY_DELETE_COMPONENT: Record<string, any>;
|
|
23
|
+
export declare const WORKFLOW_TO_DOC_COMPONENT: Record<string, any>;
|
|
24
|
+
export declare const APPROVE_ENTRUST_COMPONENT: Record<string, any>;
|
|
25
|
+
export declare const workflowCompilers: Record<string, (draft: Record<string, any>, ctx: CompilerContext) => Record<string, any>>;
|
|
26
|
+
//# sourceMappingURL=workflow_actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow_actions.d.ts","sourceRoot":"","sources":["../../../../src/services/actionflow/components/workflow_actions.ts"],"names":[],"mappings":"AAAA;sFACsF;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAqPlD,eAAO,MAAM,sBAAsB,qBAKgO,CAAC;AAIpQ,eAAO,MAAM,qCAAqC,qBAEmD,CAAC;AAEtG,eAAO,MAAM,wBAAwB,qBAE+K,CAAC;AAGrN,eAAO,MAAM,wBAAwB,qBAEuI,CAAC;AAE7K,eAAO,MAAM,8BAA8B,qBAE4M,CAAC;AAExP,eAAO,MAAM,8BAA8B,qBAEgM,CAAC;AAE5O,eAAO,MAAM,kCAAkC,qBAEmD,CAAC;AAYnG,eAAO,MAAM,4BAA4B,qBAEuC,CAAC;AACjF,eAAO,MAAM,8BAA8B,qBAEF,CAAC;AAC1C,eAAO,MAAM,kCAAkC,qBAA4E,CAAC;AAC5H,eAAO,MAAM,2BAA2B,qBAE2H,CAAC;AACpK,eAAO,MAAM,0BAA0B,qBAEkE,CAAC;AAM1G,eAAO,MAAM,oCAAoC,qBAA4E,CAAC;AAC9H,eAAO,MAAM,qCAAqC,qBAA8E,CAAC;AACjI,eAAO,MAAM,8BAA8B,qBAA8E,CAAC;AAC1H,eAAO,MAAM,0BAA0B,qBAEoF,CAAC;AAC5H,eAAO,MAAM,6BAA6B,qBAEuI,CAAC;AAClL,eAAO,MAAM,2BAA2B,qBAE8Q,CAAC;AAEvT,eAAO,MAAM,mCAAmC,qBAEa,CAAC;AAC9D,eAAO,MAAM,yBAAyB,qBAKmD,CAAC;AAC1F,eAAO,MAAM,yBAAyB,qBAgBoD,CAAC;AAE3F,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAEvH,CAAC"}
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
import { buildPersonFormula, formulaSystemVar, formulaFixedForAssignSwitch, buildSettingEntry } from '../formula_service.js';
|
|
2
|
+
import { buildFormulaReference } from './action_eb_update_compiler.js';
|
|
3
|
+
import { genSfId } from '../id_generator.js';
|
|
4
|
+
const workflowSource = [{
|
|
5
|
+
properties: ['workflowPath', 'requestId'], module: 'core.workflow_source',
|
|
6
|
+
lookups: ['workflowPathBrowserComplete', 'getWfField'], purpose: '解析流程定义和流程实例', fallback: 'real_candidate_only',
|
|
7
|
+
}];
|
|
8
|
+
const personSource = [{
|
|
9
|
+
properties: ['operator', 'initiator', 'employeeId', 'receiveIds', 'interventionReceiverIds', 'hrmResource', 'perator', 'joinOperators', 'shareEntities', 'entrustUser', 'consignee', 'ccReceiverIds'],
|
|
10
|
+
module: 'core.person_source', lookups: ['resourceData'], purpose: '解析人员 Browser 对象', fallback: 'real_candidate_only',
|
|
11
|
+
}];
|
|
12
|
+
function formula(value, ctx, person = false) {
|
|
13
|
+
if (value == null || value === '')
|
|
14
|
+
throw new Error('流程组件必填 FormulaBean 值不能为空');
|
|
15
|
+
const type = value && typeof value === 'object' ? String(value.type ?? '') : '';
|
|
16
|
+
if (value && typeof value === 'object' && ['1', '3', '4', '5', '6', '8', '9', '10'].includes(type) && !value.kind)
|
|
17
|
+
return { ...value };
|
|
18
|
+
if (person && value && typeof value === 'object')
|
|
19
|
+
return buildPersonFormula(value, ctx.meta, ctx.appId, false, true);
|
|
20
|
+
if (Array.isArray(value) && value.length && value.every((item) => item && typeof item === 'object' && (item.id || item.value))) {
|
|
21
|
+
const ids = value.map((item) => String(item.id ?? item.value));
|
|
22
|
+
const bean = formulaFixedForAssignSwitch(ids.join(','));
|
|
23
|
+
bean.name = value.map((item) => String(item.name ?? item.text ?? item.label ?? item.id ?? item.value)).join(',');
|
|
24
|
+
bean.applicationId = ctx.appId;
|
|
25
|
+
bean.config = { originValue: value, switchType: 'fixvalue', formulaVersion: 'V1' };
|
|
26
|
+
return bean;
|
|
27
|
+
}
|
|
28
|
+
if (value && typeof value === 'object' && (value.id || value.value) && (value.name || value.text || value.label)) {
|
|
29
|
+
const rawId = String(value.id ?? value.value);
|
|
30
|
+
const bean = formulaFixedForAssignSwitch(rawId);
|
|
31
|
+
bean.name = String(value.name ?? value.text ?? value.label ?? rawId);
|
|
32
|
+
bean.applicationId = ctx.appId;
|
|
33
|
+
bean.config = { originValue: [value], switchType: 'fixvalue', formulaVersion: 'V1' };
|
|
34
|
+
return bean;
|
|
35
|
+
}
|
|
36
|
+
if (value && typeof value === 'object' && (value.kind === 'system_variable' || value.assignmentKind === 'system_variable')) {
|
|
37
|
+
return formulaSystemVar(String(value.key || '{userid}'));
|
|
38
|
+
}
|
|
39
|
+
return buildFormulaReference(value, { meta: ctx.meta, appId: ctx.appId, eventId: ctx.eventNodeId, componentType: 'workflow' });
|
|
40
|
+
}
|
|
41
|
+
function formulas(value, ctx, person = false) {
|
|
42
|
+
const values = Array.isArray(value) ? value : [value];
|
|
43
|
+
if (!values.length || values.some((item) => item == null || item === ''))
|
|
44
|
+
throw new Error('流程组件人员/流程列表不能为空');
|
|
45
|
+
return values.map((item) => formula(item, ctx, person));
|
|
46
|
+
}
|
|
47
|
+
function workflowActionCompiler(type, draft, ctx) {
|
|
48
|
+
const result = ctx.compileGeneric(draft, type, ctx);
|
|
49
|
+
const require = (key) => {
|
|
50
|
+
const value = draft[key];
|
|
51
|
+
if (value === undefined || value === null || value === '' || (Array.isArray(value) && value.length === 0)) {
|
|
52
|
+
throw new Error(`${type}.${key} 为必填项,不能省略或伪造`);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const put = (key, value, person = false) => {
|
|
56
|
+
if (value !== undefined && value !== null && value !== '')
|
|
57
|
+
result[key] = formula(value, ctx, person);
|
|
58
|
+
};
|
|
59
|
+
const putList = (key, value, person = false) => {
|
|
60
|
+
if (value !== undefined && value !== null)
|
|
61
|
+
result[key] = formulas(value, ctx, person);
|
|
62
|
+
};
|
|
63
|
+
if (type === 'ApproveSave' || type === 'ApproveCommit') {
|
|
64
|
+
require('workflowPath');
|
|
65
|
+
require('requestId');
|
|
66
|
+
require('operator');
|
|
67
|
+
put('requestId', draft.requestId);
|
|
68
|
+
put('requestName', draft.requestName);
|
|
69
|
+
put('operator', draft.operator, true);
|
|
70
|
+
put('remark', draft.remark);
|
|
71
|
+
put('odocId', draft.odocId);
|
|
72
|
+
put('dataId', draft.dataId);
|
|
73
|
+
if (type === 'ApproveSave')
|
|
74
|
+
put('onlySaveForm', draft.onlySaveForm ?? { kind: 'fixed', value: false });
|
|
75
|
+
}
|
|
76
|
+
else if (type === 'ApproveMandatoryArchiving') {
|
|
77
|
+
require('requestId');
|
|
78
|
+
require('operator');
|
|
79
|
+
put('requestId', draft.requestId);
|
|
80
|
+
put('operator', draft.operator, true);
|
|
81
|
+
put('remark', draft.remark);
|
|
82
|
+
}
|
|
83
|
+
else if (type === 'ApproveDelete') {
|
|
84
|
+
require('requestId');
|
|
85
|
+
require('operator');
|
|
86
|
+
putList('requestId', draft.requestId);
|
|
87
|
+
put('operator', draft.operator, true);
|
|
88
|
+
}
|
|
89
|
+
else if (type === 'ApproveDoCirculate') {
|
|
90
|
+
require('requestId');
|
|
91
|
+
require('receiveIds');
|
|
92
|
+
require('initiator');
|
|
93
|
+
put('requestId', draft.requestId);
|
|
94
|
+
putList('receiveIds', draft.receiveIds, true);
|
|
95
|
+
put('initiator', draft.initiator, true);
|
|
96
|
+
put('remark', draft.remark);
|
|
97
|
+
}
|
|
98
|
+
else if (['ApproveDoForward', 'ApproveDoTurnTodo', 'ApproveConsulTurnTodo'].includes(type)) {
|
|
99
|
+
require('requestId');
|
|
100
|
+
require('receiveIds');
|
|
101
|
+
require('initiator');
|
|
102
|
+
put('requestId', draft.requestId);
|
|
103
|
+
putList('receiveIds', draft.receiveIds, true);
|
|
104
|
+
put('initiator', draft.initiator, true);
|
|
105
|
+
for (const key of ['requestName', 'remark'])
|
|
106
|
+
put(key, draft[key]);
|
|
107
|
+
}
|
|
108
|
+
else if (type === 'ApproveManualCC') {
|
|
109
|
+
require('requestId');
|
|
110
|
+
require('receiveTypes');
|
|
111
|
+
require('receiveIds');
|
|
112
|
+
require('initiator');
|
|
113
|
+
put('requestId', draft.requestId);
|
|
114
|
+
putList('receiveIds', draft.receiveIds, true);
|
|
115
|
+
put('initiator', draft.initiator, true);
|
|
116
|
+
put('remark', draft.remark);
|
|
117
|
+
}
|
|
118
|
+
else if (type === 'ApproveAddSign') {
|
|
119
|
+
require('requestId');
|
|
120
|
+
require('employeeId');
|
|
121
|
+
require('src');
|
|
122
|
+
require('joinOperators');
|
|
123
|
+
put('requestId', draft.requestId);
|
|
124
|
+
put('employeeId', draft.employeeId, true);
|
|
125
|
+
putList('joinOperators', draft.joinOperators, true);
|
|
126
|
+
put('remark', draft.remark);
|
|
127
|
+
}
|
|
128
|
+
else if (['ApproveAgreeRejectApply', 'ApproveRefuseRejectApply'].includes(type)) {
|
|
129
|
+
require('requestId');
|
|
130
|
+
require('employeeId');
|
|
131
|
+
put('requestId', draft.requestId);
|
|
132
|
+
put('employeeId', draft.employeeId, true);
|
|
133
|
+
}
|
|
134
|
+
else if (type === 'ApproveRejectApply') {
|
|
135
|
+
require('requestId');
|
|
136
|
+
require('employeeId');
|
|
137
|
+
require('remark');
|
|
138
|
+
put('requestId', draft.requestId);
|
|
139
|
+
put('employeeId', draft.employeeId, true);
|
|
140
|
+
put('remark', draft.remark);
|
|
141
|
+
}
|
|
142
|
+
else if (type === 'ApproveWithdraw') {
|
|
143
|
+
require('requestId');
|
|
144
|
+
require('operator');
|
|
145
|
+
put('requestId', draft.requestId);
|
|
146
|
+
put('operator', draft.operator, true);
|
|
147
|
+
put('remark', draft.remark);
|
|
148
|
+
}
|
|
149
|
+
else if (type === 'ApproveShareEntry') {
|
|
150
|
+
require('requestIds');
|
|
151
|
+
require('shareType');
|
|
152
|
+
require('shareEntities');
|
|
153
|
+
require('perator');
|
|
154
|
+
putList('requestIds', draft.requestIds);
|
|
155
|
+
putList('shareEntities', draft.shareEntities, draft.shareType === 'user');
|
|
156
|
+
put('perator', draft.perator, true);
|
|
157
|
+
for (const key of ['minSeclevel', 'maxSeclevel', 'shareTargetType'])
|
|
158
|
+
put(key, draft[key]);
|
|
159
|
+
}
|
|
160
|
+
else if (type === 'ApproveSendBack') {
|
|
161
|
+
require('workflowPath');
|
|
162
|
+
require('requestId');
|
|
163
|
+
require('operator');
|
|
164
|
+
require('rejectToNodeId');
|
|
165
|
+
if (!Array.isArray(draft.workflowPath) || !draft.workflowPath.length)
|
|
166
|
+
throw new Error('ApproveSendBack.workflowPath 必须是已解析的工作流 Browser 对象数组');
|
|
167
|
+
if (!Array.isArray(draft.rejectToNodeId) || !draft.rejectToNodeId.length)
|
|
168
|
+
throw new Error('ApproveSendBack.rejectToNodeId 必须是已解析的节点 Browser 对象数组');
|
|
169
|
+
result.workflowPath = draft.workflowPath;
|
|
170
|
+
result.rejectToNodeId = draft.rejectToNodeId;
|
|
171
|
+
put('requestId', draft.requestId);
|
|
172
|
+
put('operator', draft.operator, true);
|
|
173
|
+
for (const key of ['requestName', 'odocId', 'remark', 'dataId'])
|
|
174
|
+
put(key, draft[key]);
|
|
175
|
+
}
|
|
176
|
+
else if (type === 'ApproveCompletelyDelete') {
|
|
177
|
+
require('requestIds');
|
|
178
|
+
require('operator');
|
|
179
|
+
putList('requestIds', draft.requestIds);
|
|
180
|
+
put('operator', draft.operator, true);
|
|
181
|
+
}
|
|
182
|
+
else if (type === 'WorkflowToDoc') {
|
|
183
|
+
require('workflowPath');
|
|
184
|
+
require('requestId');
|
|
185
|
+
require('operator');
|
|
186
|
+
require('toDocSettings');
|
|
187
|
+
const workflowPath = Array.isArray(draft.workflowPath) ? draft.workflowPath : [draft.workflowPath];
|
|
188
|
+
if (!workflowPath.length || !workflowPath.every((item) => item && typeof item === 'object' && item.id)) {
|
|
189
|
+
throw new Error('WorkflowToDoc.workflowPath 必须是已解析的工作流 Browser 对象');
|
|
190
|
+
}
|
|
191
|
+
const settings = draft.toDocSettings;
|
|
192
|
+
if (!settings || typeof settings !== 'object' || Array.isArray(settings)) {
|
|
193
|
+
throw new Error('WorkflowToDoc.toDocSettings 必须是来自平台存文档设置的对象');
|
|
194
|
+
}
|
|
195
|
+
if (String(settings.saveDirectorySelect ?? '0') === '0'
|
|
196
|
+
&& (!Array.isArray(settings.saveDirectoryBrowserValue) || settings.saveDirectoryBrowserValue.length === 0)) {
|
|
197
|
+
throw new Error('WorkflowToDoc 固定目录模式必须提供真实 saveDirectoryBrowserValue 文档目录 Browser 对象;不能伪造目录。');
|
|
198
|
+
}
|
|
199
|
+
result.workflowPathBrowser = workflowPath;
|
|
200
|
+
put('requestIdFormula', draft.requestId);
|
|
201
|
+
put('operatorFormula', draft.operator, true);
|
|
202
|
+
const settingKeys = [
|
|
203
|
+
'saveDirectorySelect', 'saveDirectoryBrowserValue', 'saveDirectoryOptionValue', 'fileManagerSelect',
|
|
204
|
+
'fileManagerSelectBrowserValue', 'hrmResourceValue', 'reservedSignatureComments', 'docTypes',
|
|
205
|
+
'offlineContainAttach', 'landscapePdf', 'docSource', 'layoutId', 'displayInForm', 'fileCoverFieldValue',
|
|
206
|
+
'fileCoverField', 'displayWatermark', 'pdfMergeAttach', 'docFlowPage', 'manuallyDirectory', 'action',
|
|
207
|
+
];
|
|
208
|
+
for (const key of settingKeys)
|
|
209
|
+
if (settings[key] !== undefined)
|
|
210
|
+
result[key] = settings[key];
|
|
211
|
+
result.id = String(draft.id || genSfId());
|
|
212
|
+
}
|
|
213
|
+
else if (type === 'ApproveEntrust') {
|
|
214
|
+
require('operator');
|
|
215
|
+
require('entrustUser');
|
|
216
|
+
require('consignee');
|
|
217
|
+
require('identityId');
|
|
218
|
+
require('entrustType');
|
|
219
|
+
const fields = draft._entrustFields;
|
|
220
|
+
if (!fields || typeof fields !== 'object') {
|
|
221
|
+
throw new Error('ApproveEntrust 缺少当前租户的动态字段定义;必须先执行预检。');
|
|
222
|
+
}
|
|
223
|
+
const entry = (name, value) => {
|
|
224
|
+
const field = fields[name];
|
|
225
|
+
if (!field)
|
|
226
|
+
throw new Error(`ApproveEntrust 当前租户缺少字段 ${name}`);
|
|
227
|
+
return [String(field.id), buildSettingEntry(String(field.id), value, String(field.componentKey || 'Text'), ctx.meta, ctx.appId, ctx.eventNodeId, 'OPERATE_EQUAL', type)];
|
|
228
|
+
};
|
|
229
|
+
const settingMain = Object.fromEntries([
|
|
230
|
+
entry('entrustUserId', draft.entrustUser),
|
|
231
|
+
entry('beAgentIdentities', { kind: 'fixed', value: draft.identityId }),
|
|
232
|
+
entry('consigneeId', draft.consignee),
|
|
233
|
+
...['remark', 'startTime', 'endTime']
|
|
234
|
+
.filter((key) => draft[key] !== undefined && draft[key] !== null && draft[key] !== '')
|
|
235
|
+
.map((key) => entry(key, draft[key])),
|
|
236
|
+
]);
|
|
237
|
+
const commonMain = Object.fromEntries([
|
|
238
|
+
entry('entrustType', { kind: 'fixed', value: draft.entrustType }),
|
|
239
|
+
...['approveType', 'approveId', 'nodeId', 'entrustWfBoot', 'entrustBootSubApprove', 'entrustWfHandle', 'entrustSpecifyType', 'entrustApproveType', 'entrustTodoApprove']
|
|
240
|
+
.filter((key) => draft[key] !== undefined && draft[key] !== null && draft[key] !== '')
|
|
241
|
+
.map((key) => entry(key, draft[key])),
|
|
242
|
+
]);
|
|
243
|
+
const formData = (main) => ({ opType: 'insert', updatePolicy: 'ALL', dataDrWithCalc: false, main, detail: [], updateFieldCondition: { updateField: [] } });
|
|
244
|
+
result.operatorId = formula(draft.operator, ctx, true);
|
|
245
|
+
result.setting = formData(settingMain);
|
|
246
|
+
result.settingCommon = formData(commonMain);
|
|
247
|
+
}
|
|
248
|
+
else if (type === 'ApproveIntervention') {
|
|
249
|
+
require('workflowId');
|
|
250
|
+
require('submitToNodeId');
|
|
251
|
+
require('requestId');
|
|
252
|
+
require('employeeId');
|
|
253
|
+
require('interventionReceiverIds');
|
|
254
|
+
if (!Array.isArray(draft.workflowId) || !draft.workflowId.length)
|
|
255
|
+
throw new Error('ApproveIntervention.workflowId 必须是已解析的工作流 Browser 对象数组');
|
|
256
|
+
if (!Array.isArray(draft.submitToNodeId) || !draft.submitToNodeId.length)
|
|
257
|
+
throw new Error('ApproveIntervention.submitToNodeId 必须是已解析的节点 Browser 对象数组');
|
|
258
|
+
result.workflowId = draft.workflowId;
|
|
259
|
+
result.submitToNodeId = draft.submitToNodeId;
|
|
260
|
+
put('requestId', draft.requestId);
|
|
261
|
+
put('employeeId', draft.employeeId, true);
|
|
262
|
+
putList('interventionReceiverIds', draft.interventionReceiverIds, true);
|
|
263
|
+
put('remark', draft.remark);
|
|
264
|
+
if (draft.ccType === '2')
|
|
265
|
+
put('ccReceiverIds', draft.ccReceiverIds, true);
|
|
266
|
+
}
|
|
267
|
+
else if (type === 'WorkFlowDocEmpowerment') {
|
|
268
|
+
require('requestId');
|
|
269
|
+
require('documents');
|
|
270
|
+
put('requestId', draft.requestId);
|
|
271
|
+
for (const key of ['hrmResource', 'department', 'subcompony', 'hrmRange', 'hrmCondition', 'documents', 'allowDocumentDownload']) {
|
|
272
|
+
if (draft[key] !== undefined && draft[key] !== null)
|
|
273
|
+
result[key] = formula(draft[key], ctx, key === 'hrmResource');
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
return result;
|
|
277
|
+
}
|
|
278
|
+
function contractDataFields(params, defaultData) {
|
|
279
|
+
const fields = {
|
|
280
|
+
ebActionId: { type: 'int|str', required: true, platformRef: 'actionConfig' },
|
|
281
|
+
};
|
|
282
|
+
for (const [name, definition] of Object.entries(params)) {
|
|
283
|
+
const param = definition;
|
|
284
|
+
fields[name] = {
|
|
285
|
+
type: String(param.valueType || 'any'),
|
|
286
|
+
required: Boolean(param.required),
|
|
287
|
+
...(param.default !== undefined ? { default: param.default } : {}),
|
|
288
|
+
...(Array.isArray(param.options) ? { options: param.options.map((item) => String(item?.value ?? item)) } : {}),
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
for (const [name, value] of Object.entries(defaultData)) {
|
|
292
|
+
if (name in fields)
|
|
293
|
+
continue;
|
|
294
|
+
fields[name] = { type: typeof value, required: false, default: value };
|
|
295
|
+
}
|
|
296
|
+
return fields;
|
|
297
|
+
}
|
|
298
|
+
function standard(type, name, desc, params, dataMapping, defaultData) {
|
|
299
|
+
return {
|
|
300
|
+
type, nodeRole: 'action', description: desc,
|
|
301
|
+
display: { typeName: name, componentName: name, componentDesc: desc, icon: 'Icon-approval-process01-mcolor' },
|
|
302
|
+
params, propertySources: [...workflowSource, ...personSource], dataMapping, defaultData,
|
|
303
|
+
runtimeContext: { inputs: ['FormData'], outputs: [] },
|
|
304
|
+
dataFields: contractDataFields(params, defaultData),
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
const formulaParam = (description, required = false) => ({ required, description, valueType: 'formula_or_reference' });
|
|
308
|
+
const personParam = (description, required = false) => ({ required, description, valueType: 'platform_reference', referenceType: 'user_assignment', valueShape: 'object' });
|
|
309
|
+
export const APPROVE_SAVE_COMPONENT = standard('ApproveSave', '保存流程', '保存流程和更新流程表单数据', {
|
|
310
|
+
workflowPath: { required: true, description: '目标流程定义 Browser 对象。', valueType: 'platform_reference', referenceType: 'workflow' },
|
|
311
|
+
requestId: formulaParam('要保存的流程实例 ID;可为上下文公式。', true), operator: personParam('保存操作人。', true),
|
|
312
|
+
requestName: formulaParam('流程标题。'), remark: formulaParam('签字意见。'), onlySaveForm: formulaParam('仅保存表单数据。'),
|
|
313
|
+
mapping: { required: false, description: '源字段→目标流程表单字段 ID。', valueType: 'object' }, constants: { required: false, description: '目标流程表单固定值。', valueType: 'object' }, detail: { required: false, description: '明细字段映射。', valueType: 'array' },
|
|
314
|
+
}, { workflowPath: '_bizWorkflowPath', mapping: '_setting_mapping', constants: '_setting_constants', detail: '_setting_detail', module: 'module', requestLevel: 'requestLevel' }, { ebActionId: '-1', type: 'ApproveSave', module: 'workflow', requestLevel: '0' });
|
|
315
|
+
// 保存/提交流程和新建流程共用流程表单 DTO;即使没有字段映射也保留空容器,避免设计器把表单数据判为缺失。
|
|
316
|
+
APPROVE_SAVE_COMPONENT.formDataPayload = { fieldsMetaKey: '_bizFields' };
|
|
317
|
+
export const APPROVE_MANDATORY_ARCHIVING_COMPONENT = standard('ApproveMandatoryArchiving', '强制结束流程', '将审批中的流程强制归档', {
|
|
318
|
+
requestId: formulaParam('要归档的流程实例 ID。', true), operator: personParam('操作者。', true), remark: formulaParam('签字意见。'), module: { required: false, default: 'workflow', description: '流程模块。', valueType: 'string' },
|
|
319
|
+
}, { module: 'module' }, { ebActionId: '-1', type: 'ApproveMandatoryArchiving', module: 'workflow' });
|
|
320
|
+
export const APPROVE_COMMIT_COMPONENT = standard('ApproveCommit', '提交流程', '对流程进行审批', {
|
|
321
|
+
workflowPath: { required: true, description: '目标流程定义 Browser 对象。', valueType: 'platform_reference', referenceType: 'workflow' }, requestId: formulaParam('待提交的流程实例 ID。', true), operator: personParam('审批操作人。', true), requestName: formulaParam('流程标题。'), remark: formulaParam('签字意见。'), mapping: { required: false, description: '流程表单字段映射。', valueType: 'object' }, constants: { required: false, description: '流程表单固定值。', valueType: 'object' }, detail: { required: false, description: '明细字段映射。', valueType: 'array' },
|
|
322
|
+
}, { workflowPath: '_bizWorkflowPath', mapping: '_setting_mapping', constants: '_setting_constants', detail: '_setting_detail', module: 'module' }, { ebActionId: '-1', type: 'ApproveCommit', module: 'workflow' });
|
|
323
|
+
APPROVE_COMMIT_COMPONENT.formDataPayload = { fieldsMetaKey: '_bizFields' };
|
|
324
|
+
export const APPROVE_DELETE_COMPONENT = standard('ApproveDelete', '删除流程', '将流程删除至回收站', {
|
|
325
|
+
requestId: { required: true, description: '要删除的一个或多个流程实例 ID/公式。', valueType: 'array' }, operator: personParam('操作人。', true), module: { required: false, default: 'workflow', description: '流程模块。', valueType: 'string' }, deleteType: { required: false, default: '0', description: '权限校验:0需要,1不需要。', valueType: 'enum' }, isNoCheck: { required: false, default: '0', description: '删除类型:0回收站,1彻底删除,3同时删除流程表。', valueType: 'enum' },
|
|
326
|
+
}, { module: 'module', deleteType: 'deleteType', isNoCheck: 'isNoCheck' }, { ebActionId: '-1', type: 'ApproveDelete', module: 'workflow', deleteType: '0', isNoCheck: '0' });
|
|
327
|
+
export const APPROVE_DO_CIRCULATE_COMPONENT = standard('ApproveDoCirculate', '抄送流程', '将流程抄送给指定接收方', {
|
|
328
|
+
requestId: formulaParam('关联流程实例 ID。', true), receiveIds: { required: true, description: '传阅接收人 Browser 对象数组。', valueType: 'array' }, initiator: personParam('操作人。', true), allowAnnotation: { required: false, default: '0', description: '是否可提交意见:0否,1是。', valueType: 'enum' }, allowForward: { required: false, default: '0', description: '是否可传阅:0否,1是。', valueType: 'enum' }, needWfBack: { required: false, default: '0', description: '阅知后是否通知我:0否,1是。', valueType: 'enum' }, remark: formulaParam('签字意见。'), wfGroup: { required: false, default: 'workflow', description: '流程模块。', valueType: 'string' },
|
|
329
|
+
}, { wfGroup: 'wfGroup', allowAnnotation: 'allowAnnotation', allowForward: 'allowForward', needWfBack: 'needWfBack' }, { ebActionId: '-1', type: 'ApproveDoCirculate', wfGroup: 'workflow', allowAnnotation: '0', allowForward: '0', needWfBack: '0' });
|
|
330
|
+
export const APPROVE_INTERVENTION_COMPONENT = standard('ApproveIntervention', '干预流程', '将流程干预流转到指定节点', {
|
|
331
|
+
workflowId: { required: true, description: '真实工作流 Browser 对象数组。', valueType: 'array' }, submitToNodeId: { required: true, description: '真实流程节点 Browser 对象数组。', valueType: 'array' }, requestId: formulaParam('关联流程实例 ID。', true), employeeId: personParam('操作人员。', true), interventionReceiverIds: { required: true, description: '节点处理人 Browser 对象数组。', valueType: 'array' }, signType: { required: true, description: '会签属性:0非会签,1会签,2依次处理。', valueType: 'enum' }, enableIntervention: { required: false, default: false, description: '是否执行节点附加操作。', valueType: 'boolean' }, ccType: { required: false, default: '0', description: '节点抄送人类型。', valueType: 'enum' }, ccReceiverIds: { required: false, description: 'ccType=2 时的抄送人。', valueType: 'platform_reference' }, remark: formulaParam('干预意见。'), wfGroup: { required: false, default: 'workflow', description: '流程模块。', valueType: 'string' },
|
|
332
|
+
}, { wfGroup: 'wfGroup', signType: 'signType', enableIntervention: 'enableIntervention', ccType: 'ccType' }, { ebActionId: '-1', type: 'ApproveIntervention', wfGroup: 'workflow', signType: '0', enableIntervention: false, ccType: '0' });
|
|
333
|
+
export const WORKFLOW_DOC_EMPOWERMENT_COMPONENT = standard('WorkFlowDocEmpowerment', '流程关联文档赋权', '对指定人员范围添加流程中相关文档的权限', {
|
|
334
|
+
requestId: formulaParam('关联流程实例 ID。', true), documents: { required: true, description: '相关文档 Browser 对象/公式。', valueType: 'formula_or_reference' }, hrmResource: { required: false, description: '人员范围。', valueType: 'formula_or_reference' }, department: { required: false, description: '部门范围。', valueType: 'formula_or_reference' }, subcompony: { required: false, description: '分部范围。', valueType: 'formula_or_reference' }, hrmRange: formulaParam('人员范围选择。'), hrmCondition: formulaParam('人力资源条件。'), allowDocumentDownload: formulaParam('是否允许下载文档。'), module: { required: false, default: 'workflow', description: '流程模块。', valueType: 'string' },
|
|
335
|
+
}, { module: 'module' }, { ebActionId: '-1', type: 'WorkFlowDocEmpowerment', module: 'workflow' });
|
|
336
|
+
function transferComponent(type, name, description, extras = {}, defaults = {}) {
|
|
337
|
+
return standard(type, name, description, {
|
|
338
|
+
requestId: formulaParam('关联流程实例 ID。', true),
|
|
339
|
+
receiveIds: { required: true, description: '接收人 Browser 对象数组。', valueType: 'array' },
|
|
340
|
+
initiator: personParam('操作人。', true),
|
|
341
|
+
requestName: formulaParam('流程标题。'), remark: formulaParam('签字意见。'),
|
|
342
|
+
...extras,
|
|
343
|
+
}, { wfGroup: 'wfGroup', ...Object.fromEntries(Object.keys(extras).map((key) => [key, key])) }, { ebActionId: '-1', type, wfGroup: 'workflow', ...defaults });
|
|
344
|
+
}
|
|
345
|
+
export const APPROVE_DO_FORWARD_COMPONENT = transferComponent('ApproveDoForward', '转发流程', '将流程转发给指定人员', {
|
|
346
|
+
allowAnnotation: { required: false, default: '0', description: '是否可提交意见。', valueType: 'enum' }, needWfBack: { required: false, default: '0', description: '是否通知操作人。', valueType: 'enum' }, secLevel: { required: false, default: '0', description: '安全级别。', valueType: 'enum' }, requestLevel: { required: false, default: '-1', description: '紧急程度。', valueType: 'enum' },
|
|
347
|
+
}, { allowAnnotation: '0', needWfBack: '0', secLevel: '0', requestLevel: '-1' });
|
|
348
|
+
export const APPROVE_DO_TURN_TODO_COMPONENT = transferComponent('ApproveDoTurnTodo', '转办流程', '将流程转办给指定人员处理', {
|
|
349
|
+
secLevel: { required: false, default: '0', description: '安全级别。', valueType: 'enum' }, requestLevel: { required: false, default: '-1', description: '紧急程度。', valueType: 'enum' },
|
|
350
|
+
}, { secLevel: '0', requestLevel: '-1' });
|
|
351
|
+
export const APPROVE_CONSUL_TURN_TODO_COMPONENT = transferComponent('ApproveConsulTurnTodo', '征询转办流程', '将意见征询的流程转办给他人', {});
|
|
352
|
+
export const APPROVE_MANUAL_CC_COMPONENT = standard('ApproveManualCC', '抄送批注流程', '抄送人对流程进行意见批注', {
|
|
353
|
+
requestId: formulaParam('关联流程实例 ID。', true), receiveTypes: { required: true, description: '接收对象类型;当前仅支持 user。', valueType: 'enum', options: [{ value: 'user' }] }, receiveIds: { required: true, description: '接收人 Browser 对象数组。', valueType: 'array' }, initiator: personParam('操作人。', true), needBack: { required: false, default: false, description: '是否要求批注。', valueType: 'boolean' }, remark: formulaParam('签字意见。'),
|
|
354
|
+
}, { wfGroup: 'wfGroup', receiveTypes: 'receiveTypes', needBack: 'needBack' }, { ebActionId: '-1', type: 'ApproveManualCC', wfGroup: 'workflow', needBack: false });
|
|
355
|
+
export const APPROVE_ADD_SIGN_COMPONENT = standard('ApproveAddSign', '加审流程', '对流程添加审批人员', {
|
|
356
|
+
requestId: formulaParam('关联流程实例 ID。', true), employeeId: personParam('操作人员。', true), src: { required: true, description: '操作类型:joinSign 或 joinSignAndSubmit。', valueType: 'enum' }, joinOperators: { required: true, description: '加审人员 Browser 对象数组。', valueType: 'array' }, remark: formulaParam('签字意见。'),
|
|
357
|
+
}, { wfGroup: 'wfGroup', src: 'src' }, { ebActionId: '-1', type: 'ApproveAddSign', wfGroup: 'workflow' });
|
|
358
|
+
function rejectApplicationComponent(type, name, description, remarkRequired = false) {
|
|
359
|
+
return standard(type, name, description, {
|
|
360
|
+
requestId: formulaParam('关联流程实例 ID。', true), employeeId: personParam('操作人员。', true), remark: formulaParam('签字意见。', remarkRequired),
|
|
361
|
+
}, { wfGroup: 'wfGroup' }, { ebActionId: '-1', type, wfGroup: 'workflow' });
|
|
362
|
+
}
|
|
363
|
+
export const APPROVE_AGREE_REJECT_APPLY_COMPONENT = rejectApplicationComponent('ApproveAgreeRejectApply', '同意退回申请', '同意退回流程');
|
|
364
|
+
export const APPROVE_REFUSE_REJECT_APPLY_COMPONENT = rejectApplicationComponent('ApproveRefuseRejectApply', '拒绝退回申请', '拒绝将流程退回');
|
|
365
|
+
export const APPROVE_REJECT_APPLY_COMPONENT = rejectApplicationComponent('ApproveRejectApply', '退回申请流程', '申请将流程退回', true);
|
|
366
|
+
export const APPROVE_WITHDRAW_COMPONENT = standard('ApproveWithdraw', '撤回流程', '将已处理的流程撤回', {
|
|
367
|
+
requestId: formulaParam('关联流程实例 ID。', true), operator: personParam('操作者。', true), remind: { required: false, default: true, description: '是否提醒已提交的操作人。', valueType: 'boolean' }, remark: formulaParam('签字意见。'),
|
|
368
|
+
}, { module: 'module', remind: 'remind' }, { ebActionId: '-1', type: 'ApproveWithdraw', module: 'workflow', remind: true });
|
|
369
|
+
export const APPROVE_SHARE_ENTRY_COMPONENT = standard('ApproveShareEntry', '共享流程', '将流程共享给指定人', {
|
|
370
|
+
requestIds: { required: true, description: '要共享的流程实例 ID 公式数组。', valueType: 'array' }, shareType: { required: true, description: '共享对象类型;当前仅支持 user。', valueType: 'enum', options: [{ value: 'user' }] }, shareEntities: { required: true, description: '共享对象的真实用户 Browser 数组。', valueType: 'array' }, perator: personParam('操作人。', true), permissionType: { required: false, default: false, description: '是否可查看意见及评论。', valueType: 'boolean' }, minSeclevel: formulaParam('最小安全级别。'), maxSeclevel: formulaParam('最大安全级别。'), shareTargetType: formulaParam('角色级别;仅角色共享时有效。'),
|
|
371
|
+
}, { wfGroup: 'wfGroup', shareType: 'shareType', permissionType: 'permissionType' }, { ebActionId: '-1', type: 'ApproveShareEntry', wfGroup: 'workflow', permissionType: false });
|
|
372
|
+
export const APPROVE_SEND_BACK_COMPONENT = standard('ApproveSendBack', '退回流程', '将流程退回到指定节点', {
|
|
373
|
+
workflowPath: { required: true, description: '真实工作流 Browser 对象数组。', valueType: 'array' }, requestId: formulaParam('关联流程实例 ID。', true), rejectToNodeId: { required: true, description: '真实退回目标节点 Browser 对象数组。', valueType: 'array' }, rejectType: { required: false, default: '0', description: '退回方式。', valueType: 'enum' }, requestName: formulaParam('流程标题。'), secLevel: { required: false, default: '0', description: '安全级别。', valueType: 'enum' }, requestLevel: { required: false, default: '-1', description: '紧急程度。', valueType: 'enum' }, operator: personParam('操作者。', true), remark: formulaParam('签字意见。'), odocId: formulaParam('公文 ID。'), dataId: formulaParam('关联卡片数据 ID。'), mapping: { required: false, description: '流程表单字段映射。', valueType: 'object' }, constants: { required: false, description: '流程表单固定值。', valueType: 'object' }, detail: { required: false, description: '明细字段映射。', valueType: 'array' },
|
|
374
|
+
}, { mapping: '_setting_mapping', constants: '_setting_constants', detail: '_setting_detail', module: 'module', rejectType: 'rejectType', secLevel: 'secLevel', requestLevel: 'requestLevel' }, { ebActionId: '-1', type: 'ApproveSendBack', module: 'workflow', rejectType: '0', secLevel: '0', requestLevel: '-1' });
|
|
375
|
+
APPROVE_SEND_BACK_COMPONENT.formDataPayload = { fieldsMetaKey: '_bizFields' };
|
|
376
|
+
export const APPROVE_COMPLETELY_DELETE_COMPONENT = standard('ApproveCompletelyDelete', '彻底删除流程', '将回收站的流程彻底删除', {
|
|
377
|
+
requestIds: { required: true, description: '要彻底删除的流程实例 ID 公式数组。', valueType: 'array' }, operator: personParam('操作者。', true),
|
|
378
|
+
}, {}, { ebActionId: '-1', type: 'ApproveCompletelyDelete' });
|
|
379
|
+
export const WORKFLOW_TO_DOC_COMPONENT = standard('WorkflowToDoc', '流程存为文档', '流程内容以附件的形式存放在文档中', {
|
|
380
|
+
workflowPath: { required: true, description: '真实工作流 Browser 对象;编译时写入 workflowPathBrowser。', valueType: 'platform_reference', referenceType: 'workflow', valueShape: 'object' },
|
|
381
|
+
requestId: formulaParam('要存档的流程实例 ID。', true),
|
|
382
|
+
operator: personParam('执行存档的操作人。', true),
|
|
383
|
+
toDocSettings: { required: true, description: '真实流程存文档设置。固定目录必须包含 saveDirectoryBrowserValue 的文档目录 Browser 对象。', valueType: 'object' },
|
|
384
|
+
}, { module: 'module' }, { ebActionId: '-1', type: 'WorkflowToDoc', module: 'workflow' });
|
|
385
|
+
export const APPROVE_ENTRUST_COMPONENT = standard('ApproveEntrust', '委托流程', '将某人的流程委托给另一人代办', {
|
|
386
|
+
operator: personParam('执行委托的操作人。', true),
|
|
387
|
+
entrustUser: personParam('被委托人(委托人)。', true),
|
|
388
|
+
consignee: personParam('受托人。', true),
|
|
389
|
+
identityId: { required: true, description: '委托人身份 ID;必须由当前租户的委托身份接口实际返回,不能猜测。', valueType: 'string' },
|
|
390
|
+
entrustType: { required: true, description: '委托范围:1全部、2工作流类型、3工作流、4节点。', valueType: 'enum', options: [{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' }] },
|
|
391
|
+
approveType: { required: false, description: 'entrustType=2 时的真实流程类型 Browser 对象数组。', valueType: 'array' },
|
|
392
|
+
approveId: { required: false, description: 'entrustType=3 时的真实流程 Browser 对象数组。', valueType: 'array' },
|
|
393
|
+
nodeId: { required: false, description: 'entrustType=4 时的真实节点 Browser 对象数组。', valueType: 'array' },
|
|
394
|
+
entrustWfBoot: { required: false, description: '是否委托流程发起。', valueType: 'boolean' },
|
|
395
|
+
entrustBootSubApprove: { required: false, description: '是否委托发起子流程。', valueType: 'boolean' },
|
|
396
|
+
entrustWfHandle: { required: false, description: '是否委托流程处理。', valueType: 'boolean' },
|
|
397
|
+
entrustSpecifyType: { required: false, description: '指定操作类型。', valueType: 'enum' },
|
|
398
|
+
entrustApproveType: { required: false, description: '指定操作类型的真实 Browser 对象数组。', valueType: 'array' },
|
|
399
|
+
entrustTodoApprove: { required: false, description: '是否委托已有待办流程。', valueType: 'boolean' },
|
|
400
|
+
remark: formulaParam('委托说明。'), startTime: formulaParam('开始时间。'), endTime: formulaParam('结束时间。'),
|
|
401
|
+
}, { module: 'module' }, { ebActionId: '-1', type: 'ApproveEntrust', module: 'workflow' });
|
|
402
|
+
export const workflowCompilers = Object.fromEntries(['ApproveSave', 'ApproveMandatoryArchiving', 'ApproveCommit', 'ApproveDelete', 'ApproveDoCirculate', 'ApproveDoForward', 'ApproveDoTurnTodo', 'ApproveConsulTurnTodo', 'ApproveManualCC', 'ApproveAddSign', 'ApproveAgreeRejectApply', 'ApproveRefuseRejectApply', 'ApproveRejectApply', 'ApproveWithdraw', 'ApproveShareEntry', 'ApproveSendBack', 'ApproveCompletelyDelete', 'WorkflowToDoc', 'ApproveEntrust', 'ApproveIntervention', 'WorkFlowDocEmpowerment'].map((type) => [type, (draft, ctx) => workflowActionCompiler(type, draft, ctx)]));
|
|
403
|
+
//# sourceMappingURL=workflow_actions.js.map
|