方案设计:能源消耗数据采集
← 返回场景概览 | 上一阶段:需求探索 | 下一阶段:开发资产
方案概览
本方案设计了一套多源数据自动采集 + 人工补录 + 质量校验的能源数据采集系统,支持从ERP、MES、能源管理系统、电表系统等多个数据源自动采集能源消耗数据,同时支持人工录入和移动端抄表,并提供实时数据质量校验和异常预警功能。
核心价值:
- 数据采集时间从3-5天缩短到1小时以内
- 数据缺失率从15%降低到5%以内
- 支持日度、周度、月度等多种采集频率
- 实时监控能耗,及时发现异常
1. 全流程业务设计
1.1 整体流程
1.2 核心环节
环节一:数据源配置
流程步骤:
- 选择数据源类型(ERP、MES、能源管理系统、电表系统、人工录入)
- 配置连接参数(数据库连接、API地址、文件路径等)
- 测试连接是否成功
- 配置数据映射规则(源字段 → 目标字段)
- 保存配置
关键规则:
- 支持多种连接方式:数据库直连、API对接、文件导入、人工录入
- 连接参数加密存储,保证安全性
- 数据映射支持字段转换(如单位换算、格式转换)
- 配置保存后可随时修改
环节二:采集规则设置
流程步骤:
- 选择能源类型(电、气、煤、油等)
- 设置采集频率(日度、周度、月度、实时)
- 设置采集时间(如每月1日凌晨2点)
- 设置数据范围(时间范围、部门范围等)
- 设置校验规则(合理范围、同比环比阈值等)
- 保存规则
关键规则:
- 采集频率可按能源类型分别设置
- 采集时间避开业务高峰期
- 数据范围支持灵活配置(按部门、按设备、按时间等)
- 校验规则可自定义
环节三:自动数据采集
流程步骤:
- 定时任务触发(按设定的采集时间)
- 连接数据源(数据库、API、文件系统)
- 执行查询或读取操作
- 提取数据(按数据映射规则)
- 数据标准化(单位换算、格式转换)
- 数据质量校验
- 保存到数据库
- 记录采集日志
关键规则:
- 采集失败自动重试(最多3次)
- 采集过程记录详细日志
- 数据标准化规则统一
- 采集完成后发送通知
环节四:人工数据录入
流程步骤:
- 打开数据录入界面
- 选择能源类型和时间
- 填写能源消耗数据
- 上传原始凭证(可选)
- 实时校验数据
- 提交保存
关键规则:
- 支持单条录入和批量导入
- 支持移动端录入(如抄表APP)
- 实时校验,发现问题立即提示
- 原始凭证与数据关联存储
环节五:数据质量校验
流程步骤:
- 检查数据完整性(是否有缺失值)
- 检查数据合理性(是否在合理范围内)
- 检查数据一致性(是否与历史数据差异过大)
- 检查数据重复性(是否重复录入)
- 生成校验报告
- 标记问题数据
关键规则:
- 缺失值:必填字段不能为空
- 合理性:数值在合理范围内(如用电量 > 0)
- 一致性:同比环比变化不超过阈值(如同比增长不超过50%)
- 重复性:同一时间、同一设备的数据不能重复
2. 业务规则设计
2.1 数据采集规则
规则一:采集频率规则
- 描述:不同能源类型的采集频率不同
- 判断条件:
- 电力:日度采集(每日凌晨2点)
- 天然气:日度采集(每日凌晨2点)
- 煤炭:月度采集(每月1日)
- 柴油/汽油:月度采集(每月1日)
- 处理动作:按设定频率自动触发采集任务
规则二:采集失败重试规则
- 描述:采集失败后自动重试
- 判断条件:采集失败(连接超时、数据格式错误等)
- 处理动作:
- 第1次失败:5分钟后重试
- 第2次失败:30分钟后重试
- 第3次失败:发送告警通知,人工介入
规则三:数据标准化规则
- 描述:将不同格式的数据转换为统一格式
- 判断条件:数据格式不统一
- 处理动作:
- 单位换算:吨 → 千克、GJ → MJ
- 格式转换:日期格式统一为 YYYY-MM-DD
- 数值精度:保留2位小数
2.2 数据质量校验规则
规则一:缺失值检查
- 描述:检查必填字段是否为空
- 判断条件:必填字段为空或null
- 处理动作:标记为"缺失值",提示补录
规则二:合理范围检查
- 描述:检查数值是否在合理范围内
- 判断条件:
- 用电量 < 0 或 > 1000000(度)
- 用气量 < 0 或 > 100000(立方米)
- 用煤量 < 0 或 > 10000(吨)
- 处理动作:标记为"异常值",提示核实
规则三:同比环比检查
- 描述:检查数据是否与历史数据差异过大
- 判断条件:
- 同比增长 > 50% 或 < -50%
- 环比增长 > 30% 或 < -30%
- 处理动作:标记为"异常波动",提示核实原因
规则四:重复值检查
- 描述:检查是否重复录入
- 判断条件:同一时间、同一设备、同一能源类型的数据已存在
- 处理动作:标记为"重复数据",提示删除或修正
2.3 数据修正规则
规则一:修正权限规则
- 描述:只有授权人员可以修正数据
- 判断条件:用户角色为"碳核算专员"或"数据管理员"
- 处理动作:允许修正;否则拒绝
规则二:修正记录规则
- 描述:所有修正操作必须记录
- 判断条件:数据被修正
- 处理动作:记录修正前后的值、修正原因、修正人、修正时间
规则三:修正审批规则
- 描述:重要数据修正需要审批
- 判断条件:修正幅度 > 20%
- 处理动作:提交审批流程,审批通过后生效
3. 数据模型设计
3.1 数据源配置(DataSourceConfig)
typescript
interface DataSourceConfig {
id: string; // 数据源ID
name: string; // 数据源名称
type: DataSourceType; // 数据源类型(ERP/MES/能源系统/电表/人工)
connectionParams: { // 连接参数
host?: string; // 数据库主机
port?: number; // 端口
database?: string; // 数据库名
username?: string; // 用户名
password?: string; // 密码(加密存储)
apiUrl?: string; // API地址
apiKey?: string; // API密钥
filePath?: string; // 文件路径
};
dataMapping: DataMapping[]; // 数据映射规则
isEnabled: boolean; // 是否启用
createdAt: Date;
updatedAt: Date;
}
enum DataSourceType {
ERP = 'ERP',
MES = 'MES',
ENERGY_SYSTEM = 'ENERGY_SYSTEM',
METER = 'METER',
MANUAL = 'MANUAL'
}
interface DataMapping {
sourceField: string; // 源字段名
targetField: string; // 目标字段名
transform?: string; // 转换规则(如单位换算)
}3.2 采集规则(CollectionRule)
typescript
interface CollectionRule {
id: string; // 规则ID
dataSourceId: string; // 数据源ID
energyType: EnergyType; // 能源类型
frequency: Frequency; // 采集频率
schedule: string; // 采集时间(Cron表达式)
dataRange: { // 数据范围
startDate?: Date;
endDate?: Date;
departments?: string[]; // 部门列表
devices?: string[]; // 设备列表
};
validationRules: ValidationRule[]; // 校验规则
isEnabled: boolean; // 是否启用
createdAt: Date;
updatedAt: Date;
}
enum EnergyType {
ELECTRICITY = 'ELECTRICITY', // 电力
GAS = 'GAS', // 天然气
COAL = 'COAL', // 煤炭
DIESEL = 'DIESEL', // 柴油
GASOLINE = 'GASOLINE' // 汽油
}
enum Frequency {
REALTIME = 'REALTIME', // 实时
DAILY = 'DAILY', // 日度
WEEKLY = 'WEEKLY', // 周度
MONTHLY = 'MONTHLY' // 月度
}3.3 能源消耗数据(EnergyConsumption)
typescript
interface EnergyConsumption {
id: string; // 数据ID
dataSourceId: string; // 数据源ID
energyType: EnergyType; // 能源类型
department: string; // 部门
device?: string; // 设备
consumptionDate: Date; // 消耗日期
quantity: number; // 消耗量
unit: string; // 单位(度、立方米、吨等)
cost?: number; // 费用
currency?: string; // 币种
dataSource: string; // 数据来源(自动采集/人工录入)
collectionTime: Date; // 采集时间
status: DataStatus; // 数据状态
validationResult?: ValidationResult; // 校验结果
attachments?: string[]; // 附件(原始凭证)
createdBy: string; // 创建人
createdAt: Date;
updatedAt: Date;
}
enum DataStatus {
PENDING = 'PENDING', // 待校验
VALID = 'VALID', // 已校验通过
INVALID = 'INVALID', // 校验不通过
CORRECTED = 'CORRECTED' // 已修正
}
interface ValidationResult {
isValid: boolean; // 是否通过校验
errors: ValidationError[]; // 错误列表
}
interface ValidationError {
type: string; // 错误类型(缺失值/异常值/重复值)
field: string; // 字段名
message: string; // 错误信息
severity: 'ERROR' | 'WARNING'; // 严重程度
}3.4 数据修正记录(DataCorrection)
typescript
interface DataCorrection {
id: string; // 修正记录ID
dataId: string; // 数据ID
field: string; // 修正字段
oldValue: any; // 修正前的值
newValue: any; // 修正后的值
reason: string; // 修正原因
correctedBy: string; // 修正人
correctedAt: Date; // 修正时间
approvedBy?: string; // 审批人
approvedAt?: Date; // 审批时间
status: CorrectionStatus; // 修正状态
}
enum CorrectionStatus {
PENDING = 'PENDING', // 待审批
APPROVED = 'APPROVED', // 已审批
REJECTED = 'REJECTED' // 已拒绝
}3.5 采集日志(CollectionLog)
typescript
interface CollectionLog {
id: string; // 日志ID
ruleId: string; // 规则ID
dataSourceId: string; // 数据源ID
startTime: Date; // 开始时间
endTime: Date; // 结束时间
status: LogStatus; // 状态
recordCount: number; // 采集记录数
errorCount: number; // 错误记录数
errorMessage?: string; // 错误信息
retryCount: number; // 重试次数
createdAt: Date;
}
enum LogStatus {
SUCCESS = 'SUCCESS', // 成功
FAILED = 'FAILED', // 失败
PARTIAL = 'PARTIAL' // 部分成功
}4. 权限设计
4.1 角色定义
| 角色 | 权限 |
|---|---|
| 系统管理员 | 配置数据源、设置采集规则、查看所有数据、修正数据、审批修正 |
| 碳核算专员 | 查看所有数据、修正数据、导出数据、生成报告 |
| 数据管理员 | 人工录入数据、修正数据、查看本部门数据 |
| 部门数据员 | 人工录入本部门数据、查看本部门数据 |
| 查看者 | 查看数据、导出数据 |
4.2 数据权限
- 系统管理员:可查看和修正所有数据
- 碳核算专员:可查看和修正所有数据
- 数据管理员:可查看和修正本部门数据
- 部门数据员:只能查看和录入本部门数据
- 查看者:只能查看授权范围内的数据
4.3 操作权限
- 数据源配置:仅系统管理员
- 采集规则设置:系统管理员、碳核算专员
- 人工录入:数据管理员、部门数据员
- 数据修正:系统管理员、碳核算专员、数据管理员
- 修正审批:系统管理员、碳核算专员
- 数据导出:所有角色(按数据权限)
5. 技术架构
5.1 系统架构
5.2 核心功能模块
数据采集引擎
- 支持多种数据源连接(数据库、API、文件)
- 定时任务调度
- 失败重试机制
- 采集日志记录
数据标准化模块
- 单位换算
- 格式转换
- 数据映射
数据质量校验模块
- 缺失值检查
- 合理范围检查
- 同比环比检查
- 重复值检查
数据修正模块
- 在线修正
- 批量修正
- 修正记录
- 修正审批
数据监控模块
- 实时监控仪表盘
- 异常预警
- 采集状态监控
- 数据质量报告
6. 关键业务规则总结
6.1 数据采集规则
- 采集频率按能源类型分别设置(电力日度、煤炭月度)
- 采集失败自动重试3次
- 采集过程记录详细日志
- 数据标准化规则统一
6.2 数据质量规则
- 缺失值:必填字段不能为空
- 合理范围:数值在合理范围内
- 同比环比:变化不超过阈值
- 重复值:同一时间同一设备不能重复
6.3 数据修正规则
- 修正权限:仅授权人员可修正
- 修正记录:所有修正操作必须记录
- 修正审批:重要数据修正需要审批
6.4 数据安全规则
- 连接参数加密存储
- 数据权限按角色和部门控制
- 操作日志完整记录
- 敏感数据脱敏展示
7. 实施要点
7.1 数据源对接
- 优先级:先对接数据量大、采集频率高的数据源(如电表系统)
- 测试:充分测试连接稳定性和数据准确性
- 备份:保留原始数据,便于问题排查
7.2 校验规则配置
- 初期:校验规则宽松,避免误报
- 优化:根据实际数据逐步优化校验规则
- 自定义:支持企业自定义校验规则
7.3 用户培训
- 系统管理员:数据源配置、采集规则设置
- 数据管理员:人工录入、数据修正
- 部门数据员:移动端抄表、数据录入
7.4 数据迁移
- 历史数据:导入历史数据,便于同比环比分析
- 数据清洗:清洗历史数据,保证质量
- 数据验证:验证迁移数据的准确性
下一步:开发资产
在开发资产阶段,我们将:
- 创建 Skills(数据采集规则、数据质量校验规则)
- 创建 Prompts(数据源配置向导、校验规则配置向导)
- 创建代码模板(数据采集API、数据校验API、前端组件)
创建时间:2026-05-01