业务规则可视化平台使用说明文档V1.2

Drule 使用说明文档

Drule业务规则可视化平台。基于Drools 封装的业务规则可视化平台,通过逻辑可视化结构(规则表达式/条件/结果动作)、零代码拖拽式编排业务语义级模板库,实现规则开发效率显著提升,使非技术用户也能快速构建金融风控、智能营销等决策系统。具备优秀的执行性能,测试环境下单次执行耗时最高可达0.5ms内,99%不超过2ms。

项目源码地址:https://gitee.com/ahaow/rule_engine

体验地址:http://ahaoweb.cn/drule/visual,账号:test,密码:123456。

⚠️ 当前系统还在迭代当中,功能有限,还请谅解。

1.页面结构

当前版本,主要包含五部分,左侧为规则内容目录,右侧分为规则调用、调用记录、变更记录和规则配置。

在这里插入图片描述

2.规则内容目录

如下所示,用于展示规则内容的Tree树形结构,目前分为3层,第1层为整个规则文件的名称,第2层为规则内部的分组,第3层为每个分组内部的规则块。该树形结构的第2,3层级支持拖拽,同层次的节点只能拖拽至同层次,即不支持节点跨层次的修改。

  • 规则文件
    • 分组(激活组):支持拖拽,只能拖拽到第2层级。
      • 规则块:支持拖拽,只能拖拽到所属分组的第3层级;支持点击锚点定位。
        在这里插入图片描述

[!NOTE]

支持右侧规则配置的内容联动。新增、修改(分组改变)、删除规则块都会触发该树形结构变化。

3.规则调用

  • 左侧为请求体,必须为JSON格式。

  • 右侧为返回的响应结果。

在这里插入图片描述

3.1.请求体

JSON格式,一个完整的示例入参对象的结构如下:

{
  "name":"food",
  "tag":"好吃",
  "price":100.1,
  "stock":10
}

编辑好请求体之后,即可点击右上角的执行按钮,右侧将会显示结果。

3.2.响应结果

返回的内容格式:

  • 执行时间:yyyy-MM-dd HH:mm:ss.SSS。
  • 总耗时:单位毫秒。
    • 入参反序例化耗时:单位毫秒。
    • 执行规则耗时:单位毫秒。
    • 出参序列化耗时:单位毫秒。
  • 命中规则:字符串数组。
  • 出参结果:json字符串。

4.调用记录

每次在规则调用中执行规则成功后,会记录其调用信息,当前仅展示最近10条调用记录,如下所示。

在这里插入图片描述

点击查看操作,会将其记录的数据自动填充至规则调用中,以便于查看和重复测试,如下所示。

在这里插入图片描述

5.变更记录

5.1.分页列表

当前变更内容包含:记录id(序号)、版本号、变更状态、变更名称(概括性内容)、变更描述(变更内容描述)、提交人、创建时间、操作栏。

在这里插入图片描述

5.2.操作栏

5.2.1.变更详情

包含两部分内容,第一部分为差异对比,如下所示,支持将可视化配置内容转为中文,并进行文本差异分析。左侧文本内容为提交变更时的生效版本,右侧内容为提交时生成的版本。

该差异对比使用 Java DIFF框架 java-diff-utils,官网地址 https://java-diff-utils.github.io/java-diff-utils

在这里插入图片描述

第二部分为编译内容,如下所示,转换为规则脚本文件的内容。

在这里插入图片描述

5.2.2.可视化

可视化指将该版本的规则结构,渲染到下方的规则配置中,也就是支持查看旧版本的规则。

在这里插入图片描述

5.2.3.作废

当变更状态为新增或者申请中时,可以作废本次记录。

5.2.4.发布

当变更状态为待发布时,可发布该版本规则。

6.配置规则

交互式可视化规则逻辑块结构。通过页面上的配置(可视化编辑器)替代传统代码编写,显著降低技术门槛,简化了学习成本和开发成本,让非专业人员也能上手操作。

在这里插入图片描述

6.1.新增规则

点击之后,在规则配置的最下方会自动新增一个名称为test的规则块,内容如下。

在这里插入图片描述

6.2.提交保存

会将配置好的可视化结构转换为DRL文件内容并保存。当前版本仅支持编译为DRL文件内容,支持保存功能(仅授权给系统管理员),同时也支持对可视化结构进行正确性效验。如果提交成功将会返回与当前生效版本的差异内容和编译后的规则脚本内容,如下所示。

在这里插入图片描述

如果提交失败,会显示失败原因,如下所示。

在这里插入图片描述

6.3.规则名称

用于唯一标识规则块,在整个规则文件中唯一。

6.4.规则分组

用于给规则块分组,在同一个分组中的规则最多只能有一个被命中,位置越靠前的规则,其优先级越高。如下所示:

分组a中的规则有:[a-1, a-2, a-3],执行规则时,最多只能有一个规则被命中,也就是a-1或者a-2或者a-3,并且按照优先级,先判断a-1,如果a-1没命中,再判断a-2,如果a-2未命中,再判断a-3。

6.5.描述

用于说明该规则块。

6.6.条件

支持两层嵌套,所以暂且称为外层逻辑和内层逻辑。

6.6.1.外层逻辑

如下所示,该条件只存在外层逻辑判断,实际内容为: (商品价格 >= 0 并且 商品价格 <= 100 并且 商品库存量 <= 10)

在这里插入图片描述

6.6.2.内层逻辑

点击关联条件按钮,将会出现内层逻辑的按钮。

如下所示,该条件存在内层逻辑,外层逻辑为并且(与),内层逻辑为或者(或),实际内容为:((商品价格 < 0 或者 商品价格 >= 1000) 并且 商品库存量 >= 0 并且 商品库存量 <= 10000 )

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接

6.6.3.新增条件

点击新增条件,将会在条件最下方,新增一个外层条件。

6.7.结果

如下所示,命中该规则块的条件后,将会执行的结果内容。也就是给出参对象中属性赋值。

在这里插入图片描述

结合一下人家的思路,再重新输出一份吧?以下是根据需求调研表梳理的**①流程梳理、②功能清单、③需求文框架**,供您正式编写文使用: --- ### 一、流程梳理 #### **核心业务流程** ```mermaid graph TD A[风险分析单元定义] --> B[风险辨识评价] B --> C[预警管控分析] C --> D[危险源/顶上事件配置] D --> E[威胁与后果管理] E --> F[屏障添加:预防类/减缓类] F --> G[全景可视化看板] G --> H[预警处置闭环] ``` #### **关键子流程** 1. **风险单元注册流程** 部门填报 → 绑定责任人与区域 → 生成单元列表 2. **风险辨识流程** 选择风险单元 → 填报危险源/顶上事件 → 关联设备设施 3. **屏障构建流程** 选择威胁 → 添加预防屏障 → 选择后果 → 添加减缓屏障 4. **预警可视化流程** 数据聚合 → 风险画像生成 → 动态预警地图 → 钻取式详情查看 --- ### 二、功能清单 #### **模块1:基础数据管理** | 功能点 | 说明 | |-----------------------|---------------------------------------| | 1.1 风险分析对象管理 | 维护重大/非重大危险源分类 | | 1.2 设备设施库 | 集成PID、APC、联锁系统等设备基础数据 | #### **模块2:风险分析单元管理** | 功能点 | 必填 | 说明 | |-----------------------|------|-----------------------------------| | 2.1 单元注册 | ✓ | 填报位置、责任人、部门、管控层级 | | 2.2 单元列表查询 | ✓ | 支持按区域/责任人/部门多维度筛选 | | 2.3 单元详情查看 | ✓ | 展示关联的危险源及屏障状态 | #### **模块3:风险辨识评价** | 功能点 | 必填 | 说明 | |-----------------------|------|-----------------------------------| | 3.1 辨识表单填报 | ✓ | 录入分析单元编码/区域/管控层级等 | | 3.2 危险源定义 | ✓ | 绑定能量类型(机械能/化学能等) | | 3.3 顶上事件配置 | ✓ | 关联设备设施并描述异常事件 | #### **模块4:预警管控分析** | 功能点 | 屏障类型 | 说明 | |-----------------------|-----------------------|-----------------------------------| | 4.1 威胁管理 | - | 定义威胁名称及触发逻辑 | | 4.2 预防屏障添加 | 主动硬件/人工巡查 | 选择管控方式(连续监控/人工排查) | | 4.3 后果管理 | - | 录入后果严重性描述 | | 4.4 减缓屏障添加 | 被动硬件/人工巡检 | 关联应急响应资源(围堰/PPE等) | #### **模块5:全景可视化** | 功能点 | 数据来源 | |-----------------------|-----------------------| | 5.1 风险热力图 | GIS地图+风险单元分布 | | 5.2 屏障效能仪表盘 | 预防/屏障失效统计 | | 5.3 实时预警看板 | 整合AI视觉/传感器告警 | --- ### 三、需求文框架(PRD) #### **1.概述** - **项目名称**:安全综合预警平台-预警管控模型 - **目标**:实现精馏球罐区风险要素全链路数字化管控 - **范围**:重大危险源辨识 → 屏障配置 → 动态预警 → 决策支持 #### **2. 术语定义** | 术语 | 解释 | |--------------|----------------------------------------------------------------------| | 顶上事件 | 可能引发事故的异常状态(如球罐超压) | | 主动硬件屏障 | 自动干预的硬件措施(如安全阀、连锁切断) | | 被动硬件屏障 | 减缓事故扩大的物理设施(如围堰、防火堤) | #### **3. 功能需求详述** **3.1 风险分析单元注册** - **字段要求**: ```markdown | 字段 | 类型 | 约束 | 示例值 | |-----------------|---------|--------|---------------------| | 风险分析对象 | 文本 | 必填 | 精馏车间T001球罐 | | 管控层级 | 枚举 | 必填 | 公司级/车间级 | | 具体位置描述 | GIS坐标 | 必填 | 东经XXX, 北纬XXX | ``` **3.2 预警管控分析流程** ```mermaid graph LR T[威胁] --> P[预防屏障] P --> TE[顶上事件] TE --> C[后果] C --> M[减缓屏障] ``` **3.3 屏障配置规则** - **预防屏障类型**: - 主动硬件:液位HH/LL联锁、安全阀 - 人工巡查:每班次巡检计划 - **减缓屏障类型**: - 被动硬件:防火堤、气体检测仪 - 人工干预:应急响应小组 #### **4. 非功能性需求** - **数据整合**:支持API对接PID、APC、AI视觉系统 - **响应性能**:预警信息延迟 ≤ 3秒 - **权限控制**:按公司/部门/车间三级数据隔离 #### **5. 原型示例** - **危险源填报实例**: ```json { “名称”: “丙烯球罐V09A08”, “能量类型”: “化学能”, “物质属性”: “易燃气体”, “关联设备”: “液位传感器LT-101” } ``` - **屏障添加效果**: > 威胁: “进料阀误操作” → 预防屏障: “SIS联锁切断系统(主动硬件/连续监控)” --- ### 交付物说明 1. **流程梳理**:用于开发理解业务闭环 2. **功能清单**:作为系统开发模块划分依据 3. **需求文**:包含字段规则、交互逻辑、整合接口定义 > **下一步建议**: > 1. 与智能制造部确认设备数据接口规范(如OPC UA协议) > 2. 验证GIS地图与厂区实际坐标的匹配精度 > 3. 制定屏障失效判定算法(如安全阀未按期检验=屏障失效) 此框架可直接扩展为正式PRD,需补充原型图及接口字段细节。
最新发布
07-14
<think>我们根据用户提供的需求调研表和之前梳理的流程、功能清单及需求文框架,结合新的思路(包含流程图、功能清单表格、需求文结构等),重新整合输出一份更清晰、可直接用于开发的需求材料。 注意:用户要求最后必须提出3-5个相关问题,且以“§§相关问题§§”开头,问题之间用数字编号。 由于用户要求使用中文回答,且需要包含三个部分:①流程梳理、②功能清单设计、③需求文框架,我们将按照以下结构组织: ① 流程梳理:用流程图和文字描述核心流程和子流程。 ② 功能清单:用表格形式列出各模块功能点。 ③ 需求文框架:按照标准PRD结构给出框架,包括术语定义、功能需求详述、非功能性需求等。 同时,在最后提出相关问题。 注意:用户要求“禁止换行分散”,所以相关问题部分要连续输出,不换行(但问题之间用数字分隔,数字后可以用空格或标点,然后紧跟问题内容,整个相关问题部分在一行内显示,但实际中问题较多时一行放不下,所以这里按照常规做法,每个问题单独一行,但用户示例中也是换行的,所以这里按照示例格式每个问题换行,但用户要求“禁止换行分散”可能是指不要将一个问题拆成多行?我们按每个问题一行,但整个相关问题部分连续输出,不插入空行)。 重新整合后的内容如下:</think>### 优化版需求材料(基于调研表整合) #### ① 流程梳理(关键路径) ```mermaid graph LR A[风险单元注册] --> B[绑定设备设施] B --> C{风险类型} C -->|重大危险源| D[全量屏障配置] C -->|非重大危险源| E[基础屏障配置] D & E --> F[威胁-屏障映射] F --> G[实时监控] G --> H[预警触发] H --> I[处置闭环] ``` **核心流程说明:** 1. **基础配置流** `风险单元注册` → 绑定责任人/区域 → 关联设备设施(PID/APC系统)→ 设置管控层级 2. **风险建模流** `危险源定义`(能量/物质)→ `顶上事件配置` → 添加`威胁`→ 配置`预防屏障` → 添加`后果`→ 配置`减缓屏障` 3. **预警处置流** 多系统数据聚合 → 屏障失效检测 → 生成预警 → 推送责任人 → 处置反馈 --- #### ② 功能清单(优先级标注) | 模块 | 功能点 | 优先级 | 关键字段 | 输出物 | |------|--------|--------|----------|--------| | **风险单元管理** | 1.1 单元注册 | ★★★ | 位置坐标/责任人/管控层级 | 单元ID | | | 1.2 单元列表 | ★★ | 区域筛选/状态过滤 | 可导出表格 | | **风险建模** | 2.1 危险源定义 | ★★★ | 能量类型/物质属性 | 风险矩阵 | | | 2.2 屏障配置 | ★★★ | 屏障类型/管控方式 | 屏障关系图 | | **预警引擎** | 3.1 实时监控 | ★★★ | 设备数据源/失效阈值 | 预警事件 | | | 3.2 处置闭环 | ★★ | 响应人/完成时限 | 处置报告 | | **可视化** | 4.1 风险热力图 | ★★ | GIS图层/风险等级 | 动态地图 | | | 4.2 屏障仪表盘 | ★★ | 完好率/响应时效 | 统计图表 | --- #### ③ 需求文框架(PRD) **1. 业务规则详述** ```markdown | 概念 | 配置规则 | |-------------|--------------------------------------------------------------------------| | 预防屏障 | 必须关联威胁→支持类型:主动硬件(安全阀)、人工巡查(每班≤2次) | | 减缓屏障 | 必须关联后果→支持类型:被动硬件(围堰)、人工干预(响应时间≤5分钟) | | 管控层级 | 公司级(全厂风险)> 部门级(区域)> 车间级(装置)> 班组级(设备) | ``` **2. 接口需求** - **数据接入**: ```python # 示例:AI视觉系统对接 def get_ai_alerts(): # 协议:HTTPS/JSON # 字段:摄像头ID, 异常类型(火焰/泄漏), 置信度 return {"device": "CAM-203", "alert_type": "gas_leak", "confidence": 0.92} ``` **3. 原型逻辑** ```mermaid graph TB 威胁[液位超限] --> 预防屏障[HH联锁切断] 顶上事件[罐体破裂] --> 后果[丙烯泄漏] 后果 --> 减缓屏障[防火堤+应急小组] ``` **4. 非功能需求** | 指标 | 要求 | |--------------|--------------------------| | 预警延迟 | ≤3秒(从数据采集到推送) | | 数据精度 | 设备坐标误差<1米 | | 并发能力 | 支持200+装置实时监控 | --- ### 交付物说明 1. **流程文**:包含注册→建模→预警全链路说明 2. **功能矩阵**:标注各功能优先级与输出物 3. **PRD框架**:可直接扩展为开发文 > **实施建议**: > 1. 优先建设屏障配置引擎(支撑预防/减缓逻辑) > 2. 验证GIS坐标与实际装置位置偏差 > 3. 制定屏障失效判定标准(如安全阀超检期=自动预警)
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值