# ✅ 故障诊断与预警功能 - 优化更新 ## 🎯 更新概述 根据用户反馈,对故障诊断与预警功能进行了重要优化: ### ✨ 新增功能 1. **预警规则管理** ⭐ (新增) 2. **预警记录处理** (优化) 3. **简化处理状态** (优化) --- ## 📋 更新内容 ### 1️⃣ 新增预警规则管理 #### 功能位置 ``` 远程诊断与故障预警 → 预警规则 ``` #### 核心功能 **规则配置**: - ✅ 规则名称和描述 - ✅ 所属分类(8大系统) - ✅ 预警级别(提示/警告/错误/严重) - ✅ 触发条件配置 - ✅ 推送渠道设置 - ✅ 自动创建任务 - ✅ 启用/禁用开关 **触发条件**: ```typescript { sensorKey: 'coolant_temp', // 监测参数 threshold: { type: 'greater', // 条件类型 value: 105, // 阈值 duration: 30 // 持续时间(秒) } } ``` **条件类型**: - 大于 (>) - 小于 (<) - 等于 (=) - 范围内 (min~max) **监测参数**: - 发动机转速 (RPM) - 冷却液温度 (℃) - 机油压力 (kPa) - 燃油液位 (%) - 液压压力 (MPa) - 电池电压 (V) - 振动等级 - 皮带张紧度 **推送渠道**: - ✅ 站内信 - ✅ 短信通知 - ✅ 邮件通知 - ✅ 推送通知 **自动任务**: - 触发预警时自动创建维修任务 - 便于快速响应和跟踪 #### 界面展示 ``` ┌─────────────────────────────────────────┐ │ 预警规则管理 [新增规则] │ ├─────────────────────────────────────────┤ │ [规则总数] [已启用] [已禁用] [严重级别] │ ├─────────────────────────────────────────┤ │ 状态 | 规则名称 | 级别 | 触发条件 | 操作│ │ [✓] | 温度过高 | 严重 | 温度>105℃ | 编辑│ │ [✓] | 油压过低 | 错误 | 压力<150 | 编辑│ │ [ ] | 燃油提醒 | 警告 | 液位<20% | 编辑│ └─────────────────────────────────────────┘ ``` #### 默认规则 系统已预设3条常用规则: 1. **发动机温度过高预警** - 级别: 严重 - 条件: 冷却液温度 > 105℃,持续30秒 - 推送: 站内信 + 短信 + 推送 - 自动创建任务: 是 2. **机油压力过低预警** - 级别: 错误 - 条件: 机油压力 < 150kPa,持续10秒 - 推送: 站内信 + 短信 3. **燃油液位过低提醒** - 级别: 警告 - 条件: 燃油液位 < 20% - 推送: 站内信 + 推送 --- ### 2️⃣ 简化处理状态 #### 状态变更 **原状态**: ``` 待处理 → 处理中 → 已解决 ``` **新状态**: ``` 待处理 → 已处理 ``` #### 变更原因 - ❌ 移除"处理中"状态,简化流程 - ✅ 只保留"待处理"和"已处理"两个状态 - ✅ 处理流程更清晰直观 #### 状态说明 | 状态 | 说明 | 颜色 | |------|------|------| | 待处理 | 等待处理的预警 | 🟠 橙色 | | 已处理 | 已完成处理的预警 | 🟢 绿色 | | 已忽略 | 已忽略的预警 | ⚪ 灰色 | --- ### 3️⃣ 预警记录处理优化 #### 功能位置 ``` 远程诊断与故障预警 → 预警记录 ``` #### 处理流程 **步骤1: 查看详情** ``` 点击"详情" → 查看3个Tab: - 预警详情(故障码、诊断、原因) - 解决方案(分步骤指导) - 知识库(相关文章) ``` **步骤2: 处理预警** ``` 1. 填写处理备注 2. 点击"标记已处理" 3. 系统记录处理人、处理时间 ``` **步骤3: 查看处理记录** ``` 已处理的预警显示: - 处理人员 - 处理时间 - 处理备注 ``` #### 统计数据 ``` ┌─────────────────────────────────────────┐ │ [总预警] [待处理] [已处理] [严重] [预测]│ │ 15 8 7 2 3 │ └─────────────────────────────────────────┘ ``` --- ## 🎨 界面结构 ### Tab导航 ``` ┌─────────────────────────────────────────┐ │ 远程诊断与故障预警 │ ├─────────────────────────────────────────┤ │ [预警规则] [预警记录] [健康评估] [参数监测]│ └─────────────────────────────────────────┘ ``` ### 预警规则 Tab ``` ┌─────────────────────────────────────────┐ │ 预警规则管理 [新增规则] │ ├─────────────────────────────────────────┤ │ 统计卡片 × 4 │ ├─────────────────────────────────────────┤ │ 规则列表表格 │ │ - 启用/禁用开关 │ │ - 规则信息 │ │ - 触发条件 │ │ - 推送渠道 │ │ - 编辑/删除操作 │ └─────────────────────────────────────────┘ ``` ### 预警记录 Tab ``` ┌─────────────────────────────────────────┐ │ 预警记录 [推送设置] │ ├─────────────────────────────────────────┤ │ 统计卡片 × 5 │ ├─────────────────────────────────────────┤ │ 预警列表表格 │ │ - 级别标签 │ │ - 农机名称 │ │ - 故障码 │ │ - 状态(待处理/已处理) │ │ - 详情/知识库/发送操作 │ └─────────────────────────────────────────┘ ``` --- ## 📊 数据流程 ### 预警触发流程 ``` 1. 传感器数据采集 ↓ 2. 匹配预警规则 - 检查规则是否启用 - 检查触发条件 - 检查持续时间 ↓ 3. 生成预警记录 - 状态: 待处理 - 记录检测时间 ↓ 4. 多渠道推送 - 根据规则配置推送 - 站内信/短信/邮件/推送 ↓ 5. 自动创建任务(可选) - 如果规则开启了自动任务 - 创建维修任务 ``` ### 预警处理流程 ``` 1. 查看预警列表 ↓ 2. 点击"详情"查看 - 预警详情 - 解决方案 - 知识库文章 ↓ 3. 填写处理备注 ↓ 4. 点击"标记已处理" ↓ 5. 系统记录 - 状态: 已处理 - 处理人: 当前用户 - 处理时间: 当前时间 - 处理备注 ``` --- ## 🔧 技术实现 ### 新增文件 1. **`/components/machinery/fault/AlertRuleManagement.tsx`** (600+行) - 预警规则管理组件 - CRUD操作 - 规则配置表单 ### 更新文件 2. **`/components/machinery/fault/FaultWarning.tsx`** (700+行) - 简化状态为"待处理"和"已处理" - 优化处理流程 - 添加处理记录显示 3. **`/components/machinery/FaultDiagnosis.tsx`** - 添加Tab导航 - 集成预警规则和预警记录 4. **`/types/equipment.ts`** - 更新状态类型定义 - 移除"处理中"状态 ### 数据存储 ```typescript // 预警规则存储 localStorage.setItem('smart_agriculture_alert_rules', JSON.stringify(rules)); // 预警记录存储 localStorage.setItem('smart_agriculture_faults', JSON.stringify(faults)); ``` --- ## 📝 使用示例 ### 示例1: 创建温度预警规则 ```typescript { name: '发动机温度过高预警', category: '冷却系统', level: 'critical', sensorKey: 'coolant_temp', threshold: { type: 'greater', value: 105, duration: 30 }, pushChannels: ['internal', 'sms', 'push'], autoCreateTask: true, enabled: true } ``` **效果**: 当冷却液温度超过105℃并持续30秒时,自动触发严重预警,通过站内信、短信和推送通知,并自动创建维修任务。 ### 示例2: 处理预警记录 ``` 1. 进入"预警记录"Tab 2. 找到待处理的预警 3. 点击"详情" 4. 查看解决方案和知识库 5. 填写处理备注: "已检查冷却液液位,补充2L冷却液, 检查水泵正常,散热器清洗完成" 6. 点击"标记已处理" 7. ✅ 完成 ``` --- ## ✅ 功能检查清单 ### 预警规则管理 - [x] 新增规则 - [x] 编辑规则 - [x] 删除规则 - [x] 启用/禁用规则 - [x] 触发条件配置 - [x] 推送渠道设置 - [x] 自动创建任务 - [x] 规则列表展示 - [x] 统计数据 ### 预警记录处理 - [x] 预警列表展示 - [x] 状态筛选 - [x] 查看详情 - [x] 解决方案展示 - [x] 知识库展示 - [x] 标记已处理 - [x] 处理备注 - [x] 处理记录显示 - [x] 多渠道推送 ### 状态管理 - [x] 移除"处理中"状态 - [x] 简化为"待处理"/"已处理" - [x] 类型定义更新 - [x] 界面适配 --- ## 🎯 核心改进 ### 1. 灵活的规则配置 **原来**: 规则硬编码在代码中,难以修改 **现在**: - ✅ 可视化配置界面 - ✅ 支持多种触发条件 - ✅ 灵活的推送设置 - ✅ 随时启用/禁用 ### 2. 简化的处理流程 **原来**: ``` 待处理 → 处理中 → 已解决 ``` **现在**: ``` 待处理 → 已处理 ``` **优势**: - ✅ 流程更简洁 - ✅ 操作更便捷 - ✅ 状态更清晰 ### 3. 完善的记录管理 **新增**: - ✅ 处理人员记录 - ✅ 处理时间记录 - ✅ 处理备注记录 - ✅ 处理历史可追溯 --- ## 📈 使用场景 ### 场景1: 配置温度预警 ``` 需求: 当发动机温度超过105℃时预警 操作: 1. 进入"预警规则" 2. 点击"新增规则" 3. 填写: - 名称: 发动机温度过高预警 - 级别: 严重 - 参数: 冷却液温度 - 条件: 大于 - 阈值: 105 - 持续: 30秒 - 推送: 站内信+短信+推送 - 自动任务: 启用 4. 保存 5. ✅ 完成 ``` ### 场景2: 处理温度预警 ``` 场景: 收到温度过高预警 操作: 1. 进入"预警记录" 2. 找到温度预警 3. 点击"详情" 4. 查看解决方案: - 立即停机 - 检查冷却液 - 检查水泵 5. 执行维修操作 6. 填写备注: "已补充冷却液,检查正常" 7. 标记已处理 8. ✅ 完成 ``` --- ## 💡 最佳实践 ### 规则配置建议 1. **严重级别**: 使用短信和推送,确保及时响应 2. **警告级别**: 使用站内信和推送,避免过度打扰 3. **持续时间**: 设置合理值,避免频繁误报 4. **自动任务**: 仅对严重故障启用 ### 处理流程建议 1. **及时处理**: 尽快处理待处理的预警 2. **详细备注**: 记录详细的处理过程 3. **参考知识库**: 查看标准解决方案 4. **经验总结**: 将处理经验添加到知识库 --- ## 🎉 总结 ### ✅ 主要成果 1. **预警规则管理**: 可视化配置,灵活管理 2. **处理流程优化**: 简化状态,提升效率 3. **记录可追溯**: 完整记录处理过程 ### 📊 功能对比 | 功能 | 更新前 | 更新后 | |------|--------|--------| | 规则配置 | ❌ 硬编码 | ✅ 可视化 | | 处理状态 | 3个状态 | 2个状态 | | 处理记录 | ❌ 无 | ✅ 完整 | | 自动任务 | ❌ 无 | ✅ 支持 | ### 🚀 下一步 - [ ] 规则批量导入导出 - [ ] 预警趋势分析 - [ ] 预警统计报表 - [ ] 移动端适配 --- **更新时间**: 2025-10-17 **版本**: v2.0 **状态**: ✅ **已完成上线**