欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

程序员文章站 2024-03-22 11:45:58
...

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

1、部署流程资源

2、查询流程定义信息

3、发布请假流程

4、查询用户任务

5、提出请假

6、老板查看请假任务

7、老板批准请假

8、查看整个请假流程

 

1、部署流程资源

部署流程资源有很多中方式,一次加载一个流程资源:

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

  1. /**
  2. * ClassName: ActivitiTest
  3. * @Description: TODO
  4. * @author chisj aaa@qq.com
  5. * @date 2018年4月8日
  6. */
  7. public class ActivitiTest {
  8. ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
  9. /**
  10. * 发布流程
  11. */
  12. @Test
  13. public void deloy() {
  14. RepositoryService repositoryService = processEngine.getRepositoryService();
  15. Deployment deployment = repositoryService.createDeployment()
  16. .addClasspathResource("activiti/leave.bpmn")
  17. .addClasspathResource("activiti/leave.png")
  18. .deploy();
  19. System.out.println("部署Id:" + deployment.getId());
  20. System.out.println("部署时间:" + deployment.getDeploymentTime());
  21. }
  22. }

运行结果:

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

数据库变化:

act_ge_bytearray:通用的流程定义和流程资源

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

act_re_deployment:部署单元信息

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

act_re_procdef:已部署的流程定义

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

参考资料【Activiti进阶(二)——部署流程资源的三种方式】----https://blog.csdn.net/zjx86320/article/details/50234707

 

2、查询流程定义信息

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)
  1.         /**
  2. * 查询流程定义信息
  3. */
  4. @Test
  5. public void queryProcdef(){
  6. RepositoryService repositoryService = processEngine.getRepositoryService();
  7. //创建查询对象
  8. ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery();
  9. //添加查询条件
  10. query.processDefinitionKey("leave");//通过key获取
  11. // .processDefinitionName("My process")//通过name获取
  12. // .orderByProcessDefinitionId()//根据ID排序
  13. //执行查询获取流程定义明细
  14. List<ProcessDefinition> pds = query.list();
  15. for (ProcessDefinition pd : pds) {
  16. System.out.println("ID:"+pd.getId()
  17. +",NAME:"+pd.getName()
  18. +",KEY:"+pd.getKey()
  19. +",VERSION:"+pd.getVersion()
  20. +",RESOURCE_NAME:"+pd.getResourceName()
  21. +",DGRM_RESOURCE_NAME:"+pd.getDiagramResourceName());
  22. }
  23. }

运行结果:

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

这里的KeyName是画流程图时在流程属性里面定义的:

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

 

3、发布请假流程

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)
  1.         /**
  2. * 启动流程
  3. */
  4. @Test
  5. public void startFlow() {
  6. RuntimeService runtimeService = processEngine.getRuntimeService();
  7. /**
  8. * 启动请假单流程 并获取流程实例
  9. * 因为该请假单流程可以会启动多个所以每启动一个请假单流程都会在数据库中插入一条新版本的流程数据
  10. * 通过key启动的流程就是当前key下最新版本的流程
  11. *
  12. */
  13. ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("leave");
  14. System.out.println("id:"+processInstance.getId()
  15. +",activitiId:"+processInstance.getActivityId());
  16. }

运行结果:

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

数据库变化:

act_ru_task:运行时变量表

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

act_ru_execution:运行时流程执行实例

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

act_hi_identitylink:运行时用户关系实例

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

 

4、查询用户任务

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)
  1.         /**
  2. * 查看任务
  3. */
  4. @Test
  5. public void quertTask() {
  6. //获取任务服务对象
  7. TaskService taskService = processEngine.getTaskService();
  8. //根据接受人获取该用户的任务
  9. List<Task> tasks = taskService.createTaskQuery()
  10. .taskAssignee("emp")
  11. .list();
  12. for (Task task : tasks) {
  13. System.out.println("ID:"+task.getId()
  14. +",姓名:"+task.getName()
  15. +",接收人:"+task.getAssignee()
  16. +",开始时间:"+task.getCreateTime());
  17. }
  18. }

运行结果:

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

 

5、提出请假

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)
  1.         /**
  2. * 提出请假,启动流程
  3. */
  4. @Test
  5. public void startTask() {
  6. TaskService taskService = processEngine.getTaskService();
  7. //taskId 就是查询任务中的 ID
  8. String taskId = "2504";
  9. //完成请假申请任务
  10. taskService.complete(taskId );
  11. }

6、老板查看请假任务

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

查询结果:

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

 

7、老板批准请假

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

 

8、查看整个请假流程

在act_hi_actinst中查看:

【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

 

相关标签: ActivitI请假流程