云筑文档(建模端)
简介
概述
工程树目录说明
项目管理
升级管理
环境升级
运维部署
平台版本升级
系统管理
查询用户
职级管理
岗位管理
编制管理
机构管理
菜单管理
权限反查
权限分配
权限修改
任务管理
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 发布
-
+
首页
自动流转实现
## 自动流转实现 流程自动流转是基于作业调度实现的,因此流程自动流转需要配置以下步骤: <span style="font-size:30px">(**注意:一个项目只要配置一个就可以了,是项目级别的设置。并非项目配置了几个流程,就配置几个作业调度,别理解错了)**</span> ### 1.作业自动流转逻辑(按需在项目任意位置新建一个groovy文件),如图:  ------------ **然后在新建的groovy内添加如下逻辑,注意:拷贝《方法》 和 《导入包》 即可,类名之类的每个groovy不同,因此不要一股脑全部拷贝** ------------ ```groovy import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.zhc.eap.model.entity.groovy.Entity; import com.zhc.eap.service.IJavaService; import com.zhc.eap.util.MD5Util; 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.funclib.*; import com.system.util.SystemLogsHelper; import com.zhc.eap.util.ExceptionUtil; import org.slf4j.Logger import org.slf4j.LoggerFactory import com.zhc.eap.model.entity.IWebEntity; import com.zhc.eap.util.ProjectNameUtil; import com.zhc.eap.util.StringUtil; import com.zhc.eap.dao.StaskDao; import com.zhc.eap.context.SpringContextUtils; import org.apache.commons.collections.CollectionUtils; import com.zhc.eap.helper.CommonHelper; import com.zhc.eap.funclib.OrgFunc; import com.zhc.eap.service.sys.SysUserService; import com.zhc.eap.model.SysUserEntity; import com.zhc.eap.service.LoginService; import com.zhc.eap.util.HttpVariableHolder; import com.zhc.eap.util.HttpUtils; import com.zhc.eap.util.UrlUtil; import org.apache.http.HttpResponse; class ZiDongLiuZhuan { private Logger logger = LoggerFactory.getLogger("ZiDongLiuZhuan.groovy") //logger.info("日志信息"); 输日志 //com.zhc.eap.util.ExceptionUtil.throwMessage(entityCo.get("controlDesc")); 抛异常 //event-placeholder //流程接口地址,固定,请不要修改此处 String path = "/flow/processFlow"; //自动流转处理任务入口逻辑,请复制方法,不要复制整个类,避免包路径错误,复制相应的方法即可 public void autoHandle() { //域名地址,默认自动获取,部分情况内外网原因导致自动获取域名内网无法访问,可以手动指定地址,若自定义:记得测试环境与正式环境的修改 String host = "";//注意:host为:域名[:端口] 或 IP[:端口],注意不要以/结尾,例如:www.baidu.com 或 http://127.0.0.1:1205 //1.获取环境信息(pn) String pn = ProjectNameUtil.getFullPn(); //2.获取域名地址 if(StringUtil.isEmpty(host)) host = UrlUtil.getRequestAddress(); //拼接请求地址:域名 + 接口地址 String postUrl = new StringBuffer().append(host).append(path).append("?pn=").append(pn).toString(); //3.获取超时任务数据 StaskDao staskDao = SpringContextUtils.getBean("staskDao"); List<Map<String, String>> tasks = staskDao.getTimeOutTask(); if (CollectionUtils.isEmpty(tasks)) return; //定义错误数据包 JSONArray errorData = new JSONArray(); //4.循环遍历流转 for (Map<String, String> item : tasks) { JSONObject result = loginAndFlow(item, postUrl); if (result!=null) errorData.add(result); } //5.如果存在错误信息,则抛出异常,这一步非必须,若不需要可以注释 if (errorData.size() > 0) com.zhc.eap.util.ExceptionUtil.throwMessage(errorData.toJSONString()); } //任务流转逻辑 private JSONObject loginAndFlow(Map<String, String> item, String url) { try { //1.数据校验,过滤加签任务 if(CommonHelper.isSignTask(item.get("fstate"),item.get("ftaskflag"))) return; //1.1过滤时间为空的数据 if(StringUtil.isEmpty(item.get("fovertime"))) return; //2.获取用户工号 String fuserid = OrgFunc.userId(item.get("fbzid")); //3.获取用户对象 SysUserService userService = SpringContextUtils.getBean("sysUserService"); SysUserEntity sysUser = userService.getUser(fuserid); //4.获取token HttpServletRequest request = HttpVariableHolder.internalHttpServletRequest(); HttpServletResponse response = HttpVariableHolder.internalHttpServletResponse(); LoginService loginService = SpringContextUtils.getBean("loginService"); String token = loginService.tokenLogin(sysUser,request,response); //5.设置流转参数 JSONObject body = new JSONObject(); JSONObject bodyItem = new JSONObject(); //以下2个为固定参数,不要随意修改 bodyItem.put("method","flowOut"); bodyItem.put("ftaskstage","sysAuto"); //获取任务id bodyItem.put("ftaskguid",item.get("fguid")); body.put("__body",bodyItem.toJSONString()); //6.设置请求头参数 Map<String, String> headers = new HashMap<String, String>(); headers.put("Authorization","Bearer "+token); //6.调用流转接口 HttpResponse httpResponse = HttpUtils.doPost(url, null, headers, null, body.toJSONString()); //7.返回结果封装 //如果不需要错误消息,这里返回null即可 //return null; //如果需要返回结果,则可以在 getResult 方法里面做详细处理 return getResult(httpResponse,item); } catch (Exception e) { logger.error("任务自动流转失败:"+e.getMessage()); return getErrorMsg(ExceptionUtil.getRootCause(e).getMessage(),item); //如果不需要错误消息,这里返回null即可 //return null; } return null; } //封装返回错误信息 private JSONObject getResult(HttpResponse httpResponse,Map<String, String> item) { JSONObject re = HttpUtils.getJson(httpResponse); //如果条件状态为 200 ,说明流转成功 if(re.getIntValue("status") == 200) return null; //非200,说明流转异常,可以做一些记录操作或是发送异常通知。例如:可以在这里,插表,发送短信通知,消息队列等等 return getErrorMsg(re.getString("msg"),item); } //封装返回错误信息 private JSONObject getErrorMsg(String errorMsg,Map<String, String> item) { JSONObject result = new JSONObject(); result.put("单号",item.get("fordernumber")); result.put("流程名称",item.get("fpdisplayname")); result.put("环节名称",item.get("fdisplayname")); result.put("任务处理人",item.get("fusername")); result.put("异常信息",errorMsg); return result; } } ``` ### 2.创建一个作业调度(按需在项目任意位置新建一个调度文件),如图:  #### 2.1双击产生的作业调度文件进行配置,然后保存。如图:  ### 3.导入作业,在hirun运行端进行作业导入,如图:   
admin
2024年5月7日 16:45
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 MrDoc
鲲鹭文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果鲲鹭文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护鲲鹭文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码