weaver-work-cli 0.1.42 → 0.1.44

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 (318) hide show
  1. package/README.md +17 -0
  2. package/dist/chunks/{archive-J4I6MCKF.js → archive-P6TBQGKL.js} +13 -5
  3. package/dist/chunks/{archive-oa-BRZKKTO4.js → archive-oa-7TQ2NXOH.js} +12 -5
  4. package/dist/chunks/{asset-L7D4FAOZ.js → asset-3ELRG37G.js} +11 -4
  5. package/dist/chunks/{asset-idle-DADLLV75.js → asset-idle-WIGMUFMD.js} +7 -3
  6. package/dist/chunks/{attachment-content-K4C7VLWQ.js → attachment-content-E3276UOV.js} +5 -4
  7. package/dist/chunks/{blog-BVGQ7NZL.js → blog-C5NMZAAC.js} +11 -4
  8. package/dist/chunks/{caizhilian-SAADNFD6.js → caizhilian-5XSM2DFP.js} +13 -6
  9. package/dist/chunks/{calendar-Q7NQY5Z2.js → calendar-FI2WNSBO.js} +12 -5
  10. package/dist/chunks/{chunk-YRSZQUD2.js → chunk-3YBDYOC4.js} +3 -3
  11. package/dist/chunks/{chunk-OOUTBLZ4.js → chunk-56EZERK4.js} +1 -1
  12. package/dist/chunks/chunk-6N4JPNFL.js +76 -0
  13. package/dist/chunks/{chunk-ZUX3P6BQ.js → chunk-727FH2NI.js} +1 -1
  14. package/dist/chunks/chunk-7BDPM5ST.js +11 -0
  15. package/dist/chunks/{chunk-EKWAQSLU.js → chunk-BCVYBYYT.js} +432 -2248
  16. package/dist/chunks/{chunk-W7BEHOSR.js → chunk-CWYGFU5B.js} +2 -2
  17. package/dist/chunks/{chunk-NOODWMCL.js → chunk-D4ADSZ7H.js} +1 -1
  18. package/dist/chunks/{chunk-SA6VBIHY.js → chunk-ETNJSKMM.js} +214 -16
  19. package/dist/chunks/{chunk-BBKDXQEC.js → chunk-F4E4EM35.js} +3 -3
  20. package/dist/chunks/{chunk-IZ7S7QUS.js → chunk-FAZTGX7S.js} +6 -6
  21. package/dist/chunks/{chunk-NKZRQXST.js → chunk-FRZKBMSW.js} +52 -36
  22. package/dist/chunks/{chunk-BYBSCN4X.js → chunk-G7PQWD4L.js} +6 -3
  23. package/dist/chunks/{chunk-GEWYMQME.js → chunk-GAMZLAG2.js} +1 -1
  24. package/dist/chunks/{chunk-R4CHUSKC.js → chunk-GM6J7Q4B.js} +4 -4
  25. package/dist/chunks/{chunk-APVFJUQH.js → chunk-GRDRG6HP.js} +3 -3
  26. package/dist/chunks/{chunk-LDZQPUIA.js → chunk-HIT4Y6OI.js} +1 -1
  27. package/dist/chunks/{chunk-EZALDOQH.js → chunk-HP7JIYMT.js} +5 -2
  28. package/dist/chunks/{chunk-LADPYOWC.js → chunk-IAZ3UPY6.js} +3 -3
  29. package/dist/chunks/{chunk-ZEDWSH32.js → chunk-IC62NFM5.js} +1 -1
  30. package/dist/chunks/{chunk-P26ZWSKU.js → chunk-KIHNAS25.js} +5 -2
  31. package/dist/chunks/{chunk-BIPYLLVS.js → chunk-N4M2DDFE.js} +15 -15
  32. package/dist/chunks/{chunk-QKNKR4RH.js → chunk-OF4S23UB.js} +4 -4
  33. package/dist/chunks/{chunk-JPRO6ER2.js → chunk-PC7VKEB5.js} +57 -60
  34. package/dist/chunks/{chunk-4PD5NWAX.js → chunk-PUQS5MWL.js} +2 -2
  35. package/dist/chunks/{chunk-2LV74IWP.js → chunk-Q4OYAQYH.js} +1 -1
  36. package/dist/chunks/{chunk-72CKAUAG.js → chunk-QVSWRLLU.js} +7 -5
  37. package/dist/chunks/{chunk-4RAE6JXP.js → chunk-TA7FXXJD.js} +6 -3
  38. package/dist/chunks/{chunk-GPMFD4RD.js → chunk-TXUG266F.js} +1 -1
  39. package/dist/chunks/{chunk-FOAA27U5.js → chunk-UFIT2UU3.js} +16 -4
  40. package/dist/chunks/{chunk-LUSPKZKY.js → chunk-UG5G54VL.js} +1 -0
  41. package/dist/chunks/{chunk-NIAJ5ZCG.js → chunk-UL5XUQ25.js} +5 -2
  42. package/dist/chunks/{chunk-FMPJJYYI.js → chunk-WRXSAVKO.js} +1 -1
  43. package/dist/chunks/{chunk-G4UR6NXN.js → chunk-WSF4NNMR.js} +3 -3
  44. package/dist/chunks/chunk-XHK4MDR5.js +2497 -0
  45. package/dist/chunks/{chunk-3KTFS4IA.js → chunk-XNIK66I4.js} +19 -9
  46. package/dist/chunks/{chunk-3SO6QL6U.js → chunk-YWX377BY.js} +5 -2
  47. package/dist/chunks/{chunk-BYATLLEF.js → chunk-Z3GDFVJR.js} +1 -1
  48. package/dist/chunks/{chunk-GHXCDPTM.js → chunk-Z7VYWPZV.js} +1 -1
  49. package/dist/chunks/{conflict-F2OMZRTO.js → conflict-ARLSZJ6V.js} +4 -3
  50. package/dist/chunks/{continuation-2CKSBLA6.js → continuation-3S37AUSH.js} +4 -3
  51. package/dist/chunks/{continuation-RN6PZN2M.js → continuation-3XLYYTKV.js} +4 -3
  52. package/dist/chunks/{continuation-HZIZRZBX.js → continuation-HFW2YT5S.js} +4 -3
  53. package/dist/chunks/{continuation-NLECEJPX.js → continuation-KI7DRRZN.js} +4 -3
  54. package/dist/chunks/{contract-5BETHRSG.js → contract-DNIIW5VJ.js} +13 -5
  55. package/dist/chunks/{cowork-3MN6EQQO.js → cowork-GMLRGVIW.js} +11 -4
  56. package/dist/chunks/{create-flow-5FQNNMVO.js → create-flow-J22BO65E.js} +8 -7
  57. package/dist/chunks/{ebuilder-form-SBHOYBUD.js → ebuilder-form-ANV2FHYV.js} +12 -7
  58. package/dist/chunks/{ehr-KMOJULKG.js → ehr-GSTGAIY3.js} +266 -24
  59. package/dist/chunks/{employee-SAK2QYXX.js → employee-22BGJ3QS.js} +3 -3
  60. package/dist/chunks/{env-LB7NBL2O.js → env-BX3VRFS7.js} +4 -3
  61. package/dist/chunks/{esb-W2PJCFCX.js → esb-ATAIASX2.js} +12 -7
  62. package/dist/chunks/{factory-6ZFQXQ46.js → factory-PETTFME6.js} +3 -2
  63. package/dist/chunks/{fna-ZQPCUV4R.js → fna-YEKBSFSX.js} +14 -8
  64. package/dist/chunks/{group-chat-2HHAJN46.js → group-chat-BFVXAYFX.js} +5 -4
  65. package/dist/chunks/{host-ATKVNZAT.js → host-HRBXEPDQ.js} +5 -5
  66. package/dist/chunks/{host-BQH22NTQ.js → host-LR55CTHP.js} +5 -5
  67. package/dist/chunks/{host-X2CSLFM6.js → host-SUOY6VYQ.js} +5 -5
  68. package/dist/chunks/{host-4CBHGOHT.js → host-SZGV4UNT.js} +5 -5
  69. package/dist/chunks/{host-YTODKMSL.js → host-WIKN2EJ5.js} +5 -5
  70. package/dist/chunks/{hrm-FFM4UJFS.js → hrm-NRDO4W5G.js} +11 -7
  71. package/dist/chunks/{im-VEHKDQPB.js → im-IQ2HN23S.js} +8 -7
  72. package/dist/chunks/{invoice-LVIKSIIF.js → invoice-MNRW76PP.js} +636 -1768
  73. package/dist/chunks/{jiuchuanhui-X6DINO5P.js → jiuchuanhui-DTRBAX4N.js} +14 -6
  74. package/dist/chunks/{lazy-dispatch-KSWTN5L6.js → lazy-dispatch-ZVWAI25B.js} +7 -6
  75. package/dist/chunks/{mail-VDKRGUD3.js → mail-ZVAUXOJA.js} +16 -14
  76. package/dist/chunks/{meeting-CLC6HP3Z.js → meeting-FEVPZ67S.js} +21 -14
  77. package/dist/chunks/{okr-CHG4OO3U.js → okr-SDH3E5RA.js} +12 -5
  78. package/dist/chunks/{operations-5QL3AECO.js → operations-62N6EP3C.js} +4 -3
  79. package/dist/chunks/{plan-XWR75667.js → plan-E35JFDI7.js} +12 -5
  80. package/dist/chunks/{project-5BXOOKMG.js → project-73QXBAB2.js} +11 -4
  81. package/dist/chunks/reception-UWZVACBN.js +1899 -0
  82. package/dist/chunks/{recruit-stage-DGMFNNDE.js → recruit-stage-4MAOCKFY.js} +320 -57
  83. package/dist/chunks/registry-IM5G23LS.js +24 -0
  84. package/dist/chunks/{registry-RHMW6ANW.js → registry-JDUS4E7D.js} +7 -6
  85. package/dist/chunks/{registry-7FFOXIAW.js → registry-KNKSCJNT.js} +7 -6
  86. package/dist/chunks/{registry-Z43434VG.js → registry-PO7SI256.js} +4 -4
  87. package/dist/chunks/{registry-OZSMDVPP.js → registry-PVUZQDDQ.js} +3 -3
  88. package/dist/chunks/{room-recommend-62H7ZQQ6.js → room-recommend-H7KLXA5R.js} +6 -5
  89. package/dist/chunks/{schedule-FNXKH3DQ.js → schedule-ESZIBAUO.js} +6 -5
  90. package/dist/chunks/{workflow-ADHKCAJK.js → workflow-CWJFJLQU.js} +13 -8
  91. package/dist/cmd/action.js +6 -0
  92. package/dist/cmd/identity/index.js +45 -0
  93. package/dist/cmd/index.js +2 -0
  94. package/dist/core/continuation-ttl.js +18 -0
  95. package/dist/core/error-codes.js +85 -0
  96. package/dist/core/logger.js +11 -0
  97. package/dist/index.js +37 -31
  98. package/dist/internal/e10/auth/commands.js +163 -8
  99. package/dist/internal/e10/auth/error-log.js +182 -0
  100. package/dist/internal/e10/auth/session.js +17 -3
  101. package/dist/internal/e10/auth-recovery.js +39 -12
  102. package/dist/internal/e10/context.js +17 -2
  103. package/dist/internal/skills/install.js +9 -1
  104. package/dist/shortcuts/archive/continuation.js +2 -1
  105. package/dist/shortcuts/archive/index.js +3 -0
  106. package/dist/shortcuts/archive/operations/confirm.js +2 -1
  107. package/dist/shortcuts/archive-oa/continuation.js +2 -1
  108. package/dist/shortcuts/archive-oa/index.js +2 -0
  109. package/dist/shortcuts/archive-oa/operations/confirm.js +2 -1
  110. package/dist/shortcuts/asset/continuation.js +2 -1
  111. package/dist/shortcuts/asset/index.js +2 -0
  112. package/dist/shortcuts/asset-idle/index.js +2 -0
  113. package/dist/shortcuts/blog/continuation.js +2 -1
  114. package/dist/shortcuts/blog/index.js +2 -0
  115. package/dist/shortcuts/caizhilian/continuation.js +2 -1
  116. package/dist/shortcuts/caizhilian/index.js +2 -0
  117. package/dist/shortcuts/caizhilian/operations/confirm.js +3 -2
  118. package/dist/shortcuts/calendar/continuation.js +2 -1
  119. package/dist/shortcuts/calendar/index.js +2 -0
  120. package/dist/shortcuts/calendar/operations/write.js +1 -1
  121. package/dist/shortcuts/contract/continuation.js +2 -1
  122. package/dist/shortcuts/contract/index.js +2 -0
  123. package/dist/shortcuts/contract/operations/write.js +2 -1
  124. package/dist/shortcuts/cowork/continuation.js +2 -1
  125. package/dist/shortcuts/cowork/index.js +2 -0
  126. package/dist/shortcuts/ebuilder-form/continuation.js +2 -1
  127. package/dist/shortcuts/ebuilder-form/index.js +2 -0
  128. package/dist/shortcuts/ebuilder-form/operations/write.js +3 -2
  129. package/dist/shortcuts/ehr/continuation.js +2 -1
  130. package/dist/shortcuts/ehr/index.js +2 -0
  131. package/dist/shortcuts/ehr/operations/attend-write.js +1 -1
  132. package/dist/shortcuts/ehr/operations/recruit-candidate-import.js +182 -3
  133. package/dist/shortcuts/ehr/operations/recruit-position.js +134 -2
  134. package/dist/shortcuts/ehr/operations/recruit-write.js +1 -1
  135. package/dist/shortcuts/esb/continuation.js +2 -1
  136. package/dist/shortcuts/esb/index.js +2 -0
  137. package/dist/shortcuts/esb/operations/trigger.js +2 -1
  138. package/dist/shortcuts/fna/continuation.js +2 -1
  139. package/dist/shortcuts/fna/index.js +2 -0
  140. package/dist/shortcuts/fna/operations/invoice-writeoff.js +1 -1
  141. package/dist/shortcuts/fna/operations/loan.js +1 -1
  142. package/dist/shortcuts/hrm/index.js +2 -0
  143. package/dist/shortcuts/im/continuation.js +2 -1
  144. package/dist/shortcuts/index.js +5 -0
  145. package/dist/shortcuts/invoice/continuation.js +2 -1
  146. package/dist/shortcuts/invoice/index.js +14 -15
  147. package/dist/shortcuts/invoice/invoice-record.js +93 -0
  148. package/dist/shortcuts/invoice/manifest.js +190 -393
  149. package/dist/shortcuts/invoice/operations/add.js +2 -1
  150. package/dist/shortcuts/invoice/operations/delete.js +2 -1
  151. package/dist/shortcuts/invoice/operations/import.js +2 -1
  152. package/dist/shortcuts/invoice/operations/issuing-contract-detail.js +86 -0
  153. package/dist/shortcuts/invoice/operations/issuing-contracts.js +210 -0
  154. package/dist/shortcuts/invoice/operations/registry.js +17 -17
  155. package/dist/shortcuts/invoice/operations/reim-auto.js +4 -569
  156. package/dist/shortcuts/invoice/operations/reim.js +52 -341
  157. package/dist/shortcuts/invoice/operations/shared.js +21 -4
  158. package/dist/shortcuts/invoice/operations/update.js +2 -1
  159. package/dist/shortcuts/invoice/projection.js +10 -62
  160. package/dist/shortcuts/jiuchuanhui/continuation.js +2 -1
  161. package/dist/shortcuts/jiuchuanhui/index.js +2 -0
  162. package/dist/shortcuts/jiuchuanhui/operations/datajson.js +2 -1
  163. package/dist/shortcuts/jiuchuanhui/operations/esb.js +2 -1
  164. package/dist/shortcuts/mail/continuation.js +2 -1
  165. package/dist/shortcuts/mail/index.js +2 -0
  166. package/dist/shortcuts/mail/operations/mail-blacklist.js +1 -1
  167. package/dist/shortcuts/mail/operations/mail-contacts.js +1 -1
  168. package/dist/shortcuts/mail/operations/mail-send.js +1 -1
  169. package/dist/shortcuts/mail/operations/mail-sign.js +1 -1
  170. package/dist/shortcuts/mail/operations/mail-template.js +1 -1
  171. package/dist/shortcuts/meeting/continuation.js +2 -1
  172. package/dist/shortcuts/meeting/index.js +2 -0
  173. package/dist/shortcuts/meeting/operations/change.js +1 -1
  174. package/dist/shortcuts/meeting/operations/create.js +1 -1
  175. package/dist/shortcuts/meeting/operations/eb/create-flow.js +16 -7
  176. package/dist/shortcuts/meeting/operations/eb/decision.js +1 -1
  177. package/dist/shortcuts/meeting/operations/eb/factory.js +1 -1
  178. package/dist/shortcuts/meeting/operations/lifecycle.js +1 -1
  179. package/dist/shortcuts/meeting/operations/receipts.js +1 -1
  180. package/dist/shortcuts/meeting/operations/signs.js +1 -1
  181. package/dist/shortcuts/okr/continuation.js +2 -1
  182. package/dist/shortcuts/okr/index.js +2 -0
  183. package/dist/shortcuts/okr/operations/write.js +1 -1
  184. package/dist/shortcuts/plan/continuation.js +2 -1
  185. package/dist/shortcuts/plan/index.js +2 -0
  186. package/dist/shortcuts/plan/operations/write.js +1 -1
  187. package/dist/shortcuts/project/continuation.js +2 -1
  188. package/dist/shortcuts/project/index.js +2 -0
  189. package/dist/shortcuts/reception/constants.js +53 -0
  190. package/dist/shortcuts/reception/errors.js +54 -0
  191. package/dist/shortcuts/reception/host.js +125 -0
  192. package/dist/shortcuts/reception/index.js +198 -0
  193. package/dist/shortcuts/reception/manifest.js +177 -0
  194. package/dist/shortcuts/reception/operations/ask.js +71 -0
  195. package/dist/shortcuts/reception/operations/browsertool.js +58 -0
  196. package/dist/shortcuts/reception/operations/compose.js +129 -0
  197. package/dist/shortcuts/reception/operations/customparams.js +74 -0
  198. package/dist/shortcuts/reception/operations/doc.js +238 -0
  199. package/dist/shortcuts/reception/operations/docrender.js +36 -0
  200. package/dist/shortcuts/reception/operations/panels.js +179 -0
  201. package/dist/shortcuts/reception/operations/registry.js +26 -0
  202. package/dist/shortcuts/reception/operations/render-assets.js +184 -0
  203. package/dist/shortcuts/reception/operations/render.js +123 -0
  204. package/dist/shortcuts/reception/operations/runs.js +38 -0
  205. package/dist/shortcuts/reception/operations/schedule.js +127 -0
  206. package/dist/shortcuts/reception/operations/shared.js +196 -0
  207. package/dist/shortcuts/reception/operations/snapshot.js +68 -0
  208. package/dist/shortcuts/reception/operations/types.js +1 -0
  209. package/dist/shortcuts/reception/operations.js +33 -0
  210. package/dist/shortcuts/reception/upload.js +218 -0
  211. package/dist/shortcuts/recruit-stage/context.js +145 -33
  212. package/dist/shortcuts/recruit-stage/continuation.js +2 -1
  213. package/dist/shortcuts/recruit-stage/operations/jd-create.js +106 -17
  214. package/dist/shortcuts/recruit-stage/operations/resume-import.js +166 -10
  215. package/dist/shortcuts/workflow/continuation.js +2 -1
  216. package/dist/shortcuts/workflow/index.js +2 -0
  217. package/dist/shortcuts/workflow/operations/form.js +32 -8
  218. package/dist/shortcuts/workflow/operations/write.js +1 -1
  219. package/docs/_catalog.md +3 -0
  220. package/docs/agent-invoice.md +1 -1
  221. package/docs/archive-oa.md +1 -1
  222. package/docs/caizhilian.md +1 -1
  223. package/docs/calendar.md +1 -1
  224. package/docs/contract.md +1 -1
  225. package/docs/e10-auth.md +16 -0
  226. package/docs/ehr.md +2 -2
  227. package/docs/esb.md +1 -1
  228. package/docs/im.md +1 -1
  229. package/docs/invoice.md +8 -12
  230. package/docs/okr.md +1 -1
  231. package/docs/reception.md +119 -0
  232. package/package.json +1 -1
  233. package/scripts/clean.mjs +43 -2
  234. package/skill-template/business-info.json +18 -2
  235. package/skill-template/domains/caizhilian.md +1 -1
  236. package/skill-template/domains/reception-flow.md +18 -0
  237. package/skill-template/domains/yepiaotong.md +4 -7
  238. package/skills/weaver-e10-archive-oa/references/source-manifest.json +14 -14
  239. package/skills/weaver-e10-blog/references/blog-publish.md +1 -1
  240. package/skills/weaver-e10-blog/references/source-manifest.json +7 -7
  241. package/skills/weaver-e10-caizhilian/references/source-manifest.json +21 -21
  242. package/skills/weaver-e10-caizhilian/references/write-protocol.md +2 -2
  243. package/skills/weaver-e10-calendar/references/calendar-write.md +1 -1
  244. package/skills/weaver-e10-cowork/SKILL.md +1 -1
  245. package/skills/weaver-e10-ebuilder-form/SKILL.md +1 -1
  246. package/skills/weaver-e10-ebuilder-form/references/custom-api.md +1 -1
  247. package/skills/weaver-e10-ebuilder-form/references/openapi-write.md +1 -1
  248. package/skills/weaver-e10-esb/SKILL.md +2 -2
  249. package/skills/weaver-e10-esb/references/source-manifest.json +22 -22
  250. package/skills/weaver-e10-esb/references/trigger.md +2 -2
  251. package/skills/weaver-e10-jinchengda/references/contract-clause-library-crud.md +1 -1
  252. package/skills/weaver-e10-jinchengda/references/contract-clause-reference-save.md +1 -1
  253. package/skills/weaver-e10-jinchengda/references/contract-request-write.md +1 -1
  254. package/skills/weaver-e10-jinchengda/references/source-manifest.json +29 -29
  255. package/skills/weaver-e10-jucailin/SKILL.md +1 -1
  256. package/skills/weaver-e10-jucailin/references/attend-write.md +2 -2
  257. package/skills/weaver-e10-jucailin/references/recruit-create.md +12 -3
  258. package/skills/weaver-e10-jucailin/references/recruit-write.md +1 -1
  259. package/skills/weaver-e10-meeting/SKILL.md +8 -6
  260. package/skills/weaver-e10-meeting/references/meeting-change.md +1 -1
  261. package/skills/weaver-e10-meeting/references/meeting-create.md +1 -1
  262. package/skills/weaver-e10-meeting/references/meeting-lifecycle.md +1 -1
  263. package/skills/weaver-e10-meeting/references/meeting-verification.md +1 -1
  264. package/skills/weaver-e10-okr/references/okr-align.md +1 -1
  265. package/skills/weaver-e10-okr/references/okr-keyresult.md +1 -1
  266. package/skills/weaver-e10-okr/references/okr-write.md +1 -1
  267. package/skills/weaver-e10-okr/references/source-manifest.json +8 -8
  268. package/skills/weaver-e10-plan/references/plan-report-write.md +1 -1
  269. package/skills/weaver-e10-plan/references/source-manifest.json +20 -20
  270. package/skills/weaver-e10-qiyecheng/references/loan-management.md +1 -1
  271. package/skills/weaver-e10-qiyecheng/references/source-manifest.json +18 -18
  272. package/skills/weaver-e10-reception-flow/SKILL.md +173 -0
  273. package/skills/weaver-e10-reception-flow/assets//350/241/214/347/250/213/345/215/225/346/250/241/346/235/277-/346/263/233/345/276/256.docx +0 -0
  274. package/skills/weaver-e10-reception-flow/data/fields-snapshot.json +213 -0
  275. package/skills/weaver-e10-reception-flow/references/browsertool.md +68 -0
  276. package/skills/weaver-e10-reception-flow/references/env-pitfalls.md +51 -0
  277. package/skills/weaver-e10-reception-flow/references/fields-snapshot.md +227 -0
  278. package/skills/weaver-e10-reception-flow/references/guide.md +179 -0
  279. package/skills/weaver-e10-reception-flow/scripts/locate.sh +14 -0
  280. package/skills/weaver-e10-reception-flow/scripts/render.py +724 -0
  281. package/skills/weaver-e10-recruit-stage/SKILL.md +9 -5
  282. package/skills/weaver-e10-recruit-stage/lib/recruit-xiaoe-file.mjs +1 -1
  283. package/skills/weaver-e10-recruit-stage/lib/xiaoe-session.mjs +66 -0
  284. package/skills/weaver-e10-recruit-stage/references/position-templates.md +202 -0
  285. package/skills/weaver-e10-recruit-stage/references/recruit-jd-create.md +22 -0
  286. package/skills/weaver-e10-recruit-stage/references/recruit-resume-import.md +14 -1
  287. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +6 -0
  288. package/skills/weaver-e10-shijingran/SKILL.md +5 -5
  289. package/skills/weaver-e10-shijingran/references/source-manifest.json +37 -36
  290. package/skills/weaver-e10-skill-maker/references/module-cli-generation.md +2 -0
  291. package/skills/weaver-e10-wenshuding/references/source-manifest.json +3 -3
  292. package/skills/weaver-e10-workflow/references/source-manifest.json +32 -32
  293. package/skills/weaver-e10-yepiaotong/SKILL.md +19 -26
  294. package/skills/weaver-e10-yepiaotong/references/invoice-detail.md +13 -10
  295. package/skills/weaver-e10-yepiaotong/references/invoice-enterprise-list.md +2 -0
  296. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-workflow.md +194 -155
  297. package/skills/weaver-e10-yepiaotong/references/invoice-output-view.md +28 -32
  298. package/skills/weaver-e10-yepiaotong/references/invoice-personal-list.md +5 -1
  299. package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +8 -10
  300. package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +211 -616
  301. package/skills/weaver-e10-yepiaotong/references/reim-examples.md +149 -117
  302. package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +17 -20
  303. package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +20 -39
  304. package/skills/weaver-e10-yepiaotong/references/reim-matching-rules.md +55 -22
  305. package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +7 -17
  306. package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +88 -92
  307. package/skills/weaver-e10-yepiaotong/references/source-manifest.json +144 -354
  308. package/skills/weaver-e10-yimiaoban/SKILL.md +1 -1
  309. package/skills/weaver-e10-yimiaoban/references/msg-write.md +1 -1
  310. package/skills/weaver-e10-yimiaoban/references/safety-boundaries.md +1 -1
  311. package/skills/weaver-e10-yimiaoban/references/source-manifest.json +7 -7
  312. package/dist/chunks/chunk-TTPJJJC4.js +0 -465
  313. package/dist/chunks/registry-BKBZPBAJ.js +0 -23
  314. package/dist/shortcuts/invoice/markdown.js +0 -172
  315. package/dist/shortcuts/invoice/operations/issuing-qys.js +0 -424
  316. package/skills/weaver-e10-meeting.zip +0 -0
  317. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +0 -131
  318. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-form-fill-rules.md +0 -179
@@ -1,131 +0,0 @@
1
- # 开票端到端示例
2
-
3
- ## 什么时候读取
4
-
5
- 需要参考开票完整对话流程时读取本文件。全部示例都是**唯一链路**(获取待开票合同数据 → 开票流程草稿,规则见 [invoice-issuing-workflow.md](invoice-issuing-workflow.md))。数据含契约锁、泛微及其他合同。CLI 已移除直接开票接口(0.1.27 起),用户说"直接开票 / 不走流程 / 存待开台账"时同样走主链路建流程草稿,并向用户说明开票必须经流程审批。
6
-
7
- ---
8
-
9
- # 主链路:获取待开票合同数据后发起开票流程
10
-
11
- ## 示例 1:按合同号开票
12
-
13
- **用户**:帮我把南昌我爱我家那份合同开票
14
-
15
- **AI**:
16
-
17
- 1. `invoice.issuing.qys.list`,`keyword="南昌我爱我家"` → `groups` 命中 1 组(合同号 20266105541,销售方「上海亘岩网络科技有限公司」,1 行,技术服务费,6.0%,开票金额合计 20000.00)。销售方是这个名称,所以选契约锁开票流程。核算公司是泛微网络、泛微软件、上海田亩、成都泛微、泛微国际、北京泛微、浙江泛微之一时,`createForm` 改为 `合同收款发票开具及快递申请(100003460000000214)`,字段 id 以当次 `createForm` 的中文名为准。那条流程没有「开票内容」,确认卡片和 `data` 都不要写这个字段。核算公司为空或不在这份名单里时先问用户,选定前不建草稿。用户要退票、冲红或红冲时改为 `合同开票冲红流程(887410479139758085)`,不套用开票填单规则。
18
- 2. 展示确认卡片:
19
-
20
- > 将为以下合同发起「开票申请」流程(只存草稿,不会直接开票):
21
- >
22
- > 合同号:20266105541(南昌我爱我家科技有限公司开放平台续购20000元10000份)
23
- > 购方:南昌我爱我家科技有限公司 税号:91360125083909438T
24
- > 销售方:上海亘岩网络科技有限公司
25
- > 开票流程:契约锁合同收款发票开具及快递申请
26
- > 发票类型:全电专票
27
- >
28
- > | 序号 | 商品 | 税率 | 开票金额(含税) |
29
- > | --- | --- | --- | --- |
30
- > | 1 | 技术服务费 | 6.0% | 20000 |
31
- >
32
- > 开票金额合计(含税):20000.00(共 1 行)
33
- >
34
- > 本次开票金额:20000(默认按总金额开)
35
- >
36
- > 开票事由:合同20266105541(南昌我爱我家科技有限公司开放平台续购20000元10000份)技术服务费全额开票,金额20000元
37
- >
38
- > 开票内容:技术服务费(按货物名称「技术服务费」匹配)
39
- >
40
- > 预计收款时间:(必填)请选择:本月底 2026-10-31 / 下月底 2026-11-30 / 30 天后 2026-11-22,或直接给一个日期
41
- >
42
- > 请回复预计收款时间并确认发起。
43
-
44
- **用户**:确认,下月底收款
45
-
46
- **AI**:
47
-
48
- 3. `workflow.createForm`,`workflow=["契约锁合同收款发票开具及快递申请(100003460000001852)"]`
49
- 4. 按 [invoice-issuing-form-fill-rules.md](invoice-issuing-form-fill-rules.md) 组装 `data`,用户没有特殊说明,全部取默认值:
50
- - `data.main`:「合同号」`20266105541`;「相关合同审批流程」`南昌我爱我家科技有限公司开放平台续购20000元10000份(1326792548468580636)`;「产品类型」`契约锁`;「开票内容」`技术服务费`(货物名称与选项名完全相同);「开票日期」取当天;「开票备注」`20266105541`;「预计收款时间」按"下月底"换算为 `2026-11-30`;「开票事由」自动生成为 `合同20266105541(南昌我爱我家科技有限公司开放平台续购20000元10000份)技术服务费全额开票,金额20000元`。
51
- - 明细第 1 行取该组唯一台账行,只传「金额(含税)」`20000`(按总金额开)。货物名称、购买方名称、明细合同号、明细行id、单价、规格类型、单位、税率、总开票金额、已开票金额、未开票金额都由合同号联动带出,不传;数量、开户行名称、开户行银行帐号创建时不传;金额(不含税)、税额不传。
52
- - `requestName="开票申请-南昌我爱我家科技有限公司-20266105541"`。
53
-
54
- 如果用户说"这次先开 1 万",明细「金额(含税)」改填 `10000`,开票事由改为 `合同20266105541(南昌我爱我家科技有限公司开放平台续购20000元10000份)技术服务费开票,本次10000元,合同开票总额20000.00元`,其余不变。
55
- 5. `workflow.createRequest`,`action="draft"` → `CREATED` → 原样粘贴 `finalMarkdown`,再补一句「预计收款时间按『下月底』填为 2026-11-30」
56
-
57
- 如果用户只回"确认"没给日期:**不建草稿**,只问「预计收款时间填哪天?可以直接回 本月底 / 下月底 / 30 天后,或给一个具体日期。」拿到日期后再执行第 3 步。
58
- 6. `linkageResult` 含「是否存在合同明细数据=存在」「总开票金额=20000.00」「货物名称=技术服务费」,且「本次开票总金额=20000.00」与本次填写的金额一致 → 不额外说明
59
- 7. 补正开户行:`workflow.editLoad` 读草稿。假设台账没有开户行信息、「开户行及帐号」为 `兴业银行股份有限公司深圳西乡支行,账号:338160100100000455`,按「,账号:」拆开。`workflow.editPrepare` 只传主表这两个字段,然后问用户:
60
-
61
- > 草稿已建好。开户行名称和账号需要分开补进草稿:
62
- > - 开户行名称:兴业银行股份有限公司深圳西乡支行
63
- > - 开户行银行帐号:338160100100000455
64
- >
65
- > 要把开户行名称和账号分开补进草稿吗?
66
-
67
- 用户确认后 `workflow.editApply`。
68
- 8. 回复末尾只提醒数量(开票内容已按货物名称「技术服务费」写入,不再提醒)。同一次 `editLoad` 里,明细第 1 行数量是联动带出的 `1201835186337538063`,台账数量是 `1`。
69
-
70
- > 提交前请在 E10 里改:
71
- > - 明细第 1 行数量:联动带出的是 1201835186337538063,请在 E10 改成 1
72
-
73
- ---
74
-
75
- ## 示例 2:命中多份合同,让用户选
76
-
77
- **用户**:开一下技术服务费那几单
78
-
79
- **AI**:`invoice.issuing.qys.list`,`keyword="技术服务费"` → `groups` 4 组。列出每组的合同号、合同审批流程、购方、行数、开票金额合计,请用户选择**一份**合同;**不替用户选**。
80
-
81
- **用户**:中冶南方那个
82
-
83
- **AI**:按示例 1 的第 2 步起继续,只处理这一组。用户要求多份一起开时,逐组确认、逐组 `createForm` + `createRequest`,`continuation` 不跨组复用。
84
-
85
- ---
86
-
87
- ## 示例 3:同一合同部分行已开票
88
-
89
- **用户**:开一下合同 20266105526 的票
90
-
91
- **AI**:
92
-
93
- 1. `invoice.issuing.qys.list`,`contractNo="20266105526"` → 1 组,`rowCount=1`,`totalAmount="46292.10"`,`blockedRows=1`,`warnings` 含"同合同另有 1 行已开票、开票中或已废弃…"
94
- 2. 确认卡片只列 1 行可开票明细,末尾追加:
95
-
96
- > ⚠️ 同合同另有 1 行已开票、开票中或已废弃。流程按合同号联动,可能一并带出这些行,请在 E10 草稿里核对明细。
97
-
98
- 3. 用户确认 → `createForm` → `createRequest(draft)` → 粘贴 `finalMarkdown`
99
- 4. `linkageResult` 里「本次开票总金额」与本次填写的 46292.10 不一致(联动带出的行数与可开票行数不同,金额可能填到了已开票的行上)→ 在 `finalMarkdown` 后只追加一行:
100
-
101
- > ⚠️ 流程汇总的本次开票总金额为 92584.20,与本次填写的开票金额 46292.10 不一致,请在 E10 核对后再提交。
102
-
103
- ---
104
-
105
- ## 示例 4:线索为空 / 没有可开票的行
106
-
107
- **用户**:帮我开票
108
-
109
- **AI**:要给哪个合同开票?请提供合同号或客户名称。
110
-
111
- **用户**:中冶南方
112
-
113
- **AI**:`invoice.issuing.qys.list`,`keyword="中冶南方"` → `groups` 为空 → `includeIssued=true` 再查一次 → 1 组,`rowCount=0`,`blockedRows=1`,`items[0].blockers=["已有发票号码 26312000000012345678"]`
114
-
115
- > 中冶南方工程技术有限公司的合同 20266105521 当前没有可开票的行:已有发票号码 26312000000012345678。
116
-
117
- 结束,不发起流程。
118
-
119
- ---
120
-
121
- ## 示例 4.1:购方没有税号,台账却是专票
122
-
123
- **用户**:开一下合同 20266105600 的票
124
-
125
- **AI**:`invoice.issuing.qys.list`,`contractNo="20266105600"` → 1 组,`purchaserTaxNo=""`,`invoiceTypes=["全电专票"]`,`specialInvoiceWithoutTaxNo=true`
126
-
127
- > 张三(个人)没有税号,不能开专票,只能开普票。请先把台账里这份合同的发票类型改成普票(如全电普票),再让我发起。
128
-
129
- 结束,不展示确认卡片、不发起流程;也不在流程里手工改发票类型。
130
-
131
-
@@ -1,179 +0,0 @@
1
- # 开票流程填单规则
2
-
3
- ## 什么时候读取
4
-
5
- AI 开票组装 `workflow.createRequest` 的 `data` 时读取本文件(流程编排见 [invoice-issuing-workflow.md](invoice-issuing-workflow.md))。适用两条开票流程:销售方取台账「核算公司」,名称必须完全相同:为「上海亘岩网络科技有限公司」时用 `契约锁合同收款发票开具及快递申请(100003460000001852)`;为泛微网络、泛微软件、上海田亩、成都泛微、泛微国际、北京泛微、浙江泛微之一时用 `合同收款发票开具及快递申请(100003460000000214)`。核算公司为空或不在这份名单里时先问用户,选定前不建草稿。退票、冲红、红冲不读本文件,走 `合同开票冲红流程(887410479139758085)`。
6
-
7
- ## 总原则
8
-
9
- 1. **用户说了就按用户的**:用户本轮对某个字段有特殊说明(金额、日期、事由、收件信息等),一律以用户为准。
10
- 2. **用户没说就按下表默认值填**:下表给了默认值的字段直接填,不再问用户。
11
- 3. **联动字段不传**:填了「合同号」之后,联动会带出主表的购方名称、税号、发票类型,以及明细的整行台账数据(货物名称、购买方名称、明细合同号、明细行id、单价、规格类型、单位、税率、税收分类编码、总开票金额、已开票金额、未开票金额),Agent 不传这些字段。
12
- 4. **创建时不传的两类字段**(详见下文「创建后补正」):
13
- - 明细「数量」:联动会把它写成错值,Agent 改不了。草稿建好后请用户在 E10 里改。
14
- - 主表开户行名称与账号:联动会把它们写成混写值。草稿建好后经编辑链补正。
15
- 5. **「开票内容」只在契约锁流程填写**:只有创建 `契约锁合同收款发票开具及快递申请(100003460000001852)` 时,才加载下文「开票内容推断」并写入。其他流程(包括 `合同收款发票开具及快递申请`)没有这个字段:不推断、不传、不问、不提醒,也不要把值改填到名称相近的字段。
16
- 6. **其余字段留空**:下表没有列出、用户也没说的字段,按 `workflow-create.md`「填值纪律」处理(`initialValue` → 历史一致值 → 留空)。留空的必填项会出现在草稿的 `missingFields` 里,由用户提交前补齐。
17
-
18
- 字段 id 以当次 `createForm` 返回的 `fields` 按中文名定位为准。下表括号里的 id 是契约锁开票流程的实测值;另一条开票流程必须改用同中文名的 id,中文名对不上就不要借用这里的 id。
19
-
20
- ## 主表
21
-
22
- | 字段 | 用户没说时的默认值 | 来源 |
23
- | --- | --- | --- |
24
- | 流程标题 `requestName` | `开票申请-{购方名称}-{合同号}` | `group.purchaserName`、`group.contractNo` |
25
- | 合同号(`100003720000056343`) | 本组合同号原值 | `group.contractNo` |
26
- | 相关合同审批流程(`100003720000056262`) | `{合同审批流程名称}({流程ID})` | `group.contractFlowName`、`group.contractFlowId`;ID 为空时留空 |
27
- | 开票内容(`100003720000056243`,必填,下拉) | **仅** `契约锁合同收款发票开具及快递申请(100003460000001852)`。按「开票内容推断」从明细货物名称选出最符合的选项名并传入;用户本轮指定了且与某个选项名完全相同就用用户的。全部对不上时不传。其他流程忽略本行 | 明细货物名称对照字段 `options` |
28
- | 所售产品版本号(`100003720000056244`,下拉) | 取明细「规格类型」:`group.specifications` 只有 1 个值且与选项名**完全相同**(如 `V8.0`)时填该选项;不在选项里(如 `V8`、`8.0`)时留空,**不自行补全或改写**;有多个不同值时在确认卡片里问用户选哪个;为空时留空(不选「空」选项) | `group.specifications`(即台账「规格型号」)对照字段 `options` |
29
- | 产品类型(`100003720000056342`) | `契约锁` | 待开票合同数据;该下拉的默认选项仍是「契约锁」 |
30
- | 开票日期(`100003720000056255`) | 当天日期 | — |
31
- | 开票备注(`100003720000118915`) | 合同号 | `group.contractNo` |
32
- | 本次开票总金额、开票金额(本次开具发票金额) | **不传**:由表单按明细「金额(含税)」汇总(实测填 5900 后两者都联动为 5900.00) | 联动 |
33
- | 开票事由(填写合同第几笔款项)(`100003720000056252`) | **自动生成**,公式见下文「开票事由生成规则」;用户给了原话就用用户的 | `group`、本次开票金额 |
34
- | 预计收款时间(`100003720000056250`,必填,日期) | **必须问到用户给出日期才建草稿**,不自己定默认值、不留空,规则见下文「预计收款时间」 | 用户 |
35
- | 快递地址 | **不传**,由联动带出;用户另有指定时才填 | 联动 |
36
- | 公司名称、税号、开票地址、发票类型 | **不传**,以合同号联动带出的值为准 | 联动 |
37
- | 开户行名称(请予客户方财务核实)(`1211869454131068975`) | **创建时不传**,创建后补正为 `group.purchaserBankName` | CLI 已从台账拆好 |
38
- | 开户行银行帐号(请予客户方财务核实)(`1211869454131068976`) | **创建时不传**,创建后补正为 `group.purchaserBankAccount`(**只含账号**) | CLI 已从台账拆好 |
39
- | 发票类型 × 购方税号 | **购方没有税号只能开普票,不能开专票**。分组 `specialInvoiceWithoutTaxNo=true` 时不发起流程,让用户先在台账改为普票(见 [invoice-issuing-workflow.md](invoice-issuing-workflow.md) Step 2)。不要在 `data` 里改发票类型:联动值优先,会被覆盖 | `group.purchaserTaxNo`、`group.invoiceTypes` |
40
- | 收件人、联系电话、合同客户、相关合同(文档) | **不传**:填了「相关合同审批流程」后由联动带出;用户另有指定时才覆盖 | 联动 |
41
-
42
- ### 开票内容推断
43
-
44
- **只在创建 `契约锁合同收款发票开具及快递申请(100003460000001852)` 时加载本节。** 其他流程没有独立的「开票内容」字段,整节忽略:不推断、不写入 `data`、确认卡片不写这一行、创建后也不提醒用户去选。
45
-
46
- 该流程主表只有一个「开票内容」。选项名以 `createForm` 返回的该字段 `options[].name` 为准,不要用记忆里的选项清单。
47
-
48
- 货物名称按明细行取:优先 `items[].invoiceItemName`(开票名称),为空再用 `items[].goodsName`(商品名称)。这与 `group.goodsNames` 相同。
49
-
50
- 每个货物名称只保留一个最符合的选项,命中即停:
51
-
52
- 1. 与某个选项名完全相同。
53
- 2. 否则,选项名是货物名称的子串时,取最长的选项名。货物名称「契约锁电子签章系统软件」同时包含「电子签章」和「契约锁电子签章系统软件」时,取后者。
54
- 3. 否则,货物名称是选项名的子串时,取最短的选项名。货物名称「技术服务」只落在「技术服务费」里时,取「技术服务费」。
55
- 4. 都没有:这个货物名称无匹配。
56
-
57
- 整组怎么填:
58
-
59
- - 有匹配的货物名称都指向同一个选项:创建时把该选项名写入「开票内容」。
60
- - 指向不同选项:确认卡片里逐条列出「货物名称 → 选项」,请用户选一个。没选定之前不建草稿,不要自己挑一个。
61
- - 全部无匹配:不传。创建后提醒「开票内容:明细货物名称没有对应的下拉选项,请在 E10 里选择」。
62
- - 用户本轮给了开票内容:与某个选项名完全相同就用用户的;对不上时在确认卡片里列出原话和推断结果,请用户指定一个选项名。
63
-
64
- 创建后不要再用 `editPrepare` 改这个字段,编辑链会报错。Step 6 仍要核对明细是否带出;「货物名称」或「总开票金额」没带出时,按流程文档警告用户在 E10 核对明细,不要为了补明细重发 `createRequest`。
65
-
66
- ### 开户行名称与账号
67
-
68
- 是两个字段,**不能混填**:开户行名称只放银行名称(如 `招商银行福田支行`),开户行银行帐号只放账号(如 `8135 8668 8310 001`)。
69
-
70
- 两个字段都在草稿建好后的「创建后补正」里填,取值按下面的先后顺序:
71
-
72
- 1. **台账有开户行信息**:台账常把两者一起写进「购买方开户行账号」,合同号联动会把这串原样带进「开户行银行帐号」(如 `招商银行福田支行 8135 8668 8310 001`)。`invoice.issuing.qys.list` 的分组已经拆好,Agent 直接用 `group.purchaserBankName`、`group.purchaserBankAccount`,**不要自己拆**。拆分时分组 `warnings` 会有一条「已拆分为…」,确认卡片照常列出。
73
- 2. **台账没有开户行信息**:表单会从客户资料带出只读字段「开户行及帐号(请予客户方财务核实)」(`100003720000056248`),格式如 `兴业银行股份有限公司深圳西乡支行,账号:338160100100000455`,但不会自动拆进上面两个字段。按「,账号:」拆成名称和账号。格式不是「{名称},账号:{账号}」时不要猜,告诉用户原值,请其在 E10 里手工拆填。
74
- 3. 两处都为空:这两个字段不补。
75
-
76
- ## 明细(`subFormId` = `100003690000001811`)
77
-
78
- **一行对应一条台账行**,按 `group.formDataIds` 的顺序逐行填,每行的值取 `items[]` 里同一 `formDataId` 的那条台账行。
79
-
80
- 明细整行由「合同号」联动从台账带出,**创建时 Agent 每行只传「金额(含税)」一列**。实测(合同 20266105492、20266105586):
81
-
82
- - 只传金额时,联动带出货物名称、购买方名称、明细合同号、明细行id、单价、规格类型、单位、税率、税收分类编码,以及**总开票金额、已开票金额、未开票金额**。
83
- - 把货物名称、明细行id 等列也一起传时,联动**不再**带出总开票金额、已开票金额、未开票金额,草稿里这三列是空的。所以其余列一律不传。
84
- - 联动会把税率的选项 id(如 `1201835186337538063`)错写进「数量」,创建时传了台账数量也会被覆盖。所以数量不传,草稿建好后请用户在 E10 里改成台账值。
85
-
86
- | 字段 | 用户没说时的默认值 | 来源 |
87
- | --- | --- | --- |
88
- | 金额(含税)(`100003720000118901`),即本行**本次开票金额** | **按总金额开**:等于**这一明细行自己的**「总开票金额」。台账上就是该行 `items[].amount`(含税,不再加税)。多行时一行一个值,按「明细行id」对应,不要把一行的金额写到另一行 | 该行「总开票金额」;创建前用 `items[].amount` |
89
- | 数量(`100003720000118911`) | **不传**;创建后请用户在 E10 里改成台账原值(用户指定了本次金额时也用台账数量) | `items[].quantity` |
90
- | 总开票金额、已开票金额、未开票金额 | **不传**:发起节点上是只读字段,传了会被 `createRequest` 以 `notEditable` 拒绝;由联动带出 | 联动 |
91
- | 货物名称、购买方名称、明细合同号、明细行id、单价、规格类型、单位、税率、税收分类编码 | **不传**,由联动从台账带出 | 联动 |
92
- | 金额(不含税)、税额、单价(不含税) | **不传、不计算**,留给表单 | — |
93
-
94
- - `items` 被 `limit` 截断、缺少本组某个 `formDataId` 时,用 `contractNo` 再查一次拿全本组的行,不要凭 `group` 汇总值拼明细。
95
-
96
- 写法:`details` 里按 `group.formDataIds` 的顺序给出 N 行,CLI 会按行序把它们与联动带出的行合并。
97
-
98
- ```json
99
- {"details": {"100003690000001811": [{"100003720000118901": "20000"}]}}
100
- ```
101
-
102
- ## 创建后补正
103
-
104
- 草稿 `CREATED` 后(流程见 [invoice-issuing-workflow.md](invoice-issuing-workflow.md) Step 6 第 5、6 条),分两类处理。
105
-
106
- **Agent 经编辑链补正(只改主表)**:一次 `editPrepare` 提交,用户确认一次后 `editApply`。
107
-
108
- | 字段 | 补正值 | 不补的情况 |
109
- | --- | --- | --- |
110
- | 开户行名称(`1211869454131068975`)、开户行银行帐号(`1211869454131068976`) | 按上文「开户行名称与账号」的先后顺序取值 | 两处都为空;或「开户行及帐号」格式无法拆分;或草稿里已经是这两个值 |
111
-
112
- **请用户在 E10 里手工改**:Agent 不经编辑链改这两项。
113
-
114
- - 「开票内容」:创建时已经按推断写入。编辑会触发它自己的联动,`editPrepare` 报错,不要再改。只有「全部无匹配」没写入时才提醒用户选。
115
- - 明细「本次开票金额」:用户没指定金额时,必须等于**同一明细行**的「总开票金额」。`editLoad` 后某一行为空,或不等于该行「总开票金额」,就只改这一列,补成该行「总开票金额」。
116
- - `editPrepare` 报 `Cannot read properties of undefined (reading 'form_id')` 时,不要改 workflow 模块。编辑上下文没有 `layout.form_id`:在本机这条 `editLoad` continuation 载荷里补上 `layout.form_id`(用该载荷已有的 `form_id`),再重发 `editPrepare`。
117
- - `editPrepare` 会给明细生成新的 `rowId`,直接保存会多出一行。保存前把「本次开票金额」这条明细的 `rowId` 改回该 `dataIndex` 在 `editLoad` 里的原 `rowId`,再 `editApply`。
118
- - 用户已经要求按各行总开票金额赋值时,`editApply` 传 `confirm: true`。
119
- - 其他明细列:不要经 `editPrepare` 改,保存后会多出一行,而不是改原行。
120
-
121
- | 字段 | 回复里怎么提醒 |
122
- | --- | --- |
123
- | 开票内容 | 仅契约锁开票流程。已写入时不提。没写入时写 `开票内容:明细货物名称没有对应的下拉选项,请在 E10 里选择`。其他流程不提 |
124
- | 明细「数量」 | 按草稿每行的「明细行id」(`1318645704062197885`)找到 `items[]` 里同一 `formDataId` 的台账行:`明细第 {N} 行数量:联动带出的是 {草稿值},请在 E10 改成 {items[].quantity}`;台账数量为空时写 `请按实际数量改正`;草稿值已经等于台账值时不提 |
125
-
126
- - 明细行按「明细行id」对应台账行,**不按行序猜**:联动带出的行序不一定等于 `group.formDataIds` 的顺序。
127
-
128
- ## 开票事由生成规则
129
-
130
- 用户没给原话时,Agent 按下面的公式直接生成,**不追问用户**:
131
-
132
- | 情形 | 公式 |
133
- | --- | --- |
134
- | 按总金额开(默认) | `合同{合同号}({合同审批流程名称}){商品}全额开票,金额{本次开票金额}元` |
135
- | 用户指定了本次金额 | `合同{合同号}({合同审批流程名称}){商品}开票,本次{本次开票金额}元,合同开票总额{group.totalAmount}元` |
136
-
137
- - `{商品}` 取 `group.goodsNames`,多个时用「、」连接。
138
- - `{合同审批流程名称}` 为空时,连同括号一起省略。
139
- - 金额照数据原样写,不自行改格式:本次开票金额用台账 `items[].amount` 或用户原话(如 `5900`、`46292.1`),合同开票总额用 `group.totalAmount`(如 `20000.00`)。
140
- - 用户说了是第几笔款项(如"第二笔款"),在公式最前面加 `第{N}笔款项:`;用户没说就不加,不要自己推断。
141
-
142
- 示例:`合同20266105586(深圳市康哲药业有限公司2026年度维护)年度维护费全额开票,金额5900元`
143
-
144
- ## 预计收款时间
145
-
146
- 必填字段,由用户决定。**用户没给出日期就不建草稿**:Agent 不推断、不给默认值(不按开票日期、合同条款或历史数据去猜),也不留空先建。
147
-
148
- - 用户开票时已经说了(如"预计月底收款"),直接用,卡片里展示换算后的日期,不再问。
149
- - 用户没说:确认卡片里请用户给出,并附上按当天日期算好的三个候选,方便用户直接选(模板见 [invoice-issuing-workflow.md](invoice-issuing-workflow.md) Step 3):
150
- - `本月底 {YYYY-MM-DD}`
151
- - `下月底 {YYYY-MM-DD}`
152
- - `30 天后 {YYYY-MM-DD}`
153
-
154
- 候选只是选项,用户没选之前不能当成默认值填。
155
- - 用户只回了"确认 / 继续 / 发起"、没给日期:**不建草稿**,只问一句「预计收款时间填哪天?可以直接回 本月底 / 下月底 / 30 天后,或给一个具体日期。」,拿到日期再建。用户回"随便 / 你定"时,同样请他从候选里选一个。
156
- - 写法:`YYYY-MM-DD`。用户说相对日期("下月底""30 天后""11 月 15 号")时按当天日期换算成具体日期,并在创建后的回复里说明换算结果,如「预计收款时间按『下月底』填为 2026-11-30」。
157
-
158
- ## 用户指定了本次开票金额
159
-
160
- - **单行合同**:用户说「这次开 1 万」「先开一半」,就把该行「金额(含税)」填成用户给的金额,数量在创建后补正为台账值(单价由联动带出台账值,与金额对不上属正常)。「一半」这类说法按用户原意换算成金额,换算结果写进确认卡片,由用户一并确认。
161
- - **多行合同**:用户逐行说明了金额,就逐行填;用户只给了一个总数、没说怎么分到各行时,**问一次**怎么分,不要自己平摊。
162
- - 用户给的金额大于该行台账开票金额时,在确认卡片里提示「超过台账开票金额」,用户确认后照填。
163
-
164
- ## 确认卡片里要体现
165
-
166
- 确认卡片(见 [invoice-issuing-workflow.md](invoice-issuing-workflow.md) Step 3)在购方行下写销售方和所选开票流程,在明细表后追加这些行:
167
-
168
- - `本次开票金额:{合计}({默认按总金额开 / 按你指定的金额})`
169
- - `开票事由:{按上面公式生成的文本}`
170
- - `开票内容:{选项名}(按货物名称「{名称}」匹配)`。**只有** `契约锁合同收款发票开具及快递申请` 才写这一行;多个货物名称对上不同选项时改为列出对应关系并请用户选;全部无匹配时写 `开票内容:没有能对应的下拉选项,先留空`。其他流程整行省略
171
- - `预计收款时间:{用户已给的日期}`;用户还没给时写 `预计收款时间:(必填)请选择:本月底 {日期} / 下月底 {日期} / 30 天后 {日期},或直接给一个日期`
172
-
173
- `group.specifications` 非空时再追加一行:
174
-
175
- - 能填:`所售产品版本号:{选项}(取自规格类型)`
176
- - 不在选项里:`所售产品版本号:规格类型「{值}」不在下拉选项里,先留空,提交前请在 E10 选择`
177
- - 多个值:`所售产品版本号:明细规格类型有 {值1}、{值2},请告诉我选哪个`
178
-
179
- 用户在确认时改了金额或事由,以用户的为准,并按公式重新生成事由。