01 · 模块定位
物料资产中心
采购入库后库存增加,学员兑换礼品后库存锁定,前台核销后完成出库、积分扣减和订单关闭。业务目标
管理物料、固定资产、图书、礼品和校区库存,联动采购、入库、领用、调拨、盘点、报废、财务凭证和积分商城兑换。
使用终端
PC Web 采购/库管工作台,校区前台核销入口,学员端兑换入口。
验收主线
采购入库后库存增加,学员兑换礼品后库存锁定,前台核销后完成出库、积分扣减和订单关闭。
02 · 范围边界
明确本模块负责什么、依赖什么、不负责什么
边界清晰后,原型、接口和数据库设计才能避免重复建设。模块内范围
- 物料档案
- 供应商
- 采购申请
- 采购入库
- 库存台账
- 固定资产
- 图书管理
- 礼品核销
- 供应商报价
- 采购对账
- 采购付款
- 采购退货
- 固定资产维修
- 责任人变更
- 资产调拨
- 图书进销存
- 积分礼品库存售后
- 积分礼品实物售后
- 库存成本策略
- 成本调整单
- 设备维修工单
上游依赖
- 组织校区与账号权限
- 课程/客户/合同等主数据
- 审批流、消息模板、文件中心
- 必要的第三方接口密钥
下游输出
- 业务状态和待办
- 消息通知和审批记录
- 报表指标和数据快照
- 审计日志和接口回执
03 · 确认口径、后台配置与默认实施规则
物料资产中心必须承接的已确认规则
本章节来自待决策与澄清清单的收口结果,已经转为本模块 PRD 的正式需求、配置项或默认实施规则。| 分类 | 事项 | 本模块落地要求 | 责任方 |
|---|---|---|---|
| 默认实施规则 | 接口设计说明书组织方式 | 采用单独 HTML 文件集中管理接口协议;模块 PRD 保留模块级接口摘要,避免每个模块重复写通用协议。 | 产品/研发 |
| 默认实施规则 | 接口错误码与重试中间件 | 所有外部接口和内部异步任务统一错误码、幂等键、重试次数、告警阈值和回执归档策略。 | 后端/测试/运维 |
04 · 业务流程
物料资产中心主流程
流程用于指导原型图的页面顺序、按钮状态和异常分支。维护教材、教具、礼品、办公用品、市场物料、固定资产和图书的分类、编码、单位和状态。
维护供应商档案、联系人、报价资质、结算方式、对账周期和停用状态。
采购申请按物料类别、预算、校区、供应商和金额阈值进入审批。
到货验收支持扫码入库、数量差异、质量异常、发票关联和入库单生成。
库存支持总部仓、校区仓、教室、员工、批次、序列号、安全库存和库存金额。
固定资产覆盖购置、领用、归还、维修、折旧、调拨、盘点、报损、报废和丢失处理。
图书仅做进销存管理,覆盖图书 SKU、采购入库、领用出库、调拨、损耗、盘点和课程配套发放。
积分商城礼品从物料 SKU 上架,兑换后锁库,前台核销后自动出库并关闭兑换订单。
05 · 功能清单
按子模块拆到可设计、可开发、可测试的颗粒度
每一行功能都需要在原型中体现入口、状态、按钮、字段和反馈。| 一级功能 | 二级功能 | 功能说明 | 规则/验收 |
|---|---|---|---|
| 物料档案 | 基础维护 | 物料档案支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 物料档案 | 业务处理 | 维护教材、教具、礼品、办公用品、市场物料、固定资产和图书的分类、编码、单位和状态。 | 必须联动状态、权限、消息、审批和指标 |
| 物料档案 | 异常闭环 | 物料编码重复处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 供应商 | 基础维护 | 供应商支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 供应商 | 业务处理 | 维护供应商档案、联系人、报价资质、结算方式、对账周期和停用状态。 | 必须联动状态、权限、消息、审批和指标 |
| 供应商 | 异常闭环 | 供应商状态异常处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 采购申请 | 基础维护 | 采购申请支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 采购申请 | 业务处理 | 采购申请按物料类别、预算、校区、供应商和金额阈值进入审批。 | 必须联动状态、权限、消息、审批和指标 |
| 采购申请 | 异常闭环 | 预算不足处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 采购入库 | 基础维护 | 采购入库支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 采购入库 | 业务处理 | 到货验收支持扫码入库、数量差异、质量异常、发票关联和入库单生成。 | 必须联动状态、权限、消息、审批和指标 |
| 采购入库 | 异常闭环 | 入库差异处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 库存台账 | 基础维护 | 库存台账支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 库存台账 | 业务处理 | 库存支持总部仓、校区仓、教室、员工、批次、序列号、安全库存和库存金额。 | 必须联动状态、权限、消息、审批和指标 |
| 库存台账 | 异常闭环 | 库存不足处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 固定资产 | 基础维护 | 固定资产支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 固定资产 | 业务处理 | 固定资产覆盖购置、领用、归还、维修、折旧、调拨、盘点、报损、报废和丢失处理。 | 必须联动状态、权限、消息、审批和指标 |
| 固定资产 | 异常闭环 | 资产责任人缺失处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 图书管理 | 基础维护 | 图书管理支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 图书管理 | 业务处理 | 图书仅做进销存管理,覆盖图书 SKU、采购入库、领用出库、调拨、损耗、盘点和课程配套发放。 | 必须联动状态、权限、消息、审批和指标 |
| 图书管理 | 异常闭环 | 图书库存不足处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 礼品核销 | 基础维护 | 礼品核销支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 礼品核销 | 业务处理 | 积分商城礼品从物料 SKU 上架,兑换后锁库,前台核销后自动出库并关闭兑换订单。 | 必须联动状态、权限、消息、审批和指标 |
| 礼品核销 | 异常闭环 | 核销码失效处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 供应商报价 | 基础维护 | 供应商报价支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 供应商报价 | 业务处理 | 采购前可维护多供应商报价、有效期、税率、起订量和比价结果。 | 必须联动状态、权限、消息、审批和指标 |
| 供应商报价 | 异常闭环 | 报价过期处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 采购对账 | 基础维护 | 采购对账支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 采购对账 | 业务处理 | 供应商对账联动采购订单、入库差异、退货、发票和付款申请。 | 必须联动状态、权限、消息、审批和指标 |
| 采购对账 | 异常闭环 | 供应商对账不平处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 采购付款 | 基础维护 | 采购付款支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 采购付款 | 业务处理 | 采购对账通过后进入付款申请、付款审批、付款状态和财务凭证联动。 | 必须联动状态、权限、消息、审批和指标 |
| 采购付款 | 异常闭环 | 采购付款失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 采购退货 | 基础维护 | 采购退货支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 采购退货 | 业务处理 | 采购退货支持退货申请、出库、供应商确认、应付冲减和库存成本回滚。 | 必须联动状态、权限、消息、审批和指标 |
| 采购退货 | 异常闭环 | 退货数量超限处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 固定资产维修 | 基础维护 | 固定资产维修支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 固定资产维修 | 业务处理 | 固定资产和教学设备维修支持报修、派工、处理、配件消耗、恢复校验和关闭。 | 必须联动状态、权限、消息、审批和指标 |
| 固定资产维修 | 异常闭环 | 维修超期处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 责任人变更 | 基础维护 | 责任人变更支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 责任人变更 | 业务处理 | 固定资产、设备、图书和高价值物料责任人变更需记录移交、确认和审计。 | 必须联动状态、权限、消息、审批和指标 |
| 责任人变更 | 异常闭环 | 责任人确认超时处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 资产调拨 | 基础维护 | 资产调拨支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 资产调拨 | 业务处理 | 跨校区或跨仓库调拨生成调出、在途、调入、成本转移和签收记录。 | 必须联动状态、权限、消息、审批和指标 |
| 资产调拨 | 异常闭环 | 调拨签收失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 图书进销存 | 基础维护 | 图书进销存支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 图书进销存 | 业务处理 | 图书库存独立管理采购、入库、领用、调拨、盘点、损耗和库存预警,不做借阅。 | 必须联动状态、权限、消息、审批和指标 |
| 图书进销存 | 异常闭环 | 盘点差异处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 积分礼品库存售后 | 基础维护 | 积分礼品库存售后支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 积分礼品库存售后 | 业务处理 | 积分兑换取消、过期未核销、核销撤销和库存释放形成礼品库存售后流水。 | 必须联动状态、权限、消息、审批和指标 |
| 积分礼品库存售后 | 异常闭环 | 库存释放失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 积分礼品实物售后 | 基础维护 | 积分礼品实物售后支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 积分礼品实物售后 | 业务处理 | 礼品领取后退货、换货、坏损、返库、报损、补发和积分返还均需联动库存与积分流水。 | 必须联动状态、权限、消息、审批和指标 |
| 积分礼品实物售后 | 异常闭环 | 礼品坏损处理处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 库存成本策略 | 基础维护 | 库存成本策略支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 库存成本策略 | 业务处理 | 物料、礼品、图书和固定资产支持批次成本、移动加权、先进先出等成本口径配置。 | 必须联动状态、权限、消息、审批和指标 |
| 库存成本策略 | 异常闭环 | 成本口径缺失处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 成本调整单 | 基础维护 | 成本调整单支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 成本调整单 | 业务处理 | 盘盈盘亏、报损报废、调拨差异和历史成本修正通过成本调整单审批生效。 | 必须联动状态、权限、消息、审批和指标 |
| 成本调整单 | 异常闭环 | 成本调整失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 设备维修工单 | 基础维护 | 设备维修工单支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 设备维修工单 | 业务处理 | 摄像头、门店网关、考勤机、TV 等设备异常可生成维修工单并回写设备状态。 | 必须联动状态、权限、消息、审批和指标 |
| 设备维修工单 | 异常闭环 | 设备恢复校验失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
功能到数据对象/接口/表映射
| 功能域 | 承接对象 | 核心表 | 代表接口 | 状态机/状态字段 | 研发落地校验 |
|---|---|---|---|---|---|
| 物料档案 | Supplier、Material/Inventory/Asset/Book、Warehouse、Inventory | mat_supplier、mat_sku、mat_warehouse、mat_inventory | 接口资源组 /api/v1/mat/features/01 | sku_type、warehouse_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 供应商 | Supplier、StockIn | mat_supplier、mat_stock_in | POST/GET /api/v1/material/purchase-reconciliations | stock_in_status、approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 采购申请 | Supplier、StockIn | mat_supplier、mat_stock_in | 接口资源组 /api/v1/mat/features/03 | stock_in_status、approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 采购入库 | Supplier、StockIn | mat_supplier、mat_stock_in | 接口资源组 /api/v1/mat/features/04 | stock_in_status、approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 库存台账 | Material/Inventory/Asset/Book、Inventory、StockIn、StockOut | mat_sku、mat_inventory、mat_stock_in、mat_stock_out | 接口资源组 /api/v1/mat/features/05 | sku_type、stock_in_status、approval_status、stock_out_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 固定资产 | Asset、AssetLifecycle/Maintenance | mat_asset、mat_maintenance_order | 接口资源组 /api/v1/mat/features/06 | asset_status、maintenance_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 图书管理 | Material/Inventory/Asset/Book | mat_sku | 接口资源组 /api/v1/mat/features/07 | sku_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 礼品核销 | Supplier、Material/Inventory/Asset/Book、Warehouse、Inventory | mat_supplier、mat_sku、mat_warehouse、mat_inventory | 接口资源组 /api/v1/mat/features/08 | sku_type、warehouse_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 供应商报价 | Supplier、StockIn | mat_supplier、mat_stock_in | 接口资源组 /api/v1/mat/features/09 | stock_in_status、approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 采购对账 | Supplier、StockIn | mat_supplier、mat_stock_in | 接口资源组 /api/v1/mat/features/10 | stock_in_status、approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 采购付款 | Supplier、StockIn | mat_supplier、mat_stock_in | 接口资源组 /api/v1/mat/features/11 | stock_in_status、approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 采购退货 | Supplier、StockIn | mat_supplier、mat_stock_in | 接口资源组 /api/v1/mat/features/12 | stock_in_status、approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 固定资产维修 | Asset、AssetLifecycle/Maintenance | mat_asset、mat_maintenance_order | 接口资源组 /api/v1/mat/features/13 | asset_status、maintenance_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 责任人变更 | Supplier、Material/Inventory/Asset/Book、Warehouse、Inventory | mat_supplier、mat_sku、mat_warehouse、mat_inventory | 接口资源组 /api/v1/mat/features/14 | sku_type、warehouse_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 资产调拨 | Material/Inventory/Asset/Book、Inventory、StockIn、StockOut | mat_sku、mat_inventory、mat_stock_in、mat_stock_out | 接口资源组 /api/v1/mat/features/15 | sku_type、stock_in_status、approval_status、stock_out_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 图书进销存 | Supplier、Material/Inventory/Asset/Book、Warehouse、Inventory | mat_supplier、mat_sku、mat_warehouse、mat_inventory | 接口资源组 /api/v1/mat/features/16 | sku_type、warehouse_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 积分礼品库存售后 | Material/Inventory/Asset/Book、Inventory、StockIn、StockOut | mat_sku、mat_inventory、mat_stock_in、mat_stock_out | 接口资源组 /api/v1/mat/features/17 | sku_type、stock_in_status、approval_status、stock_out_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 积分礼品实物售后 | Supplier、Material/Inventory/Asset/Book、Warehouse、Inventory | mat_supplier、mat_sku、mat_warehouse、mat_inventory | 接口资源组 /api/v1/mat/features/18 | sku_type、warehouse_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 库存成本策略 | Material/Inventory/Asset/Book、Inventory、StockIn、StockOut | mat_sku、mat_inventory、mat_stock_in、mat_stock_out | 接口资源组 /api/v1/mat/features/19 | sku_type、stock_in_status、approval_status、stock_out_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 成本调整单 | Material/Inventory/Asset/Book、Inventory、StockIn、StockOut | mat_sku、mat_inventory、mat_stock_in、mat_stock_out | 接口资源组 /api/v1/mat/features/20 | sku_type、stock_in_status、approval_status、stock_out_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 设备维修工单 | Asset、AssetLifecycle/Maintenance | mat_asset、mat_maintenance_order | 接口资源组 /api/v1/mat/features/21 | asset_status、maintenance_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
06 · 原子级功能需求
用于研发任务拆分和测试用例追踪
需求编号可直接进入项目管理工具。| 编号 | 需求描述 | 入口页面 | 关键动作 | 输入校验 | 输出结果 | 异常处理 | 验收标准 |
|---|---|---|---|---|---|---|---|
| FR-MAT-001 | 物料分类覆盖教材、教具、礼品、办公用品、市场物料、固定资产和图书 | 资产生命周期/图书进销存 | 领用、维修、责任人变更、盘点或图书出入库 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 责任人缺失、维修超期或库存不足 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-MAT-002 | SKU 档案支持编码、规格、单位、条码、成本价、适用校区、安全库存和库存属性 | 采购入库 | 采购申请 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 盘点差异 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-MAT-003 | 采购申请按金额、物料类别、预算、校区和供应商进入审批 | 采购对账付款 | 采购对账、采购付款或凭证归档 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 对账不平、付款失败或凭证缺失 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-MAT-004 | 到货验收支持扫码入库、数量差异、质量异常、发票关联和入库单生成 | 指标异常处理 | 异常订阅、责任人处理或口径审批 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 指标延迟、责任人缺失或口径版本不一致 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-MAT-005 | 库存支持总部仓、校区仓、教室、员工、批次、序列号、安全库存和库存金额 | 采购对账付款 | 采购付款 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 供应商对账不平 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-MAT-006 | 固定资产支持购置、领用、维修、折旧、调拨、盘点和报废 | 资产生命周期/图书进销存 | 领用、维修、责任人变更、盘点或图书出入库 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 责任人缺失、维修超期或库存不足 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-MAT-007 | 图书仅支持采购、入库、领用出库、调拨、损耗、盘点和课程配套发放 | 采购对账付款 | 采购对账、采购付款或凭证归档 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 对账不平、付款失败或凭证缺失 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-MAT-008 | 积分商城礼品从物料 SKU 上架,兑换后锁库,线下核销后自动出库 | 积分商城/兑换售后 | 积分兑换、取消、核销或库存释放 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 积分不足、库存释放失败或核销码失效 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-MAT-009 | 物料采购需覆盖供应商报价、采购审批、采购入库、入库差异、供应商对账、采购付款、采购退货和凭证联动。 | 采购对账付款 | 采购对账、采购付款或凭证归档 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 对账不平、付款失败或凭证缺失 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-MAT-010 | 固定资产需覆盖领用、归还、责任人变更、调拨、维修、盘点、报损、报废和丢失赔偿。 | 资产生命周期/图书进销存 | 领用、维修、责任人变更、盘点或图书出入库 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 责任人缺失、维修超期或库存不足 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-MAT-011 | 图书只做进销存管理,覆盖图书 SKU、采购入库、领用出库、调拨、盘点、报损和库存预警。 | 采购对账付款 | 采购对账、采购付款或凭证归档 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 对账不平、付款失败或凭证缺失 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-MAT-012 | 积分商城礼品库存需与物料库存联动,兑换锁库、核销出库、取消释放、过期释放和异常回滚必须可追踪。 | 积分商城/兑换售后 | 积分兑换、取消、核销或库存释放 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 积分不足、库存释放失败或核销码失效 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-MAT-013 | 积分礼品领取后的退货、换货、坏损需联动物料库存,按返库、换新、报损或补发生成库存流水和审计记录。 | 积分商城/兑换售后 | 积分兑换、取消、核销或库存释放 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 积分不足、库存释放失败或核销码失效 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-MAT-014 | 物料、礼品、图书和固定资产需配置成本计价方式,支持批次成本、移动加权和先进先出中的实施口径,并明确跨校区调拨、盘盈盘亏、报损报废的财务科目。 | 资产生命周期/图书进销存 | 领用、维修、责任人变更、盘点或图书出入库 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 责任人缺失、维修超期或库存不足 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-MAT-015 | 巡课摄像头、门店网关和相关设备离线后可生成维修工单,跟踪派单、接单、处理、恢复校验、关闭和升级。 | 资产生命周期/图书进销存 | 领用、维修、责任人变更、盘点或图书出入库 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 责任人缺失、维修超期或库存不足 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
07 · 关联闭环补充需求
物料资产中心在跨模块闭环中的责任边界
本章节承接最终闭环核对清单,明确本模块需要补齐的页面、接口对象、异常兜底和验收口径。| 闭环项 | 本模块责任 | 关键场景 | 页面/功能补充 | 关联对象/接口 | 验收口径 |
|---|---|---|---|---|---|
| 礼品实物售后 | 负责礼品库存、核销、取消、退回、过期、售后和线下领取异常 | 积分商城兑换礼品后的线下领取和异常处理 | 礼品库存、兑换核销、售后处理、库存释放、积分退回联动 | PointsAccount/PointsOrder、PointsRedemptionAfterSales、Material/Inventory/Asset/Book | 售后完成后库存流水、积分流水和核销流水一致 |
| 库存成本策略 | 负责物料、固定资产、图书、礼品的计价方式、成本流水和盘点差异 | 采购入库、出库、调拨、报损、盘点、资产维修 | 成本策略配置、库存流水、盘点差异、成本调整 | Material/Inventory/Asset/Book、PurchaseReconciliation/Payment | 所有库存变动必须有成本来源和审计记录 |
| 设备维修工单 | 负责设备、固定资产和教学硬件的维修工单生命周期 | 摄像头、网关、考勤机、TV、电脑等设备故障 | 维修工单、派工、处理记录、配件消耗、复核关闭 | AssetLifecycle/Maintenance、ClassroomCamera/PatrolRecord/TeachingQualityScore | 维修工单关闭时必须回写资产状态和处理成本 |
08 · 页面与原型设计说明
页面清单、布局要求、按钮字段和状态
原型图设计需要覆盖列表、详情、表单、弹窗、空状态、异常状态和权限状态。| 终端 | 页面 | 用户 | 页面目标 | 布局结构 | 关键按钮 | 关键字段 | 异常状态 | 原型备注 |
|---|---|---|---|---|---|---|---|---|
| PC Web | 物料档案 | 采购/库管/校区前台 | 维护物料、礼品、图书、固定资产、供应商和安全库存 | 资产库存页采用左侧分类树、顶部仓库/校区筛选、中部台账表格,详情抽屉展示流水、成本、责任人和审计。 | 新增 SKU、采购申请、验收入库、领用出库、调拨、盘点、报损报废、维修派工 | 物料编码、分类、仓库/校区、库存数量、批次成本、供应商、责任人、盘点差异、物料分类、库存状态 | 库存不足、编码重复、入库差异、责任人缺失、维修超期、成本调整失败 | 需覆盖图书仅进销存、固定资产责任人变更、维修工单、礼品库存、成本策略和财务凭证联动。 建议 Figma Frame:MAT-物料档案;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 采购入库 | 采购/库管/财务 | 发起采购、审批、到货验收、发票关联和入库 | 单据页采用步骤式表单,票据区支持 OCR 识别与核验结果;付款台账以批次、状态、异常原因和补偿入口组织。 | 新增报销单、OCR 识别、国税核验、发票查重、提交审批、生成付款批次、失败重试 | 报销人、费用类型、发票号码、校区税务主体、核验编码、重复结果、付款账户、补偿状态、物料编码、物料分类 | OCR 低置信度、发票核验失败、重复报销、付款失败、付款撤销待审、接口频控 | 需绘制票据识别、人工修正、国税主体选择、查重拦截、审批流、付款失败补偿和日志详情。 建议 Figma Frame:MAT-采购入库;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 库存台账 | 库管/校区前台 | 查询库存、领用出库、调拨、盘点、报废和库存预警 | 资产库存页采用左侧分类树、顶部仓库/校区筛选、中部台账表格,详情抽屉展示流水、成本、责任人和审计。 | 新增 SKU、采购申请、验收入库、领用出库、调拨、盘点、报损报废、维修派工 | 物料编码、分类、仓库/校区、库存数量、批次成本、供应商、责任人、盘点差异、物料分类、库存状态 | 库存不足、编码重复、入库差异、责任人缺失、维修超期、成本调整失败 | 需覆盖图书仅进销存、固定资产责任人变更、维修工单、礼品库存、成本策略和财务凭证联动。 建议 Figma Frame:MAT-库存台账;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web/微信小程序 | 礼品核销 | 校区前台/学员 | 扫码核销积分兑换订单、扣减礼品库存并回写积分订单 | 商城首页展示积分余额、礼品分类和库存状态;订单详情展示核销码、领取校区、售后进度和库存联动结果。 | 兑换礼品、取消兑换、查看核销码、扫码核销、申请售后、查看积分流水 | 积分余额、礼品 SKU、所需积分、可用库存、兑换订单、核销码、领取校区、售后状态、物料编码、物料分类 | 积分不足、库存不足、核销码过期、重复核销、库存释放失败、积分退回失败 | 需画兑换确认、库存锁定、核销成功、取消退回、实物售后、线下领取异常和积分流水。 建议 Figma Frame:MAT-礼品核销;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 采购对账付款 | 物料管理员/财务 | 处理供应商对账、采购付款、付款凭证、采购退货和入库差异 | 财务工作台左侧账套/期间切换,中部为凭证或报表列表,右侧展示借贷分录、附件、来源单据和回执。 | 切换账套、生成凭证、审核凭证、红冲、期间结账、生成申报表、归档回执 | 校区账套、会计期间、凭证字号、借方金额、贷方金额、来源单据、审核人、回执状态、物料编码、物料分类 | 借贷不平、期间关闭、来源单据缺失、监管回执失败、申报数据不平、成本口径缺失 | 需覆盖总部跨账套视角、校区独立账套、凭证来源追溯、红冲、反结账限制和监管/税务回执。 建议 Figma Frame:MAT-采购对账付款;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 固定资产维修与责任人变更 | 物料管理员/校区前台 | 维护资产维修、责任人变更、领用归还、调拨、报废和丢失处理 | 资产库存页采用左侧分类树、顶部仓库/校区筛选、中部台账表格,详情抽屉展示流水、成本、责任人和审计。 | 新增 SKU、采购申请、验收入库、领用出库、调拨、盘点、报损报废、维修派工 | 物料编码、分类、仓库/校区、库存数量、批次成本、供应商、责任人、盘点差异、物料分类、库存状态 | 库存不足、编码重复、入库差异、责任人缺失、维修超期、成本调整失败 | 需覆盖图书仅进销存、固定资产责任人变更、维修工单、礼品库存、成本策略和财务凭证联动。 建议 Figma Frame:MAT-固定资产维修与责任人变更;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 图书进销存 | 物料管理员/校区前台 | 只做图书采购入库、领用出库、调拨、盘点、报损和库存预警 | 资产库存页采用左侧分类树、顶部仓库/校区筛选、中部台账表格,详情抽屉展示流水、成本、责任人和审计。 | 新增 SKU、采购申请、验收入库、领用出库、调拨、盘点、报损报废、维修派工 | 物料编码、分类、仓库/校区、库存数量、批次成本、供应商、责任人、盘点差异、物料分类、库存状态 | 库存不足、编码重复、入库差异、责任人缺失、维修超期、成本调整失败 | 需覆盖图书仅进销存、固定资产责任人变更、维修工单、礼品库存、成本策略和财务凭证联动。 建议 Figma Frame:MAT-图书进销存;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 礼品实物售后处理 | 前台/物料管理员 | 处理积分礼品实物售后、返库、换新、报损、补发和库存流水 | 商城首页展示积分余额、礼品分类和库存状态;订单详情展示核销码、领取校区、售后进度和库存联动结果。 | 兑换礼品、取消兑换、查看核销码、扫码核销、申请售后、查看积分流水 | 积分余额、礼品 SKU、所需积分、可用库存、兑换订单、核销码、领取校区、售后状态、物料编码、物料分类 | 积分不足、库存不足、核销码过期、重复核销、库存释放失败、积分退回失败 | 需画兑换确认、库存锁定、核销成功、取消退回、实物售后、线下领取异常和积分流水。 建议 Figma Frame:MAT-礼品实物售后处理;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 库存成本策略 | 物料管理员/财务 | 配置批次成本、移动加权、先进先出、成本科目和跨校区调拨成本规则 | 财务工作台左侧账套/期间切换,中部为凭证或报表列表,右侧展示借贷分录、附件、来源单据和回执。 | 切换账套、生成凭证、审核凭证、红冲、期间结账、生成申报表、归档回执 | 校区账套、会计期间、凭证字号、借方金额、贷方金额、来源单据、审核人、回执状态、物料编码、物料分类 | 借贷不平、期间关闭、来源单据缺失、监管回执失败、申报数据不平、成本口径缺失 | 需覆盖总部跨账套视角、校区独立账套、凭证来源追溯、红冲、反结账限制和监管/税务回执。 建议 Figma Frame:MAT-库存成本策略;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 图书库存 | 授权用户 | 围绕进销存范围完善图书库存的入口、字段、状态、异常提示、处理进度和验收反馈 | 资产库存页采用左侧分类树、顶部仓库/校区筛选、中部台账表格,详情抽屉展示流水、成本、责任人和审计。 | 新增 SKU、采购申请、验收入库、领用出库、调拨、盘点、报损报废、维修派工 | 物料编码、分类、仓库/校区、库存数量、批次成本、供应商、责任人、盘点差异、物料分类、库存状态 | 库存不足、编码重复、入库差异、责任人缺失、维修超期、成本调整失败 | 需覆盖图书仅进销存、固定资产责任人变更、维修工单、礼品库存、成本策略和财务凭证联动。 建议 Figma Frame:MAT-图书库存;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 固定资产 | 授权用户 | 围绕进销存范围完善固定资产的入口、字段、状态、异常提示、处理进度和验收反馈 | 资产库存页采用左侧分类树、顶部仓库/校区筛选、中部台账表格,详情抽屉展示流水、成本、责任人和审计。 | 新增 SKU、采购申请、验收入库、领用出库、调拨、盘点、报损报废、维修派工 | 物料编码、分类、仓库/校区、库存数量、批次成本、供应商、责任人、盘点差异、物料分类、库存状态 | 库存不足、编码重复、入库差异、责任人缺失、维修超期、成本调整失败 | 需覆盖图书仅进销存、固定资产责任人变更、维修工单、礼品库存、成本策略和财务凭证联动。 建议 Figma Frame:MAT-固定资产;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 库存流水 | 授权用户 | 围绕进销存范围完善库存流水的入口、字段、状态、异常提示、处理进度和验收反馈 | 资产库存页采用左侧分类树、顶部仓库/校区筛选、中部台账表格,详情抽屉展示流水、成本、责任人和审计。 | 新增 SKU、采购申请、验收入库、领用出库、调拨、盘点、报损报废、维修派工 | 物料编码、分类、仓库/校区、库存数量、批次成本、供应商、责任人、盘点差异、物料分类、库存状态 | 库存不足、编码重复、入库差异、责任人缺失、维修超期、成本调整失败 | 需覆盖图书仅进销存、固定资产责任人变更、维修工单、礼品库存、成本策略和财务凭证联动。 建议 Figma Frame:MAT-库存流水;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 礼品库存 | 授权用户 | 围绕积分联动完善礼品库存的入口、字段、状态、异常提示、处理进度和验收反馈 | 资产库存页采用左侧分类树、顶部仓库/校区筛选、中部台账表格,详情抽屉展示流水、成本、责任人和审计。 | 新增 SKU、采购申请、验收入库、领用出库、调拨、盘点、报损报废、维修派工 | 物料编码、分类、仓库/校区、库存数量、批次成本、供应商、责任人、盘点差异、物料分类、库存状态 | 库存不足、编码重复、入库差异、责任人缺失、维修超期、成本调整失败 | 需覆盖图书仅进销存、固定资产责任人变更、维修工单、礼品库存、成本策略和财务凭证联动。 建议 Figma Frame:MAT-礼品库存;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 兑换订单 | 授权用户 | 围绕积分联动完善兑换订单的入口、字段、状态、异常提示、处理进度和验收反馈 | 资产库存页采用左侧分类树、顶部仓库/校区筛选、中部台账表格,详情抽屉展示流水、成本、责任人和审计。 | 新增 SKU、采购申请、验收入库、领用出库、调拨、盘点、报损报废、维修派工 | 物料编码、分类、仓库/校区、库存数量、批次成本、供应商、责任人、盘点差异、物料分类、库存状态 | 库存不足、编码重复、入库差异、责任人缺失、维修超期、成本调整失败 | 需覆盖图书仅进销存、固定资产责任人变更、维修工单、礼品库存、成本策略和财务凭证联动。 建议 Figma Frame:MAT-兑换订单;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 核销台 | 授权用户 | 围绕积分联动完善核销台的入口、字段、状态、异常提示、处理进度和验收反馈 | 资产库存页采用左侧分类树、顶部仓库/校区筛选、中部台账表格,详情抽屉展示流水、成本、责任人和审计。 | 新增 SKU、采购申请、验收入库、领用出库、调拨、盘点、报损报废、维修派工 | 物料编码、分类、仓库/校区、库存数量、批次成本、供应商、责任人、盘点差异、物料分类、库存状态 | 库存不足、编码重复、入库差异、责任人缺失、维修超期、成本调整失败 | 需覆盖图书仅进销存、固定资产责任人变更、维修工单、礼品库存、成本策略和财务凭证联动。 建议 Figma Frame:MAT-核销台;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 采购订单 | 授权用户 | 围绕采购财务完善采购订单的入口、字段、状态、异常提示、处理进度和验收反馈 | 资产库存页采用左侧分类树、顶部仓库/校区筛选、中部台账表格,详情抽屉展示流水、成本、责任人和审计。 | 新增 SKU、采购申请、验收入库、领用出库、调拨、盘点、报损报废、维修派工 | 物料编码、分类、仓库/校区、库存数量、批次成本、供应商、责任人、盘点差异、物料分类、库存状态 | 库存不足、编码重复、入库差异、责任人缺失、维修超期、成本调整失败 | 需覆盖图书仅进销存、固定资产责任人变更、维修工单、礼品库存、成本策略和财务凭证联动。 建议 Figma Frame:MAT-采购订单;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 入库单 | 授权用户 | 围绕采购财务完善入库单的入口、字段、状态、异常提示、处理进度和验收反馈 | 资产库存页采用左侧分类树、顶部仓库/校区筛选、中部台账表格,详情抽屉展示流水、成本、责任人和审计。 | 新增 SKU、采购申请、验收入库、领用出库、调拨、盘点、报损报废、维修派工 | 物料编码、分类、仓库/校区、库存数量、批次成本、供应商、责任人、盘点差异、物料分类、库存状态 | 库存不足、编码重复、入库差异、责任人缺失、维修超期、成本调整失败 | 需覆盖图书仅进销存、固定资产责任人变更、维修工单、礼品库存、成本策略和财务凭证联动。 建议 Figma Frame:MAT-入库单;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 对账单 | 授权用户 | 围绕采购财务完善对账单的入口、字段、状态、异常提示、处理进度和验收反馈 | 资产库存页采用左侧分类树、顶部仓库/校区筛选、中部台账表格,详情抽屉展示流水、成本、责任人和审计。 | 新增 SKU、采购申请、验收入库、领用出库、调拨、盘点、报损报废、维修派工 | 物料编码、分类、仓库/校区、库存数量、批次成本、供应商、责任人、盘点差异、物料分类、库存状态 | 库存不足、编码重复、入库差异、责任人缺失、维修超期、成本调整失败 | 需覆盖图书仅进销存、固定资产责任人变更、维修工单、礼品库存、成本策略和财务凭证联动。 建议 Figma Frame:MAT-对账单;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 付款单 | 授权用户 | 围绕采购财务完善付款单的入口、字段、状态、异常提示、处理进度和验收反馈 | 资产库存页采用左侧分类树、顶部仓库/校区筛选、中部台账表格,详情抽屉展示流水、成本、责任人和审计。 | 新增 SKU、采购申请、验收入库、领用出库、调拨、盘点、报损报废、维修派工 | 物料编码、分类、仓库/校区、库存数量、批次成本、供应商、责任人、盘点差异、物料分类、库存状态 | 库存不足、编码重复、入库差异、责任人缺失、维修超期、成本调整失败 | 需覆盖图书仅进销存、固定资产责任人变更、维修工单、礼品库存、成本策略和财务凭证联动。 建议 Figma Frame:MAT-付款单;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
09 · 页面到接口的前后端闭环矩阵
把原型页面、后端接口、数据对象、状态和消息审批绑定到一起
设计原型时,每个关键页面必须能解释前端展示什么、后端提交什么、状态怎么变、异常怎么处理。| 原型页面 | 关键接口 | 关联对象 | 状态流 | 审批/权限触发 | 消息/待办触达 | 原型验收要求 |
|---|---|---|---|---|---|---|
| 物料档案 | POST/GET /api/v1/material/purchase-reconciliations | Supplier | 待入库 -> 在库 -> 已锁定 -> 已出库 -> 调拨中 -> 盘点中 -> 已报废 | 物料采购审批:采购金额超过阈值、跨校区采购或固定资产采购 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 采购入库 | POST /api/v1/assets/lifecycle-actions | Material/Inventory/Asset/Book | 草稿 -> 待开播 -> 直播中 -> 已结束 -> 回放生成中 -> 可回放 -> 异常 -> 已关闭 | 固定资产报废审批:固定资产、图书或高价值物料需要报废 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 库存台账 | POST/GET /api/v1/material/purchase-reconciliations | Warehouse | 未录制 -> 录制中 -> 转码中 -> 可回放 -> 转码失败 -> 已过期 -> 已归档 | 直播供应商配置审批:新增或变更直播供应商密钥、回调地址、录制存储、转码模板和域名配置 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 礼品核销 | POST /api/v1/assets/lifecycle-actions | Inventory | 在库 -> 领用中 -> 已领用 -> 归还中 -> 调拨中 -> 维修中 -> 盘点中 -> 报废审批 -> 已报废 -> 已丢失 | 物料采购审批:采购金额超过阈值、跨校区采购或固定资产采购 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 采购对账付款 | POST/GET /api/v1/material/purchase-reconciliations | StockIn | 询价中 -> 待审批 -> 待下单 -> 待入库 -> 入库差异 -> 待对账 -> 对账不平 -> 待付款 -> 已付款 -> 已退货 -> 已关闭 | 固定资产报废审批:固定资产、图书或高价值物料需要报废 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 固定资产维修与责任人变更 | POST /api/v1/assets/lifecycle-actions | StockOut | 草稿 -> 待审核 -> 已启用 -> 已停用 -> 待重算 -> 重算中 -> 已归档 | 直播供应商配置审批:新增或变更直播供应商密钥、回调地址、录制存储、转码模板和域名配置 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 图书进销存 | POST/GET /api/v1/material/purchase-reconciliations | Asset | 待派单 -> 已派单 -> 已接单 -> 排查中 -> 待恢复校验 -> 已恢复 -> 已关闭 -> 已升级 | 物料采购审批:采购金额超过阈值、跨校区采购或固定资产采购 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 礼品实物售后处理 | POST /api/v1/assets/lifecycle-actions | AssetLifecycle/Maintenance | 待入库 -> 在库 -> 已锁定 -> 已出库 -> 调拨中 -> 盘点中 -> 已报废 | 固定资产报废审批:固定资产、图书或高价值物料需要报废 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 库存成本策略 | POST/GET /api/v1/material/purchase-reconciliations | Supplier | 草稿 -> 待开播 -> 直播中 -> 已结束 -> 回放生成中 -> 可回放 -> 异常 -> 已关闭 | 直播供应商配置审批:新增或变更直播供应商密钥、回调地址、录制存储、转码模板和域名配置 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 图书库存 | POST /api/v1/assets/lifecycle-actions | Material/Inventory/Asset/Book | 未录制 -> 录制中 -> 转码中 -> 可回放 -> 转码失败 -> 已过期 -> 已归档 | 物料采购审批:采购金额超过阈值、跨校区采购或固定资产采购 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 固定资产 | POST/GET /api/v1/material/purchase-reconciliations | Warehouse | 在库 -> 领用中 -> 已领用 -> 归还中 -> 调拨中 -> 维修中 -> 盘点中 -> 报废审批 -> 已报废 -> 已丢失 | 固定资产报废审批:固定资产、图书或高价值物料需要报废 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 库存流水 | POST /api/v1/assets/lifecycle-actions | Inventory | 在库 -> 领用中 -> 已领用 -> 归还中 -> 调拨中 -> 维修中 -> 盘点中 -> 报废审批 -> 已报废 -> 已丢失 | 直播供应商配置审批:新增或变更直播供应商密钥、回调地址、录制存储、转码模板和域名配置 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
10 · 原型、UI、研发、测试交付补充
把关键闭环补强为下一阶段可执行任务
本章节为正式 PRD 的交付要求,面向原型图、UI、开发、联调和测试分工。| 能力域 | 功能补充要求 | 原型交付要求 | UI 交互要求 | 研发实现要求 | 测试验收要求 |
|---|---|---|---|---|---|
| 进销存范围 | 明确图书仅按库存和资产管理,补齐采购、入库、出库、调拨、盘点、报损、报废。 | 物料档案、图书库存、固定资产、库存流水 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;图书无借阅状态,只有库存和资产生命周期。 |
| 积分联动 | 补齐礼品 SKU、库存锁定、核销出库、取消释放、售后返库和积分流水。 | 礼品库存、兑换订单、核销台 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;库存数量、积分账户和核销记录一致。 |
| 采购财务 | 补齐采购申请、订单、入库差异、供应商对账、付款审批和凭证联动。 | 采购订单、入库单、对账单、付款单 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;采购入库后可形成库存/资产和财务应付链路。 |
11 · 数据对象与字段字典
明确页面、接口、数据库共同使用的数据语言
字段涉及敏感、人脸、财务、绩效时,原型需体现脱敏、授权和审计。核心对象
| 对象 | 说明 |
|---|---|
| Supplier | 供应商档案;落地表:mat_supplier |
| Material/Inventory/Asset/Book | 物料、固定资产、图书、礼品 SKU;落地表:mat_sku |
| Warehouse | 仓库和校区库位;落地表:mat_warehouse |
| Inventory | 库存余额;落地表:mat_inventory |
| StockIn | 采购入库/退货入库;落地表:mat_stock_in |
| StockOut | 领用出库/核销出库;落地表:mat_stock_out |
| Asset | 固定资产台账;落地表:mat_asset |
| AssetLifecycle/Maintenance | 资产维修与生命周期;落地表:mat_maintenance_order |
关联引用对象
| 对象 | 说明 |
|---|---|
| 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 |
| FinanceVoucher | 会计凭证;引用来源:FIN / fin_voucher |
| PointsOrder | 积分商城兑换订单;引用来源:APP / pts_order |
| PointsRedemptionAfterSales | 积分兑换售后;引用来源:APP / pts_after_sales |
| ClassroomCamera | 教室摄像头设备清单;引用来源:PAT / video_classroom_camera |
| FaceDevice | 人脸识别考勤设备;引用来源:FAC / dev_face_device |
| TVDevice | 安卓 TV 教学端设备;引用来源:TTV / tv_device |
完整字段字典
| 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|
| Supplier | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Supplier | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Supplier | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Supplier | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Supplier | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Supplier | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Supplier | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Supplier | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Supplier | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Supplier | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Supplier | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Supplier | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Supplier | supplier_code | VARCHAR(64) | 是 | 供应商编码,唯一 | 普通 |
| Supplier | supplier_name | VARCHAR(128) | 是 | 供应商名称 | 普通 |
| Supplier | contact_name | VARCHAR(64) | 否 | 联系人 | 普通 |
| Supplier | contact_mobile | VARCHAR(32) | 否 | 联系人手机,敏感 | 敏感 |
| Supplier | settlement_rule | JSON | 否 | 结算规则 | 普通 |
| Supplier | enabled | TINYINT | 是 | 是否启用 | 普通 |
| Material/Inventory/Asset/Book | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Material/Inventory/Asset/Book | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Material/Inventory/Asset/Book | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Material/Inventory/Asset/Book | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Material/Inventory/Asset/Book | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Material/Inventory/Asset/Book | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Material/Inventory/Asset/Book | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Material/Inventory/Asset/Book | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Material/Inventory/Asset/Book | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Material/Inventory/Asset/Book | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Material/Inventory/Asset/Book | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Material/Inventory/Asset/Book | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Material/Inventory/Asset/Book | sku_code | VARCHAR(64) | 是 | SKU 编码,唯一 | 普通 |
| Material/Inventory/Asset/Book | sku_name | VARCHAR(128) | 是 | SKU 名称 | 普通 |
| Material/Inventory/Asset/Book | sku_type | VARCHAR(32) | 是 | 物料/固定资产/图书/积分礼品 | 普通 |
| Material/Inventory/Asset/Book | unit | VARCHAR(16) | 是 | 计量单位 | 普通 |
| Material/Inventory/Asset/Book | gift_points | INT | 否 | 作为积分礼品时所需积分 | 普通 |
| Material/Inventory/Asset/Book | enabled | TINYINT | 是 | 是否启用 | 普通 |
| Warehouse | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Warehouse | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Warehouse | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Warehouse | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Warehouse | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Warehouse | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Warehouse | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Warehouse | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Warehouse | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Warehouse | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Warehouse | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Warehouse | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Warehouse | warehouse_code | VARCHAR(64) | 是 | 仓库编码,唯一 | 普通 |
| Warehouse | warehouse_name | VARCHAR(128) | 是 | 仓库名称 | 普通 |
| Warehouse | warehouse_type | VARCHAR(32) | 是 | 总部仓/校区仓/礼品仓/图书仓 | 普通 |
| Warehouse | manager_id | BIGINT | 否 | 仓库负责人 | 普通 |
| Warehouse | enabled | TINYINT | 是 | 是否启用 | 普通 |
| Inventory | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Inventory | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Inventory | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Inventory | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Inventory | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Inventory | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Inventory | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Inventory | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Inventory | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Inventory | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Inventory | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Inventory | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Inventory | sku_id | BIGINT | 是 | SKU ID | 普通 |
| Inventory | warehouse_id | BIGINT | 是 | 仓库 ID | 普通 |
| Inventory | available_qty | DECIMAL(18,2) | 是 | 可用库存 | 普通 |
| Inventory | locked_qty | DECIMAL(18,2) | 是 | 锁定库存 | 普通 |
| Inventory | in_transit_qty | DECIMAL(18,2) | 是 | 在途库存 | 普通 |
| Inventory | cost_amount | DECIMAL(18,2) | 否 | 库存成本 | 普通 |
| StockIn | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| StockIn | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| StockIn | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| StockIn | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| StockIn | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| StockIn | created_at | DATETIME | 是 | 创建时间 | 普通 |
| StockIn | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| StockIn | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| StockIn | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| StockIn | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| StockIn | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| StockIn | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| StockIn | stock_in_no | VARCHAR(64) | 是 | 入库单编号,唯一 | 普通 |
| StockIn | warehouse_id | BIGINT | 是 | 入库仓库 | 普通 |
| StockIn | supplier_id | BIGINT | 否 | 供应商 ID | 普通 |
| StockIn | source_biz_no | VARCHAR(64) | 否 | 来源单号 | 普通 |
| StockIn | line_items | JSON | 是 | 入库明细 | 普通 |
| StockIn | stock_in_status | VARCHAR(32) | 是 | 草稿/待审核/已入库/已作废 | 普通 |
| StockIn | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| StockIn | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| StockOut | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| StockOut | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| StockOut | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| StockOut | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| StockOut | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| StockOut | created_at | DATETIME | 是 | 创建时间 | 普通 |
| StockOut | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| StockOut | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| StockOut | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| StockOut | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| StockOut | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| StockOut | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| StockOut | stock_out_no | VARCHAR(64) | 是 | 出库单编号,唯一 | 普通 |
| StockOut | warehouse_id | BIGINT | 是 | 出库仓库 | 普通 |
| StockOut | use_scene | VARCHAR(32) | 是 | 教学/办公/积分兑换/报损/调拨 | 普通 |
| StockOut | source_biz_no | VARCHAR(64) | 否 | 来源单号 | 普通 |
| StockOut | line_items | JSON | 是 | 出库明细 | 普通 |
| StockOut | stock_out_status | VARCHAR(32) | 是 | 草稿/待审核/已出库/已作废 | 普通 |
| StockOut | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| StockOut | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| Asset | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Asset | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Asset | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Asset | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Asset | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Asset | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Asset | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Asset | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Asset | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Asset | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Asset | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Asset | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Asset | asset_no | VARCHAR(64) | 是 | 资产编号,唯一 | 普通 |
| Asset | sku_id | BIGINT | 是 | 资产 SKU | 普通 |
| Asset | owner_org_id | BIGINT | 否 | 归属组织 | 普通 |
| Asset | keeper_id | BIGINT | 否 | 保管人 | 普通 |
| Asset | purchase_date | DATE | 否 | 购置日期 | 普通 |
| Asset | asset_status | VARCHAR(32) | 是 | 在用/闲置/维修/报废/调拨中 | 普通 |
| AssetLifecycle/Maintenance | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| AssetLifecycle/Maintenance | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| AssetLifecycle/Maintenance | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| AssetLifecycle/Maintenance | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| AssetLifecycle/Maintenance | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| AssetLifecycle/Maintenance | created_at | DATETIME | 是 | 创建时间 | 普通 |
| AssetLifecycle/Maintenance | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| AssetLifecycle/Maintenance | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| AssetLifecycle/Maintenance | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| AssetLifecycle/Maintenance | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| AssetLifecycle/Maintenance | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| AssetLifecycle/Maintenance | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| AssetLifecycle/Maintenance | maintenance_no | VARCHAR(64) | 是 | 维修单编号,唯一 | 普通 |
| AssetLifecycle/Maintenance | asset_id | BIGINT | 是 | 资产 ID | 普通 |
| AssetLifecycle/Maintenance | fault_desc | VARCHAR(512) | 是 | 故障描述 | 普通 |
| AssetLifecycle/Maintenance | repair_vendor_id | BIGINT | 否 | 维修供应商 | 普通 |
| AssetLifecycle/Maintenance | repair_amount | DECIMAL(18,2) | 否 | 维修金额 | 普通 |
| AssetLifecycle/Maintenance | maintenance_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 | 是 | 是否加水印 | 普通 |
| 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 | 普通 |
| pts_order | PointsOrder | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| pts_order | PointsOrder | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| pts_order | PointsOrder | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| pts_order | PointsOrder | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| pts_order | PointsOrder | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| pts_order | PointsOrder | created_at | DATETIME | 是 | 创建时间 | 普通 |
| pts_order | PointsOrder | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| pts_order | PointsOrder | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| pts_order | PointsOrder | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| pts_order | PointsOrder | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| pts_order | PointsOrder | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| pts_order | PointsOrder | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| pts_order | PointsOrder | order_no | VARCHAR(64) | 是 | 积分订单编号,唯一 | 普通 |
| pts_order | PointsOrder | student_id | BIGINT | 是 | 学员 ID | 普通 |
| pts_order | PointsOrder | gift_sku_id | BIGINT | 是 | 礼品 SKU ID,关联物料 | 普通 |
| pts_order | PointsOrder | lock_id | BIGINT | 否 | 积分锁库记录 ID | 普通 |
| pts_order | PointsOrder | points_amount | INT | 是 | 消耗积分 | 普通 |
| pts_order | PointsOrder | write_off_code_id | BIGINT | 否 | 核销码 ID | 普通 |
| pts_order | PointsOrder | order_status | VARCHAR(32) | 是 | 待领取/已核销/已取消/售后中 | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | created_at | DATETIME | 是 | 创建时间 | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | after_sales_no | VARCHAR(64) | 是 | 售后编号,唯一 | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | points_order_id | BIGINT | 是 | 积分订单 ID | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | request_type | VARCHAR(32) | 是 | 取消/退积分/补发/异常核销 | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | request_reason | VARCHAR(512) | 是 | 申请原因 | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | handle_result | VARCHAR(512) | 否 | 处理结果 | 普通 |
| pts_after_sales | PointsRedemptionAfterSales | handle_status | VARCHAR(32) | 是 | 待处理/已处理/已驳回 | 普通 |
| video_classroom_camera | ClassroomCamera | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| video_classroom_camera | ClassroomCamera | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| video_classroom_camera | ClassroomCamera | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| video_classroom_camera | ClassroomCamera | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| video_classroom_camera | ClassroomCamera | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| video_classroom_camera | ClassroomCamera | created_at | DATETIME | 是 | 创建时间 | 普通 |
| video_classroom_camera | ClassroomCamera | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| video_classroom_camera | ClassroomCamera | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| video_classroom_camera | ClassroomCamera | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| video_classroom_camera | ClassroomCamera | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| video_classroom_camera | ClassroomCamera | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| video_classroom_camera | ClassroomCamera | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| video_classroom_camera | ClassroomCamera | camera_code | VARCHAR(64) | 是 | 摄像头编码,唯一 | 普通 |
| video_classroom_camera | ClassroomCamera | camera_name | VARCHAR(128) | 是 | 摄像头名称 | 普通 |
| video_classroom_camera | ClassroomCamera | platform_id | BIGINT | 是 | 所属视频平台 | 普通 |
| video_classroom_camera | ClassroomCamera | gateway_id | BIGINT | 否 | 门店网关 ID | 普通 |
| video_classroom_camera | ClassroomCamera | classroom_id | BIGINT | 否 | 教室 ID | 普通 |
| video_classroom_camera | ClassroomCamera | stream_address | VARCHAR(512) | 否 | 直播流地址 | 普通 |
| video_classroom_camera | ClassroomCamera | camera_status | VARCHAR(32) | 是 | 在线/离线/停用/异常 | 普通 |
| dev_face_device | FaceDevice | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| dev_face_device | FaceDevice | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| dev_face_device | FaceDevice | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| dev_face_device | FaceDevice | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| dev_face_device | FaceDevice | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| dev_face_device | FaceDevice | created_at | DATETIME | 是 | 创建时间 | 普通 |
| dev_face_device | FaceDevice | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| dev_face_device | FaceDevice | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| dev_face_device | FaceDevice | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| dev_face_device | FaceDevice | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| dev_face_device | FaceDevice | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| dev_face_device | FaceDevice | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| dev_face_device | FaceDevice | device_code | VARCHAR(64) | 是 | 设备编码,唯一 | 普通 |
| dev_face_device | FaceDevice | vendor_code | VARCHAR(32) | 是 | 设备品牌/厂商 | 普通 |
| dev_face_device | FaceDevice | device_name | VARCHAR(128) | 是 | 设备名称 | 普通 |
| dev_face_device | FaceDevice | classroom_id | BIGINT | 否 | 绑定教室 ID | 普通 |
| dev_face_device | FaceDevice | api_endpoint | VARCHAR(512) | 否 | 设备或平台 API 地址 | 普通 |
| dev_face_device | FaceDevice | device_status | VARCHAR(32) | 是 | 在线/离线/停用/异常 | 普通 |
| tv_device | TVDevice | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| tv_device | TVDevice | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| tv_device | TVDevice | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| tv_device | TVDevice | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| tv_device | TVDevice | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| tv_device | TVDevice | created_at | DATETIME | 是 | 创建时间 | 普通 |
| tv_device | TVDevice | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| tv_device | TVDevice | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| tv_device | TVDevice | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| tv_device | TVDevice | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| tv_device | TVDevice | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| tv_device | TVDevice | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| tv_device | TVDevice | device_code | VARCHAR(64) | 是 | TV 设备编码,唯一 | 普通 |
| tv_device | TVDevice | classroom_id | BIGINT | 是 | 绑定教室 ID | 普通 |
| tv_device | TVDevice | app_version | VARCHAR(32) | 是 | 应用版本 | 普通 |
| tv_device | TVDevice | device_status | VARCHAR(32) | 是 | 在线/离线/停用/异常 | 普通 |
| tv_device | TVDevice | heartbeat_at | DATETIME | 否 | 最近心跳 | 普通 |
| tv_device | TVDevice | focus_mode | VARCHAR(32) | 否 | 遥控器焦点模式 | 普通 |
JSON 字段结构与校验
| 表名 | 对象 | 字段 | 结构编码 | 结构定义 | 校验规则 | 示例 |
|---|---|---|---|---|---|---|
| mat_supplier | Supplier | settlement_rule | INVENTORY_LINES | [{skuId:number, warehouseId:number, qty:number, unitCost:number, batchNo?:string, sourceBizNo?:string}] | 数量必须大于 0;成本策略按物料配置计算 | [{"skuId":501,"warehouseId":9,"qty":10,"unitCost":12.5}] |
| mat_stock_in | StockIn | line_items | INVENTORY_LINES | [{skuId:number, warehouseId:number, qty:number, unitCost:number, batchNo?:string, sourceBizNo?:string}] | 数量必须大于 0;成本策略按物料配置计算 | [{"skuId":501,"warehouseId":9,"qty":10,"unitCost":12.5}] |
| mat_stock_out | StockOut | line_items | INVENTORY_LINES | [{skuId:number, warehouseId:number, qty:number, unitCost:number, batchNo?:string, sourceBizNo?:string}] | 数量必须大于 0;成本策略按物料配置计算 | [{"skuId":501,"warehouseId":9,"qty":10,"unitCost":12.5}] |
状态/枚举标准字典
| 表名 | 对象 | 字段 | 枚举编码 | 取值 | 终态/流转规则 | 字段说明 |
|---|---|---|---|---|---|---|
| mat_supplier | Supplier | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| mat_supplier | Supplier | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| mat_supplier | Supplier | enabled | ENABLED_STATUS | 0 停用、1 启用 | 非终态,可按状态机或字典规则流转 | 是否启用 |
| mat_sku | Material/Inventory/Asset/Book | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| mat_sku | Material/Inventory/Asset/Book | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| mat_sku | Material/Inventory/Asset/Book | sku_type | SKU_TYPE | 物料、固定资产、图书、积分礼品 | 非终态,可按状态机或字典规则流转 | 物料/固定资产/图书/积分礼品 |
| mat_sku | Material/Inventory/Asset/Book | enabled | ENABLED_STATUS | 0 停用、1 启用 | 非终态,可按状态机或字典规则流转 | 是否启用 |
| mat_warehouse | Warehouse | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| mat_warehouse | Warehouse | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| mat_warehouse | Warehouse | warehouse_type | WAREHOUSE_TYPE | 总部仓、校区仓、礼品仓、图书仓 | 非终态,可按状态机或字典规则流转 | 总部仓/校区仓/礼品仓/图书仓 |
| mat_warehouse | Warehouse | enabled | ENABLED_STATUS | 0 停用、1 启用 | 非终态,可按状态机或字典规则流转 | 是否启用 |
| mat_inventory | Inventory | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| mat_inventory | Inventory | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| mat_stock_in | StockIn | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| mat_stock_in | StockIn | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| mat_stock_in | StockIn | stock_in_status | STOCK_IN_STATUS | 草稿、待审核、已入库、已作废 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 草稿/待审核/已入库/已作废 |
| mat_stock_in | StockIn | approval_status | APPROVAL_STATUS | NOT_STARTED 未发起、PENDING 审批中、APPROVED 已通过、REJECTED 已驳回、REVOKED 已撤回 | 非终态,可按状态机或字典规则流转 | 审批状态,未发起为空 |
| mat_stock_out | StockOut | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| mat_stock_out | StockOut | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| mat_stock_out | StockOut | use_scene | USE_SCENE | 教学、办公、积分兑换、报损、调拨 | 非终态,可按状态机或字典规则流转 | 教学/办公/积分兑换/报损/调拨 |
| mat_stock_out | StockOut | stock_out_status | STOCK_OUT_STATUS | 草稿、待审核、已出库、已作废 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 草稿/待审核/已出库/已作废 |
| mat_stock_out | StockOut | approval_status | APPROVAL_STATUS | NOT_STARTED 未发起、PENDING 审批中、APPROVED 已通过、REJECTED 已驳回、REVOKED 已撤回 | 非终态,可按状态机或字典规则流转 | 审批状态,未发起为空 |
| mat_asset | Asset | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| mat_asset | Asset | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| mat_asset | Asset | asset_status | ASSET_STATUS | 在用、闲置、维修、报废、调拨中 | 非终态,可按状态机或字典规则流转 | 在用/闲置/维修/报废/调拨中 |
| mat_maintenance_order | AssetLifecycle/Maintenance | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| mat_maintenance_order | AssetLifecycle/Maintenance | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| mat_maintenance_order | AssetLifecycle/Maintenance | maintenance_status | MAINTENANCE_STATUS | 待维修、维修中、已完成、已报废 | 非终态,可按状态机或字典规则流转 | 待维修/维修中/已完成/已报废 |
敏感字段与数据安全策略
| 来源 | 表名 | 对象 | 字段 | 数据级别 | 脱敏/返回策略 | 明文查看条件 | 导出策略 | 审计要求 | 端侧展示规则 |
|---|---|---|---|---|---|---|---|---|---|
| 本模块对象 | mat_supplier | Supplier | contact_mobile | 敏感 | MOBILE_MASK | 默认展示 138****0000;明文查看需字段权限或敏感字段查看审批 | 导出手机号必须触发导出审批、下载水印和有效期控制 | 明文查看、复制、导出和批量下载均写入 SensitiveAccessLog | PC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息 |
| 引用对象 | 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 | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | fin_voucher | FinanceVoucher | voucher_no | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
核心数据表完整字段
| 表名 | 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|---|
| mat_supplier | Supplier | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| mat_supplier | Supplier | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| mat_supplier | Supplier | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| mat_supplier | Supplier | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| mat_supplier | Supplier | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| mat_supplier | Supplier | created_at | DATETIME | 是 | 创建时间 | 普通 |
| mat_supplier | Supplier | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| mat_supplier | Supplier | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| mat_supplier | Supplier | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| mat_supplier | Supplier | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| mat_supplier | Supplier | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| mat_supplier | Supplier | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| mat_supplier | Supplier | supplier_code | VARCHAR(64) | 是 | 供应商编码,唯一 | 普通 |
| mat_supplier | Supplier | supplier_name | VARCHAR(128) | 是 | 供应商名称 | 普通 |
| mat_supplier | Supplier | contact_name | VARCHAR(64) | 否 | 联系人 | 普通 |
| mat_supplier | Supplier | contact_mobile | VARCHAR(32) | 否 | 联系人手机,敏感 | 敏感 |
| mat_supplier | Supplier | settlement_rule | JSON | 否 | 结算规则 | 普通 |
| mat_supplier | Supplier | enabled | TINYINT | 是 | 是否启用 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| mat_sku | Material/Inventory/Asset/Book | created_at | DATETIME | 是 | 创建时间 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| mat_sku | Material/Inventory/Asset/Book | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | sku_code | VARCHAR(64) | 是 | SKU 编码,唯一 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | sku_name | VARCHAR(128) | 是 | SKU 名称 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | sku_type | VARCHAR(32) | 是 | 物料/固定资产/图书/积分礼品 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | unit | VARCHAR(16) | 是 | 计量单位 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | gift_points | INT | 否 | 作为积分礼品时所需积分 | 普通 |
| mat_sku | Material/Inventory/Asset/Book | enabled | TINYINT | 是 | 是否启用 | 普通 |
| mat_warehouse | Warehouse | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| mat_warehouse | Warehouse | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| mat_warehouse | Warehouse | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| mat_warehouse | Warehouse | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| mat_warehouse | Warehouse | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| mat_warehouse | Warehouse | created_at | DATETIME | 是 | 创建时间 | 普通 |
| mat_warehouse | Warehouse | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| mat_warehouse | Warehouse | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| mat_warehouse | Warehouse | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| mat_warehouse | Warehouse | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| mat_warehouse | Warehouse | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| mat_warehouse | Warehouse | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| mat_warehouse | Warehouse | warehouse_code | VARCHAR(64) | 是 | 仓库编码,唯一 | 普通 |
| mat_warehouse | Warehouse | warehouse_name | VARCHAR(128) | 是 | 仓库名称 | 普通 |
| mat_warehouse | Warehouse | warehouse_type | VARCHAR(32) | 是 | 总部仓/校区仓/礼品仓/图书仓 | 普通 |
| mat_warehouse | Warehouse | manager_id | BIGINT | 否 | 仓库负责人 | 普通 |
| mat_warehouse | Warehouse | enabled | TINYINT | 是 | 是否启用 | 普通 |
| mat_inventory | Inventory | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| mat_inventory | Inventory | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| mat_inventory | Inventory | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| mat_inventory | Inventory | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| mat_inventory | Inventory | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| mat_inventory | Inventory | created_at | DATETIME | 是 | 创建时间 | 普通 |
| mat_inventory | Inventory | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| mat_inventory | Inventory | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| mat_inventory | Inventory | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| mat_inventory | Inventory | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| mat_inventory | Inventory | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| mat_inventory | Inventory | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| mat_inventory | Inventory | sku_id | BIGINT | 是 | SKU ID | 普通 |
| mat_inventory | Inventory | warehouse_id | BIGINT | 是 | 仓库 ID | 普通 |
| mat_inventory | Inventory | available_qty | DECIMAL(18,2) | 是 | 可用库存 | 普通 |
| mat_inventory | Inventory | locked_qty | DECIMAL(18,2) | 是 | 锁定库存 | 普通 |
| mat_inventory | Inventory | in_transit_qty | DECIMAL(18,2) | 是 | 在途库存 | 普通 |
| mat_inventory | Inventory | cost_amount | DECIMAL(18,2) | 否 | 库存成本 | 普通 |
| 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 | 普通 |
| mat_asset | Asset | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| mat_asset | Asset | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| mat_asset | Asset | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| mat_asset | Asset | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| mat_asset | Asset | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| mat_asset | Asset | created_at | DATETIME | 是 | 创建时间 | 普通 |
| mat_asset | Asset | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| mat_asset | Asset | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| mat_asset | Asset | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| mat_asset | Asset | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| mat_asset | Asset | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| mat_asset | Asset | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| mat_asset | Asset | asset_no | VARCHAR(64) | 是 | 资产编号,唯一 | 普通 |
| mat_asset | Asset | sku_id | BIGINT | 是 | 资产 SKU | 普通 |
| mat_asset | Asset | owner_org_id | BIGINT | 否 | 归属组织 | 普通 |
| mat_asset | Asset | keeper_id | BIGINT | 否 | 保管人 | 普通 |
| mat_asset | Asset | purchase_date | DATE | 否 | 购置日期 | 普通 |
| mat_asset | Asset | asset_status | VARCHAR(32) | 是 | 在用/闲置/维修/报废/调拨中 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | created_at | DATETIME | 是 | 创建时间 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | maintenance_no | VARCHAR(64) | 是 | 维修单编号,唯一 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | asset_id | BIGINT | 是 | 资产 ID | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | fault_desc | VARCHAR(512) | 是 | 故障描述 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | repair_vendor_id | BIGINT | 否 | 维修供应商 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | repair_amount | DECIMAL(18,2) | 否 | 维修金额 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | maintenance_status | VARCHAR(32) | 是 | 待维修/维修中/已完成/已报废 | 普通 |
数据表与对象映射
| 表名 | 对象 | 用途 | 完整字段 | 索引建议 |
|---|---|---|---|---|
| mat_supplier | Supplier | 供应商档案 | 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,必填)、supplier_code(VARCHAR(64),必填)、supplier_name(VARCHAR(128),必填)、contact_name(VARCHAR(64))、contact_mobile(VARCHAR(32))、settlement_rule(JSON)、enabled(TINYINT,必填) | uk_supplier_code、idx_enabled |
| mat_sku | Material/Inventory/Asset/Book | 物料、固定资产、图书、礼品 SKU | 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,必填)、sku_code(VARCHAR(64),必填)、sku_name(VARCHAR(128),必填)、sku_type(VARCHAR(32),必填)、unit(VARCHAR(16),必填)、gift_points(INT)、enabled(TINYINT,必填) | uk_sku_code、idx_type |
| mat_warehouse | Warehouse | 仓库和校区库位 | 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,必填)、warehouse_code(VARCHAR(64),必填)、warehouse_name(VARCHAR(128),必填)、warehouse_type(VARCHAR(32),必填)、manager_id(BIGINT)、enabled(TINYINT,必填) | uk_warehouse_code、idx_type |
| mat_inventory | Inventory | 库存余额 | 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,必填)、sku_id(BIGINT,必填)、warehouse_id(BIGINT,必填)、available_qty(DECIMAL(18,2),必填)、locked_qty(DECIMAL(18,2),必填)、in_transit_qty(DECIMAL(18,2),必填)、cost_amount(DECIMAL(18,2)) | uk_sku_warehouse |
| mat_stock_in | StockIn | 采购入库/退货入库 | 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,必填)、stock_in_no(VARCHAR(64),必填)、warehouse_id(BIGINT,必填)、supplier_id(BIGINT)、source_biz_no(VARCHAR(64))、line_items(JSON,必填)、stock_in_status(VARCHAR(32),必填)、approval_status(VARCHAR(32))、approval_instance_id(BIGINT) | uk_stock_in_no、idx_status |
| mat_stock_out | StockOut | 领用出库/核销出库 | 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,必填)、stock_out_no(VARCHAR(64),必填)、warehouse_id(BIGINT,必填)、use_scene(VARCHAR(32),必填)、source_biz_no(VARCHAR(64))、line_items(JSON,必填)、stock_out_status(VARCHAR(32),必填)、approval_status(VARCHAR(32))、approval_instance_id(BIGINT) | uk_stock_out_no、idx_scene_status |
| mat_asset | Asset | 固定资产台账 | 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,必填)、asset_no(VARCHAR(64),必填)、sku_id(BIGINT,必填)、owner_org_id(BIGINT)、keeper_id(BIGINT)、purchase_date(DATE)、asset_status(VARCHAR(32),必填) | uk_asset_no、idx_status |
| mat_maintenance_order | AssetLifecycle/Maintenance | 资产维修与生命周期 | 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,必填)、maintenance_no(VARCHAR(64),必填)、asset_id(BIGINT,必填)、fault_desc(VARCHAR(512),必填)、repair_vendor_id(BIGINT)、repair_amount(DECIMAL(18,2))、maintenance_status(VARCHAR(32),必填) | uk_maintenance_no、idx_asset_status |
12 · 状态机与业务规则
约束业务对象如何流转、何时可编辑、何时触发审批
原型需要把状态标签、可操作按钮和禁用原因展示清楚。| 对象 | 状态 | 触发与说明 |
|---|---|---|
| 督课评分 | 待评分 -> 系统初评 -> 待复核 -> 已确认 -> 申诉中 -> 已调整 -> 已归档 | 学生数据采集、教师数据采集、系统评分、督课复核、校长确认和申诉处理 |
| 监管报送 | 待生成 -> 待报送 -> 报送中 -> 成功 -> 失败 -> 待重报 -> 人工处理 | 合同备案、收款、课消、退费报送与回执 |
| 报销单 | 草稿 -> 待 OCR -> 待核验 -> 待审批 -> 已通过 -> 待付款 -> 已付款 -> 已驳回 -> 已作废 | 员工填单、票据识别、发票核验、查重、审批、付款归档 |
| 物料库存 | 待入库 -> 在库 -> 已锁定 -> 已出库 -> 调拨中 -> 盘点中 -> 已报废 | 采购入库、领用、兑换锁库、调拨、盘点、报废 |
| 工单 | 新建 -> 已分派 -> 处理中 -> 待家长确认 -> 已关闭 -> 已升级 -> 已驳回 | 投诉建议、服务请求、教学反馈和退费咨询 |
| 员工培训 | 未分配 -> 待学习 -> 学习中 -> 待考试 -> 已通过 -> 未通过 -> 补训中 -> 已逾期 | 培训计划发布、学习进度、考试成绩、补考复训和学习档案归档 |
| 直播房间 | 草稿 -> 待开播 -> 直播中 -> 已结束 -> 回放生成中 -> 可回放 -> 异常 -> 已关闭 | 创建房间、供应商资源申请、教师开播、下课、录制转码、回放发布和异常关闭 |
| 直播录制 | 未录制 -> 录制中 -> 转码中 -> 可回放 -> 转码失败 -> 已过期 -> 已归档 | 供应商录制回调、转码任务、回放发布、留存过期和资料归档 |
| 活动页面模板 | 草稿 -> 待审核 -> 已上架 -> 已驳回 -> 已下架 -> 已归档 | 模板创建、转模板提交、审核、上架、下架、归档和复用 |
| 直播连麦请求 | 未举手 -> 已举手排队 -> 教师邀请中 -> 连接中 -> 上麦中 -> 已下麦 -> 已拒绝 -> 已取消 -> 已超时 -> 连接失败 | 学员举手进入队列,教师处理后进入邀请和连接;取消、拒绝、超时、失败、下麦均写入互动事件和连麦请求记录 |
| 积分兑换售后 | 待处理 -> 积分退回中 -> 库存释放中 -> 已完成 -> 失败待人工 -> 已关闭 | 兑换取消、过期未核销、核销撤销和库存回滚 |
| 资产生命周期 | 在库 -> 领用中 -> 已领用 -> 归还中 -> 调拨中 -> 维修中 -> 盘点中 -> 报废审批 -> 已报废 -> 已丢失 | 固定资产领用、归还、责任人变更、调拨、维修、报废和丢失处理 |
| 采购对账付款 | 询价中 -> 待审批 -> 待下单 -> 待入库 -> 入库差异 -> 待对账 -> 对账不平 -> 待付款 -> 已付款 -> 已退货 -> 已关闭 | 采购申请、入库、对账、付款、退货和凭证归档 |
| 电子工资条 | 待生成 -> 待审核 -> 待发布 -> 已发布 -> 员工已查看 -> 异议中 -> 已确认 -> 已归档 | 薪资核算、审批、发布、员工查看确认、异议处理和归档 |
| 人脸授权撤回 | 已提交 -> 家长已确认 -> 设备删除中 -> 部分失败 -> 已删除 -> 人工处理 -> 已关闭 | 家长撤回、人脸模板删除任务、设备回执、失败重试和审计 |
| 回放发布访问 | 待发布 -> 已发布 -> 已下架 -> 已过期 -> 无权限 -> 访问异常 | 回放生成、范围发布、鉴权访问、下架、过期和异常处理 |
| 指标异常任务 | 已触发 -> 待认领 -> 处理中 -> 已反馈 -> 已关闭 -> 已忽略 -> 已升级 | 指标阈值触发、责任人处理、反馈和关闭确认 |
| 补课改期取消 | 已确认 -> 改期申请中 -> 取消申请中 -> 教务处理中 -> 已重新安排 -> 已拒绝 -> 已关闭 -> 待冲正 -> 已冲正 | 家长发起改期或取消,教务处理候选课次和课消冲正,最终回到补课安排或关闭 |
| 回放补传替换 | 录制失败 -> 待补传 -> 审核中 -> 已发布 -> 替换中 -> 已替换 -> 已通知 -> 已驳回 -> 已下架 | 录制失败或回放损坏后人工补传、审核、版本替换、通知和学习记录处理 |
| 积分实物售后 | 已领取 -> 售后申请中 -> 待返库 -> 待换新 -> 待报损 -> 积分返还中 -> 已完成 -> 已拒绝 | 礼品领取后退换货、坏损、返库报损、积分返还和库存流水处理 |
| 库存成本策略 | 草稿 -> 待审核 -> 已启用 -> 已停用 -> 待重算 -> 重算中 -> 已归档 | 成本计价规则配置、审批、生效、停用和历史成本处理 |
| 设备维修工单 | 待派单 -> 已派单 -> 已接单 -> 排查中 -> 待恢复校验 -> 已恢复 -> 已关闭 -> 已升级 | 视频设备离线告警生成维修工单,恢复后回测直播、回放、录像索引 |
| 工资条撤回重发 | 已发布 -> 撤回中 -> 已撤回 -> 重发待审核 -> 已重发 -> 待重新确认 -> 已确认 -> 已归档 | 工资条发布错误后撤回、重发、员工重新确认和版本留痕 |
| 线索客户合并仲裁 | 待识别 -> 撞单待处理 -> 合并中 -> 仲裁中 -> 已合并 -> 已裁定 -> 误合并恢复中 | 线索撞单、客户合并、归属争议仲裁和恢复 |
| 课堂端会话 | 待绑定 -> 已绑定 -> 待开课 -> 授课中 -> 暂停中 -> 已结束 -> 异常断开 | 教师或教室设备创建课堂会话,TV 与教师端完成绑定后同步课件、互动和课堂状态;断开后可重连,结束后归档审计。 |
| 教师端工作台任务 | 待处理 -> 处理中 -> 已完成 -> 已驳回 -> 已超时 -> 已取消 | 课程、批改、审批、培训、报销、工资条和直播任务统一进入工作台待办,并按业务模块回写处理状态。 |
| 员工推广资产 | 待生成 -> 已生成 -> 分享中 -> 已停用 -> 已失效 -> 生成失败 | 员工在教师端领取活动后生成专属短链、二维码和海报,活动停用或超期后资产失效 |
| 员工分享记录 | 已分享 -> 已访问 -> 已扫码 -> 已留资 -> 已生成线索 -> 已预约试听 -> 已签约 -> 已流失 | 外部访问、扫码、留资和转化阶段均回写员工分享记录 |
物料资产中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
物料资产中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
物料资产中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
物料资产中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
物料资产中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
物料资产中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
13 · 权限、审批与消息
动作权限、数据范围、审批触发和消息触达必须闭环
权限需要覆盖菜单、按钮、字段、接口和导出。动作权限
- SKU 建档:需映射菜单、按钮、接口和字段权限
- 采购申请:需映射菜单、按钮、接口和字段权限
- 验收入库:需映射菜单、按钮、接口和字段权限
- 采购对账:需映射菜单、按钮、接口和字段权限
- 采购付款:需映射菜单、按钮、接口和字段权限
- 领用出库:需映射菜单、按钮、接口和字段权限
- 资产维修:需映射菜单、按钮、接口和字段权限
- 责任人变更:需映射菜单、按钮、接口和字段权限
- 盘点调拨:需映射菜单、按钮、接口和字段权限
- 礼品核销:需映射菜单、按钮、接口和字段权限
数据范围
- 总部全量
- 区域辖区
- 校区本地
- 部门/岗位
- 本人负责
- 授权班级/学员
审批配置
| 审批名称 | 触发条件 | 流程 | 结果 | 留痕 |
|---|---|---|---|---|
| 报销审批 | 员工提交费用报销或发票查重命中风险 | 员工提交 -> 部门主管 -> 校长/预算负责人 -> 财务复核 | 通过后进入付款,驳回后返回报销人修改 | 保留票据影像、OCR 结果、核验结果、查重结果和审批意见 |
| 物料采购审批 | 采购金额超过阈值、跨校区采购或固定资产采购 | 申请人 -> 校区负责人 -> 采购/财务 -> 总部审批 | 通过后生成采购订单和到货验收任务 | 保留预算、供应商、报价和采购合同附件 |
| 固定资产报废审批 | 固定资产、图书或高价值物料需要报废 | 责任人提交 -> 校区负责人 -> 资产管理员 -> 财务复核 | 通过后出库、报废并生成财务核销记录 | 保留照片、盘点记录、处置说明和残值 |
| 人脸授权撤回处理 | 家长撤回人脸授权 | 家长提交 -> 系统确认 -> 设备管理员执行 | 停止识别并下发删除任务 | 保留撤回凭证和删除结果 |
| 薪资审批 | 月度薪资批次生成后 | 人事核算 -> 校长确认 -> 财务复核 -> 总部终审 | 工资条发布并生成凭证 | 保留规则版本和计算明细 |
| 监管异常人工关闭 | 监管报送连续失败或需人工确认 | 财务提交 -> 财务主管审批 | 异常关闭或重报 | 保留回执、原因和处理附件 |
| 直播供应商配置审批 | 新增或变更直播供应商密钥、回调地址、录制存储、转码模板和域名配置 | 技术运维 -> 系统管理员 -> 安全管理员 | 通过后配置生效并触发连通性校验,同一租户仅保留一个启用供应商 | 保留配置前后快照和验签结果 |
| 系统节日模板上架审批 | 新增或调整 24 节气、传统节日等系统内置模板 | 设计/市场 -> 品牌审核 -> 总部管理员 | 通过后上架到模板库并可被活动创建引用 | 保留模板版本、素材版权、适用范围和上下架记录 |
消息模板
| 消息 | 接收人 | 触发 | 渠道 | 变量 |
|---|---|---|---|---|
| 试听预约通知 | 家长/教师/顾问 | 试听课预约成功或变更 | 小程序、短信、App | 上课时间、校区、教室、教师 |
| 库存预警 | 库管/校区负责人 | 物料或礼品低于安全库存 | 站内信、App、企微 | SKU、校区、当前库存、安全库存、补货建议 |
| 积分兑换核销通知 | 学员/家长/校区前台 | 兑换成功、即将过期或核销完成 | 小程序、App、站内信 | 礼品名称、兑换码、核销校区、有效期 |
| 摄像头离线告警 | 设备管理员/校区前台 | 摄像头心跳超时或拉流失败 | 站内信、App | 校区、教室、摄像头编号、品牌、异常时间 |
| 培训任务通知 | 员工/直属主管 | 培训计划发布或即将到期 | 站内信、App、微信小程序 | 培训名称、截止时间、必修状态、学习入口 |
| 考试结果通知 | 员工/人事/直属主管 | 员工提交培训考试 | 站内信、App | 考试名称、得分、是否通过、补考安排 |
| 集团会议直播通知 | 员工/主管/总部 | 会议发布、开播、未签到、纪要任务生成 | App、站内信、企微 | 会议主题、参会范围、签到状态、任务入口 |
| 直播回放生成通知 | 教师/教务/学员/员工 | 录制转码完成或失败 | App、站内信、小程序 | 直播标题、回放入口、有效期、失败原因 |
14 · 接口与技术细节
接口需支持幂等、权限、审计、重试和回执
每个写接口必须有 requestId 或业务幂等键,外部回调必须验签和去重。| 接口 | 方法 | 方向 | 请求字段 | 响应字段 | 幂等/权限 |
|---|---|---|---|---|---|
| /api/v1/material/skus | POST/GET | PC Web 到物料 | skuCode, skuName, category, unit, stockRule | skuId, status, stockSummary | skuCode 唯一 |
| /api/v1/material/purchase-orders | POST | PC Web 到物料 | supplierId, items, expectedAt, requestId | poId, auditStatus, totalAmount | requestId 幂等 |
| /api/v1/material/purchase-reconciliations | POST/GET | PC Web 到物料财务 | supplierId, purchaseOrderIds, inboundNos, invoiceIds, requestId | reconcileId, reconcileStatus, diffItems | 供应商 + 采购单幂等 |
| /api/v1/material/purchase-payments | POST | PC Web 到财务 | reconcileId, paymentAccountId, payAmount, attachments, requestId | paymentId, paymentStatus, voucherTaskId | reconcileId + requestId 幂等 |
| /api/v1/inventory/stock-locks | POST | 积分商城到库存 | skuId, warehouseId, quantity, bizNo | lockId, lockStatus, expireAt | bizNo 唯一 |
| /api/v1/assets/books | POST/GET | PC Web 到资产 | bookCode, isbn, ownerCampusId, status | bookId, assetStatus, location | 资产编号唯一 |
| /api/v1/assets/lifecycle-actions | POST | PC Web 到物料资产 | assetId, actionType, targetOwnerId, targetWarehouseId, reason, attachments, requestId | actionId, assetLifecycleStatus, approvalStatus | 资产状态校验 |
| /api/v1/points/redemptions/{id}/write-off | POST | 前台到积分商城 | orderId, writeOffCode, operatorId | writeOffStatus, outboundNo | 核销码一次性使用 |
前端约束
- 统一登录态和租户校区上下文
- 列表分页、筛选、排序、列显隐
- 表单本地校验与服务端错误映射
- 移动/平板/TV 按终端适配交互
后端约束
- 领域服务封装业务规则
- 写操作事务一致性
- 关键操作审计快照
- 异步任务失败重试和告警
集成约束
- 第三方接口统一走开放集成中心
- 回执文件归档
- 接口日志可按业务单号追踪
- 密钥和回调地址按环境隔离
15 · 数据库与存储设计
核心表建议、关键字段和索引方向
详细 DDL 已在平台技术设计文档中统一展开,本处保留模块核心表、关键字段和索引方向。| 表名 | 用途 | 核心字段 | 索引建议 |
|---|---|---|---|
| mat_supplier | 供应商档案 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、supplier_code、supplier_name、contact_name、contact_mobile、settlement_rule、enabled | uk_supplier_code、idx_enabled |
| mat_sku | 物料、固定资产、图书、礼品 SKU | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、sku_code、sku_name、sku_type、unit、gift_points、enabled | uk_sku_code、idx_type |
| mat_warehouse | 仓库和校区库位 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、warehouse_code、warehouse_name、warehouse_type、manager_id、enabled | uk_warehouse_code、idx_type |
| mat_inventory | 库存余额 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、sku_id、warehouse_id、available_qty、locked_qty、in_transit_qty、cost_amount | uk_sku_warehouse |
| mat_stock_in | 采购入库/退货入库 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、stock_in_no、warehouse_id、supplier_id、source_biz_no、line_items、stock_in_status、approval_status、approval_instance_id | uk_stock_in_no、idx_status |
| mat_stock_out | 领用出库/核销出库 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、stock_out_no、warehouse_id、use_scene、source_biz_no、line_items、stock_out_status、approval_status、approval_instance_id | uk_stock_out_no、idx_scene_status |
| mat_asset | 固定资产台账 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、asset_no、sku_id、owner_org_id、keeper_id、purchase_date、asset_status | uk_asset_no、idx_status |
| mat_maintenance_order | 资产维修与生命周期 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、maintenance_no、asset_id、fault_desc、repair_vendor_id、repair_amount、maintenance_status | uk_maintenance_no、idx_asset_status |
DDL 草案
mat_supplierSupplier
CREATE TABLE `mat_supplier` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`supplier_code` VARCHAR(64) NOT NULL COMMENT '供应商编码,唯一;数据级别:普通',
`supplier_name` VARCHAR(128) NOT NULL COMMENT '供应商名称;数据级别:普通',
`contact_name` VARCHAR(64) NULL COMMENT '联系人;数据级别:普通',
`contact_mobile` VARCHAR(32) NULL COMMENT '联系人手机,敏感;数据级别:敏感',
`settlement_rule` JSON NULL COMMENT '结算规则;数据级别:普通',
`enabled` TINYINT NOT NULL COMMENT '是否启用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_supplier_code` (`supplier_code`),
KEY `idx_enabled` (`enabled`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Supplier:供应商档案';
mat_skuMaterial/Inventory/Asset/Book
CREATE TABLE `mat_sku` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`sku_code` VARCHAR(64) NOT NULL COMMENT 'SKU 编码,唯一;数据级别:普通',
`sku_name` VARCHAR(128) NOT NULL COMMENT 'SKU 名称;数据级别:普通',
`sku_type` VARCHAR(32) NOT NULL COMMENT '物料/固定资产/图书/积分礼品;数据级别:普通',
`unit` VARCHAR(16) NOT NULL COMMENT '计量单位;数据级别:普通',
`gift_points` INT NULL COMMENT '作为积分礼品时所需积分;数据级别:普通',
`enabled` TINYINT NOT NULL COMMENT '是否启用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_sku_code` (`sku_code`),
KEY `idx_type` (`sku_type`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Material/Inventory/Asset/Book:物料、固定资产、图书、礼品 SKU';
mat_warehouseWarehouse
CREATE TABLE `mat_warehouse` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`warehouse_code` VARCHAR(64) NOT NULL COMMENT '仓库编码,唯一;数据级别:普通',
`warehouse_name` VARCHAR(128) NOT NULL COMMENT '仓库名称;数据级别:普通',
`warehouse_type` VARCHAR(32) NOT NULL COMMENT '总部仓/校区仓/礼品仓/图书仓;数据级别:普通',
`manager_id` BIGINT NULL COMMENT '仓库负责人;数据级别:普通',
`enabled` TINYINT NOT NULL COMMENT '是否启用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_warehouse_code` (`warehouse_code`),
KEY `idx_type` (`warehouse_type`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Warehouse:仓库和校区库位';
mat_inventoryInventory
CREATE TABLE `mat_inventory` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`sku_id` BIGINT NOT NULL COMMENT 'SKU ID;数据级别:普通',
`warehouse_id` BIGINT NOT NULL COMMENT '仓库 ID;数据级别:普通',
`available_qty` DECIMAL(18,2) NOT NULL COMMENT '可用库存;数据级别:普通',
`locked_qty` DECIMAL(18,2) NOT NULL COMMENT '锁定库存;数据级别:普通',
`in_transit_qty` DECIMAL(18,2) NOT NULL COMMENT '在途库存;数据级别:普通',
`cost_amount` DECIMAL(18,2) NULL COMMENT '库存成本;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_sku_warehouse` (`sku_id`, `warehouse_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Inventory:库存余额';
mat_stock_inStockIn
CREATE TABLE `mat_stock_in` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`stock_in_no` VARCHAR(64) NOT NULL COMMENT '入库单编号,唯一;数据级别:普通',
`warehouse_id` BIGINT NOT NULL COMMENT '入库仓库;数据级别:普通',
`supplier_id` BIGINT NULL COMMENT '供应商 ID;数据级别:普通',
`source_biz_no` VARCHAR(64) NULL COMMENT '来源单号;数据级别:普通',
`line_items` JSON NOT NULL COMMENT '入库明细;数据级别:普通',
`stock_in_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_stock_in_no` (`stock_in_no`),
KEY `idx_status` (`stock_in_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='StockIn:采购入库/退货入库';
mat_stock_outStockOut
CREATE TABLE `mat_stock_out` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`stock_out_no` VARCHAR(64) NOT NULL COMMENT '出库单编号,唯一;数据级别:普通',
`warehouse_id` BIGINT NOT NULL COMMENT '出库仓库;数据级别:普通',
`use_scene` VARCHAR(32) NOT NULL COMMENT '教学/办公/积分兑换/报损/调拨;数据级别:普通',
`source_biz_no` VARCHAR(64) NULL COMMENT '来源单号;数据级别:普通',
`line_items` JSON NOT NULL COMMENT '出库明细;数据级别:普通',
`stock_out_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_stock_out_no` (`stock_out_no`),
KEY `idx_scene_status` (`use_scene`, `stock_out_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='StockOut:领用出库/核销出库';
mat_assetAsset
CREATE TABLE `mat_asset` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`asset_no` VARCHAR(64) NOT NULL COMMENT '资产编号,唯一;数据级别:普通',
`sku_id` BIGINT NOT NULL COMMENT '资产 SKU;数据级别:普通',
`owner_org_id` BIGINT NULL COMMENT '归属组织;数据级别:普通',
`keeper_id` BIGINT NULL COMMENT '保管人;数据级别:普通',
`purchase_date` DATE NULL COMMENT '购置日期;数据级别:普通',
`asset_status` VARCHAR(32) NOT NULL COMMENT '在用/闲置/维修/报废/调拨中;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_asset_no` (`asset_no`),
KEY `idx_status` (`asset_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Asset:固定资产台账';
mat_maintenance_orderAssetLifecycle/Maintenance
CREATE TABLE `mat_maintenance_order` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`maintenance_no` VARCHAR(64) NOT NULL COMMENT '维修单编号,唯一;数据级别:普通',
`asset_id` BIGINT NOT NULL COMMENT '资产 ID;数据级别:普通',
`fault_desc` VARCHAR(512) NOT NULL COMMENT '故障描述;数据级别:普通',
`repair_vendor_id` BIGINT NULL COMMENT '维修供应商;数据级别:普通',
`repair_amount` DECIMAL(18,2) NULL COMMENT '维修金额;数据级别:普通',
`maintenance_status` VARCHAR(32) NOT NULL COMMENT '待维修/维修中/已完成/已报废;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_maintenance_no` (`maintenance_no`),
KEY `idx_asset_status` (`asset_id`, `maintenance_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AssetLifecycle/Maintenance:资产维修与生命周期';
16 · 异常、指标、测试与初始化
保证模块上线后可运营、可追踪、可验收
测试要覆盖主流程、异常流、权限流、接口失败和数据一致性。异常状态
指标埋点
测试用例
| 编号 | 场景 | 前置 | 步骤 | 预期 | 优先级 |
|---|---|---|---|---|---|
| TC-026 | 监管回执差异对账 | 模拟监管返回金额不一致 | 执行回执处理 | 进入财务异常,无法自动关闭 | 高 |
| TC-038 | 员工培训计划学习闭环 | 培训计划已发布并分配员工 | 员工打开培训、完成资料学习、提交考试 | 学习进度、考试成绩和员工培训档案完整 | 高 |
| TC-039 | 考试未通过自动补训 | 考试通过线已配置 | 员工考试分数低于通过线 | 系统生成补考/复训任务并通知员工和主管 | 中 |
| TC-040 | 千台级摄像头台账导入 | 准备海康威视、宇视摄像头清单 | 批量导入摄像头并绑定校区、教室和楼层点位 | 导入成功、重复和错误明细清晰,摄像头状态可校验 | 高 |
| TC-041 | 地图监控与直播巡课 | 摄像头在线且账号具备巡课权限 | 在地图中定位校区教室并打开多画面直播 | 直播画面可打开,权限过滤正确,巡课访问留痕 | 高 |
| TC-047 | 报销发票 OCR 与核验 | 员工上传真实发票影像 | 提交报销单并触发 OCR 与发票核验 | 识别出发票关键字段,核验状态、查重状态和审批状态正确 | 高 |
| TC-050 | 物料采购入库与出库 | 物料 SKU、供应商和库存仓已建立 | 提交采购、验收入库、领用出库和盘点 | 库存数量、库存金额、出入库单和审批记录一致 | 高 |
| TC-051 | 积分商城兑换与线下核销 | 学员积分充足且礼品库存充足 | 学员兑换礼品,前台扫码核销 | 积分扣减、库存锁定、出库记录、核销状态全部正确 | 高 |
| TC-052 | 积分兑换库存不足处理 | 礼品可用库存低于兑换数量 | 学员提交兑换 | 系统阻止兑换或提示调拨补货,不扣减积分 | 中 |
| TC-LIVE-001 | 教学直播完整闭环 | 已创建课程、班级、课次、学员和供应商配置 | 教务创建直播课,教师开播,学员进入互动,结束后生成回放 | 签到、课消、学习档案、回放和统计均正确 | 高 |
| TC-MAT-ENH-001 | 进销存范围交付闭环验收 | 物料档案、图书库存、固定资产、库存流水相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按明确图书仅按库存和资产管理,补齐采购、入库、出库、调拨、盘点、报损、报废。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 图书无借阅状态,只有库存和资产生命周期。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-MAT-ENH-002 | 积分联动交付闭环验收 | 礼品库存、兑换订单、核销台相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐礼品 SKU、库存锁定、核销出库、取消释放、售后返库和积分流水。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 库存数量、积分账户和核销记录一致。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-MAT-ENH-003 | 采购财务交付闭环验收 | 采购订单、入库单、对账单、付款单相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐采购申请、订单、入库差异、供应商对账、付款审批和凭证联动。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 采购入库后可形成库存/资产和财务应付链路。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
上线初始化
| 初始化项 | 动作 | 数据 | 验收 |
|---|---|---|---|
| 课程与价格 | 导入课程、班型、课包、课时、价格、适用校区 | 课程编码、班型、价格表、有效期、赠课规则 | 报价和合同可正确引用价格 |
| 远程巡课 | 导入存量教室摄像头并配置品牌接入、地图点位和录像留存策略 | 摄像头编号、品牌型号、网关配置、校区教室、楼层点位、存储策略 | 摄像头可在地图中显示状态,直播和回放链路可抽检通过 |
| 知识库培训 | 初始化知识库分类、资料类型、培训课程、考试规则和岗位能力学习 | 分类目录、资料类型、必修课程、题库、学习档案规则 | 员工可按岗位收到培训任务并完成考试 |
| 物料资产 | 初始化物料分类、SKU、供应商、仓库、库存、固定资产和图书台账 | SKU 编码、单位、条码、安全库存、资产编号、库存余额 | 采购、入库、领用、调拨和盘点可正常执行 |
| 积分商城 | 配置积分规则、礼品 SKU、兑换积分、核销校区和库存联动 | 积分来源、积分有效期、礼品库存、兑换规则、核销权限 | 学员兑换后可锁库,前台核销后可出库 |
| 数据迁移 | 迁移客户、学员、合同、剩余课时、课表、教师、员工基础数据 | 源系统字段映射、校验结果、差异清单 | 关键业务对象数量和余额一致 |
| 直播供应商基础配置 | 初始化阿里云、腾讯云、七牛云直播框架的租户级配置 | providerCode、appId、appSecret、推流域名、播放域名、回调地址、录制策略、转码模板、对象存储桶/目录 | 三家供应商均可完成连通性校验和测试回调,同一租户仅启用一个供应商 |
| 直播角色与权限 | 初始化直播管理员、教务直播运营、教师主播、助教、学员、员工参会、市场运营等权限 | 菜单、按钮、数据范围、导出审批、回放权限 | 各角色只能访问授权直播房间和回放 |
| 进销存范围交付配置 | 初始化明确图书仅按库存和资产管理,补齐采购、入库、出库、调拨、盘点、报损、报废。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 物料档案、图书库存、固定资产、库存流水 | 图书无借阅状态,只有库存和资产生命周期。 |
| 积分联动交付配置 | 初始化补齐礼品 SKU、库存锁定、核销出库、取消释放、售后返库和积分流水。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 礼品库存、兑换订单、核销台 | 库存数量、积分账户和核销记录一致。 |
| 采购财务交付配置 | 初始化补齐采购申请、订单、入库差异、供应商对账、付款审批和凭证联动。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 采购订单、入库单、对账单、付款单 | 采购入库后可形成库存/资产和财务应付链路。 |