package org.xdemo.example.activiti.controller;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.impl.cmd.GetDeploymentProcessDiagramCmd;
import org.activiti.engine.impl.interceptor.Command;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/process")
public class ActivitiController {
@Resource
ProcessEngine engine;
/**
* 列出所有流程模板
*/
@RequestMapping(method = RequestMethod.GET)
public ModelAndView list(ModelAndView mav) {
mav.addObject("list", Util.list());
mav.setViewName("process/template");
return mav;
}
/**
* 部署流程
*/
@RequestMapping("deploy")
public ModelAndView deploy(String processName, ModelAndView mav) {
RepositoryService service = engine.getRepositoryService();
if (null != processName)
service.createDeployment()
.addClasspathResource("diagrams/" + processName).deploy();
List<ProcessDefinition> list = service.createProcessDefinitionQuery()
.list();
mav.addObject("list", list);
mav.setViewName("process/deployed");
return mav;
}
/**
* 已部署流程列表
*/
@RequestMapping("deployed")
public ModelAndView deployed(ModelAndView mav) {
RepositoryService service = engine.getRepositoryService();
List<ProcessDefinition> list = service.createProcessDefinitionQuery()
.list();
mav.addObject("list", list);
mav.setViewName("process/deployed");
return mav;
}
/**
* 启动一个流程实例
*/
@SuppressWarnings("unchecked")
@RequestMapping("start")
public ModelAndView start(String id, ModelAndView mav) {
RuntimeService service = engine.getRuntimeService();
service.startProcessInstanceById(id);
List<ProcessInstance> list = service.createProcessInstanceQuery()
.list();
mav.addObject("list", list);
mav.setViewName("process/started");
return mav;
}
/**
* 所有已启动流程实例
*/
@RequestMapping("started")
public ModelAndView started(ModelAndView mav) {
RuntimeService service = engine.getRuntimeService();
List<ProcessInstance> list = service.createProcessInstanceQuery()
.list();
mav.addObject("list", list);
mav.setViewName("process/started");
return mav;
}
@RequestMapping("task")
public ModelAndView task(ModelAndView mav){
TaskService service=engine.getTaskService();
List<Task> list=service.createTaskQuery().list();
mav.addObject("list", list);
mav.setViewName("process/task");
return mav;
}
@RequestMapping("complete")
public ModelAndView complete(ModelAndView mav,String id){
TaskService service=engine.getTaskService();
service.complete(id);
return new ModelAndView("redirect:task");
}
/**
* 所有已启动流程实例
*
* @throws IOException
*/
@RequestMapping("graphics")
public void graphics(String definitionId, String instanceId,
String taskId, ModelAndView mav, HttpServletResponse response)
throws IOException {
response.setContentType("image/png");
Command<InputStream> cmd = null;
if (definitionId != null) {
cmd = new GetDeploymentProcessDiagramCmd(definitionId);
}
if (instanceId != null) {
cmd = new ProcessInstanceDiagramCmd(instanceId);
}
if (taskId != null) {
Task task = engine.getTaskService().createTaskQuery().taskId(taskId).singleResult();
cmd = new ProcessInstanceDiagramCmd(
task.getProcessInstanceId());
}
if (cmd != null) {
InputStream is = engine.getManagementService().executeCommand(cmd);
int len = 0;
byte[] b = new byte[1024];
while ((len = is.read(b, 0, 1024)) != -1) {
response.getOutputStream().write(b, 0, len);
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
使用Activity和SSM框架搭建的Maven项目 工作流实现请假实例 附带前端页面 可以直接运行
共84个文件
prefs:21个
xml:14个
properties:9个
4星 · 超过85%的资源 需积分: 21 58 下载量 128 浏览量
2018-03-30
21:10:37
上传
评论 2
收藏 129KB ZIP 举报
温馨提示
近期刚写的使用Activity搭建的工作流,简单易操作,附带前端页面更加清楚
资源推荐
资源详情
资源评论
收起资源包目录
activiti和SSM整合实现的请假实例.zip (84个子文件)
activiti和SSM整合实现的请假实例
.project 1KB
src
main
webapp
WEB-INF
views
process
template.jsp 1KB
started.jsp 1KB
deployed.jsp 1KB
task.jsp 1KB
web.xml 2KB
index.jsp 52B
resources
diagrams
Hello.bpmn 3KB
activiti.cfg.xml 1KB
applicationContext.xml 6KB
spring-mvc.xml 2KB
jdbc.properties 868B
log4j.properties 1KB
java
org
xdemo
example
activiti
controller
ProcessInstanceDiagramCmd.java 2KB
ActivitiController.java 4KB
Util.java 314B
target
m2e-wtp
web-resources
META-INF
MANIFEST.MF 109B
maven
org.xdemo.example
activiti
pom.properties 228B
pom.xml 3KB
classes
diagrams
Hello.bpmn 3KB
activiti.cfg.xml 1KB
applicationContext.xml 6KB
spring-mvc.xml 2KB
jdbc.properties 868B
log4j.properties 1KB
org
xdemo
example
activiti
controller
Util.class 1022B
ActivitiController.class 6KB
ProcessInstanceDiagramCmd.class 2KB
test-classes
.settings
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.common.project.facet.core.xml 252B
org.eclipse.m2e.core.prefs 90B
org.eclipse.jdt.core.prefs 430B
org.eclipse.wst.validation.prefs 50B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.core.resources.prefs 61B
org.eclipse.wst.common.component 665B
.jsdtscope 508B
.metadata
.mylyn
contexts
repositories.xml.zip 438B
.lock 0B
version.ini 102B
.plugins
org.eclipse.jdt.ui
QualifiedTypeNameHistory.xml 85B
OpenTypeHistory.xml 76B
org.eclipse.e4.workbench
workbench.xmi 410KB
org.eclipse.pde.core
.p2
org.eclipse.equinox.p2.engine
profileRegistry
.cache
clean-cache.properties 51B
org.eclipse.mylyn.context.core
contexts
org.eclipse.core.resources
.safetable
org.eclipse.core.resources 853B
.projects
RemoteSystemsTempFiles
.root
.indexes
properties.index 151B
properties.version 1B
history.version 1B
1.tree 283B
.history
org.eclipse.emf.common.ui
org.eclipse.ui.workbench
dialog_settings.xml 395B
org.eclipse.ui.intro
org.eclipse.m2e.logback.configuration
0.log 0B
logback.1.5.1.20150109-1820.xml 2KB
org.eclipse.rse.core
initializerMarks
org.eclipse.rse.internal.core.RSELocalConnectionInitializer.mark 0B
profiles
PRF.desktop-h3ac1jl_32603
H.local_16
node.properties 1KB
FP.local.files_0
node.properties 2KB
node.properties 166B
.log 0B
com.collabnet.subversion.merge
MergeResults
org.eclipse.core.runtime
.settings
org.eclipse.team.cvs.ui.prefs 57B
org.tigris.subversion.subclipse.tools.usage.prefs 111B
org.eclipse.ui.prefs 48B
org.eclipse.jdt.ui.prefs 571B
org.eclipse.mylyn.monitor.ui.prefs 97B
org.eclipse.ui.ide.prefs 129B
org.eclipse.jst.j2ee.webservice.ui.prefs 58B
org.eclipse.team.ui.prefs 69B
org.eclipse.mylyn.context.core.prefs 62B
com.collabnet.subversion.merge.prefs 56B
org.eclipse.mylyn.tasks.ui.prefs 194B
org.tigris.subversion.subclipse.ui.prefs 70B
org.eclipse.rse.ui.prefs 100B
org.eclipse.rse.core.prefs 135B
org.eclipse.core.resources.prefs 42B
org.eclipse.m2e.discovery.prefs 73B
org.eclipse.ui.workbench.prefs 3KB
org.eclipse.debug.core
org.eclipse.mylyn.tasks.ui
org.eclipse.jdt.core
variablesAndContainers.dat 129B
invalidArchivesCache 4B
nonChainingJarsCache 4B
assumedExternalFilesCache 4B
externalFilesCache 4B
org.eclipse.mylyn.bugzilla.core
org.eclipse.team.cvs.core
org.eclipse.rse.ui
.log 0B
.log 3KB
pom.xml 3KB
RemoteSystemsTempFiles
.project 289B
.classpath 1KB
共 84 条
- 1
资源评论
- guanweigengyun2019-04-23代码太过简单。。。。。。
- effort_good2018-10-01写的很清楚,
Markw116
- 粉丝: 2
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python实现的自动化办公项目.zip
- 基于python实现的基于PyQt5和爬虫的小说阅读系统.zip
- 机械设计整经机上纱自动化sw20非常好的设计图纸100%好用.zip
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功