Skip to content

方案设计:数据质量校验

← 返回场景概览 | 上一阶段:需求探索 | 下一阶段:开发资产


方案概览

本方案设计了一套实时校验 + 批量校验 + 智能修正的数据质量管理系统,支持多维度数据质量检查(完整性、准确性、一致性、重复性),提供自动校验规则和人工修正功能,记录完整的修正历史。

核心价值

  • 数据检查时间从2-3天缩短到1小时以内
  • 问题发现率从60-70%提升到95%以上
  • 数据修正记录完整,支持审计
  • 核查通过率提高

1. 全流程业务设计

1.1 整体流程

1.2 核心环节

环节一:校验规则配置

流程步骤:

  1. 选择数据类型(能源消耗、排放数据等)
  2. 配置校验规则(缺失值、合理范围、同比环比等)
  3. 设置校验参数(阈值、容忍度等)
  4. 测试校验规则
  5. 保存并启用

关键规则:

  • 支持多种校验规则类型(完整性、准确性、一致性、重复性)
  • 校验规则可按数据类型分别配置
  • 校验参数支持动态调整
  • 校验规则支持版本管理

环节二:实时数据校验

流程步骤:

  1. 用户录入或导入数据
  2. 系统实时执行校验规则
  3. 发现问题立即提示
  4. 用户修正后重新校验
  5. 校验通过后保存

关键规则:

  • 校验响应时间 < 1秒
  • 问题提示清晰明确
  • 支持一键修正常见问题
  • 修正后自动重新校验

环节三:批量数据校验

流程步骤:

  1. 选择校验范围(时间范围、部门范围等)
  2. 执行批量校验
  3. 生成问题清单
  4. 按问题类型分组展示
  5. 批量修正或逐条修正

关键规则:

  • 支持大批量数据校验(10000+条)
  • 校验进度实时展示
  • 问题清单支持导出
  • 支持批量修正操作

环节四:数据修正与审批

流程步骤:

  1. 查看问题数据详情
  2. 填写修正值和修正原因
  3. 提交修正(重要数据需审批)
  4. 审批人审核修正
  5. 审批通过后生效

关键规则:

  • 修正权限按角色控制
  • 重要数据修正需要审批(修正幅度 > 20%)
  • 修正历史完整记录
  • 支持批量审批

环节五:质量报告生成

流程步骤:

  1. 选择报告周期(日、周、月、年)
  2. 选择报告维度(数据源、能源类型、部门等)
  3. 生成质量报告
  4. 查看质量趋势
  5. 导出报告

关键规则:

  • 报告包含质量指标(缺失率、异常率、修正率等)
  • 支持多维度分析
  • 支持趋势对比
  • 报告支持导出(PDF、Excel)

2. 业务规则设计

2.1 完整性校验规则

规则一:必填字段检查

  • 描述:检查必填字段是否为空
  • 判断条件:字段值为 null、空字符串、undefined
  • 处理动作:标记为"缺失值",提示"XX字段不能为空"

规则二:关联数据检查

  • 描述:检查关联数据是否完整
  • 判断条件
    • 有能源消耗量但无原始凭证
    • 有费用但无消耗量
  • 处理动作:标记为"数据不完整",提示"缺少关联数据"

2.2 准确性校验规则

规则一:数值范围检查

  • 描述:检查数值是否在合理范围内
  • 判断条件
    • 用电量 < 0 或 > 1000000(度)
    • 用气量 < 0 或 > 100000(立方米)
    • 用煤量 < 0 或 > 10000(吨)
  • 处理动作:标记为"异常值",提示"数值超出合理范围"

规则二:单位一致性检查

  • 描述:检查单位是否一致
  • 判断条件
    • 同一能源类型的单位不一致
    • 单位与数值不匹配(如用电量单位为"吨")
  • 处理动作:标记为"单位错误",提示"单位不正确"

规则三:数据格式检查

  • 描述:检查数据格式是否正确
  • 判断条件
    • 日期格式不正确
    • 数值包含非数字字符
    • 枚举值不在允许范围内
  • 处理动作:标记为"格式错误",提示"数据格式不正确"

2.3 一致性校验规则

规则一:同比环比检查

  • 描述:检查数据是否与历史数据差异过大
  • 判断条件
    • 同比增长 > 50% 或 < -50%
    • 环比增长 > 30% 或 < -30%
  • 处理动作:标记为"异常波动",提示"数据波动异常,请核实"

规则二:逻辑一致性检查

  • 描述:检查数据是否符合业务逻辑
  • 判断条件
    • 用电量为0但有电费
    • 费用与消耗量不匹配(单价异常)
    • 生产停工但有能源消耗
  • 处理动作:标记为"逻辑错误",提示"数据不符合业务逻辑"

规则三:跨数据源一致性检查

  • 描述:检查不同数据源的数据是否一致
  • 判断条件
    • 电费单与电表数据差异 > 5%
    • ERP数据与能源系统数据差异 > 10%
  • 处理动作:标记为"数据不一致",提示"不同数据源数据不一致"

2.4 重复性校验规则

规则一:完全重复检查

  • 描述:检查是否有完全相同的数据
  • 判断条件:同一时间、同一设备、同一能源类型的数据已存在
  • 处理动作:标记为"重复数据",提示"数据已存在"

规则二:疑似重复检查

  • 描述:检查是否有疑似重复的数据
  • 判断条件
    • 时间相近(差异 < 1天)
    • 数值相同或相近(差异 < 1%)
  • 处理动作:标记为"疑似重复",提示"可能是重复数据"

2.5 数据修正规则

规则一:修正权限规则

  • 描述:只有授权人员可以修正数据
  • 判断条件:用户角色为"碳核算专员"、"数据管理员"或"系统管理员"
  • 处理动作:允许修正;否则拒绝

规则二:修正审批规则

  • 描述:重要数据修正需要审批
  • 判断条件
    • 修正幅度 > 20%
    • 修正历史数据(超过1个月)
    • 修正已核查数据
  • 处理动作:提交审批流程,审批通过后生效

规则三:修正记录规则

  • 描述:所有修正操作必须记录
  • 判断条件:数据被修正
  • 处理动作:记录修正前后的值、修正原因、修正人、修正时间

3. 数据模型设计

3.1 校验规则(ValidationRule)

typescript
interface ValidationRule {
  id: string;                    // 规则ID
  name: string;                  // 规则名称
  type: RuleType;                // 规则类型
  dataType: string;              // 适用数据类型
  condition: RuleCondition;      // 判断条件
  severity: Severity;            // 严重程度
  message: string;               // 错误提示
  isEnabled: boolean;            // 是否启用
  version: number;               // 规则版本
  createdAt: Date;
  updatedAt: Date;
}

enum RuleType {
  COMPLETENESS = 'COMPLETENESS',     // 完整性
  ACCURACY = 'ACCURACY',             // 准确性
  CONSISTENCY = 'CONSISTENCY',       // 一致性
  UNIQUENESS = 'UNIQUENESS'          // 唯一性
}

enum Severity {
  ERROR = 'ERROR',               // 错误(必须修正)
  WARNING = 'WARNING'            // 警告(建议修正)
}

interface RuleCondition {
  field: string;                 // 校验字段
  operator: string;              // 操作符(>、<、=、!=、in、between等)
  value: any;                    // 比较值
  params?: Record<string, any>;  // 额外参数
}

3.2 校验结果(ValidationResult)

typescript
interface ValidationResult {
  id: string;                    // 结果ID
  dataId: string;                // 数据ID
  ruleId: string;                // 规则ID
  isValid: boolean;              // 是否通过
  errors: ValidationError[];     // 错误列表
  validatedAt: Date;             // 校验时间
}

interface ValidationError {
  ruleId: string;                // 规则ID
  ruleName: string;              // 规则名称
  field: string;                 // 字段名
  currentValue: any;             // 当前值
  expectedValue?: any;           // 期望值
  message: string;               // 错误信息
  severity: Severity;            // 严重程度
  suggestion?: string;           // 修正建议
}

3.3 数据修正记录(DataCorrection)

typescript
interface DataCorrection {
  id: string;                    // 修正记录ID
  dataId: string;                // 数据ID
  field: string;                 // 修正字段
  oldValue: any;                 // 修正前的值
  newValue: any;                 // 修正后的值
  reason: string;                // 修正原因
  evidence?: string[];           // 修正依据(附件)
  correctedBy: string;           // 修正人
  correctedAt: Date;             // 修正时间
  status: CorrectionStatus;      // 修正状态
  approvedBy?: string;           // 审批人
  approvedAt?: Date;             // 审批时间
  approvalComment?: string;      // 审批意见
}

enum CorrectionStatus {
  PENDING = 'PENDING',           // 待审批
  APPROVED = 'APPROVED',         // 已审批
  REJECTED = 'REJECTED',         // 已拒绝
  AUTO_APPROVED = 'AUTO_APPROVED' // 自动通过(无需审批)
}

3.4 质量报告(QualityReport)

typescript
interface QualityReport {
  id: string;                    // 报告ID
  period: ReportPeriod;          // 报告周期
  startDate: Date;               // 开始日期
  endDate: Date;                 // 结束日期
  metrics: QualityMetrics;       // 质量指标
  dimensions: QualityDimension[]; // 维度分析
  trends: QualityTrend[];        // 趋势分析
  generatedAt: Date;             // 生成时间
}

enum ReportPeriod {
  DAILY = 'DAILY',               // 日报
  WEEKLY = 'WEEKLY',             // 周报
  MONTHLY = 'MONTHLY',           // 月报
  YEARLY = 'YEARLY'              // 年报
}

interface QualityMetrics {
  totalRecords: number;          // 总记录数
  validRecords: number;          // 有效记录数
  invalidRecords: number;        // 无效记录数
  missingRate: number;           // 缺失率(%)
  errorRate: number;             // 错误率(%)
  correctionRate: number;        // 修正率(%)
  duplicateRate: number;         // 重复率(%)
}

interface QualityDimension {
  dimension: string;             // 维度名称(数据源、能源类型、部门等)
  value: string;                 // 维度值
  metrics: QualityMetrics;       // 该维度的质量指标
}

interface QualityTrend {
  date: Date;                    // 日期
  metrics: QualityMetrics;       // 质量指标
}

4. 权限设计

4.1 角色定义

角色权限
系统管理员配置校验规则、查看所有数据、修正数据、审批修正、查看质量报告
碳核算专员查看所有数据、修正数据、审批修正、查看质量报告
数据管理员查看本部门数据、修正本部门数据、查看本部门质量报告
部门数据员查看本部门数据、修正本部门数据(需审批)
查看者查看数据、查看质量报告

4.2 数据权限

  • 系统管理员:可查看和修正所有数据
  • 碳核算专员:可查看和修正所有数据
  • 数据管理员:可查看和修正本部门数据
  • 部门数据员:只能查看和修正本部门数据
  • 查看者:只能查看授权范围内的数据

4.3 操作权限

  • 校验规则配置:仅系统管理员
  • 数据修正:系统管理员、碳核算专员、数据管理员、部门数据员
  • 修正审批:系统管理员、碳核算专员
  • 质量报告查看:所有角色(按数据权限)
  • 质量报告导出:系统管理员、碳核算专员、数据管理员

5. 技术架构

5.1 系统架构

5.2 核心功能模块

  1. 规则引擎模块

    • 规则解析和执行
    • 规则版本管理
    • 规则性能优化
    • 规则测试工具
  2. 实时校验模块

    • 单条数据校验
    • 实时错误提示
    • 一键修正建议
    • 校验缓存优化
  3. 批量校验模块

    • 大批量数据处理
    • 并行校验
    • 进度监控
    • 问题清单生成
  4. 修正管理模块

    • 修正工作流
    • 审批流程
    • 修正历史记录
    • 批量修正
  5. 质量分析模块

    • 质量指标计算
    • 多维度分析
    • 趋势分析
    • 报告生成

6. 关键业务规则总结

6.1 完整性规则

  • 必填字段不能为空
  • 关联数据必须完整
  • 原始凭证必须上传

6.2 准确性规则

  • 数值在合理范围内
  • 单位一致且正确
  • 数据格式符合要求

6.3 一致性规则

  • 同比环比变化不超过阈值
  • 数据符合业务逻辑
  • 不同数据源数据一致

6.4 唯一性规则

  • 同一时间同一设备不能重复
  • 疑似重复数据需要核实

6.5 修正规则

  • 修正权限按角色控制
  • 重要数据修正需要审批
  • 所有修正操作必须记录

7. 实施要点

7.1 校验规则配置

  • 初期:校验规则宽松,避免误报
  • 优化:根据实际数据逐步优化校验规则
  • 自定义:支持企业自定义校验规则

7.2 性能优化

  • 实时校验:响应时间 < 1秒
  • 批量校验:支持10000+条数据
  • 并行处理:充分利用多核CPU
  • 缓存优化:缓存校验结果,避免重复计算

7.3 用户体验

  • 错误提示:清晰明确,提供修正建议
  • 一键修正:常见问题支持一键修正
  • 批量操作:支持批量修正和审批
  • 进度展示:批量校验进度实时展示

7.4 数据安全

  • 权限控制:按角色和部门控制权限
  • 操作审计:所有操作完整记录
  • 数据备份:修正前自动备份
  • 防篡改:修正历史不可篡改

下一步:开发资产

在开发资产阶段,我们将:

  1. 创建 Skills(校验规则、异常检测算法)
  2. 创建 Prompts(校验规则配置向导、修正建议生成)
  3. 创建代码模板(校验引擎API、修正管理API、前端组件)

查看开发资产 →


创建时间:2026-05-01

基于 AI 辅助开发,快速、灵活、可靠