JBPM4关于Assignee动态获取------OA系统工作流环节问题
来源:互联网 发布:mac 命令行 删除软件 编辑:程序博客网 时间:2024/05/29 04:17
今天在完善OA系统工作流的过程中,对于一直没有处理的动态指定assignee的问题进行了一个处理,因为去网上查了很多资料,但是都不太符合要求,或者感觉可能不太懂,于是自己想了一种方法,如果有什么更好的方法,请大家指导一下我,对于jbpm我也是初学。
首先说一下我的工程以及对于jbpm的需求。现在有一张表,Form,用来存储申请信息,这里可以是请假申请,可以是财务申请,对于这些具体分类,我用额外的表来存储相关的数据。
Form表主要存储的字段有
public class Form {/** 表单状态常量:审批中 **/public static final String STATUS_RUNNING = "审批中";/** 表单常量:已通过 **/public static final String STATUS_APPROVED = "已通过";/** 表单常量:未通过 **/public static final String STATUS_REJECTED = "未通过";private Long id;private ApplicationTemplate applicationTemplate; // 申请所用的文档模板private Set<ApproveInfo> approveInfos = new HashSet<ApproveInfo>();private User applicant; // 申请人private String title; // 标题private Date applyTime; // 申请时间private String path; // 文档的存储路径private LeaveFormInfo leaveFormInfo; // 对应请假表信息序号<pre name="code" class="java">
这里我只做了请假表,具体的以后还需要完善。
jbpm的xml是这样的
<?xml version="1.0" encoding="UTF-8"?><process name="员工请假流程" xmlns="http://jbpm.org/4.4/jpdl"> <start g="264,32,48,48" name="start1"> <transition g="-69,-22" name="to 提交申请" to="提交申请"/> </start> <end g="264,364,48,48" name="end1"/> <task g="242,112,92,52" name="提交申请" assignee="#{user.department.name}"> <transition g="-93,-22" name="to 部门经理审批" to="部门经理审批"/> </task> <task assignee="zs" g="242,196,92,52" name="部门经理审批"> <transition g="-81,-22" name="to 分公司总经理审批" to="分公司总经理审批"/> </task> <task assignee="ls" g="242,280,92,52" name="分公司经理审批"> <transition g="-50,-22" name="to end1" to="end1"/> </task> </process>
这里指定的审批人是固定的,所以对于实际使用的OA系统来说,很不方便。
我采用的方法是,在form的表后面加几个字段。
private String bossMax; // 最高领导private String bossMin; // 第一审批private String bossSec; // 第二审批private String bossThi; // 第三审批private String bossFou; // 第四审批
那么这几个字段的用处就在于指定审批人,然后每次发起任务申请的时候,将审批人存入form表中,这样xml中就可以这样写
<?xml version="1.0" encoding="UTF-8"?><process name="员工请假流程" xmlns="http://jbpm.org/4.4/jpdl"> <start g="264,32,48,48" name="start1"> <transition g="-69,-22" name="to 提交申请" to="提交申请"/> </start> <end g="264,364,48,48" name="end1"/> <task g="242,112,92,52" name="提交申请" assignee="#{user.department.name}"> <transition g="-93,-22" name="to 部门经理审批" to="部门经理审批"/> </task> <task assignee="#{form.bossMin}" g="242,196,92,52" name="部门经理审批"> <transition g="-81,-22" name="to 分公司总经理审批" to="分公司总经理审批"/> </task> <task assignee="#{form.bossSec}" g="242,280,92,52" name="分公司经理审批"> <transition g="-50,-22" name="to end1" to="end1"/> </task> </process>
如果有更多的审批,可以继续添加,然后在java中动态指定对应的人即可。
这样做的好处是根据不同的部门对应的不同的领导,发起申请时,都可以确定对应的审批人。
java中的代码实现方法很多,我这里说下我的思路,涉及几个表不太好发出,
department表中,有一个部门序号路径,由当前最高级departmentId到当前departmentId的序列,由“-”隔开,然后通过对序列的处理,可以找出本部门对应的上级领导。从而确定审批人。这个思路是刚相出的,还不完善,大家有什么好的方法,万望不吝赐教。
1 0
- JBPM4关于Assignee动态获取------OA系统工作流环节问题
- 关于OA系统的工作流开发总结
- 工作流OA系统
- 【OA】流程管理——JBPM4.4工作流应用
- 关于OA系统主页打不开的问题!
- 关于ssh整合jbpm4.4 无法获取processEngine的问题
- 面向OA系统的工作流引擎研发
- 通达OA 关于直接在数据库中修改工作流表单值的问题
- 通达OA-今日学习:关于工作流表单印章打印错位问题的解释
- 关于小米6.0以上系统手机动态获取权限问题
- oa系统权限问题
- 关于oa系统开发平台的选择问题.
- 跟着汤阳光同志做一个OA系统(一):OA项目简介、软件开发环节介绍
- 通达OA二次开发-随时获取工作流中的数据
- (jbpm4)工作流引擎描述
- JBPM4工作流入门
- 后OA时代:工作流系统(引擎)为核心
- 方正飞鸿:工作流在OA系统中的重要性
- POJ 3904 Sky Code (容斥原理)
- 第五周项目一 2
- sql 常用数学函数
- 清除浮动
- 关于垃圾回收的小结
- JBPM4关于Assignee动态获取------OA系统工作流环节问题
- 游戏人物
- 69. Sqrt(x)
- POJ 2236-Wireless Network(并查集)
- nginx负载均衡配置
- iOS UIDevice- NSBundle - NSlocale
- 111-e-Minimum Depth of Binary Tree
- bzoj 3876(有上下界的最小费用流)
- 游戏人物 退出江湖