1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > (六)Activiti之实现学生请假流程

(六)Activiti之实现学生请假流程

时间:2020-06-17 12:12:08

相关推荐

(六)Activiti之实现学生请假流程

Activiti之第一个程序以及Activiti插件的使用和Activiti表的解释

目录概 述流程定义ZIp部署:`在这里插入代码片`相关流程如下:分析:小结:参考资料和推荐阅读

LD is tiggerforever,CG are not brothersforever, throw the pot and shineforever.

Modesty is not false, solid is not naive,treacherousbut not deceitful, stay with good people, and stay away from poor people.

talk is cheap, show others the code and KPI, Keep progress,make a better result.

Survive during the day and develop at night。

目录

概 述

流程定义ZIp部署:在这里插入代码片

一、实现学生请假流程

用activiti插件生成bpmn和png文件:

ublic class StudentLeaveProcess {/*** 获取默认流程引擎实例,会自动读取activiti.cfg.xml文件*/private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();/*** 部署流程定义*/@Testpublic void test_Deploy() {Deployment deployment = processEngine.getRepositoryService() // 获取部署相关Service.createDeployment() 创建部署.addClasspathResource("diagrams/StudentLeaveProcess.bpmn") // 加载资源文件.addClasspathResource("diagrams/StudentLeaveProcess.bpmn") // 加载资源文件.name("学生请假流程") // 流程名称.deploy(); // 部署System.out.println("流程部署ID:" + deployment.getId());System.out.println("流程部署Name:" + deployment.getName());}}

更新流程部署表

更新流程定义表

更新资源文件表

更新系统配置表

相关流程如下:

1.2启动流程实例:

@Testpublic void start() {ProcessInstance instance=processEngine.getRuntimeService() // 运行时Service.startProcessInstanceByKey("StudentLeaveProcess"); // 流程定义表act_re_procdef的KEY字段值System.out.println("流程实例ID:"+instance.getId());System.out.println("流程定义ID:"+instance.getProcessDefinitionId()); }

此时流程学生请假这个节点,等待张三完成任务:

更新执行对象表

更新身份联系表,

更新 用户任务表,这里是张三的任务

更新活动节点历史表,如下图可知,张三的任务还没完成,所以END_TIME为空

更新历史身份联系表,流程走到这里暂时

更新历史任务表,目前只有张三的任务只有张三这个用户需要完成任务。

更新历史流程实例表,因为张三还没完成任务,所以END_TIME为空。

更新历史任务表,目前只有张三的任务。

1.3查看张三的任务

/*** 查看任务*/@Testpublic void find_task() {List<Task> taskList=processEngine.getTaskService().createTaskQuery().taskAssignee("张三").list();for(Task task:taskList){System.out.println("任务ID:"+task.getId()); System.out.println("任务名称:"+task.getName());System.out.println("任务创建时间:"+task.getCreateTime());System.out.println("任务委派人:"+task.getAssignee());System.out.println("流程实例ID:"+task.getProcessInstanceId());}}

1.4张三完成学生请假任务:

@Test

public void test_completeTask() {

processEngine.getTaskService().complete(“2504”);

}

分析:

更新执行对象表

更新身份联系表 ,这个流程走到现在需要张三和李四两个用户,张三已经完成任务

更新 用户任务表,这里是李四的任务

更新活动节点历史表,如下图可知,李四的任务还没完成,所以END_TIME为空

更新历史身份联系表

更新历史流程实例表

更新历史任务表:

/*** 查看任务*/@Testpublic void find_task() {List<Task> taskList=processEngine.getTaskService().createTaskQuery().taskAssignee("李四").list();for(Task task:taskList){System.out.println("任务ID:"+task.getId()); System.out.println("任务名称:"+task.getName());System.out.println("任务创建时间:"+task.getCreateTime());System.out.println("任务委派人:"+task.getAssignee());System.out.println("流程实例ID:"+task.getProcessInstanceId());}}

1.6李四完成班长审批任务

/*** 完成任务*/@Testpublic void test_completeTask() {processEngine.getTaskService().complete("5002");}

更新执行对象表

更新身份联系表

更新 用户任务表,这里是王五的任务

更新活动节点历史表,如下图可知,王五的任务还没完成,所以END_TIME为空

更新历史身份联系表

更新历史流程实例表

更新历史任务表

1.7查看王五任务

* 查看任务*/@Testpublic void find_task() {List<Task> taskList=processEngine.getTaskService().createTaskQuery().taskAssignee("王五").list();for(Task task:taskList){System.out.println("任务ID:"+task.getId()); System.out.println("任务名称:"+task.getName());System.out.println("任务创建时间:"+task.getCreateTime());System.out.println("任务委派人:"+task.getAssignee());System.out.println("流程实例ID:"+task.getProcessInstanceId());}}

/**

* 完成任务

*/

@Test

public void test_completeTask() {

processEngine.getTaskService().complete(“7502”);

}

当流程结束的时候,运行时的表(以act_ru开头的表)数据全部清空,历史表(以act_hi开头的表)数据修改 或者增加了数据

小结:

参考资料和推荐阅读

1.链接: 参考资料.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。