weaver-work-cli 0.1.40 → 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.
- package/README.md +17 -0
- package/dist/chunks/{archive-JHTONRST.js → archive-P6TBQGKL.js} +13 -5
- package/dist/chunks/{archive-oa-FCHLCPHC.js → archive-oa-7TQ2NXOH.js} +12 -5
- package/dist/chunks/{asset-RLIHC7DB.js → asset-3ELRG37G.js} +11 -4
- package/dist/chunks/{asset-idle-KVOFTLCP.js → asset-idle-WIGMUFMD.js} +7 -3
- package/dist/chunks/{attachment-content-RZYDB3MB.js → attachment-content-E3276UOV.js} +5 -4
- package/dist/chunks/{blog-42OZTJNP.js → blog-C5NMZAAC.js} +11 -4
- package/dist/chunks/{caizhilian-KRK547K5.js → caizhilian-5XSM2DFP.js} +13 -6
- package/dist/chunks/{calendar-RTWAMKHD.js → calendar-FI2WNSBO.js} +71 -26
- package/dist/chunks/{chunk-CXRQWOZ5.js → chunk-3YBDYOC4.js} +3 -3
- package/dist/chunks/{chunk-OOUTBLZ4.js → chunk-56EZERK4.js} +1 -1
- package/dist/chunks/chunk-6N4JPNFL.js +76 -0
- package/dist/chunks/{chunk-ZUX3P6BQ.js → chunk-727FH2NI.js} +1 -1
- package/dist/chunks/chunk-7BDPM5ST.js +11 -0
- package/dist/chunks/{chunk-LN447PY2.js → chunk-BCVYBYYT.js} +432 -2247
- package/dist/chunks/{chunk-7E6MUOEK.js → chunk-CWYGFU5B.js} +2 -2
- package/dist/chunks/{chunk-NOODWMCL.js → chunk-D4ADSZ7H.js} +1 -1
- package/dist/chunks/{chunk-WFFNM65B.js → chunk-ETNJSKMM.js} +281 -29
- package/dist/chunks/{chunk-CAQNBBQA.js → chunk-F4E4EM35.js} +3 -3
- package/dist/chunks/{chunk-4CTESSKI.js → chunk-FAZTGX7S.js} +6 -6
- package/dist/chunks/chunk-FRZKBMSW.js +2562 -0
- package/dist/chunks/{chunk-BYBSCN4X.js → chunk-G7PQWD4L.js} +6 -3
- package/dist/chunks/{chunk-NJKREDA3.js → chunk-GAMZLAG2.js} +1 -1
- package/dist/chunks/{chunk-FLS4DPGP.js → chunk-GM6J7Q4B.js} +28 -15
- package/dist/chunks/{chunk-NETCCARD.js → chunk-GRDRG6HP.js} +3 -3
- package/dist/chunks/chunk-HIT4Y6OI.js +1238 -0
- package/dist/chunks/{chunk-EZALDOQH.js → chunk-HP7JIYMT.js} +5 -2
- package/dist/chunks/{chunk-IZSSVYAG.js → chunk-IAZ3UPY6.js} +3 -3
- package/dist/chunks/{chunk-ZEDWSH32.js → chunk-IC62NFM5.js} +1 -1
- package/dist/chunks/{chunk-P26ZWSKU.js → chunk-KIHNAS25.js} +5 -2
- package/dist/chunks/{chunk-57IECMWX.js → chunk-N4M2DDFE.js} +29 -15
- package/dist/chunks/{chunk-JWRZM2H2.js → chunk-OF4S23UB.js} +4 -4
- package/dist/chunks/{chunk-VNBU55SL.js → chunk-PC7VKEB5.js} +80 -2458
- package/dist/chunks/{chunk-G2JSIUWF.js → chunk-PUQS5MWL.js} +91 -2
- package/dist/chunks/{chunk-E7OK5WD5.js → chunk-Q4OYAQYH.js} +5 -5
- package/dist/chunks/{chunk-7BRU4EFH.js → chunk-QVSWRLLU.js} +35 -6
- package/dist/chunks/{chunk-T6EGVBKU.js → chunk-TA7FXXJD.js} +6 -3
- package/dist/chunks/{chunk-GPMFD4RD.js → chunk-TXUG266F.js} +1 -1
- package/dist/chunks/{chunk-4TEDNCON.js → chunk-UFIT2UU3.js} +354 -56
- package/dist/chunks/{chunk-LUSPKZKY.js → chunk-UG5G54VL.js} +1 -0
- package/dist/chunks/{chunk-NIAJ5ZCG.js → chunk-UL5XUQ25.js} +5 -2
- package/dist/chunks/{chunk-FMPJJYYI.js → chunk-WRXSAVKO.js} +1 -1
- package/dist/chunks/{chunk-7U577Q7U.js → chunk-WSF4NNMR.js} +3 -3
- package/dist/chunks/chunk-XHK4MDR5.js +2497 -0
- package/dist/chunks/{chunk-LFMSDBZN.js → chunk-XNIK66I4.js} +326 -161
- package/dist/chunks/{chunk-3SO6QL6U.js → chunk-YWX377BY.js} +5 -2
- package/dist/chunks/{chunk-BYATLLEF.js → chunk-Z3GDFVJR.js} +1 -1
- package/dist/chunks/{chunk-I566ZYNF.js → chunk-Z7VYWPZV.js} +1 -1
- package/dist/chunks/{conflict-VR55AOOO.js → conflict-ARLSZJ6V.js} +4 -3
- package/dist/chunks/{continuation-2CKSBLA6.js → continuation-3S37AUSH.js} +4 -3
- package/dist/chunks/{continuation-RN6PZN2M.js → continuation-3XLYYTKV.js} +4 -3
- package/dist/chunks/{continuation-HZIZRZBX.js → continuation-HFW2YT5S.js} +4 -3
- package/dist/chunks/{continuation-NLECEJPX.js → continuation-KI7DRRZN.js} +4 -3
- package/dist/chunks/{contract-HI4FNPYE.js → contract-DNIIW5VJ.js} +13 -5
- package/dist/chunks/{cowork-HJLI353D.js → cowork-GMLRGVIW.js} +31 -14
- package/dist/chunks/create-flow-J22BO65E.js +56 -0
- package/dist/chunks/{ebuilder-form-HTGI63UU.js → ebuilder-form-ANV2FHYV.js} +12 -7
- package/dist/chunks/{ehr-GYXIYH3A.js → ehr-GSTGAIY3.js} +695 -1255
- package/dist/chunks/{employee-SAK2QYXX.js → employee-22BGJ3QS.js} +3 -3
- package/dist/chunks/{env-DW3G4HUO.js → env-BX3VRFS7.js} +4 -3
- package/dist/chunks/{esb-I5INCEFE.js → esb-ATAIASX2.js} +12 -7
- package/dist/chunks/{factory-TKXGXS6L.js → factory-PETTFME6.js} +3 -2
- package/dist/chunks/{fna-K2MHTQ24.js → fna-YEKBSFSX.js} +14 -8
- package/dist/chunks/{group-chat-VYBNMJLG.js → group-chat-BFVXAYFX.js} +7 -4
- package/dist/chunks/{host-D5SERMAJ.js → host-HRBXEPDQ.js} +5 -5
- package/dist/chunks/{host-JM4YVHFM.js → host-LR55CTHP.js} +5 -5
- package/dist/chunks/{host-L3VLITMT.js → host-SUOY6VYQ.js} +5 -5
- package/dist/chunks/{host-ZUQTJYYK.js → host-SZGV4UNT.js} +5 -5
- package/dist/chunks/{host-256GVCAH.js → host-WIKN2EJ5.js} +5 -5
- package/dist/chunks/{hrm-VLRBKTZB.js → hrm-NRDO4W5G.js} +11 -7
- package/dist/chunks/{im-QK3VTLXK.js → im-IQ2HN23S.js} +11 -10
- package/dist/chunks/{invoice-T5JTA32H.js → invoice-MNRW76PP.js} +636 -1768
- package/dist/chunks/{jiuchuanhui-P2FNEQVZ.js → jiuchuanhui-DTRBAX4N.js} +14 -6
- package/dist/chunks/{lazy-dispatch-XRRI46M6.js → lazy-dispatch-ZVWAI25B.js} +7 -6
- package/dist/chunks/{mail-3Y7MJ6PS.js → mail-ZVAUXOJA.js} +16 -14
- package/dist/chunks/{meeting-M7LTXGJE.js → meeting-FEVPZ67S.js} +21 -13
- package/dist/chunks/{okr-OBC6S67L.js → okr-SDH3E5RA.js} +12 -5
- package/dist/chunks/{operations-5QL3AECO.js → operations-62N6EP3C.js} +4 -3
- package/dist/chunks/{plan-5H6I53SK.js → plan-E35JFDI7.js} +12 -5
- package/dist/chunks/{project-L75QZV4S.js → project-73QXBAB2.js} +49 -25
- package/dist/chunks/reception-UWZVACBN.js +1899 -0
- package/dist/chunks/recruit-stage-4MAOCKFY.js +4770 -0
- package/dist/chunks/registry-IM5G23LS.js +24 -0
- package/dist/chunks/{registry-UGRBCBHO.js → registry-JDUS4E7D.js} +7 -6
- package/dist/chunks/{registry-RXPN6BBT.js → registry-KNKSCJNT.js} +7 -6
- package/dist/chunks/{registry-NYPYMZXG.js → registry-PO7SI256.js} +4 -4
- package/dist/chunks/{registry-QGHFNUWS.js → registry-PVUZQDDQ.js} +3 -3
- package/dist/chunks/{room-recommend-A3UDC3CA.js → room-recommend-H7KLXA5R.js} +6 -5
- package/dist/chunks/{schedule-5GCACCK7.js → schedule-ESZIBAUO.js} +6 -5
- package/dist/chunks/{workflow-M5ZJ7DWF.js → workflow-CWJFJLQU.js} +15 -10
- package/dist/cmd/action.js +6 -0
- package/dist/cmd/identity/index.js +45 -0
- package/dist/cmd/index.js +2 -0
- package/dist/core/continuation-ttl.js +18 -0
- package/dist/core/error-codes.js +85 -0
- package/dist/core/logger.js +11 -0
- package/dist/index.js +41 -30
- package/dist/internal/e10/auth/commands.js +164 -8
- package/dist/internal/e10/auth/error-log.js +182 -0
- package/dist/internal/e10/auth/messages.js +6 -0
- package/dist/internal/e10/auth/session.js +34 -3
- package/dist/internal/e10/auth/xiaoe.js +286 -44
- package/dist/internal/e10/auth-recovery.js +72 -14
- package/dist/internal/e10/context.js +72 -13
- package/dist/internal/e10/index.js +1 -1
- package/dist/internal/e10/network-error.js +93 -0
- package/dist/internal/e10/request-runtime.js +6 -0
- package/dist/internal/skills/install.js +9 -1
- package/dist/shortcuts/archive/continuation.js +2 -1
- package/dist/shortcuts/archive/index.js +3 -0
- package/dist/shortcuts/archive/operations/confirm.js +2 -1
- package/dist/shortcuts/archive-oa/continuation.js +2 -1
- package/dist/shortcuts/archive-oa/index.js +2 -0
- package/dist/shortcuts/archive-oa/operations/confirm.js +2 -1
- package/dist/shortcuts/asset/continuation.js +2 -1
- package/dist/shortcuts/asset/index.js +2 -0
- package/dist/shortcuts/asset-idle/index.js +2 -0
- package/dist/shortcuts/blog/continuation.js +2 -1
- package/dist/shortcuts/blog/index.js +2 -0
- package/dist/shortcuts/caizhilian/continuation.js +2 -1
- package/dist/shortcuts/caizhilian/index.js +2 -0
- package/dist/shortcuts/caizhilian/operations/confirm.js +3 -2
- package/dist/shortcuts/calendar/continuation.js +2 -1
- package/dist/shortcuts/calendar/index.js +2 -0
- package/dist/shortcuts/calendar/operations/read.js +31 -22
- package/dist/shortcuts/calendar/operations/write.js +46 -2
- package/dist/shortcuts/contract/continuation.js +2 -1
- package/dist/shortcuts/contract/index.js +2 -0
- package/dist/shortcuts/contract/operations/write.js +2 -1
- package/dist/shortcuts/cowork/continuation.js +2 -1
- package/dist/shortcuts/cowork/index.js +2 -0
- package/dist/shortcuts/cowork/operations/discuss-write.js +5 -1
- package/dist/shortcuts/cowork/operations/item-write.js +1 -7
- package/dist/shortcuts/cowork/operations/member-write.js +3 -1
- package/dist/shortcuts/cowork/operations/permission-write.js +5 -1
- package/dist/shortcuts/cowork/operations/shared.js +7 -0
- package/dist/shortcuts/ebuilder-form/continuation.js +2 -1
- package/dist/shortcuts/ebuilder-form/index.js +2 -0
- package/dist/shortcuts/ebuilder-form/operations/write.js +3 -2
- package/dist/shortcuts/ehr/continuation.js +2 -1
- package/dist/shortcuts/ehr/index.js +2 -0
- package/dist/shortcuts/ehr/operations/attend-write.js +44 -2
- package/dist/shortcuts/ehr/operations/hr-contact.js +7 -4
- package/dist/shortcuts/ehr/operations/hr-report.js +13 -7
- package/dist/shortcuts/ehr/operations/recruit-candidate-import.js +317 -63
- package/dist/shortcuts/ehr/operations/recruit-position.js +134 -2
- package/dist/shortcuts/ehr/operations/recruit-write.js +263 -18
- package/dist/shortcuts/ehr/operations/recruit.js +10 -4
- package/dist/shortcuts/ehr/operations/shared.js +47 -0
- package/dist/shortcuts/esb/continuation.js +2 -1
- package/dist/shortcuts/esb/index.js +2 -0
- package/dist/shortcuts/esb/operations/trigger.js +2 -1
- package/dist/shortcuts/fna/continuation.js +2 -1
- package/dist/shortcuts/fna/index.js +2 -0
- package/dist/shortcuts/fna/operations/invoice-writeoff.js +1 -1
- package/dist/shortcuts/fna/operations/loan.js +1 -1
- package/dist/shortcuts/hrm/index.js +2 -0
- package/dist/shortcuts/hrm/operations/org.js +118 -0
- package/dist/shortcuts/im/continuation.js +2 -1
- package/dist/shortcuts/index.js +10 -0
- package/dist/shortcuts/invoice/continuation.js +2 -1
- package/dist/shortcuts/invoice/index.js +14 -15
- package/dist/shortcuts/invoice/invoice-record.js +93 -0
- package/dist/shortcuts/invoice/manifest.js +190 -393
- package/dist/shortcuts/invoice/operations/add.js +2 -1
- package/dist/shortcuts/invoice/operations/delete.js +2 -1
- package/dist/shortcuts/invoice/operations/import.js +2 -1
- package/dist/shortcuts/invoice/operations/issuing-contract-detail.js +86 -0
- package/dist/shortcuts/invoice/operations/issuing-contracts.js +210 -0
- package/dist/shortcuts/invoice/operations/registry.js +17 -17
- package/dist/shortcuts/invoice/operations/reim-auto.js +4 -569
- package/dist/shortcuts/invoice/operations/reim.js +52 -341
- package/dist/shortcuts/invoice/operations/shared.js +21 -4
- package/dist/shortcuts/invoice/operations/update.js +2 -1
- package/dist/shortcuts/invoice/projection.js +10 -62
- package/dist/shortcuts/jiuchuanhui/continuation.js +2 -1
- package/dist/shortcuts/jiuchuanhui/index.js +2 -0
- package/dist/shortcuts/jiuchuanhui/operations/datajson.js +2 -1
- package/dist/shortcuts/jiuchuanhui/operations/esb.js +2 -1
- package/dist/shortcuts/mail/continuation.js +2 -1
- package/dist/shortcuts/mail/index.js +2 -0
- package/dist/shortcuts/mail/operations/mail-blacklist.js +1 -1
- package/dist/shortcuts/mail/operations/mail-contacts.js +1 -1
- package/dist/shortcuts/mail/operations/mail-send.js +1 -1
- package/dist/shortcuts/mail/operations/mail-sign.js +1 -1
- package/dist/shortcuts/mail/operations/mail-template.js +1 -1
- package/dist/shortcuts/meeting/continuation.js +2 -1
- package/dist/shortcuts/meeting/index.js +2 -0
- package/dist/shortcuts/meeting/operations/change.js +1 -1
- package/dist/shortcuts/meeting/operations/create.js +1 -1
- package/dist/shortcuts/meeting/operations/eb/catalog.js +4 -1
- package/dist/shortcuts/meeting/operations/eb/create-flow.js +101 -35
- package/dist/shortcuts/meeting/operations/eb/decision.js +1 -1
- package/dist/shortcuts/meeting/operations/eb/factory.js +34 -1
- package/dist/shortcuts/meeting/operations/eb/group-chat.js +25 -3
- package/dist/shortcuts/meeting/operations/eb/person-cache.js +96 -0
- package/dist/shortcuts/meeting/operations/eb/room-recommend.js +33 -11
- package/dist/shortcuts/meeting/operations/lifecycle.js +1 -1
- package/dist/shortcuts/meeting/operations/receipts.js +1 -1
- package/dist/shortcuts/meeting/operations/signs.js +1 -1
- package/dist/shortcuts/okr/continuation.js +2 -1
- package/dist/shortcuts/okr/index.js +2 -0
- package/dist/shortcuts/okr/operations/write.js +1 -1
- package/dist/shortcuts/plan/continuation.js +2 -1
- package/dist/shortcuts/plan/index.js +2 -0
- package/dist/shortcuts/plan/operations/write.js +1 -1
- package/dist/shortcuts/project/continuation.js +2 -1
- package/dist/shortcuts/project/index.js +2 -0
- package/dist/shortcuts/project/operations/read.js +6 -25
- package/dist/shortcuts/project/operations/shared.js +22 -0
- package/dist/shortcuts/project/operations/write.js +28 -2
- package/dist/shortcuts/reception/constants.js +53 -0
- package/dist/shortcuts/reception/errors.js +54 -0
- package/dist/shortcuts/reception/host.js +125 -0
- package/dist/shortcuts/reception/index.js +198 -0
- package/dist/shortcuts/reception/manifest.js +177 -0
- package/dist/shortcuts/reception/operations/ask.js +71 -0
- package/dist/shortcuts/reception/operations/browsertool.js +58 -0
- package/dist/shortcuts/reception/operations/compose.js +129 -0
- package/dist/shortcuts/reception/operations/customparams.js +74 -0
- package/dist/shortcuts/reception/operations/doc.js +238 -0
- package/dist/shortcuts/reception/operations/docrender.js +36 -0
- package/dist/shortcuts/reception/operations/panels.js +179 -0
- package/dist/shortcuts/reception/operations/registry.js +26 -0
- package/dist/shortcuts/reception/operations/render-assets.js +184 -0
- package/dist/shortcuts/reception/operations/render.js +123 -0
- package/dist/shortcuts/reception/operations/runs.js +38 -0
- package/dist/shortcuts/reception/operations/schedule.js +127 -0
- package/dist/shortcuts/reception/operations/shared.js +196 -0
- package/dist/shortcuts/reception/operations/snapshot.js +68 -0
- package/dist/shortcuts/reception/operations/types.js +1 -0
- package/dist/shortcuts/reception/operations.js +33 -0
- package/dist/shortcuts/reception/upload.js +218 -0
- package/dist/shortcuts/recruit-stage/context.js +231 -0
- package/dist/shortcuts/recruit-stage/continuation.js +74 -0
- package/dist/shortcuts/recruit-stage/errors.js +65 -0
- package/dist/shortcuts/recruit-stage/host.js +109 -0
- package/dist/shortcuts/recruit-stage/index.js +115 -0
- package/dist/shortcuts/recruit-stage/manifest.js +29 -0
- package/dist/shortcuts/recruit-stage/operations/interview-arrange.js +722 -0
- package/dist/shortcuts/recruit-stage/operations/interview-feedback.js +269 -0
- package/dist/shortcuts/recruit-stage/operations/jd-create.js +719 -0
- package/dist/shortcuts/recruit-stage/operations/list.js +431 -0
- package/dist/shortcuts/recruit-stage/operations/registry.js +38 -0
- package/dist/shortcuts/recruit-stage/operations/resume-import.js +1354 -0
- package/dist/shortcuts/recruit-stage/operations/search.js +158 -0
- package/dist/shortcuts/recruit-stage/operations/types.js +25 -0
- package/dist/shortcuts/recruit-stage/school-tiers.json +318 -0
- package/dist/shortcuts/recruit-stage/shared.js +608 -0
- package/dist/shortcuts/workflow/continuation.js +2 -1
- package/dist/shortcuts/workflow/index.js +2 -0
- package/dist/shortcuts/workflow/operations/form.js +32 -8
- package/dist/shortcuts/workflow/operations/todoSmartConvert/detailFieldRules.js +4 -2
- package/dist/shortcuts/workflow/operations/todoSmartConvert/summaryCache.js +13 -6
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoDetailCache.js +17 -24
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoDetailFetcher.js +14 -9
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.collect.js +50 -8
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.core.js +2 -1
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.detail.js +17 -11
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.group.js +7 -39
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.groupSummary.js +3 -2
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.js +51 -15
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.pipeline.js +16 -1
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.smartGroup.js +151 -63
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.subGroup.js +56 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.summary.js +39 -14
- package/dist/shortcuts/workflow/operations/write.js +1 -1
- package/docs/_catalog.md +3 -0
- package/docs/agent-invoice.md +1 -1
- package/docs/archive-oa.md +1 -1
- package/docs/caizhilian.md +1 -1
- package/docs/calendar.md +1 -1
- package/docs/contract.md +1 -1
- package/docs/e10-auth.md +23 -1
- package/docs/ehr.md +2 -2
- package/docs/esb.md +1 -1
- package/docs/im.md +1 -1
- package/docs/invoice.md +8 -12
- package/docs/okr.md +1 -1
- package/docs/operation-manual.md +8 -0
- package/docs/reception.md +119 -0
- package/package.json +1 -1
- package/scripts/clean.mjs +43 -2
- package/scripts/install-skill-to-xiaoe.mjs +105 -0
- package/scripts/package-skill.mjs +4 -2
- package/skill-template/business-info.json +42 -2
- package/skill-template/domains/caizhilian.md +1 -1
- package/skill-template/domains/reception-flow.md +18 -0
- package/skill-template/domains/recruit-stage.md +29 -0
- package/skill-template/domains/yepiaotong.md +4 -7
- package/skills/weaver-e10-archive-oa/references/source-manifest.json +14 -14
- package/skills/weaver-e10-blog/references/blog-publish.md +1 -1
- package/skills/weaver-e10-blog/references/source-manifest.json +7 -7
- package/skills/weaver-e10-caizhilian/references/source-manifest.json +21 -21
- package/skills/weaver-e10-caizhilian/references/write-protocol.md +2 -2
- package/skills/weaver-e10-calendar/SKILL.md +2 -1
- package/skills/weaver-e10-calendar/references/calendar-write.md +55 -1
- package/skills/weaver-e10-cowork/SKILL.md +1 -1
- package/skills/weaver-e10-cowork/references/cowork-write.md +3 -1
- package/skills/weaver-e10-ebuilder-form/SKILL.md +1 -1
- package/skills/weaver-e10-ebuilder-form/references/custom-api.md +1 -1
- package/skills/weaver-e10-ebuilder-form/references/openapi-write.md +1 -1
- package/skills/weaver-e10-esb/SKILL.md +2 -2
- package/skills/weaver-e10-esb/references/source-manifest.json +22 -22
- package/skills/weaver-e10-esb/references/trigger.md +2 -2
- package/skills/weaver-e10-jinchengda/references/contract-clause-library-crud.md +1 -1
- package/skills/weaver-e10-jinchengda/references/contract-clause-reference-save.md +1 -1
- package/skills/weaver-e10-jinchengda/references/contract-request-write.md +1 -1
- package/skills/weaver-e10-jinchengda/references/source-manifest.json +29 -29
- package/skills/weaver-e10-jucailin/SKILL.md +1 -1
- package/skills/weaver-e10-jucailin/references/attend-write.md +10 -2
- package/skills/weaver-e10-jucailin/references/hr-contact.md +8 -0
- package/skills/weaver-e10-jucailin/references/hr-report.md +8 -0
- package/skills/weaver-e10-jucailin/references/recruit-create.md +14 -5
- package/skills/weaver-e10-jucailin/references/recruit-read.md +1 -1
- package/skills/weaver-e10-jucailin/references/recruit-write.md +5 -4
- package/skills/weaver-e10-mail/SKILL.md +1 -1
- package/skills/weaver-e10-meeting/SKILL.md +39 -7
- package/skills/weaver-e10-meeting/references/meeting-change.md +1 -1
- package/skills/weaver-e10-meeting/references/meeting-create.md +1 -1
- package/skills/weaver-e10-meeting/references/meeting-lifecycle.md +1 -1
- package/skills/weaver-e10-meeting/references/meeting-verification.md +1 -1
- package/skills/weaver-e10-okr/references/okr-align.md +1 -1
- package/skills/weaver-e10-okr/references/okr-keyresult.md +1 -1
- package/skills/weaver-e10-okr/references/okr-write.md +1 -1
- package/skills/weaver-e10-okr/references/source-manifest.json +8 -8
- package/skills/weaver-e10-plan/references/plan-report-write.md +1 -1
- package/skills/weaver-e10-plan/references/source-manifest.json +20 -20
- package/skills/weaver-e10-qiyecheng/references/loan-management.md +1 -1
- package/skills/weaver-e10-qiyecheng/references/source-manifest.json +18 -18
- package/skills/weaver-e10-reception-flow/SKILL.md +173 -0
- 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
- package/skills/weaver-e10-reception-flow/data/fields-snapshot.json +213 -0
- package/skills/weaver-e10-reception-flow/references/browsertool.md +68 -0
- package/skills/weaver-e10-reception-flow/references/env-pitfalls.md +51 -0
- package/skills/weaver-e10-reception-flow/references/fields-snapshot.md +227 -0
- package/skills/weaver-e10-reception-flow/references/guide.md +179 -0
- package/skills/weaver-e10-reception-flow/scripts/locate.sh +14 -0
- package/skills/weaver-e10-reception-flow/scripts/render.py +724 -0
- package/skills/weaver-e10-recruit-stage/SKILL.md +230 -0
- package/skills/weaver-e10-recruit-stage/agents/openai.yaml +119 -0
- package/skills/weaver-e10-recruit-stage/lib/recruit-xiaoe-file.mjs +188 -0
- package/skills/weaver-e10-recruit-stage/lib/xiaoe-session.mjs +66 -0
- package/skills/weaver-e10-recruit-stage/references/position-templates.md +202 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-arrange-interview.md +322 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-capability-check.md +127 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-check-install.md +65 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-detail-process.md +63 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-edit-interview-feedback.md +142 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-jd-create.md +95 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-jd-template.md +56 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-list-candidate.md +101 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-list-interview.md +148 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-match-candidates.md +77 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-output-links.md +59 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-resolve-creator.md +69 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-resolve-metadata.md +241 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-resume-import.md +451 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-resume-parse.md +128 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-search-candidate.md +146 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-urge-feedback.md +69 -0
- package/skills/weaver-e10-shared/SKILL.md +1 -1
- package/skills/weaver-e10-shared/references/e10-auth-and-session.md +10 -2
- package/skills/weaver-e10-shijingran/SKILL.md +7 -6
- package/skills/weaver-e10-shijingran/references/operations.md +3 -1
- package/skills/weaver-e10-shijingran/references/source-manifest.json +30 -28
- package/skills/weaver-e10-shijingran/references/write-operations.md +2 -0
- package/skills/weaver-e10-skill-maker/references/module-cli-generation.md +2 -0
- package/skills/weaver-e10-wenshuding/references/source-manifest.json +3 -3
- package/skills/weaver-e10-workflow/SKILL.md +4 -2
- package/skills/weaver-e10-workflow/aigroup/default.json +11 -9
- package/skills/weaver-e10-workflow/references/source-manifest.json +32 -32
- package/skills/weaver-e10-workflow/references/todo-smart-convert.md +23 -13
- package/skills/weaver-e10-workflow/tools/todo-summary.cjs +62 -20
- package/skills/weaver-e10-yepiaotong/SKILL.md +28 -36
- package/skills/weaver-e10-yepiaotong/references/invoice-agent-entry.md +6 -3
- package/skills/weaver-e10-yepiaotong/references/invoice-detail.md +13 -10
- package/skills/weaver-e10-yepiaotong/references/invoice-enterprise-list.md +2 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-workflow.md +194 -155
- package/skills/weaver-e10-yepiaotong/references/invoice-output-view.md +28 -32
- package/skills/weaver-e10-yepiaotong/references/invoice-personal-list.md +5 -1
- package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +8 -10
- package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +211 -616
- package/skills/weaver-e10-yepiaotong/references/reim-examples.md +149 -117
- package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +17 -20
- package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +20 -39
- package/skills/weaver-e10-yepiaotong/references/reim-matching-rules.md +55 -22
- package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +7 -17
- package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +88 -92
- package/skills/weaver-e10-yepiaotong/references/source-manifest.json +144 -354
- package/skills/weaver-e10-yimiaoban/SKILL.md +1 -1
- package/skills/weaver-e10-yimiaoban/references/msg-write.md +1 -1
- package/skills/weaver-e10-yimiaoban/references/safety-boundaries.md +1 -1
- package/skills/weaver-e10-yimiaoban/references/source-manifest.json +7 -7
- package/dist/chunks/chunk-SPRHHSVC.js +0 -465
- package/dist/chunks/registry-KMHCPAAD.js +0 -22
- package/dist/shortcuts/invoice/markdown.js +0 -172
- package/dist/shortcuts/invoice/operations/issuing-qys.js +0 -424
- package/skills/weaver-e10-meeting.zip +0 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +0 -131
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-form-fill-rules.md +0 -179
|
@@ -79,9 +79,7 @@ weaver-work-cli --json invoice run invoice.reim.file-ocr.preview --input-json '{
|
|
|
79
79
|
|
|
80
80
|
已获取发票数据 → **跳过 Step 1A**(不调用 `invoice.list`)
|
|
81
81
|
|
|
82
|
-
|
|
83
|
-
- `cusCreateDateStart` = "2026-04-29"(往前推90天)
|
|
84
|
-
- `cusCreateDateEnd` = "2026-07-29"(业务结束日;CLI 再 + 1 天后发给接口)
|
|
82
|
+
查事前申请时不按发票日期推算日期,用户没指定日期就不传 `cusCreateDateStart` / `cusCreateDateEnd`,由 CLI 按默认窗口查(最近 7 天,查不到自动放宽到最近 1 个月)。
|
|
85
83
|
|
|
86
84
|
→ 继续 Step 1B → Step 2 匹配 → Step 2.5 → Step 3 → Step 4 → Step 5(流程同示例1/2)
|
|
87
85
|
|
|
@@ -91,18 +89,16 @@ weaver-work-cli --json invoice run invoice.reim.file-ocr.preview --input-json '{
|
|
|
91
89
|
|
|
92
90
|
### Step 1A: 获取发票
|
|
93
91
|
|
|
94
|
-
|
|
92
|
+
**第一步:按「查票日期」取最近一周**(今天 2026-07-30 → 2026-07-23 ~ 2026-07-30)
|
|
95
93
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
生成 `invoice.list` 入参(只传必要字段;`sreim`/`bill_type` 由 CLI 默认):
|
|
94
|
+
生成 `invoice.list` 入参(只传必要字段;`sreim`/`bill_type` 由 CLI 默认;日期直接写 `YYYY-MM-DD`,CLI 换算时间戳):
|
|
99
95
|
|
|
100
96
|
```json
|
|
101
97
|
{
|
|
102
98
|
"page_size": 10,
|
|
103
99
|
"start_pos": 0,
|
|
104
|
-
"consumption_tm_begin":
|
|
105
|
-
"consumption_tm_end":
|
|
100
|
+
"consumption_tm_begin": "2026-07-23",
|
|
101
|
+
"consumption_tm_end": "2026-07-30"
|
|
106
102
|
}
|
|
107
103
|
```
|
|
108
104
|
|
|
@@ -111,59 +107,54 @@ AI 直接计算(UTC+8):begin = 今天00:00:00秒时间戳 - 7*86400, end =
|
|
|
111
107
|
Windows PowerShell:
|
|
112
108
|
|
|
113
109
|
```powershell
|
|
114
|
-
weaver-work-cli --json invoice run invoice.list --input-json '{"page_size":10,"start_pos":0,"consumption_tm_begin":
|
|
110
|
+
weaver-work-cli --json invoice run invoice.list --input-json '{"page_size":10,"start_pos":0,"consumption_tm_begin":"2026-07-23","consumption_tm_end":"2026-07-30"}'
|
|
115
111
|
```
|
|
116
112
|
|
|
117
113
|
macOS/Linux(bash/zsh):
|
|
118
114
|
|
|
119
115
|
```bash
|
|
120
|
-
weaver-work-cli --json invoice run invoice.list --input-json '{"page_size":10,"start_pos":0,"consumption_tm_begin":
|
|
116
|
+
weaver-work-cli --json invoice run invoice.list --input-json '{"page_size":10,"start_pos":0,"consumption_tm_begin":"2026-07-23","consumption_tm_end":"2026-07-30"}'
|
|
121
117
|
```
|
|
122
118
|
|
|
123
|
-
**返回(CLI 信封中列表在 `data.items
|
|
119
|
+
**返回(CLI 信封中列表在 `data.items`,下面是一条平铺的 `items[]` 元素,`ext` 原文省略):**
|
|
124
120
|
|
|
125
121
|
```json
|
|
126
122
|
{
|
|
127
|
-
"
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
},
|
|
148
|
-
"ret": { "trace": "", "ret": 0, "message": "执行成功" },
|
|
149
|
-
"is_valid": 0
|
|
150
|
-
}
|
|
151
|
-
],
|
|
152
|
-
"res_base": { "trace": "", "ret": 0, "message": "执行成功" }
|
|
123
|
+
"fid": "1295366637717012482",
|
|
124
|
+
"number": "36901189",
|
|
125
|
+
"code": "",
|
|
126
|
+
"detailUrl": "https://e10.example.com/sp/inc/incDetail?fid=1295366637717012482",
|
|
127
|
+
"extInfo": {
|
|
128
|
+
"content": "*运输服务*客运服务费",
|
|
129
|
+
"from": "仁济医院南院区门诊部(南门)南侧",
|
|
130
|
+
"to": "浦江瑞和城柒街区30号"
|
|
131
|
+
},
|
|
132
|
+
"fylx": "897092516517920775",
|
|
133
|
+
"province": "上海市",
|
|
134
|
+
"modify_info": { "ctm": 1786168444, "utm": 1786168444, "cstm": 1785340800, "source": 4 },
|
|
135
|
+
"comm_info": {
|
|
136
|
+
"pro": { "cname": "增值税电子普通发票", "type": 3, "date": "2026-07-30", "status": 0 },
|
|
137
|
+
"price": { "amount": "102.08", "total": "108.2" },
|
|
138
|
+
"buyer": { "tcode": "xxx", "company": "上海亘岩网络科技有限公司" },
|
|
139
|
+
"payer": { "tcode": "xxx", "company": "北京滴滴出行科技有限公司" }
|
|
140
|
+
},
|
|
141
|
+
"relative_fids": [],
|
|
142
|
+
"bill_type": 0
|
|
153
143
|
}
|
|
154
144
|
```
|
|
155
145
|
|
|
156
146
|
**字段映射提取:**
|
|
157
|
-
- `invoiceId` = `
|
|
158
|
-
- `invoiceNumber` = `
|
|
159
|
-
- `invoiceType` = `
|
|
160
|
-
- `invoiceTypeCode` = `
|
|
161
|
-
- `invoiceDate` = `
|
|
162
|
-
- `amount` = `
|
|
163
|
-
- `buyerName` = `
|
|
164
|
-
- `sellerName` = `
|
|
165
|
-
- `consumeContent` = `
|
|
166
|
-
- `expenseType
|
|
147
|
+
- `invoiceId` = `fid` = `"1295366637717012482"`
|
|
148
|
+
- `invoiceNumber` = `number` = `"36901189"`
|
|
149
|
+
- `invoiceType` = `comm_info.pro.cname` = `"增值税电子普通发票"`
|
|
150
|
+
- `invoiceTypeCode` = `comm_info.pro.type` = `3`
|
|
151
|
+
- `invoiceDate` = `comm_info.pro.date` = `"2026-07-30"`
|
|
152
|
+
- `amount` = `comm_info.price.total` = `"108.2"`
|
|
153
|
+
- `buyerName` = `comm_info.buyer.company` = `"上海亘岩网络科技有限公司"`
|
|
154
|
+
- `sellerName` = `comm_info.payer.company` = `"北京滴滴出行科技有限公司"`
|
|
155
|
+
- `consumeContent` = `extInfo.content` = `"*运输服务*客运服务费"`
|
|
156
|
+
- `expenseType`:列表只有 `fylx`(ID),按消费内容归类 → `"市内交通"`
|
|
157
|
+
- 流程标题里的城市:`province` = 上海市,`extInfo.from` / `extInfo.to` 也都在上海 → 上海(不用再调 `invoice.get`)
|
|
167
158
|
|
|
168
159
|
### Step 1C: 展示发票汇总,等待用户确认
|
|
169
160
|
|
|
@@ -172,7 +163,7 @@ weaver-work-cli --json invoice run invoice.list --input-json '{"page_size":10,"s
|
|
|
172
163
|
**AI 展示给用户:**
|
|
173
164
|
|
|
174
165
|
```markdown
|
|
175
|
-
已为您查询最近一周(2026-07-
|
|
166
|
+
已为您查询最近一周(2026-07-23 ~ 2026-07-30)的发票数据,共找到 1 张未报销发票,汇总金额 ¥108.20:
|
|
176
167
|
|
|
177
168
|
| # | 发票类型 | 开票日期 | 发票号码 | 金额 | 销方名称 | 费用类型 |
|
|
178
169
|
|---|----------|----------|----------|------|----------|----------|
|
|
@@ -183,24 +174,23 @@ weaver-work-cli --json invoice run invoice.list --input-json '{"page_size":10,"s
|
|
|
183
174
|
|
|
184
175
|
用户回复"确认" → 继续后续流程
|
|
185
176
|
|
|
186
|
-
### Step 1B:
|
|
177
|
+
### Step 1B: 获取事前申请(CLI 默认日期窗口)
|
|
187
178
|
|
|
188
|
-
>
|
|
189
|
-
>
|
|
190
|
-
> 往前推90天 → cusCreateDateStart = "2026-05-01"
|
|
179
|
+
> 用户没指定日期 → 不传 `cusCreateDateStart` / `cusCreateDateEnd`。
|
|
180
|
+
> CLI 以东八区当天为结束日、往前 7 天为开始日(结束日发给接口时再 + 1 天);第 1 页查不到时自动放宽到最近 1 个月,`data.query.widened=true`。
|
|
191
181
|
|
|
192
182
|
**命令:**
|
|
193
183
|
|
|
194
184
|
Windows PowerShell:
|
|
195
185
|
|
|
196
186
|
```powershell
|
|
197
|
-
weaver-work-cli --json invoice run invoice.reim.requests.list --input-json '{"pageNo":1,"pageSize":100
|
|
187
|
+
weaver-work-cli --json invoice run invoice.reim.requests.list --input-json '{"pageNo":1,"pageSize":100}'
|
|
198
188
|
```
|
|
199
189
|
|
|
200
190
|
macOS/Linux(bash/zsh):
|
|
201
191
|
|
|
202
192
|
```bash
|
|
203
|
-
weaver-work-cli --json invoice run invoice.reim.requests.list --input-json '{"pageNo":1,"pageSize":100
|
|
193
|
+
weaver-work-cli --json invoice run invoice.reim.requests.list --input-json '{"pageNo":1,"pageSize":100}'
|
|
204
194
|
```
|
|
205
195
|
|
|
206
196
|
**返回:**
|
|
@@ -242,7 +232,7 @@ weaver-work-cli --json invoice run invoice.reim.requests.list --input-json '{"pa
|
|
|
242
232
|
}
|
|
243
233
|
```
|
|
244
234
|
|
|
245
|
-
|
|
235
|
+
若还能对上另一条发起日也在 90 天内的事前申请,就确认不了是哪条:停下来把两条(名称、发起日期、状态、能对上的发票)列给用户选,选定后再继续,见示例17。
|
|
246
236
|
|
|
247
237
|
### Step 2.5: 获取报销单工作流
|
|
248
238
|
|
|
@@ -280,7 +270,7 @@ weaver-work-cli --json invoice run invoice.reim.workflow.resolve --input-json '{
|
|
|
280
270
|
|
|
281
271
|
### Step 3: 并行载入表单 + 发票对象
|
|
282
272
|
|
|
283
|
-
|
|
273
|
+
以下两条命令互相独立,**同时发起**。
|
|
284
274
|
|
|
285
275
|
**① 载入报销表单(`weaver-e10-workflow`):**
|
|
286
276
|
|
|
@@ -326,9 +316,7 @@ weaver-work-cli --json workflow run workflow.createForm --input-json '{"workflow
|
|
|
326
316
|
|
|
327
317
|
> 承担主体、申请人、报销人直接上级、合同号、报销方式都带 `initialValue` → **不传**。明细每行只写「相关发票」和(已绑定事前申请的)「相关流程」;申请金额、币种、费用类型(科目)、费用说明、费用日期、相关凭证都**不传**,由发票联动带出。实报金额、附件数、承担人所有上级等不在 `fields` 里 → **不传**。
|
|
328
318
|
|
|
329
|
-
**②
|
|
330
|
-
|
|
331
|
-
**③ 取发票对象:** 只传发票,不传凭证。
|
|
319
|
+
**② 取发票对象:** 只传发票,不传凭证。
|
|
332
320
|
|
|
333
321
|
Windows PowerShell:
|
|
334
322
|
|
|
@@ -425,7 +413,7 @@ weaver-work-cli --json workflow run workflow.createRequest --input ./reim-create
|
|
|
425
413
|
```
|
|
426
414
|
|
|
427
415
|
**要点**:
|
|
428
|
-
-
|
|
416
|
+
- 一张发票一行,数组顺序就是明细行顺序(行程单有多段行程也不拆,见 [reim-form-fill-rules.md](reim-form-fill-rules.md#3-行程单多段行程不拆行))
|
|
429
417
|
- 两行都绑定同一个事前申请(明细「相关流程」同值);主表「事前申请流程」不赋值
|
|
430
418
|
- 每行「相关发票」只放该行发票的 1 个对象
|
|
431
419
|
|
|
@@ -540,15 +528,15 @@ weaver-work-cli --json workflow run workflow.editApply --input-json '{"context":
|
|
|
540
528
|
|
|
541
529
|
| 轮次 | 用户 | AI 操作 |
|
|
542
530
|
|------|------|---------|
|
|
543
|
-
| 1 | "查下我最近的发票" |
|
|
531
|
+
| 1 | "查下我最近的发票" | 按「查票日期」取最近一周 → 调用 `invoice.list`,无结果则扩大到一个月 → 告知用户查询范围,展示发票列表,**不进入报销流程** |
|
|
544
532
|
| 2 | "帮我报销" | 上下文已有发票 → 跳过 1A,展示发票汇总(Step 1C)→ 用户确认 → 用发票日期筛选事前申请 → Step 2 → 2.5 → 3 → 4 → 5 |
|
|
545
533
|
|
|
546
534
|
### 示例8:查事前申请 → 查发票 → 报销
|
|
547
535
|
|
|
548
536
|
| 轮次 | 用户 | AI 操作 |
|
|
549
537
|
|------|------|---------|
|
|
550
|
-
| 1 | "查下我的事前申请" | 调用 `invoice.reim.requests.list
|
|
551
|
-
| 2 | "查下对应的发票" | 复用事前申请日期,`consumption_tm_begin` = 最早 createTime
|
|
538
|
+
| 1 | "查下我的事前申请" | 调用 `invoice.reim.requests.list`(不传日期,CLI 查最近 7 天,查不到自动放宽到最近 1 个月),展示列表并说明查的是哪段时间(取 `data.query`) |
|
|
539
|
+
| 2 | "查下对应的发票" | 复用事前申请日期,`consumption_tm_begin` = 最早 `createTime` 的日期部分(`YYYY-MM-DD`),调用 `invoice.list` 展示 |
|
|
552
540
|
| 3 | "报销吧" | 上下文已有两组数据 → 跳过 1A/1B,直接 Step 2 → 2.5 → 3 → 4 → 5 |
|
|
553
541
|
|
|
554
542
|
### 示例9:查询后选部分报销
|
|
@@ -563,7 +551,7 @@ weaver-work-cli --json workflow run workflow.editApply --input-json '{"context":
|
|
|
563
551
|
用户说:"报销上个月滴滴和住宿的发票"
|
|
564
552
|
|
|
565
553
|
AI 操作:
|
|
566
|
-
1.
|
|
554
|
+
1. `consumption_tm_begin="2026-07-01"`、`consumption_tm_end="2026-07-31"`,并设置 `content="滴滴"` 组装请求参数
|
|
567
555
|
2. 调用 `invoice.list` 查询(CLI 支持服务端筛选,减少返回数据量)
|
|
568
556
|
3. 展示发票汇总(Step 1C),用户确认后走 Step 1B → 2 → 2.5 → 3 → 4 → 5
|
|
569
557
|
|
|
@@ -572,9 +560,9 @@ AI 操作:
|
|
|
572
560
|
用户说:"帮我报销"
|
|
573
561
|
|
|
574
562
|
AI 操作:
|
|
575
|
-
1.
|
|
563
|
+
1. 按「查票日期」取最近一周(2026-08-10 ~ 2026-08-17)
|
|
576
564
|
2. 调用 `invoice.list` → 返回空(无结果)
|
|
577
|
-
3.
|
|
565
|
+
3. 自动扩到最近一个月(2026-07-18 ~ 2026-08-17)
|
|
578
566
|
4. 再次调用 `invoice.list` → 返回 3 张发票
|
|
579
567
|
5. 展示 Step 1C:
|
|
580
568
|
|
|
@@ -600,63 +588,35 @@ AI 操作:
|
|
|
600
588
|
|
|
601
589
|
- 流程标题:`"龚为明8月上海去重庆交通费报销"`(「去重庆」取用户原话,没说从哪出发就默认上海;月份取发票开票日期 2026-08-19)
|
|
602
590
|
- 合同号传 `"20250104933"`;**承担主体不传**(「边宝」也不传,等合同联动)
|
|
603
|
-
- **相关客户、相关项目还没确认 → 一次请用户一起填写,禁止直接存草稿,也不要再问合同号。** 这是出差,「去重庆」必须给具体客户;项目可以说「不填」。用户给出名称后先 `invoice.reim.field.search` 消歧,写入 `data` 再 `createRequest
|
|
591
|
+
- **相关客户、相关项目还没确认 → 一次请用户一起填写,禁止直接存草稿,也不要再问合同号。** 这是出差,「去重庆」必须给具体客户;项目可以说「不填」。用户给出名称后先 `invoice.reim.field.search` 消歧,写入 `data` 再 `createRequest`
|
|
604
592
|
- 若用户已确认客户 / 项目,创建后 `linkageResult` 返回(2026-10-21 真机,合同本身带出客户项目时):`字段联动带出:…实报金额=50.07、承担主体=朱洪磊、相关客户=中国航空集团有限公司、合同号=20250104933、相关项目=中航集团办公平台改造及升级项目。`
|
|
605
593
|
- 原样粘贴 `finalMarkdown` 后补一句:「承担主体已按合同 20250104933 联动带出:朱洪磊;你提到的承担主体「边宝」与合同不一致,已按合同联动为准。」客户 / 项目若被联动改写,同样如实告诉用户
|
|
606
594
|
- 联动把已确认的客户 / 项目冲空了 → 用已确认值 `workflow.edit*` 写回,不要再问、不要另建一张单
|
|
607
595
|
|
|
608
596
|
---
|
|
609
597
|
|
|
610
|
-
## 示例13
|
|
598
|
+
## 示例13:没有出差流程时,按出差时间 + 城市查票(「报销上周去北京的费用」)
|
|
611
599
|
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
```json
|
|
615
|
-
{
|
|
616
|
-
"date": "2026-08-19", "sqje": "50.07", "fysm": "交通运输服务",
|
|
617
|
-
"itinerary": "1328381883894906889", "containsItinerary": true,
|
|
618
|
-
"itineraryData": [
|
|
619
|
-
{"date": "2025-12-31", "sqje": "14.67", "fysm": "大道|重庆财经学院-西门 - 鱼胡路-地铁站", "subjectName": "5301滴滴车票", "subjectId": "100502270000000177", "itinerary": "1328381883894906889"},
|
|
620
|
-
{"date": "2026-01-22", "sqje": "10.40", "fysm": "大道|重庆财经学院-西门 - 鱼胡路-地铁站", "subjectName": "5301滴滴车票", "subjectId": "100502270000000177", "itinerary": "1328381883894906889"},
|
|
621
|
-
{"date": "2026-04-09", "sqje": "25.00", "fysm": "大道|重庆财经学院-西门 - 大渡口区|重庆工业博物馆", "subjectName": "5301滴滴车票", "subjectId": "100502270000000177", "itinerary": "1328381883894906889"}
|
|
622
|
-
]
|
|
623
|
-
}
|
|
624
|
-
```
|
|
600
|
+
今天 2026-10-21,用户说"帮我报销上周去北京的费用"(2026-10-21 真机),`invoice.reim.requests.list` 没找到去北京的出差流程:
|
|
625
601
|
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
```json
|
|
629
|
-
"100003690000000011": [
|
|
630
|
-
{"100003720000077896": [<发票对象>]}
|
|
631
|
-
]
|
|
632
|
-
```
|
|
633
|
-
|
|
634
|
-
- 流程标题:`龚为明8月上海去重庆交通费报销`
|
|
635
|
-
|
|
636
|
-
---
|
|
637
|
-
|
|
638
|
-
## 示例14:按出差时间 + 城市查票(「报销上周去北京的费用」)
|
|
639
|
-
|
|
640
|
-
今天 2026-10-21,用户说"帮我报销上周去北京的费用"(2026-10-21 真机):
|
|
641
|
-
|
|
642
|
-
1. 出差时间 = 上周 2026-10-12 ~ 10-18 → 开票日期查 **2026-10-12 ~ 今天**
|
|
643
|
-
2. 查到 1 张火车票(10-19,¥166):`invoice.get` 起止站 杭州东 → 全椒,与北京无关
|
|
602
|
+
1. 出差时间 = 上周 2026-10-12 ~ 10-18 → 消费日期查 **2026-10-11 ~ 今天**(加 `--view summary`)
|
|
603
|
+
2. 查到 1 张火车票(10-19,¥166):`stationGetOn` / `stationGetOff` 是 杭州东 → 全椒,与北京无关
|
|
644
604
|
3. 没有与北京相关的票 → 回复用户:
|
|
645
605
|
|
|
646
|
-
>
|
|
606
|
+
> 你的票夹里没找到上周去北京的发票,所以没有往下建报销单。我按消费日期 2026-10-11 到今天查的,只有 1 张火车票(10-19,¥166),但它是杭州东 → 全椒,跟北京无关。可能是北京的发票还没导进票夹,或者日期不在上周。
|
|
647
607
|
|
|
648
608
|
- 不要因为这期间有票就拿来报;也不要自己把时间放宽到几个月前
|
|
649
609
|
- 这期间就算有上海的打车票,也不单独拿来报:没有一张北京的票,就不算出差
|
|
650
610
|
|
|
651
611
|
---
|
|
652
612
|
|
|
653
|
-
## 示例14
|
|
613
|
+
## 示例14:没有出差流程时,带上出发地(上海)的打车票(「报销上周去北京的费用」)
|
|
654
614
|
|
|
655
|
-
今天 2026-10-21,用户说"帮我报销上周去北京的费用"
|
|
615
|
+
今天 2026-10-21,用户说"帮我报销上周去北京的费用",没找到去北京的出差流程,没说从哪出发 → 出发城市默认**上海**。
|
|
656
616
|
|
|
657
617
|
1. 出差时间 = 上周 2026-10-12 ~ 10-18 → 消费日期查 **2026-10-11 ~ 今天**
|
|
658
618
|
2. 目的城市的票:火车票 上海虹桥 → 北京南(乘车 10-13)、火车票 北京南 → 上海虹桥(乘车 10-16)、北京的酒店(入住 10-13)
|
|
659
|
-
3. 出发城市的打车票(消费日期 `
|
|
619
|
+
3. 出发城市的打车票(消费日期 `modify_info.cstm` 落在 10-11 ~ 10-19 内):
|
|
660
620
|
- 滴滴 10-13,行程单 家 → 虹桥火车站 ✅
|
|
661
621
|
- 上海强生出租 10-16,虹桥火车站 → 家 ✅
|
|
662
622
|
- 滴滴 10-20,上海市内 ❌(回来以后打的车,不在出差时间内)
|
|
@@ -700,6 +660,79 @@ AI 操作:
|
|
|
700
660
|
|
|
701
661
|
---
|
|
702
662
|
|
|
663
|
+
## 示例17:对上多条事前申请,问清用户再往下走
|
|
664
|
+
|
|
665
|
+
用户说「帮我报销」,确认了 2 张发票:36901189(开票 2026-07-30)、36901190(开票 2026-08-02)。`invoice.reim.requests.list` 查到 2 条事前申请,两张发票在时间上都落在这 2 条里:
|
|
666
|
+
|
|
667
|
+
- 交通费报销-后端开发111-2026-07-01(发起 07-01,`flowStatus=6`)
|
|
668
|
+
- 上海出差申请-后端开发111-2026-07-20(发起 07-20,`flowStatus=6`)
|
|
669
|
+
|
|
670
|
+
确认不了用哪条 → 停在 Step 2,不调 `invoice.reim.workflow.resolve`,两张发票一次问:
|
|
671
|
+
|
|
672
|
+
> 下面的发票对上了多条事前申请,我确认不了该用哪条,请告诉我每张发票用哪一条(回复序号即可,例如「都用 2」或「36901189 用 1,36901190 用 2」):
|
|
673
|
+
>
|
|
674
|
+
> | # | 事前申请 | 发起日期 | 状态 | 能对上的发票 |
|
|
675
|
+
> | --- | --- | --- | --- | --- |
|
|
676
|
+
> | 1 | 交通费报销-后端开发111-2026-07-01 | 2026-07-01 | 已完成 | 36901189(07-30)、36901190(08-02) |
|
|
677
|
+
> | 2 | 上海出差申请-后端开发111-2026-07-20 | 2026-07-20 | 已完成 | 36901189(07-30)、36901190(08-02) |
|
|
678
|
+
>
|
|
679
|
+
> 都不是的话,回复「都不是」,或告诉我正确的事前申请名称。
|
|
680
|
+
|
|
681
|
+
| 用户回答 | 怎么做 |
|
|
682
|
+
| --- | --- |
|
|
683
|
+
| 「都用 2」 | 两张都绑「上海出差申请」。回复开头说「已按你的选择:36901189、36901190 → 上海出差申请-后端开发111-2026-07-20」,接着 Step 2.5,不再问「确认吗」 |
|
|
684
|
+
| 「最新那个吧」 | 可以理解成第 2 条(发起日最晚),但要回显后再走:「按发起日期最新的是第 2 条:上海出差申请-后端开发111-2026-07-20,两张发票都用它,对吗?」 |
|
|
685
|
+
| 「你看着办」 | 不替用户选:「绑错事前申请会影响报销走哪个流程和谁来审批,请回复 1 或 2。」 |
|
|
686
|
+
| 「36901189 用 1」 | 36901189 绑第 1 条;36901190 还没定,只就这张再问一次,不默认成同一条 |
|
|
687
|
+
| 「都不是」 | 不是差旅 / 外出 → 两张都不绑定,继续填单;是差旅 / 外出 → 请用户给出正确的事前申请名称,拒绝就结束 |
|
|
688
|
+
|
|
689
|
+
---
|
|
690
|
+
|
|
691
|
+
## 示例18:按出差流程查票,前后各一天的发票全报(「报销 10 月 26 号去武汉出差的费用」)
|
|
692
|
+
|
|
693
|
+
今天 2026-10-30,用户说「报销 10 月 26 号去武汉出差的费用」。
|
|
694
|
+
|
|
695
|
+
1. 用户说了出差日期,`invoice.reim.requests.list` 传 `{"requestname":"出差","cusCreateDateStart":"2026-10-26"}`(结束日不传,CLI 用今天),2 条:
|
|
696
|
+
- 出差/外出流程-龚为明-2026-10-26(测试)(`1331357089254367304`,发起 10-28)
|
|
697
|
+
- 出差/外出流程-龚为明-2026-10-27(测试单)(`1330981790850924555`,发起 10-27)
|
|
698
|
+
2. 两条并行 `workflow.summary`。第 1 条(2026-10-30 真机):起始日期 `2026-10-26 00:00`、结束日期 `2026-10-26 23:56`、出差城市 `中国/湖北/武汉`。只有它是 10-26 去武汉 → 直接用,不问。
|
|
699
|
+
3. 查票范围 = 10-26 前 1 天 ~ 10-26 后 1 天:
|
|
700
|
+
|
|
701
|
+
Windows PowerShell:
|
|
702
|
+
|
|
703
|
+
```powershell
|
|
704
|
+
weaver-work-cli --json invoice run invoice.reim.candidates.list --input-json '{"consumption_tm_begin":"2026-10-25","consumption_tm_end":"2026-10-27"}'
|
|
705
|
+
```
|
|
706
|
+
|
|
707
|
+
macOS/Linux(bash/zsh):
|
|
708
|
+
|
|
709
|
+
```bash
|
|
710
|
+
weaver-work-cli --json invoice run invoice.reim.candidates.list --input-json '{"consumption_tm_begin":"2026-10-25","consumption_tm_end":"2026-10-27"}'
|
|
711
|
+
```
|
|
712
|
+
|
|
713
|
+
4. `available` 里 7 张,**全部列入**(机票、保险、上海的打车、武汉的门票都算,不按城市再筛)。Step 1C:
|
|
714
|
+
|
|
715
|
+
> 按出差流程「出差/外出流程-龚为明-2026-10-26(测试)」(2026-10-26 ~ 2026-10-26,武汉)前后各放宽 1 天,查了消费日期 2026-10-25 ~ 2026-10-27 的发票,共 7 张可报,合计 ¥1,925.23:
|
|
716
|
+
>
|
|
717
|
+
> | # | 发票类型 | 开票日期 | 发票号码 | 金额 | 销方名称 | 费用类型 |
|
|
718
|
+
> |---|----------|----------|----------|------|----------|----------|
|
|
719
|
+
> | 1 | 电子发票(普通发票) | 2026-10-27 | … | ¥920.00 | 上海华程西南国际旅行社有限公司 | 机票 |
|
|
720
|
+
> | 2 | 电子发票(普通发票) | 2026-10-27 | … | ¥730.00 | 上海华程西南国际旅行社有限公司 | 机票 |
|
|
721
|
+
> | … | | | | | | |
|
|
722
|
+
> | 7 | 电子发票(普通发票) | 2026-10-27 | … | ¥24.85 | 强生致行互联网科技(上海)有限公司 | 市内交通 |
|
|
723
|
+
>
|
|
724
|
+
> 请确认是否使用以上发票进行报销?
|
|
725
|
+
|
|
726
|
+
5. 用户确认后跳过 Step 1B、Step 2:出差流程 10-28 才发起,晚于开票日 10-27,也照样绑定。每行明细「相关流程」= `出差/外出流程-龚为明-2026-10-26(测试)(1331357089254367304)`;`invoice.reim.workflow.resolve` 传 `{"requestIds":["1331357089254367304"]}`,之后按 Step 3 ~ 5 建草稿。
|
|
727
|
+
|
|
728
|
+
| 情况 | 怎么做 |
|
|
729
|
+
| --- | --- |
|
|
730
|
+
| 用户只说「报销我的出差」,候选 3 条 | 一次列出 3 条(序号、标题、起止日期、出差城市、状态)请用户选,选定前不查票 |
|
|
731
|
+
| 这段时间的票都在 `assigned` | 回复「2026-10-25 ~ 2026-10-27 没有可报的发票,7 张都已挂在其他报销单上」,停下,不放宽时间 |
|
|
732
|
+
| `workflow.summary` 没有起始 / 结束日期 | 告诉用户这条出差流程读不到起止日期,请用户直接给出差日期 |
|
|
733
|
+
|
|
734
|
+
---
|
|
735
|
+
|
|
703
736
|
## 关键检查清单
|
|
704
737
|
|
|
705
738
|
调用 `workflow.createRequest` 前确认:
|
|
@@ -711,22 +744,21 @@ AI 操作:
|
|
|
711
744
|
5. [ ] 带 `initialValue` 且不需改写的字段没有重复传;**明细每行只有「相关发票」和(可选的)「相关流程」两个键**,币种、金额、日期等都没有传
|
|
712
745
|
6. [ ] 浏览按钮写 `名称(ID)`,没有裸 ID;Select 写选项名,不是 optionValue
|
|
713
746
|
7. [ ] 每行「相关发票」是 `invoice.browse-field.data` 返回的 1 个发票对象;`browse-field.data` 只传了发票,没有传凭证
|
|
714
|
-
8. [ ]
|
|
715
|
-
9. [ ]
|
|
716
|
-
10. [ ]
|
|
717
|
-
11. [ ]
|
|
718
|
-
12. [ ]
|
|
719
|
-
13. [ ]
|
|
720
|
-
14. [ ]
|
|
721
|
-
15. [ ]
|
|
722
|
-
16. [ ] `action` 是 `"draft"`,没有问用户「存草稿 / 提交审批」,也没有传 `"submit"`
|
|
747
|
+
8. [ ] 相关凭证(17/18/57/58)没有单独成行;行程单有多段行程也是一张发票一行
|
|
748
|
+
9. [ ] 文本字段没有 `*` 号
|
|
749
|
+
10. [ ] **相关客户、相关项目已在同一次提问里确认**(客户有消歧后的 `名称(ID)` 或非出差默认「泛微上海」;项目有名称或用户已说「不填」)。没确认不允许调用 `workflow.createRequest`。没有向用户要合同号
|
|
750
|
+
11. [ ] 合同号按已确认项目从历史带出;对不上或项目「不填」用 `20260999`。不是 `20260999` 时承担主体不传,客户 / 项目仍写入 `data`
|
|
751
|
+
12. [ ] 总部费用报销没有把合同号列进提问。用户自己说了合同号才用用户的
|
|
752
|
+
13. [ ] 话费报销:明细没有写金额;主表金额(可写时)是核算后的实报金额合计;建单后已对比联动金额与实报金额并告诉用户
|
|
753
|
+
14. [ ] `action` 是 `"draft"`,没有问用户「存草稿 / 提交审批」,也没有传 `"submit"`
|
|
754
|
+
15. [ ] 每行「相关流程」要么是时间上唯一对上的那条,要么是用户明确选定(或确认了推断)的那条;对上多条时没有按费用类型、金额、标题或「谁更近」自己挑。按出差流程查的票,每行「相关流程」都是那条出差流程
|
|
723
755
|
|
|
724
756
|
草稿落库后确认:
|
|
725
757
|
|
|
726
|
-
|
|
758
|
+
16. [ ] 明细「费用类型(科目)」「费用说明」「费用明细」「相关凭证」仍空时已告诉用户是发票联动没带出,没有补写,也没有向用户要行程单。客户 / 项目被冲空则写回。没有另建报销单,也没有补问合同号
|
|
727
759
|
|
|
728
760
|
修改报销单前确认:
|
|
729
761
|
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
762
|
+
17. [ ] `requestId` 来自 `workflow.createRequest` 的返回结果
|
|
763
|
+
18. [ ] 走 `workflow.editLoad` → `workflow.editPrepare` → 用户确认 → `workflow.editApply`,只传要改的字段。Step 5.3 里用户刚给的值不再二次确认
|
|
764
|
+
19. [ ] 只改 `editableFields` 里的字段,遇 `notEditable` 如实转述,不换字段 id 绕过。明细只改「相关发票」「相关流程」(用户明确要求时才改科目)
|
|
@@ -6,27 +6,24 @@
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## 匹配决策树
|
|
10
10
|
|
|
11
11
|
```
|
|
12
|
-
|
|
13
|
-
├──
|
|
14
|
-
└──
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
兜底条件匹配(押金/电子设备/家具/研发/销售)?
|
|
28
|
-
├── 命中 → 使用对应 ID,结束
|
|
29
|
-
└── 全不命中 → 填 "100502270000000104",结束
|
|
12
|
+
优先级1: expenseType 匹配?
|
|
13
|
+
├── 命中 → 使用对应 ID,结束
|
|
14
|
+
└── 未命中 → ↓
|
|
15
|
+
优先级2: sellerName 关键词匹配?
|
|
16
|
+
├── 命中 → 使用对应 ID,结束
|
|
17
|
+
└── 未命中 → ↓
|
|
18
|
+
优先级3: consumeContent 关键词匹配?
|
|
19
|
+
├── 命中 → 使用对应 ID,结束
|
|
20
|
+
└── 未命中 → ↓
|
|
21
|
+
优先级4: requestname 辅助匹配?
|
|
22
|
+
├── 命中 → 使用对应 ID,结束
|
|
23
|
+
└── 未命中 → ↓
|
|
24
|
+
兜底条件匹配(押金/电子设备/家具/研发/销售)?
|
|
25
|
+
├── 命中 → 使用对应 ID,结束
|
|
26
|
+
└── 全不命中 → 填 "100502270000000104",结束
|
|
30
27
|
```
|
|
31
28
|
|
|
32
29
|
---
|
|
@@ -111,4 +108,4 @@ invoice.reim.row-info 返回 subjectId?
|
|
|
111
108
|
{"<费用类型(科目)字段id>": "市内交通费(100502270000000006)"}
|
|
112
109
|
```
|
|
113
110
|
|
|
114
|
-
>
|
|
111
|
+
> 科目名称取本文件查找表里的「科目名称」,ID 原样复制,严禁修改。每行明细的科目独立匹配。
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
- **键只能取 `workflow.createForm` 返回的 `fields[].id`**:按 `fields[].name` 定位业务字段,取它的 `id`;明细字段的 `subFormId` 就是 `details` 的键。
|
|
27
27
|
- **`fields` 里没有的字段一律不传**:`fields` 只下发可写字段。实报金额、人民币金额、附件数、报销人上级、承担人直接上级、承担人所有上级、人员ID、提单人员、报销总金额等由表单自身计算或联动带出,不在可写清单里,传了整单会被拒(`notEditable`)。
|
|
28
28
|
- **带 `initialValue` 的字段默认不传**:CLI 会自动并入表单默认值;只有本文档规则要求的值与默认值不同,或用户本次明确改写时才传。明细只写「相关发票」「相关流程」(见「费用明细字段规则」)。
|
|
29
|
-
- `details` 每个数组元素是一行明细,**顺序 = 明细行顺序**,一张发票一行(行程单有多段行程也不拆,见「4.
|
|
29
|
+
- `details` 每个数组元素是一行明细,**顺序 = 明细行顺序**,一张发票一行(行程单有多段行程也不拆,见「4. 行程单多段行程不拆行」)。
|
|
30
30
|
- **流程标题必传**:用 `createRequest` 的 `requestName` 参数传(见下方「流程标题」),按公式生成,**禁止留用表单默认标题**——不传会静默使用默认标题且无任何提示。
|
|
31
31
|
|
|
32
32
|
---
|
|
@@ -109,13 +109,9 @@
|
|
|
109
109
|
|
|
110
110
|
## 明细行前置处理
|
|
111
111
|
|
|
112
|
-
### 1.
|
|
112
|
+
### 1. 发票与相关凭证分类
|
|
113
113
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
### 2. 发票与相关凭证分类
|
|
117
|
-
|
|
118
|
-
过滤后的发票列表,**按 `invoiceTypeCode`(即 `info.comm_info.pro.type`)分类**,再组装明细行。
|
|
114
|
+
发票列表**按 `invoiceTypeCode`(即 `info.comm_info.pro.type`)分类**,再组装明细行。
|
|
119
115
|
|
|
120
116
|
> 完整的发票类型 ID 与名称映射见 [reim-api-reference.md - 发票类型 ID 映射表](reim-api-reference.md#发票类型-id-映射表)
|
|
121
117
|
|
|
@@ -126,17 +122,17 @@
|
|
|
126
122
|
|
|
127
123
|
> **注意区分**:type=18 是滴滴的支付行程凭证(不能独立成行);滴滴开具的增值税电子普通发票 type=3,是正式发票,可独立成行。
|
|
128
124
|
|
|
129
|
-
###
|
|
125
|
+
### 2. 相关凭证不赋值(由联动带出)
|
|
130
126
|
|
|
131
127
|
明细「相关凭证」**不允许 AI 赋值**,创建和修改都不写入 `data`。挂上「相关发票」后由发票联动带出。
|
|
132
128
|
|
|
133
|
-
-
|
|
129
|
+
- 不做凭证与发票配对
|
|
134
130
|
- 凭证的 `fid` 不传给 `invoice.browse-field.data`
|
|
135
131
|
- 用户指定了要挂哪张凭证也不写入;落库后仍空只告知「发票联动没有带出相关凭证」,不补写
|
|
136
132
|
|
|
137
|
-
###
|
|
133
|
+
### 3. 行程单多段行程不拆行
|
|
138
134
|
|
|
139
|
-
|
|
135
|
+
一张滴滴发票挂的行程单有几段,都仍然**一张发票一行**,该行只写「相关发票」(及「相关流程」),日期、金额、科目都由发票联动带出。
|
|
140
136
|
|
|
141
137
|
### 4. 取发票对象
|
|
142
138
|
|
|
@@ -200,6 +196,8 @@ CLI operation:`invoice.reim.field.search`
|
|
|
200
196
|
| `workflowId` | 本次报销工作流 ID(总部费用报销是 `100003460000000060`) |
|
|
201
197
|
| `nodeId` | 可省略;CLI 默认总部费用报销发起节点 `100004140000000271` |
|
|
202
198
|
|
|
199
|
+
> **⚠️ 注意是 `keywords`(带 s),不是 `keyword`。** 入参只接受上表 4 个键,写成 `keyword`、`keyWord` 或多传其他键都会被 CLI 当成参数错误拒绝。`fieldId`、`workflowId` 传带引号的纯数字字符串。
|
|
200
|
+
|
|
203
201
|
macOS/Linux(bash/zsh):
|
|
204
202
|
|
|
205
203
|
```bash
|
|
@@ -256,7 +254,7 @@ weaver-work-cli --json invoice run invoice.reim.field.search --input-json '{"key
|
|
|
256
254
|
## 费用明细字段规则
|
|
257
255
|
|
|
258
256
|
> **定位明细表**:用 `fields` 里带「相关发票」(`EinvoiceComponent`)字段的那个 `subFormId`,只填这一张明细表;其他明细表(外包订单等)不填。
|
|
259
|
-
> **⚠️ 明细每行只写「相关发票」**(有绑定的事前申请时再写「相关流程」)。**其他明细列一律不传**,由「相关发票」联动带出:费用日期、金额(申请金额 / 实报金额等)、币种、费用类型(科目)、费用说明、费用明细、相关凭证、明细的相关客户 /
|
|
257
|
+
> **⚠️ 明细每行只写「相关发票」**(有绑定的事前申请时再写「相关流程」)。**其他明细列一律不传**,由「相关发票」联动带出:费用日期、金额(申请金额 / 实报金额等)、币种、费用类型(科目)、费用说明、费用明细、相关凭证、明细的相关客户 / 项目、附件数。表单默认值、用户口述都不写进这些列。落库后仍空只告知「发票联动没有带出」,不要补写。
|
|
260
258
|
|
|
261
259
|
| fieldName 关键词 | 怎么填 |
|
|
262
260
|
|------------------|--------|
|
|
@@ -282,7 +280,7 @@ weaver-work-cli --json invoice run invoice.reim.field.search --input-json '{"key
|
|
|
282
280
|
|
|
283
281
|
1. 该行发票已绑定的事前申请
|
|
284
282
|
2. 本次只命中一条差旅 / 外出事前申请 → 未绑定的行也用这一条
|
|
285
|
-
3. 有多条且该行未绑定 →
|
|
283
|
+
3. 有多条且该行未绑定 → 暂停,按 [reim-matching-rules.md](reim-matching-rules.md#多条事前申请无法确认时必须问用户) 问清楚这一行用哪一条,不自己挑
|
|
286
284
|
4. 一条都没有 → 暂停。已有事前申请列表就列给用户选;还没有就先 `invoice.reim.requests.list`。选定后再按 `名称(requestid)` 写入
|
|
287
285
|
|
|
288
286
|
主表「事前申请流程 / 相关流程」不赋值,保留空值。用户拒绝、取消或不选 → **结束报销,禁止 `workflow.createRequest`**。明细「相关流程」不要留空,也不要填发票号、合同号或其他字段顶替。
|
|
@@ -303,13 +301,12 @@ weaver-work-cli --json invoice run invoice.reim.field.search --input-json '{"key
|
|
|
303
301
|
|
|
304
302
|
**操作步骤:**
|
|
305
303
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
5. **禁止**用固定值「泛微上海」顶替出差的相关客户
|
|
304
|
+
1. 识别为出差后,**在调用 `workflow.createRequest` 之前必须暂停**(相关客户、相关项目都按上一节确认)。合同号不是 `20260999` 也不能改成「先建草稿等联动」
|
|
305
|
+
2. 用户确认采用了历史相关客户(Step 4.4)→ 将该历史原值填进「相关客户」,本节拦截解除
|
|
306
|
+
3. 否则一次提醒用户:「当前为出差报销。请一起填写相关客户和相关项目。客户必须是具体名称,否则无法继续;项目没有可以说不填。合同号不用填。」
|
|
307
|
+
4. 用户给出客户名称 → **先**按「相关客户模糊搜索」调用 `invoice.reim.field.search`:一条直接填 `名称(ID)`,多条列给用户选,零条请用户换名称。**不要**把未消歧简称直接丢给 `createRequest`
|
|
308
|
+
5. 用户拒绝、取消、或不提供具体客户 → **结束报销流程,禁止调用 `workflow.createRequest`**
|
|
309
|
+
6. **禁止**用固定值「泛微上海」顶替出差的相关客户
|
|
313
310
|
|
|
314
311
|
---
|
|
315
312
|
|
|
@@ -331,9 +328,8 @@ weaver-work-cli --json invoice run invoice.reim.field.search --input-json '{"key
|
|
|
331
328
|
|
|
332
329
|
> **⚠️ 创建多个报销单时,每个报销单都必须独立执行以下完整流程(各自一次 `createForm` → 一次 `createRequest`),不能省略任何步骤或字段。**
|
|
333
330
|
|
|
334
|
-
0. **过滤红冲发票**:过滤 `info.comm_info.pro.status == 8`
|
|
335
331
|
1. **分类**:按 `invoiceTypeCode` 分为发票和相关凭证(17/18/57/58)。只有发票成行;凭证不成行、不配对、不写入「相关凭证」
|
|
336
|
-
2. **禁止 `*`
|
|
332
|
+
2. **禁止 `*` 号**:要写入的文本值(流程标题、报销事由)先去掉 `*`
|
|
337
333
|
3. **历史参考**:总部费用报销按「总部费用报销历史参考」用已确认项目带出合同号,**不问合同号**
|
|
338
334
|
4. **相关客户 / 相关项目**:同一次提问让用户一起填写。没确认 → **停止,禁止 `createRequest`**
|
|
339
335
|
4.1. **差旅 / 外出相关流程**:按「差旅 / 外出明细相关流程」给每一行赋值。任一行没有事前申请 → **停止,禁止 `createRequest`**
|
|
@@ -342,28 +338,13 @@ weaver-work-cli --json invoice run invoice.reim.field.search --input-json '{"key
|
|
|
342
338
|
7. **明细**:每张发票一行,**只写「相关发票」**;有绑定的事前申请时再写「相关流程」(差旅 / 外出每行必须有)。其余明细列都不传,交给发票联动
|
|
343
339
|
8. **最终检查**:明细每行的键只有「相关发票」和(可选的)「相关流程」;差旅 / 外出每一行「相关流程」都是 `{requestname}({requestid})`;`data.main` 里没有「事前申请流程」;相关客户已有确认值;相关项目已在同一次提问里问过;没有向用户要合同号
|
|
344
340
|
9. 交给 [reim-workflow.md](reim-workflow.md) Step 5 直接调用 `workflow.createRequest` 存草稿
|
|
345
|
-
10.
|
|
341
|
+
10. **落库后再查**:按 [reim-workflow.md](reim-workflow.md) Step 5.3 检查客户 / 项目是否被联动冲空,不能只贴草稿链接就结束
|
|
346
342
|
|
|
347
343
|
---
|
|
348
344
|
|
|
349
345
|
## 填写结果检查
|
|
350
346
|
|
|
351
|
-
|
|
352
|
-
> **相关客户、相关项目本应在建单前问清。** 这里只处理联动把已确认的客户 / 项目冲空。明细除「相关发票」「相关流程」外的列仍空时只告诉用户「发票联动没有带出」,禁止补写。
|
|
353
|
-
|
|
354
|
-
草稿落库后按下表检查。先看本次返回的 `previewDetails`、`fields`、`linkageResult`、`missingFields`;看不出时用 `requestId` 调一次 `workflow.editLoad` 的 `currentValues`。不要另建报销单,不要 `workflow.detail`。
|
|
355
|
-
|
|
356
|
-
| 检查项 | 没填上 | 告诉用户的原因 | 请用户给什么 |
|
|
357
|
-
| --- | --- | --- | --- |
|
|
358
|
-
| **相关客户** | **任何报销单**:主表「相关客户」为空(明细的相关客户不检查、不写)。非出差且已是「泛微上海」不算 | 合同联动把建单前已确认的客户冲空了 | 本轮已经消歧过的 `名称(ID)` **直接写回,不要再问**。只有建单前漏问了才问客户名称(不接受「不填」) |
|
|
359
|
-
| 相关项目 | 主表「相关项目」为空,且用户没有说过「不填」(明细的相关项目不检查、不写) | 合同联动把建单前已确认的项目冲空了 | 已确认的项目名称直接写回。只有建单前漏问了才问「相关项目填什么」,可以说「不填」 |
|
|
360
|
-
| 明细「费用说明」 | 表单有这一列,落库后仍空 | 发票联动没有带出 | **不请用户填,也不补写,不要自己生成** |
|
|
361
|
-
| 明细「费用明细」 | 表单有这一列,落库后仍空 | 发票联动没有带出 | **不请用户填,也不补写** |
|
|
362
|
-
| 明细「相关凭证」 | 表单有这一列,落库后仍空 | 发票联动没有带出 | **不请用户挂,也不补写**;不要为了它向用户要行程单或起点终点 |
|
|
363
|
-
| 明细「费用类型(科目)」 | 落库后仍空 | 发票联动没有带出 | **不请用户选,也不补写**;不要按科目规则或兜底科目自己填 |
|
|
364
|
-
| 明细其他列(费用日期、金额、币种等) | 落库后仍空 | 发票联动没有带出 | **不请用户填,也不补写** |
|
|
365
|
-
|
|
366
|
-
非出差且相关客户已是「泛微上海」不报客户缺失。表里都合格则不额外说明。缺项在 `finalMarkdown` 后一次列完,**不能只贴草稿就结束**。已确认的客户 / 项目走 `workflow.editPrepare` → `workflow.editApply`,不再二次确认保存。相关项目用户说不填 → 保持现状,不再追问。**相关客户说「不填」无效。** 明细除「相关发票」「相关流程」外的列,建单时即使用户给了内容也不写入。`editPrepare` / `editApply` 失败时如实转述错误,相关客户仍算没填上,不能把失败当成检查完成。
|
|
347
|
+
草稿落库后的检查(客户 / 项目被联动冲空时写回,明细其余列仍空只告知)统一按 [reim-workflow.md](reim-workflow.md) Step 5.3 执行。
|
|
367
348
|
|
|
368
349
|
---
|
|
369
350
|
|