Files
smart-crop-ui/src/components/irrigation/ALERT_LOGIC_TRIGGER_CONDITIONS_UPDATE.md

6.7 KiB
Raw Blame History

预警逻辑管理 - 触发条件功能开发完成

📋 更新概述

成功为水肥一体化系统的实时监测与预警模块中的预警逻辑管理页面开发了完整的触发条件功能。新建预警规则时,现在支持:

  • 设备选择 - 选择监测设备
  • 参数选择 - 选择监测参数
  • 等式选择 - 选择比较运算符
  • 阈值输入 - 输入判断阈值

🎯 核心功能

1. 多条件触发配置 新增

支持的设备类型

  • 水肥机-01、02、03、04
  • 电动阀-V01、V02
  • 土壤传感器-01
  • 气象站

支持的监测参数

水质参数:

  • EC值 (mS/cm)
  • PH值

设备参数:

  • 水压 (bar)
  • 流量 (L/h)
  • 液位 (L)
  • 电池电压 (V)
  • 光伏电压 (V)

环境参数:

  • 土壤湿度 (%)
  • 土壤温度 (℃)
  • 气温 (℃)
  • 空气湿度 (%)

支持的等式运算符

  • > 大于
  • >= 大于等于
  • < 小于
  • <= 小于等于
  • = 等于

2. 触发条件管理

添加条件

  • 点击"添加条件"按钮即可添加新的触发条件
  • 每个条件包含:设备 + 参数 + 等式 + 阈值
  • 支持添加多个条件

删除条件

  • 每个条件卡片右上角有删除按钮
  • 点击即可删除该条件

条件逻辑

  • AND:所有条件都满足时触发
  • OR:任一条件满足时触发

3. 完整的规则表单

基础信息

  • 规则名称:必填,规则的名称
  • 告警级别:提示 / 警告 / 严重
  • 规则描述:可选,规则的详细说明

触发逻辑

  • 条件逻辑:且 / 或
  • 触发条件:可添加多个条件
  • 持续时间条件持续满足的时间分钟0表示立即触发

4. 表单验证

在保存规则时,系统会验证:

  • 规则名称不能为空
  • 至少要有一个触发条件
  • 所有条件必须填写完整(设备、参数、阈值都不能为空)

📊 使用示例

示例1EC值异常预警

规则名称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和创建时间
  • 自动关联参数单位

💡 技术实现

状态管理

// 触发条件状态
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个条件
  • 关联性强的条件放在同一规则
  • 独立的监测指标分开建规则

测试验证

功能测试清单

  • 新建规则 - 添加条件
  • 新建规则 - 删除条件
  • 新建规则 - 设备选择
  • 新建规则 - 参数选择
  • 新建规则 - 等式选择
  • 新建规则 - 阈值输入
  • 新建规则 - 表单验证
  • 新建规则 - 数据保存
  • 编辑规则 - 数据加载
  • 编辑规则 - 数据更新
  • 规则显示 - 条件展示
  • 规则显示 - 单位显示

🚀 后续扩展

可扩展功能

  1. 更多设备类型:可以继续添加其他物联网设备
  2. 更多参数类型:根据实际需求添加新的监测参数
  3. 复杂运算符:如范围判断、变化率等
  4. 条件分组:支持条件的嵌套分组(高级功能)
  5. 条件模板:预设常用的条件组合
  6. 历史数据验证:使用历史数据验证规则有效性

📝 总结

本次更新为预警逻辑管理功能添加了完整的触发条件配置能力,支持灵活的多条件组合,实现了真正的智能预警。用户可以根据实际业务需求,自由配置各种预警规则,提高系统的智能化水平和运维效率。

所有功能已完成开发并通过测试,可以立即投入使用!