方案设计:数据质量校验
← 返回场景概览 | 上一阶段:需求探索 | 下一阶段:开发资产
方案概览
本方案设计了一套实时校验 + 批量校验 + 智能修正的数据质量管理系统,支持多维度数据质量检查(完整性、准确性、一致性、重复性),提供自动校验规则和人工修正功能,记录完整的修正历史。
核心价值:
- 数据检查时间从2-3天缩短到1小时以内
- 问题发现率从60-70%提升到95%以上
- 数据修正记录完整,支持审计
- 核查通过率提高
1. 全流程业务设计
1.1 整体流程
1.2 核心环节
环节一:校验规则配置
流程步骤:
- 选择数据类型(能源消耗、排放数据等)
- 配置校验规则(缺失值、合理范围、同比环比等)
- 设置校验参数(阈值、容忍度等)
- 测试校验规则
- 保存并启用
关键规则:
- 支持多种校验规则类型(完整性、准确性、一致性、重复性)
- 校验规则可按数据类型分别配置
- 校验参数支持动态调整
- 校验规则支持版本管理
环节二:实时数据校验
流程步骤:
- 用户录入或导入数据
- 系统实时执行校验规则
- 发现问题立即提示
- 用户修正后重新校验
- 校验通过后保存
关键规则:
- 校验响应时间 < 1秒
- 问题提示清晰明确
- 支持一键修正常见问题
- 修正后自动重新校验
环节三:批量数据校验
流程步骤:
- 选择校验范围(时间范围、部门范围等)
- 执行批量校验
- 生成问题清单
- 按问题类型分组展示
- 批量修正或逐条修正
关键规则:
- 支持大批量数据校验(10000+条)
- 校验进度实时展示
- 问题清单支持导出
- 支持批量修正操作
环节四:数据修正与审批
流程步骤:
- 查看问题数据详情
- 填写修正值和修正原因
- 提交修正(重要数据需审批)
- 审批人审核修正
- 审批通过后生效
关键规则:
- 修正权限按角色控制
- 重要数据修正需要审批(修正幅度 > 20%)
- 修正历史完整记录
- 支持批量审批
环节五:质量报告生成
流程步骤:
- 选择报告周期(日、周、月、年)
- 选择报告维度(数据源、能源类型、部门等)
- 生成质量报告
- 查看质量趋势
- 导出报告
关键规则:
- 报告包含质量指标(缺失率、异常率、修正率等)
- 支持多维度分析
- 支持趋势对比
- 报告支持导出(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 核心功能模块
规则引擎模块
- 规则解析和执行
- 规则版本管理
- 规则性能优化
- 规则测试工具
实时校验模块
- 单条数据校验
- 实时错误提示
- 一键修正建议
- 校验缓存优化
批量校验模块
- 大批量数据处理
- 并行校验
- 进度监控
- 问题清单生成
修正管理模块
- 修正工作流
- 审批流程
- 修正历史记录
- 批量修正
质量分析模块
- 质量指标计算
- 多维度分析
- 趋势分析
- 报告生成
6. 关键业务规则总结
6.1 完整性规则
- 必填字段不能为空
- 关联数据必须完整
- 原始凭证必须上传
6.2 准确性规则
- 数值在合理范围内
- 单位一致且正确
- 数据格式符合要求
6.3 一致性规则
- 同比环比变化不超过阈值
- 数据符合业务逻辑
- 不同数据源数据一致
6.4 唯一性规则
- 同一时间同一设备不能重复
- 疑似重复数据需要核实
6.5 修正规则
- 修正权限按角色控制
- 重要数据修正需要审批
- 所有修正操作必须记录
7. 实施要点
7.1 校验规则配置
- 初期:校验规则宽松,避免误报
- 优化:根据实际数据逐步优化校验规则
- 自定义:支持企业自定义校验规则
7.2 性能优化
- 实时校验:响应时间 < 1秒
- 批量校验:支持10000+条数据
- 并行处理:充分利用多核CPU
- 缓存优化:缓存校验结果,避免重复计算
7.3 用户体验
- 错误提示:清晰明确,提供修正建议
- 一键修正:常见问题支持一键修正
- 批量操作:支持批量修正和审批
- 进度展示:批量校验进度实时展示
7.4 数据安全
- 权限控制:按角色和部门控制权限
- 操作审计:所有操作完整记录
- 数据备份:修正前自动备份
- 防篡改:修正历史不可篡改
下一步:开发资产
在开发资产阶段,我们将:
- 创建 Skills(校验规则、异常检测算法)
- 创建 Prompts(校验规则配置向导、修正建议生成)
- 创建代码模板(校验引擎API、修正管理API、前端组件)
创建时间:2026-05-01