• Five mermaid diagrams across the en wiki, plus fix one stale arrow in
    the existing concepts/index diagram.
    
    New:
    
    - reference/maintainer/deployment.md — full topology at a glance:
      6 deployable Spring Boot apps with their default-profile ports +
      context paths + Boot main classes, the 8 library modules and what
      they're consumed by, the operator-facing SPAs (BACK :8597 / FROUNT
      :8598) traced through nginx into xlyEntry/xlyApi, and the shared
      infra cluster (MySQL / Redis :16379 / ActiveMQ :61616 / MongoDB
      wired-but-unused). Surfaces the "xlyFlow + xlyPlc share /xlyEntry
      context-path" subtlety and the "xlyErpJmsConsumer has no port,
      inherits" oddity in one picture.
    
    - reference/maintainer/cache-invalidation.md — dual-path diagram
      showing the synchronous @CacheEvict path (green) next to the JMS
      PRO_ERPMERGEBASEGDSMODULE base-data merge (red, labelled "NOT
      cache"). Anchors the page's main correction visually so a reader
      can't confuse the two systems again.
    
    - concepts/request-lifecycle.md — sequence diagram covering the
      full /getModelBysId + /getBusinessDataByFormcustomId round-trips,
      with the AuthorizationInterceptor + RequestAddParamUtil preamble,
      the ADMIN-skips-jurisdiction branch, and which service makes which
      DB call. Supplements (doesn't replace) the ASCII layout diagram
      above it.
    
    - concepts/customization-layers.md — colour-coded vertical stack
      (system → tenant → user) showing the five overlay tables
      (gdsconfigformmaster / personalize / slave / customslave /
      userslave) flowing into the merged form delivered to the SPA.
    
    - slices/01-hello-world.md — full save-flow sequence: addSysLocking
      optimistic-lock → addUpdateDelBusinessData → BusinessBaseServiceImpl
      per-row dispatch → DB write (with sTableNameList tenant-bypass
      callout) → BusinessCleanRedisData synchronous @CacheEvict → grid
      re-fetch. Built from the live capture in commit 054efbef.
    
    Fixed:
    
    - concepts/index.md — the existing "metadata change → AMQ →
      xlyErpJmsConsumer → REDIS" arrow chain implied JMS busts the cache,
      which the cache-invalidation pass already corrected in prose.
      Diagram updated to show the two distinct paths: synchronous
      @CacheEvict directly to Redis from xlyEntry, plus the separate
      domain-events JMS path that runs PRO_ERPMERGEBASE* against MySQL
      (NOT cache invalidation). Caption added pointing readers at
      cache-invalidation.md.
    
    All 6 diagrams render as <pre class="mermaid"> via Material for
    MkDocs's mermaid integration; mkdocs --strict green.
    zichun authored
     
    Browse Code »

  • Documents the xly (小羚羊) printing-industry ERP framework. Built with
    MkDocs Material; CJK search via jieba; 3,076 auto-generated catalog
    pages from recon/*.tsv plus hand-written prose for the framework's
    core mental model and end-to-end vertical slices.
    
    Phase 0 recon: stack, schema shape, framework metadata layer, scope.
    Phase 1 wiki: scaffold + auto-catalog + Slices 1-6 (Slice 7 deferred).
    
    Slice coverage:
      1. CRUD module (Hello World) — observed network + cited source
      2. Multi-tenancy & product editions — sBrandsId/sSubsidiaryId/sVersionFlowId
      3. View-backed module (read-only report)
      4. Custom field overlay (gdsconfigformcustomslave)
      5. Per-customer SQL override (script/客户/<customer>/)
      6. Hardware integration (xlyPlc, optional)
      7. Workflow (deferred — Activiti tables empty in dev DB)
    
    Concepts: thesis, modules-forms-vtables, master/slave, semantic-FK,
    customization channels & layers, multi-tenancy, request lifecycle.
    
    Reference (Builder): define-form, define-vtable, permissions,
    attach-workflow (deferred).
    
    Reference (Maintainer): runtime, proc-dispatch, cache-invalidation,
    sql-templates, deployment, activiti.
    reporkey authored
     
    Browse Code »