springboot整合activity6_ HelloWorld实现(无废话版)--------------------------------------------(二)

分手后的思念是犯贱 2023-02-09 05:24 7阅读 0赞

1.源码地址:https://github.com/heidaodageshiwo/springbootactivity

1.我这里没有用单元测试(@Test)junit 我用的是controller请求的方式来访问

2.流程图我是使用的eclipse画的(感觉idea画的有点丑,就没用)

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 1

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 2

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 3

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 4

流程图就画完事了。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 5

  1. // * 部署流程定义
  2. @RequestMapping("/deployWithClassPath")
  3. public String deployWithClassPath() {
  4. Deployment deployment= repositoryService.createDeployment()
  5. .addClasspathResource("helloworld/Helloworld.bpmn")
  6. .addClasspathResource("helloworld/Helloworld.png")
  7. .name("HelloWorld流程")
  8. .deploy();
  9. System.out.println("流程部署ID:"+deployment.getId());
  10. System.out.println("流程部署Name:"+deployment.getName());
  11. return "deployWithClassPath";
  12. }

界面请求

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 6

控制台打印

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 7

运行deployWithClassPath方法,部署流程定义,这时候我们的流程定义表会发生一些变化;

首先act_re_deployment 流程定义部署表,插入了一条数据;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 8

然后act_re_prodef 流程定义表也会有插入一条数据;这里有流程定义id name key version等重要信息;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 9

还有一个act_ge_bytearray表 用来存资源信息;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 10

以上是部署流程定义 数据库表里发生的事情;

我们要启动流程实例,这样一个流程才开始;

然后我们继续 ,下面来启动流程实例;

运行start方法;

  1. // * 启动流程实例
  2. @RequestMapping("/start")
  3. public String start() {
  4. ProcessInstance processInstance= runtimeService.startProcessInstanceByKey("myFirstProcess");
  5. System.out.println("流程实例ID:"+processInstance.getId());
  6. System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());
  7. return "start";
  8. }

启动流程,数据库流程运行表也会发生相应的变化;

首先是运行时流程任务表:act_ru_task;插入了一条任务数据;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 11

2020051814355764.png

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 12

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 13

ID_是任务id 数据2505 ; PROC_INST_ID_是流程实例ID 2501 以及Name 创建时间等;

接下来是act_ru_execution 运行时流程执行表;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 14

这里的话 存的流程执行相关信息;

接下来是act_ru_identitylink 是于执行主体相关信息表;这里是用具体的用户去执行的

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 15

流程实例启动完,接下来就到了helloWorld任务节点;

我们这时候可以来查看下 “张强” 的任务;

  1. // * 查看任务
  2. @RequestMapping("/findTask")
  3. public String findTask() {
  4. List <Task> taskList= taskService.createTaskQuery().taskAssignee("张强").list();
  5. for(Task task:taskList){
  6. System.out.println("任务id:"+task.getId());
  7. System.out.println("任务名称:"+task.getName());
  8. System.out.println("任务创建时间:"+task.getCreateTime());
  9. System.out.println("任务委派人:"+task.getAssignee());
  10. System.out.println("流程定义ID:"+task.getProcessDefinitionId());
  11. System.out.println("流程实例ID:"+task.getProcessInstanceId());
  12. }
  13. return "findTask";
  14. }

运行findTask方法,控制台输出;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 16

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 17

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 18

说明这个用户有任务可以执行;

我们继续走流程 执行completeTask方法;

执行完后,流程其实就已经走完了。

这时候我们再运行findTask,啥都没有输入,已经没有任务了;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bmhlaWRhb2Rl_size_16_color_FFFFFF_t_70 19

act_hi_taskinst 历史流程实例任务表加了一条任务数据;

act_hi_procinst 历史流程实例实例表加了一条流程实例相关信息的数据(包括开始时间,结束时间等等信息);

act_hi_identitylink 历史流程实例参数者的表加了一条数据;

act_hi_actinst 历史活动节点表加了三条流程活动节点信息的数据(每个流程实例具体的执行活动节点的信息);

发表评论

表情:
评论列表 (有 0 条评论,7人围观)

还没有评论,来说两句吧...

相关阅读