当前位置: 首页 > wzjs >正文

上海网站建设哪家企业wordpress主题module破解版

上海网站建设哪家企业,wordpress主题module破解版,上海品牌网站建设公司,郑州seo优化顾问Flowable工作流的原理可以概括为以下几个步骤: 1. 流程定义:使用BPMN 2.0规范进行流程定义,将业务过程可视化地描述出来。Flowable提供了可视化的流程设计工具,方便用户进行流程定义。 **生成符合BPMN 2.0规范的流程文件的方式有…

Flowable工作流的原理可以概括为以下几个步骤:

1. 流程定义:使用BPMN 2.0规范进行流程定义,将业务过程可视化地描述出来。Flowable提供了可视化的流程设计工具,方便用户进行流程定义。

**生成符合BPMN 2.0规范的流程文件的方式有很多,此处列举两种方式:

1.使用Flowable自带的Flowable-UI来生成BPMN文件:

首先下载官方demo代码:https://github.com/flowable/flowable-engine/releases
解压后找到flowable-rest.war和flowable-ui.war两个war包,放到tomcat里面运行起来。
成功运行后,访问本地地址 http://localhost:8080/flowable-ui
在网页中找到“新建流程”,定义好相关名称,就可以开始创建流程了:
在这里插入图片描述
在这里插入图片描述
详细绘制步骤可参考:https://blog.csdn.net/java_mindmap/article/details/135027471
绘制完成后,保存,然后下载,即可获得:

在这里插入图片描述

这样一个bpmn20标准的流程图文件。

2.使用IDEA插件“Flowable BPMN visualizer”来生成BPMN文件:

IDEA插件市场中搜索Flowable BPMN visualizer安装该插件。
在这里插入图片描述

安装完成后,在文档目录下右键新建,即可创建bpmn20标准的流程图文件:
在这里插入图片描述

创建好文件后,右键点击即可对流程进行编辑
在这里插入图片描述

具体操作可参考:https://blog.csdn.net/Demo_00/article/details/135413840

2. 流程部署:将流程定义文件部署到Flowable引擎中,引擎解析流程定义并生成执行实例。

新建一个springBoot项目或者在原有的springBoot项目中引入Flowable框架:

<!-- flowable -->
<dependency><groupId>org.flowable</groupId><artifactId>flowable-spring-boot-starter</artifactId><version>6.7.1</version>
</dependency>

在数据库连接中添加配置:
&nullCatalogMeansCurrent=true
然后将上一步下载的流程图文件放到项目中:
在这里插入图片描述

然后使用代码将流程注册到流程引擎中,即可使用:

@Test
public void deploy(){ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();RepositoryService repositoryService = processEngine.getRepositoryService();Deployment deploy = repositoryService.createDeployment().addClasspathResource("processes/leave.bpmn20.xml").name("请假流程...").category("请假") // 分类.tenantId("dpb") // 租户id.deploy();System.out.println("deploy.getId() = " + deploy.getId());System.out.println("deploy.getName() = " + deploy.getName());System.out.println("deploy.getCategory() = " + deploy.getCategory());
}

3. 任务分配:根据流程实例的执行情况,将任务分配给相应的参与者。Flowable支持多种任务分配方式,如手动分配、自动分配等。

发起一个流程:

Map<String, Object> map = new HashMap<>();
map.put("day", 5);
map.put("user1", "小明");
ProcessInstance studentLeave = runtimeService.startProcessInstanceByKey("leave", map);
Task task = taskService.createTaskQuery().processInstanceId(studentLeave.getId()).singleResult();
taskService.complete(task.getId());

处理第一阶段流程:

// 领导审批
List<Task> teacherTaskList = taskService.createTaskQuery().taskCandidateGroup("a").list();
Map<String, Object> teacherMap = new HashMap<>();
teacherMap.put("outcome", "通过");
for (Task teacherTask : teacherTaskList) {taskService.complete(teacherTask.getId(), teacherMap);
}

处理第二阶段流程:

List<Task> principalTaskList = taskService.createTaskQuery().taskCandidateGroup("b").list();
Map<String, Object> principalMap = new HashMap<>();
principalMap.put("bosspass", "通过");
for (Task principalTask : principalTaskList) {taskService.complete(principalTask.getId(), principalMap);
}

查询整个流程的流转过程:

List<HistoricActivityInstance> activities = historyService.createHistoricActivityInstanceQuery().processInstanceId(studentLeave.getId()).finished().orderByHistoricActivityInstanceEndTime().asc().list();
for (HistoricActivityInstance activity : activities) {System.out.println(activity.getActivityName());
}

运行结束:

在这里插入图片描述

实际案例

以告警图片识别并下发巡查任务流程为例:
首先设计并导出流程文件:
在这里插入图片描述

将流程注册到系统中:

	@Testpublic void deployImg(){ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();RepositoryService repositoryService = processEngine.getRepositoryService();Deployment deploy = repositoryService.createDeployment().addClasspathResource("processes/img.bpmn20.xml").name("告警图片审核巡查流程...").category("告警") // 分类.tenantId("dpb") // 租户id.deploy();System.out.println("deploy.getId() = " + deploy.getId());System.out.println("deploy.getName() = " + deploy.getName());System.out.println("deploy.getCategory() = " + deploy.getCategory());}

模拟巡查任务流转过程:

@Testvoid TestImg() {// 发起请假Map<String, Object> map = new HashMap<>();map.put("img", "https://obs-dzwlproject.obs.cn-south-1.myhuaweicloud.com/group/GX0153/20210526104731.png");map.put("robot", "xxlJob");map.put("robotFlow", "通过");ProcessInstance studentLeave = runtimeService.startProcessInstanceByKey("task", map);Task task = taskService.createTaskQuery().processInstanceId(studentLeave.getId()).singleResult();taskService.complete(task.getId());// 运营中心审核List<Task> teacherTaskList = taskService.createTaskQuery().taskCandidateGroup("server").list();Map<String, Object> teacherMap = new HashMap<>();teacherMap.put("serverFlow", "通过");for (Task teacherTask : teacherTaskList) {taskService.complete(teacherTask.getId(), teacherMap);}// 市级管理分配任务--指派给张三List<Task> principalTaskList = taskService.createTaskQuery().taskCandidateGroup("manager").list();Map<String, Object> principalMap = new HashMap<>();principalMap.put("managerPassFlow", "通过");principalMap.put("user", "张三");for (Task principalTask : principalTaskList) {taskService.complete(principalTask.getId(), principalMap);}// 开始巡查任务---张三发现不是自己区域的任务List<Task> userTaskList = taskService.createTaskQuery().taskCandidateUser("张三").list();Map<String, Object> userMap = new HashMap<>();userMap.put("userBackFlow", "转办");for (Task userTask : userTaskList) {taskService.complete(userTask.getId(), userMap);}// 市级管理分配任务--重新指派给李四List<Task> principalTaskList1 = taskService.createTaskQuery().taskCandidateGroup("manager").list();Map<String, Object> principalMap1 = new HashMap<>();principalMap1.put("managerPassFlow", "通过");principalMap1.put("user", "李四");for (Task principalTask : principalTaskList1) {taskService.complete(principalTask.getId(), principalMap1);}// 开始巡查任务---李四巡查任务List<Task> userTaskList1 = taskService.createTaskQuery().taskCandidateUser("李四").list();Map<String, Object> userMap1 = new HashMap<>();userMap1.put("userBackFlow", "巡查");for (Task userTask : userTaskList1) {//获取违规图片地址String img = (String) taskService.getVariable(userTask.getId(), "img");System.out.println("巡查员获取违规图片地址:"+img);taskService.complete(userTask.getId(), userMap1);}// 查看历史List<HistoricActivityInstance> activities = historyService.createHistoricActivityInstanceQuery().processInstanceId(studentLeave.getId()).finished().orderByHistoricActivityInstanceEndTime().asc().list();for (HistoricActivityInstance activity : activities) {System.out.println(activity.getActivityName());}}

执行完成,打印当前流程执行记录:
在这里插入图片描述

http://www.dtcms.com/wzjs/569396.html

相关文章:

  • 电子商城网站建设 模板网络营销推广组合
  • 艺术设计类网站适合学生做的网站类型
  • 怎么打开自己做的网站手机怎么搭建网站
  • 赣州门户网站建设网站推广的技巧
  • 拆分网站开发福鼎市城市建设监察大队网站
  • 深圳网站制作教程招商网站
  • 体育 网站建设询价函格式wordpress快站怎么样
  • 建设一个网站需要那些技术四川省建设厅建造师官方网站
  • 宁波市有哪些网站建设公司图片本地化wordpress
  • wordpress如何设置导航栏大连优化网站
  • 想建个企业网站北京展示型网站建设价格
  • 手机网站菜单网页怎么做价值30万的网站建设
  • 网站建设的主要技术指什么企业网站优化问题
  • 东莞企业建站程序个人网站建设方案模板
  • 网页做二维码哪个网站好网络优化的内容包括哪些
  • 高端个性化网站建设山东建大建设有限公司网站
  • 跨境电商导购网站建设亚洲免费高清砖码区免下载
  • 河北衡水建设网站公司电话photoshop手机版安卓
  • 杭州建设网 工程信息网站瓷砖网站建设
  • 聊城高唐网站建设公司网站建设有哪些平台
  • 英文广告网站模板免费下载网站建设源码是什么
  • 绵阳网站建设维护网站欣赏 公司网站案例
  • 北京市建设资格执业中心网站全球最好的黄页网站
  • 门户网站建站app软件开发定义
  • 学做视频的网站建设网站怎样做
  • 房山做网站公司网站备案期间可以做推广吗
  • 一个只做百合的网站临沂手机网站
  • 网站设计专业有哪些课程网站建设一般多少钱官网
  • wordpress 编辑器添加自定义按钮网站建设优化哪家专业
  • 用vue做的网站网站图片怎么做白色背景