最近又开始忙活工作流的相关工作了,第一次接触工作流也就是我在埃森哲的第一个项目,也是最后一个项目。那时候用的是日本的一整套解决方案好像叫-iMart。而进入金山工作后第二个项目也是和工作流密切相关的项目,那时候才接触到了这个开源工作流引擎-Activiti。那时候也是第一次真正了解这些东西。只是从金山离职后回到现在的公司,没想到还要用这些东西,好像又回到了去年的这个时间。
这一次需要重新集成这个引擎,以插件包的方式。其实工作量不大,因为Activiti已经自己封装的很好了,完全可以在日常开发中直接引用它的Service。闲话少说,这次解决工作流流程图问题。简而言之,在任何一条已启动的流程实例查看流程状态,用流程图片的形式展示一下。
提供的Service方法如下:
1 2 3 4 5 6 7 8 9 10 11 12 |
/** * 获取当前任务流程图 * * @param processInstanceId * @return */ @Override public InputStream generateDiagram(String processInstanceId) { //方法中用到的参数是流程实例ID,其实TaskId也可以转为这个。调用taskService查询即可。 Command<InputStream> cmd = new ProcessInstanceDiagramCmd(processInstanceId, runtimeService, repositoryService, processEngine, historyService); return managementService.executeCommand(cmd); } |