jbpm4.4 简单请假流程

Jbpm4.4  简单请假流程

这里是用jbpm4.4+Hibernate做的简单的请假流程(采用MyEclipse  8.6+ MySql)。

一.画流程图

       名称:leave.jpdl.xml

        

        说明:

            1.为apply任务节点设置属性:

                

              2.为teacherdo任务节点设置属性:

              

              3.为managerdo任务节点设置属性:        

             

              leave.jpdl.xml源码如下 :  

                    <?xml version="1.0" encoding="UTF-8"?>

                    <process name="leave" xmlns="http://jbpm.org/4.4/jpdl">

                      <start g="155,147,48,48" name="start1">

                              <transition to="apply"/>

                     </start>

                     <task assignee="#{user}" form="apply_do.jsp" g="231,188,92,52" name="apply">

                              <transition to="teacherdo"/>

                      </task>

                      <task assignee="teacher" form="teacher_do.jsp" g="326,282,92,52" name="teacherdo">

                            <transition g="-19,-13" name="agree" to="end1"/>

                            <transition g="-23,-4" name="disagree" to="managerdo"/>

                     </task>

                     <end g="384,446,48,48" name="end1"/>

                     <task assignee="manager" form="manager_do.jsp" g="492,345,92,52" name="managerdo">

                            <transition to="end1"/>

                    </task>

                 </process>

二.流程发布

        流程发布在deploy.jsp 页面中。核心代码如下:

       <%@ page import="org.jbpm.api.*" %>

       <%

        ProcessEngine processEngine = Configuration.getProcessEngine();

        RepositoryService repositoryService = processEngine

          .getRepositoryService();

        repositoryService.createDeployment().addResourceFromClasspath("leave.jpdl.xml").deploy();

        response.sendRedirect("apply.jsp");

%>

三.流程实例化

    3.1  流程启动

          l流程的启动在start.jsp页面中。 核心代码如下:

<%@ page import="org.jbpm.api.*" %>

    <%

ProcessEngine processEngine = Configuration.getProcessEngine();

ExecutionService executionService = processEngine

.getExecutionService();

Map map = new HashMap();

map.put("user", session.getAttribute("username"));

executionService.startProcessInstanceById(request

.getParameter("id"), map);

response.sendRedirect("apply.jsp");

%>

       3.2.流程任务管理

            3.2.1.申请

            通过获得任务id来获得任务(task.getId)进入到apply_do.jsp页面进行申请

               

             申请填完后提交到submit.jsp页面,完成任务。核心代码如下:

<%@page import="java.util.*,org.jbpm.api.*"%>

<%

ProcessEngine processEngine = Configuration.getProcessEngine();

TaskService taskService = processEngine.getTaskService();

String taskId = request.getParameter("taskId");

String owner = request.getParameter("user");

int day = Integer.parseInt(request.getParameter("day"));

String reason = request.getParameter("reason");

Map map = new HashMap();

map.put("day", day);

map.put("reason", reason);

taskService.completeTask(taskId, map);

response.sendRedirect("apply.jsp");

%>

        3.2.2 老师审核

             teacher登陆进入到apply.jsp中会看到自己需要处理的任务,点击查看跳转到teacher_do.jsp(也把任务的id传过来了),然后老师进行处理:

         

            老师审核后跳转到submit_teacher.jsp页面中(也把result传过来了),核心代码如下:

  <%@page import="java.util.*,org.jbpm.api.*"%>

  <%

ProcessEngine processEngine = Configuration.getProcessEngine();

TaskService taskService = processEngine.getTaskService();

String taskId = request.getParameter("taskId");

String result = request.getParameter("result");

taskService.completeTask(taskId, result);

response.sendRedirect("apply.jsp");

%>

          result为 agree则流程结束到达end 节点。Result disagree则流程到达managerdo节点。需要院长进行审核。

        3.2.3 院长审核

                 manager登陆进入到apply.jsp中会看到自己需要处理的任务,点击查看跳转到manager_do.jsp(也把任务的id传过来了),然后院长进行处理:

          

        院长点击提交后到达submit_manager.jsp页面对任务进行处理,核心代码如下:

<%@page import="java.util.*,org.jbpm.api.*"%>

<%

ProcessEngine processEngine = Configuration.getProcessEngine();

TaskService taskService = processEngine.getTaskService();

String taskId = request.getParameter("taskId");

taskService.completeTask(taskId);

response.sendRedirect("apply.jsp");

%>

    一个流程运行到此结束。

 

四.用户登录说明

        用户登录使用的是Servler+Hibernate +Filter处理,具体目录如下:

 

 

jsp页面目录

 

具体流程效果需要运行此项目才能体会到。

 资源下载

 

 

                                                                                                                                                                                                                               By  Mr.Z

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
请假流程工作流是一种用来管理员工请假申请的流程,它能够统一规范请假流程,提高请假审批效率和准确性。下面是一个简单请假流程工作流的示例。 首先,在java中可以使用业务流程管理引擎如Activiti或JBPM来实现请假流程工作流。在开始请假流程之前,需要定义好请假的类型,如事假、病假、年假等。同时还需要设定请假的时间范围和具体天数。 当员工需要请假时,他可以通过系统或应用提交一个请假申请。该申请包含了请假类型和请假时间等信息。系统接收到请假申请后,会创建一个请假流程实例。 接下来,申请会进入到审批环节。请假流程中通常会设置多个审批节点,每个节点对应一位领导或者上级。每个节点会依次审批申请,审批的顺序可以是串行的,也可以是并行的。 审批者可以根据具体情况对请假申请进行审核,并提出意见或建议。审批者可以通过系统中的表单输入批准或驳回的意见,并提交给下一位审批者。在每个审批节点上,系统都会记录下每一位审批者的决策和意见。 如果所有的审批者都同意申请,流程会自动进入结束节点,该申请被批准,并通知员工请假成功。如果有一位或多位审批者驳回,请假流程会中止,并通知员工请假未通过。 请假流程工作流还可以加入其他的功能,如超时判断、催促通知等,以便提高请假流程的效率和及时性。 总结起来,简单请假流程工作流包括请假申请、审批环节和结束节点。通过合理设置请假流程,可以提高请假审批的效率和准确性,让请假流程更加规范和便捷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值