# xly(小羚羊)ERP — 框架 Wiki 面向 **xly** 印刷行业 ERP 框架的开发者指南。 ## 这个 Wiki 是什么,不是什么 **本 Wiki 讲的是框架本身**,不是构建在框架之上的业务模块。xly 是一个数据驱动、低代码的 ERP 平台:PM(非开发人员)通过**元数据表中的行**(`gdsmodule`、`gdsconfigformmaster` 等)定义表单、数据表、工作流和报表。运行时(Spring Boot + MyBatis + 大量存储过程层)解释这些行,并把它们渲染成可用的应用。 本 Wiki 解释**这个闭环如何工作**:**后台**中的配置动作如何修改元数据,运行时如何读取元数据、分发到存储过程并写入业务数据,以及客户如何在**前台**中使用结果。 业务模块(财务、生产、报价、销售)只作为**贯穿示例**出现,用来证明框架概念确实产生了行为;它们不会成为独立章节的主体。 ## 阅读路径 本 Wiki 用同一套结构服务两类读者: - **配置人员路径**(你是使用 xly 定义模块的 PM / 实施):→ [心智模型](concepts/index.md) → [垂直切片](slices/index.md) → [参考(配置人员)](reference/builder/index.md) → 需要具体表或存储过程时查 [自动目录](auto-catalog/index.md)。 - **维护人员路径**(你是维护框架本身的 Java 开发):→ [心智模型](concepts/index.md) → [垂直切片](slices/index.md) → [参考(维护人员)](reference/maintainer/index.md) → 其他细节查 [自动目录](auto-catalog/index.md)。 两条路径共享同一套心智模型和切片章节,区别只是深入阅读哪个参考章节。 ## 不覆盖的范围 - B2B 印刷平台层(`plat_*` 表、除 `xlyPlatConstant` 外的所有 `xlyPlat*` 模块;见下方说明)。 - AI / LLM 功能(`ai_*` 表、`AiController`),太新且仍在变化。 - 人脸识别(`xlyFace`),范围较窄;它仍在 `settings.gradle` 中启用(会构建和部署),但本 Wiki 有意不展开。 - 文件管理模块(`xlyFile`)和串口模块(`xlyRxtx`),范围较窄 / 偏硬件。 - 调度模块(`xlyErpTask`、`xlyPlatTask`),在 `settings.gradle` 中已注释;cron / Quartz 接线不属于本 Wiki 覆盖的框架运行时。 - 测试脚手架模块(`xlyTestService`、`xlyTestController`),历史遗留,不属于框架运行时。 - `xlyweberp_*` 数据库之间的租户级 schema 漂移;本 Wiki 针对一个 schema。 - 备份表(`*_bak`、`*0302`、`*_copy1`、`*_history`、`*YYYYMMDD[HHMMSS]` 后缀快照等)。自动目录会为它们生成页面,因为它们真实存在;正文页面不会把它们作为一个家族展开。当前 schema 约有 56 张此类表。 - MongoDB 文档存储(yaml profile 中的 `spring.data.mongodb.uri`,以及 `xlyEntity/.../mongo/` 下的文档类)。其中 22 个 `@Document` 类里有 20 个是 `PLAT_*` 命名;仅有两个例外是 `DIKE_TEST*` 临时测试类。唯一的 `MongoTemplate` 调用方是 `xlyPersist/.../dao/platmongo/BaseMongoDao`(`dao/platmongo/` 包名已经表明其 plat 层意图),在 cleanup 分支没有树内消费者;曾经继承它的 `xlyPlat*` 模块都已从 `settings.gradle` 注释掉。本 Wiki 覆盖的框架层只讨论 MySQL;Mongo 接线仍可编译,但处于休眠状态。 > **关于 `xlyPlatConstant`。** 它带有 `xlyPlat*` 前缀,但属于本 Wiki 范围:`xlyPersist` 从中导入了两个工具类(`com.xly.xlyplatconstant.contant.thread.MultiThreadServer`、`com.xly.xlyplatconstant.contant.TimeContant`)。把它视为命名不准的共享工具模块,而不是平台层模块。 > **关于 `xlyPlc`。** PLC / 硬件桥接插件属于本 Wiki 范围,是非核心模块如何挂入框架的标准示例。见[切片 06:硬件](slices/06-hardware.md)。 ## 如何修正这个 Wiki 编辑 Markdown 文件即可,这些文件就是 Wiki 的源。MkDocs Material 会从这些 `.md` 文件生成静态 HTML。重新生成命令和 pre-commit 钩子见 [参与维护](contributing/index.md)。