01 · 模块定位
财务业财中心
一笔合同收款可形成预收,课消后确认收入,最终生成凭证和校区利润数据。业务目标
连接合同订单、收款监管、预收、课消收入、退费、发票、内置报销、票据 OCR、多账套记账报税、利润和凭证。
使用终端
PC Web 财务工作台,内置总账、内置报销、监管平台和国税发票核验接口。
验收主线
一笔合同收款可形成预收,课消后确认收入,最终生成凭证和校区利润数据。
02 · 范围边界
明确本模块负责什么、依赖什么、不负责什么
边界清晰后,原型、接口和数据库设计才能避免重复建设。模块内范围
- 收款台
- 监管账户
- 预收收入
- 退费测算
- 内置报销
- 发票核验
- 多账套
- 税务申报
- 凭证入账
- 报销付款台账
- 付款批次
- 付款失败处理
- 付款撤销
- 采购付款凭证
- 薪资凭证
- 统一付款补偿
- 国税调用日志
- 库存成本凭证
上游依赖
- 组织校区与账号权限
- 课程/客户/合同等主数据
- 审批流、消息模板、文件中心
- 必要的第三方接口密钥
下游输出
- 业务状态和待办
- 消息通知和审批记录
- 报表指标和数据快照
- 审计日志和接口回执
03 · 确认口径、后台配置与默认实施规则
财务业财中心必须承接的已确认规则
本章节来自待决策与澄清清单的收口结果,已经转为本模块 PRD 的正式需求、配置项或默认实施规则。| 分类 | 事项 | 本模块落地要求 | 责任方 |
|---|---|---|---|
| 已确认口径 | 国税官方发票核验接口 | 确认具备官方发票核验接入能力;迪诺学堂按校区维护调用主体、纳税人识别号、官方接口编码/授权凭证、核验额度、接口地址、启用状态和审计留痕。 | 产品/财务/技术 |
| 已确认口径 | 金蝶云星空功能参考 | 不对接外部金蝶云星空系统;第一批在迪诺学堂内复刻常用核心记账能力,覆盖校区独立账套、科目、辅助核算、凭证生成、过账、红冲、结账、总账查询、报表和报税资料生成。 | 产品/财务/研发 |
| 已确认口径 | 合思功能参考 | 不对接外部合思平台;第一批在迪诺学堂内复刻企业报销必备能力,覆盖单据填写、费用明细、票据上传、OCR 识别、发票核验、查重防重报、审批、付款归档和凭证生成。 | 产品/财务/人事/研发 |
| 后台配置项 | 校区税务主体配置 | 按校区配置 taxpayerName、taxpayerNo、officialAppCode、authCertificateId、verifyEndpoint、quotaPolicy、enabled、effectiveDate 和负责人。 | 财务管理员/系统管理员 |
| 后台配置项 | 内置财务账套配置 | 按校区配置 accountSetCode、fiscalCalendar、subjectTemplate、auxAccountingRules、voucherWords、taxRules、closePeriodRules 和总部可见范围。 | 总部财务/校区财务 |
| 后台配置项 | 内置报销规则配置 | 配置 expenseType、budgetRule、approvalFlowCode、ocrProvider、duplicateKey、invoiceRiskPolicy、paymentRule、voucherGenerateRule 和消息模板。 | 财务/人事/系统管理员 |
| 默认实施规则 | 接口设计说明书组织方式 | 采用单独 HTML 文件集中管理接口协议;模块 PRD 保留模块级接口摘要,避免每个模块重复写通用协议。 | 产品/研发 |
| 默认实施规则 | 接口错误码与重试中间件 | 所有外部接口和内部异步任务统一错误码、幂等键、重试次数、告警阈值和回执归档策略。 | 后端/测试/运维 |
04 · 业务流程
财务业财中心主流程
流程用于指导原型图的页面顺序、按钮状态和异常分支。合同收款、缴费收款、欠费收款进入统一订单和应收
收款入资金监管账户并支持流水对账、合同备案、课消报送和退费报送
按课消确认收入并计算递延收入,联动账套、凭证和经营利润
退费测算联动未消课时、赠课、教材、手续费和收入冲减
参考合思常用报销能力,在迪诺学堂内实现单据填写、票据上传、OCR 识别、发票核验、查重防重报、审批和付款归档
发票 OCR 识别、真伪核验、抬头税号校验和历史报销查重联动
每个校区独立账套,总部财务可跨账套管理科目、凭证、结账和汇总报表
支持增值税、附加税、企业所得税、个税相关申报资料归集、税额测算、申报表生成和归档
05 · 功能清单
按子模块拆到可设计、可开发、可测试的颗粒度
每一行功能都需要在原型中体现入口、状态、按钮、字段和反馈。| 一级功能 | 二级功能 | 功能说明 | 规则/验收 |
|---|---|---|---|
| 收款台 | 基础维护 | 收款台支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 收款台 | 业务处理 | 合同收款、缴费收款、欠费收款进入统一订单和应收 | 必须联动状态、权限、消息、审批和指标 |
| 收款台 | 异常闭环 | 流水不匹配处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 监管账户 | 基础维护 | 监管账户支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 监管账户 | 业务处理 | 收款入资金监管账户并支持流水对账、合同备案、课消报送和退费报送 | 必须联动状态、权限、消息、审批和指标 |
| 监管账户 | 异常闭环 | 监管回执失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 预收收入 | 基础维护 | 预收收入支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 预收收入 | 业务处理 | 按课消确认收入并计算递延收入,联动账套、凭证和经营利润 | 必须联动状态、权限、消息、审批和指标 |
| 预收收入 | 异常闭环 | 课消数据缺失处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 退费测算 | 基础维护 | 退费测算支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 退费测算 | 业务处理 | 退费测算联动未消课时、赠课、教材、手续费和收入冲减 | 必须联动状态、权限、消息、审批和指标 |
| 退费测算 | 异常闭环 | 退费金额异常处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 内置报销 | 基础维护 | 内置报销支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 内置报销 | 业务处理 | 参考合思常用报销能力,在迪诺学堂内实现单据填写、票据上传、OCR 识别、发票核验、查重防重报、审批和付款归档 | 必须联动状态、权限、消息、审批和指标 |
| 内置报销 | 异常闭环 | 发票重复报销处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 发票核验 | 基础维护 | 发票核验支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 发票核验 | 业务处理 | 发票 OCR 识别、真伪核验、抬头税号校验和历史报销查重联动 | 必须联动状态、权限、消息、审批和指标 |
| 发票核验 | 异常闭环 | 发票核验失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 多账套 | 基础维护 | 多账套支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 多账套 | 业务处理 | 每个校区独立账套,总部财务可跨账套管理科目、凭证、结账和汇总报表 | 必须联动状态、权限、消息、审批和指标 |
| 多账套 | 异常闭环 | 账套期间未开启处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 税务申报 | 基础维护 | 税务申报支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 税务申报 | 业务处理 | 支持增值税、附加税、企业所得税、个税相关申报资料归集、税额测算、申报表生成和归档 | 必须联动状态、权限、消息、审批和指标 |
| 税务申报 | 异常闭环 | 申报数据不平处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 凭证入账 | 基础维护 | 凭证入账支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 凭证入账 | 业务处理 | 参考金蝶云星空常用总账能力,在迪诺学堂内完成收款、课消、退费、报销、采购、库存、薪资凭证生成、过账、红冲和追溯 | 必须联动状态、权限、消息、审批和指标 |
| 凭证入账 | 异常闭环 | 凭证生成失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 报销付款台账 | 基础维护 | 报销付款台账支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 报销付款台账 | 业务处理 | 管理报销付款申请、付款批次、出纳处理、付款凭证、失败重试和付款归档。 | 必须联动状态、权限、消息、审批和指标 |
| 报销付款台账 | 异常闭环 | 付款账户缺失处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 付款批次 | 基础维护 | 付款批次支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 付款批次 | 业务处理 | 按校区、账套、付款类型和付款账户生成批次,支持拆分、合并、撤销和状态追踪。 | 必须联动状态、权限、消息、审批和指标 |
| 付款批次 | 异常闭环 | 批次金额不平处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 付款失败处理 | 基础维护 | 付款失败处理支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 付款失败处理 | 业务处理 | 支付、退款、采购付款、报销付款和工资发放失败后进入统一补偿模型。 | 必须联动状态、权限、消息、审批和指标 |
| 付款失败处理 | 异常闭环 | 付款二次失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 付款撤销 | 基础维护 | 付款撤销支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 付款撤销 | 业务处理 | 付款错误、账号异常或重复付款风险时发起撤销审批,并保留原付款流水和原因。 | 必须联动状态、权限、消息、审批和指标 |
| 付款撤销 | 异常闭环 | 付款撤销待审处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 采购付款凭证 | 基础维护 | 采购付款凭证支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 采购付款凭证 | 业务处理 | 采购对账完成后生成采购付款凭证,联动供应商、入库单、发票和付款状态。 | 必须联动状态、权限、消息、审批和指标 |
| 采购付款凭证 | 异常闭环 | 采购对账不平处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 薪资凭证 | 基础维护 | 薪资凭证支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 薪资凭证 | 业务处理 | 工资条确认和薪资批次通过后生成薪资凭证,联动工资发放、社保公积金显示配置和员工确认状态。 | 必须联动状态、权限、消息、审批和指标 |
| 薪资凭证 | 异常闭环 | 工资条未确认处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 统一付款补偿 | 基础维护 | 统一付款补偿支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 统一付款补偿 | 业务处理 | 报销、采购、退款和工资发放统一处理失败重试、撤销、换账户、拆分付款、线下付款登记和人工介入。 | 必须联动状态、权限、消息、审批和指标 |
| 统一付款补偿 | 异常闭环 | 付款补偿超时处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 国税调用日志 | 基础维护 | 国税调用日志支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 国税调用日志 | 业务处理 | 记录发票核验的校区主体、接口编码、请求参数、官方回执、频控、失败重试和人工复核。 | 必须联动状态、权限、消息、审批和指标 |
| 国税调用日志 | 异常闭环 | 国税接口异常处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 库存成本凭证 | 基础维护 | 库存成本凭证支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 库存成本凭证 | 业务处理 | 库存入库、出库、调拨、报损、报废、盘盈盘亏和礼品兑换出库按成本策略生成凭证。 | 必须联动状态、权限、消息、审批和指标 |
| 库存成本凭证 | 异常闭环 | 成本口径缺失处理 | 失败原因可见、可重试、可转人工、可追溯 |
功能到数据对象/接口/表映射
| 功能域 | 承接对象 | 核心表 | 代表接口 | 状态机/状态字段 | 研发落地校验 |
|---|---|---|---|---|---|
| 收款台 | AccountSet、FinanceSubject、FinanceVoucher、FinanceVoucherEntry | fin_account_set、fin_subject、fin_voucher、fin_voucher_entry | 接口资源组 /api/v1/fin/features/01 | subject_type、source_biz_type、voucher_status、approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 监管账户 | AccountSet、FinanceSubject、FinanceVoucher、FinanceVoucherEntry | fin_account_set、fin_subject、fin_voucher、fin_voucher_entry | 接口资源组 /api/v1/fin/features/02 | subject_type、source_biz_type、voucher_status、approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 预收收入 | AccountSet、FinanceSubject、FinanceVoucher、FinanceVoucherEntry | fin_account_set、fin_subject、fin_voucher、fin_voucher_entry | 接口资源组 /api/v1/fin/features/03 | subject_type、source_biz_type、voucher_status、approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 退费测算 | AccountSet、FinanceSubject、FinanceVoucher、FinanceVoucherEntry | fin_account_set、fin_subject、fin_voucher、fin_voucher_entry | 接口资源组 /api/v1/fin/features/04 | subject_type、source_biz_type、voucher_status、approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 内置报销 | ExpenseReport、Invoice、InvoiceVerification、ExpensePaymentApply | exp_report、exp_invoice、exp_invoice_verification、exp_payment_apply | 建议接口资源组 /api/v1/expenses/reports | expense_type、expense_status、approval_status、invoice_type、duplicate_status、verification_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 发票核验 | Invoice、InvoiceVerification | exp_invoice、exp_invoice_verification | POST /api/v1/tax/invoices/verify | invoice_type、duplicate_status、verification_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 多账套 | AccountSet、FinanceSubject、FinanceVoucher | fin_account_set、fin_subject、fin_voucher | 建议接口资源组 /api/v1/finance/account-sets | subject_type、source_biz_type、voucher_status、approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 税务申报 | FinanceVoucher、InvoiceVerification、TaxReport | fin_voucher、exp_invoice_verification、tax_declaration | 建议接口资源组 /api/v1/tax/reports | source_biz_type、voucher_status、approval_status、verification_status、tax_type、declaration_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 凭证入账 | AccountSet、FinanceSubject、FinanceVoucher、FinanceVoucherEntry | fin_account_set、fin_subject、fin_voucher、fin_voucher_entry | 建议接口资源组 /api/v1/finance/vouchers | subject_type、source_biz_type、voucher_status、approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 报销付款台账 | ExpenseReport、Invoice、InvoiceVerification、ExpensePaymentApply | exp_report、exp_invoice、exp_invoice_verification、exp_payment_apply | 建议接口资源组 /api/v1/expenses/reports | expense_type、expense_status、approval_status、invoice_type、duplicate_status、verification_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 付款批次 | FinanceVoucher、FinanceVoucherEntry、ExpensePaymentApply | fin_voucher、fin_voucher_entry、exp_payment_apply | 建议接口资源组 /api/v1/finance/payment-ledgers | source_biz_type、voucher_status、approval_status、payment_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 付款失败处理 | FinanceVoucher、FinanceVoucherEntry、ExpensePaymentApply | fin_voucher、fin_voucher_entry、exp_payment_apply | 建议接口资源组 /api/v1/finance/payment-ledgers | source_biz_type、voucher_status、approval_status、payment_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 付款撤销 | FinanceVoucher、FinanceVoucherEntry、ExpensePaymentApply | fin_voucher、fin_voucher_entry、exp_payment_apply | 建议接口资源组 /api/v1/finance/payment-ledgers | source_biz_type、voucher_status、approval_status、payment_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 采购付款凭证 | FinanceVoucher、FinanceVoucherEntry、ExpensePaymentApply | fin_voucher、fin_voucher_entry、exp_payment_apply | 建议接口资源组 /api/v1/finance/payment-ledgers | source_biz_type、voucher_status、approval_status、payment_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 薪资凭证 | AccountSet、FinanceSubject、FinanceVoucher、FinanceVoucherEntry | fin_account_set、fin_subject、fin_voucher、fin_voucher_entry | 建议接口资源组 /api/v1/finance/vouchers | subject_type、source_biz_type、voucher_status、approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 统一付款补偿 | FinanceVoucher、FinanceVoucherEntry、ExpensePaymentApply | fin_voucher、fin_voucher_entry、exp_payment_apply | 建议接口资源组 /api/v1/finance/payment-ledgers | source_biz_type、voucher_status、approval_status、payment_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 国税调用日志 | Invoice、InvoiceVerification | exp_invoice、exp_invoice_verification | POST /api/v1/tax/invoices/verify | invoice_type、duplicate_status、verification_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 库存成本凭证 | AccountSet、FinanceSubject、FinanceVoucher、FinanceVoucherEntry | fin_account_set、fin_subject、fin_voucher、fin_voucher_entry | 建议接口资源组 /api/v1/finance/vouchers | subject_type、source_biz_type、voucher_status、approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
06 · 原子级功能需求
用于研发任务拆分和测试用例追踪
需求编号可直接进入项目管理工具。| 编号 | 需求描述 | 入口页面 | 关键动作 | 输入校验 | 输出结果 | 异常处理 | 验收标准 |
|---|---|---|---|---|---|---|---|
| FR-FIN-001 | 合同收款、分期收款、欠费收款进入统一订单和应收 | 合同收款台 | 收款对账 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 支付流水与合同金额不一致时进入财务复核 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FIN-002 | 收款入资金监管账户并支持流水对账 | 监管账户台 | 监管报送 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 监管平台回执失败时自动重试并提醒人工处理 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FIN-003 | 按课消确认收入并计算递延收入 | 多账套总账 | 凭证记账 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 课消数据缺失或账期未开启时阻断入账 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FIN-004 | 退费测算联动未消课时、赠课、教材、手续费和收入冲减 | 退费与冲销台 | 退费测算 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 退费金额异常或监管资金不足时进入审批 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FIN-005 | 员工报销支持单据填写、票据上传、OCR 识别、发票核验、查重防重报、审批和付款归档 | 内置报销台 | 报销核验 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | OCR 低置信度、发票重复或核验失败时退回补充 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FIN-006 | 每个校区可配置独立账套、科目、辅助核算、会计期间、凭证字和税务参数 | 多账套总账 | 账套配置 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 校区账套未启用时禁止生成凭证 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FIN-007 | 总部财务账号可管理全部分校区账套,支持账套切换、凭证复核、结账检查和汇总报表 | 总部账套管理 | 账套切换 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 越权访问其他校区账套时阻断并审计 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FIN-008 | 参考金蝶云星空核心总账能力,在迪诺学堂内置实现凭证录入、审核、过账、结账、反结账、账簿查询和凭证入账。 | 多账套总账 | 凭证记账 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 借贷不平或会计期间关闭时禁止过账 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FIN-009 | 支持增值税、附加税、企业所得税、个税相关申报资料归集、税额测算、申报表生成和归档 | 税务申报台 | 税务申报 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 申报数据不平或缺少票据附件时进入异常队列 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FIN-010 | 收款、课消、退费、报销、采购、库存、薪资自动生成凭证并写入迪诺学堂内置总账。 | 凭证入账台 | 凭证入账 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 凭证生成失败、借贷不平或期间关闭时保留重试任务和错误回执 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FIN-011 | 报销审批通过后需进入付款台账,支持付款申请、付款批次、付款状态、付款失败、付款撤销、付款凭证上传和凭证生成。 | 采购对账付款 | 采购对账、采购付款或凭证归档 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 对账不平、付款失败或凭证缺失 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FIN-012 | 采购付款、报销付款、薪资发放和退款打款均需进入财务付款台账,按校区账套、付款账户和来源单据追踪。 | 电子工资条/薪资核算 | 薪资核算、工资条发布或员工确认 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 工资条未发布、显示配置缺失或员工异议超期 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FIN-013 | 库存成本、积分礼品出库、采购退货、报损报废和盘盈盘亏需按校区账套生成凭证,并明确成本归属科目。 | 积分商城/兑换售后 | 积分兑换、取消、核销或库存释放 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 积分不足、库存释放失败或核销码失效 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FIN-014 | 报销、采购、退款和工资发放统一进入付款补偿模型,支持失败重试、撤销、换账户、拆分付款、线下付款登记、凭证阻断和人工介入。 | 电子工资条/薪资核算 | 薪资核算、工资条发布或员工确认 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 工资条未发布、显示配置缺失或员工异议超期 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FIN-015 | 国税发票核验需提供校区税务主体配置、调用日志、频控额度、失败重试、OCR 与官方结果差异复核和主体停用影响提示。 | 账套管理 | 税务申报 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 付款失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
07 · 关联闭环补充需求
财务业财中心在跨模块闭环中的责任边界
本章节承接最终闭环核对清单,明确本模块需要补齐的页面、接口对象、异常兜底和验收口径。| 闭环项 | 本模块责任 | 关键场景 | 页面/功能补充 | 关联对象/接口 | 验收口径 |
|---|---|---|---|---|---|
| 国税主体配置 | 负责校区税务主体、授权编码、票种、地区和发票核验接口凭证 | 各校区独立报销、发票核验、账套核算和总部汇总 | 税务主体配置、发票 OCR、国税核验、核验日志、校区账套映射 | ExpenseReport/InvoiceVerification、AccountSet/TaxReport、/api/v1/finance/invoices/verify | 每次核验必须绑定校区主体、接口凭证和国税回执 |
| 统一付款补偿 | 负责支付、退款、采购付款、报销付款、工资发放的幂等、对账和补偿 | 支付回调超时、重复付款风险、退款失败、报销付款失败 | 付款单、付款回调、对账差异、补偿任务、人工处理 | Contract/Order/Payment、PurchaseReconciliation/Payment、PayrollPayslip/SalaryItem | 付款异常可查询、可重试、可关闭、可生成会计凭证或冲正 |
| 库存成本策略 | 承接物料资产出入库成本、固定资产折旧或摊销和凭证联动 | 采购入库、调拨、报损、礼品兑换、图书出入库 | 成本口径、凭证生成、库存金额报表 | Material/Inventory/Asset/Book、FinanceVoucher | 库存成本与财务报表口径一致 |
| 合同补充协议 | 补充协议引起的收款、退款、收入确认和凭证调整由财务承接 | 合同变更、补差、退费、转课和权益调整 | 合同财务明细、凭证调整、红冲、退款审批 | Contract/Order/Payment、FinanceVoucher | 补充协议生效后财务数据必须同步更新 |
08 · 页面与原型设计说明
页面清单、布局要求、按钮字段和状态
原型图设计需要覆盖列表、详情、表单、弹窗、空状态、异常状态和权限状态。| 终端 | 页面 | 用户 | 页面目标 | 布局结构 | 关键按钮 | 关键字段 | 异常状态 | 原型备注 |
|---|---|---|---|---|---|---|---|---|
| PC Web | 监管账户 | 财务 | 查看收款流水、释放资金、对账和异常处理 | 监管资金页以流水台账、合同备案、课消释放、退款监管和异常回执组成,右侧展示监管回执和重报记录。 | 查看流水、资金对账、合同备案、课消释放、退款报送、失败重报、异常处理 | 监管账户、合同编号、收款流水、释放金额、课消批次、退款单号、回执状态、失败原因、校区账套、会计期间 | 监管回执失败、流水不匹配、合同未备案、课消释放失败、退款报送失败 | 需覆盖监管账户流水、合同备案、资金释放、退款监管、失败重报和人工处理。 建议 Figma Frame:FIN-监管账户;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 内置报销 | 员工/审批人/财务 | 填写报销单、OCR 识别票据、发票核验、查重、审批和付款 | 单据页采用步骤式表单,票据区支持 OCR 识别与核验结果;付款台账以批次、状态、异常原因和补偿入口组织。 | 新增报销单、OCR 识别、国税核验、发票查重、提交审批、生成付款批次、失败重试 | 报销人、费用类型、发票号码、校区税务主体、核验编码、重复结果、付款账户、补偿状态、校区账套、会计期间 | OCR 低置信度、发票核验失败、重复报销、付款失败、付款撤销待审、接口频控 | 需绘制票据识别、人工修正、国税主体选择、查重拦截、审批流、付款失败补偿和日志详情。 建议 Figma Frame:FIN-内置报销;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 多账套总账 | 总部财务/校区财务 | 切换校区账套、录入审核凭证、结账、反结账和账簿查询 | 财务工作台左侧账套/期间切换,中部为凭证或报表列表,右侧展示借贷分录、附件、来源单据和回执。 | 切换账套、生成凭证、审核凭证、红冲、期间结账、生成申报表、归档回执 | 校区账套、会计期间、凭证字号、借方金额、贷方金额、来源单据、审核人、回执状态、单据编号、发票号码 | 借贷不平、期间关闭、来源单据缺失、监管回执失败、申报数据不平、成本口径缺失 | 需覆盖总部跨账套视角、校区独立账套、凭证来源追溯、红冲、反结账限制和监管/税务回执。 建议 Figma Frame:FIN-多账套总账;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 税务申报 | 总部财务/校区财务 | 归集税务资料、测算税额、生成申报表和归档回执 | 财务工作台左侧账套/期间切换,中部为凭证或报表列表,右侧展示借贷分录、附件、来源单据和回执。 | 切换账套、生成凭证、审核凭证、红冲、期间结账、生成申报表、归档回执 | 校区账套、会计期间、凭证字号、借方金额、贷方金额、来源单据、审核人、回执状态、单据编号、发票号码 | 借贷不平、期间关闭、来源单据缺失、监管回执失败、申报数据不平、成本口径缺失 | 需覆盖总部跨账套视角、校区独立账套、凭证来源追溯、红冲、反结账限制和监管/税务回执。 建议 Figma Frame:FIN-税务申报;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 凭证入账 | 财务 | 生成凭证、写入内置总账、处理失败重推 | 财务工作台左侧账套/期间切换,中部为凭证或报表列表,右侧展示借贷分录、附件、来源单据和回执。 | 切换账套、生成凭证、审核凭证、红冲、期间结账、生成申报表、归档回执 | 校区账套、会计期间、凭证字号、借方金额、贷方金额、来源单据、审核人、回执状态、单据编号、发票号码 | 借贷不平、期间关闭、来源单据缺失、监管回执失败、申报数据不平、成本口径缺失 | 需覆盖总部跨账套视角、校区独立账套、凭证来源追溯、红冲、反结账限制和监管/税务回执。 建议 Figma Frame:FIN-凭证入账;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 报销付款台账 | 财务/出纳 | 管理报销付款、付款批次、付款失败、付款撤销、付款凭证和凭证生成 | 单据页采用步骤式表单,票据区支持 OCR 识别与核验结果;付款台账以批次、状态、异常原因和补偿入口组织。 | 新增报销单、OCR 识别、国税核验、发票查重、提交审批、生成付款批次、失败重试 | 报销人、费用类型、发票号码、校区税务主体、核验编码、重复结果、付款账户、补偿状态、校区账套、会计期间 | OCR 低置信度、发票核验失败、重复报销、付款失败、付款撤销待审、接口频控 | 需绘制票据识别、人工修正、国税主体选择、查重拦截、审批流、付款失败补偿和日志详情。 建议 Figma Frame:FIN-报销付款台账;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 库存成本凭证 | 财务 | 审核库存出入库、报损报废、盘盈盘亏、礼品出库和成本凭证 | 财务工作台左侧账套/期间切换,中部为凭证或报表列表,右侧展示借贷分录、附件、来源单据和回执。 | 切换账套、生成凭证、审核凭证、红冲、期间结账、生成申报表、归档回执 | 校区账套、会计期间、凭证字号、借方金额、贷方金额、来源单据、审核人、回执状态、单据编号、发票号码 | 借贷不平、期间关闭、来源单据缺失、监管回执失败、申报数据不平、成本口径缺失 | 需覆盖总部跨账套视角、校区独立账套、凭证来源追溯、红冲、反结账限制和监管/税务回执。 建议 Figma Frame:FIN-库存成本凭证;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 国税主体配置 | 财务/系统管理员 | 按校区配置税务主体、接口编码、授权凭证、额度、启用状态和负责人 | 国税配置页按校区税务主体、接口编码、授权凭证和启用状态管理;日志页展示请求、响应、频控、失败重试和人工复核。 | 新增主体、配置编码、启用停用、测试连接、查看日志、失败重试、人工复核 | 校区、纳税人识别号、接口编码、授权凭证、票种、额度、请求耗时、官方回执、校区账套、会计期间 | 主体未配置、授权凭证失效、接口频控、国税核验失败、回执解析失败、人工复核超时 | 需覆盖每校区可配置主体、编码、凭证、额度、启用状态、调用日志、失败重试和人工复核。 建议 Figma Frame:FIN-国税主体配置;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 国税调用日志 | 财务/技术运营 | 查看国税核验请求、响应、频控、失败重试、人工复核和主体变更影响 | 国税配置页按校区税务主体、接口编码、授权凭证和启用状态管理;日志页展示请求、响应、频控、失败重试和人工复核。 | 新增主体、配置编码、启用停用、测试连接、查看日志、失败重试、人工复核 | 校区、纳税人识别号、接口编码、授权凭证、票种、额度、请求耗时、官方回执、校区账套、会计期间 | 主体未配置、授权凭证失效、接口频控、国税核验失败、回执解析失败、人工复核超时 | 需覆盖每校区可配置主体、编码、凭证、额度、启用状态、调用日志、失败重试和人工复核。 建议 Figma Frame:FIN-国税调用日志;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 统一付款补偿 | 财务/出纳 | 处理报销、采购、退款、工资付款失败后的重试、撤销、换账户、拆分和线下付款 | 单据页采用步骤式表单,票据区支持 OCR 识别与核验结果;付款台账以批次、状态、异常原因和补偿入口组织。 | 新增报销单、OCR 识别、国税核验、发票查重、提交审批、生成付款批次、失败重试 | 报销人、费用类型、发票号码、校区税务主体、核验编码、重复结果、付款账户、补偿状态、校区账套、会计期间 | OCR 低置信度、发票核验失败、重复报销、付款失败、付款撤销待审、接口频控 | 需绘制票据识别、人工修正、国税主体选择、查重拦截、审批流、付款失败补偿和日志详情。 建议 Figma Frame:FIN-统一付款补偿;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 报销单 | 授权用户 | 围绕报销复刻完善报销单的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、收款对账、监管报送 | 校区账套、会计期间、单据编号、发票号码、核验状态、凭证字号、付款状态、监管回执 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FIN-报销单;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 发票识别 | 授权用户 | 围绕报销复刻完善发票识别的入口、字段、状态、异常提示、处理进度和验收反馈 | 单据页采用步骤式表单,票据区支持 OCR 识别与核验结果;付款台账以批次、状态、异常原因和补偿入口组织。 | 新增报销单、OCR 识别、国税核验、发票查重、提交审批、生成付款批次、失败重试 | 报销人、费用类型、发票号码、校区税务主体、核验编码、重复结果、付款账户、补偿状态、校区账套、会计期间 | OCR 低置信度、发票核验失败、重复报销、付款失败、付款撤销待审、接口频控 | 需绘制票据识别、人工修正、国税主体选择、查重拦截、审批流、付款失败补偿和日志详情。 建议 Figma Frame:FIN-发票识别;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 发票核验 | 授权用户 | 围绕报销复刻完善发票核验的入口、字段、状态、异常提示、处理进度和验收反馈 | 单据页采用步骤式表单,票据区支持 OCR 识别与核验结果;付款台账以批次、状态、异常原因和补偿入口组织。 | 新增报销单、OCR 识别、国税核验、发票查重、提交审批、生成付款批次、失败重试 | 报销人、费用类型、发票号码、校区税务主体、核验编码、重复结果、付款账户、补偿状态、校区账套、会计期间 | OCR 低置信度、发票核验失败、重复报销、付款失败、付款撤销待审、接口频控 | 需绘制票据识别、人工修正、国税主体选择、查重拦截、审批流、付款失败补偿和日志详情。 建议 Figma Frame:FIN-发票核验;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 付款单 | 授权用户 | 围绕报销复刻完善付款单的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、收款对账、监管报送 | 校区账套、会计期间、单据编号、发票号码、核验状态、凭证字号、付款状态、监管回执 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FIN-付款单;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 账套管理 | 授权用户 | 围绕账套税务完善账套管理的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、收款对账、监管报送 | 校区账套、会计期间、单据编号、发票号码、核验状态、凭证字号、付款状态、监管回执 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FIN-账套管理;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 凭证录入 | 授权用户 | 围绕账套税务完善凭证录入的入口、字段、状态、异常提示、处理进度和验收反馈 | 财务工作台左侧账套/期间切换,中部为凭证或报表列表,右侧展示借贷分录、附件、来源单据和回执。 | 切换账套、生成凭证、审核凭证、红冲、期间结账、生成申报表、归档回执 | 校区账套、会计期间、凭证字号、借方金额、贷方金额、来源单据、审核人、回执状态、单据编号、发票号码 | 借贷不平、期间关闭、来源单据缺失、监管回执失败、申报数据不平、成本口径缺失 | 需覆盖总部跨账套视角、校区独立账套、凭证来源追溯、红冲、反结账限制和监管/税务回执。 建议 Figma Frame:FIN-凭证录入;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 期间结账 | 授权用户 | 围绕账套税务完善期间结账的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、收款对账、监管报送 | 校区账套、会计期间、单据编号、发票号码、核验状态、凭证字号、付款状态、监管回执 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FIN-期间结账;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 纳税申报 | 授权用户 | 围绕账套税务完善纳税申报的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、收款对账、监管报送 | 校区账套、会计期间、单据编号、发票号码、核验状态、凭证字号、付款状态、监管回执 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FIN-纳税申报;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 付款台账 | 授权用户 | 围绕资金闭环完善付款台账的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、收款对账、监管报送 | 校区账套、会计期间、单据编号、发票号码、核验状态、凭证字号、付款状态、监管回执 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FIN-付款台账;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 对账差异 | 授权用户 | 围绕资金闭环完善对账差异的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、收款对账、监管报送 | 校区账套、会计期间、单据编号、发票号码、核验状态、凭证字号、付款状态、监管回执 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FIN-对账差异;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 监管报送 | 授权用户 | 围绕资金闭环完善监管报送的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、收款对账、监管报送 | 校区账套、会计期间、单据编号、发票号码、核验状态、凭证字号、付款状态、监管回执 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FIN-监管报送;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
09 · 页面到接口的前后端闭环矩阵
把原型页面、后端接口、数据对象、状态和消息审批绑定到一起
设计原型时,每个关键页面必须能解释前端展示什么、后端提交什么、状态怎么变、异常怎么处理。| 原型页面 | 关键接口 | 关联对象 | 状态流 | 审批/权限触发 | 消息/待办触达 | 原型验收要求 |
|---|---|---|---|---|---|---|
| 监管账户 | POST /api/v1/tax/invoices/verify | AccountSet | 草稿 -> 待学管确认 -> 待校长审批 -> 待财务复核 -> 监管退款中 -> 已退款 -> 已驳回 -> 已取消 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 内置报销 | POST /api/v1/tax/invoices/verify | FinanceSubject | 草稿 -> 待 OCR -> 待核验 -> 待审批 -> 已通过 -> 待付款 -> 已付款 -> 已驳回 -> 已作废 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 多账套总账 | POST /api/v1/tax/invoices/verify | FinanceVoucher | 草稿 -> 待学管确认 -> 待校长审批 -> 待财务复核 -> 监管退款中 -> 已退款 -> 已驳回 -> 已取消 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 税务申报 | POST /api/v1/tax/invoices/verify | FinanceVoucherEntry | 草稿 -> 待 OCR -> 待核验 -> 待审批 -> 已通过 -> 待付款 -> 已付款 -> 已驳回 -> 已作废 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 凭证入账 | POST /api/v1/tax/invoices/verify | ExpenseReport | 草稿 -> 待学管确认 -> 待校长审批 -> 待财务复核 -> 监管退款中 -> 已退款 -> 已驳回 -> 已取消 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 报销付款台账 | POST /api/v1/tax/invoices/verify | Invoice | 草稿 -> 待 OCR -> 待核验 -> 待审批 -> 已通过 -> 待付款 -> 已付款 -> 已驳回 -> 已作废 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 库存成本凭证 | POST /api/v1/tax/invoices/verify | InvoiceVerification | 草稿 -> 待学管确认 -> 待校长审批 -> 待财务复核 -> 监管退款中 -> 已退款 -> 已驳回 -> 已取消 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 国税主体配置 | POST /api/v1/tax/invoices/verify | ExpensePaymentApply | 草稿 -> 待 OCR -> 待核验 -> 待审批 -> 已通过 -> 待付款 -> 已付款 -> 已驳回 -> 已作废 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 国税调用日志 | POST /api/v1/tax/invoices/verify | TaxReport | 草稿 -> 待学管确认 -> 待校长审批 -> 待财务复核 -> 监管退款中 -> 已退款 -> 已驳回 -> 已取消 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 统一付款补偿 | POST /api/v1/tax/invoices/verify | AccountSet | 草稿 -> 待 OCR -> 待核验 -> 待审批 -> 已通过 -> 待付款 -> 已付款 -> 已驳回 -> 已作废 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 报销单 | POST /api/v1/tax/invoices/verify | FinanceSubject | 草稿 -> 待学管确认 -> 待校长审批 -> 待财务复核 -> 监管退款中 -> 已退款 -> 已驳回 -> 已取消 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 报销审批提醒 -> 审批人/财务 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 发票识别 | POST /api/v1/tax/invoices/verify | FinanceVoucher | 草稿 -> 待 OCR -> 待核验 -> 待审批 -> 已通过 -> 待付款 -> 已付款 -> 已驳回 -> 已作废 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
10 · 原型、UI、研发、测试交付补充
把关键闭环补强为下一阶段可执行任务
本章节为正式 PRD 的交付要求,面向原型图、UI、开发、联调和测试分工。| 能力域 | 功能补充要求 | 原型交付要求 | UI 交互要求 | 研发实现要求 | 测试验收要求 |
|---|---|---|---|---|---|
| 报销复刻 | 补齐报销单、OCR、国税核验、发票查重、防重复报销、审批和付款归档。 | 报销单、发票识别、发票核验、付款单 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;发票核验结果、查重结果、审批和付款状态完整可见。 |
| 账套税务 | 补齐每校区独立账套、总部统管、凭证、科目、结账、反结账、报税和财务报表。 | 账套管理、凭证录入、期间结账、纳税申报 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;总部财务能查看和管理所有校区账套。 |
| 资金闭环 | 补齐付款失败重试、对账差异、人工关闭、凭证冲正和监管报送。 | 付款台账、对账差异、监管报送 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;每笔资金动作都可查状态、凭证、回执和补偿记录。 |
11 · 数据对象与字段字典
明确页面、接口、数据库共同使用的数据语言
字段涉及敏感、人脸、财务、绩效时,原型需体现脱敏、授权和审计。核心对象
| 对象 | 说明 |
|---|---|
| AccountSet | 每校区独立账套;落地表:fin_account_set |
| FinanceSubject | 会计科目和辅助核算;落地表:fin_subject |
| FinanceVoucher | 会计凭证;落地表:fin_voucher |
| FinanceVoucherEntry | 凭证明细分录;落地表:fin_voucher_entry |
| ExpenseReport | 合思式报销单;落地表:exp_report |
| Invoice | 报销发票与 OCR 结果;落地表:exp_invoice |
| InvoiceVerification | 国税官方发票核验;落地表:exp_invoice_verification |
| ExpensePaymentApply | 报销付款申请;落地表:exp_payment_apply |
| TaxReport | 纳税申报资料和报表;落地表:tax_declaration |
关联引用对象
| 对象 | 说明 |
|---|---|
| Organization | 集团、区域、校区、部门组织树;引用来源:FND / sys_organization |
| User/Employee | 统一登录账号;引用来源:FND / sys_user |
| Employee | 员工基础档案;引用来源:FND / sys_employee |
| Role | 角色定义;引用来源:FND / sys_role |
| ApprovalFlow | 审批流配置;引用来源:FND / sys_approval_flow |
| MessageTemplate | 消息模板与多端触达配置;引用来源:FND / sys_message_template |
| AuditLog | 全平台操作审计日志;引用来源:FND / sys_audit_log |
| IntegrationLog | 接口调用日志;引用来源:OPEN / int_integration_log |
| SensitiveFieldPolicy | 敏感字段脱敏策略;引用来源:SEC / sec_sensitive_field_policy |
| LegalEntity | 法人主体、税务主体和收款主体;引用来源:FND / sys_legal_entity |
| Contract | 合同主表;引用来源:CON / con_contract |
| Order | 订单和应收;引用来源:CON / ord_order |
| Payment | 收款单;引用来源:CON / ord_payment |
| Consumption | 课消记录;引用来源:EDU / edu_consumption |
| StockIn | 采购入库/退货入库;引用来源:MAT / mat_stock_in |
| StockOut | 领用出库/核销出库;引用来源:MAT / mat_stock_out |
| PayrollPayslip | 电子工资条;引用来源:HR / hr_payslip |
完整字段字典
| 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|
| AccountSet | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| AccountSet | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| AccountSet | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| AccountSet | campus_id | BIGINT | 是 | 所属校区,跨校区或总部级数据为空;本表业务要求必填 | 普通 |
| AccountSet | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| AccountSet | created_at | DATETIME | 是 | 创建时间 | 普通 |
| AccountSet | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| AccountSet | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| AccountSet | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| AccountSet | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| AccountSet | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| AccountSet | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| AccountSet | account_set_code | VARCHAR(64) | 是 | 账套编码,唯一 | 普通 |
| AccountSet | account_set_name | VARCHAR(128) | 是 | 账套名称 | 普通 |
| AccountSet | fiscal_calendar | JSON | 是 | 会计期间配置 | 普通 |
| AccountSet | tax_subject_id | BIGINT | 是 | 税务主体 ID | 普通 |
| AccountSet | enabled | TINYINT | 是 | 是否启用 | 普通 |
| FinanceSubject | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| FinanceSubject | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| FinanceSubject | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| FinanceSubject | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| FinanceSubject | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| FinanceSubject | created_at | DATETIME | 是 | 创建时间 | 普通 |
| FinanceSubject | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| FinanceSubject | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| FinanceSubject | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| FinanceSubject | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| FinanceSubject | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| FinanceSubject | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| FinanceSubject | account_set_id | BIGINT | 是 | 账套 ID | 普通 |
| FinanceSubject | subject_code | VARCHAR(64) | 是 | 科目编码 | 普通 |
| FinanceSubject | subject_name | VARCHAR(128) | 是 | 科目名称 | 普通 |
| FinanceSubject | subject_type | VARCHAR(32) | 是 | 资产/负债/收入/成本/费用/权益 | 普通 |
| FinanceSubject | assist_rule | JSON | 否 | 辅助核算规则 | 普通 |
| FinanceSubject | enabled | TINYINT | 是 | 是否启用 | 普通 |
| FinanceVoucher | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| FinanceVoucher | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| FinanceVoucher | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| FinanceVoucher | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| FinanceVoucher | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| FinanceVoucher | created_at | DATETIME | 是 | 创建时间 | 普通 |
| FinanceVoucher | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| FinanceVoucher | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| FinanceVoucher | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| FinanceVoucher | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| FinanceVoucher | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| FinanceVoucher | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| FinanceVoucher | voucher_no | VARCHAR(64) | 是 | 凭证编号,账套期间内唯一 | 普通 |
| FinanceVoucher | account_set_id | BIGINT | 是 | 账套 ID | 普通 |
| FinanceVoucher | period_code | VARCHAR(32) | 是 | 会计期间 | 普通 |
| FinanceVoucher | source_biz_type | VARCHAR(64) | 否 | 来源业务类型 | 普通 |
| FinanceVoucher | source_biz_no | VARCHAR(64) | 否 | 来源业务编号 | 普通 |
| FinanceVoucher | voucher_status | VARCHAR(32) | 是 | 草稿/待审核/已审核/已过账/已红冲 | 普通 |
| FinanceVoucher | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| FinanceVoucher | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| FinanceVoucherEntry | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| FinanceVoucherEntry | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| FinanceVoucherEntry | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| FinanceVoucherEntry | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| FinanceVoucherEntry | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| FinanceVoucherEntry | created_at | DATETIME | 是 | 创建时间 | 普通 |
| FinanceVoucherEntry | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| FinanceVoucherEntry | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| FinanceVoucherEntry | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| FinanceVoucherEntry | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| FinanceVoucherEntry | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| FinanceVoucherEntry | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| FinanceVoucherEntry | voucher_id | BIGINT | 是 | 凭证 ID | 普通 |
| FinanceVoucherEntry | entry_no | INT | 是 | 分录行号 | 普通 |
| FinanceVoucherEntry | subject_id | BIGINT | 是 | 会计科目 ID | 普通 |
| FinanceVoucherEntry | assist_payload | JSON | 否 | 辅助核算信息 | 普通 |
| FinanceVoucherEntry | debit_amount | DECIMAL(18,2) | 是 | 借方金额 | 普通 |
| FinanceVoucherEntry | credit_amount | DECIMAL(18,2) | 是 | 贷方金额 | 普通 |
| FinanceVoucherEntry | summary | VARCHAR(255) | 是 | 摘要 | 普通 |
| ExpenseReport | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| ExpenseReport | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| ExpenseReport | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| ExpenseReport | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| ExpenseReport | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| ExpenseReport | created_at | DATETIME | 是 | 创建时间 | 普通 |
| ExpenseReport | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| ExpenseReport | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| ExpenseReport | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| ExpenseReport | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| ExpenseReport | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| ExpenseReport | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| ExpenseReport | expense_no | VARCHAR(64) | 是 | 报销单编号,唯一 | 普通 |
| ExpenseReport | applicant_id | BIGINT | 是 | 申请人 ID | 普通 |
| ExpenseReport | expense_type | VARCHAR(32) | 是 | 差旅/办公/采购/市场/其他 | 普通 |
| ExpenseReport | total_amount | DECIMAL(18,2) | 是 | 报销总额 | 普通 |
| ExpenseReport | expense_status | VARCHAR(32) | 是 | 草稿/待审批/待付款/已付款/已驳回 | 普通 |
| ExpenseReport | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| ExpenseReport | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| Invoice | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Invoice | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Invoice | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Invoice | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Invoice | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Invoice | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Invoice | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Invoice | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Invoice | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Invoice | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Invoice | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Invoice | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Invoice | invoice_no | VARCHAR(64) | 是 | 发票号码 | 普通 |
| Invoice | invoice_code | VARCHAR(64) | 否 | 发票代码 | 普通 |
| Invoice | invoice_type | VARCHAR(32) | 是 | 专票/普票/电子票/其他 | 普通 |
| Invoice | seller_tax_no | VARCHAR(64) | 否 | 销售方税号 | 敏感 |
| Invoice | buyer_tax_no | VARCHAR(64) | 否 | 购买方税号 | 敏感 |
| Invoice | ocr_result | JSON | 否 | OCR 识别结果 | 普通 |
| Invoice | duplicate_status | VARCHAR(32) | 是 | 未查重/重复/未重复 | 普通 |
| InvoiceVerification | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| InvoiceVerification | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| InvoiceVerification | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| InvoiceVerification | campus_id | BIGINT | 是 | 所属校区,跨校区或总部级数据为空;本表业务要求必填 | 普通 |
| InvoiceVerification | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| InvoiceVerification | created_at | DATETIME | 是 | 创建时间 | 普通 |
| InvoiceVerification | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| InvoiceVerification | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| InvoiceVerification | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| InvoiceVerification | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| InvoiceVerification | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| InvoiceVerification | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| InvoiceVerification | verification_no | VARCHAR(64) | 是 | 核验编号,唯一 | 普通 |
| InvoiceVerification | tax_subject_id | BIGINT | 是 | 税务主体配置 ID | 普通 |
| InvoiceVerification | official_app_code | VARCHAR(128) | 是 | 国税接口主体/编码配置 | 普通 |
| InvoiceVerification | invoice_id | BIGINT | 是 | 发票 ID | 普通 |
| InvoiceVerification | official_payload | JSON | 是 | 官方请求参数 | 普通 |
| InvoiceVerification | official_receipt | JSON | 否 | 官方核验回执 | 普通 |
| InvoiceVerification | verification_status | VARCHAR(32) | 是 | 待核验/通过/不通过/异常/重试中 | 普通 |
| ExpensePaymentApply | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| ExpensePaymentApply | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| ExpensePaymentApply | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| ExpensePaymentApply | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| ExpensePaymentApply | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| ExpensePaymentApply | created_at | DATETIME | 是 | 创建时间 | 普通 |
| ExpensePaymentApply | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| ExpensePaymentApply | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| ExpensePaymentApply | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| ExpensePaymentApply | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| ExpensePaymentApply | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| ExpensePaymentApply | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| ExpensePaymentApply | payment_apply_no | VARCHAR(64) | 是 | 付款申请编号,唯一 | 普通 |
| ExpensePaymentApply | expense_report_id | BIGINT | 是 | 报销单 ID | 普通 |
| ExpensePaymentApply | payee_id | BIGINT | 是 | 收款人 ID | 普通 |
| ExpensePaymentApply | payee_account | VARCHAR(128) | 是 | 收款账号,敏感 | 敏感 |
| ExpensePaymentApply | pay_amount | DECIMAL(18,2) | 是 | 付款金额 | 普通 |
| ExpensePaymentApply | payment_status | VARCHAR(32) | 是 | 待付款/付款中/成功/失败 | 普通 |
| TaxReport | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| TaxReport | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| TaxReport | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| TaxReport | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| TaxReport | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| TaxReport | created_at | DATETIME | 是 | 创建时间 | 普通 |
| TaxReport | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| TaxReport | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| TaxReport | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| TaxReport | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| TaxReport | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| TaxReport | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| TaxReport | declaration_no | VARCHAR(64) | 是 | 申报编号,唯一 | 普通 |
| TaxReport | account_set_id | BIGINT | 是 | 账套 ID | 普通 |
| TaxReport | tax_period | VARCHAR(32) | 是 | 税期 | 普通 |
| TaxReport | tax_type | VARCHAR(32) | 是 | 增值税/所得税/附加税/其他 | 普通 |
| TaxReport | declaration_payload | JSON | 是 | 申报资料 | 普通 |
| TaxReport | declaration_status | VARCHAR(32) | 是 | 草稿/待申报/已申报/失败 | 普通 |
引用对象字段字典
| 引用表 | 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|---|
| sys_organization | Organization | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_organization | Organization | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_organization | Organization | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_organization | Organization | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_organization | Organization | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_organization | Organization | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_organization | Organization | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_organization | Organization | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_organization | Organization | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_organization | Organization | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_organization | Organization | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_organization | Organization | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_organization | Organization | org_code | VARCHAR(64) | 是 | 组织编码,租户内唯一 | 普通 |
| sys_organization | Organization | org_name | VARCHAR(128) | 是 | 组织名称 | 普通 |
| sys_organization | Organization | org_type | VARCHAR(32) | 是 | 集团/区域/校区/部门/法人主体 | 普通 |
| sys_organization | Organization | parent_id | BIGINT | 否 | 上级组织 ID,根节点为空 | 普通 |
| sys_organization | Organization | sort_no | INT | 否 | 同级排序 | 普通 |
| sys_organization | Organization | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_user | User/Employee | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_user | User/Employee | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_user | User/Employee | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_user | User/Employee | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_user | User/Employee | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_user | User/Employee | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_user | User/Employee | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_user | User/Employee | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_user | User/Employee | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_user | User/Employee | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_user | User/Employee | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_user | User/Employee | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_user | User/Employee | user_no | VARCHAR(64) | 是 | 账号编号,唯一 | 普通 |
| sys_user | User/Employee | login_name | VARCHAR(64) | 是 | 登录名,唯一 | 普通 |
| sys_user | User/Employee | mobile | VARCHAR(32) | 否 | 手机号,敏感脱敏展示 | 敏感 |
| sys_user | User/Employee | password_hash | VARCHAR(255) | 否 | 密码哈希,禁止前端返回 | 高敏 |
| sys_user | User/Employee | user_type | VARCHAR(32) | 是 | 员工/学员/家长/外部账号 | 普通 |
| sys_user | User/Employee | login_status | VARCHAR(32) | 是 | 正常/锁定/停用/待激活 | 普通 |
| sys_employee | Employee | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_employee | Employee | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_employee | Employee | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_employee | Employee | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_employee | Employee | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_employee | Employee | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_employee | Employee | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_employee | Employee | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_employee | Employee | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_employee | Employee | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_employee | Employee | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_employee | Employee | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_employee | Employee | employee_no | VARCHAR(64) | 是 | 工号,唯一 | 普通 |
| sys_employee | Employee | user_id | BIGINT | 否 | 关联账号 ID | 普通 |
| sys_employee | Employee | employee_name | VARCHAR(64) | 是 | 员工姓名 | 普通 |
| sys_employee | Employee | primary_campus_id | BIGINT | 否 | 主校区 ID | 普通 |
| sys_employee | Employee | job_title | VARCHAR(64) | 否 | 岗位名称 | 普通 |
| sys_employee | Employee | hire_status | VARCHAR(32) | 是 | 在职/试用/离职/停用 | 普通 |
| sys_role | Role | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_role | Role | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_role | Role | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_role | Role | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_role | Role | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_role | Role | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_role | Role | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_role | Role | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_role | Role | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_role | Role | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_role | Role | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_role | Role | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_role | Role | role_code | VARCHAR(64) | 是 | 角色编码,唯一 | 普通 |
| sys_role | Role | role_name | VARCHAR(128) | 是 | 角色名称 | 普通 |
| sys_role | Role | role_level | VARCHAR(32) | 是 | 总部/区域/校区/个人 | 普通 |
| sys_role | Role | data_scope_type | VARCHAR(32) | 是 | 数据范围类型 | 普通 |
| sys_role | Role | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_approval_flow | ApprovalFlow | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_approval_flow | ApprovalFlow | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_approval_flow | ApprovalFlow | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_approval_flow | ApprovalFlow | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_approval_flow | ApprovalFlow | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_approval_flow | ApprovalFlow | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_approval_flow | ApprovalFlow | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_approval_flow | ApprovalFlow | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_approval_flow | ApprovalFlow | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_approval_flow | ApprovalFlow | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_approval_flow | ApprovalFlow | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_approval_flow | ApprovalFlow | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_approval_flow | ApprovalFlow | flow_code | VARCHAR(64) | 是 | 审批流编码,唯一 | 普通 |
| sys_approval_flow | ApprovalFlow | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sys_approval_flow | ApprovalFlow | flow_name | VARCHAR(128) | 是 | 审批流名称 | 普通 |
| sys_approval_flow | ApprovalFlow | condition_json | JSON | 否 | 触发条件 | 普通 |
| sys_approval_flow | ApprovalFlow | node_json | JSON | 是 | 节点、审批人和超时规则 | 普通 |
| sys_approval_flow | ApprovalFlow | version_no | INT | 是 | 审批流版本号 | 普通 |
| sys_approval_flow | ApprovalFlow | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_message_template | MessageTemplate | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_message_template | MessageTemplate | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_message_template | MessageTemplate | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_message_template | MessageTemplate | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_message_template | MessageTemplate | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_message_template | MessageTemplate | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_message_template | MessageTemplate | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_message_template | MessageTemplate | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_message_template | MessageTemplate | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_message_template | MessageTemplate | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_message_template | MessageTemplate | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_message_template | MessageTemplate | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_message_template | MessageTemplate | template_code | VARCHAR(64) | 是 | 模板编码,唯一 | 普通 |
| sys_message_template | MessageTemplate | template_name | VARCHAR(128) | 是 | 模板名称 | 普通 |
| sys_message_template | MessageTemplate | channel | VARCHAR(32) | 是 | 站内信/短信/微信小程序/企微/Push | 普通 |
| sys_message_template | MessageTemplate | receiver_rule | JSON | 是 | 接收人规则 | 普通 |
| sys_message_template | MessageTemplate | content_template | TEXT | 是 | 模板内容 | 普通 |
| sys_message_template | MessageTemplate | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_audit_log | AuditLog | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_audit_log | AuditLog | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_audit_log | AuditLog | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_audit_log | AuditLog | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_audit_log | AuditLog | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_audit_log | AuditLog | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_audit_log | AuditLog | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_audit_log | AuditLog | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_audit_log | AuditLog | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_audit_log | AuditLog | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_audit_log | AuditLog | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_audit_log | AuditLog | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_audit_log | AuditLog | operator_id | BIGINT | 是 | 操作人 ID | 普通 |
| sys_audit_log | AuditLog | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sys_audit_log | AuditLog | biz_id | BIGINT | 否 | 业务主键 ID | 普通 |
| sys_audit_log | AuditLog | action_code | VARCHAR(64) | 是 | 操作编码 | 普通 |
| sys_audit_log | AuditLog | before_snapshot | JSON | 否 | 变更前快照 | 普通 |
| sys_audit_log | AuditLog | after_snapshot | JSON | 否 | 变更后快照 | 普通 |
| sys_audit_log | AuditLog | ip_address | VARCHAR(64) | 否 | 操作 IP | 普通 |
| int_integration_log | IntegrationLog | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| int_integration_log | IntegrationLog | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| int_integration_log | IntegrationLog | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| int_integration_log | IntegrationLog | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| int_integration_log | IntegrationLog | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| int_integration_log | IntegrationLog | created_at | DATETIME | 是 | 创建时间 | 普通 |
| int_integration_log | IntegrationLog | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| int_integration_log | IntegrationLog | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| int_integration_log | IntegrationLog | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| int_integration_log | IntegrationLog | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| int_integration_log | IntegrationLog | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| int_integration_log | IntegrationLog | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| int_integration_log | IntegrationLog | request_id | VARCHAR(128) | 是 | 请求 ID,幂等键 | 普通 |
| int_integration_log | IntegrationLog | system_code | VARCHAR(64) | 是 | 外部系统编码 | 普通 |
| int_integration_log | IntegrationLog | api_path | VARCHAR(512) | 是 | 接口路径 | 普通 |
| int_integration_log | IntegrationLog | biz_type | VARCHAR(64) | 否 | 业务类型 | 普通 |
| int_integration_log | IntegrationLog | biz_id | BIGINT | 否 | 业务 ID | 普通 |
| int_integration_log | IntegrationLog | request_payload | JSON | 否 | 请求报文,敏感字段脱敏 | 敏感 |
| int_integration_log | IntegrationLog | response_payload | JSON | 否 | 响应报文 | 普通 |
| int_integration_log | IntegrationLog | call_status | VARCHAR(32) | 是 | 成功/失败/超时/重试中 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | field_code | VARCHAR(128) | 是 | 字段编码,唯一 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | mask_rule | VARCHAR(64) | 是 | 脱敏规则 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | view_requires_approval | TINYINT | 是 | 明文查看是否需审批 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | watermark_required | TINYINT | 是 | 是否加水印 | 普通 |
| sys_legal_entity | LegalEntity | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_legal_entity | LegalEntity | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_legal_entity | LegalEntity | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_legal_entity | LegalEntity | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_legal_entity | LegalEntity | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_legal_entity | LegalEntity | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_legal_entity | LegalEntity | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_legal_entity | LegalEntity | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_legal_entity | LegalEntity | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_legal_entity | LegalEntity | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_legal_entity | LegalEntity | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_legal_entity | LegalEntity | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_legal_entity | LegalEntity | entity_code | VARCHAR(64) | 是 | 主体编码,唯一 | 普通 |
| sys_legal_entity | LegalEntity | entity_name | VARCHAR(128) | 是 | 主体名称 | 普通 |
| sys_legal_entity | LegalEntity | taxpayer_no | VARCHAR(64) | 是 | 纳税人识别号 | 敏感 |
| sys_legal_entity | LegalEntity | bank_account_no | VARCHAR(64) | 否 | 银行账号,展示需脱敏 | 敏感 |
| sys_legal_entity | LegalEntity | invoice_rule | JSON | 否 | 开票与核验规则 | 普通 |
| sys_legal_entity | LegalEntity | enabled | TINYINT | 是 | 是否启用 | 普通 |
| con_contract | Contract | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| con_contract | Contract | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| con_contract | Contract | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| con_contract | Contract | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| con_contract | Contract | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| con_contract | Contract | created_at | DATETIME | 是 | 创建时间 | 普通 |
| con_contract | Contract | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| con_contract | Contract | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| con_contract | Contract | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| con_contract | Contract | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| con_contract | Contract | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| con_contract | Contract | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| con_contract | Contract | contract_no | VARCHAR(64) | 是 | 合同编号,唯一 | 普通 |
| con_contract | Contract | student_id | BIGINT | 是 | 学员 ID | 普通 |
| con_contract | Contract | family_id | BIGINT | 否 | 客户家庭 ID | 普通 |
| con_contract | Contract | template_id | BIGINT | 是 | 合同模板 ID | 普通 |
| con_contract | Contract | employee_id | BIGINT | 否 | 创建合同的销售/市场/课程顾问员工 ID | 普通 |
| con_contract | Contract | source_terminal | VARCHAR(32) | 是 | 来源终端,教师端 App/小程序或 PC 管理端 | 普通 |
| con_contract | Contract | simulation_id | BIGINT | 否 | 关联优惠试算 ID | 普通 |
| con_contract | Contract | extra_discount_apply_id | BIGINT | 否 | 关联额外折扣申请 ID | 普通 |
| con_contract | Contract | hand_sign_status | VARCHAR(32) | 是 | 待手写签字/已手写签字/签字作废 | 普通 |
| con_contract | Contract | sign_status | VARCHAR(32) | 是 | 待家长签署/已手写签字/已作废 | 普通 |
| con_contract | Contract | payment_status | VARCHAR(32) | 是 | 待支付/支付中/支付成功/支付失败/已关闭 | 普通 |
| con_contract | Contract | enterprise_seal_status | VARCHAR(32) | 是 | 未触发/盖章中/已盖章/盖章失败/已归档 | 普通 |
| con_contract | Contract | contract_status | VARCHAR(32) | 是 | 草稿/生效/履约中/已终止/已退费 | 普通 |
| con_contract | Contract | supervision_status | VARCHAR(32) | 否 | 监管报送状态 | 普通 |
| con_contract | Contract | currency | VARCHAR(8) | 是 | 币种,默认 CNY | 普通 |
| con_contract | Contract | amount | DECIMAL(18,2) | 是 | 含税金额,必须大于等于 0 | 普通 |
| con_contract | Contract | tax_amount | DECIMAL(18,2) | 否 | 税额,按发票或税率计算 | 普通 |
| con_contract | Contract | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| con_contract | Contract | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| ord_order | Order | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| ord_order | Order | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| ord_order | Order | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| ord_order | Order | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| ord_order | Order | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| ord_order | Order | created_at | DATETIME | 是 | 创建时间 | 普通 |
| ord_order | Order | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| ord_order | Order | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| ord_order | Order | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| ord_order | Order | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| ord_order | Order | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| ord_order | Order | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| ord_order | Order | order_no | VARCHAR(64) | 是 | 订单编号,唯一 | 普通 |
| ord_order | Order | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| ord_order | Order | student_id | BIGINT | 是 | 学员 ID | 普通 |
| ord_order | Order | receivable_amount | DECIMAL(18,2) | 是 | 应收金额 | 普通 |
| ord_order | Order | discount_amount | DECIMAL(18,2) | 否 | 优惠金额 | 普通 |
| ord_order | Order | paid_amount | DECIMAL(18,2) | 是 | 已收金额 | 普通 |
| ord_order | Order | order_status | VARCHAR(32) | 是 | 待支付/支付中/已支付/已关闭 | 普通 |
| ord_payment | Payment | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| ord_payment | Payment | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| ord_payment | Payment | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| ord_payment | Payment | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| ord_payment | Payment | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| ord_payment | Payment | created_at | DATETIME | 是 | 创建时间 | 普通 |
| ord_payment | Payment | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| ord_payment | Payment | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| ord_payment | Payment | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| ord_payment | Payment | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| ord_payment | Payment | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| ord_payment | Payment | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| ord_payment | Payment | payment_no | VARCHAR(64) | 是 | 收款单号,唯一 | 普通 |
| ord_payment | Payment | order_id | BIGINT | 是 | 订单 ID | 普通 |
| ord_payment | Payment | pay_channel | VARCHAR(32) | 是 | 微信/支付宝/银行卡/现金/监管账户 | 普通 |
| ord_payment | Payment | paid_amount | DECIMAL(18,2) | 是 | 实收金额 | 普通 |
| ord_payment | Payment | paid_at | DATETIME | 否 | 支付完成时间 | 普通 |
| ord_payment | Payment | channel_trade_no | VARCHAR(128) | 否 | 渠道流水号 | 普通 |
| ord_payment | Payment | supervision_account_id | BIGINT | 否 | 资金监管账户 ID | 普通 |
| ord_payment | Payment | receipt_status | VARCHAR(32) | 是 | 待确认/已确认/异常 | 普通 |
| edu_consumption | Consumption | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_consumption | Consumption | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_consumption | Consumption | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_consumption | Consumption | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_consumption | Consumption | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_consumption | Consumption | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_consumption | Consumption | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_consumption | Consumption | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_consumption | Consumption | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_consumption | Consumption | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_consumption | Consumption | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_consumption | Consumption | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_consumption | Consumption | lesson_id | BIGINT | 是 | 课次 ID | 普通 |
| edu_consumption | Consumption | student_id | BIGINT | 是 | 学员 ID | 普通 |
| edu_consumption | Consumption | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| edu_consumption | Consumption | consumed_hours | DECIMAL(8,2) | 是 | 消耗课时 | 普通 |
| edu_consumption | Consumption | consume_amount | DECIMAL(18,2) | 否 | 课消金额 | 普通 |
| edu_consumption | Consumption | consume_status | VARCHAR(32) | 是 | 待确认/已课消/已冲销/异常 | 普通 |
| mat_stock_in | StockIn | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| mat_stock_in | StockIn | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| mat_stock_in | StockIn | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| mat_stock_in | StockIn | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| mat_stock_in | StockIn | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| mat_stock_in | StockIn | created_at | DATETIME | 是 | 创建时间 | 普通 |
| mat_stock_in | StockIn | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| mat_stock_in | StockIn | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| mat_stock_in | StockIn | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| mat_stock_in | StockIn | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| mat_stock_in | StockIn | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| mat_stock_in | StockIn | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| mat_stock_in | StockIn | stock_in_no | VARCHAR(64) | 是 | 入库单编号,唯一 | 普通 |
| mat_stock_in | StockIn | warehouse_id | BIGINT | 是 | 入库仓库 | 普通 |
| mat_stock_in | StockIn | supplier_id | BIGINT | 否 | 供应商 ID | 普通 |
| mat_stock_in | StockIn | source_biz_no | VARCHAR(64) | 否 | 来源单号 | 普通 |
| mat_stock_in | StockIn | line_items | JSON | 是 | 入库明细 | 普通 |
| mat_stock_in | StockIn | stock_in_status | VARCHAR(32) | 是 | 草稿/待审核/已入库/已作废 | 普通 |
| mat_stock_in | StockIn | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| mat_stock_in | StockIn | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| mat_stock_out | StockOut | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| mat_stock_out | StockOut | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| mat_stock_out | StockOut | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| mat_stock_out | StockOut | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| mat_stock_out | StockOut | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| mat_stock_out | StockOut | created_at | DATETIME | 是 | 创建时间 | 普通 |
| mat_stock_out | StockOut | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| mat_stock_out | StockOut | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| mat_stock_out | StockOut | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| mat_stock_out | StockOut | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| mat_stock_out | StockOut | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| mat_stock_out | StockOut | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| mat_stock_out | StockOut | stock_out_no | VARCHAR(64) | 是 | 出库单编号,唯一 | 普通 |
| mat_stock_out | StockOut | warehouse_id | BIGINT | 是 | 出库仓库 | 普通 |
| mat_stock_out | StockOut | use_scene | VARCHAR(32) | 是 | 教学/办公/积分兑换/报损/调拨 | 普通 |
| mat_stock_out | StockOut | source_biz_no | VARCHAR(64) | 否 | 来源单号 | 普通 |
| mat_stock_out | StockOut | line_items | JSON | 是 | 出库明细 | 普通 |
| mat_stock_out | StockOut | stock_out_status | VARCHAR(32) | 是 | 草稿/待审核/已出库/已作废 | 普通 |
| mat_stock_out | StockOut | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| mat_stock_out | StockOut | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| hr_payslip | PayrollPayslip | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| hr_payslip | PayrollPayslip | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| hr_payslip | PayrollPayslip | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| hr_payslip | PayrollPayslip | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| hr_payslip | PayrollPayslip | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| hr_payslip | PayrollPayslip | created_at | DATETIME | 是 | 创建时间 | 普通 |
| hr_payslip | PayrollPayslip | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| hr_payslip | PayrollPayslip | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| hr_payslip | PayrollPayslip | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| hr_payslip | PayrollPayslip | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| hr_payslip | PayrollPayslip | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| hr_payslip | PayrollPayslip | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| hr_payslip | PayrollPayslip | payslip_no | VARCHAR(64) | 是 | 工资条编号,唯一 | 普通 |
| hr_payslip | PayrollPayslip | batch_id | BIGINT | 是 | 薪酬批次 ID | 普通 |
| hr_payslip | PayrollPayslip | employee_id | BIGINT | 是 | 员工 ID | 普通 |
| hr_payslip | PayrollPayslip | gross_salary | DECIMAL(18,2) | 是 | 应发工资 | 普通 |
| hr_payslip | PayrollPayslip | net_salary | DECIMAL(18,2) | 是 | 实发工资 | 普通 |
| hr_payslip | PayrollPayslip | show_social_insurance | TINYINT | 是 | 是否显示社保信息 | 普通 |
| hr_payslip | PayrollPayslip | show_housing_fund | TINYINT | 是 | 是否显示公积金信息 | 普通 |
| hr_payslip | PayrollPayslip | confirm_status | VARCHAR(32) | 是 | 待确认/已确认/有异议 | 普通 |
JSON 字段结构与校验
| 表名 | 对象 | 字段 | 结构编码 | 结构定义 | 校验规则 | 示例 |
|---|---|---|---|---|---|---|
| fin_account_set | AccountSet | fiscal_calendar | FINANCE_CALENDAR | {periods:[{periodCode:string,startDate:string,endDate:string,status:string}], closeRule:object} | 期间不可重叠;关闭期间禁止新增凭证 | {"periods":[{"periodCode":"2026-06","status":"OPEN"}]} |
| fin_subject | FinanceSubject | assist_rule | FINANCE_ASSIST | {dimensions:[{code:string, required:boolean, refType:string}], values:object} | 辅助核算维度必须符合科目规则 | {"dimensions":[{"code":"CAMPUS","required":true,"refType":"campus"}]} |
| fin_voucher_entry | FinanceVoucherEntry | assist_payload | SUPERVISION_PAYLOAD | {bizType:string, contractNo:string, amount:number, student:object, attachments:number[]} | 报送字段必须满足教育局/监管账户配置的必填规则 | {"bizType":"CONTRACT","contractNo":"DNC20260628001","amount":6800} |
| exp_invoice | Invoice | ocr_result | INVOICE_OCR | {invoiceCode:string, invoiceNo:string, issueDate:string, amount:number, taxAmount:number, confidence:number, fields:object} | 低置信度字段必须进入人工校正 | {"invoiceNo":"12345678","amount":128.80,"confidence":0.96} |
| exp_invoice_verification | InvoiceVerification | official_payload | SUPERVISION_PAYLOAD | {bizType:string, contractNo:string, amount:number, student:object, attachments:number[]} | 报送字段必须满足教育局/监管账户配置的必填规则 | {"bizType":"CONTRACT","contractNo":"DNC20260628001","amount":6800} |
| exp_invoice_verification | InvoiceVerification | official_receipt | SUPERVISION_RECEIPT | {receiptNo:string, status:string, receivedAt:string, rawFileId?:number, errorCode?:string} | 回执不可覆盖,重报生成新版本 | {"receiptNo":"REG20260628001","status":"SUCCESS"} |
| tax_declaration | TaxReport | declaration_payload | SUPERVISION_PAYLOAD | {bizType:string, contractNo:string, amount:number, student:object, attachments:number[]} | 报送字段必须满足教育局/监管账户配置的必填规则 | {"bizType":"CONTRACT","contractNo":"DNC20260628001","amount":6800} |
状态/枚举标准字典
| 表名 | 对象 | 字段 | 枚举编码 | 取值 | 终态/流转规则 | 字段说明 |
|---|---|---|---|---|---|---|
| fin_account_set | AccountSet | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| fin_account_set | AccountSet | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| fin_account_set | AccountSet | enabled | ENABLED_STATUS | 0 停用、1 启用 | 非终态,可按状态机或字典规则流转 | 是否启用 |
| fin_subject | FinanceSubject | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| fin_subject | FinanceSubject | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| fin_subject | FinanceSubject | subject_type | SUBJECT_TYPE | 资产、负债、收入、成本、费用、权益 | 非终态,可按状态机或字典规则流转 | 资产/负债/收入/成本/费用/权益 |
| fin_subject | FinanceSubject | enabled | ENABLED_STATUS | 0 停用、1 启用 | 非终态,可按状态机或字典规则流转 | 是否启用 |
| fin_voucher | FinanceVoucher | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| fin_voucher | FinanceVoucher | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| fin_voucher | FinanceVoucher | source_biz_type | SOURCE_BIZ_TYPE | MARKETING_FORM 活动表单、LIVE_PUBLIC 公开课直播、CRM_IMPORT CRM导入、PARENT_REFERRAL 家长转介绍、SERVICE_TICKET 服务工单、PAYMENT 支付、DEVICE_EVENT 设备事件、MANUAL 手工录入 | 非终态,可按状态机或字典规则流转 | 来源业务类型 |
| fin_voucher | FinanceVoucher | voucher_status | VOUCHER_STATUS | DRAFT 草稿、PENDING_REVIEW 待审核、APPROVED 已审核、POSTED 已过账、REVERSED 已红冲 | 非终态,可按状态机或字典规则流转 | 草稿/待审核/已审核/已过账/已红冲 |
| fin_voucher | FinanceVoucher | approval_status | APPROVAL_STATUS | NOT_STARTED 未发起、PENDING 审批中、APPROVED 已通过、REJECTED 已驳回、REVOKED 已撤回 | 非终态,可按状态机或字典规则流转 | 审批状态,未发起为空 |
| fin_voucher_entry | FinanceVoucherEntry | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| fin_voucher_entry | FinanceVoucherEntry | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| exp_report | ExpenseReport | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| exp_report | ExpenseReport | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| exp_report | ExpenseReport | expense_type | EXPENSE_TYPE | 差旅、办公、采购、市场、其他 | 非终态,可按状态机或字典规则流转 | 差旅/办公/采购/市场/其他 |
| exp_report | ExpenseReport | expense_status | EXPENSE_STATUS | 草稿、待审批、待付款、已付款、已驳回 | 非终态,可按状态机或字典规则流转 | 草稿/待审批/待付款/已付款/已驳回 |
| exp_report | ExpenseReport | approval_status | APPROVAL_STATUS | NOT_STARTED 未发起、PENDING 审批中、APPROVED 已通过、REJECTED 已驳回、REVOKED 已撤回 | 非终态,可按状态机或字典规则流转 | 审批状态,未发起为空 |
| exp_invoice | Invoice | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| exp_invoice | Invoice | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| exp_invoice | Invoice | invoice_type | INVOICE_TYPE | 专票、普票、电子票、其他 | 非终态,可按状态机或字典规则流转 | 专票/普票/电子票/其他 |
| exp_invoice | Invoice | duplicate_status | DUPLICATE_STATUS | 未查重、重复、未重复 | 非终态,可按状态机或字典规则流转 | 未查重/重复/未重复 |
| exp_invoice_verification | InvoiceVerification | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| exp_invoice_verification | InvoiceVerification | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| exp_invoice_verification | InvoiceVerification | official_app_code | OFFICIAL_APP_CODE | 国税接口主体、编码配置 | 非终态,可按状态机或字典规则流转 | 国税接口主体/编码配置 |
| exp_invoice_verification | InvoiceVerification | verification_status | VERIFICATION_STATUS | 待核验、通过、不通过、异常、重试中 | 非终态,可按状态机或字典规则流转 | 待核验/通过/不通过/异常/重试中 |
| exp_payment_apply | ExpensePaymentApply | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| exp_payment_apply | ExpensePaymentApply | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| exp_payment_apply | ExpensePaymentApply | payment_status | PAYMENT_STATUS | PENDING 待支付/待付款、PROCESSING 处理中、SUCCESS 成功、FAILED 失败、CLOSED 已关闭 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 待付款/付款中/成功/失败 |
| tax_declaration | TaxReport | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| tax_declaration | TaxReport | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| tax_declaration | TaxReport | tax_type | TAX_TYPE | 增值税、所得税、附加税、其他 | 非终态,可按状态机或字典规则流转 | 增值税/所得税/附加税/其他 |
| tax_declaration | TaxReport | declaration_status | DECLARATION_STATUS | 草稿、待申报、已申报、失败 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 草稿/待申报/已申报/失败 |
敏感字段与数据安全策略
| 来源 | 表名 | 对象 | 字段 | 数据级别 | 脱敏/返回策略 | 明文查看条件 | 导出策略 | 审计要求 | 端侧展示规则 |
|---|---|---|---|---|---|---|---|---|---|
| 本模块对象 | fin_voucher | FinanceVoucher | voucher_no | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 本模块对象 | fin_voucher_entry | FinanceVoucherEntry | voucher_id | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 本模块对象 | fin_voucher_entry | FinanceVoucherEntry | assist_payload | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 本模块对象 | exp_invoice | Invoice | invoice_no | 普通 | TAX_INVOICE_MASK | 默认按税号/发票号局部脱敏;发票原图、OCR 结果和国税回执按财务权限查看 | 财务导出需审批并加水印;国税官方回执随业务单归档 | OCR、核验、查重、人工校正、导出和付款阻断均留痕 | 移动端可上传和查看本人报销结果,不展示其他人员票据明文 |
| 本模块对象 | exp_invoice | Invoice | invoice_code | 普通 | TAX_INVOICE_MASK | 默认按税号/发票号局部脱敏;发票原图、OCR 结果和国税回执按财务权限查看 | 财务导出需审批并加水印;国税官方回执随业务单归档 | OCR、核验、查重、人工校正、导出和付款阻断均留痕 | 移动端可上传和查看本人报销结果,不展示其他人员票据明文 |
| 本模块对象 | exp_invoice | Invoice | invoice_type | 普通 | TAX_INVOICE_MASK | 默认按税号/发票号局部脱敏;发票原图、OCR 结果和国税回执按财务权限查看 | 财务导出需审批并加水印;国税官方回执随业务单归档 | OCR、核验、查重、人工校正、导出和付款阻断均留痕 | 移动端可上传和查看本人报销结果,不展示其他人员票据明文 |
| 本模块对象 | exp_invoice | Invoice | seller_tax_no | 敏感 | TAX_INVOICE_MASK | 默认按税号/发票号局部脱敏;发票原图、OCR 结果和国税回执按财务权限查看 | 财务导出需审批并加水印;国税官方回执随业务单归档 | OCR、核验、查重、人工校正、导出和付款阻断均留痕 | 移动端可上传和查看本人报销结果,不展示其他人员票据明文 |
| 本模块对象 | exp_invoice | Invoice | buyer_tax_no | 敏感 | TAX_INVOICE_MASK | 默认按税号/发票号局部脱敏;发票原图、OCR 结果和国税回执按财务权限查看 | 财务导出需审批并加水印;国税官方回执随业务单归档 | OCR、核验、查重、人工校正、导出和付款阻断均留痕 | 移动端可上传和查看本人报销结果,不展示其他人员票据明文 |
| 本模块对象 | exp_invoice_verification | InvoiceVerification | invoice_id | 普通 | TAX_INVOICE_MASK | 默认按税号/发票号局部脱敏;发票原图、OCR 结果和国税回执按财务权限查看 | 财务导出需审批并加水印;国税官方回执随业务单归档 | OCR、核验、查重、人工校正、导出和付款阻断均留痕 | 移动端可上传和查看本人报销结果,不展示其他人员票据明文 |
| 本模块对象 | exp_invoice_verification | InvoiceVerification | official_payload | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 本模块对象 | exp_payment_apply | ExpensePaymentApply | payee_account | 敏感 | BANK_ACCOUNT_MASK | 默认展示后 4 位;付款、报销、工资发放场景按岗位权限展示 | 导出银行账号必须走财务/安全双审批 | 查看、变更、付款使用、导出均记录业务单号和操作者 | 财务 PC 可按权限明文;员工端和移动端默认脱敏 |
| 本模块对象 | tax_declaration | TaxReport | declaration_payload | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | sys_user | User/Employee | mobile | 敏感 | MOBILE_MASK | 默认展示 138****0000;明文查看需字段权限或敏感字段查看审批 | 导出手机号必须触发导出审批、下载水印和有效期控制 | 明文查看、复制、导出和批量下载均写入 SensitiveAccessLog | PC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息 |
| 引用对象 | sys_user | User/Employee | password_hash | 高敏 | NEVER_RETURN | 禁止接口返回明文;仅密钥中心/鉴权服务按服务身份读取密钥引用 | 禁止导出;配置导出只允许导出脱敏引用和启停状态 | 配置新增、修改、启停、轮换和失败读取均记录安全审计 | 前端只展示已配置/未配置、到期时间和连通性状态,不展示密钥值 |
| 引用对象 | int_integration_log | IntegrationLog | request_payload | 敏感 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | int_integration_log | IntegrationLog | response_payload | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | sec_sensitive_field_policy | SensitiveFieldPolicy | mask_rule | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | sys_legal_entity | LegalEntity | taxpayer_no | 敏感 | TAX_INVOICE_MASK | 默认按税号/发票号局部脱敏;发票原图、OCR 结果和国税回执按财务权限查看 | 财务导出需审批并加水印;国税官方回执随业务单归档 | OCR、核验、查重、人工校正、导出和付款阻断均留痕 | 移动端可上传和查看本人报销结果,不展示其他人员票据明文 |
| 引用对象 | sys_legal_entity | LegalEntity | bank_account_no | 敏感 | BANK_ACCOUNT_MASK | 默认展示后 4 位;付款、报销、工资发放场景按岗位权限展示 | 导出银行账号必须走财务/安全双审批 | 查看、变更、付款使用、导出均记录业务单号和操作者 | 财务 PC 可按权限明文;员工端和移动端默认脱敏 |
| 引用对象 | sys_legal_entity | LegalEntity | invoice_rule | 普通 | TAX_INVOICE_MASK | 默认按税号/发票号局部脱敏;发票原图、OCR 结果和国税回执按财务权限查看 | 财务导出需审批并加水印;国税官方回执随业务单归档 | OCR、核验、查重、人工校正、导出和付款阻断均留痕 | 移动端可上传和查看本人报销结果,不展示其他人员票据明文 |
| 引用对象 | con_contract | Contract | tax_amount | 普通 | TAX_INVOICE_MASK | 默认按税号/发票号局部脱敏;发票原图、OCR 结果和国税回执按财务权限查看 | 财务导出需审批并加水印;国税官方回执随业务单归档 | OCR、核验、查重、人工校正、导出和付款阻断均留痕 | 移动端可上传和查看本人报销结果,不展示其他人员票据明文 |
| 引用对象 | ord_payment | Payment | pay_channel | 普通 | BANK_ACCOUNT_MASK | 默认展示后 4 位;付款、报销、工资发放场景按岗位权限展示 | 导出银行账号必须走财务/安全双审批 | 查看、变更、付款使用、导出均记录业务单号和操作者 | 财务 PC 可按权限明文;员工端和移动端默认脱敏 |
| 引用对象 | hr_payslip | PayrollPayslip | payslip_no | 普通 | PAYROLL_MASK | 默认仅本人和授权人力/财务可见;社保、公积金字段按后台开关展示 | 工资条批量导出必须走高敏审批并限制下载次数 | 发布、撤回、重发、查看、确认、异议、导出全链路审计 | 教师/员工端仅查看本人电子工资条;PC 按岗位与审批展示 |
| 引用对象 | hr_payslip | PayrollPayslip | gross_salary | 普通 | PAYROLL_MASK | 默认仅本人和授权人力/财务可见;社保、公积金字段按后台开关展示 | 工资条批量导出必须走高敏审批并限制下载次数 | 发布、撤回、重发、查看、确认、异议、导出全链路审计 | 教师/员工端仅查看本人电子工资条;PC 按岗位与审批展示 |
| 引用对象 | hr_payslip | PayrollPayslip | net_salary | 普通 | PAYROLL_MASK | 默认仅本人和授权人力/财务可见;社保、公积金字段按后台开关展示 | 工资条批量导出必须走高敏审批并限制下载次数 | 发布、撤回、重发、查看、确认、异议、导出全链路审计 | 教师/员工端仅查看本人电子工资条;PC 按岗位与审批展示 |
核心数据表完整字段
| 表名 | 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|---|
| fin_account_set | AccountSet | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| fin_account_set | AccountSet | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| fin_account_set | AccountSet | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| fin_account_set | AccountSet | campus_id | BIGINT | 是 | 所属校区,跨校区或总部级数据为空;本表业务要求必填 | 普通 |
| fin_account_set | AccountSet | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| fin_account_set | AccountSet | created_at | DATETIME | 是 | 创建时间 | 普通 |
| fin_account_set | AccountSet | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| fin_account_set | AccountSet | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| fin_account_set | AccountSet | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| fin_account_set | AccountSet | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| fin_account_set | AccountSet | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| fin_account_set | AccountSet | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| fin_account_set | AccountSet | account_set_code | VARCHAR(64) | 是 | 账套编码,唯一 | 普通 |
| fin_account_set | AccountSet | account_set_name | VARCHAR(128) | 是 | 账套名称 | 普通 |
| fin_account_set | AccountSet | fiscal_calendar | JSON | 是 | 会计期间配置 | 普通 |
| fin_account_set | AccountSet | tax_subject_id | BIGINT | 是 | 税务主体 ID | 普通 |
| fin_account_set | AccountSet | enabled | TINYINT | 是 | 是否启用 | 普通 |
| fin_subject | FinanceSubject | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| fin_subject | FinanceSubject | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| fin_subject | FinanceSubject | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| fin_subject | FinanceSubject | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| fin_subject | FinanceSubject | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| fin_subject | FinanceSubject | created_at | DATETIME | 是 | 创建时间 | 普通 |
| fin_subject | FinanceSubject | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| fin_subject | FinanceSubject | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| fin_subject | FinanceSubject | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| fin_subject | FinanceSubject | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| fin_subject | FinanceSubject | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| fin_subject | FinanceSubject | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| fin_subject | FinanceSubject | account_set_id | BIGINT | 是 | 账套 ID | 普通 |
| fin_subject | FinanceSubject | subject_code | VARCHAR(64) | 是 | 科目编码 | 普通 |
| fin_subject | FinanceSubject | subject_name | VARCHAR(128) | 是 | 科目名称 | 普通 |
| fin_subject | FinanceSubject | subject_type | VARCHAR(32) | 是 | 资产/负债/收入/成本/费用/权益 | 普通 |
| fin_subject | FinanceSubject | assist_rule | JSON | 否 | 辅助核算规则 | 普通 |
| fin_subject | FinanceSubject | enabled | TINYINT | 是 | 是否启用 | 普通 |
| fin_voucher | FinanceVoucher | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| fin_voucher | FinanceVoucher | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| fin_voucher | FinanceVoucher | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| fin_voucher | FinanceVoucher | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| fin_voucher | FinanceVoucher | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| fin_voucher | FinanceVoucher | created_at | DATETIME | 是 | 创建时间 | 普通 |
| fin_voucher | FinanceVoucher | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| fin_voucher | FinanceVoucher | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| fin_voucher | FinanceVoucher | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| fin_voucher | FinanceVoucher | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| fin_voucher | FinanceVoucher | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| fin_voucher | FinanceVoucher | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| fin_voucher | FinanceVoucher | voucher_no | VARCHAR(64) | 是 | 凭证编号,账套期间内唯一 | 普通 |
| fin_voucher | FinanceVoucher | account_set_id | BIGINT | 是 | 账套 ID | 普通 |
| fin_voucher | FinanceVoucher | period_code | VARCHAR(32) | 是 | 会计期间 | 普通 |
| fin_voucher | FinanceVoucher | source_biz_type | VARCHAR(64) | 否 | 来源业务类型 | 普通 |
| fin_voucher | FinanceVoucher | source_biz_no | VARCHAR(64) | 否 | 来源业务编号 | 普通 |
| fin_voucher | FinanceVoucher | voucher_status | VARCHAR(32) | 是 | 草稿/待审核/已审核/已过账/已红冲 | 普通 |
| fin_voucher | FinanceVoucher | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| fin_voucher | FinanceVoucher | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | created_at | DATETIME | 是 | 创建时间 | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | voucher_id | BIGINT | 是 | 凭证 ID | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | entry_no | INT | 是 | 分录行号 | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | subject_id | BIGINT | 是 | 会计科目 ID | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | assist_payload | JSON | 否 | 辅助核算信息 | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | debit_amount | DECIMAL(18,2) | 是 | 借方金额 | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | credit_amount | DECIMAL(18,2) | 是 | 贷方金额 | 普通 |
| fin_voucher_entry | FinanceVoucherEntry | summary | VARCHAR(255) | 是 | 摘要 | 普通 |
| exp_report | ExpenseReport | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| exp_report | ExpenseReport | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| exp_report | ExpenseReport | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| exp_report | ExpenseReport | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| exp_report | ExpenseReport | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| exp_report | ExpenseReport | created_at | DATETIME | 是 | 创建时间 | 普通 |
| exp_report | ExpenseReport | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| exp_report | ExpenseReport | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| exp_report | ExpenseReport | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| exp_report | ExpenseReport | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| exp_report | ExpenseReport | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| exp_report | ExpenseReport | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| exp_report | ExpenseReport | expense_no | VARCHAR(64) | 是 | 报销单编号,唯一 | 普通 |
| exp_report | ExpenseReport | applicant_id | BIGINT | 是 | 申请人 ID | 普通 |
| exp_report | ExpenseReport | expense_type | VARCHAR(32) | 是 | 差旅/办公/采购/市场/其他 | 普通 |
| exp_report | ExpenseReport | total_amount | DECIMAL(18,2) | 是 | 报销总额 | 普通 |
| exp_report | ExpenseReport | expense_status | VARCHAR(32) | 是 | 草稿/待审批/待付款/已付款/已驳回 | 普通 |
| exp_report | ExpenseReport | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| exp_report | ExpenseReport | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| exp_invoice | Invoice | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| exp_invoice | Invoice | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| exp_invoice | Invoice | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| exp_invoice | Invoice | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| exp_invoice | Invoice | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| exp_invoice | Invoice | created_at | DATETIME | 是 | 创建时间 | 普通 |
| exp_invoice | Invoice | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| exp_invoice | Invoice | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| exp_invoice | Invoice | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| exp_invoice | Invoice | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| exp_invoice | Invoice | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| exp_invoice | Invoice | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| exp_invoice | Invoice | invoice_no | VARCHAR(64) | 是 | 发票号码 | 普通 |
| exp_invoice | Invoice | invoice_code | VARCHAR(64) | 否 | 发票代码 | 普通 |
| exp_invoice | Invoice | invoice_type | VARCHAR(32) | 是 | 专票/普票/电子票/其他 | 普通 |
| exp_invoice | Invoice | seller_tax_no | VARCHAR(64) | 否 | 销售方税号 | 敏感 |
| exp_invoice | Invoice | buyer_tax_no | VARCHAR(64) | 否 | 购买方税号 | 敏感 |
| exp_invoice | Invoice | ocr_result | JSON | 否 | OCR 识别结果 | 普通 |
| exp_invoice | Invoice | duplicate_status | VARCHAR(32) | 是 | 未查重/重复/未重复 | 普通 |
| exp_invoice_verification | InvoiceVerification | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| exp_invoice_verification | InvoiceVerification | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| exp_invoice_verification | InvoiceVerification | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| exp_invoice_verification | InvoiceVerification | campus_id | BIGINT | 是 | 所属校区,跨校区或总部级数据为空;本表业务要求必填 | 普通 |
| exp_invoice_verification | InvoiceVerification | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| exp_invoice_verification | InvoiceVerification | created_at | DATETIME | 是 | 创建时间 | 普通 |
| exp_invoice_verification | InvoiceVerification | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| exp_invoice_verification | InvoiceVerification | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| exp_invoice_verification | InvoiceVerification | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| exp_invoice_verification | InvoiceVerification | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| exp_invoice_verification | InvoiceVerification | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| exp_invoice_verification | InvoiceVerification | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| exp_invoice_verification | InvoiceVerification | verification_no | VARCHAR(64) | 是 | 核验编号,唯一 | 普通 |
| exp_invoice_verification | InvoiceVerification | tax_subject_id | BIGINT | 是 | 税务主体配置 ID | 普通 |
| exp_invoice_verification | InvoiceVerification | official_app_code | VARCHAR(128) | 是 | 国税接口主体/编码配置 | 普通 |
| exp_invoice_verification | InvoiceVerification | invoice_id | BIGINT | 是 | 发票 ID | 普通 |
| exp_invoice_verification | InvoiceVerification | official_payload | JSON | 是 | 官方请求参数 | 普通 |
| exp_invoice_verification | InvoiceVerification | official_receipt | JSON | 否 | 官方核验回执 | 普通 |
| exp_invoice_verification | InvoiceVerification | verification_status | VARCHAR(32) | 是 | 待核验/通过/不通过/异常/重试中 | 普通 |
| exp_payment_apply | ExpensePaymentApply | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| exp_payment_apply | ExpensePaymentApply | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| exp_payment_apply | ExpensePaymentApply | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| exp_payment_apply | ExpensePaymentApply | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| exp_payment_apply | ExpensePaymentApply | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| exp_payment_apply | ExpensePaymentApply | created_at | DATETIME | 是 | 创建时间 | 普通 |
| exp_payment_apply | ExpensePaymentApply | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| exp_payment_apply | ExpensePaymentApply | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| exp_payment_apply | ExpensePaymentApply | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| exp_payment_apply | ExpensePaymentApply | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| exp_payment_apply | ExpensePaymentApply | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| exp_payment_apply | ExpensePaymentApply | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| exp_payment_apply | ExpensePaymentApply | payment_apply_no | VARCHAR(64) | 是 | 付款申请编号,唯一 | 普通 |
| exp_payment_apply | ExpensePaymentApply | expense_report_id | BIGINT | 是 | 报销单 ID | 普通 |
| exp_payment_apply | ExpensePaymentApply | payee_id | BIGINT | 是 | 收款人 ID | 普通 |
| exp_payment_apply | ExpensePaymentApply | payee_account | VARCHAR(128) | 是 | 收款账号,敏感 | 敏感 |
| exp_payment_apply | ExpensePaymentApply | pay_amount | DECIMAL(18,2) | 是 | 付款金额 | 普通 |
| exp_payment_apply | ExpensePaymentApply | payment_status | VARCHAR(32) | 是 | 待付款/付款中/成功/失败 | 普通 |
| tax_declaration | TaxReport | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| tax_declaration | TaxReport | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| tax_declaration | TaxReport | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| tax_declaration | TaxReport | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| tax_declaration | TaxReport | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| tax_declaration | TaxReport | created_at | DATETIME | 是 | 创建时间 | 普通 |
| tax_declaration | TaxReport | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| tax_declaration | TaxReport | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| tax_declaration | TaxReport | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| tax_declaration | TaxReport | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| tax_declaration | TaxReport | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| tax_declaration | TaxReport | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| tax_declaration | TaxReport | declaration_no | VARCHAR(64) | 是 | 申报编号,唯一 | 普通 |
| tax_declaration | TaxReport | account_set_id | BIGINT | 是 | 账套 ID | 普通 |
| tax_declaration | TaxReport | tax_period | VARCHAR(32) | 是 | 税期 | 普通 |
| tax_declaration | TaxReport | tax_type | VARCHAR(32) | 是 | 增值税/所得税/附加税/其他 | 普通 |
| tax_declaration | TaxReport | declaration_payload | JSON | 是 | 申报资料 | 普通 |
| tax_declaration | TaxReport | declaration_status | VARCHAR(32) | 是 | 草稿/待申报/已申报/失败 | 普通 |
数据表与对象映射
| 表名 | 对象 | 用途 | 完整字段 | 索引建议 |
|---|---|---|---|---|
| fin_account_set | AccountSet | 每校区独立账套 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT,必填)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、account_set_code(VARCHAR(64),必填)、account_set_name(VARCHAR(128),必填)、fiscal_calendar(JSON,必填)、tax_subject_id(BIGINT,必填)、enabled(TINYINT,必填) | uk_account_set_code、uk_campus |
| fin_subject | FinanceSubject | 会计科目和辅助核算 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、account_set_id(BIGINT,必填)、subject_code(VARCHAR(64),必填)、subject_name(VARCHAR(128),必填)、subject_type(VARCHAR(32),必填)、assist_rule(JSON)、enabled(TINYINT,必填) | uk_set_subject、idx_type_enabled |
| fin_voucher | FinanceVoucher | 会计凭证 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、voucher_no(VARCHAR(64),必填)、account_set_id(BIGINT,必填)、period_code(VARCHAR(32),必填)、source_biz_type(VARCHAR(64))、source_biz_no(VARCHAR(64))、voucher_status(VARCHAR(32),必填)、approval_status(VARCHAR(32))、approval_instance_id(BIGINT) | uk_set_period_voucher、idx_source、idx_status |
| fin_voucher_entry | FinanceVoucherEntry | 凭证明细分录 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、voucher_id(BIGINT,必填)、entry_no(INT,必填)、subject_id(BIGINT,必填)、assist_payload(JSON)、debit_amount(DECIMAL(18,2),必填)、credit_amount(DECIMAL(18,2),必填)、summary(VARCHAR(255),必填) | uk_voucher_entry、idx_subject |
| exp_report | ExpenseReport | 合思式报销单 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、expense_no(VARCHAR(64),必填)、applicant_id(BIGINT,必填)、expense_type(VARCHAR(32),必填)、total_amount(DECIMAL(18,2),必填)、expense_status(VARCHAR(32),必填)、approval_status(VARCHAR(32))、approval_instance_id(BIGINT) | uk_expense_no、idx_applicant_status |
| exp_invoice | Invoice | 报销发票与 OCR 结果 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、invoice_no(VARCHAR(64),必填)、invoice_code(VARCHAR(64))、invoice_type(VARCHAR(32),必填)、seller_tax_no(VARCHAR(64))、buyer_tax_no(VARCHAR(64))、ocr_result(JSON)、duplicate_status(VARCHAR(32),必填) | idx_invoice_no、idx_duplicate |
| exp_invoice_verification | InvoiceVerification | 国税官方发票核验 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT,必填)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、verification_no(VARCHAR(64),必填)、tax_subject_id(BIGINT,必填)、official_app_code(VARCHAR(128),必填)、invoice_id(BIGINT,必填)、official_payload(JSON,必填)、official_receipt(JSON)、verification_status(VARCHAR(32),必填) | uk_verification_no、idx_invoice_status |
| exp_payment_apply | ExpensePaymentApply | 报销付款申请 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、payment_apply_no(VARCHAR(64),必填)、expense_report_id(BIGINT,必填)、payee_id(BIGINT,必填)、payee_account(VARCHAR(128),必填)、pay_amount(DECIMAL(18,2),必填)、payment_status(VARCHAR(32),必填) | uk_payment_apply_no、idx_report_status |
| tax_declaration | TaxReport | 纳税申报资料和报表 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、declaration_no(VARCHAR(64),必填)、account_set_id(BIGINT,必填)、tax_period(VARCHAR(32),必填)、tax_type(VARCHAR(32),必填)、declaration_payload(JSON,必填)、declaration_status(VARCHAR(32),必填) | uk_set_period_tax、idx_status |
12 · 状态机与业务规则
约束业务对象如何流转、何时可编辑、何时触发审批
原型需要把状态标签、可操作按钮和禁用原因展示清楚。| 对象 | 状态 | 触发与说明 |
|---|---|---|
| 合同 | 草稿 -> 待审批 -> 待签署 -> 已签署 -> 已备案 -> 已收款 -> 履约中 -> 已结课 -> 已退费 -> 已作废 | 优惠审批、电子签、监管备案、收款、课消、退费 |
| 课次 | 未开始 -> 待签到 -> 已签到 -> 已课消 -> 请假 -> 补课 -> 旷课 -> 异常待确认 | 排课发布、签到、课消、请假、补课和人工确认 |
| 监管报送 | 待生成 -> 待报送 -> 报送中 -> 成功 -> 失败 -> 待重报 -> 人工处理 | 合同备案、收款、课消、退费报送与回执 |
| 退费单 | 草稿 -> 待学管确认 -> 待校长审批 -> 待财务复核 -> 监管退款中 -> 已退款 -> 已驳回 -> 已取消 | 退费测算、审批、退款回执和凭证冲销 |
| 报销单 | 草稿 -> 待 OCR -> 待核验 -> 待审批 -> 已通过 -> 待付款 -> 已付款 -> 已驳回 -> 已作废 | 员工填单、票据识别、发票核验、查重、审批、付款归档 |
| 账套期间 | 未开启 -> 记账中 -> 待结账 -> 已结账 -> 反结账中 -> 已锁定 | 凭证录入、审核、过账、结账、反结账和总部复核 |
| 物料库存 | 待入库 -> 在库 -> 已锁定 -> 已出库 -> 调拨中 -> 盘点中 -> 已报废 | 采购入库、领用、兑换锁库、调拨、盘点、报废 |
| 积分兑换 | 待锁库 -> 已锁库 -> 待核销 -> 已核销 -> 已取消 -> 已退回 | 学员兑换、库存锁定、前台核销、出库、取消和积分退回 |
| 工单 | 新建 -> 已分派 -> 处理中 -> 待家长确认 -> 已关闭 -> 已升级 -> 已驳回 | 投诉建议、服务请求、教学反馈和退费咨询 |
| 活动页面模板 | 草稿 -> 待审核 -> 已上架 -> 已驳回 -> 已下架 -> 已归档 | 模板创建、转模板提交、审核、上架、下架、归档和复用 |
| 请假补课 | 草稿 -> 待审批 -> 已同意 -> 已驳回 -> 已取消 -> 补课待安排 -> 补课待确认 -> 补课已预约 -> 已补课 -> 已关闭 | 家长请假、教务审批、课消冻结或回滚、补课安排、家长确认和补课完成 |
| 积分兑换售后 | 待处理 -> 积分退回中 -> 库存释放中 -> 已完成 -> 失败待人工 -> 已关闭 | 兑换取消、过期未核销、核销撤销和库存回滚 |
| 采购对账付款 | 询价中 -> 待审批 -> 待下单 -> 待入库 -> 入库差异 -> 待对账 -> 对账不平 -> 待付款 -> 已付款 -> 已退货 -> 已关闭 | 采购申请、入库、对账、付款、退货和凭证归档 |
| 电子工资条 | 待生成 -> 待审核 -> 待发布 -> 已发布 -> 员工已查看 -> 异议中 -> 已确认 -> 已归档 | 薪资核算、审批、发布、员工查看确认、异议处理和归档 |
| 人脸授权撤回 | 已提交 -> 家长已确认 -> 设备删除中 -> 部分失败 -> 已删除 -> 人工处理 -> 已关闭 | 家长撤回、人脸模板删除任务、设备回执、失败重试和审计 |
| 补课改期取消 | 已确认 -> 改期申请中 -> 取消申请中 -> 教务处理中 -> 已重新安排 -> 已拒绝 -> 已关闭 -> 待冲正 -> 已冲正 | 家长发起改期或取消,教务处理候选课次和课消冲正,最终回到补课安排或关闭 |
| 回放补传替换 | 录制失败 -> 待补传 -> 审核中 -> 已发布 -> 替换中 -> 已替换 -> 已通知 -> 已驳回 -> 已下架 | 录制失败或回放损坏后人工补传、审核、版本替换、通知和学习记录处理 |
| 积分实物售后 | 已领取 -> 售后申请中 -> 待返库 -> 待换新 -> 待报损 -> 积分返还中 -> 已完成 -> 已拒绝 | 礼品领取后退换货、坏损、返库报损、积分返还和库存流水处理 |
| 库存成本策略 | 草稿 -> 待审核 -> 已启用 -> 已停用 -> 待重算 -> 重算中 -> 已归档 | 成本计价规则配置、审批、生效、停用和历史成本处理 |
| 督课评分规则版本 | 草稿 -> 待审核 -> 已发布 -> 已生效 -> 已停用 -> 已归档 | 评分维度、权重和生效范围配置后审批发布,历史评分按版本追溯 |
| 工资条撤回重发 | 已发布 -> 撤回中 -> 已撤回 -> 重发待审核 -> 已重发 -> 待重新确认 -> 已确认 -> 已归档 | 工资条发布错误后撤回、重发、员工重新确认和版本留痕 |
| 国税核验配置 | 草稿 -> 启用中 -> 频控中 -> 异常 -> 已停用 -> 已过期 | 校区税务主体、官方接口凭证、额度、启用状态和调用日志 |
| 线索客户合并仲裁 | 待识别 -> 撞单待处理 -> 合并中 -> 仲裁中 -> 已合并 -> 已裁定 -> 误合并恢复中 | 线索撞单、客户合并、归属争议仲裁和恢复 |
| 付款失败补偿 | 付款失败 -> 待重试 -> 重试中 -> 换账户中 -> 撤销审批中 -> 线下付款登记 -> 已补偿 -> 人工关闭 | 报销、采购、退款、工资付款失败后的统一补偿 |
| 教师端工作台任务 | 待处理 -> 处理中 -> 已完成 -> 已驳回 -> 已超时 -> 已取消 | 课程、批改、审批、培训、报销、工资条和直播任务统一进入工作台待办,并按业务模块回写处理状态。 |
财务业财中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
财务业财中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
财务业财中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
财务业财中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
财务业财中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
财务业财中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
13 · 权限、审批与消息
动作权限、数据范围、审批触发和消息触达必须闭环
权限需要覆盖菜单、按钮、字段、接口和导出。动作权限
- 收款对账:需映射菜单、按钮、接口和字段权限
- 监管报送:需映射菜单、按钮、接口和字段权限
- 报销核验:需映射菜单、按钮、接口和字段权限
- 付款台账:需映射菜单、按钮、接口和字段权限
- 付款重试:需映射菜单、按钮、接口和字段权限
- 凭证记账:需映射菜单、按钮、接口和字段权限
- 税务申报:需映射菜单、按钮、接口和字段权限
- 账套结账:需映射菜单、按钮、接口和字段权限
数据范围
- 总部全量
- 区域辖区
- 校区本地
- 部门/岗位
- 本人负责
- 授权班级/学员
审批配置
| 审批名称 | 触发条件 | 流程 | 结果 | 留痕 |
|---|---|---|---|---|
| 合同优惠审批 | 折扣低于总部配置阈值或赠课超过上限 | 顾问提交 -> 销售主管 -> 校长 -> 财务抄送 | 通过后合同可签署,驳回后返回报价草稿 | 保留优惠前后金额和审批意见 |
| 退费审批 | 任意退费或转课产生金额冲减 | 学管师确认 -> 校长审批 -> 财务复核 | 通过后进入监管退款,驳回后关闭退费单 | 保留测算明细、附件和退款回执 |
| 报销审批 | 员工提交费用报销或发票查重命中风险 | 员工提交 -> 部门主管 -> 校长/预算负责人 -> 财务复核 | 通过后进入付款,驳回后返回报销人修改 | 保留票据影像、OCR 结果、核验结果、查重结果和审批意见 |
| 账套反结账审批 | 已结账期间需要反结账或更正税务资料 | 校区财务提交 -> 总部财务复核 -> 财务负责人终审 | 通过后解锁期间并记录调整原因 | 保留反结账前后凭证、税表和审批说明 |
| 物料采购审批 | 采购金额超过阈值、跨校区采购或固定资产采购 | 申请人 -> 校区负责人 -> 采购/财务 -> 总部审批 | 通过后生成采购订单和到货验收任务 | 保留预算、供应商、报价和采购合同附件 |
| 合同作废审批 | 已签署或已收款合同作废 | 顾问提交 -> 校长 -> 财务 | 合同作废并回滚相关权益 | 保留作废原因和关联订单 |
| 课消撤销审批 | 已确认收入的课消记录撤销 | 教务提交 -> 校长 -> 财务 | 撤销课消、恢复课时、冲回收入 | 记录原课次和撤销原因 |
| 人脸授权撤回处理 | 家长撤回人脸授权 | 家长提交 -> 系统确认 -> 设备管理员执行 | 停止识别并下发删除任务 | 保留撤回凭证和删除结果 |
消息模板
| 消息 | 接收人 | 触发 | 渠道 | 变量 |
|---|---|---|---|---|
| 收款成功通知 | 家长/顾问/财务 | 支付成功 | 小程序、站内信 | 订单金额、课程、支付时间 |
| 报销审批提醒 | 审批人/财务 | 报销单提交、超时或驳回后重提 | 站内信、App、企微 | 报销人、费用类型、金额、票据风险、审批入口 |
| 发票重复预警 | 报销人/财务 | 发票查重命中疑似重复 | 站内信、App | 发票号码、金额、历史报销单、风险等级 |
| 库存预警 | 库管/校区负责人 | 物料或礼品低于安全库存 | 站内信、App、企微 | SKU、校区、当前库存、安全库存、补货建议 |
| 签到异常提醒 | 教务/前台 | 识别未匹配或低置信度 | 站内信、App | 设备、时间、候选学员、置信度 |
| 课消提醒 | 家长 | 正式课消完成 | 小程序、App | 课程名称、消课课时、剩余课时 |
| 退费审批提醒 | 校长/财务 | 退费单提交 | 站内信、App | 合同编号、测算金额、申请原因 |
| 活动模板审核通知 | 模板创建人/区域市场/总部品牌 | 自建页面转模板提交、审核通过、审核驳回 | 站内信、企微、App | 模板名称、提交人、审核状态、驳回原因、处理入口 |
14 · 接口与技术细节
接口需支持幂等、权限、审计、重试和回执
每个写接口必须有 requestId 或业务幂等键,外部回调必须验签和去重。| 接口 | 方法 | 方向 | 请求字段 | 响应字段 | 幂等/权限 |
|---|---|---|---|---|---|
| /api/v1/expenses/invoices/ocr | POST | PC Web/移动端到内置票据 OCR 服务 | fileId, employeeId, expenseType | invoiceCode, amount, taxNo, ocrConfidence | fileHash 查重 |
| /api/v1/tax/invoices/verify | POST | 平台到国税官方发票核验接口 | campusId, taxSubjectId, invoiceCode, invoiceNo, amount, taxNo | verifyStatus, duplicateResult, riskTips | 校区税务主体配置 + 发票代码 + 号码唯一 |
| /api/v1/account-sets | POST/GET | PC Web 到财务 | campusId, fiscalCalendar, subjectTemplate | accountSetId, currentPeriod, status | 每校区单账套唯一 |
| /api/v1/finance/payment-ledgers | POST/GET | PC Web 到财务 | sourceBizType, sourceBizNo, payeeInfo, amount, accountSetId, requestId | paymentLedgerId, paymentStatus, voucherStatus | sourceBizNo 幂等 |
| /api/v1/finance/vouchers | POST | 业务到总账 | sourceBizType, sourceBizNo, entries, requestId | voucherId, voucherNo, postStatus | 来源单号幂等 |
| /api/v1/regulator/consumptions | POST | 平台到监管 | lessonId, contractNo, consumedHours, amount | reportBatchNo, reportStatus | lessonId + contractNo 去重 |
前端约束
- 统一登录态和租户校区上下文
- 列表分页、筛选、排序、列显隐
- 表单本地校验与服务端错误映射
- 移动/平板/TV 按终端适配交互
后端约束
- 领域服务封装业务规则
- 写操作事务一致性
- 关键操作审计快照
- 异步任务失败重试和告警
集成约束
- 第三方接口统一走开放集成中心
- 回执文件归档
- 接口日志可按业务单号追踪
- 密钥和回调地址按环境隔离
15 · 数据库与存储设计
核心表建议、关键字段和索引方向
详细 DDL 已在平台技术设计文档中统一展开,本处保留模块核心表、关键字段和索引方向。| 表名 | 用途 | 核心字段 | 索引建议 |
|---|---|---|---|
| fin_account_set | 每校区独立账套 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、account_set_code、account_set_name、fiscal_calendar、tax_subject_id、enabled | uk_account_set_code、uk_campus |
| fin_subject | 会计科目和辅助核算 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、account_set_id、subject_code、subject_name、subject_type、assist_rule、enabled | uk_set_subject、idx_type_enabled |
| fin_voucher | 会计凭证 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、voucher_no、account_set_id、period_code、source_biz_type、source_biz_no、voucher_status、approval_status、approval_instance_id | uk_set_period_voucher、idx_source、idx_status |
| fin_voucher_entry | 凭证明细分录 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、voucher_id、entry_no、subject_id、assist_payload、debit_amount、credit_amount、summary | uk_voucher_entry、idx_subject |
| exp_report | 合思式报销单 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、expense_no、applicant_id、expense_type、total_amount、expense_status、approval_status、approval_instance_id | uk_expense_no、idx_applicant_status |
| exp_invoice | 报销发票与 OCR 结果 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、invoice_no、invoice_code、invoice_type、seller_tax_no、buyer_tax_no、ocr_result、duplicate_status | idx_invoice_no、idx_duplicate |
| exp_invoice_verification | 国税官方发票核验 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、verification_no、tax_subject_id、official_app_code、invoice_id、official_payload、official_receipt、verification_status | uk_verification_no、idx_invoice_status |
| exp_payment_apply | 报销付款申请 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、payment_apply_no、expense_report_id、payee_id、payee_account、pay_amount、payment_status | uk_payment_apply_no、idx_report_status |
| tax_declaration | 纳税申报资料和报表 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、declaration_no、account_set_id、tax_period、tax_type、declaration_payload、declaration_status | uk_set_period_tax、idx_status |
DDL 草案
fin_account_setAccountSet
CREATE TABLE `fin_account_set` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NOT NULL COMMENT '所属校区,跨校区或总部级数据为空;本表业务要求必填;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`account_set_code` VARCHAR(64) NOT NULL COMMENT '账套编码,唯一;数据级别:普通',
`account_set_name` VARCHAR(128) NOT NULL COMMENT '账套名称;数据级别:普通',
`fiscal_calendar` JSON NOT NULL COMMENT '会计期间配置;数据级别:普通',
`tax_subject_id` BIGINT NOT NULL COMMENT '税务主体 ID;数据级别:普通',
`enabled` TINYINT NOT NULL COMMENT '是否启用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_account_set_code` (`account_set_code`),
UNIQUE KEY `uk_campus` (`campus_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AccountSet:每校区独立账套';
fin_subjectFinanceSubject
CREATE TABLE `fin_subject` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`account_set_id` BIGINT NOT NULL COMMENT '账套 ID;数据级别:普通',
`subject_code` VARCHAR(64) NOT NULL COMMENT '科目编码;数据级别:普通',
`subject_name` VARCHAR(128) NOT NULL COMMENT '科目名称;数据级别:普通',
`subject_type` VARCHAR(32) NOT NULL COMMENT '资产/负债/收入/成本/费用/权益;数据级别:普通',
`assist_rule` JSON NULL COMMENT '辅助核算规则;数据级别:普通',
`enabled` TINYINT NOT NULL COMMENT '是否启用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_set_subject` (`account_set_id`, `subject_code`),
KEY `idx_type_enabled` (`subject_type`, `enabled`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='FinanceSubject:会计科目和辅助核算';
fin_voucherFinanceVoucher
CREATE TABLE `fin_voucher` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`voucher_no` VARCHAR(64) NOT NULL COMMENT '凭证编号,账套期间内唯一;数据级别:普通',
`account_set_id` BIGINT NOT NULL COMMENT '账套 ID;数据级别:普通',
`period_code` VARCHAR(32) NOT NULL COMMENT '会计期间;数据级别:普通',
`source_biz_type` VARCHAR(64) NULL COMMENT '来源业务类型;数据级别:普通',
`source_biz_no` VARCHAR(64) NULL COMMENT '来源业务编号;数据级别:普通',
`voucher_status` VARCHAR(32) NOT NULL COMMENT '草稿/待审核/已审核/已过账/已红冲;数据级别:普通',
`approval_status` VARCHAR(32) NULL COMMENT '审批状态,未发起为空;数据级别:普通',
`approval_instance_id` BIGINT NULL COMMENT '关联审批实例 ID;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_set_period_voucher` (`account_set_id`, `period_code`, `voucher_no`),
KEY `idx_source` (`source_biz_type`),
KEY `idx_status` (`voucher_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='FinanceVoucher:会计凭证';
fin_voucher_entryFinanceVoucherEntry
CREATE TABLE `fin_voucher_entry` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`voucher_id` BIGINT NOT NULL COMMENT '凭证 ID;数据级别:普通',
`entry_no` INT NOT NULL COMMENT '分录行号;数据级别:普通',
`subject_id` BIGINT NOT NULL COMMENT '会计科目 ID;数据级别:普通',
`assist_payload` JSON NULL COMMENT '辅助核算信息;数据级别:普通',
`debit_amount` DECIMAL(18,2) NOT NULL COMMENT '借方金额;数据级别:普通',
`credit_amount` DECIMAL(18,2) NOT NULL COMMENT '贷方金额;数据级别:普通',
`summary` VARCHAR(255) NOT NULL COMMENT '摘要;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_voucher_entry` (`voucher_id`, `entry_no`),
KEY `idx_subject` (`subject_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='FinanceVoucherEntry:凭证明细分录';
exp_reportExpenseReport
CREATE TABLE `exp_report` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`expense_no` VARCHAR(64) NOT NULL COMMENT '报销单编号,唯一;数据级别:普通',
`applicant_id` BIGINT NOT NULL COMMENT '申请人 ID;数据级别:普通',
`expense_type` VARCHAR(32) NOT NULL COMMENT '差旅/办公/采购/市场/其他;数据级别:普通',
`total_amount` DECIMAL(18,2) NOT NULL COMMENT '报销总额;数据级别:普通',
`expense_status` VARCHAR(32) NOT NULL COMMENT '草稿/待审批/待付款/已付款/已驳回;数据级别:普通',
`approval_status` VARCHAR(32) NULL COMMENT '审批状态,未发起为空;数据级别:普通',
`approval_instance_id` BIGINT NULL COMMENT '关联审批实例 ID;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_expense_no` (`expense_no`),
KEY `idx_applicant_status` (`applicant_id`, `expense_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='ExpenseReport:合思式报销单';
exp_invoiceInvoice
CREATE TABLE `exp_invoice` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`invoice_no` VARCHAR(64) NOT NULL COMMENT '发票号码;数据级别:普通',
`invoice_code` VARCHAR(64) NULL COMMENT '发票代码;数据级别:普通',
`invoice_type` VARCHAR(32) NOT NULL COMMENT '专票/普票/电子票/其他;数据级别:普通',
`seller_tax_no` VARCHAR(64) NULL COMMENT '销售方税号;数据级别:敏感',
`buyer_tax_no` VARCHAR(64) NULL COMMENT '购买方税号;数据级别:敏感',
`ocr_result` JSON NULL COMMENT 'OCR 识别结果;数据级别:普通',
`duplicate_status` VARCHAR(32) NOT NULL COMMENT '未查重/重复/未重复;数据级别:普通',
PRIMARY KEY (`id`),
KEY `idx_invoice_no` (`invoice_no`),
KEY `idx_duplicate` (`duplicate_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Invoice:报销发票与 OCR 结果';
exp_invoice_verificationInvoiceVerification
CREATE TABLE `exp_invoice_verification` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NOT NULL COMMENT '所属校区,跨校区或总部级数据为空;本表业务要求必填;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`verification_no` VARCHAR(64) NOT NULL COMMENT '核验编号,唯一;数据级别:普通',
`tax_subject_id` BIGINT NOT NULL COMMENT '税务主体配置 ID;数据级别:普通',
`official_app_code` VARCHAR(128) NOT NULL COMMENT '国税接口主体/编码配置;数据级别:普通',
`invoice_id` BIGINT NOT NULL COMMENT '发票 ID;数据级别:普通',
`official_payload` JSON NOT NULL COMMENT '官方请求参数;数据级别:普通',
`official_receipt` JSON NULL COMMENT '官方核验回执;数据级别:普通',
`verification_status` VARCHAR(32) NOT NULL COMMENT '待核验/通过/不通过/异常/重试中;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_verification_no` (`verification_no`),
KEY `idx_invoice_status` (`invoice_id`, `verification_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='InvoiceVerification:国税官方发票核验';
exp_payment_applyExpensePaymentApply
CREATE TABLE `exp_payment_apply` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`payment_apply_no` VARCHAR(64) NOT NULL COMMENT '付款申请编号,唯一;数据级别:普通',
`expense_report_id` BIGINT NOT NULL COMMENT '报销单 ID;数据级别:普通',
`payee_id` BIGINT NOT NULL COMMENT '收款人 ID;数据级别:普通',
`payee_account` VARCHAR(128) NOT NULL COMMENT '收款账号,敏感;数据级别:敏感',
`pay_amount` DECIMAL(18,2) NOT NULL COMMENT '付款金额;数据级别:普通',
`payment_status` VARCHAR(32) NOT NULL COMMENT '待付款/付款中/成功/失败;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_payment_apply_no` (`payment_apply_no`),
KEY `idx_report_status` (`expense_report_id`, `payment_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='ExpensePaymentApply:报销付款申请';
tax_declarationTaxReport
CREATE TABLE `tax_declaration` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`declaration_no` VARCHAR(64) NOT NULL COMMENT '申报编号,唯一;数据级别:普通',
`account_set_id` BIGINT NOT NULL COMMENT '账套 ID;数据级别:普通',
`tax_period` VARCHAR(32) NOT NULL COMMENT '税期;数据级别:普通',
`tax_type` VARCHAR(32) NOT NULL COMMENT '增值税/所得税/附加税/其他;数据级别:普通',
`declaration_payload` JSON NOT NULL COMMENT '申报资料;数据级别:普通',
`declaration_status` VARCHAR(32) NOT NULL COMMENT '草稿/待申报/已申报/失败;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_set_period_tax` (`account_set_id`, `tax_period`),
KEY `idx_status` (`declaration_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='TaxReport:纳税申报资料和报表';
16 · 异常、指标、测试与初始化
保证模块上线后可运营、可追踪、可验收
测试要覆盖主流程、异常流、权限流、接口失败和数据一致性。异常状态
指标埋点
测试用例
| 编号 | 场景 | 前置 | 步骤 | 预期 | 优先级 |
|---|---|---|---|---|---|
| TC-005 | 电子合同签署和收款 | 合同模板启用 | 生成合同、家长签署、支付 | 合同已签署、订单已收款、权益生效 | 高 |
| TC-008 | 人脸签到自动课消 | 学员已授权人脸且课次待签到 | 模拟设备回传识别事件 | 签到成功、课消成功、家长收到通知 | 高 |
| TC-009 | 人脸未匹配异常 | 设备回传未绑定人员 | 提交识别事件 | 进入异常队列,可人工确认或忽略 | 高 |
| TC-010 | 家长撤回人脸授权 | 学员已授权并下发设备 | 家长撤回授权 | 系统停止识别并生成设备删除任务 | 高 |
| TC-015 | 退费审批和监管退款 | 合同有剩余权益 | 提交退费、审批、模拟退款回执 | 退款完成、课时冻结、收入和提成冲回 | 高 |
| TC-016 | 内置凭证入账失败重推 | 科目映射缺失 | 生成凭证失败后补充科目并重推 | 凭证编号回写,失败记录关闭 | 高 |
| TC-017 | 薪资课酬核算 | 教师授课和课消数据完整 | 执行月度薪资核算 | 课酬、提成、冲回金额计算正确 | 中 |
| TC-023 | 按钮权限控制 | 顾问账号无退费审批权限 | 进入退费单详情 | 可查看授权数据但不可审批 | 高 |
| TC-027 | 设备离线补传 | 设备离线后产生识别记录 | 恢复网络并补传事件 | 流水去重后生成签到或异常 | 高 |
| TC-028 | 重复识别时间窗 | 同一学员短时间多次扫脸 | 连续提交识别事件 | 仅生成一次有效签到和课消 | 高 |
| TC-FIN-ENH-001 | 报销复刻交付闭环验收 | 报销单、发票识别、发票核验、付款单相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐报销单、OCR、国税核验、发票查重、防重复报销、审批和付款归档。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 发票核验结果、查重结果、审批和付款状态完整可见。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FIN-ENH-002 | 账套税务交付闭环验收 | 账套管理、凭证录入、期间结账、纳税申报相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐每校区独立账套、总部统管、凭证、科目、结账、反结账、报税和财务报表。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 总部财务能查看和管理所有校区账套。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FIN-ENH-003 | 资金闭环交付闭环验收 | 付款台账、对账差异、监管报送相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐付款失败重试、对账差异、人工关闭、凭证冲正和监管报送。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 每笔资金动作都可查状态、凭证、回执和补偿记录。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
上线初始化
| 初始化项 | 动作 | 数据 | 验收 |
|---|---|---|---|
| 课程与价格 | 导入课程、班型、课包、课时、价格、适用校区 | 课程编码、班型、价格表、有效期、赠课规则 | 报价和合同可正确引用价格 |
| 审批规则 | 配置优惠、退费、转课、导出、薪资、课消撤销审批流 | 审批对象、条件、节点、超时提醒 | 测试单据可进入正确审批链 |
| 财务科目 | 配置收款、预收、课消收入、退费、薪资、报销和内置科目映射 | 科目、辅助核算、校区、项目、部门 | 凭证可生成并写入测试账套 |
| 多账套会计 | 按校区初始化独立账套、会计期间、凭证字、科目和税务参数 | 账套编码、法人主体、校区、期间、税种、申报模板 | 校区账套可独立记账,总部可汇总和复核 |
| 监管账户 | 维护资金监管账户和教育局监管平台参数 | 账户编号、校区映射、接口地址、证书、回调 | 合同、收款、课消、退费可报送测试 |
| 设备参数 | 登记人脸考勤机设备和校区绑定 | 设备编号、位置、API 密钥、心跳阈值、识别阈值 | 设备心跳正常且可接收人员下发 |
| 物料资产 | 初始化物料分类、SKU、供应商、仓库、库存、固定资产和图书台账 | SKU 编码、单位、条码、安全库存、资产编号、库存余额 | 采购、入库、领用、调拨和盘点可正常执行 |
| 积分商城 | 配置积分规则、礼品 SKU、兑换积分、核销校区和库存联动 | 积分来源、积分有效期、礼品库存、兑换规则、核销权限 | 学员兑换后可锁库,前台核销后可出库 |
| 报销复刻交付配置 | 初始化补齐报销单、OCR、国税核验、发票查重、防重复报销、审批和付款归档。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 报销单、发票识别、发票核验、付款单 | 发票核验结果、查重结果、审批和付款状态完整可见。 |
| 账套税务交付配置 | 初始化补齐每校区独立账套、总部统管、凭证、科目、结账、反结账、报税和财务报表。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 账套管理、凭证录入、期间结账、纳税申报 | 总部财务能查看和管理所有校区账套。 |
| 资金闭环交付配置 | 初始化补齐付款失败重试、对账差异、人工关闭、凭证冲正和监管报送。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 付款台账、对账差异、监管报送 | 每笔资金动作都可查状态、凭证、回执和补偿记录。 |