weaver-e10-builder 1.1.8 → 1.2.2

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.
Files changed (431) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/actionflow.d.ts.map +1 -1
  3. package/dist/commands/actionflow.js +32 -0
  4. package/dist/commands/actionflow.js.map +1 -1
  5. package/dist/commands/app.d.ts.map +1 -1
  6. package/dist/commands/app.js +17 -5
  7. package/dist/commands/app.js.map +1 -1
  8. package/dist/commands/auth.d.ts.map +1 -1
  9. package/dist/commands/auth.js +9 -2
  10. package/dist/commands/auth.js.map +1 -1
  11. package/dist/commands/designer.d.ts.map +1 -1
  12. package/dist/commands/designer.js +22 -1
  13. package/dist/commands/designer.js.map +1 -1
  14. package/dist/commands/form-field-props.d.ts +3 -0
  15. package/dist/commands/form-field-props.d.ts.map +1 -0
  16. package/dist/commands/form-field-props.js +242 -0
  17. package/dist/commands/form-field-props.js.map +1 -0
  18. package/dist/commands/form-layout-init.d.ts +0 -7
  19. package/dist/commands/form-layout-init.d.ts.map +1 -1
  20. package/dist/commands/form-layout-init.js +23 -39
  21. package/dist/commands/form-layout-init.js.map +1 -1
  22. package/dist/commands/form-serial-mark.d.ts.map +1 -1
  23. package/dist/commands/form-serial-mark.js +134 -42
  24. package/dist/commands/form-serial-mark.js.map +1 -1
  25. package/dist/commands/form-virtual.d.ts +3 -0
  26. package/dist/commands/form-virtual.d.ts.map +1 -0
  27. package/dist/commands/form-virtual.js +197 -0
  28. package/dist/commands/form-virtual.js.map +1 -0
  29. package/dist/commands/form.d.ts +3 -0
  30. package/dist/commands/form.d.ts.map +1 -1
  31. package/dist/commands/form.js +263 -57
  32. package/dist/commands/form.js.map +1 -1
  33. package/dist/commands/interface.js +1 -1
  34. package/dist/commands/interface.js.map +1 -1
  35. package/dist/commands/report-admin.d.ts +5 -0
  36. package/dist/commands/report-admin.d.ts.map +1 -0
  37. package/dist/commands/report-admin.js +420 -0
  38. package/dist/commands/report-admin.js.map +1 -0
  39. package/dist/commands/report-query.d.ts +3 -0
  40. package/dist/commands/report-query.d.ts.map +1 -0
  41. package/dist/commands/report-query.js +314 -0
  42. package/dist/commands/report-query.js.map +1 -0
  43. package/dist/commands/report-validate.d.ts +3 -0
  44. package/dist/commands/report-validate.d.ts.map +1 -0
  45. package/dist/commands/report-validate.js +719 -0
  46. package/dist/commands/report-validate.js.map +1 -0
  47. package/dist/commands/report.d.ts +12 -0
  48. package/dist/commands/report.d.ts.map +1 -0
  49. package/dist/commands/report.js +666 -0
  50. package/dist/commands/report.js.map +1 -0
  51. package/dist/commands/wf-form.d.ts +34 -0
  52. package/dist/commands/wf-form.d.ts.map +1 -1
  53. package/dist/commands/wf-form.js +303 -127
  54. package/dist/commands/wf-form.js.map +1 -1
  55. package/dist/commands/workflow-advanced.d.ts.map +1 -1
  56. package/dist/commands/workflow-advanced.js +109 -90
  57. package/dist/commands/workflow-advanced.js.map +1 -1
  58. package/dist/commands/workflow-auth-resp.d.ts +8 -0
  59. package/dist/commands/workflow-auth-resp.d.ts.map +1 -0
  60. package/dist/commands/workflow-auth-resp.js +568 -0
  61. package/dist/commands/workflow-auth-resp.js.map +1 -0
  62. package/dist/commands/workflow-condition.d.ts.map +1 -1
  63. package/dist/commands/workflow-condition.js +3 -1
  64. package/dist/commands/workflow-condition.js.map +1 -1
  65. package/dist/commands/workflow-create-auth-resp.d.ts +4 -0
  66. package/dist/commands/workflow-create-auth-resp.d.ts.map +1 -0
  67. package/dist/commands/workflow-create-auth-resp.js +204 -0
  68. package/dist/commands/workflow-create-auth-resp.js.map +1 -0
  69. package/dist/commands/workflow-node-overtime.d.ts.map +1 -1
  70. package/dist/commands/workflow-node-overtime.js +125 -92
  71. package/dist/commands/workflow-node-overtime.js.map +1 -1
  72. package/dist/commands/workflow-node-reject.d.ts +52 -0
  73. package/dist/commands/workflow-node-reject.d.ts.map +1 -1
  74. package/dist/commands/workflow-node-reject.js +134 -63
  75. package/dist/commands/workflow-node-reject.js.map +1 -1
  76. package/dist/commands/workflow-node-sign.d.ts.map +1 -1
  77. package/dist/commands/workflow-node-sign.js +14 -7
  78. package/dist/commands/workflow-node-sign.js.map +1 -1
  79. package/dist/commands/workflow-node-validate.d.ts +6 -0
  80. package/dist/commands/workflow-node-validate.d.ts.map +1 -1
  81. package/dist/commands/workflow-node-validate.js +143 -21
  82. package/dist/commands/workflow-node-validate.js.map +1 -1
  83. package/dist/commands/workflow-node.d.ts.map +1 -1
  84. package/dist/commands/workflow-node.js +359 -116
  85. package/dist/commands/workflow-node.js.map +1 -1
  86. package/dist/commands/workflow-numbering.d.ts.map +1 -1
  87. package/dist/commands/workflow-numbering.js +73 -34
  88. package/dist/commands/workflow-numbering.js.map +1 -1
  89. package/dist/commands/workflow-operator-sign.d.ts +10 -0
  90. package/dist/commands/workflow-operator-sign.d.ts.map +1 -1
  91. package/dist/commands/workflow-operator-sign.js +40 -53
  92. package/dist/commands/workflow-operator-sign.js.map +1 -1
  93. package/dist/commands/workflow-plan-range.d.ts +10 -0
  94. package/dist/commands/workflow-plan-range.d.ts.map +1 -1
  95. package/dist/commands/workflow-plan-range.js +15 -54
  96. package/dist/commands/workflow-plan-range.js.map +1 -1
  97. package/dist/commands/workflow-segment.d.ts.map +1 -1
  98. package/dist/commands/workflow-segment.js +22 -14
  99. package/dist/commands/workflow-segment.js.map +1 -1
  100. package/dist/commands/workflow.d.ts.map +1 -1
  101. package/dist/commands/workflow.js +13 -69
  102. package/dist/commands/workflow.js.map +1 -1
  103. package/dist/index.js +15 -0
  104. package/dist/index.js.map +1 -1
  105. package/dist/services/actionflow/build_workflow_draft.d.ts +6 -0
  106. package/dist/services/actionflow/build_workflow_draft.d.ts.map +1 -1
  107. package/dist/services/actionflow/build_workflow_draft.js +63 -4
  108. package/dist/services/actionflow/build_workflow_draft.js.map +1 -1
  109. package/dist/services/actionflow/calendar_mapper.d.ts +2 -2
  110. package/dist/services/actionflow/calendar_mapper.d.ts.map +1 -1
  111. package/dist/services/actionflow/calendar_mapper.js +33 -13
  112. package/dist/services/actionflow/calendar_mapper.js.map +1 -1
  113. package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
  114. package/dist/services/actionflow/components/action_eb_add.js +13 -1
  115. package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
  116. package/dist/services/actionflow/components/action_eb_delete.js +2 -2
  117. package/dist/services/actionflow/components/action_eb_delete.js.map +1 -1
  118. package/dist/services/actionflow/components/action_eb_recover.js +2 -2
  119. package/dist/services/actionflow/components/action_eb_recover.js.map +1 -1
  120. package/dist/services/actionflow/components/action_eb_save_version.js +2 -2
  121. package/dist/services/actionflow/components/action_eb_save_version.js.map +1 -1
  122. package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
  123. package/dist/services/actionflow/components/action_eb_update.js +15 -3
  124. package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
  125. package/dist/services/actionflow/components/action_eb_update_compiler.js +5 -5
  126. package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
  127. package/dist/services/actionflow/components/approve_create.d.ts.map +1 -1
  128. package/dist/services/actionflow/components/approve_create.js +5 -2
  129. package/dist/services/actionflow/components/approve_create.js.map +1 -1
  130. package/dist/services/actionflow/components/approve_trigger.d.ts.map +1 -1
  131. package/dist/services/actionflow/components/approve_trigger.js +5 -0
  132. package/dist/services/actionflow/components/approve_trigger.js.map +1 -1
  133. package/dist/services/actionflow/components/date_trigger.d.ts.map +1 -1
  134. package/dist/services/actionflow/components/date_trigger.js +14 -1
  135. package/dist/services/actionflow/components/date_trigger.js.map +1 -1
  136. package/dist/services/actionflow/components/dml_execute.d.ts.map +1 -1
  137. package/dist/services/actionflow/components/dml_execute.js +18 -10
  138. package/dist/services/actionflow/components/dml_execute.js.map +1 -1
  139. package/dist/services/actionflow/components/document_actions.js +5 -5
  140. package/dist/services/actionflow/components/document_actions.js.map +1 -1
  141. package/dist/services/actionflow/components/eb_get_data_by_id.d.ts.map +1 -1
  142. package/dist/services/actionflow/components/eb_get_data_by_id.js +8 -6
  143. package/dist/services/actionflow/components/eb_get_data_by_id.js.map +1 -1
  144. package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -1
  145. package/dist/services/actionflow/components/enquiry_form.js +28 -9
  146. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  147. package/dist/services/actionflow/components/hrm_actions.d.ts.map +1 -1
  148. package/dist/services/actionflow/components/hrm_actions.js +34 -13
  149. package/dist/services/actionflow/components/hrm_actions.js.map +1 -1
  150. package/dist/services/actionflow/components/index.js +3 -3
  151. package/dist/services/actionflow/components/index.js.map +1 -1
  152. package/dist/services/actionflow/components/inner_mq_send.d.ts.map +1 -1
  153. package/dist/services/actionflow/components/inner_mq_send.js +43 -4
  154. package/dist/services/actionflow/components/inner_mq_send.js.map +1 -1
  155. package/dist/services/actionflow/components/meeting_create.js +9 -9
  156. package/dist/services/actionflow/components/meeting_create.js.map +1 -1
  157. package/dist/services/actionflow/components/multiple_execution.d.ts.map +1 -1
  158. package/dist/services/actionflow/components/multiple_execution.js +83 -4
  159. package/dist/services/actionflow/components/multiple_execution.js.map +1 -1
  160. package/dist/services/actionflow/components/output.d.ts +3 -2
  161. package/dist/services/actionflow/components/output.d.ts.map +1 -1
  162. package/dist/services/actionflow/components/output.js +33 -0
  163. package/dist/services/actionflow/components/output.js.map +1 -1
  164. package/dist/services/actionflow/components/schedule_create.js +10 -10
  165. package/dist/services/actionflow/components/schedule_create.js.map +1 -1
  166. package/dist/services/actionflow/components/send_message.js +1 -1
  167. package/dist/services/actionflow/components/send_message.js.map +1 -1
  168. package/dist/services/actionflow/components/simple_scheduler.d.ts.map +1 -1
  169. package/dist/services/actionflow/components/simple_scheduler.js +42 -9
  170. package/dist/services/actionflow/components/simple_scheduler.js.map +1 -1
  171. package/dist/services/actionflow/components/time_batch_trigger.d.ts.map +1 -1
  172. package/dist/services/actionflow/components/time_batch_trigger.js +43 -13
  173. package/dist/services/actionflow/components/time_batch_trigger.js.map +1 -1
  174. package/dist/services/actionflow/components/workflow_actions.d.ts +0 -1
  175. package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
  176. package/dist/services/actionflow/components/workflow_actions.js +21 -27
  177. package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
  178. package/dist/services/actionflow/context_preflight.d.ts +31 -2
  179. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  180. package/dist/services/actionflow/context_preflight.js +179 -4
  181. package/dist/services/actionflow/context_preflight.js.map +1 -1
  182. package/dist/services/actionflow/design_client.d.ts +4 -0
  183. package/dist/services/actionflow/design_client.d.ts.map +1 -1
  184. package/dist/services/actionflow/design_client.js +10 -0
  185. package/dist/services/actionflow/design_client.js.map +1 -1
  186. package/dist/services/actionflow/dynamic_resources.d.ts.map +1 -1
  187. package/dist/services/actionflow/dynamic_resources.js +10 -3
  188. package/dist/services/actionflow/dynamic_resources.js.map +1 -1
  189. package/dist/services/actionflow/enrich_approve_trigger.d.ts.map +1 -1
  190. package/dist/services/actionflow/enrich_approve_trigger.js +18 -3
  191. package/dist/services/actionflow/enrich_approve_trigger.js.map +1 -1
  192. package/dist/services/actionflow/formula_service.d.ts +1 -1
  193. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  194. package/dist/services/actionflow/formula_service.js +135 -12
  195. package/dist/services/actionflow/formula_service.js.map +1 -1
  196. package/dist/services/actionflow/generation_service.d.ts.map +1 -1
  197. package/dist/services/actionflow/generation_service.js +18 -2
  198. package/dist/services/actionflow/generation_service.js.map +1 -1
  199. package/dist/services/actionflow/preflight_service.d.ts +1 -1
  200. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  201. package/dist/services/actionflow/preflight_service.js +194 -6
  202. package/dist/services/actionflow/preflight_service.js.map +1 -1
  203. package/dist/services/actionflow/save_workflow_draft.d.ts +8 -0
  204. package/dist/services/actionflow/save_workflow_draft.d.ts.map +1 -1
  205. package/dist/services/actionflow/save_workflow_draft.js +6 -2
  206. package/dist/services/actionflow/save_workflow_draft.js.map +1 -1
  207. package/dist/services/actionflow/update_service.d.ts +6 -0
  208. package/dist/services/actionflow/update_service.d.ts.map +1 -1
  209. package/dist/services/actionflow/update_service.js +125 -7
  210. package/dist/services/actionflow/update_service.js.map +1 -1
  211. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  212. package/dist/services/actionflow/workflow_compiler.js +17 -9
  213. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  214. package/dist/services/browser.d.ts +34 -0
  215. package/dist/services/browser.d.ts.map +1 -0
  216. package/dist/services/browser.js +57 -0
  217. package/dist/services/browser.js.map +1 -0
  218. package/dist/services/esb-interface/document-parser.d.ts +5 -0
  219. package/dist/services/esb-interface/document-parser.d.ts.map +1 -1
  220. package/dist/services/esb-interface/document-parser.js +117 -1
  221. package/dist/services/esb-interface/document-parser.js.map +1 -1
  222. package/dist/services/esb-interface/importer.d.ts.map +1 -1
  223. package/dist/services/esb-interface/importer.js +7 -2
  224. package/dist/services/esb-interface/importer.js.map +1 -1
  225. package/dist/services/field-props-data.d.ts +56 -0
  226. package/dist/services/field-props-data.d.ts.map +1 -0
  227. package/dist/services/field-props-data.js +732 -0
  228. package/dist/services/field-props-data.js.map +1 -0
  229. package/dist/services/form-edit-base.d.ts +45 -0
  230. package/dist/services/form-edit-base.d.ts.map +1 -0
  231. package/dist/services/form-edit-base.js +76 -0
  232. package/dist/services/form-edit-base.js.map +1 -0
  233. package/dist/services/form-field-drop.d.ts +41 -0
  234. package/dist/services/form-field-drop.d.ts.map +1 -0
  235. package/dist/services/form-field-drop.js +58 -0
  236. package/dist/services/form-field-drop.js.map +1 -0
  237. package/dist/services/form-style-template.d.ts +17 -0
  238. package/dist/services/form-style-template.d.ts.map +1 -0
  239. package/dist/services/form-style-template.js +102 -0
  240. package/dist/services/form-style-template.js.map +1 -0
  241. package/dist/services/form-virtual.d.ts +60 -0
  242. package/dist/services/form-virtual.d.ts.map +1 -0
  243. package/dist/services/form-virtual.js +331 -0
  244. package/dist/services/form-virtual.js.map +1 -0
  245. package/dist/services/report/analyze.d.ts +67 -0
  246. package/dist/services/report/analyze.d.ts.map +1 -0
  247. package/dist/services/report/analyze.js +173 -0
  248. package/dist/services/report/analyze.js.map +1 -0
  249. package/dist/services/report/build.d.ts +166 -0
  250. package/dist/services/report/build.d.ts.map +1 -0
  251. package/dist/services/report/build.js +520 -0
  252. package/dist/services/report/build.js.map +1 -0
  253. package/dist/services/report/constants.d.ts +145 -0
  254. package/dist/services/report/constants.d.ts.map +1 -0
  255. package/dist/services/report/constants.js +250 -0
  256. package/dist/services/report/constants.js.map +1 -0
  257. package/dist/services/report/dataset.d.ts +73 -0
  258. package/dist/services/report/dataset.d.ts.map +1 -0
  259. package/dist/services/report/dataset.js +185 -0
  260. package/dist/services/report/dataset.js.map +1 -0
  261. package/dist/services/report/fields.d.ts +80 -0
  262. package/dist/services/report/fields.d.ts.map +1 -0
  263. package/dist/services/report/fields.js +245 -0
  264. package/dist/services/report/fields.js.map +1 -0
  265. package/dist/services/report/forms.d.ts +70 -0
  266. package/dist/services/report/forms.d.ts.map +1 -0
  267. package/dist/services/report/forms.js +237 -0
  268. package/dist/services/report/forms.js.map +1 -0
  269. package/dist/services/report/guard.d.ts +73 -0
  270. package/dist/services/report/guard.d.ts.map +1 -0
  271. package/dist/services/report/guard.js +262 -0
  272. package/dist/services/report/guard.js.map +1 -0
  273. package/dist/services/report/http.d.ts +118 -0
  274. package/dist/services/report/http.d.ts.map +1 -0
  275. package/dist/services/report/http.js +159 -0
  276. package/dist/services/report/http.js.map +1 -0
  277. package/dist/services/report/lifecycle.d.ts +107 -0
  278. package/dist/services/report/lifecycle.d.ts.map +1 -0
  279. package/dist/services/report/lifecycle.js +323 -0
  280. package/dist/services/report/lifecycle.js.map +1 -0
  281. package/dist/services/report/permission.d.ts +59 -0
  282. package/dist/services/report/permission.d.ts.map +1 -0
  283. package/dist/services/report/permission.js +286 -0
  284. package/dist/services/report/permission.js.map +1 -0
  285. package/dist/services/report/query-checks.d.ts +124 -0
  286. package/dist/services/report/query-checks.d.ts.map +1 -0
  287. package/dist/services/report/query-checks.js +374 -0
  288. package/dist/services/report/query-checks.js.map +1 -0
  289. package/dist/services/report/query.d.ts +106 -0
  290. package/dist/services/report/query.d.ts.map +1 -0
  291. package/dist/services/report/query.js +278 -0
  292. package/dist/services/report/query.js.map +1 -0
  293. package/dist/services/report/render.d.ts +52 -0
  294. package/dist/services/report/render.d.ts.map +1 -0
  295. package/dist/services/report/render.js +138 -0
  296. package/dist/services/report/render.js.map +1 -0
  297. package/dist/services/report/reports.d.ts +110 -0
  298. package/dist/services/report/reports.d.ts.map +1 -0
  299. package/dist/services/report/reports.js +179 -0
  300. package/dist/services/report/reports.js.map +1 -0
  301. package/dist/services/report/safe-save.d.ts +57 -0
  302. package/dist/services/report/safe-save.d.ts.map +1 -0
  303. package/dist/services/report/safe-save.js +325 -0
  304. package/dist/services/report/safe-save.js.map +1 -0
  305. package/dist/services/report/sources.d.ts +48 -0
  306. package/dist/services/report/sources.d.ts.map +1 -0
  307. package/dist/services/report/sources.js +147 -0
  308. package/dist/services/report/sources.js.map +1 -0
  309. package/dist/services/report/types.d.ts +312 -0
  310. package/dist/services/report/types.d.ts.map +1 -0
  311. package/dist/services/report/types.js +2 -0
  312. package/dist/services/report/types.js.map +1 -0
  313. package/dist/services/report/validate.d.ts +169 -0
  314. package/dist/services/report/validate.d.ts.map +1 -0
  315. package/dist/services/report/validate.js +685 -0
  316. package/dist/services/report/validate.js.map +1 -0
  317. package/dist/services/report/verify.d.ts +72 -0
  318. package/dist/services/report/verify.d.ts.map +1 -0
  319. package/dist/services/report/verify.js +441 -0
  320. package/dist/services/report/verify.js.map +1 -0
  321. package/dist/services/report/workbook.d.ts +108 -0
  322. package/dist/services/report/workbook.d.ts.map +1 -0
  323. package/dist/services/report/workbook.js +471 -0
  324. package/dist/services/report/workbook.js.map +1 -0
  325. package/dist/services/rich-types.d.ts +39 -0
  326. package/dist/services/rich-types.d.ts.map +1 -1
  327. package/dist/services/rich-types.js +78 -30
  328. package/dist/services/rich-types.js.map +1 -1
  329. package/dist/services/workflow-node-layout.d.ts +214 -0
  330. package/dist/services/workflow-node-layout.d.ts.map +1 -0
  331. package/dist/services/workflow-node-layout.js +338 -0
  332. package/dist/services/workflow-node-layout.js.map +1 -0
  333. package/dist/services/workflow-operator.d.ts +47 -2
  334. package/dist/services/workflow-operator.d.ts.map +1 -1
  335. package/dist/services/workflow-operator.js +102 -5
  336. package/dist/services/workflow-operator.js.map +1 -1
  337. package/dist/services/workflow-overtime.d.ts +95 -0
  338. package/dist/services/workflow-overtime.d.ts.map +1 -0
  339. package/dist/services/workflow-overtime.js +207 -0
  340. package/dist/services/workflow-overtime.js.map +1 -0
  341. package/dist/services/workflow-plan-range.d.ts +18 -0
  342. package/dist/services/workflow-plan-range.d.ts.map +1 -0
  343. package/dist/services/workflow-plan-range.js +72 -0
  344. package/dist/services/workflow-plan-range.js.map +1 -0
  345. package/package.json +3 -2
  346. package/skill-docs/SKILL.md +277 -261
  347. package/skill-docs/_catalog.md +77 -66
  348. package/skill-docs/actionflows/SKILL.md +22 -14
  349. package/skill-docs/actionflows/references/components/calendar/MeetingCreate.md +17 -17
  350. package/skill-docs/actionflows/references/components/calendar/ScheduleCreate.md +17 -17
  351. package/skill-docs/actionflows/references/components/database/DMLExecute.md +3 -3
  352. package/skill-docs/actionflows/references/components/ebuilder/DateTrigger.md +32 -17
  353. package/skill-docs/actionflows/references/components/ebuilder/EbGetDataById.md +17 -17
  354. package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +6 -0
  355. package/skill-docs/actionflows/references/components/ebuilder/EventFormData.md +2 -0
  356. package/skill-docs/actionflows/references/components/ebuilder/TimeBatchTrigger.md +19 -17
  357. package/skill-docs/actionflows/references/components/logic/Output.md +28 -17
  358. package/skill-docs/actionflows/references/components/message/InnerMQSend.md +6 -2
  359. package/skill-docs/actionflows/references/components/personnel/AlterPersonStatus.md +30 -30
  360. package/skill-docs/actionflows/references/components/personnel/HrmEmployeeUpdate.md +32 -32
  361. package/skill-docs/actionflows/references/components/trigger/InnerMQListener.md +41 -40
  362. package/skill-docs/actionflows/references/components/trigger/SimpleScheduler.md +19 -17
  363. package/skill-docs/actionflows/references/components/workflow/ApproveCreate.md +17 -17
  364. package/skill-docs/actionflows/references/components/workflow/ApproveDelete.md +19 -17
  365. package/skill-docs/actionflows/references/components/workflow/ApproveEntrust.md +19 -17
  366. package/skill-docs/actionflows/references/components/workflow/ApproveSave.md +17 -17
  367. package/skill-docs/actionflows/references/components/workflow/ApproveTrigger.md +99 -84
  368. package/skill-docs/actionflows/references/dynamic_capability_matrix.md +39 -0
  369. package/skill-docs/references/common/guide-plan-template.md +251 -233
  370. package/skill-docs/references/common/ref-cli-commands.md +519 -373
  371. package/skill-docs/references/ebuilder-designer/guide-designer-components.md +1 -1
  372. package/skill-docs/references/ebuilder-designer/guide-designer-factory.md +460 -460
  373. package/skill-docs/references/ebuilder-designer/guide-designer.md +4 -4
  374. package/skill-docs/references/form/guide-create-form.md +232 -214
  375. package/skill-docs/references/form/guide-form-association.md +1 -1
  376. package/skill-docs/references/form/guide-form-view.md +318 -318
  377. package/skill-docs/references/form/guide-virtual-form.md +156 -0
  378. package/skill-docs/references/form/ref-form-fields.md +239 -99
  379. package/skill-docs/references/form/style-templates.md +80 -27
  380. package/skill-docs/references/report/add-dataset-registration-guide.md +139 -0
  381. package/skill-docs/references/report/ai-report-workflow.md +412 -0
  382. package/skill-docs/references/report/api-report-build-fast-path.md +275 -0
  383. package/skill-docs/references/report/app-datasource-lookup-guide.md +230 -0
  384. package/skill-docs/references/report/cell-config-echo-guide.md +163 -0
  385. package/skill-docs/references/report/cell-transform-guide.md +147 -0
  386. package/skill-docs/references/report/condition-format-guide.md +140 -0
  387. package/skill-docs/references/report/cross-dataset-filter-guide.md +304 -0
  388. package/skill-docs/references/report/dataset-query-filter-guide.md +235 -0
  389. package/skill-docs/references/report/dataset-sidebar-ops-guide.md +280 -0
  390. package/skill-docs/references/report/dataset-table-field-contract-guide.md +339 -0
  391. package/skill-docs/references/report/datasource-metadata-guide.md +365 -0
  392. package/skill-docs/references/report/datasource-selection-and-parent-filter-guide.md +148 -0
  393. package/skill-docs/references/report/date-range-query-reference.md +102 -0
  394. package/skill-docs/references/report/default-header-style-guide.md +70 -0
  395. package/skill-docs/references/report/designer-blank-prevention-guide.md +111 -0
  396. package/skill-docs/references/report/event-hreflink-guide.md +184 -0
  397. package/skill-docs/references/report/field-bind-exact-match-guide.md +208 -0
  398. package/skill-docs/references/report/formula-cell-api-guide.md +258 -0
  399. package/skill-docs/references/report/guide-report-build.md +131 -0
  400. package/skill-docs/references/report/guide-report-modify.md +100 -0
  401. package/skill-docs/references/report/guide-report-multisource.md +143 -0
  402. package/skill-docs/references/report/guide-report-query.md +98 -0
  403. package/skill-docs/references/report/hidden-row-and-header-merge-guide.md +100 -0
  404. package/skill-docs/references/report/layout-showlocation-freeze-guide.md +167 -0
  405. package/skill-docs/references/report/preaggregate-auto-disable-guide.md +107 -0
  406. package/skill-docs/references/report/query-condition-api-guide.md +890 -0
  407. package/skill-docs/references/report/ref-report-commands.md +122 -0
  408. package/skill-docs/references/report/ref-report-pitfalls.md +226 -0
  409. package/skill-docs/references/report/report-baseinfo-defaults-guide.md +117 -0
  410. package/skill-docs/references/report/report-building-guide.md +511 -0
  411. package/skill-docs/references/report/report-config-schema.md +445 -0
  412. package/skill-docs/references/report/report-create-modes-guide.md +182 -0
  413. package/skill-docs/references/report/report-data-model.md +447 -0
  414. package/skill-docs/references/report/report-delivery-contract.md +101 -0
  415. package/skill-docs/references/report/report-designer-feature-map.md +500 -0
  416. package/skill-docs/references/report/report-internal-error-guide.md +78 -0
  417. package/skill-docs/references/report/report-knowledge-base.md +389 -0
  418. package/skill-docs/references/report/report-lifecycle-api-guide.md +392 -0
  419. package/skill-docs/references/report/report-list-page-ops-guide.md +191 -0
  420. package/skill-docs/references/report/report-permission-guide.md +365 -0
  421. package/skill-docs/references/report/report-requirement-analysis-template.md +202 -0
  422. package/skill-docs/references/report/report-self-check-guide.md +164 -0
  423. package/skill-docs/references/report/safe-partial-save-guide.md +151 -0
  424. package/skill-docs/references/report/snowflake-id-precision-guide.md +84 -0
  425. package/skill-docs/references/report/spec-build-schema.md +291 -0
  426. package/skill-docs/references/report/targeted-fix-guide.md +97 -0
  427. package/skill-docs/references/report/user-request-scope-only-guide.md +82 -0
  428. package/skill-docs/references/workflow/guide-workflow-auth-resp.md +190 -0
  429. package/skill-docs/references/workflow/guide-workflow-node-layout.md +181 -0
  430. package/skill-docs/references/workflow/guide-workflow.md +7 -3
  431. package/skill-docs/actionflows/references/components/workflow/ApproveCompletelyDelete.md +0 -17
@@ -0,0 +1,164 @@
1
+ # 报表落库自检(强制)
2
+
3
+ > **适用**:API/脚本保存布局后、交付设计器链接前(可后台跑,但**不得跳过**)。
4
+ > **目标**:尽早发现字段丢失、伪父格、绑定失败、超链接被冲掉,避免「设计器看着有格、取数/父格全错」。
5
+
6
+ ---
7
+
8
+ ## 一、父格坐标语义(勿混)
9
+
10
+ | API `leftX/leftY` 或 `topX/topY` | 设计器含义 | 说明 |
11
+ |----------------------------------|------------|------|
12
+ | **`-1, -1`** | **默认** 或 **无** | 普通 Const / 单数据集 Field 的常见正确态 |
13
+ | **`0, 0`** | **自定义 → 原点 (0,0)** | **不是默认**;写成 0,0 会显示父格「不对」 |
14
+ | **其它 `x,y`** | **自定义** 指向该坐标 | 多数据集入口、交叉、**超链接占位依赖**等 |
15
+
16
+ ---
17
+
18
+ ## 二、按单元格类型的父格规则
19
+
20
+ ### 2.1 普通 Const(表头 / 标题 / 无链接)
21
+
22
+ | 项 | 规则 |
23
+ |----|------|
24
+ | 左父格 | **`-1,-1`** |
25
+ | 上父格 | **`-1,-1`** |
26
+ | 禁止 | `(0,0)`;勿把「默认」误写成原点 |
27
+
28
+ ### 2.2 超链接 Const(`pcHreflink` / `h5Hreflink`,URL 含 `{L4}` `{C4}` 等)
29
+
30
+ > **事故**:把「左父格默认」套到「点击查看」上 → 设计器左/上显示不对,且 `{L4}` 无法解析;或重建 workbook 时丢掉 `ConstCellType.cellText` → 保存后 `cellText` 变空、`pcHreflink` 丢失。
31
+
32
+ | 项 | 规则 | 例(供应商表 M4) |
33
+ |----|------|-------------------|
34
+ | **上父格** | 无横向扩展时必须 **`topX=topY=-1`**(不需要上父格) | `(-1,-1)` |
35
+ | **左父格** | **禁止**一律改成默认;须指向占位符依赖的数据格 | `{L4}` → 左父格 **`(3,11)`**(同行「数据ID」) |
36
+ | **链接元数据** | 须进 **workbook `ConstCellType`**(`pcHreflink`/`openType`/`cellText`/`left*`/`top*`);仅写 `fields[]` **不够** | `/sp/ebdfpage/card/0/{sourceId}/{L4}` |
37
+ | **workbook** | `ConstCellType` 必须含:`cellText`、`leftX/leftY/topX/topY`、有链接时还要 `pcHreflink` | 服务端 `saveReportDevInfo` **从 cellType 回写 fields**;缺 `leftX` → Java int **0** → 伪 `(0,0)`;缺 `pcHreflink` → 链接丢失 |
38
+ | **禁止** | 只塞 `{typeName,cellText}` 的残 ConstCellType;禁止左=`(0,0)`;禁止有 `{Ln}` 却左=`-1,-1` |
39
+
40
+ **占位符 → 左父格**(自检算法):
41
+
42
+ 1. 从 `pcHreflink`/`h5Hreflink` 提取 `{L4}` / `{C4}` / `{Ln}` 等。
43
+ 2. `{L4}`:同行纵向扩展语境下,左父格应指向同列(或约定列)上提供 ID 的 Field(本需求为 `(3,11)`)。
44
+ 3. 若 URL 含占位而 `leftX/leftY === -1` → **FAIL**(不是「默认正确」)。
45
+ 4. 若 `topX/topY !== -1` 且无横向交叉需求 → **FAIL**。
46
+
47
+ ### 2.3 Field(单数据集、无指定计算)
48
+
49
+ | 场景 | 左父格 |
50
+ |------|--------|
51
+ | **新建**报表 | 优先 **`-1,-1`(默认)** |
52
+ | **已有**报表 | **禁止**用户未点名时批量改父格 |
53
+
54
+ ---
55
+
56
+ ## 三、保存门禁(每次 `saveReportDevInfo`)
57
+
58
+ ### 保存前
59
+
60
+ 1. `fields` 中 `cellType=Field` 数量 ≥ 保存前(或与预期列数一致)。
61
+ 2. workbook `dataTable` 内 `FieldCellType` 数量 ≥ Field 数。
62
+ 3. 每个 **Const**:workbook `ConstCellType` 须含 `cellText`(有文案时)以及显式 **`leftX/leftY/topX/topY`(常用 -1,禁止省略)**。
63
+ 4. 每个 **超链接 Const**:`ConstCellType` 须含非空 `pcHreflink`、`openType`,且父格与 `fields` 一致(服务端以 workbook 为准回写)。
64
+ 5. 每个 Field:`name` ∈ `fieldsAndOriginFields.fieldsKey[].name`(须带 `field_`;禁止裸雪花 ID)。
65
+ - 拉 fieldsKey 参数名用 **`datasetId`**(不是 `dataSetId`)。
66
+
67
+ ### 保存后立刻回读
68
+
69
+ | 检查项 | 失败标准 |
70
+ |--------|----------|
71
+ | Field 数量 | 比保存前减少 → **立即失败**,禁止再改,优先恢复 |
72
+ | Field.`name` | 裸 ID 或不在 fieldsKey → FAIL(`e10-cli report verify bind`) |
73
+ | 普通 Const 父格 | `left=top=(0,0)` → FAIL(伪自定义 A1) |
74
+ | 超链接 Const | 缺 `pcHreflink` / `cellText` 空 / `top≠-1` / 含 `{L*}` 但 `left=-1` 或 `left=(0,0)` → FAIL |
75
+ | 同数据集 leftFilterField | Field 上仍有跨源 leftFilter → WARN/FAIL |
76
+
77
+ ```bash
78
+ e10-cli report verify bind <reportId> [appId] # 字段绑定
79
+ e10-cli report verify self <reportId> [appId] # 父格/超链接自检
80
+ e10-cli report verify all <reportId> [appId] # 自检 + 绑定(推荐)
81
+ ```
82
+
83
+ ---
84
+
85
+ ## 四、Agent 自检脚本逻辑(摘要)
86
+
87
+ ```javascript
88
+ function assertParents(fields) {
89
+ for (const f of fields) {
90
+ if (f.cellType !== 'Const') continue;
91
+ const origin =
92
+ f.leftX === 0 && f.leftY === 0 && f.topX === 0 && f.topY === 0;
93
+ const href = f.pcHreflink || f.h5Hreflink || '';
94
+ if (origin && !href) {
95
+ throw new Error(`Const(${f.x},${f.y}) 父格(0,0)=伪自定义A1,应为-1,-1`);
96
+ }
97
+ if (!href) continue;
98
+ // 超链接:上父格默认无
99
+ if (f.topX !== -1 || f.topY !== -1) {
100
+ throw new Error(`链接格(${f.x},${f.y}) 不需要上父格,top 应为 -1,-1`);
101
+ }
102
+ if (!f.cellText) {
103
+ throw new Error(`链接格(${f.x},${f.y}) cellText 为空(workbook 可能未写 ConstCellType)`);
104
+ }
105
+ // URL 占位依赖左父格,禁止「默认」
106
+ if (/\{L\d+\}|\{C\d+\}/.test(href)) {
107
+ if (f.leftX === -1 && f.leftY === -1) {
108
+ throw new Error(`链接格(${f.x},${f.y}) 含占位符但左父格为默认,应指向依赖数据格`);
109
+ }
110
+ if (f.leftX === 0 && f.leftY === 0) {
111
+ throw new Error(`链接格(${f.x},${f.y}) 左父格不能为(0,0)`);
112
+ }
113
+ }
114
+ }
115
+ }
116
+
117
+ function assertWorkbookConstCellType(dataTable, fields) {
118
+ for (const f of fields) {
119
+ if (f.cellType !== 'Const') continue;
120
+ const cell = dataTable?.[String(f.x)]?.[String(f.y)];
121
+ const ct = cell?.style?.cellType;
122
+ if (!ct || ct.typeName !== 'ConstCellType') {
123
+ throw new Error(`workbook 缺 ConstCellType @(${f.x},${f.y})`);
124
+ }
125
+ if ((f.cellText || f.text) && !ct.cellText) {
126
+ throw new Error(`workbook 缺 cellText @(${f.x},${f.y}),保存会冲掉文案`);
127
+ }
128
+ // 缺 leftX 时服务端写成 0 → 伪自定义 A1
129
+ for (const k of ['leftX', 'leftY', 'topX', 'topY']) {
130
+ if (ct[k] === undefined || ct[k] === null) {
131
+ throw new Error(`workbook ConstCellType 缺 ${k} @(${f.x},${f.y}),会落成 0`);
132
+ }
133
+ }
134
+ if (f.pcHreflink && ct.pcHreflink !== f.pcHreflink) {
135
+ throw new Error(`workbook 缺/错 pcHreflink @(${f.x},${f.y})(服务端只认 cellType)`);
136
+ }
137
+ }
138
+ }
139
+
140
+ function assertFieldPreserved(before, after) {
141
+ const n = (fs) => fs.filter((f) => f.cellType === 'Field').length;
142
+ if (n(after) < n(before)) throw new Error('Field 被冲掉,禁止继续改');
143
+ }
144
+ ```
145
+
146
+ ---
147
+
148
+ ## 五、与交付节奏
149
+
150
+ - 布局落库成功 → **先交设计器地址**(`report-delivery-contract.md` §〇)。
151
+ - 本节自检可后台跑;**FAIL 必须补丁修复并告知**,不得假装完成。
152
+ - **禁止**:为修一格 Const 父格而提交残缺 workbook(会导致 Field 全变 Const,或 Const 文案/超链接被冲掉)。修父格必须 **整表 Field + ConstCellType 完整写入 workbook**。
153
+
154
+ ---
155
+
156
+ ## 六、相关文档
157
+
158
+ | 文档 | 关系 |
159
+ |------|------|
160
+ | `field-bind-exact-match-guide.md` | name ∈ fieldsKey |
161
+ | `datasource-selection-and-parent-filter-guide.md` §〇 | 单数据集左父格默认;**勿**套用到超链接 Const;勿擅自改已有表 |
162
+ | `safe-partial-save-guide.md` | 禁止空 workbook;须从 fields 重建 dataTable |
163
+ | `e10-cli report verify bind` | 绑定门禁 |
164
+ | `targeted-fix-guide.md` | 用户点名某处不对时禁止整表重扫 |
@@ -0,0 +1,151 @@
1
+ # 局部功能保存 · 设计区保护规范
2
+
3
+ > **适用场景**:通过 API / 脚本修改**快照、权限、查询条件、数据集筛选、页面布局**等「非布局主体」能力时。
4
+ > **事故根因(已验证)**:对 `saveReportDevInfo` 提交**空 workbook** 或 **workbookProps.sheets 无单元格** 的 payload,会**全量替换** `edc_reportsheetfield_dev` 等表,导致设计器字段与单元格配置被清空。
5
+ > **硬约束**:除非用户**明确要求删除/清除字段**,否则设计区域内容**不得被置空**。
6
+
7
+ ---
8
+
9
+ ## 一、核心原则
10
+
11
+ | 原则 | 说明 |
12
+ |------|------|
13
+ | **布局不可丢** | `getReportDevInfo.fields.length > 0` 是保存前最低门槛;保存后必须回读验证 |
14
+ | **禁止空 workbook 落库** | `workbookProps.sheets` 为空 **且** `fields` 为空 → **禁止**调用 `saveReportDevInfo`;`fields>0` 但 sheets 空 → **必须从 fields 重建**(含 spans)后再存 |
15
+ | **剔除 `(0,0)` 空 Const** | `x=0,y=0` 且文案空的 Const 为异常幽灵格,保存前删除 |
16
+ | **workbookProps 不可盲信** | 线上常见 `fields=12` 但 `workbookProps.dataTable` 为空;此时必须从 **fields 重建** dataTable |
17
+ | **groupId 原样回传** | `saveReportDevInfo` 的 `groupId`/`nameLabelId` 取自 `baseInfo`,禁止硬编码改分组 |
18
+ | **专用接口优先** | 权限 → `savePermissions`;查询 → `saveQueryItem`;数据集筛选 → `queryInfoSave`;版本还原 → `rollbackReport` |
19
+ | **快照是唯一例外需写 workbook** | 快照配置挂在 `workbook.snapshot`,必须走 `saveReportDevInfo`,但须套用 **§三 安全合并** |
20
+ | **快照 ID 禁 Number()** | `sheetId`/`id`/`jobId` 必须 **String(雪花)**;`Number(reportId)` 截断 → **设计区空白**(见 `designer-blank-prevention-guide.md`) |
21
+ | **快照默认名** | 未指定时 **`{报表名}-{date}-{time}`** |
22
+ | **showLocation 禁 0** | 合并 workbook 时若为 0 → 改为 **2**(或用户点名居左则 1) |
23
+ | **保存前快照版本** | 对已有报表做任意 `saveReportDevInfo` 前,建议 `saveAsVersion --list-only` 确认有版本可还原 |
24
+
25
+ ---
26
+
27
+ ## 二、接口与布局影响矩阵
28
+
29
+ | 操作 | 推荐接口 | 是否触及 layout/fields | 备注 |
30
+ |------|----------|------------------------|------|
31
+ | 使用/禁用权限 | `permission/table/savePermissions` | **否** | 全量替换权限 JSON,不动 fields |
32
+ | 矩阵权限 | `permission/matrix/save` | **否** | |
33
+ | 查询条件 | `saveQueryItem` / `saveQueryConfig` | **否** | |
34
+ | 数据集筛选 | `queryInfoSave` | **否** | |
35
+ | 存为新版本 | `saveAsVersion` | **否**(复制快照) | |
36
+ | 还原版本 | `GET rollbackReport` | **是**(整表替换) | 用户显式还原;会重置快照配置 |
37
+ | 页面布局/分页 | `allPageSetting` | **否**(pageSetting 独立) | |
38
+ | 定时快照 | `saveReportDevInfo` + `workbook.snapshot` | **是(若 workbook 空则灾难)** | 必须 §三 |
39
+ | 修改单元格/父格 | `saveReportDevInfo` +(可选)`saveReportWithCacheConfig` | **是** | **新空报表必须先 dev 后 cache**;见 `api-report-build-fast-path.md` |
40
+
41
+ ---
42
+
43
+ ## 三、saveReportDevInfo 安全合并流程(强制)
44
+
45
+ 凡必须调用 `saveReportDevInfo` 且**不是**「从零新建报表」或「用户要求清空」:
46
+
47
+ ```
48
+ 1. GET getReportDevInfo?reportId=
49
+ 2. fields = data.fields || []
50
+ 3. IF fields.length === 0 → ABORT(提示先 rollbackReport 或从版本还原)
51
+ 4. wb = mergeWorkbookSafe(data, patchFn)
52
+ ├─ 若 countCells(workbookProps) > 0 → 深拷贝 workbookProps
53
+ └─ 否则 → buildWorkbookFromFields(fields, sheetProps) // 禁止提交空 sheets
54
+ 5. patchFn(wb) // 仅改 snapshot / 必要字段,勿删 sheets/dataTable
55
+ 6. POST saveReportDevInfo(带当前 designKey + ebBusinessId)
56
+ 7. GET getReportDevInfo 回读:
57
+ - fields.length 不得小于保存前
58
+ - 若用户未要求删除,fields.length === 0 → 视为事故,立即 rollbackReport
59
+ ```
60
+
61
+ ### 3.1 buildWorkbookFromFields 最低要求
62
+
63
+ 从 `fields[]` 重建时,每个 field 须写入 `data.dataTable[x][y].style`(含 `cellType` 关键属性:父格、fieldKey、leftFilterField 等)。
64
+ **禁止**只提交 `{ version, sheets: {} }` 或 `{ sheets: { Sheet1: { data: { dataTable: {} } } } }`。
65
+
66
+ **Const(强制)**:`style.cellType` 须为完整 `ConstCellType`,至少包含:
67
+
68
+ | 属性 | 说明 |
69
+ |------|------|
70
+ | `cellText` | 有展示文案时必填 |
71
+ | `leftX/leftY/topX/topY` | **禁止省略**(省略 → Java int 默认 0 → 伪自定义 A1) |
72
+ | `pcHreflink` / `openType` | 超链接 Const 必填;服务端**只认 workbook cellType**,不只认 `fields[]` 顶层 |
73
+
74
+ 普通 Const 父格写 `-1`;超链接含 `{L4}` 时左父格指向依赖数据格。见 `report-self-check-guide.md` §2.2。
75
+
76
+ **定点修改**:用户只点一格时,语义上只改该格,但仍须整表 fields 原样写回 + 完整 workbook(见 `targeted-fix-guide.md`)。
77
+
78
+ ### 3.2 快照配置 patch 示例
79
+
80
+ ```javascript
81
+ const wb = mergeWorkbookSafe(dev.data, (wb) => {
82
+ wb.snapshot = {
83
+ enableSnapshot: true,
84
+ cron: '0 0 0 * * ?',
85
+ // 未指定名称时的平台默认
86
+ snapshotName: `${reportName}-{date}-{time}`,
87
+ params: JSON.stringify({ searchCondition: {} }),
88
+ // 雪花 ID 必须字符串,禁止 Number(reportId)(超 MAX_SAFE_INTEGER 会截断,设计器空白)
89
+ sheetId: String(reportId),
90
+ // 更新已有配置时可带 id/jobId(同样用 String);rollback 后建议 omit 让服务端重建调度
91
+ };
92
+ // 禁止 showLocation=0
93
+ for (const sh of Object.values(wb.sheets || {})) {
94
+ if (!sh.tag) sh.tag = {};
95
+ if (!sh.tag.showLocation || sh.tag.showLocation === 0) sh.tag.showLocation = 2;
96
+ }
97
+ });
98
+ ```
99
+
100
+ ### 3.3 保存后验证清单
101
+
102
+ | 检查项 | 通过标准 |
103
+ |--------|----------|
104
+ | `fields.length` | ≥ 保存前数量(允许只增不减,除非用户要求删格) |
105
+ | 关键单元格抽样 | 如 `(1,0)` 供应商等级 `(1,5)` 进货单编号 仍存在 |
106
+ | `snapshot.enableSnapshot` | 若本次任务为开快照,回读为 true |
107
+ | 设计器肉眼 | 提示用户 Ctrl+F5 强刷 |
108
+
109
+ ---
110
+
111
+ ## 四、事故恢复
112
+
113
+ | 现象 | 处理 |
114
+ |------|------|
115
+ | 设计器空白、`fields.length===0` | `GET rollbackReport?sheetId={版本snapshotId}&originSheetId={reportId}` |
116
+ | 无版本 | 查 `getVersionWithPage`;或本地 `inspect_*.json` / 脚本备份 |
117
+ | 快照误伤后 layout 已还原 | 快照需在设计器 **页面→快照设置** 重配,或 `set_snapshot_schedule.js`(已含保护) |
118
+
119
+ **版本 ID 来源**:`save_as_version.js --list-only` → `snapshotId` 列。
120
+
121
+ ---
122
+
123
+ ## 五、脚本与模块
124
+
125
+ | 文件 | 用途 |
126
+ |------|------|
127
+ | `e10-cli report fix(内部走安全局部保存)` | **安全合并 workbook**、保存前断言、保存后验证 |
128
+ | `e10-cli report snapshot set` | 定时快照(默认名 `{报表名}-{date}-{time}`;ID 字符串;依赖 safe_report_save) |
129
+ | `e10-cli report verify blank` | 防设计区空白门禁(sheetId/showLocation/scrollPage) |
130
+ | `e10-cli report restore` | 从版本 snapshotId 还原 layout |
131
+ | `references/designer-blank-prevention-guide.md` | **设计区空白禁令与定位** |
132
+ | `已由 CLI 取代` | `merge_workbook_safe` / `assert_layout_not_empty` / `verify_layout_preserved` |
133
+
134
+ ---
135
+
136
+ ## 六、Agent 硬约束(写入 SKILL 摘要)
137
+
138
+ 1. **默认禁止**对已有报表提交空 workbook 或 0 fields 的 `saveReportDevInfo`。
139
+ 2. 设置权限 / 查询 / 数据集筛选 / 菜单 / 复制 → **不得**调用 `saveReportDevInfo`。
140
+ 3. 设置快照 → **必须** `mergeWorkbookSafe` + 保存前后 `fields.length` 校验。
141
+ 4. 用户未说「删除」「清空」「重置布局」→ **任何步骤不得使 fields 归零**。
142
+ 5. 保存前:`saveAsVersion` 或确认 `getVersionWithPage` 有可用版本。
143
+ 6. 保存后:`getReportDevInfo` 回读失败 → **停止后续操作**,优先 `rollbackReport`。
144
+
145
+ ---
146
+
147
+ ## 七、源码依据
148
+
149
+ - `EdcReportDevDesignServiceImpl.saveReportDevInfoLast`:解压 workbook → `getFieldsFromWorkbook(wb)` → **全量** `saveFields` 覆盖 DB。
150
+ - `Workbook.snapshot`:`saveSnapshot(wb, reportId)` 仅在 workbook 含 snapshot 对象时执行;与 fields 同一保存事务。
151
+ - `workbookProps` 与 `fields` 分离存储;API 返回的 `workbookProps.sheets` 常不含 dataTable,**不能**作为唯一布局来源。
@@ -0,0 +1,84 @@
1
+ # 雪花 ID 精度安全指南
2
+
3
+ > **适用场景**:复制报表、权限绑定、添加到菜单、删除/回收站等一切涉及 `reportId` / `pageId` 的 API 链路。
4
+ > **事故案例**:`copySheet` 返回 `1311221384923619328`,Node `JSON.parse` 后变为 `1311221384923619300`(末位差 28),导致权限与菜单绑到不存在的 ID。
5
+
6
+ ---
7
+
8
+ ## 一、根因
9
+
10
+ | 项 | 值 |
11
+ |----|-----|
12
+ | E10 ID 类型 | 64 位雪花 ID(19 位十进制) |
13
+ | JS 安全整数上限 | `Number.MAX_SAFE_INTEGER = 9007199254740991`(16 位) |
14
+ | 后果 | `JSON.parse('{"id":1311221384923619328}')` → `id === 1311221384923619300` |
15
+
16
+ **Python 注意**:`json.loads` 大整数默认可保留,但 `int(report_id)` 传给部分接口仍会溢出;**全程用 `str` 承载 ID**。
17
+
18
+ ---
19
+
20
+ ## 二、强制规则(Agent)
21
+
22
+ 1. **禁止**对含 `id` / `reportId` / `pageId` 的 API 响应裸用 `JSON.parse` / `json.loads` 后直接当数字用。
23
+ 2. **必须**使用 Skill 工具:
24
+ - Node:`内置雪花安全解析` → `parseJsonSnowflakeSafe` / `extractIdFromRaw`
25
+ - Python:`内置雪花安全解析` → 同名函数
26
+ 3. **copySheet 后取新 ID 双保险**:
27
+ ```javascript
28
+ const newId = extractIdFromRaw(copyRes.raw) || stringifyId(copyRes.json.data?.id);
29
+ ```
30
+ ```python
31
+ new_id = extract_id_from_raw(cli.last_raw) or str((result.get("data") or {}).get("id", ""))
32
+ ```
33
+ 4. **后续 API 一律字符串**:`pageId`、`sourceId`、`reportId`、`sheetId` 参数禁止 `Number(id)`。
34
+ 5. **交付给用户/手册的 reportId** 必须来自 raw 提取或 snowflake 安全解析,禁止直接打印 `json.data.id`(未安全解析时)。
35
+
36
+ ---
37
+
38
+ ## 三、安全解析原理
39
+
40
+ 仅对**已知 ID 字段名**的 ≥16 位数字加引号后再 `JSON.parse`,**不**对嵌套 JSON 字符串内数字做全局替换(避免破坏 `tabs` 等字段)。
41
+
42
+ ```javascript
43
+ // 内置雪花安全解析
44
+ parseJsonSnowflakeSafe(rawText)
45
+ extractIdFromRaw(rawText, ['id', 'reportId', 'pageId'])
46
+ ```
47
+
48
+ ```python
49
+ # 内置雪花安全解析
50
+ parse_json_snowflake_safe(raw_text)
51
+ extract_id_from_raw(raw_text, keys=("id", "reportId", "pageId"))
52
+ ```
53
+
54
+ ---
55
+
56
+ ## 四、受影响 API(必用安全 ID)
57
+
58
+ | 操作 | API | ID 字段 |
59
+ |------|-----|---------|
60
+ | 复制 | `GET copySheet?sheetId=` | 响应 `data.id` |
61
+ | 权限 | `POST savePermissions` | body key、`sourceId` |
62
+ | 添加到菜单 | `POST savePublishMenu` | `page.pageId` |
63
+ | 删除 | `GET deleteReport?id=` | query `id` |
64
+ | 设计器 | `GET baseInfo?id=` | query `id` |
65
+ | 列表 | `GET report/list` | 每项 `id` |
66
+
67
+ ---
68
+
69
+ ## 五、验证清单
70
+
71
+ - [ ] copySheet 后 `newReportId` 与设计器 URL 中 ID 一致(末四位无漂移)
72
+ - [ ] `baseInfo?id={newId}` 能返回报表名称
73
+ - [ ] 菜单 `allMenus` 中 `pageId` 与报表 ID 字符串完全一致
74
+ - [ ] 权限 `getQueryItem` / `permission/table/list/new` 的 `sourceId` 正确
75
+
76
+ ---
77
+
78
+ ## 六、相关文档
79
+
80
+ | 文件 | 用途 |
81
+ |------|------|
82
+ | `report-lifecycle-api-guide.md` | 复制 / 权限 / 添加到菜单 API |
83
+ | `已由 CLI 取代` | Python 客户端(已接入 snowflake 解析) |
84
+ | `内置雪花安全解析` / `.py` | 跨语言安全解析 |