2026-09-24 15:36:04 +08:00
|
|
|
|
# APS(独立业务系统 · 开发期同仓形态)
|
|
|
|
|
|
|
|
|
|
|
|
> 本目录是 APS 的开发期落点,形态由 ADR-0010 规定:**同仓库、不同目录、独立系统**。
|
|
|
|
|
|
|
|
|
|
|
|
## 现状
|
|
|
|
|
|
|
|
|
|
|
|
APS 现在还在 `main` 分支里与平台混装(`server/aps_domain` 39,212 行、`server/engines` 7,551 行、`server/state`、`server/importers`,以及早期原型 `aps-frontend/`)。B0–B7 负责把它拆到这里并补齐独立运行所需的能力。
|
|
|
|
|
|
|
2026-09-30 12:32:52 +08:00
|
|
|
|
B0.1 已完成:`src/aps/` 子包骨架、`pyproject.toml`、`uv.lock` 与独立 CI job 就位;平台侧的 lint / typecheck / test 与 APS 的 ruff / pytest 互不阻塞。
|
|
|
|
|
|
|
|
|
|
|
|
## 工具链(B0.1)
|
|
|
|
|
|
|
|
|
|
|
|
| 项 | 值 |
|
|
|
|
|
|
| --- | --- |
|
|
|
|
|
|
| Python | 3.11+ |
|
|
|
|
|
|
| 依赖与锁定 | `uv`;`uv.lock` 入库,CI 用 `uv sync --locked` |
|
|
|
|
|
|
| 代码检查 | `ruff`(配置在 `pyproject.toml`) |
|
|
|
|
|
|
| 测试 | `pytest`(`tests/`) |
|
|
|
|
|
|
| 包结构 | `src/aps/`,子包对应 B 线的搬迁目标 |
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd aps
|
|
|
|
|
|
uv sync # 建 .venv 并按 uv.lock 安装(含 dev 依赖)
|
|
|
|
|
|
uv run ruff check .
|
|
|
|
|
|
uv run pytest -q
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
依赖取舍:依赖清单以 `main` 分支的 `requirements.txt` 为准,按 B 线边界做了两处增删——**去掉** LLM 与对话智能体相关依赖(D12:APS 不内置对话智能体),**保留**求解引擎(ortools / scipy)、文档与图纸解析(openpyxl / pdfplumber / python-docx / lxml / ezdxf)与持久层(sqlalchemy / alembic / pymysql)——它们都归 APS。
|
|
|
|
|
|
|
2026-09-24 15:36:04 +08:00
|
|
|
|
## 边界规则
|
|
|
|
|
|
|
|
|
|
|
|
| 规则 | 说明 |
|
|
|
|
|
|
| --- | --- |
|
|
|
|
|
|
| 工具链独立 | Python;不共享平台的 Node 依赖 |
|
|
|
|
|
|
| 不互相引用 | 平台代码不得引用 `aps/`;APS 不得引用平台 TS 代码 |
|
|
|
|
|
|
| 唯一界面 | Provider 契约(HTTP);平台通过 `providers/aps` 的适配器调用 APS |
|
|
|
|
|
|
| 数据库独立 | APS 库归 APS(ADR-0008):独立账号、独立 database |
|
|
|
|
|
|
| 交付独立 | APS 单独部署与升级(ADR-0009) |
|
|
|
|
|
|
| CI 分流 | 平台 job 与 APS job 互不阻塞 |
|
|
|
|
|
|
|
|
|
|
|
|
## 要搬进来的东西
|
|
|
|
|
|
|
|
|
|
|
|
| 来源(`main`) | 内容 | 对应任务 |
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
| `server/aps_domain` | 业务主体:排产、主数据、订单、柔性、闭环运行时、报告 | B1–B4 |
|
|
|
|
|
|
| `server/engines` | 求解引擎:CP-SAT / GA / NSGA2 / 池 / 规则 + 求解进程隔离 | B1 |
|
|
|
|
|
|
| `server/state` | 世界状态、检查点、分支、数据包 | B1 |
|
|
|
|
|
|
| `server/importers` | Excel / SQL / MOM 导入与 profile | B1 |
|
|
|
|
|
|
| `aps-frontend` 页面清单 | 界面外壳的范围参照(代码不搬) | B6 |
|
|
|
|
|
|
|
|
|
|
|
|
## 迁出条件(ADR-0010)
|
|
|
|
|
|
|
|
|
|
|
|
满足任一条即迁出独立仓库:APS 需要独立发版节奏、APS 由独立团队维护、平台包发布流程需要隔离权限。
|