十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
指定会签任务,流转到任务节点会自动生成若干个会签任务,我们需要在任务完成前设置一些流程变量传递过去让流程判断自己何时结束,传递参数的主要后台JAVA代码:
//判断是否是会签任务
BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId());
CollectionflowElements =bpmnModel.getMainProcess().getFlowElements();
String sequentialType="notEnabled",taskRate="50";
for(FlowElement e : flowElements) {
if(e.getId().equals(task.getTaskDefinitionKey())){
if(e.getAttributes().containsKey("sequentialType")) {
sequentialType = e.getAttributes().get("sequentialType").get(0).getValue();
}
if(e.getAttributes().containsKey("taskRate")){
taskRate=(String)e.getAttributes().get("taskRate").get(0).getValue();
}
}
}
//会签节点设置
if(StringUtils.equals(sequentialType,"notEnabled")){
//不是会签节点
map.values().removeIf(key ->key == "taskRate");
map.values().removeIf(key ->key == "nrOfAgreeInstances");
}else{
//会签设置
map.put("taskRate",taskRate);
//通过数
int nrOfAgreeInstances=0;
if(runtimeService.getVariable(task.getProcessInstanceId(),"nrOfAgreeInstances")!=null){
String agreeCount=String.valueOf(runtimeService.getVariable(task.getProcessInstanceId(),"nrOfAgreeInstances"));
if(StringUtils.isNotEmpty(agreeCount)){
nrOfAgreeInstances=Integer.valueOf(agreeCount);
}
}
if(StringUtils.equals((String)map.get("taskResult"),"agree")){
nrOfAgreeInstances++;
}
map.put("nrOfAgreeInstances",nrOfAgreeInstances);
runtimeService.setVariable(task.getProcessInstanceId(),"nrOfAgreeInstances",nrOfAgreeInstances);
}
计算投票通过的人数,取出任务完成率(通过率)的阈值传递到流程里面,然后完成任务。
taskService.setVariablesLocal(task.getId(), map);
taskService.complete(taskId, map);
设计器这样的,然后看下完成的截图,大概长这样。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧