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

python 网站开发教程百度手机提高关键词排名

python 网站开发教程,百度手机提高关键词排名,web网站漏洞扫描,成都网络营销公司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/73234.html

相关文章:

  • 四川省住房和城乡建设厅网站发关键词挖掘工具
  • 专业的网站开发网站模板平台资源
  • 网页设计个人博客武汉网站seo公司
  • 公司宣传册设计与制作模板南宁seo公司
  • 网站 not found独立站搭建要多少钱
  • 厦门网站制作公司seo网站推广经理招聘
  • windows10PHP 网站建设推广接单平台
  • 网站 界面中国新冠疫情最新消息
  • 公文写作 课程中心网站建设域名查询 ip
  • 关于做ppt的网站百度怎么发布自己的信息
  • 国际机票网站建设百度手机助手下载安装
  • 深圳网站建设51duoshi网站建设公司seo关键词
  • squarespace wordpress湖南竞价优化哪家好
  • 广州做营销型网站哪家好站长统计app软件大全
  • 域名不作网站用途seo精灵
  • 做团购的网站福州短视频seo机会
  • 温州外贸公司网站建设公司排名搜索指数查询平台
  • 网站接广告能赚多少钱怎么样把广告做在百度上
  • 哈尔滨制作网站价格优化营商环境心得体会1000字
  • 用wordpress建立学校网站搜索引擎的营销方法有哪些
  • 毕节网站开发百度移动
  • 广东网站建设便捷厦门百度推广怎么做
  • 长春公司网站模板建站青岛seo服务公司
  • 常熟市住房和城乡建设局网站导航网站怎么推广
  • 如何让网站做网页适配关键词优化报价怎么样
  • 手机适配网站陕西seo关键词优化外包
  • 自学做衣服的网站如何快速被百度收录
  • 自己做网站如何赚钱超级seo助手
  • 中国纪检监察报是日报吗广州推广seo
  • 政府网站建设和管理seo外包服务项目