Files
lzwcai-mcp-server-package/lzwcai_mcpskills_analyzeOrder/manufacturing_data_model_v1.0.0.md
yuanzhipeng 2d2db5e866 feat(lzwcai_mcpskills_analyzeOrder): 添加MCP技能分析订单模块
- 创建基于MCP协议的SQL查询执行服务器
- 实现从businessQueries.json动态生成查询工具功能
- 支持中文工具名称自动转换为拼音
- 配置详细操作日志记录(仅输出到文件,不干扰MCP通信)
- 添加订单延迟预警分析、工单进度跟踪、供应链风险预警等6个业务查询模板
- 提供完整的安装、使用和开发文档
2026-01-08 00:31:22 +08:00

1095 lines
60 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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[("线索处理<br>In: FactLead<br>Logic: 线索清洗/转化")]:::process
Node_Opp[("商机确认<br>In: FactLead<br>Out: FactOpportunity")]:::process
Decision_Win{商机赢单?}:::decision
Node_Contract[("合同签订<br>In: FactOpportunity<br>Out: DimContract")]:::process
Node_SO[("销售订单生成<br>In: DimContract<br>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)<br>In: FactSalesOrder<br>Logic: 需求合并/产能平衡<br>Out: FactProductionPlan")]:::process
Node_MRP[("MRP运算/BOM展开<br>In: FactProductionPlan, DimBom<br>Logic: 净需求计算<br>Out: FactWorkOrder(Planned)")]:::process
Decision_MakeBuy{自制/外购?}:::decision
Node_PR[("采购申请生成<br>Out: FactPurchaseRequest")]:::process
Table_Plan[("FactProductionPlan")]:::table
Table_Bom[("DimBom")]:::table
Table_Stock[("FactInventoryMovement<br>(当前库存)")]:::table
end
%% 新增3. 采购与供应阶段
subgraph Stage_Procure [采购与供应阶段]
direction TB
Node_PO[("采购订单(PO)<br>In: FactPurchaseRequest<br>Out: FactPurchaseOrder")]:::process
Node_Receive[("收货与IQC<br>Logic: 验收/质检<br>Out: FactQualityInspection")]:::process
Decision_IQC{IQC合格?}:::decision
Node_Return[("采购退货<br>Out: FactPurchaseReturn")]:::process
Node_Mat_In[("原材料入库<br>Logic: 批次录入/更新库存<br>Out: FactPurchaseReceipt<br>FactInventoryMovement")]:::process
Node_AP[("应付挂账(AP)<br>Logic: 三单匹配<br>Out: FactApPayment")]:::process
Table_PO[("FactPurchaseOrder")]:::table
Table_Receipt[("FactPurchaseReceipt")]:::table
end
%% 4. 生产执行阶段 (原 Stage_Make)
subgraph Stage_Make [生产执行阶段]
direction TB
Node_WO_Release[("工单下达<br>In: FactWorkOrder(Planned)<br>Logic: 物料齐套/锁定资源<br>Out: FactWorkOrder(Released)")]:::process
Node_Task[("工序任务派工<br>In: FactWorkOrder, DimRouting<br>Out: FactOperationTask")]:::process
Node_Labor[("生产报工<br>In: FactOperationTask<br>Logic: 投入/产出/工时记录<br>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)<br>In: FactLaborReport<br>Logic: 检验标准比对<br>Out: FactQualityInspection")]:::process
Decision_Pass{质检合格?}:::decision
Node_Scrap[("报废处理<br>Logic: 记录不良原因<br>Out: FactScrap")]:::process
Node_FG_In[("成品入库<br>In: FactWorkOrder(Closed)<br>Logic: 更新库存余额<br>Out: FactInventoryMovement(IN)")]:::process
Table_QC[("FactQualityInspection")]:::table
Table_Inv[("FactInventoryMovement")]:::table
end
%% 6. 交付阶段 (原 Stage_Deliver)
subgraph Stage_Deliver [交付阶段]
direction TB
Node_Ship[("销售发货<br>In: FactSalesOrder, FactInventoryMovement<br>Logic: 拣货/出库扣减<br>Out: FactSalesShipment")]:::process
Node_End((交付完成))
Table_Ship[("FactSalesShipment")]:::table
end
%% 新增7. 财务与资金阶段
subgraph Stage_Finance [财务与资金阶段]
direction TB
%% AR Flow
Node_Invoice[("销售开票<br>In: FactSalesShipment<br>Out: FactInvoice")]:::process
Node_ArRec[("销售收款<br>Out: FactArReceipt")]:::process
Node_ArOff[("应收核销<br>Logic: 核销发票与收款<br>Out: FactWriteOff")]:::process
%% AP Flow
Node_ApPay[("采购付款<br>Out: FactApPayment")]:::process
Node_ApOff[("应付核销<br>Logic: 核销应付与付款<br>Out: FactWriteOff")]:::process
%% Cash Flow
Node_Cash[("资金流水<br>Logic: 账户变动记录<br>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: 人民币<br>USD: 美元<br>EUR: 欧元<br>JPY: 日元<br>HKD: 港币 | `FactSalesOrder.CurrencyCode`<br>`FactPurchaseOrder.CurrencyCode`<br>`FactArReceipt.CurrencyCode`<br>... |
| **UomCode** | 计量单位 | pcs: 个/件<br>kg: 千克<br>m: 米<br>L: 升<br>box: 箱<br>set: 套 | `DimProduct.UomCode`<br>`DimBom.UomCode`<br>`FactInventoryMovement.UomCode` |
| **Boolean** | 布尔标识 | 0: 否 (No/False)<br>1: 是 (Yes/True) | `IsCurrent`, `IsLocked`, `IsPrimary`, `IsReship`, `IsConverted`, `IsInvoiced` |
### 2. 人员与组织 (Person & Org)
| 字典代码 | 字典名称 | 枚举值 | 适用字段 |
|---|---|---|---|
| **PersonStatus** | 人员状态 | ACTIVE: 在职<br>INACTIVE: 离职<br>LEAVE: 休假 | `DimPerson.Status` |
| **Department** | 部门 | SALES: 销售部<br>MFG: 生产部<br>PUR: 采购部<br>WH: 仓储部<br>FIN: 财务部<br>QC: 质检部 | `DimPerson.Department` |
| **SupplierLevel** | 供应商等级 | STRATEGIC: 战略供应商<br>PREFERRED: 优选供应商<br>APPROVED: 合格供应商<br>PROBATION: 考察供应商<br>EXIT: 淘汰供应商 | `DimSupplier.SupplierLevel` |
| **CustomerLevel** | 客户等级 | KA: 重点客户<br>VIP: 重要客户<br>NORMAL: 普通客户<br>POTENTIAL: 潜在客户 | `DimCustomer.CustomerLevel`<br>`FactLead.CustomerLevel` |
| **Industry** | 行业 | MFG: 制造<br>RETAIL: 零售<br>IT: 互联网<br>FIN: 金融<br>EDU: 教育 | `DimCustomer.Industry`<br>`FactLead.Industry` |
### 3. 生产与库存 (Production & Inventory)
| 字典代码 | 字典名称 | 枚举值 | 适用字段 |
|---|---|---|---|
| **WorkOrderStatus** | 工单状态 | PLANNED: 计划中<br>RELEASED: 已下达<br>STARTED: 生产中<br>PAUSED: 暂停<br>COMPLETED: 已完工<br>CLOSED: 已结案<br>SCRAP: 报废 | `FactWorkOrder.Status` |
| **MovementType** | 出入库类型 | IN_PURCHASE: 采购入库<br>IN_FG: 完工入库<br>IN_RETURN: 销售退货入库<br>IN_OTHER: 其他入库<br>OUT_SALES: 销售出库<br>OUT_MATERIAL: 生产领料<br>OUT_RETURN: 采购退货出库<br>OUT_SCRAP: 报废出库<br>TRANSFER: 调拨 | `FactInventoryMovement.DocType` |
| **WarehouseType** | 仓库类型 | RAW: 原材料仓<br>FG: 成品仓<br>WIP: 线边仓/半成品仓<br>SCRAP: 废品仓<br>VMI: 供应商库存仓 | `DimWarehouse.WarehouseType` |
| **QcType** | 质检类型 | IQC: 来料检验<br>IPQC: 制程检验<br>FQC: 终检<br>OQC: 出货检验 | `FactQualityInspection.QcType` |
| **ProductType** | 产品类型 | FINISHED: 成品<br>SEMI: 半成品<br>RAW: 原材料<br>SERVICE: 服务 | `DimProduct.ProductType` |
| **TransportCondition** | 运输条件 | NORMAL: 常温<br>COLD: 冷链<br>FRAGILE: 易碎<br>HAZARDOUS: 危险品 | `DimProduct.TransportCondition` |
| **PlanStatus** | 计划状态 | DRAFT: 草稿<br>CONFIRMED: 已确认<br>EXECUTING: 执行中<br>COMPLETED: 已完成 | `FactProductionPlan.PlanStatus` |
### 4. 销售与采购 (Sales & Purchase)
| 字典代码 | 字典名称 | 枚举值 | 适用字段 |
|---|---|---|---|
| **LeadSource** | 线索来源 | WEB: 官网<br>REFERRAL: 推荐<br>EXHIBITION: 展会<br>COLD_CALL: 陌拜<br>OTHER: 其他 | `FactLead.LeadSource` |
| **SalesStage** | 销售阶段 | NEW: 新建<br>QUOTED: 已报价<br>NEGOTIATING: 谈判中<br>WON: 赢单<br>LOST: 输单 | `FactOpportunity.Stage`<br>`FactLead.Stage` |
| **OppStatusGroup** | 商机状态组 | OPEN: 开启<br>WON: 赢单<br>LOST: 输单 | `FactOpportunity.StatusGroup` |
| **PurchaseStatus** | 采购状态 | DRAFT: 草稿<br>APPROVED: 已审批<br>SENT: 已发送<br>PARTIAL_RECEIVED: 部分收货<br>RECEIVED: 全部收货<br>CLOSED: 关闭 | `FactPurchaseRequest.Status` |
| **PaymentStatus** | 支付状态 | UNPAID: 未付款<br>PARTIAL: 部分付款<br>PAID: 已付款<br>OVERDUE: 逾期 | `FactSalesOrder.PaymentStatus`<br>`FactPurchaseReceipt.PaymentStatus` |
| **TransportMode** | 运输方式 | LAND: 陆运<br>SEA: 海运<br>AIR: 空运<br>RAIL: 铁运<br>EXPRESS: 快递 | `FactSalesOrder.TransportMode`<br>`FactSalesShipment.TransportMode` |
### 5. 财务 (Finance)
| 字典代码 | 字典名称 | 枚举值 | 适用字段 |
|---|---|---|---|
| **FinDocType** | 财务单据类型 | RECEIPT: 收款单<br>PAYMENT: 付款单<br>INVOICE: 发票<br>REFUND: 退款<br>ADVANCE: 预收/预付<br>WRITEOFF: 核销 | `FactArReceipt.DocType`<br>`FactApPayment.DocType` |
| **WriteOffType** | 核销类型 | AR: 应收核销<br>AP: 应付核销 | `FactWriteOff.WriteOffType` |
| **InvoiceType** | 发票类型 | VAT_SPECIAL: 增值税专票<br>VAT_NORMAL: 增值税普票<br>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 | 新增「数据字典」章节,规范化通用类、人员组织、生产库存、销售采购及财务类枚举值 | 无 |