weaver-work-cli 0.1.29 → 0.1.32
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/chunks/archive-UMGX72K6.js +2537 -0
- package/dist/chunks/archive-oa-N2IYBLF3.js +1317 -0
- package/dist/chunks/asset-GLEGKFG5.js +2109 -0
- package/dist/chunks/attachment-content-AQNX5N3S.js +23 -0
- package/dist/chunks/blog-E44OTVDA.js +2157 -0
- package/dist/chunks/caizhilian-DQUFZXZL.js +10087 -0
- package/dist/chunks/calendar-JKPIRKFD.js +1195 -0
- package/dist/chunks/chunk-2GA5ZIQL.js +1615 -0
- package/dist/chunks/chunk-4YC43QQ4.js +403 -0
- package/dist/chunks/chunk-6EFWDL7Y.js +161 -0
- package/dist/chunks/chunk-6RKD4DRZ.js +5556 -0
- package/dist/chunks/chunk-AJ62BGAW.js +29 -0
- package/dist/chunks/chunk-BUSC6UAE.js +43 -0
- package/dist/chunks/chunk-C6R3B2ML.js +358 -0
- package/dist/chunks/chunk-CVZ2JOSW.js +62 -0
- package/dist/chunks/chunk-DW6AUUKS.js +508 -0
- package/dist/chunks/chunk-E4Z23GHM.js +6962 -0
- package/dist/chunks/chunk-EG6ZU444.js +654 -0
- package/dist/chunks/chunk-EZALDOQH.js +383 -0
- package/dist/chunks/chunk-FMPJJYYI.js +106 -0
- package/dist/chunks/chunk-G2JSIUWF.js +769 -0
- package/dist/chunks/chunk-G3QJULO2.js +387 -0
- package/dist/chunks/chunk-GCG2NMWR.js +703 -0
- package/dist/chunks/chunk-GPMFD4RD.js +75 -0
- package/dist/chunks/chunk-H6XSTSLM.js +2357 -0
- package/dist/chunks/chunk-H7J4DC5R.js +464 -0
- package/dist/chunks/chunk-IURUFGZK.js +477 -0
- package/dist/chunks/chunk-LUSPKZKY.js +53 -0
- package/dist/chunks/chunk-NIAJ5ZCG.js +73 -0
- package/dist/chunks/chunk-NOODWMCL.js +584 -0
- package/dist/chunks/chunk-OOUTBLZ4.js +51 -0
- package/dist/chunks/chunk-P26ZWSKU.js +73 -0
- package/dist/chunks/chunk-QWY6PGL6.js +3472 -0
- package/dist/chunks/chunk-WKI2FBIQ.js +15606 -0
- package/dist/chunks/chunk-WSKBSQ2U.js +231 -0
- package/dist/chunks/chunk-YLCYX7LE.js +371 -0
- package/dist/chunks/chunk-YRVDW4WN.js +205 -0
- package/dist/chunks/chunk-ZEDWSH32.js +68 -0
- package/dist/chunks/continuation-2CKSBLA6.js +11 -0
- package/dist/chunks/continuation-HZIZRZBX.js +13 -0
- package/dist/chunks/continuation-NLECEJPX.js +11 -0
- package/dist/chunks/ebuilder-form-V5FG2EHC.js +2276 -0
- package/dist/chunks/ehr-HMFY6VIL.js +5241 -0
- package/dist/chunks/employee-SAK2QYXX.js +11 -0
- package/dist/chunks/esb-ZYSVB7SG.js +141 -0
- package/dist/chunks/fna-B7RKPAZD.js +1444 -0
- package/dist/chunks/host-45WED2KK.js +21 -0
- package/dist/chunks/host-I4Z6BFYX.js +23 -0
- package/dist/chunks/host-KNZ52LJZ.js +17 -0
- package/dist/chunks/host-OCH2BCCV.js +19 -0
- package/dist/chunks/hrm-2KAZGUHI.js +244 -0
- package/dist/chunks/im-ACJJWH4U.js +252 -0
- package/dist/chunks/invoice-ZK3WCX2U.js +5179 -0
- package/dist/chunks/jiuchuanhui-5PQD3IL2.js +1940 -0
- package/dist/chunks/lazy-dispatch-JQXBW3GM.js +28 -0
- package/dist/chunks/mail-S2HDDXO2.js +2695 -0
- package/dist/chunks/meeting-QVN3I37L.js +504 -0
- package/dist/chunks/msg-parse-4GSQ2WTO.js +41 -0
- package/dist/chunks/okr-QNG4VC2Q.js +2482 -0
- package/dist/chunks/plan-A25EMW6U.js +2025 -0
- package/dist/chunks/project-G6XV66DZ.js +1361 -0
- package/dist/chunks/registry-2VLUAESA.js +14 -0
- package/dist/chunks/registry-7C5UMIPL.js +19 -0
- package/dist/chunks/registry-DC6KR3NH.js +18 -0
- package/dist/chunks/registry-NYPYMZXG.js +16 -0
- package/dist/chunks/registry-TI3CIUXF.js +19 -0
- package/dist/chunks/room-recommend-WRTHO6Y2.js +20 -0
- package/dist/chunks/schedule-KFIITGSK.js +24 -0
- package/dist/chunks/state-Y2XBP6YE.js +15 -0
- package/dist/chunks/workflow-DJ7SYWAF.js +245 -0
- package/dist/cmd/argv.js +45 -0
- package/dist/cmd/docs/index.js +3 -3
- package/dist/cmd/lazy-dispatch.js +20 -0
- package/dist/cmd/root.js +2 -4
- package/dist/cmd/setup/index.js +2 -2
- package/dist/cmd/skills/index.js +2 -2
- package/dist/core/package-paths.js +61 -0
- package/dist/index.js +163 -7
- package/dist/internal/e10/auth/xiaoe.js +3 -3
- package/dist/internal/e10/request-runtime.js +18 -62
- package/dist/internal/skills/detector.js +2 -2
- package/dist/shortcuts/contract/data/performance-catalog.js +1306 -0
- package/dist/shortcuts/contract/host.js +91 -35
- package/dist/shortcuts/contract/index.js +213 -0
- package/dist/shortcuts/contract/manifest.js +928 -0
- package/dist/shortcuts/contract/ooxml/docx.js +295 -0
- package/dist/shortcuts/contract/ooxml/xlsx.js +221 -0
- package/dist/shortcuts/contract/ooxml/zip.js +158 -0
- package/dist/shortcuts/contract/operations/assistant.js +1156 -0
- package/dist/shortcuts/contract/operations/clause-library.js +522 -0
- package/dist/shortcuts/contract/operations/compare.js +193 -0
- package/dist/shortcuts/contract/operations/credit-page.js +34 -0
- package/dist/shortcuts/contract/operations/flow.js +98 -0
- package/dist/shortcuts/contract/operations/page.js +66 -0
- package/dist/shortcuts/contract/operations/performance.js +733 -0
- package/dist/shortcuts/contract/operations/quote.js +557 -0
- package/dist/shortcuts/contract/operations/recommend.js +78 -0
- package/dist/shortcuts/contract/operations/registry.js +18 -0
- package/dist/shortcuts/contract/operations/review.js +83 -0
- package/dist/shortcuts/contract/operations/shared.js +37 -0
- package/dist/shortcuts/contract/operations/upload.js +108 -0
- package/dist/shortcuts/contract/operations/write.js +3 -2
- package/dist/shortcuts/index.js +140 -40
- package/dist/shortcuts/invoice/manifest.js +34 -11
- package/dist/shortcuts/invoice/operations/reim-auto.js +9 -0
- package/dist/shortcuts/invoice/operations/reim.js +81 -5
- package/dist/shortcuts/invoice/operations/shared.js +12 -5
- package/dist/shortcuts/meeting/host.js +45 -3
- package/dist/shortcuts/meeting/invitation/docx.js +442 -0
- package/dist/shortcuts/meeting/operations/attachment-content.js +418 -0
- package/dist/shortcuts/meeting/operations/attachment.js +442 -0
- package/dist/shortcuts/meeting/operations/eb/cache.js +57 -0
- package/dist/shortcuts/meeting/operations/eb/catalog.js +343 -28
- package/dist/shortcuts/meeting/operations/eb/conflict.js +372 -11
- package/dist/shortcuts/meeting/operations/eb/create-flow.js +710 -0
- package/dist/shortcuts/meeting/operations/eb/decision.js +47 -1
- package/dist/shortcuts/meeting/operations/eb/factory.js +129 -11
- package/dist/shortcuts/meeting/operations/eb/index.js +122 -2
- package/dist/shortcuts/meeting/operations/eb/room-recommend.js +378 -0
- package/dist/shortcuts/meeting/operations/eb/room-summary.js +84 -0
- package/dist/shortcuts/meeting/operations/eb/schedule.js +450 -0
- package/dist/shortcuts/meeting/operations/from-group-chat.js +576 -0
- package/dist/shortcuts/meeting/operations/invitation.js +458 -0
- package/dist/shortcuts/meeting/operations/minute-content.js +266 -0
- package/dist/shortcuts/meeting/operations/pipeline.js +489 -0
- package/dist/shortcuts/meeting/operations/qrcode.js +131 -0
- package/dist/shortcuts/meeting/operations/receipts.js +1 -1
- package/dist/shortcuts/meeting/operations/registry.js +18 -0
- package/dist/shortcuts/meeting/operations/summary.js +276 -0
- package/dist/shortcuts/meeting/operations/task-notify.js +325 -0
- package/dist/shortcuts/meeting/operations.js +42 -1
- package/dist/shortcuts/meeting/qr/encoder.js +427 -0
- package/dist/shortcuts/meeting/qr/render.js +103 -0
- package/dist/shortcuts/workflow/operations/form.js +17 -5
- package/docs/contract.md +39 -4
- package/docs/invoice.md +5 -5
- package/package.json +3 -2
- package/scripts/bundle.mjs +63 -0
- package/skill-template/business-info.json +25 -4
- package/skill-template/domains/jinchengda.md +16 -3
- package/skill-template/domains/yepiaotong.md +1 -1
- package/skills/weaver-e10-jinchengda/SKILL.md +111 -31
- package/skills/weaver-e10-jinchengda/references/contract-agent-entry.md +7 -13
- package/skills/weaver-e10-jinchengda/references/contract-ai-assistant.md +150 -0
- package/skills/weaver-e10-jinchengda/references/contract-ai-review.md +87 -0
- package/skills/weaver-e10-jinchengda/references/contract-clause-library-crud.md +111 -0
- package/skills/weaver-e10-jinchengda/references/contract-clause-recommender.md +0 -15
- package/skills/weaver-e10-jinchengda/references/contract-clause-reference-save.md +0 -13
- package/skills/weaver-e10-jinchengda/references/contract-credit-page.md +50 -0
- package/skills/weaver-e10-jinchengda/references/contract-disabled-capabilities.md +4 -2
- package/skills/weaver-e10-jinchengda/references/contract-doc-compare.md +74 -0
- package/skills/weaver-e10-jinchengda/references/contract-flow-launch.md +84 -0
- package/skills/weaver-e10-jinchengda/references/contract-performance-query.md +29 -0
- package/skills/weaver-e10-jinchengda/references/contract-quote-to-contract.md +28 -0
- package/skills/weaver-e10-jinchengda/references/contract-request-status.md +2 -21
- package/skills/weaver-e10-jinchengda/references/contract-request-write.md +0 -24
- package/skills/weaver-e10-jinchengda/references/contract-signing-subjects.md +0 -15
- package/skills/weaver-e10-jinchengda/references/contract-subject-create.md +0 -17
- package/skills/weaver-e10-jinchengda/references/contract-template-recommend.md +70 -0
- package/skills/weaver-e10-jinchengda/references/contract-template-selector.md +0 -15
- package/skills/weaver-e10-jinchengda/references/contract-workflow-discovery.md +0 -15
- package/skills/weaver-e10-jinchengda/references/source-manifest.json +1168 -152
- package/skills/weaver-e10-meeting/SKILL.md +493 -17
- package/skills/weaver-e10-meeting/references/meeting-change.md +4 -4
- package/skills/weaver-e10-meeting/references/meeting-create.md +6 -6
- package/skills/weaver-e10-meeting/references/meeting-eb.md +503 -27
- package/skills/weaver-e10-meeting/references/meeting-invitation.md +113 -0
- package/skills/weaver-e10-meeting/references/meeting-lifecycle.md +6 -6
- package/skills/weaver-e10-meeting/references/meeting-minute-file.md +425 -0
- package/skills/weaver-e10-meeting/references/meeting-queries.md +4 -4
- package/skills/weaver-e10-meeting/references/meeting-receipts-signs.md +15 -15
- package/skills/weaver-e10-meeting/references/meeting-verification.md +19 -11
- package/skills/weaver-e10-meeting.zip +0 -0
- package/skills/weaver-e10-yepiaotong/SKILL.md +9 -5
- package/skills/weaver-e10-yepiaotong/references/invoice-enterprise-list.md +1 -1
- package/skills/weaver-e10-yepiaotong/references/invoice-personal-list.md +6 -5
- package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +14 -11
- package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +97 -56
- package/skills/weaver-e10-yepiaotong/references/reim-examples.md +84 -60
- package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +142 -105
- package/skills/weaver-e10-yepiaotong/references/reim-matching-rules.md +53 -194
- package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +7 -7
- package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +164 -72
- package/skills/weaver-e10-yepiaotong/references/source-manifest.json +6 -0
- package/templates/meeting/invitation.docx +0 -0
|
@@ -14,11 +14,28 @@
|
|
|
14
14
|
* - 写操作日期字段统一 `yyyy-MM-dd HH:mm`(不带秒);create 不传 id,update/delete 必传 id。
|
|
15
15
|
*/
|
|
16
16
|
import { summarizeReceiptRows, summarizeSignRows } from './attendance-summary.js';
|
|
17
|
+
import { summarizeRoomRows } from './room-summary.js';
|
|
17
18
|
import { summarizeTaskProgress } from './task-progress.js';
|
|
19
|
+
/**
|
|
20
|
+
* 建会/变更可写字段。
|
|
21
|
+
*
|
|
22
|
+
* 2026-10-26 依据用户更新的 `query_mtDetail_info` / `query_mtDetail_list`(各 50 个字段)补齐:
|
|
23
|
+
* 此前 CREATE 只开放 17 个、CHANGE 缺 3 个,导致 `customize_address` / `other_remark` /
|
|
24
|
+
* `attending_units` / `reporting_unit` 这类字段**根本传不进来**(CLI schema 直接拒绝未知字段,
|
|
25
|
+
* 而内部 handler 会按本清单过滤 —— 两种表现都让人以为"字段不支持")。
|
|
26
|
+
*
|
|
27
|
+
* 排除的是系统维护字段:id / creator / create_time / update_time / updater / data_status /
|
|
28
|
+
* agenda_id(关联日程)/ imchat_groupid(群聊 id)/ qr_code(二维码)/ name(用 mt_name)。
|
|
29
|
+
*/
|
|
18
30
|
const MEETING_FIELDS_CREATE = [
|
|
19
31
|
'mt_creator', 'mt_name', 'begin_datetime', 'end_datetime', 'mt_status', 'operate_type',
|
|
20
32
|
'is_decision', 'mt_type', 'caller', 'contacter', 'mt_format', 'mt_desc', 'mt_hours',
|
|
21
|
-
'address', 'org_members', 'hrm_members', 'total_member',
|
|
33
|
+
'address', 'customize_address', 'org_members', 'hrm_members', 'total_member',
|
|
34
|
+
'inviters', 'topic_presenter', 'project', 'mt_address_hrms', 'quicktimedesc',
|
|
35
|
+
'video_url', 'with_secauth', 'project_files', 'mt_accessorys',
|
|
36
|
+
'all_day', 'other_members', 'crm_members', 'crm_total_member',
|
|
37
|
+
'next_occur_date', 'repeat_status', 'repeat_id', 'request_id',
|
|
38
|
+
'attend_user', 'attending_units', 'reporting_user', 'reporting_unit', 'other_remark',
|
|
22
39
|
];
|
|
23
40
|
const MEETING_FIELDS_CHANGE = [
|
|
24
41
|
'id', 'operate_type', 'mt_creator', 'inviters', 'topic_presenter', 'project', 'mt_address_hrms',
|
|
@@ -27,8 +44,51 @@ const MEETING_FIELDS_CHANGE = [
|
|
|
27
44
|
'begin_datetime', 'end_datetime', 'all_day', 'mt_hours', 'address', 'customize_address',
|
|
28
45
|
'org_members', 'hrm_members', 'total_member', 'other_members', 'crm_members', 'crm_total_member',
|
|
29
46
|
'next_occur_date', 'repeat_status', 'repeat_id', 'request_id', 'mt_status',
|
|
30
|
-
'attend_user', 'reporting_user',
|
|
47
|
+
'attend_user', 'attending_units', 'reporting_user', 'reporting_unit', 'other_remark',
|
|
48
|
+
];
|
|
49
|
+
/**
|
|
50
|
+
* 议题表(`uf_mt_topic`)字段 —— 依据用户 2026-10-27 最新接口文档
|
|
51
|
+
* (`RestfulDocumentation (14)`:`query_mt_topic_info_new` / `update_mt_topic_info_new`)。
|
|
52
|
+
*
|
|
53
|
+
* ⚠️ **2026-10-27 17:50 起,旧的 `*_info` / `*_count` 接口已被官方废弃**,改用 `*_new`:
|
|
54
|
+
* - 详情 `query_mt_topic_info_new`、更新 `update_mt_topic_info_new`、
|
|
55
|
+
* 删除 `delete_mt_topic_info_new`、计数 `query_mt_topic_count_new`;
|
|
56
|
+
* - 新接口只认**新版表单字段**(`topic_title` / `remark` / `urgency` …),
|
|
57
|
+
* 不再有老版的 `relate_topic` / `topic_no` / `start_time` 等(传了报"该字段不存在")。
|
|
58
|
+
*
|
|
59
|
+
* 故 update 白名单已收敛为新版字段;老环境(未发布 *_new 的租户)需回退到旧版本 CLI。
|
|
60
|
+
*/
|
|
61
|
+
const TOPIC_FIELDS_V2 = [
|
|
62
|
+
'topic_title', 'topic_presenter', 'allow_repeat', 'urgency', 'topic_type', 'topic_num',
|
|
63
|
+
'proposal_person', 'proposal_dept', 'proposal_date', 'related_materials', 'topic_status',
|
|
64
|
+
'tel', 'remark', 'topic_content', 'topic_text', 'request_id', 'mt_id', 'attend_num',
|
|
65
|
+
];
|
|
66
|
+
/**
|
|
67
|
+
* 会议表单「议题明细」子表(detail1 = 1325287827952886000,showDetailName=会议议题)。
|
|
68
|
+
*
|
|
69
|
+
* 字段 dataKey 取自 `ebuilder-form.fields.get --objId 1325287827952885791`
|
|
70
|
+
* (`fields[].config.dataKey`,2026-10-27 真机读取)。注意:
|
|
71
|
+
* - 这里的 `relate_topic` / `topic_no` / `start_time` 属于**会议明细表**,
|
|
72
|
+
* 与议题库表 `uf_mt_topic` 已废弃的同名字段**不是一回事**,传了不会报"字段不存在"。
|
|
73
|
+
* - `duration`(计划时长)是 Number,单位**分钟**——这是议题时长唯一能落正式字段的地方
|
|
74
|
+
* (议题库表 `uf_mt_topic` 没有时长字段,只能写 remark)。
|
|
75
|
+
* - `topic_status`:0 待开始 / 1 进行中 / 2 已结束;`is_open`(公开)标注"暂不支持"。
|
|
76
|
+
*/
|
|
77
|
+
const MEETING_TOPIC_DETAIL = [
|
|
78
|
+
{
|
|
79
|
+
node: 'detail1',
|
|
80
|
+
fields: [
|
|
81
|
+
'relate_topic', 'topic_no', 'topic_type', 'topic_subject', 'topic_presenter', 'topic_hrmid',
|
|
82
|
+
'duration', 'start_time', 'end_time', 'topic_materials', 'topic_status', 'is_open',
|
|
83
|
+
'attend_user', 'attending_units', 'reporting_user', 'reporting_unit',
|
|
84
|
+
],
|
|
85
|
+
dateFields: ['start_time', 'end_time'],
|
|
86
|
+
enumFields: { topic_status: ['0', '1', '2'], is_open: ['0', '1'] },
|
|
87
|
+
purpose: '议题明细:每条 = 一个议题(duration 计划时长,单位分钟)',
|
|
88
|
+
},
|
|
31
89
|
];
|
|
90
|
+
const TOPIC_FIELDS_CREATE = [...TOPIC_FIELDS_V2];
|
|
91
|
+
const TOPIC_FIELDS_UPDATE = ['id', ...TOPIC_FIELDS_V2];
|
|
32
92
|
/**
|
|
33
93
|
* 签到字段(2026-09-21 按最新接口文档 `RestfulDocumentation (6)` 补全)。
|
|
34
94
|
* 原清单缺 `map_typeback` / `signback_longitude` / `signback_latitude` / `external_*` 7 个字段,
|
|
@@ -74,7 +134,19 @@ export const EB_ENDPOINTS = [
|
|
|
74
134
|
operation: 'meeting.eb.meeting.detail',
|
|
75
135
|
kind: 'detail',
|
|
76
136
|
interfacePk: 'query_mtDetail_info',
|
|
77
|
-
summary: 'EB 版会议详情(query_mtDetail_info,body 顶层 mainTable 传 id
|
|
137
|
+
summary: 'EB 版会议详情(query_mtDetail_info,body 顶层 mainTable 传 id):主表 50 字段 + detail1 议题明细',
|
|
138
|
+
notes: [
|
|
139
|
+
'✅ 2026-10-28 起返回体含 `details.detail1`(会议议题明细行:topic_no / topic_subject / topic_presenter / '
|
|
140
|
+
+ 'duration / start_time / end_time / topic_status 等)——接口配置了返回明细,此前 CLI 误丢弃了行内 mainTable '
|
|
141
|
+
+ '以外的节点,现已原样透出到 `data.details`。',
|
|
142
|
+
'`relate_topic` 在明细行里**回显为标题文本**(eBuilder 关联字段行为),写时传议题库 id。',
|
|
143
|
+
'明细行 `topic_status` 是**会中进度**语义:0 待开始 / 1 进行中 / 2 已结束——与议题库的 '
|
|
144
|
+
+ '1 呈批中 / 2 待上会 / 3 已上会是两套取值,不要混用。',
|
|
145
|
+
'要确认"会议挂了哪些议题",优先用本接口的 `details.detail1`;`meeting.eb.topic.list` 传 `mt_id` '
|
|
146
|
+
+ '是「议题库 → 会议」的反向关联,可作交叉验证。',
|
|
147
|
+
'⚠️ 主表 `topic_presenter` / `attend_user` / `reporting_user` 等「汇总明细」字段由**页面保存**时回写,'
|
|
148
|
+
+ '走接口写 detail1 **不会**刷新它们。它们为空的**不能**证明"明细没写进去"(2026-10-27 差点据此误判)。',
|
|
149
|
+
],
|
|
78
150
|
},
|
|
79
151
|
{
|
|
80
152
|
domain: 'meeting',
|
|
@@ -84,10 +156,12 @@ export const EB_ENDPOINTS = [
|
|
|
84
156
|
fields: MEETING_FIELDS_CREATE,
|
|
85
157
|
requiredFields: ['mt_creator', 'mt_name', 'begin_datetime', 'end_datetime', 'mt_status', 'operate_type'],
|
|
86
158
|
dateFields: ['begin_datetime', 'end_datetime'],
|
|
159
|
+
details: MEETING_TOPIC_DETAIL,
|
|
87
160
|
summary: 'EB 版新建会议(create_meeting):datas[].mainTable 传字段,不传 id',
|
|
88
161
|
notes: [
|
|
89
162
|
'caller/contacter 未指明时默认当前操作人。',
|
|
90
163
|
'mt_hours 由 CLI 按 begin/end 自动计算(小时,支持小数)。',
|
|
164
|
+
'detail1 = 议题明细,创建时即可一并写入(每条一个议题,duration 单位分钟)。',
|
|
91
165
|
],
|
|
92
166
|
},
|
|
93
167
|
{
|
|
@@ -100,8 +174,21 @@ export const EB_ENDPOINTS = [
|
|
|
100
174
|
dateFields: ['begin_datetime', 'end_datetime', 'next_occur_date'],
|
|
101
175
|
// 主键必须走 URL(updateFormData 端点统一要求,2026-09-21 真机实测)
|
|
102
176
|
pkQueryParam: 'id',
|
|
177
|
+
details: MEETING_TOPIC_DETAIL,
|
|
178
|
+
// 议题明细支持整组替换:变更会议时用 detail1Mode=cover 可避免重复追加
|
|
179
|
+
detailCover: true,
|
|
103
180
|
summary: 'EB 版变更会议(change_meeting):必传 id + operate_type;取消会议也用本接口',
|
|
104
|
-
notes: [
|
|
181
|
+
notes: [
|
|
182
|
+
'变更用 CHANGE;取消用 CANCEL 并置 mt_status=4。',
|
|
183
|
+
'⛔ detail1 默认「追加」不是覆盖:重复执行会多出题目行。要替换整组议题必须传 `detail1Mode: "cover"`。',
|
|
184
|
+
'只挂议题、不动会议其它字段时:传 id + operate_type=CHANGE + detail1 即可。',
|
|
185
|
+
'★ detail1 字段口径:`relate_topic` 必须存**议题库 id**(跨表单关联键,不是标题文本);'
|
|
186
|
+
+ '`topic_subject` / `topic_no` 是文本;`duration` 单位分钟(Number);'
|
|
187
|
+
+ '`start_time` / `end_time` 为 `yyyy-MM-dd HH:mm`,由会议开始时间按各议题时长顺次推算。',
|
|
188
|
+
'⚠️ 本接口只回 `dataIds` + `status:true`,**不回写、也无法回读明细**(见 `meeting.eb.meeting.detail` 的说明)。'
|
|
189
|
+
+ '服务端对明细字段**不做校验**(传不存在的字段也返回成功),所以"返回 true"≠"明细已落库"。',
|
|
190
|
+
'⛔ 写 detail1 会**重置议题的 mt_id**(ESB 联动副作用):正确顺序是「先写 detail1 → 再用 `meeting.eb.topic.update` 补回 mt_id」。',
|
|
191
|
+
],
|
|
105
192
|
},
|
|
106
193
|
{
|
|
107
194
|
domain: 'meeting',
|
|
@@ -117,8 +204,13 @@ export const EB_ENDPOINTS = [
|
|
|
117
204
|
interfacePk: 'query_meeting_room_list',
|
|
118
205
|
countPk: 'query_meeting_room_count',
|
|
119
206
|
queryParams: ['manager', 'departmentId', 'mr_type', 'room_attr'],
|
|
120
|
-
|
|
121
|
-
|
|
207
|
+
summarizeRows: summarizeRoomRows,
|
|
208
|
+
summary: 'EB 版会议室列表(query_meeting_room_list + count):自带 statusText 与状态字典',
|
|
209
|
+
notes: [
|
|
210
|
+
'**status:`0` = 正常(可用)、`1` = 封存(不可用)** —— 不是"启用/停用",`0` 才是正常。',
|
|
211
|
+
'明细在 `data.progress.items[]`:`statusText` 已把编码翻成中文,`summary.unusable` 直接列出不可用的房间名;需要原始编码时看 `status`。',
|
|
212
|
+
'room_attr:0实体/1虚拟/2组合(`progress.legend.roomAttr` 同源)。',
|
|
213
|
+
],
|
|
122
214
|
},
|
|
123
215
|
{
|
|
124
216
|
domain: 'room',
|
|
@@ -133,9 +225,17 @@ export const EB_ENDPOINTS = [
|
|
|
133
225
|
kind: 'create',
|
|
134
226
|
interfacePk: 'create_room',
|
|
135
227
|
fields: ROOM_FIELDS,
|
|
136
|
-
requiredFields: ['room_name', 'hrm_ids', 'org_id'
|
|
137
|
-
|
|
138
|
-
|
|
228
|
+
requiredFields: ['room_name', 'hrm_ids', 'org_id'],
|
|
229
|
+
// 漏传 status 会落成「封存」(接口配置默认值),等于建了一间用不了的会议室。
|
|
230
|
+
fieldDefaults: { status: '0', room_attr: '0' },
|
|
231
|
+
summary: 'EB 版新建会议室(create_room):必填 room_name / hrm_ids / org_id;status 默认「正常」',
|
|
232
|
+
notes: [
|
|
233
|
+
'**status 是 Select:`0` = 正常、`1` = 封存**(不是"启用/停用")。'
|
|
234
|
+
+ 'CLI 在未传时自动补 `0`,避免建出"封存"的会议室(2026-10-27 真机踩到过)。',
|
|
235
|
+
'`room_attr` 同理默认 `0`(实体):0实体 / 1虚拟 / 2组合;漏传会让列表里属性为空。',
|
|
236
|
+
'equipments:0电视/1电话/2投影仪/3白板/4视频会议,逗号分隔。',
|
|
237
|
+
'⛔ 不要把 `status=0` 读成"停用/禁用":`0` 才是正常可用,`1` 才是封存不可用。',
|
|
238
|
+
],
|
|
139
239
|
},
|
|
140
240
|
{
|
|
141
241
|
domain: 'room',
|
|
@@ -186,7 +286,14 @@ export const EB_ENDPOINTS = [
|
|
|
186
286
|
operation: 'meeting.eb.roomUsage.delete',
|
|
187
287
|
kind: 'delete',
|
|
188
288
|
interfacePk: 'delete_roomusage',
|
|
189
|
-
|
|
289
|
+
// ⚠️ 按会议批量删,不是按 id
|
|
290
|
+
batchDeleteFields: ['mt_id'],
|
|
291
|
+
summary: 'EB 版删除会议室占用(delete_roomusage):按 mt_id **批量删除该会议的全部占用**(不是按 id)',
|
|
292
|
+
notes: [
|
|
293
|
+
'2026-10-27 真机:传 `id` 报「批量操作数据条件不能为空」;传 `mt_id` 成功,'
|
|
294
|
+
+ '并删掉该会议下的**所有**占用(一次删了 2 条)。取消会议释放占用就是走这个语义。',
|
|
295
|
+
'只想去掉某一条占用,目前没有按 id 的接口 —— 要么整会重排,要么页面操作。',
|
|
296
|
+
],
|
|
190
297
|
},
|
|
191
298
|
{
|
|
192
299
|
domain: 'sign',
|
|
@@ -304,7 +411,89 @@ export const EB_ENDPOINTS = [
|
|
|
304
411
|
countPk: 'query_meeting_minute_count',
|
|
305
412
|
queryParams: ['mt_id'],
|
|
306
413
|
summary: 'EB 版会议纪要列表(query_meeting_minute_list + count,按 mt_id 查)',
|
|
307
|
-
notes: [
|
|
414
|
+
notes: [
|
|
415
|
+
'纪要从 2026-10-23 起已有自定义写接口:create_mt_minute / update_mt_minute / delete_mt_minute(不再是只能走 OpenAPI)。',
|
|
416
|
+
'列表接口(受控)现返回 `minutes_content`(纪要文案)与 `parse_content`(内容解析)等全部字段——2026-10-23 用户更新接口后实测可读。',
|
|
417
|
+
'⚠️ 该接口是**受控接口**:只返回当前账号有权看到的纪要。',
|
|
418
|
+
'主表字段:mt_minutes_subject(标题)/ minutes_content / parse_content / mt_minutes_no(编号,自动生成)/ file_type / doc_file / video_file / minutes_status / video_taskId / video_taskResult / mt_minutes_ai_page。',
|
|
419
|
+
],
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
domain: 'minute',
|
|
423
|
+
operation: 'meeting.eb.minute.detail',
|
|
424
|
+
kind: 'detail',
|
|
425
|
+
interfacePk: 'query_mt_minute_info',
|
|
426
|
+
summary: 'EB 版会议纪要详情(query_mt_minute_info,body 顶层 mainTable 传 id)',
|
|
427
|
+
notes: [
|
|
428
|
+
'id = 纪要 id(minute.list 的 rows[].mainTable.id 或 create 返回的 dataIds[0])。',
|
|
429
|
+
'需要单条纪要的完整内容(含 minutes_content / parse_content 全文)时用它,比 list 更直接。',
|
|
430
|
+
],
|
|
431
|
+
},
|
|
432
|
+
// ---------------------------------------------------------------------------
|
|
433
|
+
// 会议纪要写操作(2026-10-23 用户新增自定义接口,来源:RestfulDocumentation (7))
|
|
434
|
+
// ---------------------------------------------------------------------------
|
|
435
|
+
{
|
|
436
|
+
domain: 'minute',
|
|
437
|
+
operation: 'meeting.eb.minute.create',
|
|
438
|
+
kind: 'create',
|
|
439
|
+
interfacePk: 'create_mt_minute',
|
|
440
|
+
fields: [
|
|
441
|
+
'id', 'mt_id', 'minutes_content', 'mt_minutes_ai_page', 'parse_content', 'mt_minutes_no',
|
|
442
|
+
'mt_minutes_subject', 'video_mt_id', 'begin_datetime', 'end_datetime', 'hrm_members',
|
|
443
|
+
'org_members', 'mt_minutes', 'file_type', 'doc_file', 'video_file',
|
|
444
|
+
'minutes_status', 'video_taskId', 'video_taskResult',
|
|
445
|
+
],
|
|
446
|
+
requiredFields: ['mt_id', 'mt_minutes_subject'],
|
|
447
|
+
dateFields: ['begin_datetime', 'end_datetime'],
|
|
448
|
+
summary: 'EB 版新建会议纪要(create_mt_minute):必填 mt_id + mt_minutes_subject',
|
|
449
|
+
notes: [
|
|
450
|
+
'★ 返回 `datajson.dataIds[0]` 即新纪要 id(后续 update/delete 用它)。',
|
|
451
|
+
'mt_id 关联会议(长 id 用字符串);mt_minutes_subject 是纪要标题,服务端必填。',
|
|
452
|
+
'⚠️ `mt_minutes_no`(纪要编号)通常由服务端生成,一般不要传。',
|
|
453
|
+
'file_type:0 文档 / 1 音频文件;文档传 `doc_file`、音频传 `video_file`,值都是**文件 id**。',
|
|
454
|
+
'minutes_status:0 解析中 / 1 生成中 / 2 已完成 / 3 文字提取中 / 4 文字提取完成。仅登记已有内容时建议直接传 2,避免服务端再去解析。',
|
|
455
|
+
'video_taskResult:0 生成中 / 1 生成成功 / 2 生成失败(音频解析用,一般不用手工写)。',
|
|
456
|
+
'`hrm_members`(人员)与 `org_members`(部门)按 eBuilder 选项值传;`parse_content` 是富文本内容。',
|
|
457
|
+
],
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
domain: 'minute',
|
|
461
|
+
operation: 'meeting.eb.minute.update',
|
|
462
|
+
kind: 'update',
|
|
463
|
+
interfacePk: 'update_mt_minute',
|
|
464
|
+
// 2026-10-23 二次核(RestfulDocumentation (8)):接口已把全部字段选中,
|
|
465
|
+
// 与 create 对齐 19 个字段;必填 = id(主键)+ mt_id。
|
|
466
|
+
fields: [
|
|
467
|
+
'id', 'mt_id', 'minutes_content', 'mt_minutes_ai_page', 'parse_content', 'mt_minutes_no',
|
|
468
|
+
'mt_minutes_subject', 'video_mt_id', 'begin_datetime', 'end_datetime', 'hrm_members',
|
|
469
|
+
'org_members', 'mt_minutes', 'file_type', 'doc_file', 'video_file',
|
|
470
|
+
'minutes_status', 'video_taskId', 'video_taskResult',
|
|
471
|
+
],
|
|
472
|
+
requiredFields: ['id', 'mt_id'],
|
|
473
|
+
dateFields: ['begin_datetime', 'end_datetime'],
|
|
474
|
+
pkQueryParam: 'id',
|
|
475
|
+
summary: 'EB 版更新会议纪要(update_mt_minute):必传 id + mt_id,可改内容/状态/附件',
|
|
476
|
+
notes: [
|
|
477
|
+
'id = 纪要 id(minute.list 的 rows[].mainTable.id 或 create 返回的 dataIds[0]);`mt_id` 服务端也是必填。',
|
|
478
|
+
'可更新字段与 create 一致:minutes_content / parse_content / mt_minutes_subject / minutes_status / file_type / doc_file / video_file 等。',
|
|
479
|
+
'minutes_status:0 解析中 / 1 生成中 / 2 已完成 / 3 文字提取中 / 4 文字提取完成。',
|
|
480
|
+
'⚠️ 主键走 URL(`?id=`),只放 body 会报「主键传入不能为空」——CLI 已自动处理。',
|
|
481
|
+
'⚠️ EB 写接口报错不代表没写入,改完建议回查 minute.list 确认。',
|
|
482
|
+
],
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
domain: 'minute',
|
|
486
|
+
operation: 'meeting.eb.minute.delete',
|
|
487
|
+
kind: 'delete',
|
|
488
|
+
interfacePk: 'delete_mt_minute',
|
|
489
|
+
fields: ['id'],
|
|
490
|
+
requiredFields: ['id'],
|
|
491
|
+
pkQueryParam: 'id',
|
|
492
|
+
summary: 'EB 版删除会议纪要(delete_mt_minute):仅传 id(纪要 id)',
|
|
493
|
+
notes: [
|
|
494
|
+
'id = 纪要 id(minute.list 的 rows[].mainTable.id,或 create 返回的 dataIds[0]),不是会议 id。',
|
|
495
|
+
'返回体含 `datajson.status`(true/false)与 `message`,CLI 统一判定。',
|
|
496
|
+
],
|
|
308
497
|
},
|
|
309
498
|
{
|
|
310
499
|
domain: 'type',
|
|
@@ -371,41 +560,78 @@ export const EB_ENDPOINTS = [
|
|
|
371
560
|
operation: 'meeting.eb.topic.list',
|
|
372
561
|
kind: 'list',
|
|
373
562
|
interfacePk: 'query_mt_topic_list',
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
563
|
+
// 2026-10-27 17:50:旧 query_mt_topic_count 已废弃,计数改走 *_new
|
|
564
|
+
countPk: 'query_mt_topic_count_new',
|
|
565
|
+
// 2026-10-23 真机验证:该接口支持 URL query 传 `mt_id` 过滤
|
|
566
|
+
// (不带参数返回 1 条、带无关参数仍返回 1 条、带 mt_id 返回 0 条 ⇒ 过滤真实生效)。
|
|
567
|
+
queryParams: ['mt_id'],
|
|
568
|
+
summary: 'EB 版会议议题列表(query_mt_topic_list + count,可按 mt_id 过滤)',
|
|
569
|
+
notes: [
|
|
570
|
+
'议题表 uf_mt_topic 在部分租户未注册(或会议本身没排议题),返回空数组属正常,调用方需按"无议题"处理。',
|
|
571
|
+
'按会议取议题请传 `mt_id`;不传会返回全库议题。',
|
|
572
|
+
],
|
|
378
573
|
},
|
|
379
574
|
{
|
|
380
575
|
domain: 'topic',
|
|
381
576
|
operation: 'meeting.eb.topic.detail',
|
|
382
577
|
kind: 'detail',
|
|
383
|
-
interfacePk: '
|
|
384
|
-
summary: 'EB 版会议议题详情(
|
|
578
|
+
interfacePk: 'query_mt_topic_info_new',
|
|
579
|
+
summary: 'EB 版会议议题详情(query_mt_topic_info_new,body 顶层 mainTable 传 id)',
|
|
580
|
+
notes: [
|
|
581
|
+
'旧的 `query_mt_topic_info` 已于 2026-10-27 废弃(按 id 恒返回空 `datas:[]`),这里走 `_new`。',
|
|
582
|
+
'2026-10-27 17:50 真机验证:按 id 返回完整新版字段(含 `topic_title` / `remark` / `topic_num` 等)。',
|
|
583
|
+
],
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
domain: 'topic',
|
|
587
|
+
operation: 'meeting.eb.topic.create',
|
|
588
|
+
kind: 'create',
|
|
589
|
+
interfacePk: 'create_mt_topic',
|
|
590
|
+
fields: TOPIC_FIELDS_CREATE,
|
|
591
|
+
requiredFields: ['topic_title'],
|
|
592
|
+
dateOnlyFields: ['proposal_date'],
|
|
593
|
+
summary: 'EB 版创建议题(create_mt_topic):必填 topic_title;要挂到会议请传 mt_id',
|
|
594
|
+
notes: [
|
|
595
|
+
'人员字段传 **HRM 员工 id**(`topic_presenter` / `proposal_person`),单位传**部门 id**(`proposal_dept`)。',
|
|
596
|
+
'⭐ `proposal_person` / `proposal_dept` 漏传时**自动补默认值**(2026-10-28 用户口径):'
|
|
597
|
+
+ '提议人员=当前操作人、提议单位=操作人所属部门 id(`hrm.employee.batch` 的 `departmentId`,查不到留空)。',
|
|
598
|
+
'`topic_content` = 议题内容概要——邀请函议程表的「议程内容」列取它,建议题时建议填上。',
|
|
599
|
+
'`topic_type` 传议题类型 id(用 `meeting.eb.topicType.list` 取)。',
|
|
600
|
+
'Select 类(`urgency` / `topic_status` / `allow_repeat`)按租户表单配置传对应数字值,'
|
|
601
|
+
+ 'CLI 不做枚举校验 —— 各租户配置不同,硬编码会把合法值拦掉。',
|
|
602
|
+
'`name` 不要传:服务端自动生成(形如「议题库-李四 2026-10-23 15:29:00」)。',
|
|
603
|
+
'`topic_num` 一般留空由服务端编号(真机样例 `0002`)。',
|
|
604
|
+
],
|
|
385
605
|
},
|
|
386
606
|
{
|
|
387
607
|
domain: 'topic',
|
|
388
608
|
operation: 'meeting.eb.topic.update',
|
|
389
609
|
kind: 'update',
|
|
390
|
-
interfacePk: '
|
|
391
|
-
fields:
|
|
392
|
-
'id', 'name', 'relate_topic', 'topic_status', 'topic_presenter', 'topic_type', 'topic_no',
|
|
393
|
-
'attend_user', 'attending_units', 'reporting_user', 'reporting_unit', 'start_time', 'end_time',
|
|
394
|
-
'topic_materials', 'mt_id', 'row_id', 'data_status',
|
|
395
|
-
],
|
|
610
|
+
interfacePk: 'update_mt_topic_info_new',
|
|
611
|
+
fields: TOPIC_FIELDS_UPDATE,
|
|
396
612
|
requiredFields: ['id'],
|
|
397
|
-
|
|
613
|
+
dateOnlyFields: ['proposal_date'],
|
|
398
614
|
// 主键必须走 URL(updateFormData 端点统一要求)
|
|
399
615
|
pkQueryParam: 'id',
|
|
400
|
-
summary: 'EB 版更新会议议题(
|
|
401
|
-
notes: [
|
|
616
|
+
summary: 'EB 版更新会议议题(update_mt_topic_info_new):必传 id;字段为新版表单口径',
|
|
617
|
+
notes: [
|
|
618
|
+
'旧的 `update_mt_topic_info` 已于 2026-10-27 废弃(认老字段、按 id 报"没有满足更新条件的数据"),这里走 `_new`。',
|
|
619
|
+
'2026-10-27 17:50 真机验证:传 `id + remark` → 成功;`query_mt_topic_info_new` 回读到新值。',
|
|
620
|
+
'字段只用**新版表单**(`topic_title` / `remark` / `urgency` / `proposal_date` …)。'
|
|
621
|
+
+ '老版的 `relate_topic` / `topic_no` / `start_time` / `end_time` / `data_status` 已不在白名单,会被入口拦下。',
|
|
622
|
+
'`topic_status` 的枚举值以租户表单配置为准(`1呈批中 / 2待上会 / 3已上会`)。',
|
|
623
|
+
'`proposal_date` 只接受日期 `yyyy-MM-dd`(真机存的就是 `2026-10-27`)。',
|
|
624
|
+
],
|
|
402
625
|
},
|
|
403
626
|
{
|
|
404
627
|
domain: 'topic',
|
|
405
628
|
operation: 'meeting.eb.topic.delete',
|
|
406
629
|
kind: 'delete',
|
|
407
|
-
interfacePk: '
|
|
408
|
-
summary: 'EB 版删除会议议题(
|
|
630
|
+
interfacePk: 'delete_mt_topic_info_new',
|
|
631
|
+
summary: 'EB 版删除会议议题(delete_mt_topic_info_new):仅传 id',
|
|
632
|
+
notes: [
|
|
633
|
+
'旧的 `delete_mt_topic_info` 已废弃,这里走 `_new`(2026-10-27 17:50 真机:删完详情返回空 `datas:[]`)。',
|
|
634
|
+
],
|
|
409
635
|
},
|
|
410
636
|
{
|
|
411
637
|
domain: 'baseSet',
|
|
@@ -484,6 +710,43 @@ export const EB_ENDPOINTS = [
|
|
|
484
710
|
summary: 'EB 版删除会议决议(delete_mt_decision):仅传 id(概述 id)',
|
|
485
711
|
notes: ['删除概述**不会**自动回收已生成的决议任务,需要时另行处理。'],
|
|
486
712
|
},
|
|
713
|
+
{
|
|
714
|
+
domain: 'decision',
|
|
715
|
+
operation: 'meeting.eb.decision.update',
|
|
716
|
+
kind: 'update',
|
|
717
|
+
interfacePk: 'update_mt_decision',
|
|
718
|
+
// 主表只放概述:`mt_content` 改文本,`mt_id` 可重新挂会议(一般不动)
|
|
719
|
+
fields: ['id', 'mt_content', 'mt_id'],
|
|
720
|
+
requiredFields: ['id'],
|
|
721
|
+
pkQueryParam: 'id',
|
|
722
|
+
// 文档示例里 operateType.detail1 支持 cover(整组覆盖),默认是更新追加
|
|
723
|
+
detailCover: true,
|
|
724
|
+
summary: 'EB 版更新会议决议(update_mt_decision):改概述文本 + 决议明细(2026-10-27 新增接口)',
|
|
725
|
+
notes: [
|
|
726
|
+
'`id` = **决议概述 id**(`decision.list` 的 rows[].mainTable.id),不是会议 id。',
|
|
727
|
+
'只改概述文本:传 `id` + `mt_content` 即可,不必带 detail1(真机:明细原样保留)。',
|
|
728
|
+
'⛔ **默认写入是「追加」,不是"按 sort_number 改"**:真机传 `detail1:[{sort_number:"1",...}]`,'
|
|
729
|
+
+ '结果是**又加了一行**(明细 2 → 3,两行 sort_number 都是 1)。想真正替换明细必须传 `detail1Mode: "cover"`。',
|
|
730
|
+
'`detail1Mode: "cover"` = 整组替换(真机:3 行 → 传 2 行后正好剩 2 行,明细 id 全换新)。'
|
|
731
|
+
+ '⚠️ 删除式覆盖:传几行就只剩几行,漏行即丢数据;不传 detail1 时 CLI 直接拦下,不会"清空明细"。',
|
|
732
|
+
'`begin_datetime` / `end_datetime` 到分钟;`decision_status` 0未完成/1已完成/2已延期;`related_type` 0未关联/1日程/2任务。',
|
|
733
|
+
'★ **改决议不会同步已生成的决议任务**(真机:概述与明细都改了,任务仍是旧标题旧时间,任务数也没变)。'
|
|
734
|
+
+ '任务要跟着改,只能 `decisionTask.delete` 删掉再用 `decisionTask.create` 重建(create 属兜底,注意别重复)。',
|
|
735
|
+
'★ 更新**不会**触发 ESB 再生成任务(真机两次更新后任务数始终 2),可以放心改文本,不会糊出重复任务。',
|
|
736
|
+
],
|
|
737
|
+
details: [
|
|
738
|
+
{
|
|
739
|
+
node: 'detail1',
|
|
740
|
+
fields: [
|
|
741
|
+
'sort_number', 'decision_title', 'executors', 'rummager', 'begin_datetime', 'end_datetime',
|
|
742
|
+
'related_type', 'relate_agenda', 'decision_status', 'relate_task',
|
|
743
|
+
],
|
|
744
|
+
dateFields: ['begin_datetime', 'end_datetime'],
|
|
745
|
+
enumFields: { decision_status: ['0', '1', '2'], related_type: ['0', '1', '2'] },
|
|
746
|
+
purpose: '决议明细:默认按 sort_number 更新,detail1Mode=cover 时整组替换',
|
|
747
|
+
},
|
|
748
|
+
],
|
|
749
|
+
},
|
|
487
750
|
{
|
|
488
751
|
domain: 'decisionTask',
|
|
489
752
|
operation: 'meeting.eb.decisionTask.list',
|
|
@@ -503,6 +766,58 @@ export const EB_ENDPOINTS = [
|
|
|
503
766
|
'任务由明细带出 `begin_datetime`/`end_datetime`/`decision_title`,可用于展示计划周期。',
|
|
504
767
|
],
|
|
505
768
|
},
|
|
769
|
+
{
|
|
770
|
+
domain: 'decisionTask',
|
|
771
|
+
operation: 'meeting.eb.decisionTask.create',
|
|
772
|
+
kind: 'create',
|
|
773
|
+
interfacePk: 'create_mt_decision_task',
|
|
774
|
+
// ⚠️ 主表只放"任务本身"的字段;`executor` / `finish_status` / `finish_date` 属于 **detail1 子表**,
|
|
775
|
+
// 放到 mainTable 会报 `DataError:dataKey:executor,该字段不存在`(2026-10-27 我本人踩过并误判成"表单缺字段")。
|
|
776
|
+
fields: [
|
|
777
|
+
'mt_id', 'relate_decision', 'decision_title', 'executors', 'rummager',
|
|
778
|
+
'begin_datetime', 'end_datetime', 'decision_status', 'related_type',
|
|
779
|
+
'relate_agenda', 'relate_task', 'sort_number', 'mt_video_id', 'decision_rowid',
|
|
780
|
+
],
|
|
781
|
+
requiredFields: ['mt_id', 'decision_title', 'executors', 'rummager', 'begin_datetime', 'end_datetime'],
|
|
782
|
+
dateFields: ['begin_datetime', 'end_datetime'],
|
|
783
|
+
summary: 'EB 版直建决议任务(create_mt_decision_task):⚠️ 常规不用 —— 决议后 ESB 会自动生成,重复建会产生重复任务',
|
|
784
|
+
notes: [
|
|
785
|
+
'★ **先看清楚:正常链路不需要调本接口。** `meeting.eb.decision.publish`(写决议概述 + 标记已决议)之后,'
|
|
786
|
+
+ 'ESB 会按**每条决议明细**自动生成一个任务(2026-10-27 真机再次确认:任务的 `relate_decision` 指向概述、'
|
|
787
|
+
+ '`create_time` 与决议同秒)。再手工建一条 ⇒ 同一件事出现两个任务。',
|
|
788
|
+
'本接口只用于 **ESB 没触发 / 临时追加** 的补建;建完请用 `decisionTask.list` 回查,避免重复。',
|
|
789
|
+
'`mt_id` 挂会议,`relate_decision` 挂决议概述 id(`decision.list` 的 rows[].mainTable.id)。',
|
|
790
|
+
'★ **`executor` 必须放在 `detail1` 里**(执行人跟进子表),不是 mainTable:'
|
|
791
|
+
+ '`detail1: [{ executor: "<员工id>", finish_status: "0" }]`。'
|
|
792
|
+
+ '`executors`(主表,执行人集合)与 `detail1[].executor` 要一致,两处都是**员工 id**。',
|
|
793
|
+
'`finish_status`:0未完成 / 1已完成 / 2已延期;`finish_date` 若传必须 `yyyy-MM-dd HH:mm:ss`。',
|
|
794
|
+
'`begin_datetime` / `end_datetime` 到分钟。',
|
|
795
|
+
'✅ 2026-10-27 16:00 真机已跑通:`{mt_id, relate_decision, decision_title, executors, rummager, begin/end} '
|
|
796
|
+
+ '+ detail1:[{executor, finish_status}]` → `dataIds:["1330957…"]`,列表可见(随后已用 delete 清掉)。',
|
|
797
|
+
],
|
|
798
|
+
details: [
|
|
799
|
+
{
|
|
800
|
+
node: 'detail1',
|
|
801
|
+
fields: ['executor', 'finish_status', 'finish_date'],
|
|
802
|
+
requiredFields: ['executor'],
|
|
803
|
+
enumFields: { finish_status: ['0', '1', '2'] },
|
|
804
|
+
secondDateFields: ['finish_date'],
|
|
805
|
+
minRows: 1,
|
|
806
|
+
purpose: '执行人跟进行:executor 必须在这里传(放主表会报字段不存在)',
|
|
807
|
+
},
|
|
808
|
+
],
|
|
809
|
+
},
|
|
810
|
+
{
|
|
811
|
+
domain: 'decisionTask',
|
|
812
|
+
operation: 'meeting.eb.decisionTask.delete',
|
|
813
|
+
kind: 'delete',
|
|
814
|
+
interfacePk: 'delete_mt_decision_task',
|
|
815
|
+
summary: 'EB 版删除决议任务(delete_mt_decision_task):仅传 id',
|
|
816
|
+
notes: [
|
|
817
|
+
'id = **任务 id**(decisionTask.list 的 rows[].mainTable.id),不是会议 id / 决议 id。',
|
|
818
|
+
'删除任务**不会**影响决议概述(`delete_mt_decision` 也不回收任务),两边独立删。',
|
|
819
|
+
],
|
|
820
|
+
},
|
|
506
821
|
{
|
|
507
822
|
domain: 'decisionTask',
|
|
508
823
|
operation: 'meeting.eb.decisionTask.update',
|