云筑文档(建模端)
简介
概述
工程树目录说明
项目管理
升级管理
环境升级
运维部署
平台版本升级
系统管理
查询用户
职级管理
岗位管理
编制管理
机构管理
菜单管理
权限反查
权限分配
权限修改
任务管理
APP升级
多语言导入导出
入门教程
APP入门教程
本地开发
安装与初始化项目
系统设置
建模端设置
切断后端服务
项目默认配置
数据库
创建数据源
创建表
桌面开发
数据集
数据集基本用法
ES数据集
模板
标准查询模板
视图(数据组件)
数据工具条
表单
横向查询
条件面板
网格
分页
下推数据
树控件
后端数据加载进度条
统计分析
导入
导出
视图(布局)
综合布局
浮动布局
模型
功能
独立型功能
逻辑流
流程
流程
自定义流程
作业调度
PC自定义错误页
APP开发
平台配置
引入第三方图标
即时通讯
音视频通话
组件(表单)
组件(数据)
手机页面数据集
九宫格
列表&列表头部
流程栏
搜索栏
下推数据
数据筛选
广告栏
跑马灯
打包
后台开发
用户
获取用户详情
用户解锁方案
支付
微信PC扫码支付
支付宝PC扫码支付
微信APP支付
微信退款
支付宝APP支付
微信小程序支付
支付宝退款
接口访问(第三方对接)
第三方访问EAP5
EAP5访问第三方
生成访问第三方令牌
接口访问(接口签名)
项目默认配置
客户端携带签名
单点登录
获取票据
远程登录
项目配置
获取用户信息
生成令牌访问EAP5
EAP5访问第三方系统
单点自查
系统管理
机构路径注册
用户管理
新增用户
修改用户
删除用户
批量新增用户
查询用户
岗位管理
新增岗位
修改岗位
删除岗位
查询岗位
职级管理
新增职级
修改职级
删除职级
查询职级
机构管理
新增机构
修改机构
删除机构
查询机构
工具类
HTTP请求工具类
自定义事件(登录)
项目配置
登录Groovy模板
自定义事件(注册)
项 目配置
注册Groovy模板
自定义事件(用户导入)
项目配置
Groovy模板
自定义事件(用户增删改)
项目配置
Groovy模板
自定义事件(机构管理)
项目配置
Groovy模板
自定义事件(岗位管理)
项目配置
Groovy模板
MQTT
MQTT 须知
MQTT项目配置
MQTT -Groovy模板
日志中心
新增数据
流程
属性说明
短信通知
消息队列通知
自动流转实现
报表配置
打印配置
本文档使用 MrDoc 发布
-
+
首页
消息队列通知
## 消息队列通知 ### 消息队列发送有2种情况: 1.系统默认发送MQTT消息队列 2.用户自定义 ------------ 系统默认: 首先需要初始化MQTT配置信息,参考: MQTT项目配置 Groovy模板 若后续改动Groovy模板内容需要实时生效,请参考: 须知 配置流程通知规则,全局或是局部亦可,如图:  红框中的内容按需配置即可,其中需要特殊说明的有2项:《主题》 和 《内容》 ------------ 主题:若用户不配置主题,那么会使用系统默认产生的主题,默认格式: 项目名/账号/工号/task,例如:eap5csxm/admin/00001/task 若不为空,则根据用户配置产生。主题一般是双方约定产生,并非随意指定,该内容需配置人员自行与对接方约定 ------------ 内容:根据用户配置产生,若没有配置,那么内容为空 ### 注意: 主题和内容均为表达式,因此用户可以按需配置生成主题和内容,但其中部分属性是流程产生才具有的属性,该属性并不存在数据集中。且该属性只在通知规则才具备,属性如图:  具体每个属性说明参考: <a href="https://doc.eap.kunluiot.com/project-2/doc-216/">属性说明</a> 其中:subject 和 content 分别对应主题和内容,若要生成类似默认的系统主题,可以参考如下表达式 > return record.get('projectName')+'/'+record.get('group')+'/'+record.get('fuserid')+'/task' 基本语法为:record.get('字段名'),上图的属性说明中的字段,均可以这种方式获取 最终会往mqtt发送消息,主题是系统默认或用户自定义,发往mqtt的内容是一个json包如下,至于json包字段参考上面的《属性说明》: ```json { "subject": "eap5csxm/admin/249/task", "type": "", "content": "测试消息内容", "flowstate": "tsProcessing", "ftaskurgentlevel": "紧急", "fbzid": "BZ0000243", "fcreatorid": "admin", "mainParams": [ { "modelFilePath": "eap5csxm.pro/LiuChengCeShi.dir/PuTongLiuCheng.moduledir/dataset.datadir/LiuChengShuJuJi.bizstore|usWsXwen.BizEntity~_extFile", "keys": { "queryCdions": { "join": "and", "items": [ { "sign": "eq", "name": "FNUMBER", "value": "PTLC-231103-0004", "enabled": true } ] }, "FNUMBER": "PTLC-231103-0004" } } ], "fversion": "1.0.0", "fmodelpath": "eap5csxm/LiuChengCeShi/PuTongLiuCheng/flow/LiuChengCeShi.flow", "group": "admin", "hasBack": true, "fcreatorname": "管理员", "fpdisplayname": "流程测试2", "sendusername": "管理员", "fdisplayname": "环节3", "fcreatetime": "2023-12-01 14:44:50", "fordernumber": "PTLC-231103-0004", "fuserid": "249", "fcreatorbz": "admin", "isEnd": false, "ftaskguid": "4f3b8e7790a842618c23ad5cdb411d29", "fstate": "tsTask", "fbatch": true, "senduserid": "admin", "projectName": "eap5csxm", "oneKey": false } ``` ------------ **用户自定义:** 配置流程通知规则,全局或是局部亦可,如图:  重点看红色方块内的四项:主题/队列,内容表达式,groovy路径,groovy方法 > 如果选择了自定义,那么 主题/队列,内容表达式 这2项可以不配置 主题不配置会产生系统默认主题:项目名/账号/工号/task,例如:eap5csxm/admin/00001/task 内容表达式不配置,则为空 如果配置了,也会执行产生结果,最终也会将这2项的结果设置到上下文环境中,后续可以在groovy中获取 如果是自定义,那么 groovy路径,groovy方法 这2项一定要配置,否则不会发送通知 1.新建消息队列groovy业务逻辑,如图:  2.编写groovy逻辑 ```groovy import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject import com.zhc.eap.service.Impl.FlowDataHandle; import com.zhc.eap.utils.MqttUtil; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.List; import java.util.Map; import com.zhc.eap.util.ExceptionUtil; import org.slf4j.Logger import org.slf4j.LoggerFactory class ZiDingYimqtt { private Logger logger = LoggerFactory.getLogger("ZiDingYimqtt.groovy"); //logger.info("日志信息"); 输日志 //com.zhc.eap.util.ExceptionUtil.throwMessage(entityCo.get("controlDesc")); 抛异常 //event-placeholder public void sendMsg(Map<String, Object> map) { //获取数据包 JSONArray datas = map.get("data"); //自定义发送第三方消息队列或是第三方接口 for (JSONObject item : datas) { //每一项即代表发送一条通知,例如:任务流转至下环节为:张三,李四 //那么此处会循环2次,分别是张三的数据和李四的数据 //获取主题,如果通知规则有配置主题,那么此处返回用户配置的内容。 //若没有配置,依旧会给与默认主题,默认格式:项目名/账号/工号/task,例如:eap5csxm/admin/00001/task String subject = item.getString("subject"); //获取通知内容,如果有配置这里即存在值,若没有配置,这里获取值为null String content = item.getString("content"); //如果需要获取流程制单数据,根据制单数据生成主题或是内容等,可以执行如下2行代码获取数据 JSONArray array = (JSONArray) item.get("mainParams"); List<Map<String, Object>> list = FlowDataHandle.getInstance().query(array); //注意:由于自定义发送mqtt,用户可以不需要配置主题和内容,因此用户可以在groovy代码里面自行定义所需内容 //如果还要使用系统工具类发送mqtt消息,那么需要初始化MQTT配置,至于如何初始化,参考文档 系统默认 下的步骤 //注意:这里是将整个item内容发送,若不需要可以自行定义 //MqttUtil.publish(subject, item.toJSONString()); //通过以上步骤基本上已经可以获取到通知的所有数据,如果要调用第三方接口或自定义mqtt发送,请自行实现代码 } } } ``` ------------ **注意:此处拷贝《方法》和《导入包》即可,类名之类的每个groovy不同,因此不要一股脑全部拷贝** ------------ 具体注意细节在groovy代码里面都有注释了,认真查阅即可,其中map的参数可以参考下图:  其中,如果配置了 主题/队列,内容表达式 这2项的执行结果也可以在上下文中获取 分别对应字段:subject->主题/队列,content-内容表达式 具体每项属性说明参考: <a href="https://doc.eap.kunluiot.com/project-2/doc-216/">属性说明</a>
admin
2024年5月7日 16:41
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 MrDoc
鲲鹭文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果鲲鹭文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护鲲鹭文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码