xly (小羚羊) ERP — Framework Wiki
A developer's guide to the xly printing-industry ERP framework.
What this wiki is, and is not
This wiki is about the framework, not the business modules built on top of it.
xly is a data-driven, low-code ERP platform: PMs (non-coders) define forms, tables,
workflows, and reports as rows in metadata tables (gdsmodule, gdsconfigformmaster, …).
The runtime — Spring Boot + MyBatis + a large stored-procedure layer — interprets those rows
and renders them as a usable application.
The wiki explains how that loop works: how a builder action in BACK mutates metadata, how the runtime reads metadata, dispatches to procs, and writes business data, and how customers consume the result in FROUNT.
Business modules (accounting, manufacturing, quotation, sales) are referenced as worked examples — the proof that a framework concept actually does something — never as the subject of a chapter on their own.
Reading paths
The wiki has two audiences served by one structure:
Builder track (you are a PM/implementer using xly to define modules): → Mental Model → Vertical Slices → Reference (Builder) → Auto-Catalog when you need a specific table/proc.
Maintainer track (you are a Java developer working on the framework itself): → Mental Model → Vertical Slices → Reference (Maintainer) → Auto-Catalog for everything else.
Both tracks share the same Mental Model and Slices chapters — the difference is only which Reference chapter you go deep on.
What's out of scope
- The B2B printing-platform layer (
plat_*tables, allxlyPlat*modules exceptxlyPlatConstant— see below). - AI / LLM features (
ai_*tables,AiController) — too new, still moving. - Face recognition (
xlyFace) — niche. - File-management module (
xlyFile) and serial-port module (xlyRxtx) — niche / hardware-adjacent. - Test scaffolding modules (
xlyTestService,xlyTestController) — historical, not part of the framework runtime. - Per-tenant schema drift between
xlyweberp_*databases — wiki targets one schema. - Backup tables (
*_bak,*0302, etc.). - The MongoDB document store (
spring.data.mongodb.uriin the yaml profiles, document classes underxlyEntity/.../mongo/). Every@Documentclass isPLAT_*-named and everyMongoTemplatecaller lives in anxlyPlat*module — so MongoDB is part of the plat tier above. The framework layer this wiki covers is MySQL-only.
Note on
xlyPlatConstant. It carries thexlyPlat*prefix but is in scope:xlyPersistimports two utility classes from it (com.xly.xlyplatconstant.contant.thread.MultiThreadServer,com.xly.xlyplatconstant.contant.TimeContant). Treat it as a misnamed shared-utility module, not a platform-tier module.
How to fix something in this wiki
Edit the markdown file. That is the wiki. Static HTML is generated from these .md
files by MkDocs Material. See Contributing for the regen command
and the pre-commit hook.