index.md 3.18 KB

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:

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, all xlyPlat* modules except xlyPlatConstant — 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.uri in the yaml profiles, document classes under xlyEntity/.../mongo/). Every @Document class is PLAT_*-named and every MongoTemplate caller lives in an xlyPlat* module — so MongoDB is part of the plat tier above. The framework layer this wiki covers is MySQL-only.

Note on xlyPlatConstant. It carries the xlyPlat* prefix but is in scope: xlyPersist imports 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.