日期:2014-05-16 浏览次数:20448 次
?
会签的例子依然采用Nutz+ExtJS+JBPM来实现。
?
这里只讲讲会签的实现,其他细节可以参考这篇文章http://pangwu86.iteye.com/blog/1114082
?
#######################邪恶的分割线#######################
?
首先介绍下什么是会签
?
会签
?
会签是撰拟公文的过程中,主办单位主动与有关单位协商并核签的一种办文程序,一般当公文的内容涉及本单位的多个部门或与其他单位有关时,需要进行会签。会签根据对象的不同分为内部会签和外部会签。内部会签用于与本单位内部的各有关部门进行协商并核签;外部会签用于与外单位的有关部门进行协商并核签;二者的性质相同,但处理形式不同。
在管理系统中的会签流程,例如公司职员离职、大学生毕业离校都要在不同的部门去签字确认,这里去哪个部门签字没有顺序之分,但所有部门签字完毕后才可以离职或离校。
?
?
?
会签的情况会有很多中,根据复杂程度,一般可以分为单步会签(只有一个活动处理会签任务),以及多步会签(由多个任务组成的)
?
这里只介绍下常见的,也是业务中最常遇到的单步会签。
?
?
单步会签常见有4种情况:
?
?
?
?
这里要说一下,在查找会签的资料时,yy269兄的http://yy629.iteye.com/blog/660701与phoenix.clt兄的http://phoenix-clt.iteye.com/blog/428242这两篇文章给了很大的启发,后面的实现也借鉴了他们的一些好的思想,需要的朋友可以去看一看。
?
?
下面的部分将会讲述如何实现一个动态会签(会签人数,人员,会签规则都可以自由设定)
?
好,接下来看一下今天举得这个申请经费的例子:
?
贴一下jpdl.xml文件
?
<?xml version="1.0" encoding="UTF-8"?> <process name="jingfeishenqing" xmlns="http://jbpm.org/4.4/jpdl"> <description><![CDATA[ 经费申请,大于30万需要老总们会签(采用一票否决制) ]]></description> <!-- 会签决策实现类 --> <variable name="calc.countersignCalculatorImpl" type="string"> <string value="org.nutz.jbpm.countersign.impl.AllAgreeSign" /> </variable> <!-- 以下三个参数只有按百分比策略才会用到,可以根据需要来设定 --> <!-- 最小同意数 --> <variable name="calc.minAgreeSize" type="int"> <int value="2"/> </variable> <!-- 最小同意比例(请设定一个在0-1之间的数字) --> <variable name="calc.minAgreePercent" type="float"> <float value="0.6"/> </variable> <!-- 是否使用按比例(true为按照比例,false为按照人数) --> <variable name="calc.userPercent" type="boolean"> <false/> </variable> <start g="81,8,48,48" name="start1"> <transition g="-60,13" name="申请经费" to="申请经费" /> </start> <task assignee="${employee}" form="countersign/applyfor.jsp" g="304,65,92,52" name="申请经费"> <transition name="金额判断" to="判断1" g="-69,-22" /> </task> <decision expr="#{money > 300000 ? '大于30万' : '小于等于30万'}" g="190,144,48,48" name="判断1"> <transition g="-39,14" name="大于30万" to="领导会签" /> <transition g="-80,-21" name="小于等于30万" to="财务