# 预警逻辑管理 - 触发条件功能开发完成 ## 📋 更新概述 成功为水肥一体化系统的实时监测与预警模块中的**预警逻辑管理**页面开发了完整的触发条件功能。新建预警规则时,现在支持: - ✅ **设备选择** - 选择监测设备 - ✅ **参数选择** - 选择监测参数 - ✅ **等式选择** - 选择比较运算符 - ✅ **阈值输入** - 输入判断阈值 ## 🎯 核心功能 ### 1. **多条件触发配置** ⭐ 新增 #### 支持的设备类型 - 水肥机-01、02、03、04 - 电动阀-V01、V02 - 土壤传感器-01 - 气象站 #### 支持的监测参数 **水质参数:** - EC值 (mS/cm) - PH值 **设备参数:** - 水压 (bar) - 流量 (L/h) - 液位 (L) - 电池电压 (V) - 光伏电压 (V) **环境参数:** - 土壤湿度 (%) - 土壤温度 (℃) - 气温 (℃) - 空气湿度 (%) #### 支持的等式运算符 - `>` 大于 - `>=` 大于等于 - `<` 小于 - `<=` 小于等于 - `=` 等于 ### 2. **触发条件管理** #### 添加条件 - 点击"添加条件"按钮即可添加新的触发条件 - 每个条件包含:设备 + 参数 + 等式 + 阈值 - 支持添加多个条件 #### 删除条件 - 每个条件卡片右上角有删除按钮 - 点击即可删除该条件 #### 条件逻辑 - **且(AND)**:所有条件都满足时触发 - **或(OR)**:任一条件满足时触发 ### 3. **完整的规则表单** #### 基础信息 - **规则名称**:必填,规则的名称 - **告警级别**:提示 / 警告 / 严重 - **规则描述**:可选,规则的详细说明 #### 触发逻辑 - **条件逻辑**:且 / 或 - **触发条件**:可添加多个条件 - **持续时间**:条件持续满足的时间(分钟),0表示立即触发 ### 4. **表单验证** 在保存规则时,系统会验证: - ✅ 规则名称不能为空 - ✅ 至少要有一个触发条件 - ✅ 所有条件必须填写完整(设备、参数、阈值都不能为空) ## 📊 使用示例 ### 示例1:EC值异常预警 ``` 规则名称:EC值超标预警 告警级别:严重 条件逻辑:且 触发条件: - 设备:水肥机-01 - 参数:EC值 (mS/cm) - 等式:> - 阈值:3.5 持续时间:0分钟(立即触发) ``` ### 示例2:土壤湿度低位预警 ``` 规则名称:土壤湿度持续低位预警 告警级别:警告 条件逻辑:且 触发条件: 条件1: - 设备:土壤传感器-01 - 参数:土壤湿度 (%) - 等式:< - 阈值:30 条件2: - 设备:气象站 - 参数:空气湿度 (%) - 等式:< - 阈值:40 持续时间:60分钟 ``` ### 示例3:水压异常预警(或逻辑) ``` 规则名称:水压异常预警 告警级别:警告 条件逻辑:或 触发条件: 条件1: - 设备:电动阀-V01 - 参数:水压 (bar) - 等式:< - 阈值:1.5 条件2: - 设备:电动阀-V01 - 参数:水压 (bar) - 等式:> - 阈值:4.5 持续时间:5分钟 ``` ## 🎨 界面优化 ### 1. **条件卡片布局** - 每个条件以独立卡片形式展示 - 清晰的编号(条件1、条件2...) - 四列网格布局:设备 | 参数 | 等式 | 阈值 ### 2. **下拉选择器优化** - 设备选择器:列出所有可用设备 - 参数选择器:显示参数名称和单位 - 等式选择器:显示运算符符号和说明 ### 3. **条件显示优化** - 规则列表中显示所有触发条件 - 使用标签美化显示 - 清晰展示条件逻辑(且/或) ## 🔄 数据流转 ### 新建规则流程 1. 点击"新建预警规则"按钮 2. 填写基础信息(名称、级别、描述) 3. 选择条件逻辑(且/或) 4. 添加触发条件: - 选择设备 - 选择参数 - 选择等式 - 输入阈值 5. 设置持续时间 6. 点击"保存规则" ### 编辑规则流程 1. 点击规则卡片的"编辑"按钮 2. 表单自动加载现有数据 3. 修改任意字段 4. 点击"保存规则"更新 ### 数据保存 - 新建规则会添加到规则列表顶部 - 编辑规则会更新原有规则 - 自动生成唯一ID和创建时间 - 自动关联参数单位 ## 💡 技术实现 ### 状态管理 ```typescript // 触发条件状态 const [ruleConditions, setRuleConditions] = useState([]) // 表单数据状态 const [ruleName, setRuleName] = useState('') const [ruleDescription, setRuleDescription] = useState('') const [ruleLevel, setRuleLevel] = useState('警告') const [conditionOperator, setConditionOperator] = useState('且') const [ruleDuration, setRuleDuration] = useState(0) ``` ### 辅助函数 - `getParameterUnit()` - 获取参数单位 - `getParameterLabel()` - 获取参数中文标签 - `getDeviceLabel()` - 获取设备中文标签 ### 表单验证 - 必填字段验证 - 条件完整性验证 - 实时错误提示 ## 🎯 使用建议 ### 1. **合理设置条件逻辑** - **且逻辑**:适用于需要多个条件同时满足的场景 - **或逻辑**:适用于任一条件满足即需要告警的场景 ### 2. **正确选择告警级别** - **提示**:轻微异常,仅供参考 - **警告**:需要关注的异常情况 - **严重**:必须立即处理的严重问题 ### 3. **合理设置持续时间** - 0分钟:条件满足立即触发(适用于严重告警) - 5-30分钟:短期持续(适用于一般警告) - 60分钟以上:长期趋势(适用于提示类告警) ### 4. **条件设计建议** - 避免条件过于复杂 - 建议单个规则不超过5个条件 - 关联性强的条件放在同一规则 - 独立的监测指标分开建规则 ## ✅ 测试验证 ### 功能测试清单 - [x] 新建规则 - 添加条件 - [x] 新建规则 - 删除条件 - [x] 新建规则 - 设备选择 - [x] 新建规则 - 参数选择 - [x] 新建规则 - 等式选择 - [x] 新建规则 - 阈值输入 - [x] 新建规则 - 表单验证 - [x] 新建规则 - 数据保存 - [x] 编辑规则 - 数据加载 - [x] 编辑规则 - 数据更新 - [x] 规则显示 - 条件展示 - [x] 规则显示 - 单位显示 ## 🚀 后续扩展 ### 可扩展功能 1. **更多设备类型**:可以继续添加其他物联网设备 2. **更多参数类型**:根据实际需求添加新的监测参数 3. **复杂运算符**:如范围判断、变化率等 4. **条件分组**:支持条件的嵌套分组(高级功能) 5. **条件模板**:预设常用的条件组合 6. **历史数据验证**:使用历史数据验证规则有效性 ## 📝 总结 本次更新为预警逻辑管理功能添加了完整的触发条件配置能力,支持灵活的多条件组合,实现了真正的智能预警。用户可以根据实际业务需求,自由配置各种预警规则,提高系统的智能化水平和运维效率。 所有功能已完成开发并通过测试,可以立即投入使用!