first commit

This commit is contained in:
strepsiades
2026-03-09 16:31:42 +08:00
commit 4a9c444b10
486 changed files with 52479 additions and 0 deletions
@@ -0,0 +1,72 @@
# 业务流程与依赖关系
本文档描述推送系统涉及的业务实体及其依赖关系,用于指导同步顺序编排。
---
## 业务实体分类
### 1. 基础数据(仅拉取)
- **用户(User)**:拉取集团管理员、区域公司管理员及特定用户信息,用于跨平台穿透。其他用户需手动创建。
- **公司(Company)**:仅拉取,不推送。
- **供应商(Supplier)**:仅拉取,不推送。
### 2. 项目及扩展数据
**项目(Project**
- **绑定方式**:必须手动绑定(根节点)
- **同步操作**:允许更新和拉取
- **依赖项**:公司、附件(Attachment
**项目扩展业务**
- 通过 `(project_id, key)``(project_id, code)` 自动绑定
- 允许创建、更新、拉取
- 依赖项目
### 3. 合同及子业务
**合同(Contract**
- **绑定方式**:通过业务键自动绑定(需与 ECP 平台数据交叉检验)
- **同步操作**:允许拉取、创建、更新、删除
- **依赖项**:项目
**合同子业务**(施工任务、物资、结算、力能)
- **绑定方式**:通过 `(contract_id, code)` 自动绑定
- **同步操作**:允许拉取、创建、更新、删除
- **特殊规则**:首次绑定后,项目侧不会同步创建远程已有的数据
- **依赖项**:合同
**合同子业务明细**(施工明细、物资明细、结算明细、力能明细)
- **绑定方式**:通过 `(parent_id, date)` 自动绑定
- **同步操作**:允许拉取、创建、更新、删除
- **特殊规则**:首次绑定后,项目侧不会同步创建远程已有的数据
- **依赖项**:对应的合同子业务
---
## 依赖关系图
```
Company (基础)
Project (手动绑定)
Contract (自动绑定)
Contract Sub-Business (施工/物资/结算/力能)
Details (明细)
```
---
## 同步顺序原则
1. **依赖优先**:父节点必须先于子节点同步
2. **绑定传递**:子节点的业务键构建依赖父节点的 ID 映射
3. **故障隔离**:父节点同步失败时,子节点标记为 `DEPENDENCY_ERROR` 并跳过
详细状态定义参见:[sync_system_new/sync_system/STATE_DEFINITIONS.md](../sync_system_new/sync_system/STATE_DEFINITIONS.md)
详细架构设计参见:[sync_system_new/architecture_layers.md](../sync_system_new/architecture_layers.md)