1. 概要

在平台中会签节点,有默认的会签投票规则,按照票数需要或意见将会签处理。还有些情况是不一定按照投票完成,比如 审批人是某领导,这个时候就直接完成。还有在会签完成之后,客户需要做一些其他的动作。这些可以使用脚本完成。

2. 使用脚本判定完成

2.1 脚本编写方法

脚本上下文数据

参数 说明
ticketCount 投票结果
approveTimes 审批次数
instanceOfNumbers 总的审批实例数

ticketCount对象结构

com.redxun.bpm.core.service.TicketCount

  1. class TicketCount{
  2. public TicketCount(){
  3. }
  4. public TicketCount(int passCount,int refuseCount){
  5. this.passCount=passCount;
  6. this.refuseCount=refuseCount;
  7. }
  8. //通过票数
  9. int passCount=0;
  10. //反对票数
  11. int refuseCount=0;
  12. //总投票数
  13. int totalCount=0;
  14. }

脚本返回:

脚本需要返回一个VoteResult 的对象实例。
类的全路径如下:
com.redxun.bpm.core.entity.VoteResult

代码结构如下:

  1. public class VoteResult{
  2. public VoteResult(){
  3. }
  4. public VoteResult(Boolean completed, Boolean result){
  5. this.completed=completed;
  6. this.result=result;
  7. }
  8. /**
  9. * 投票是否完成
  10. */
  11. private Boolean completed=false;
  12. /**
  13. * 通过状态。(通过还是拒绝)
  14. */
  15. private Boolean result=false;
  16. }

2.2 脚本示例

2.2.1 业务需求:

在会签审批是,当审批人是总经理,那么会签直接完成,并且会签结果以他的意见为准。

2.2.2 配置方式如下

在流程设计器中配置如下:

脚本如下:

  1. import com.redxun.bpm.core.entity.VoteResult;
  2. //判断当前人是否是总经理角色。
  3. boolean rtn=OrgUserApi.isInGroup("zjl") ;
  4. boolean result="AGREE".equals(cmd.checkType);
  5. return new VoteResult(rtn,result);

这段脚本的意思是,当当前审批人是总经理的情况下,会签审批就直接完成,否则会等待所有的人员审批完成,会签结果以当前人的意见为准。

文档更新时间: 2020-11-06 12:14   作者:zyg