Inside 模式下财务凭证电子归档模块与 MetaERP 的全维度交互方案Inside 模式下财务凭证电子归档模块作为MetaERP 财务域原生子模块纳入整体架构无跨系统交互的概念所有交互均为 MetaERP域内本地内聚式交互核心遵循复用底座能力、原生链路融合、事务级一致性保障三大原则交互覆盖服务调用、数据流转、流程联动、权限控制、日志审计五大核心维度且完全复用 MetaERP 财务域的架构规范和技术底座以下从交互基础前提到各维度具体交互方案再到核心业务场景的交互落地做详细拆解所有方案均贴合 MetaERP 的域内开发规范和财务业务实际落地要求。一、交互基础前提模块在 MetaERP 财务域的架构定位与核心约定在做具体交互设计前需先明确归档模块在 MetaERP 财务域的层级定位、数据模型约定、服务注册规范这是所有域内交互的基础确保模块与财务域原生能力无冲突、高融合。1. 架构层级定位MetaERP 财务域采用 **“域 - 领域 - 子模块”** 三级架构归档模块定位于财务域 - 核算领域 - 凭证管理子模块的同级子模块与 “凭证制单、凭证审核、凭证过账、凭证结账” 子模块同属核算领域的核心能力共享核算领域的领域服务、数据空间、基础组件接受财务域域总线、域治理的统一管理。2. 核心数据模型约定遵循 **“复用主模型、新增子表、不修改原生核心表”** 原则不改动 MetaERP 财务域原生的凭证主表如F_VOUCHER_HEAD凭证头、F_VOUCHER_LINE凭证行仅在财务域核算领域的专属数据空间新增归档相关子表通过唯一主键VOUCHER_ID与原生凭证表做关联核心归档子表设计如下归档子表名称核心字段与原生表关联关系表作用F_VOUCHER_ARCHIVEVOUCHER_ID主键 / 外键、ARCHIVE_STATUS归档状态、ARCHIVE_TIME归档时间、ARCHIVE_USER归档人、STORAGE_PATH电子档存储路径、FILE_MD5文件校验码、EXPIRY_DATE留存到期日外键 VOUCHER_ID 关联F_VOUCHER_HEAD的 VOUCHER_ID存储凭证电子归档的核心属性与原生凭证头一一对应F_VOUCHER_ARCHIVE_ATTACHATTACH_ID主键、VOUCHER_ID外键、ATTACH_NAME附件名称、ATTACH_SIZE附件大小、STORAGE_PATH附件存储路径、UPLOAD_TIME附件上传时间外键 VOUCHER_ID 关联F_VOUCHER_ARCHIVE的 VOUCHER_ID存储凭证归档的电子附件如发票扫描件、回单一个凭证可对应多个附件F_VOUCHER_ARCHIVE_OP_LOGLOG_ID主键、VOUCHER_ID外键、OP_TYPE操作类型发起归档 / 归档成功 / 归档失败 / 更新归档、OP_USER操作人、OP_TIME操作时间、OP_DESC操作描述 / 失败原因外键 VOUCHER_ID 关联F_VOUCHER_ARCHIVE的 VOUCHER_ID存储归档全流程的操作日志满足审计和问题排查需求3. 服务注册规范归档模块的所有核心服务均需遵循 MetaERP域内服务注册规范通过财务域领域服务注册中心完成注册服务命名采用财务域_核算领域_归档模块_服务功能的统一格式如FIN_CORE_ARCHIVE_ArchiveService并标注服务调用级别本地同步 / 本地异步、权限控制范围纳入财务域的服务治理体系含服务限流、熔断、降级的默认配置。二、核心交互维度一服务交互 —— 基于财务域内服务总线DSB的本地调用Inside 模式下的服务交互是域内同进程 / 跨进程的本地调用依托 MetaERP 财务域的领域服务总线DSB实现无网络开销、响应速度毫秒级核心分为 **“调用财务域原生服务”** 和 **“向财务域暴露归档服务”** 两类所有服务调用均遵循 MetaERP 的服务调用协议如 Dubbo/GRPC且纳入域内事务管理。1. 核心动作调用财务域原生服务归档模块→财务域其他能力归档模块作为核算领域的子模块需主动调用财务域的原生核心服务实现业务逻辑无需重复开发所有调用均为本地同步调用且可直接复用服务的返回结果做业务判断核心调用的服务分类及示例如下1核算领域核心服务最核心服务名称服务功能调用场景调用示例FIN_CORE_VoucherService凭证主数据查询、凭证状态获取、凭证字段校验归档发起前校验凭证状态是否已过账 / 已结账、获取凭证全量数据voucherService.getVoucherFullInfo(VOUCHER_ID)根据凭证 ID 获取头 行全量数据voucherService.checkVoucherStatus(VOUCHER_ID, [POSTED, CLOSED])校验凭证是否已过账 / 结账FIN_CORE_AccountSetService会计科目体系查询、核算维度校验归档数据标准化时补全会计科目名称、核算维度信息accountSetService.getAccountName(ACCOUNT_ID)根据科目 ID 获取科目名称2财务域通用基础服务服务名称服务功能调用场景调用示例FIN_COMMON_AuthService操作用户权限校验、角色判断归档发起 / 归档修改 / 归档删除前校验用户是否有对应权限authService.checkOperatePermission(USER_ID, VOUCHER_ORG_ID, VOUCHER_ARCHIVE)校验用户在对应组织下的凭证归档权限FIN_COMMON_OrgService组织架构查询、组织属性获取归档数据中补全组织名称、组织编码等信息orgService.getOrgFullName(ORG_ID)根据组织 ID 获取组织全称3MetaERP 跨域通用服务财务域已集成直接调用服务名称服务功能调用场景调用示例COMMON_LogService系统操作日志记录、日志分级存储归档全流程操作日志的统一记录无需单独开发日志模块logService.recordSysLog(USER_ID, OP_TYPE, OP_DESC, BUSINESS_IDVOUCHER_ID, MODULEFIN_ARCHIVE)COMMON_NotifyService站内信通知、邮件通知、待办推送归档失败时向财务制单人推送待办、归档完成时向审计岗推送通知notifyService.pushTodo(USER_ID, 凭证归档失败, 凭证IDXXX归档失败原因XXX, BUSINESS_IDVOUCHER_ID)COMMON_FileService电子文件存储、文件 MD5 校验、文件防篡改凭证电子档 / 附件的存储、校验复用 MetaERP 的企业级文件存储底座fileService.uploadFile(FILE_BYTE, FILE_NAME, STORAGE_DIRFIN/VOUCHER/ARCHIVE/ORG_ID)fileService.getFileMd5(FILE_ID)获取文件校验码实现防篡改2. 核心动作向财务域暴露归档服务归档模块→财务域其他子模块 / 跨域归档模块需向财务域内其他子模块如凭证制单、凭证查询、审计模块暴露标准化的归档服务支持其他模块反向联查、状态同步、业务触发部分服务可通过 MetaERP跨域服务总线ESB开放给审计、档案管理等跨域模块核心暴露的服务如下暴露服务名称服务类型服务功能调用方调用场景FIN_CORE_ArchiveService.getArchiveInfo本地同步根据凭证 ID 查询归档全量信息状态、时间、存储路径等凭证查询模块、审计模块财务人员查询凭证时联查归档状态和归档详情FIN_CORE_ArchiveService.checkArchiveStatus本地同步根据凭证 ID / 凭证批次查询归档状态未归档 / 归档中 / 已归档 / 归档失败凭证结账模块月末 / 年末结账前校验凭证是否全部完成归档可配置为结账前置条件FIN_CORE_ArchiveService.triggerArchive本地同步 / 异步手动 / 自动触发单张 / 批次凭证归档凭证过账模块、手动归档界面凭证过账成功后自动触发归档、财务人员手动发起批次归档FIN_CORE_ArchiveService.updateArchive本地同步凭证修改后同步更新归档数据凭证修改模块原生凭证数据修改后同步更新归档子表的对应字段保证数据一致性FIN_CORE_ArchiveService.downloadArchiveFile本地同步根据凭证 ID 下载归档电子档 / 附件凭证查询模块、审计模块财务 / 审计人员在线下载凭证电子归档文件3. 服务交互的核心保障事务管理所有与凭证核心操作联动的服务调用如过账触发归档均纳入 MetaERP财务域本地事务遵循 **“要么全成、要么全滚”** 原则如凭证过账成功但归档失败则触发事务回滚取消过账状态避免 “凭证已过账、未归档” 的异常服务治理所有服务均由财务域 DSB 统一做服务注册、发现、负载均衡默认继承财务域的服务治理配置如单服务最大并发数、熔断阈值无需单独配置异常处理服务调用异常时复用 MetaERP财务域统一的异常处理框架自动触发重试可配置重试次数 / 间隔重试失败则推送待办给运维人员并记录详细异常日志无需单独开发异常处理逻辑。三、核心交互维度二数据交互 —— 基于财务域数据空间的本地读写与联动数据交互是 Inside 模式的核心优势所有数据均在 MetaERP财务域专属数据空间内流转依托关系型数据库如华为 GaussDB实现本地读写无跨系统数据传输通过主键关联 本地事务实现100% 数据一致性核心分为数据采集、数据存储、数据更新、数据共享、数据归档五大环节且完全复用 MetaERP 的财务数据管理规范如数据分区、数据加密、数据备份。1. 数据采集原生凭证数据的本地直读无接口抽取归档模块无需通过任何接口可直接读写财务域核算领域的原生凭证表数据采集为本地实时直读无延迟、无数据丢失采集分为单张凭证采集和批次凭证采集两种方式采集的核心数据来源为 MetaERP 原生表核心数据来源F_VOUCHER_HEAD凭证头凭证号、制单组织、制单人、制单时间、凭证类型、过账状态、结账状态等、F_VOUCHER_LINE凭证行会计科目、核算维度、借方金额、贷方金额、摘要等辅助数据来源F_VOUCHER_ATTACH原生凭证附件发票、回单等由制单模块上传、F_USER用户信息制单人、审核人姓名、F_ORG组织信息组织全称、组织编码采集规则仅采集已过账 / 已结账的凭证数据通过F_VOUCHER_HEAD的POSTED_FLAG/CLOSED_FLAG判断未过账的凭证不触发采集避免无效数据。2. 数据存储归档子表与原生表同库同空间主键关联归档数据的存储完全复用 MetaERP财务域的数据库实例和存储规范归档子表F_VOUCHER_ARCHIVE/F_VOUCHER_ARCHIVE_ATTACH/F_VOUCHER_ARCHIVE_OP_LOG与原生凭证表同库、同表空间、同数据分区通过VOUCHER_ID凭证唯一主键实现一对一 / 一对多关联存储的核心规则分区规则与原生凭证表保持一致按 **“组织 会计期间”** 做数据分区如FIN_VOUCHER_202601_ORG001便于后续数据检索和冷热数据分离加密规则复用 MetaERP 财务域的数据加密规范对敏感字段如金额、银行账号做字段级加密对电子档文件做存储加密密钥由 MetaERP 统一管理唯一性规则通过数据库唯一索引VOUCHER_ID保证一个凭证仅对应一条归档主记录避免重复归档通过FILE_MD5做文件唯一性校验避免附件重复存储。3. 数据更新本地事务联动原生表与归档表同步更新当 MetaERP 原生凭证数据发生修改如制单人修改凭证金额、摘要时归档模块通过 **“原生表触发器 归档服务联动”** 实现归档表与原生表的同步更新确保数据一致性更新流程为本地事务内的联动操作无数据不一致风险财务人员在凭证修改模块完成凭证修改点击保存凭证修改模块调用FIN_CORE_ArchiveService.checkArchiveStatus判断该凭证是否已归档若已归档触发本地事务先更新原生凭证表F_VOUCHER_HEAD/F_VOUCHER_LINE再调用FIN_CORE_ArchiveService.updateArchive同步更新归档子表的对应字段事务提交成功修改生效若任一环节失败事务回滚原生表和归档表均恢复到修改前状态归档表更新后自动记录操作日志到F_VOUCHER_ARCHIVE_OP_LOG标注 “更新归档”并推送通知给审计岗。4. 数据共享财务域内自由共享跨域通过数据集市开放归档数据在财务域内可自由共享财务域内的任何子模块凭证查询、审计、结账、报表均可通过联表查询获取归档数据无需单独做数据同步若需向审计、档案管理、集团财务等跨域模块开放归档数据通过 MetaERP财务数据集市实现无需单独开发数据接口域内共享通过VOUCHER_ID做联表查询如SELECT * FROM F_VOUCHER_HEAD h LEFT JOIN F_VOUCHER_ARCHIVE a ON h.VOUCHER_ID a.VOUCHER_ID WHERE h.VOUCHER_NO XXX财务域内所有有权限的模块均可执行该查询跨域共享MetaERP 财务数据集市会定时增量同步归档子表的数据到跨域数据中台跨域模块通过数据中台获取归档数据同步频率可配置如 5 分钟 / 1 小时且数据集市会做数据脱敏、权限控制确保敏感数据不泄露。5. 数据归档冷热数据分离复用 MetaERP 财务数据生命周期管理归档模块的电子文件数据凭证扫描件、附件和结构化数据归档子表数据均复用 MetaERP财务数据生命周期管理规范实现冷热数据分离和长期留存无需单独开发数据归档能力结构化数据近 1-3 年的归档子表数据为热数据存储在高性能数据库中支持实时查询超过 3 年的为冷数据归档到 MetaERP 的分布式数据仓库如 Hive支持离线查询和批量导出电子文件数据近 1 年的电子档为热数据存储在 MetaERP 的高性能文件存储中支持在线下载超过 1 年的为冷数据归档到低成本对象存储如华为 OBS保留存储路径需下载时可从对象存储拉取数据留存遵循《电子会计档案管理办法》财务凭证归档数据至少留存 30 年MetaERP 会对冷数据做多副本备份确保数据不丢失。四、核心交互维度三流程交互 —— 与财务凭证全流程的原生嵌入与联动Inside 模式下归档模块的业务流程完全嵌入 MetaERP 财务凭证的 “制单 - 审核 - 过账 - 结账 - 查询” 全流程成为财务凭证业务的原生环节无流程断点、无额外操作成本财务人员无需切换系统完全沿用原生的操作习惯核心流程交互分为自动触发流程和手动触发流程且可通过 MetaERP流程配置中心做灵活配置如是否开启过账自动归档、是否将归档作为结账前置条件。1. 自动触发流程核心流程联动无需人工干预这是最核心的流程交互方式归档模块与财务凭证的过账、结账核心流程联动实现自动化归档无需财务人员手动操作核心流程如下以过账自动归档为例最常用财务人员完成凭证制单、审核提交过账凭证过账模块调用FIN_CORE_VoucherService.doPost执行过账操作更新凭证过账状态为 “已过账”过账成功后自动调用FIN_CORE_ArchiveService.triggerArchive同步调用纳入本地事务触发该凭证的电子归档归档模块执行数据采集→文件存储→状态更新→日志记录全流程采集原生凭证数据和附件调用COMMON_FileService上传电子档到指定存储路径插入 / 更新归档子表F_VOUCHER_ARCHIVE将归档状态更新为 “已归档”记录操作日志到F_VOUCHER_ARCHIVE_OP_LOG归档成功后返回归档结果给过账模块过账流程完成若归档失败触发事务回滚过账状态恢复为 “未过账”并通过COMMON_NotifyService向制单人推送待办提示归档失败原因。2. 手动触发流程补充场景与原生界面融合针对归档失败重归档、漏归档、特殊凭证归档等场景提供手动触发归档能力且手动归档界面完全嵌入 MetaERP 财务凭证的原生操作界面财务人员无需跳转到其他页面核心交互如下财务人员在凭证查询界面原生界面查询到未归档 / 归档失败的凭证勾选目标凭证点击原生界面的 **“发起归档”** 按钮归档模块新增的原生按钮无界面切换按钮点击后调用FIN_CORE_ArchiveService.triggerArchive触发手动归档归档流程与自动归档一致归档结果实时展示在凭证查询界面原生界面新增 “归档状态” 列由归档模块实时更新归档完成后界面实时刷新归档状态同时记录操作日志。3. 流程管控可配置的流程规则复用 MetaERP 流程配置中心所有流程交互的规则均可通过 MetaERP财务域流程配置中心做可视化配置无需修改代码适配不同企业 / 组织的财务流程要求核心可配置规则如下是否开启过账自动归档默认开启是否开启结账自动归档针对漏归档的凭证默认开启是否将凭证归档作为月末 / 年末结账的前置条件默认开启未全部归档则无法结账批次归档的最大凭证数量避免单次归档过多导致性能问题归档失败后的自动重试次数和重试间隔默认 3 次间隔 5 分钟。五、核心交互维度四权限与审计交互 —— 完全复用 MetaERP 的统一权限与审计体系Inside 模式下归档模块无需单独开发权限控制和审计体系完全复用 MetaERP 的统一权限管理4A体系和财务审计体系实现权限的统一管控和操作的全链路审计权限与审计的交互完全为域内原生交互无额外维护成本。1. 权限交互复用 MetaERP 统一权限体系权限粒度与财务域保持一致归档模块的所有操作权限发起归档、修改归档、删除归档、查询归档、下载归档文件均纳入 MetaERP 统一权限管理体系与财务凭证的操作权限粒度一致、管控一致权限的授予、回收、变更均在 MetaERP统一权限平台完成归档模块仅需做权限校验调用无需单独管理权限权限粒度支持组织级 功能级 数据级的精细化权限控制如 “仅允许财务制单岗在 ORG001 组织发起归档仅允许审计岗在 ORG001 组织查询 / 下载归档数据”权限校验所有归档操作前均调用FIN_COMMON_AuthService.checkOperatePermission做权限校验校验不通过则直接拦截操作提示无权限并记录异常日志权限同步权限信息在 MetaERP 统一权限平台更新后财务域内实时同步归档模块无需做任何同步操作直接调用最新的权限数据。2. 审计交互全链路操作日志纳入 MetaERP 财务审计体系归档模块的所有操作发起归档、归档成功、归档失败、更新归档、删除归档、下载归档文件均会生成全链路操作日志日志分为系统操作日志和业务操作日志均纳入 MetaERP财务审计体系审计人员可在原生审计界面查询归档日志无需单独开发审计功能系统操作日志由COMMON_LogService统一记录包含操作人、操作时间、操作 IP、操作功能、操作结果存储在 MetaERP 统一日志中心支持跨模块查询业务操作日志由归档模块记录在F_VOUCHER_ARCHIVE_OP_LOG包含凭证 ID、操作类型、操作描述、失败原因与原生凭证数据关联支持联表审计审计查询审计人员在 MetaERP财务审计界面原生界面可通过凭证号、操作人、操作时间、归档状态等条件查询归档全流程的操作日志支持日志导出和打印。六、核心业务场景的交互落地示例为更直观展示 Inside 模式下的交互逻辑以下选取最核心的 3 个业务场景做端到端的交互流程拆解覆盖自动归档、手动重归档、凭证修改同步归档所有流程均为 MetaERP 域内原生交互无跨系统环节。场景 1凭证过账成功→自动触发电子归档最常用plaintext1. 财务人员在MetaERP凭证审核界面提交凭证过账凭证IDV001组织ORG001 2. 凭证过账模块调用FIN_CORE_VoucherService.doPost(V001)执行过账操作更新F_VOUCHER_HEAD的POSTED_FLAGY 3. 过账模块调用FIN_CORE_ArchiveService.triggerArchive(V001)触发归档纳入本地事务 4. 归档模块调用FIN_CORE_VoucherService.getVoucherFullInfo(V001)本地直读原生凭证数据和附件 5. 归档模块调用FIN_COMMON_AuthService.checkOperatePermission(操作用户ID, ORG001, VOUCHER_ARCHIVE)校验权限 6. 归档模块调用COMMON_FileService.uploadFile(凭证电子档, V001.pdf, FIN/VOUCHER/ARCHIVE/ORG001)上传电子档获取存储路径和FILE_MD5 7. 归档模块本地插入F_VOUCHER_ARCHIVEVOUCHER_IDV001ARCHIVE_STATUS已归档ARCHIVE_TIME当前时间STORAGE_PATHxxxFILE_MD5xxx 8. 归档模块调用COMMON_LogService.recordSysLog(操作用户ID, 发起归档, 凭证V001归档成功, V001, FIN_ARCHIVE)记录系统日志 9. 归档模块插入F_VOUCHER_ARCHIVE_OP_LOG记录业务操作日志 10. 归档模块返回归档成功结果给过账模块 11. 本地事务提交过账和归档流程均完成 12. 凭证查询界面实时刷新V001的归档状态为“已归档”展示存储路径。场景 2凭证归档失败→财务人员手动重归档补充场景plaintext1. 凭证过账归档凭证V002过账后触发自动归档因文件存储服务异常归档失败事务回滚POSTED_FLAGN 2. 通知推送COMMON_NotifyService向制单人推送待办提示“凭证V002归档失败原因文件存储服务异常” 3. 运维人员修复文件存储服务完成后在运维平台标记故障解决 4. 财务人员在凭证查询界面找到V002点击原生界面的“发起归档”按钮 5. 归档模块调用FIN_CORE_ArchiveService.triggerArchive(V002)触发手动归档 6. 后续流程与场景1的4-12一致归档成功后过账状态自动更新为POSTED_FLAGY 7. 通知推送COMMON_NotifyService向制单人推送通知提示“凭证V002手动归档成功”。场景 3已归档凭证修改→同步更新归档数据一致性保障plaintext1. 财务人员在凭证修改界面查询到已归档凭证V001修改凭证摘要为“2026年1月办公费报销”点击保存 2. 凭证修改模块调用FIN_CORE_ArchiveService.checkArchiveStatus(V001)查询到归档状态为“已归档” 3. 凭证修改模块开启本地事务调用FIN_CORE_VoucherService.updateVoucher(V001, 新摘要)更新F_VOUCHER_HEAD的摘要字段 4. 凭证修改模块调用FIN_CORE_ArchiveService.updateArchive(V001, 新摘要)同步更新F_VOUCHER_ARCHIVE的摘要字段 5. 归档模块插入F_VOUCHER_ARCHIVE_OP_LOG记录“更新归档修改摘要为2026年1月办公费报销” 6. 事务提交修改和归档更新均完成 7. 凭证查询界面实时刷新V001的原生摘要和归档摘要两者保持一致 8. 通知推送COMMON_NotifyService向审计岗推送通知提示“凭证V001已修改并同步更新归档数据请注意核查”。七、Inside 模式交互的核心优势与落地保障1. 核心优势对比 Outside 模式零跨系统复杂度所有交互均为域内本地操作无网络延迟、无接口容错、无分布式事务开发和维护成本降低 80% 以上100% 数据一致性依托本地事务和主键关联原生凭证表与归档表数据完全同步无脏数据、无数据丢失原生流程融合嵌入 MetaERP 财务凭证全流程无操作断点财务人员无需学习新操作体验感与原生模块一致全底座能力复用复用 MetaERP 的服务总线、数据存储、权限管理、日志审计、文件存储等所有底座能力无需单独开发上线周期大幅缩短统一运维管理与 MetaERP 财务域统一做版本发布、补丁更新、故障排查、性能监控无需单独搭建运维体系。2. 落地保障需遵循的 MetaERP 域内开发规范Inside 模式下的开发需严格遵循华为MetaERP 财务域内模块开发规范确保模块与财务域原生能力无冲突核心规范如下代码规范遵循 MetaERP 财务域的 Java/Go 代码规范如命名、注释、分层代码需纳入 MetaERP 的统一代码仓库模型规范严格遵循 “新增子表、不修改原生核心表” 原则数据模型需通过财务域模型评审后方可创建服务规范服务命名、入参出参、调用协议需遵循财务域服务规范服务需通过注册中心统一注册界面规范归档模块的新增界面 / 按钮需遵循 MetaERP 财务域的UI/UX 规范与原生界面保持视觉和操作一致测试规范需参与 MetaERP 财务域的统一测试单元测试、集成测试、性能测试、安全测试测试通过后方可上线版本规范归档模块的版本号与 MetaERP 财务域的版本号保持一致同步做版本发布和补丁更新。