# manufacturing_data_model_v1.0.0 ## 需求概述 本模型基于 `module/` 目录下 52 份业务导出 Excel,面向制造企业端到端经营与生产分析(线索→商机→合同→订单→采购/生产→入出库→质检→开票/收付款/核销→资金流→分佣),抽象形成可扩展的分析型数据模型。 设计目标: - 兼容 ISA-95 / IEC 62264:区分 Level 3(生产执行)与 Level 4(经营管理)数据边界 - 分析型优先:星型模型 + 事实星座(Conformed Dimensions) - 主数据一致性:维度表按 SCD Type 2 管理(`RowValidFrom/RowValidTo/IsCurrent`) - 事务可追溯:事实表以 `EventTimeUTC` 作为事件时间分区/水印字段 范围说明: - 当前 Excel 以“编号/名称”作为主要业务键(例如 `产品编码`、`合同编号`、`工单编号`)。分析层统一引入代理主键 `{Entity}Id`。 - 多数单据缺少“行明细”粒度(例如销售订单/采购订单仅见单头字段),模型保留单头事实为主,后续如补充明细可平滑扩展。 ## 术语表 | 术语 | 含义 | |---|---| | 业务键(Business Key) | 来自源系统的编码/编号/单号等唯一标识,如 `ProductCode`、`ContractNumber` | | 代理键(Surrogate Key) | 分析层自增/雪花主键,如 `ProductId` | | SCD Type 2 | 维度历史保留:通过 `RowValidFrom/RowValidTo/IsCurrent` 记录有效期 | | 退化维度(Degenerate Dimension) | 直接保存在事实表中的单据号、状态等维度属性 | | EventTimeUTC | 统一事件时间(UTC),作为事实表分区/增量水印字段 | ## 主题域总览(ISA-95 视角) | 主题域 | ISA-95 层级 | 覆盖 Excel | |---|---|---| | 主数据(产品/BOM/工艺/资源) | L3/L4 共用 | 产品列表、物料清单、工艺路线、工序、仓库、供应商、客户、设备、质检原因 | | 生产执行 | Level 3 | 工单、任务、报工、装配工单 | | 质量 | Level 3 | 质检记录、质检不通过原因 | | 库存与仓储作业 | Level 3 | 出入库明细、盘点、调拨、其他出入库、报废 | | 销售与履约 | Level 4 | 销售报价、销售订单、销售出库、销售退货 | | 采购与供应 | Level 4 | 采购申请、采购订单、采购入库、采购退货 | | 财务与资金 | Level 4 | 发票、回款、收款/付款、预收/预付、核销、资金流向、资金转账、其他收支、分佣 | | CRM(市场到合同) | Level 4 | 线索、商机、合同 | ## 实体清单(维度/事实) 维度(SCD2): - `DimPerson`(人员维度) - `DimProduct`(产品维度) - `DimCustomer`(客户维度) - `DimSupplier`(供应商维度) - `DimWarehouse`(仓库维度) - `DimBom`(物料清单维度) - `DimRouting`(工艺路线维度) - `DimOperation`(工序维度) - `DimEquipment`(设备维度) - `DimQcReason`(质检不通过原因维度) - `DimContract`(合同维度,可选:合同也可作为事实) 事实(按 `EventTimeUTC` 分区): - `FactInventoryMovement`(出入库流水事实) - `FactWorkOrder`(工单事实) - `FactOperationTask`(工序任务事实) - `FactLaborReport`(报工事实) - `FactQualityInspection`(质检事实) - `FactSalesOrder`(销售订单事实) - `FactSalesShipment`(销售出库事实) - `FactSalesReturn`(销售退货事实) - `FactPurchaseRequest`(采购申请事实) - `FactPurchaseOrder`(采购订单事实) - `FactPurchaseReceipt`(采购入库事实) - `FactPurchaseReturn`(采购退货事实) - `FactInventoryTransfer`(库存调拨事实) - `FactInventoryCount`(库存盘点事实) - `FactScrap`(报废事实) - `FactArReceipt`(应收收款事实) - `FactApPayment`(应付付款事实) - `FactInvoice`(开票申请事实) - `FactWriteOff`(核销事实) - `FactCashFlow`(资金流水事实) - `FactCommission`(分佣事实) - `FactLead`(线索事实) - `FactOpportunity`(商机事实) - `FactProductionPlan`(生产计划/装配工单汇总事实,可选) ## ER 图(事实星座) ```mermaid erDiagram DimProduct ||--o{ FactInventoryMovement : "by_product (关联产品)" DimWarehouse ||--o{ FactInventoryMovement : "by_warehouse (关联仓库)" DimBom ||--o{ FactInventoryMovement : "by_bom (关联BOM)" DimPerson ||--o{ FactInventoryMovement : "operated_by (操作人)" DimProduct ||--o{ FactWorkOrder : "produces (生产产品)" DimSupplier ||--o{ FactWorkOrder : "outsourced_to (委外供应商)" DimRouting ||--o{ FactWorkOrder : "uses_routing (使用工艺)" DimPerson ||--o{ FactWorkOrder : "managed_by (生产主管)" DimOperation ||--o{ FactOperationTask : "executes (执行工序)" DimProduct ||--o{ FactOperationTask : "for_product (关联产品)" DimPerson ||--o{ FactOperationTask : "worker (执行工人)" DimProduct ||--o{ FactLaborReport : "reports_on (报工产品)" DimOperation ||--o{ FactLaborReport : "at_operation (报工工序)" DimPerson ||--o{ FactLaborReport : "reported_by (报工人员)" DimQcReason ||--o{ FactQualityInspection : "fail_reason (不合格原因)" DimProduct ||--o{ FactQualityInspection : "inspects (质检产品)" DimPerson ||--o{ FactQualityInspection : "inspected_by (质检员)" DimCustomer ||--o{ FactSalesOrder : "buys (购买)" DimPerson ||--o{ FactSalesOrder : "sold_by (销售员)" DimCustomer ||--o{ FactSalesShipment : "receives (收货)" DimPerson ||--o{ FactSalesShipment : "shipped_by (发货员)" DimCustomer ||--o{ FactSalesReturn : "returns (退货)" DimPerson ||--o{ FactSalesReturn : "handled_by (处理人)" DimSupplier ||--o{ FactPurchaseOrder : "supplies (供应)" DimPerson ||--o{ FactPurchaseOrder : "purchased_by (采购员)" DimSupplier ||--o{ FactPurchaseReceipt : "delivers (送货)" DimPerson ||--o{ FactPurchaseReceipt : "received_by (收货员)" DimSupplier ||--o{ FactPurchaseReturn : "takes_back (退回)" DimContract ||--o{ FactInvoice : "invoiced_for (开票合同)" DimContract ||--o{ FactArReceipt : "cash_in (收款合同)" DimContract ||--o{ FactApPayment : "cash_out (付款合同)" DimContract ||--o{ FactWriteOff : "writeoff (核销合同)" DimPerson ||--o{ FactContract : "owned_by (合同负责人)" DimPerson ||--o{ FactLead : "owned_by (线索负责人)" DimPerson ||--o{ FactOpportunity : "owned_by (商机负责人)" ``` ## 业务数据流转全景图 本流程图展示了从商机线索到最终产品交付的端到端数据流转过程,以及各环节涉及的关键数据实体。 ```mermaid flowchart TD %% 节点样式定义 classDef process fill:#e1f5fe,stroke:#01579b,stroke-width:2px; classDef decision fill:#fff9c4,stroke:#fbc02d,stroke-width:2px; classDef table fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1px,stroke-dasharray: 5 5; %% 1. CRM阶段 subgraph Stage_CRM [CRM与销售阶段] direction TB Node_Lead[("线索处理
In: FactLead
Logic: 线索清洗/转化")]:::process Node_Opp[("商机确认
In: FactLead
Out: FactOpportunity")]:::process Decision_Win{商机赢单?}:::decision Node_Contract[("合同签订
In: FactOpportunity
Out: DimContract")]:::process Node_SO[("销售订单生成
In: DimContract
Out: FactSalesOrder")]:::process Table_Lead[("FactLead")]:::table Table_Opp[("FactOpportunity")]:::table Table_SO[("FactSalesOrder")]:::table end %% 2. 计划阶段 subgraph Stage_Plan [计划与排程阶段] direction TB Node_MPS[("主生产计划(MPS)
In: FactSalesOrder
Logic: 需求合并/产能平衡
Out: FactProductionPlan")]:::process Node_MRP[("MRP运算/BOM展开
In: FactProductionPlan, DimBom
Logic: 净需求计算
Out: FactWorkOrder(Planned)")]:::process Decision_MakeBuy{自制/外购?}:::decision Node_PR[("采购申请生成
Out: FactPurchaseRequest")]:::process Table_Plan[("FactProductionPlan")]:::table Table_Bom[("DimBom")]:::table Table_Stock[("FactInventoryMovement
(当前库存)")]:::table end %% 新增:3. 采购与供应阶段 subgraph Stage_Procure [采购与供应阶段] direction TB Node_PO[("采购订单(PO)
In: FactPurchaseRequest
Out: FactPurchaseOrder")]:::process Node_Receive[("收货与IQC
Logic: 验收/质检
Out: FactQualityInspection")]:::process Decision_IQC{IQC合格?}:::decision Node_Return[("采购退货
Out: FactPurchaseReturn")]:::process Node_Mat_In[("原材料入库
Logic: 批次录入/更新库存
Out: FactPurchaseReceipt
FactInventoryMovement")]:::process Node_AP[("应付挂账(AP)
Logic: 三单匹配
Out: FactApPayment")]:::process Table_PO[("FactPurchaseOrder")]:::table Table_Receipt[("FactPurchaseReceipt")]:::table end %% 4. 生产执行阶段 (原 Stage_Make) subgraph Stage_Make [生产执行阶段] direction TB Node_WO_Release[("工单下达
In: FactWorkOrder(Planned)
Logic: 物料齐套/锁定资源
Out: FactWorkOrder(Released)")]:::process Node_Task[("工序任务派工
In: FactWorkOrder, DimRouting
Out: FactOperationTask")]:::process Node_Labor[("生产报工
In: FactOperationTask
Logic: 投入/产出/工时记录
Out: FactLaborReport")]:::process Table_WO[("FactWorkOrder")]:::table Table_Task[("FactOperationTask")]:::table Table_Labor[("FactLaborReport")]:::table end %% 5. 质量与入库阶段 (原 Stage_QC) subgraph Stage_QC [质量与仓储阶段] direction TB Node_QC[("成品检验(FQC)
In: FactLaborReport
Logic: 检验标准比对
Out: FactQualityInspection")]:::process Decision_Pass{质检合格?}:::decision Node_Scrap[("报废处理
Logic: 记录不良原因
Out: FactScrap")]:::process Node_FG_In[("成品入库
In: FactWorkOrder(Closed)
Logic: 更新库存余额
Out: FactInventoryMovement(IN)")]:::process Table_QC[("FactQualityInspection")]:::table Table_Inv[("FactInventoryMovement")]:::table end %% 6. 交付阶段 (原 Stage_Deliver) subgraph Stage_Deliver [交付阶段] direction TB Node_Ship[("销售发货
In: FactSalesOrder, FactInventoryMovement
Logic: 拣货/出库扣减
Out: FactSalesShipment")]:::process Node_End((交付完成)) Table_Ship[("FactSalesShipment")]:::table end %% 新增:7. 财务与资金阶段 subgraph Stage_Finance [财务与资金阶段] direction TB %% AR Flow Node_Invoice[("销售开票
In: FactSalesShipment
Out: FactInvoice")]:::process Node_ArRec[("销售收款
Out: FactArReceipt")]:::process Node_ArOff[("应收核销
Logic: 核销发票与收款
Out: FactWriteOff")]:::process %% AP Flow Node_ApPay[("采购付款
Out: FactApPayment")]:::process Node_ApOff[("应付核销
Logic: 核销应付与付款
Out: FactWriteOff")]:::process %% Cash Flow Node_Cash[("资金流水
Logic: 账户变动记录
Out: FactCashFlow")]:::process Table_Inv[("FactInvoice")]:::table Table_Ar[("FactArReceipt")]:::table Table_Ap[("FactApPayment")]:::table Table_Cash[("FactCashFlow")]:::table end %% 关系连线 Node_Lead --> Node_Opp Node_Opp --> Decision_Win Decision_Win -- Yes --> Node_Contract Node_Contract --> Node_SO Node_SO --> Node_MPS Node_MPS --> Node_MRP Node_MRP --> Decision_MakeBuy Decision_MakeBuy -- 外购 --> Node_PR Decision_MakeBuy -- 自制 --> Node_WO_Release %% 采购流程连线 Node_PR --> Node_PO Node_PO --> Node_Receive Node_Receive --> Decision_IQC Decision_IQC -- No --> Node_Return Decision_IQC -- Yes --> Node_Mat_In Node_Mat_In --> Node_AP Node_Mat_In --> Node_WO_Release Node_WO_Release --> Node_Task Node_Task --> Node_Labor Node_Labor --> Node_QC Node_QC --> Decision_Pass Decision_Pass -- No --> Node_Scrap Decision_Pass -- Yes --> Node_FG_In Node_FG_In --> Node_Ship Node_Ship --> Node_End %% 财务流程连线 Node_Ship --> Node_Invoice Node_Invoice --> Node_ArRec Node_ArRec --> Node_ArOff Node_AP --> Node_ApPay Node_ApPay --> Node_ApOff Node_ArRec --> Node_Cash Node_ApPay --> Node_Cash %% 数据表关联(虚线) Table_Lead -.-> Node_Lead Node_Opp -.-> Table_Opp Node_Contract -.-> Table_SO Table_SO -.-> Node_MPS Node_MPS -.-> Table_Plan Table_Plan -.-> Node_MRP Table_Bom -.-> Node_MRP Table_Stock -.-> Node_MRP Node_PR -.-> Table_PO Node_PO -.-> Table_PO Node_Mat_In -.-> Table_Receipt Node_Mat_In -.-> Table_Inv Node_WO_Release -.-> Table_WO Node_Task -.-> Table_Task Node_Labor -.-> Table_Labor Node_QC -.-> Table_QC Node_Receive -.-> Table_QC Node_FG_In -.-> Table_Inv Node_Ship -.-> Table_Ship Node_Invoice -.-> Table_Inv Node_ArRec -.-> Table_Ar Node_ApPay -.-> Table_Ap Node_Cash -.-> Table_Cash ``` ### 关键业务规则说明 1. **商机转订单**: * 当 `FactOpportunity` 状态确认为“赢单”且 `DimContract` 签订后,系统生成 `FactSalesOrder`。 * 此时确立销售对象(Customer)、产品(Product)及交付日期(DeliveryDate)。 2. **计划运算 (MPS/MRP)**: * `FactProductionPlan` 汇总销售订单需求,结合 `FactInventoryMovement` 计算出的当前库存快照,进行净需求计算。 * 利用 `DimBom` 展开物料清单,区分自制件(生成 `FactWorkOrder`)与采购件(生成 `FactPurchaseRequest`)。 3. **采购闭环管理**: * **采购订单 (PO)**:`FactPurchaseOrder` 经审批后生效,明确供应商、价格、交期。 * **入库验收 (IQC)**:物料到达后必须进行 IQC(`FactQualityInspection`),合格品方可办理入库(`FactPurchaseReceipt`)并增加库存(`FactInventoryMovement`)。 * **财务对接 (AP)**:系统自动匹配 PO(采购单)、Receipt(入库单)和供应商发票,生成应付账款(`FactApPayment`),确保“三单一致”。 * **供应商管理**:IQC 合格率与交期准确率回写至 `DimSupplier`,用于季度评估与优选名录维护。 4. **生产执行闭环**: * 工单下达前需校验物料齐套性(依赖采购入库的 `FactInventoryMovement`)。 * 现场工人通过 `FactLaborReport` 上报实际投入工时与产出数量,该数据是成本核算的核心依据。 5. **质量控制 (FQC)**: * `FactQualityInspection` 记录成品检验结果。 * 质检合格触发成品入库,不合格则根据原因(`DimQcReason`)触发返工或报废(`FactScrap`)。 6. **库存与交付**: * 所有实物库存变动(入库、出库、报废)统一写入 `FactInventoryMovement`,确保库存台账的一致性。 * `FactSalesShipment` 记录发货动作,作为收入确认(Revenue Recognition)的前置事件。 7. **财务资金流转**: * **应收 (AR)**:销售发货后生成发票申请(`FactInvoice`),回款后(`FactArReceipt`)进行核销(`FactWriteOff`)。 * **应付 (AP)**:采购入库确认应付后(`FactApPayment` 中的挂账状态),执行付款(`FactApPayment` 中的实付)并核销。 * **资金 (Cash)**:所有收付款动作最终汇总至 `FactCashFlow`,提供实时的资金日记账分析。 ## 表结构详设 类型说明(可按目标数据库微调): - `bigint`:代理主键/外键 - `varchar(n)`:业务键、名称、状态等 - `decimal(18,4)`:数量与金额(金额可按需要改 `decimal(18,2)`) - `datetime2`:统一时间字段(UTC) ### DimPerson(人员维度) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | PersonId | bigint | N | autoincr | 主键 | | | PersonCode | varchar(64) | N | | 人员编码(业务键) | 来源:用户ID/工号 | | PersonName | varchar(255) | N | | 姓名 | | | Department | varchar(100) | Y | | 部门 | | | Position | varchar(100) | Y | | 职位/岗位 | | | Phone | varchar(32) | Y | | 电话 | | | Email | varchar(100) | Y | | 邮箱 | | | Status | varchar(20) | Y | | 状态 | ACTIVE, INACTIVE | | SourceSystem | varchar(50) | Y | | 数据来源 | | | RowValidFrom | datetime2 | N | | SCD2 生效时间(UTC) | | | RowValidTo | datetime2 | N | | SCD2 失效时间(UTC) | | | IsCurrent | bit | N | 1 | 是否当前版本 | 0,1 | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | | Birthday | date | Y | | 出生日期 | | | Employment_day | date | Y | | 入职日期 | | | Job_description | varchar(255) | Y | | 职务描述 | | ### DimProduct(产品维度) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | ProductId | bigint | N | autoincr | 主键 | | | ProductCode | varchar(64) | N | | 产品编码(业务键) | 来源:产品列表.产品编码 | | ProductName | varchar(255) | N | | 产品名称 | | | ProductSpec | varchar(255) | Y | | 产品规格 | | | ProductCategory | varchar(100) | Y | | 产品类别 | | | ProductType | varchar(100) | Y | | 产品类型 | | | UomCode | varchar(16) | Y | | 主单位 | kg,pcs,L,m | | Brand | varchar(100) | Y | | 品牌 | | | Origin | varchar(100) | Y | | 产地 | | | TransportCondition | varchar(100) | Y | | 运输条件 | | | Barcode | varchar(64) | Y | | 条形码 | | | DrawingNumber | varchar(64) | Y | | 图号 | | | Material | varchar(100) | Y | | 材料 | | | SurfaceTreatment | varchar(100) | Y | | 表面处理 | | | MinStockQty | decimal(18,4) | Y | | 最低库存数量 | | | SafetyStockQty | decimal(18,4) | Y | | 安全库存数量 | | | MaxStockQty | decimal(18,4) | Y | | 最高库存数量 | | | SourceSystem | varchar(50) | Y | | 数据来源 | 来源:数据来源 | | RowValidFrom | datetime2 | N | | SCD2 生效时间(UTC) | | | RowValidTo | datetime2 | N | | SCD2 失效时间(UTC) | | | IsCurrent | bit | N | 1 | 是否当前版本 | 0,1 | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### DimCustomer(客户维度) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | CustomerId | bigint | N | autoincr | 主键 | | | CustomerName | varchar(255) | N | | 客户名称(业务键) | 来源:客户列表.客户名称 | | CustomerSource | varchar(100) | Y | | 客户来源 | | | Phone | varchar(32) | Y | | 手机 | | | Telephone | varchar(32) | Y | | 电话 | | | Email | varchar(100) | Y | | 邮箱 | | | CustomerLevel | varchar(50) | Y | | 客户级别 | | | Industry | varchar(100) | Y | | 客户行业 | | | Address | varchar(500) | Y | | 详细地址 | | | IsLocked | bit | Y | | 锁定状态 | 0,1 | | DealStatus | varchar(50) | Y | | 成交状态 | | | LastFollowUpTimeUTC | datetime2 | Y | | 最后跟进时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | RowValidFrom | datetime2 | N | | SCD2 生效时间(UTC) | | | RowValidTo | datetime2 | N | | SCD2 失效时间(UTC) | | | IsCurrent | bit | N | 1 | 是否当前版本 | 0,1 | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### DimSupplier(供应商维度) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | SupplierId | bigint | N | autoincr | 主键 | | | SupplierCode | varchar(64) | N | | 供应商编码(业务键) | 来源:供应商列表.供应商编码 | | SupplierName | varchar(255) | N | | 供应商名称 | | | SupplierCategory | varchar(100) | Y | | 供应商分类 | | | SupplierLevel | varchar(50) | Y | | 供应商级别 | | | Address | varchar(500) | Y | | 地址 | | | DefaultCurrencyCode | varchar(16) | Y | | 默认币别 | CNY,USD,EUR | | SettlementTerm | varchar(50) | Y | | 结算期限 | | | ContractExpiryDateUTC | datetime2 | Y | | 合同到期日(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | RowValidFrom | datetime2 | N | | SCD2 生效时间(UTC) | | | RowValidTo | datetime2 | N | | SCD2 失效时间(UTC) | | | IsCurrent | bit | N | 1 | 是否当前版本 | 0,1 | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### DimWarehouse(仓库维度) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | WarehouseId | bigint | N | autoincr | 主键 | | | WarehouseCode | varchar(64) | N | | 仓库编码(业务键) | 来源:仓库列表.仓库编码 | | WarehouseName | varchar(255) | N | | 仓库名称 | | | WarehouseType | varchar(50) | Y | | 仓库类型 | | | Status | varchar(20) | Y | | 仓库状态 | ENABLED,DISABLED | | Address | varchar(500) | Y | | 仓库地址 | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | RowValidFrom | datetime2 | N | | SCD2 生效时间(UTC) | | | RowValidTo | datetime2 | N | | SCD2 失效时间(UTC) | | | IsCurrent | bit | N | 1 | 是否当前版本 | 0,1 | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### DimBom(物料清单维度) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | BomId | bigint | N | autoincr | 主键 | | | BomNumber | varchar(64) | N | | 清单编号(业务键) | 来源:物料清单.清单编号 | | BomTopic | varchar(100) | Y | | 清单主题 | 来源:清单主题 | | IsPrimary | bit | Y | | 主辅清单标识 | 0,1 | | LevelNumber | int | Y | | 层级 | | | ProductCode | varchar(64) | Y | | 关联产品编码 | 来源:产品编号 | | UnitUsageQty | decimal(18,4) | Y | | 单位用量 | | | UomCode | varchar(16) | Y | | 产品单位 | | | SupplierName | varchar(255) | Y | | 默认供应商(退化属性) | 来源:供应商 | | Remark | varchar(500) | Y | | 备注 | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | RowValidFrom | datetime2 | N | | SCD2 生效时间(UTC) | | | RowValidTo | datetime2 | N | | SCD2 失效时间(UTC) | | | IsCurrent | bit | N | 1 | 是否当前版本 | 0,1 | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### DimRouting(工艺路线维度) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | RoutingId | bigint | N | autoincr | 主键 | | | RoutingNumber | varchar(64) | N | | 工艺路线编号(业务键) | 来源:工艺路线.工艺路线编号 | | RoutingName | varchar(255) | N | | 工艺路线名称 | | | OperationListText | varchar(2000) | Y | | 工序/工艺路线列表(原文) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | RowValidFrom | datetime2 | N | | SCD2 生效时间(UTC) | | | RowValidTo | datetime2 | N | | SCD2 失效时间(UTC) | | | IsCurrent | bit | N | 1 | 是否当前版本 | 0,1 | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### DimOperation(工序维度) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | OperationId | bigint | N | autoincr | 主键 | | | OperationNumber | varchar(64) | N | | 工序编号(业务键) | 来源:工序.工序编号 | | OperationName | varchar(255) | N | | 工序名称 | | | ReportPermission | varchar(50) | Y | | 报工权限 | | | ReportRatio | decimal(18,6) | Y | | 报工数配比 | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | RowValidFrom | datetime2 | N | | SCD2 生效时间(UTC) | | | RowValidTo | datetime2 | N | | SCD2 失效时间(UTC) | | | IsCurrent | bit | N | 1 | 是否当前版本 | 0,1 | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### DimEquipment(设备维度) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | EquipmentId | bigint | N | autoincr | 主键 | | | EquipmentNumber | varchar(64) | N | | 设备编号(业务键) | 来源:设备.设备编号 | | EquipmentName | varchar(255) | N | | 设备名称 | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | RowValidFrom | datetime2 | N | | SCD2 生效时间(UTC) | | | RowValidTo | datetime2 | N | | SCD2 失效时间(UTC) | | | IsCurrent | bit | N | 1 | 是否当前版本 | 0,1 | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### DimQcReason(质检不通过原因维度) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | QcReasonId | bigint | N | autoincr | 主键 | | | QcReasonNumber | varchar(64) | N | | 不通过原因编号(业务键) | 来源:质检原因.不通过原因编号 | | QcReasonName | varchar(255) | N | | 不通过原因 | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | RowValidFrom | datetime2 | N | | SCD2 生效时间(UTC) | | | RowValidTo | datetime2 | N | | SCD2 失效时间(UTC) | | | IsCurrent | bit | N | 1 | 是否当前版本 | 0,1 | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### DimContract(合同维度) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | ContractId | bigint | N | autoincr | 主键 | | | ContractNumber | varchar(64) | N | | 合同编号(业务键) | 来源:合同.合同编号 | | ContractName | varchar(255) | Y | | 合同名称 | | | OwnerId | bigint | Y | | 负责人 (外键 → DimPerson) | | | CustomerName | varchar(255) | Y | | 客户名称(退化) | | | CustomerId | bigint | Y | | 关联客户(外键 → DimCustomer) | | | ContractAmount | decimal(18,4) | Y | | 合同金额 | | | OrderTimeUTC | datetime2 | Y | | 下单时间(UTC) | | | PaidAmount | decimal(18,4) | Y | | 回款金额 | | | UnpaidAmount | decimal(18,4) | Y | | 未回款金额 | | | Stage | varchar(50) | Y | | 当前阶段 | | | Result | varchar(50) | Y | | 结果 | | | ContractType | varchar(50) | Y | | 合同类型 | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | RowValidFrom | datetime2 | N | | SCD2 生效时间(UTC) | | | RowValidTo | datetime2 | N | | SCD2 失效时间(UTC) | | | IsCurrent | bit | N | 1 | 是否当前版本 | 0,1 | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactInventoryMovement(出入库流水事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | InventoryMovementId | bigint | N | autoincr | 主键 | | | EventTimeUTC | datetime2 | N | | 出入库事件时间(UTC) | 来源:出入库日期/入库时间/出库时间 | | ProductId | bigint | Y | | 关联DimProduct (外键 → DimProduct) | | | WarehouseId | bigint | Y | | 关联DimWarehouse (外键 → DimWarehouse) | | | BomId | bigint | Y | | 关联DimBom (外键 → DimBom) | | | OperatorId | bigint | Y | | 外键 → DimPerson(操作人) | | |SalesOrderId | bigint | Y | | 关联FactSalesOrder (外键 → FactSalesOrder) | | |PurchaseOrderId | bigint | Y | | 关联FactPurchaseOrder (外键 → FactPurchaseOrder) | | | DocNumber | varchar(64) | N | | 出入库单号 | 来源:出入库单号/入库单编号/出库单编号 | | DocType | varchar(30) | N | | 单据类型 | IN,OUT,TRANSFER,OTHER_IN,OTHER_OUT | | MovementQty | decimal(18,4) | N | 0 | 出入库数量(入为正,出为负) | | | UomCode | varchar(16) | Y | | 单位 | | | UnitPrice | decimal(18,4) | Y | | 单价 | | | DiscountUnitPrice | decimal(18,4) | Y | | 折后单价 | | | Amount | decimal(18,4) | Y | | 总价 | | | DiscountAmount | decimal(18,4) | Y | | 折后总价 | | | OnhandQtyAfter | decimal(18,4) | Y | | 发生后库存量(源字段) | | | ResponsiblePerson | varchar(100) | Y | | 负责人 | | | AuditStatus | varchar(20) | Y | | 审核状态 | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactWorkOrder(工单事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | WorkOrderId | bigint | N | autoincr | 主键 | | | WorkOrderNumber | varchar(64) | N | | 工单编号(退化维度) | 来源:工单编号 | | ProductId | bigint | Y | | 关联DimProduct (外键 → DimProduct) | | | SupplierId | bigint | Y | | 外键 → DimSupplier(委外时) | | | RoutingId | bigint | Y | | 外键 → DimRouting | | | ProductionManagerId | bigint | Y | | 外键 → DimPerson(生产主管) | | | PlannedQty | decimal(18,4) | Y | | 计划生产数 | | | CompletedQty | decimal(18,4) | Y | | 完成数 | | | OperationGoodQty | decimal(18,4) | Y | | 工序良品数 | | | OperationBadQty | decimal(18,4) | Y | | 工序不良品数 | | | QcGoodQty | decimal(18,4) | Y | | 工单质检良品数 | | | QcBadQty | decimal(18,4) | Y | | 工单质检不良品数 | | | Status | varchar(30) | Y | | 工单状态 | OPEN,STARTED,CLOSED,SCRAP | | EventTimeUTC | datetime2 | N | | 工单状态变更/抽取时间(UTC) | | | SourceDocNumber | varchar(64) | Y | | 单据编号(退化) | 来源:单据编号 | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactOperationTask(工序任务事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | OperationTaskId | bigint | N | autoincr | 主键 | | | WorkOrderNumber | varchar(64) | N | | 工单编号(退化维度) | 来源:工单编号 | | OperationId | bigint | Y | | 关联DimOperation (外键 → DimOperation) | | | ProductId | bigint | Y | | 关联DimProduct (外键 → DimProduct) | | | PlannedStartTimeUTC | datetime2 | Y | | 计划开始时间(UTC) | | | PlannedEndTimeUTC | datetime2 | Y | | 计划结束时间(UTC) | | | ActualStartTimeUTC | datetime2 | Y | | 实际开始时间(UTC) | | | ActualEndTimeUTC | datetime2 | Y | | 实际结束时间(UTC) | | | PlannedQty | decimal(18,4) | Y | | 计划数 | | | GoodQty | decimal(18,4) | Y | | 良品数 | | | BadQty | decimal(18,4) | Y | | 不良品数 | | | BadReasonText | varchar(500) | Y | | 不良品项(原文) | | | EventTimeUTC | datetime2 | N | | 任务事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactLaborReport(报工事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | LaborReportId | bigint | N | autoincr | 主键 | | | WorkOrderNumber | varchar(64) | N | | 工单(退化维度) | 来源:报工列表.工单 | | TaskName | varchar(255) | Y | | 任务(退化维度) | 来源:报工列表.任务 | | ProductId | bigint | Y | | 关联DimProduct (外键 → DimProduct) | | | OperationStatus | varchar(30) | Y | | 工序状态 | | | WorkerName | varchar(100) | Y | | 生产人员 | | | ReportQty | decimal(18,4) | N | 0 | 报工数 | | | GoodQty | decimal(18,4) | Y | | 良品数 | | | BadQty | decimal(18,4) | Y | | 良品数 | | | DurationMinutes | decimal(18,2) | Y | | 报工时长(分钟) | | | UomCode | varchar(16) | Y | | 单位 | | | BadReasonText | varchar(500) | Y | | 不良品项(原文) | | | EventTimeUTC | datetime2 | N | | 报工事件时间(UTC) | | | SupplierId | bigint | Y | | 外键 → DimSupplier(委外时) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactQualityInspection(质检事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | QualityInspectionId | bigint | N | autoincr | 主键 | | | InspectionNumber | varchar(64) | N | | 质检记录编号(退化维度) | 来源:质检记录编号 | | InspectionBatchNumber | varchar(64) | Y | | 质检批次号 | | | WorkOrderNumber | varchar(64) | Y | | 工单(退化维度) | | | ProductId | bigint | Y | | 关联DimProduct (外键 → DimProduct) | | | SupplierId | bigint | Y | | 外键 → DimSupplier | | | QcReasonId | bigint | Y | | 外键 → DimQcReason(不通过原因) | | | InspectorId | bigint | Y | | 质检员 (外键 → DimPerson) | | | QcType | varchar(30) | Y | | 质检类型 | IN_PROCESS,FINAL,INCOMING | | PassQty | decimal(18,4) | Y | | 通过数 | | | FailQty | decimal(18,4) | Y | | 不通过数 | | | SalesOrderNumber | varchar(64) | Y | | 销售订单(退化维度) | | | CustomerName | varchar(255) | Y | | 客户(退化维度) | | | ShipQty | decimal(18,4) | Y | | 发货数 | | | EventTimeUTC | datetime2 | N | | 质检事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactSalesOrder(销售订单事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | SalesOrderId | bigint | N | autoincr | 主键 | | | SalesOrderNumber | varchar(64) | N | | 订单编号(退化维度) | 来源:销售订单.订单编号 | | CustomerId | bigint | Y | | 关联DimCustomer (外键 → DimCustomer) | | | SalesPersonId | bigint | Y | | 关联销售员 (外键 → DimPerson) | | | ContractNumber | varchar(64) | Y | | 合同编号(退化维度) | | | ContractId | bigint | Y | | 关联合同 (外键 → DimContract) | | | CurrencyCode | varchar(16) | Y | | 币别 | | | FxRate | decimal(18,6) | Y | | 汇率 | | | OrderDateUTC | datetime2 | Y | | 订单单据日期(UTC) | | | DeliveryDateUTC | datetime2 | Y | | 交货日期(UTC) | | | DealAmount | decimal(18,4) | Y | | 成交金额 | | | PaymentStatus | varchar(30) | Y | | 收款状态/付款状态 | | | TransportMode | varchar(50) | Y | | 运输方式 | | | Packaging | varchar(100) | Y | | 包材 | | | CustomsNumber | varchar(64) | Y | | 报关单号 | | | ProductionDocNumber | varchar(64) | Y | | 生产单据编号 | | | Stage | varchar(50) | Y | | 当前阶段 | | | Result | varchar(50) | Y | | 结果 | | | EventTimeUTC | datetime2 | N | | 订单事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactSalesShipment(销售出库事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | SalesShipmentId | bigint | N | autoincr | 主键 | | | ShipmentNumber | varchar(64) | N | | 出库单编号(退化维度) | 来源:销售出库单.出库单编号 | | CustomerId | bigint | Y | | 关联DimCustomer (外键 → DimCustomer) | | | SalesPersonId | bigint | Y | | 关联销售员 (外键 → DimPerson) | | | OperatorId | bigint | Y | | 外键 → DimPerson(发货员) | | | ContractNumber | varchar(64) | Y | | 合同编号(退化维度) | | | ContractId | bigint | Y | | 关联合同 (外键 → DimContract) | | | CurrencyCode | varchar(16) | Y | | 币别 | | | FxRate | decimal(18,6) | Y | | 汇率 | | | DocDateUTC | datetime2 | Y | | 出库单单据日期(UTC) | | | DeliveryDateUTC | datetime2 | Y | | 交货日期(UTC) | | | TransportMode | varchar(50) | Y | | 运输方式 | | | CustomsNumber | varchar(64) | Y | | 报关单号 | | | Amount | decimal(18,4) | Y | | 成交金额/单据金额 | | | EventTimeUTC | datetime2 | N | | 出库事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactSalesReturn(销售退货事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | SalesReturnId | bigint | N | autoincr | 主键 | | | SalesReturnNumber | varchar(64) | N | | 销售退货单编号(退化维度) | | | CustomerId | bigint | Y | | 关联DimCustomer (外键 → DimCustomer) | | | SalesPersonId | bigint | Y | | 销售员 (外键 → DimPerson) | | | OperatorId | bigint | Y | | 外键 → DimPerson(处理人) | | | ContractNumber | varchar(64) | Y | | 合同编号(退化维度) | | | ReturnReason | varchar(255) | Y | | 退货原因 | | | IsReship | bit | Y | | 是否退货重发 | 0,1 | | CurrencyCode | varchar(16) | Y | | 币别 | | | FxRate | decimal(18,6) | Y | | 汇率 | | | DocDateUTC | datetime2 | Y | | 单据日期(UTC) | | | Amount | decimal(18,4) | Y | | 单据金额 | | | EventTimeUTC | datetime2 | N | | 退货事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactPurchaseRequest(采购申请事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | PurchaseRequestId | bigint | N | autoincr | 主键 | | | PurchaseRequestNumber | varchar(64) | N | | 采购申请单编号(退化维度) | | | SupplierId | bigint | Y | | 建议供应商 (外键 → DimSupplier) | | | ApplicantId | bigint | Y | | 申请人 (外键 → DimPerson) | | | CurrencyCode | varchar(16) | Y | | 币别 | | | FxRate | decimal(18,6) | Y | | 汇率 | | | DocDateUTC | datetime2 | Y | | 单据日期(UTC) | | | DeliveryDateUTC | datetime2 | Y | | 交货日期(UTC) | | | TotalAmount | decimal(18,4) | Y | | 采购总价 | | | Status | varchar(30) | Y | | 采购状态 | | | RelatedOrderNumber | varchar(64) | Y | | 订单编号(退化) | | | ContractNumber | varchar(64) | Y | | 合同编号(退化) | | | EventTimeUTC | datetime2 | N | | 采购申请事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactPurchaseOrder(采购订单事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | PurchaseOrderId | bigint | N | autoincr | 主键 | | | PurchaseOrderNumber | varchar(64) | N | | 采购订单编号(退化维度) | | | SupplierId | bigint | Y | | 关联DimSupplier (外键 → DimSupplier) | | | BuyerId | bigint | Y | | 关联采购员 (外键 → DimPerson) | | | CurrencyCode | varchar(16) | Y | | 币别 | | | FxRate | decimal(18,6) | Y | | 汇率 | | | DocDateUTC | datetime2 | Y | | 单据日期(UTC) | | | DeliveryDateUTC | datetime2 | Y | | 交货日期(UTC) | | | ContractNumber | varchar(64) | Y | | 合同编号(退化) | | | ContractId | bigint | Y | | 关联合同 (外键 → DimContract) | | | DeliveryNoteNumber | varchar(64) | Y | | 送货单号 | | | SettlementDateUTC | datetime2 | Y | | 结算日期(UTC) | | | SettlementTerm | varchar(50) | Y | | 结算期限 | | | EventTimeUTC | datetime2 | N | | 采购订单事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactPurchaseReceipt(采购入库事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | PurchaseReceiptId | bigint | N | autoincr | 主键 | | | PurchaseReceiptNumber | varchar(64) | N | | 采购入库单编号(退化维度) | | | SupplierId | bigint | Y | | 关联DimSupplier (外键 → DimSupplier) | | | BuyerId | bigint | Y | | 外键 → DimPerson(采购员) | | | OperatorId | bigint | Y | | 外键 → DimPerson(收货员) | | | PurchaseOrderNumber | varchar(64) | Y | | 采购订单(退化维度) | | | CurrencyCode | varchar(16) | Y | | 币别 | | | FxRate | decimal(18,6) | Y | | 汇率 | | | DocDateUTC | datetime2 | Y | | 单据日期(UTC) | | | DeliveryDateUTC | datetime2 | Y | | 交货日期(UTC) | | | ContractNumber | varchar(64) | Y | | 合同编号(退化) | | | Amount | decimal(18,4) | Y | | 成交金额 | | | EstimatedCost | decimal(18,4) | Y | | 预计采购费用 | | | ReceiptQtyTotal | decimal(18,4) | Y | | 入库总数 | | | PaidAmount | decimal(18,4) | Y | | 已付款金额 | | | UnpaidAmount | decimal(18,4) | Y | | 未付款金额 | | | PaymentStatus | varchar(30) | Y | | 付款状态 | | | ReturnedQty | decimal(18,4) | Y | | 已退货数 | | | NotReturnedQty | decimal(18,4) | Y | | 未退货数 | | | ReturnStatus | varchar(30) | Y | | 退货状态 | | | EventTimeUTC | datetime2 | N | | 入库事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactPurchaseReturn(采购退货事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | PurchaseReturnId | bigint | N | autoincr | 主键 | | | PurchaseReturnNumber | varchar(64) | N | | 采购退货单编号(退化维度) | | | SupplierId | bigint | Y | | 关联DimSupplier (外键 → DimSupplier) | | | BuyerId | bigint | Y | | 采购员 (外键 → DimPerson) | | | OperatorId | bigint | Y | | 处理人 (外键 → DimPerson) | | | CurrencyCode | varchar(16) | Y | | 币别 | | | FxRate | decimal(18,6) | Y | | 汇率 | | | DocDateUTC | datetime2 | Y | | 单据日期(UTC) | | | ReturnReason | varchar(255) | Y | | 退货原因 | | | ContractNumber | varchar(64) | Y | | 合同编号(退化) | | | RelatedOrderNumber | varchar(64) | Y | | 订单号(退化) | | | EventTimeUTC | datetime2 | N | | 退货事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactInventoryTransfer(库存调拨事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | InventoryTransferId | bigint | N | autoincr | 主键 | | | TransferNumber | varchar(64) | N | | 调拨单编号(退化维度) | | | OperatorId | bigint | Y | | 操作人 (外键 → DimPerson) | | | TransferName | varchar(255) | Y | | 调拨名称 | | | Tag | varchar(100) | Y | | 单据标签 | | | TransferTimeUTC | datetime2 | Y | | 调拨时间(UTC) | | | PlateNumber | varchar(32) | Y | | 车牌号 | | | DeliveryMode | varchar(50) | Y | | 交货方式 | | | EventTimeUTC | datetime2 | N | | 调拨事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactInventoryCount(库存盘点事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | InventoryCountId | bigint | N | autoincr | 主键 | | | CountNumber | varchar(64) | N | | 盘点编号(退化维度) | | | OperatorId | bigint | Y | | 盘点人 (外键 → DimPerson) | | | WarehouseName | varchar(255) | Y | | 盘点仓库(退化) | | | CountName | varchar(255) | Y | | 盘点名称 | | | CountTimeUTC | datetime2 | Y | | 盘点时间(UTC) | | | EventTimeUTC | datetime2 | N | | 盘点事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactScrap(报废事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | ScrapId | bigint | N | autoincr | 主键 | | | ScrapNumber | varchar(64) | N | | 报废编号(退化维度) | | | OperatorId | bigint | Y | | 操作人 (外键 → DimPerson) | | | WarehouseName | varchar(255) | Y | | 仓库(退化) | | | ScrapTimeUTC | datetime2 | Y | | 报废日期(UTC) | | | EventTimeUTC | datetime2 | N | | 报废事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactArReceipt(应收收款事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | ArReceiptId | bigint | N | autoincr | 主键 | | | DocNumber | varchar(64) | N | | 单据编号(退化维度) | 来源:收款单/回款/预收/其他收入等 | | DocType | varchar(30) | N | | 单据类型 | RECEIPT,REFUND,ADVANCE,ADVANCE_REFUND,OTHER_INCOME | | CustomerId | bigint | Y | | 关联DimCustomer (外键 → DimCustomer) | | | ContractId | bigint | Y | | 关联DimContract (外键 → DimContract) | | | DocDateUTC | datetime2 | Y | | 单据日期(UTC) | | | CurrencyCode | varchar(16) | Y | | 币别 | | | FxRate | decimal(18,6) | Y | | 汇率 | | | Amount | decimal(18,4) | Y | | 收款总金额/回款金额/应收金额 | | | AmountBase | decimal(18,4) | Y | | 本位币金额 | 来源:本位币字段 | | FeeAmount | decimal(18,4) | Y | | 手续费 | | | DiscountAmount | decimal(18,4) | Y | | 优惠金额 | | | WriteOffAmount | decimal(18,4) | Y | | 核销总金额 | | | WrittenOffAmount | decimal(18,4) | Y | | 已核销金额 | | | UnwrittenOffAmount | decimal(18,4) | Y | | 未核销金额 | | | RelatedDocNumber | varchar(64) | Y | | 关联单编号/销售订单编号 | | | EventTimeUTC | datetime2 | N | | 收款事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactApPayment(应付付款事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | ApPaymentId | bigint | N | autoincr | 主键 | | | DocNumber | varchar(64) | N | | 单据编号(退化维度) | 来源:付款单/预付款/其他支出等 | | DocType | varchar(30) | N | | 单据类型 | PAYMENT,REFUND,ADVANCE,ADVANCE_REFUND,OTHER_EXPENSE | | SupplierId | bigint | Y | | 关联DimSupplier (外键 → DimSupplier) | | | ContractId | bigint | Y | | 关联DimContract (外键 → DimContract) | | | DocDateUTC | datetime2 | Y | | 单据日期(UTC) | | | CurrencyCode | varchar(16) | Y | | 币别 | | | FxRate | decimal(18,6) | Y | | 汇率 | | | Amount | decimal(18,4) | Y | | 付款总金额/应付金额 | | | AmountBase | decimal(18,4) | Y | | 本位币金额 | | | FeeAmount | decimal(18,4) | Y | | 手续费 | | | DiscountAmount | decimal(18,4) | Y | | 优惠金额 | | | WriteOffAmount | decimal(18,4) | Y | | 核销总金额 | | | WrittenOffAmount | decimal(18,4) | Y | | 已核销金额 | | | UnwrittenOffAmount | decimal(18,4) | Y | | 未核销金额 | | | RelatedDocNumber | varchar(64) | Y | | 关联单编号/采购订单编号 | | | EventTimeUTC | datetime2 | N | | 付款事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactInvoice(开票申请事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | InvoiceId | bigint | N | autoincr | 主键 | | | InvoiceRequestNumber | varchar(64) | N | | 发票申请编号(退化维度) | 来源:发票申请编号 | | ContractId | bigint | Y | | 关联DimContract (外键 → DimContract) | | | ContractNumber | varchar(64) | Y | | 合同编号(退化维度) | | | HandlerId | bigint | Y | | 外键 → DimPerson(经办人) | | | CustomerId | bigint | Y | | 外键 → DimCustomer | | | InvoiceAmount | decimal(18,4) | Y | | 开票金额 | | | ContractAmount | decimal(18,4) | Y | | 合同金额 | | | InvoiceDateUTC | datetime2 | Y | | 开票日期(UTC) | | | ActualInvoiceDateUTC | datetime2 | Y | | 开票日期(UTC) | | | InvoiceType | varchar(50) | Y | | 开票类型 | | | Stage | varchar(50) | Y | | 当前阶段 | | | Result | varchar(50) | Y | | 结果 | | | EventTimeUTC | datetime2 | N | | 开票事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactWriteOff(核销事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | WriteOffId | bigint | N | autoincr | 主键 | | | WriteOffNumber | varchar(64) | N | | 核销单编号(退化维度) | 来源:核销单编号 | | DocDateUTC | datetime2 | Y | | 单据日期(UTC) | | | ContractId | bigint | Y | | 关联DimContract (外键 → DimContract) | | | HandlerId | bigint | Y | | 经办人 (外键 → DimPerson) | | | CustomerId | bigint | Y | | 关联DimCustomer (外键 → DimCustomer) | | | SupplierId | bigint | Y | | 关联DimSupplier (外键 → DimSupplier) | | | WriteOffType | varchar(30) | Y | | 核销类型 | AR,AP | | CurrencyCode | varchar(16) | Y | | 币别 | | | FxRate | decimal(18,6) | Y | | 汇率 | | | DiscountAmount | decimal(18,4) | Y | | 优惠金额 | | | WriteOffAmount | decimal(18,4) | Y | | 核销总金额 | | | EventTimeUTC | datetime2 | N | | 核销事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactCashFlow(资金流水事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | CashFlowId | bigint | N | autoincr | 主键 | | | DocNumber | varchar(64) | Y | | 单据编号(退化维度) | 来源:资金流向.单据编号/转账单编号 | | DocType | varchar(30) | N | | 单据类型 | CASHFLOW,TRANSFER | | AccountName | varchar(255) | Y | | 账户名称 | | | DocDateUTC | datetime2 | Y | | 单据日期(UTC) | | | BusinessType | varchar(100) | Y | | 业务类型 | | | IncomeAmount | decimal(18,4) | Y | | 收入 | | | ExpenseAmount | decimal(18,4) | Y | | 支出 | | | BalanceAmount | decimal(18,4) | Y | | 余额 | | | Counterparty | varchar(255) | Y | | 往来单位 | | | Remark | varchar(500) | Y | | 单据备注 | | | EventTimeUTC | datetime2 | N | | 资金事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactCommission(分佣事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | CommissionId | bigint | N | autoincr | 主键 | | | CommissionPerson | varchar(100) | N | | 分佣人 | | | Department | varchar(100) | Y | | 部门 | | | CommissionRatePct | decimal(9,4) | Y | | 提成比例(%) | | | Coefficient | decimal(18,6) | Y | | 系数 | | | ReceivableCommission | decimal(18,4) | Y | | 应收佣金 | | | ReceivedCommission | decimal(18,4) | Y | | 实收佣金 | | | ContractId | bigint | Y | | 关联DimContract (外键 → DimContract) | | | CustomerId | bigint | Y | | 关联DimCustomer (外键 → DimCustomer) | | | ProductName | varchar(255) | Y | | 产品名称(退化) | | | OpportunityName | varchar(255) | Y | | 商机名称(退化) | | | ContractAmount | decimal(18,4) | Y | | 合同金额 | | | DealTimeUTC | datetime2 | Y | | 成交时间(UTC) | | | IsInvoiced | bit | Y | | 是否开票 | 0,1 | | EventTimeUTC | datetime2 | N | | 分佣事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactLead(线索事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | LeadId | bigint | N | autoincr | 主键 | | | LeadName | varchar(255) | N | | 线索名称 | | | OwnerId | bigint | Y | | 负责人 (外键 → DimPerson) | | | LeadSource | varchar(100) | Y | | 线索来源 | | | Phone | varchar(32) | Y | | 手机 | | | Telephone | varchar(32) | Y | | 电话 | | | Email | varchar(100) | Y | | 邮箱 | | | Address | varchar(500) | Y | | 地址 | | | Industry | varchar(100) | Y | | 客户行业 | | | CustomerLevel | varchar(50) | Y | | 客户级别 | | | NextContactTimeUTC | datetime2 | Y | | 下次联系时间(UTC) | | | FollowUpStatus | varchar(50) | Y | | 跟进状态 | | | IsConverted | bit | Y | | 是否已转化 | 0,1 | | Stage | varchar(50) | Y | | 当前阶段 | | | Result | varchar(50) | Y | | 结果 | | | EventTimeUTC | datetime2 | N | | 线索事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactOpportunity(商机事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | OpportunityId | bigint | N | autoincr | 主键 | | | CustomerId | bigint | Y | | 关联DimCustomer (外键 → DimCustomer) | | | OpportunityAmount | decimal(18,4) | Y | | 商机金额 | | | ExpectedDealDateUTC | datetime2 | Y | | 预计成交日期(UTC) | | | NextContactTimeUTC | datetime2 | Y | | 下次联系时间(UTC) | | | StatusGroup | varchar(50) | Y | | 商机状态组 | | | Stage | varchar(50) | Y | | 当前阶段 | | | Result | varchar(50) | Y | | 结果 | | | EventTimeUTC | datetime2 | N | | 商机事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ### FactProductionPlan(生产计划_装配工单汇总事实) | 字段 | 类型 | 空 | 缺省 | 描述 | 枚举/单位 | |---|---|---|---|---|---| | ProductionPlanId | bigint | N | autoincr | 主键 | | | AssemblyWorkOrderNumber | varchar(64) | N | | 装配工单编号(退化维度) | 来源:装配工单编号 | | WorkOrderCount | int | Y | | 工单数 | | | FinishedCount | int | Y | | 已结束数 | | | PlannedQty | decimal(18,4) | Y | | 计划数 | | | CompletedQty | decimal(18,4) | Y | | 完工数 | | | PlanStatus | varchar(50) | Y | | 生产计划状态 | | | ProgressText | varchar(100) | Y | | 工单生成/用料生成/单据进度(原文) | | | CustomerName | varchar(255) | Y | | 客户(退化) | | | CustomerId | bigint | Y | | 关联DimCustomer (外键 → DimCustomer) | | | ProductId | bigint | Y | | 关联DimProduct (外键 → DimProduct) | | | SalesOrderId | bigint | Y | | 关联FactSalesOrder (外键 → FactSalesOrder) | | | EventTimeUTC | datetime2 | N | | 计划事件时间(UTC) | | | SourceSystem | varchar(50) | Y | | 数据来源 | | | LastUpdatedUTC | datetime2 | N | sysutcdatetime | 行级更新时间 | | ## KPI 映射(示例) | KPI | 口径 | 表/字段 | |---|---|---| | 报工良率 | `sum(GoodQty) / nullif(sum(ReportQty),0)` | `FactLaborReport.GoodQty/ReportQty` | | 质检良率 | `sum(PassQty) / nullif(sum(PassQty+FailQty),0)` | `FactQualityInspection.PassQty/FailQty` | | 采购未付款 | `sum(UnpaidAmount)` | `FactPurchaseReceipt.UnpaidAmount` | | AR 未核销 | `sum(UnwrittenOffAmount)` | `FactArReceipt.UnwrittenOffAmount` | | AP 未核销 | `sum(UnwrittenOffAmount)` | `FactApPayment.UnwrittenOffAmount` | ## 数据字典 以下枚举值仅供参考,实际实施时应根据业务系统配置进行调整。 ### 1. 通用类 (Common) | 字典代码 | 字典名称 | 枚举值 (Code: Name) | 适用字段 | |---|---|---|---| | **CurrencyCode** | 币种 | CNY: 人民币
USD: 美元
EUR: 欧元
JPY: 日元
HKD: 港币 | `FactSalesOrder.CurrencyCode`
`FactPurchaseOrder.CurrencyCode`
`FactArReceipt.CurrencyCode`
... | | **UomCode** | 计量单位 | pcs: 个/件
kg: 千克
m: 米
L: 升
box: 箱
set: 套 | `DimProduct.UomCode`
`DimBom.UomCode`
`FactInventoryMovement.UomCode` | | **Boolean** | 布尔标识 | 0: 否 (No/False)
1: 是 (Yes/True) | `IsCurrent`, `IsLocked`, `IsPrimary`, `IsReship`, `IsConverted`, `IsInvoiced` | ### 2. 人员与组织 (Person & Org) | 字典代码 | 字典名称 | 枚举值 | 适用字段 | |---|---|---|---| | **PersonStatus** | 人员状态 | ACTIVE: 在职
INACTIVE: 离职
LEAVE: 休假 | `DimPerson.Status` | | **Department** | 部门 | SALES: 销售部
MFG: 生产部
PUR: 采购部
WH: 仓储部
FIN: 财务部
QC: 质检部 | `DimPerson.Department` | | **SupplierLevel** | 供应商等级 | STRATEGIC: 战略供应商
PREFERRED: 优选供应商
APPROVED: 合格供应商
PROBATION: 考察供应商
EXIT: 淘汰供应商 | `DimSupplier.SupplierLevel` | | **CustomerLevel** | 客户等级 | KA: 重点客户
VIP: 重要客户
NORMAL: 普通客户
POTENTIAL: 潜在客户 | `DimCustomer.CustomerLevel`
`FactLead.CustomerLevel` | | **Industry** | 行业 | MFG: 制造
RETAIL: 零售
IT: 互联网
FIN: 金融
EDU: 教育 | `DimCustomer.Industry`
`FactLead.Industry` | ### 3. 生产与库存 (Production & Inventory) | 字典代码 | 字典名称 | 枚举值 | 适用字段 | |---|---|---|---| | **WorkOrderStatus** | 工单状态 | PLANNED: 计划中
RELEASED: 已下达
STARTED: 生产中
PAUSED: 暂停
COMPLETED: 已完工
CLOSED: 已结案
SCRAP: 报废 | `FactWorkOrder.Status` | | **MovementType** | 出入库类型 | IN_PURCHASE: 采购入库
IN_FG: 完工入库
IN_RETURN: 销售退货入库
IN_OTHER: 其他入库
OUT_SALES: 销售出库
OUT_MATERIAL: 生产领料
OUT_RETURN: 采购退货出库
OUT_SCRAP: 报废出库
TRANSFER: 调拨 | `FactInventoryMovement.DocType` | | **WarehouseType** | 仓库类型 | RAW: 原材料仓
FG: 成品仓
WIP: 线边仓/半成品仓
SCRAP: 废品仓
VMI: 供应商库存仓 | `DimWarehouse.WarehouseType` | | **QcType** | 质检类型 | IQC: 来料检验
IPQC: 制程检验
FQC: 终检
OQC: 出货检验 | `FactQualityInspection.QcType` | | **ProductType** | 产品类型 | FINISHED: 成品
SEMI: 半成品
RAW: 原材料
SERVICE: 服务 | `DimProduct.ProductType` | | **TransportCondition** | 运输条件 | NORMAL: 常温
COLD: 冷链
FRAGILE: 易碎
HAZARDOUS: 危险品 | `DimProduct.TransportCondition` | | **PlanStatus** | 计划状态 | DRAFT: 草稿
CONFIRMED: 已确认
EXECUTING: 执行中
COMPLETED: 已完成 | `FactProductionPlan.PlanStatus` | ### 4. 销售与采购 (Sales & Purchase) | 字典代码 | 字典名称 | 枚举值 | 适用字段 | |---|---|---|---| | **LeadSource** | 线索来源 | WEB: 官网
REFERRAL: 推荐
EXHIBITION: 展会
COLD_CALL: 陌拜
OTHER: 其他 | `FactLead.LeadSource` | | **SalesStage** | 销售阶段 | NEW: 新建
QUOTED: 已报价
NEGOTIATING: 谈判中
WON: 赢单
LOST: 输单 | `FactOpportunity.Stage`
`FactLead.Stage` | | **OppStatusGroup** | 商机状态组 | OPEN: 开启
WON: 赢单
LOST: 输单 | `FactOpportunity.StatusGroup` | | **PurchaseStatus** | 采购状态 | DRAFT: 草稿
APPROVED: 已审批
SENT: 已发送
PARTIAL_RECEIVED: 部分收货
RECEIVED: 全部收货
CLOSED: 关闭 | `FactPurchaseRequest.Status` | | **PaymentStatus** | 支付状态 | UNPAID: 未付款
PARTIAL: 部分付款
PAID: 已付款
OVERDUE: 逾期 | `FactSalesOrder.PaymentStatus`
`FactPurchaseReceipt.PaymentStatus` | | **TransportMode** | 运输方式 | LAND: 陆运
SEA: 海运
AIR: 空运
RAIL: 铁运
EXPRESS: 快递 | `FactSalesOrder.TransportMode`
`FactSalesShipment.TransportMode` | ### 5. 财务 (Finance) | 字典代码 | 字典名称 | 枚举值 | 适用字段 | |---|---|---|---| | **FinDocType** | 财务单据类型 | RECEIPT: 收款单
PAYMENT: 付款单
INVOICE: 发票
REFUND: 退款
ADVANCE: 预收/预付
WRITEOFF: 核销 | `FactArReceipt.DocType`
`FactApPayment.DocType` | | **WriteOffType** | 核销类型 | AR: 应收核销
AP: 应付核销 | `FactWriteOff.WriteOffType` | | **InvoiceType** | 发票类型 | VAT_SPECIAL: 增值税专票
VAT_NORMAL: 增值税普票
ELECTRONIC: 电子发票 | `FactInvoice.InvoiceType` | ## 变更记录 | 版本 | 日期 | 作者 | 变更描述 | 脚本影响 | |---|---|---|---|---| | v1.0.0 | 2025-12-25 | GPT-5.2 | 首次输出:维度SCD2 + 事实星座 + ER图 + 字段清单 | 未生成 | | v1.1.0 | 2025-12-28 | Trae | 新增 DimPerson(人员维度)并关联销售、采购、生产、审批等事实表 | 待生成 | | v1.2.0 | 2025-12-29 | Trae | 新增「业务数据流转全景图」,包含商机-订单-计划-生产-交付全链路 Mermaid 流程图 | 无 | | v1.3.0 | 2025-12-29 | Trae | 升级全景图,新增外部采购闭环(PO管理、入库验收IQC、三单匹配AP、供应商管理) | 无 | | v1.4.0 | 2025-12-29 | Trae | 升级全景图,新增财务与资金阶段(开票Invoice、收付款AP/AR、核销WriteOff、资金CashFlow) | 无 | | v1.5.0 | 2025-12-30 | Trae | 新增「数据字典」章节,规范化通用类、人员组织、生产库存、销售采购及财务类枚举值 | 无 |