# add-ledger 模块说明 ## 模块定位 `add-ledger` 是 `tools` 下的数据台账配置工具模块,当前基于 `ledger.sql` 中的工程、项目、设备、监测点和台账树表结构,提供后端配置接口。 本次范围不包含: - 前端真实页面代码 - 自动执行 SQL 初始化 - 自动数据库迁移 - 设备通信、WebSocket 或 Netty 链路改造 目录中的 `ledger.sql` 仅作为原始表结构脚本保留,当前模块不加载、不解析该脚本。 ## 当前结构 ```text add-ledger/ ├── ledger.sql ├── pom.xml ├── README.md ├── src/main/java/com/njcn/gather/tool/addledger/ │ ├── component/ │ ├── config/ │ ├── controller/ │ ├── mapper/ │ ├── pojo/ │ ├── service/ │ └── util/ └── src/main/resources/sql/add-ledger/ ``` ## 当前接口 完整调试说明见 [API_DEBUG.md](./API_DEBUG.md)。 - `GET /addLedger/tree` - 查询台账树,支持按节点名称关键字过滤。 - `GET /addLedger/detail` - 根据 `id` 和 `level` 查询工程、项目、设备或测点详情。 - `POST /addLedger/engineering/save` - 新增或保存工程,并同步 `cs_ledger` 工程节点。 - `POST /addLedger/project/save` - 新增或保存项目,并同步 `cs_ledger` 项目节点。 - `POST /addLedger/equipment/save` - 新增或保存设备,并同步 `cs_ledger` 设备节点。 - `POST /addLedger/line/save` - 新增或保存测点,并同步 `cs_ledger` 测点节点。 - `GET /addLedger/line/availableLineNos` - 查询设备下 `1-20` 中可用的线路号。 - `DELETE /addLedger/node` - 软删除指定节点,父节点会级联软删除下级业务数据和台账节点。 ## 实现说明 - 台账层级固定为:工程 -> 项目 -> 设备 -> 监测点。 - 新增时绑定父级节点;编辑时只更新当前业务数据和台账节点名称,不搬迁节点。 - 保存业务表和 `cs_ledger` 在同一事务内完成。 - 设备保存时同步 `associated_engineering` 和 `associated_project`。 - 测点新增时生成 32 位 UUID 作为 `line_id`。 - 测点 `line_no` 后端限制为 `1-20`,且同设备下正常测点不可重复。 - 删除采用软删除:工程、项目、测点更新 `status=0`,设备更新 `run_status=0`,台账节点更新 `State=0`。 ## 后续扩展约束 后续如果新增更多台账能力,应沿当前 `controller -> service -> mapper -> XML` 职责边界扩展,不回退为单一大类承载全部接口。