工作流中需要传入任务的名称,用户的登录名以及状态等信息,这些都放在流程变量vars中,vars是一个map集合,流程中可以通过键来取值。当多个接收人时,可以嵌套一个set集合。不同的流程都会存在驳回这一环节,这时候就要清空对应接收人集合的值,如果用remove,并不会达到效果。
String status = incomeAllot.getStatus();
//获取流程变量
Map<String, Object> vars = runtimeService.getVariables(incomeAllot.getProcInsId());
if(null != incomeAllot.getAct() && StringUtils.isNotBlank(incomeAllot.getAct().getAssignee()) && "相关部门经理确认".equals(status)){
//对于多个接收人,必须从vars中获取,不能new,否则之前的人会被清空
HashSet<String> xgbmjl;
if(vars.get("xgbmjl") != null){
xgbmjl = (HashSet<String>) vars.get("xgbmjl");
}else{
xgbmjl = new HashSet<String>();
}
String assigneeId = incomeAllot.getAct().getAssignee();
xgbmjl.add(UserUtils.getUser().getLoginName());
vars.put("xgbmjl", xgbmjl);
} else if("驳回修改".equals(stat