first commit
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user