news 2026/6/17 12:30:44

ruoyi-vue2集成DMN规则引擎实现Dish智能出餐决策

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ruoyi-vue2集成DMN规则引擎实现Dish智能出餐决策

前言

DMN决策引擎的核心价值在于将复杂的业务决策逻辑从程序代码中剥离出来,通过标准化的模型进行可视化管理和执行。它在实战中的应用非常广泛,特别是在需要频繁调整业务规则、追求流程自动化与智能化的场景中。

具体应用场景有:
金融与风控​: 信贷审批、金融风险评估、反洗钱检查、
供应链与生产​: 保险定价、供应链管理、生产调度
营销与客户服务​: 客户分群、精准营销
其他创新场景​: 教育分班、智能餐饮

今天我们以一个经典的案例智能餐饮来讲解实战中的用法。

决策规则

请点击这个Dish查询规则建模,以下我们拆解一下这个DMN规则表的含义。

这个Dish决策表规则是根据当前的气温(tempeature)和日期类型(dayType)决策上什么餐食。主要有三个决策表构成, 核心是Dish-Decision表。 Season Dicision和Guest Count 以输出结果传递给Dish Decision决策表。 Season Dicision规则描述: tempeature>30, 得到season: Summary tempeature<10, 得到season: Winter tempeature=[10..30] 得到season: Spring Guest Count规则描述: dayType="Weekday", 客人数量(guestCount): 4 dayType="Holiday", 客人数量(guestCount): 10 dayType="Weekend", 客人数量(guestCount): 15 Dish-Decision规则描述: season=winter, guestCount<=8, desiredDish='Spareribs' season=winter, guestCount>8, desiredDish='Pasta' season=Summer, guestCount>10, desiredDish='Light salad' season=Summer, guestCount<=10, desiredDish='Beans salad' season=Spring, guestCount<10, desiredDish='Stew' season=Spring, guestCount>=10, desiredDish='Steak'

流程建模

  • 需求描述
我们现在模拟一个流程, 用户输入当天的气温和日期类型(工作日,假期,周末), 系统决策提供什么类型的餐食。
  • 模型结构

  • 模型定义
<?xml version="1.0" encoding="UTF-8"?><bpmn:definitionsxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"xmlns:camunda="http://camunda.org/schema/1.0/bpmn"xmlns:di="http://www.omg.org/spec/DD/20100524/DI"id="Definitions_1"targetNamespace="http://bpmn.io/schema/bpmn"><bpmn:processid="Process_8887"name="出餐决策"isExecutable="true"><bpmn:startEventid="Event_1i7sxll"><bpmn:outgoing>Flow_1rzb9vm</bpmn:outgoing></bpmn:startEvent><bpmn:sequenceFlowid="Flow_1rzb9vm"sourceRef="Event_1i7sxll"targetRef="Activity_0fzwoab"/><bpmn:userTaskid="Activity_0fzwoab"name="就餐信息"camunda:assignee="${startUser}"><bpmn:extensionElements><camunda:formData><camunda:formFieldid="temperature"label="气温"type="long"/><camunda:formFieldid="dayType"label="日期"type="string"/></camunda:formData></bpmn:extensionElements><bpmn:incoming>Flow_1rzb9vm</bpmn:incoming><bpmn:outgoing>Flow_0v0zyja</bpmn:outgoing></bpmn:userTask><bpmn:sequenceFlowid="Flow_0v0zyja"sourceRef="Activity_0fzwoab"targetRef="Activity_08c0387"/><bpmn:businessRuleTaskid="Activity_08c0387"name="决策规则"camunda:resultVariable="desiredDish"camunda:decisionRef="dish-decision"camunda:mapDecisionResult="singleEntry"><bpmn:incoming>Flow_0v0zyja</bpmn:incoming><bpmn:outgoing>Flow_1ajvk92</bpmn:outgoing></bpmn:businessRuleTask><bpmn:sequenceFlowid="Flow_1ajvk92"sourceRef="Activity_08c0387"targetRef="Activity_0jobe9d"/><bpmn:serviceTaskid="Activity_0jobe9d"name="出餐程序"camunda:delegateExpression="${dishTask}"><bpmn:incoming>Flow_1ajvk92</bpmn:incoming><bpmn:outgoing>Flow_0r2ykge</bpmn:outgoing></bpmn:serviceTask><bpmn:endEventid="Event_0x2ftot"><bpmn:incoming>Flow_0r2ykge</bpmn:incoming></bpmn:endEvent><bpmn:sequenceFlowid="Flow_0r2ykge"sourceRef="Activity_0jobe9d"targetRef="Event_0x2ftot"/></bpmn:process></bpmn:definitions>
  • 运行结果

运行结果解释: 用户输入的气温15度,根据Season Dicision可以得到是=Spring 用户输入的日期类型weekday, 根据Guest Count可以得到客人数量=4 根据season=spring, guestCount=4,根据Dish Decision可以得到=stew 完全符合预期!

访问若依工作流点击顶部,演示系统立即体验!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 21:39:27

快速原型开发:用VSCode和Anaconda验证你的想法

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 构建一个快速原型项目&#xff0c;使用VSCode和Anaconda。项目应展示如何快速实现一个想法&#xff0c;如一个简单的Web爬虫或数据分析脚本。AI应帮助生成基础代码框架&#xff0c;…

作者头像 李华
网站建设 2026/6/17 1:08:11

Qwen3-VL-8B Docker一键部署指南

Qwen3-VL-8B Docker一键部署指南 你有没有过这种经历&#xff1a;满心期待地下载了一个多模态大模型&#xff0c;结果刚打开终端就陷入“环境地狱”&#xff1f;Python版本不匹配、CUDA驱动报错、PyTorch编译失败……折腾一整天&#xff0c;最后只能默默关掉命令行&#xff0c…

作者头像 李华
网站建设 2026/6/16 1:10:43

数据库自然语言查询助手简易制作

先看效果&#xff1a;1、html代码&#xff08;python&#xff09;<!-- templates/index.html --> <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"utf-8"><title>&#x1f4ca; 数据库智能问答系统</tit…

作者头像 李华
网站建设 2026/6/13 17:38:44

19、雾网络中基于强化学习的资源分配

雾网络中基于强化学习的资源分配 1. 引言 在物联网 - 雾 - 云系统中,资源分配和任务调度是实现系统高效运行的关键问题。强化学习(RL)作为一种强大的技术,为解决这些问题提供了新的思路和方法。本文将介绍基于强化学习的雾计算资源分配算法,包括资源共享、任务调度和任务…

作者头像 李华
网站建设 2026/6/14 22:11:08

PaddlePaddle镜像在GPU算力平台上的最佳实践:cuda驱动与安装包匹配

PaddlePaddle镜像在GPU算力平台上的最佳实践&#xff1a;CUDA驱动与安装包匹配 在AI模型训练日益依赖高性能GPU的今天&#xff0c;一个看似简单的环境配置问题——“为什么我的PaddlePaddle不识别GPU&#xff1f;”——常常让开发者耗费数小时排查。尤其是在部署OCR、目标检测或…

作者头像 李华
网站建设 2026/6/15 13:50:27

10分钟验证:用微PE快速测试Win10新功能

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个基于微PE的Win10快速测试工具&#xff0c;功能包括&#xff1a;1.轻量级Win10环境快速启动 2.系统功能模块化加载 3.测试数据隔离保护 4.快速环境重置 5.测试结果自动记录。…

作者头像 李华