您的位置:首页 > 产品设计 > 产品经理

Activiti解析.bpmn文件获得User Task节点的CandidateUsers特性的值

2017-06-26 16:35 1231 查看
参考文档:
http://www.cnblogs.com/mingforyou/p/5351332.html http://blog.csdn.net/jackyrongvip/article/details/9256531
/**
* getJobProcessDefinitionMap
* 查找UserTask节点中CandidateUsers不空的流程,并按照CandidateUser分类存储流程列表。
* @param  @return    设定文件
* @return Map<String,Set<ProcessDefinition>>    DOM对象
* @throws
* @since  CodingExample Ver 1.1
*/
private Map<String,Set<ProcessDefinition>> getJobProcessDefinitionMap() {
Map<String, Set<ProcessDefinition>> jobProcessDefinitionCaditateMap = new HashMap<String,Set<ProcessDefinition>>();

List<ProcessDefinition> processDefinitionList = findLastVersionProcessDefinition();

for(ProcessDefinition processDefinition : processDefinitionList){
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinition.getId());
List<org.activiti.bpmn.model.Process> processList = bpmnModel.getProcesses();
if(processList != null && processList.size() > 0){
for(org.activiti.bpmn.model.Process process : processList){
if(process != null){
Collection<FlowElement> flowElementCollection = process.getFlowElements();
if(flowElementCollection != null && flowElementCollection.size() > 0){
for(FlowElement flowElement : flowElementCollection){
if(flowElement instanceof UserTask){
UserTask userTask = (UserTask)flowElement;
List<String> candidateUsers = userTask.getCandidateUsers();
if(candidateUsers != null && candidateUsers.size() > 0){
for(String candidateUser : candidateUsers){
if(!StringUtils.isBlank(candidateUser)){
Set<ProcessDefinition> processDefinitionCaditateSet = null;
if(jobProcessDefinitionCaditateMap.containsKey(candidateUser)){
processDefinitionCaditateSet = jobProcessDefinitionCaditateMap.get(candidateUser);
}else{
processDefinitionCaditateSet = new HashSet<ProcessDefinition>();
jobProcessDefinitionCaditateMap.put(candidateUser, processDefinitionCaditateSet);
}
if(!processDefinitionCaditateSet.contains(processDefinition)){
processDefinitionCaditateSet.add(processDefinition);
}
}
}
}
}
}
}
}
}
}
}

return jobProcessDefinitionCaditateMap;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐