# 业务流程与依赖关系 本文档描述推送系统涉及的业务实体及其依赖关系,用于指导同步顺序编排。 --- ## 业务实体分类 ### 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)