中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

做網(wǎng)站需要云數(shù)據(jù)庫(kù)嗎2345網(wǎng)址導(dǎo)航手機(jī)版

做網(wǎng)站需要云數(shù)據(jù)庫(kù)嗎,2345網(wǎng)址導(dǎo)航手機(jī)版,建一個(gè)網(wǎng)站都需要什么,seo綜合查詢軟件排名說(shuō)明&#xff1a; activiti本身狀態(tài)存庫(kù)&#xff0c;導(dǎo)致效率太低&#xff0c;把中間狀態(tài)封裝成一個(gè)載荷類&#xff0c;返回給上游&#xff0c;下次請(qǐng)求時(shí)給帶著載荷類即可。 1.pom依賴 <dependency><groupId>net.sf.json-lib</groupId><artifactId>js…

說(shuō)明:

activiti本身狀態(tài)存庫(kù),導(dǎo)致效率太低,把中間狀態(tài)封裝成一個(gè)載荷類,返回給上游,下次請(qǐng)求時(shí)給帶著載荷類即可。

1.pom依賴

		<dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>${json-lib.version}</version><classifier>jdk15</classifier></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-engine</artifactId><version>5.22.0</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-bpmn-converter</artifactId><version>5.22.0</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-bpmn-model</artifactId><version>5.22.0</version></dependency>

2.關(guān)鍵類

2.1解析類-BPMNService

package cn.com.agree.activiti10;
import org.activiti.bpmn.converter.BpmnXMLConverter;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.bpmn.model.CallActivity;
import org.activiti.bpmn.model.EndEvent;
import org.activiti.bpmn.model.ExclusiveGateway;
import org.activiti.bpmn.model.FlowElement;
import org.activiti.bpmn.model.FlowNode;
import org.activiti.bpmn.model.InclusiveGateway;
import org.activiti.bpmn.model.ParallelGateway;
import org.activiti.bpmn.model.Process;
import org.activiti.bpmn.model.SequenceFlow;
import org.activiti.bpmn.model.StartEvent;
import org.activiti.bpmn.model.SubProcess;
import org.activiti.engine.impl.util.io.InputStreamSource;
import org.mvel2.MVEL;import log.cn.com.agree.ab.a5.runtime.InvokeLog;import java.io.FileInputStream;
import java.io.InputStream;
import java.util.*;
/*** 	靜態(tài)解析bpmn文件 -返回payLoad* 	payLoad:包含相關(guān)信息,替代數(shù)據(jù)庫(kù)中 存儲(chǔ)的信息。比如當(dāng)前交易名,對(duì)象組名,整體鏈路節(jié)點(diǎn)等* 	每次請(qǐng)求時(shí)帶著payLoad* @author fanjinliang@agree.com.cn**/
public class BPMNService {private Map<String, BpmnModel> bpmnModelMap = new HashMap<>();private Map<String, Process> processMap = new HashMap<>();// 初始化方法,在服務(wù)啟動(dòng)時(shí)調(diào)用public void init(List<String> bpmnFilePaths) throws Exception {for (String filePath : bpmnFilePaths) {loadBpmnModel(filePath);}}// 加載單個(gè) BPMN 文件private void loadBpmnModel(String bpmnFilePath) throws Exception {InputStream bpmnStream = new FileInputStream(bpmnFilePath);BpmnXMLConverter bpmnXMLConverter = new BpmnXMLConverter();InputStreamSource inputStreamSource = new InputStreamSource(bpmnStream);BpmnModel bpmnModel = bpmnXMLConverter.convertToBpmnModel(inputStreamSource, false, false);bpmnStream.close();for (Process process : bpmnModel.getProcesses()) {String definitionKey = process.getId();bpmnModelMap.put(definitionKey, bpmnModel);processMap.put(definitionKey, process);}}// 根據(jù) definitionKey 獲取 Processpublic Process getProcessByDefinitionKey(String definitionKey) {return processMap.get(definitionKey);}// 根據(jù)當(dāng)前節(jié)點(diǎn)的 ID 獲取下一個(gè)節(jié)點(diǎn)(包括處理網(wǎng)關(guān)和嵌套流程)public FlowElement getNextFlowElement(String definitionKey, String currentElementId, Map<String, Object> variables) throws  ActivitiException{Process process = getProcessByDefinitionKey(definitionKey);if (process == null||process.getFlowElement(currentElementId)==null) {return null;}FlowElement currentElement = process.getFlowElement(currentElementId);FlowElement flowElement =null;if (currentElement instanceof FlowNode) {List<SequenceFlow> outgoingFlows = ((FlowNode) currentElement).getOutgoingFlows();if (outgoingFlows.isEmpty()) {return null;}Class<?> currentElementType = currentElement.getClass();switch (currentElementType.getSimpleName()) {case "ExclusiveGateway":// 處理排他網(wǎng)關(guān)for (SequenceFlow outgoingFlow : outgoingFlows) {if (evaluateCondition(outgoingFlow.getConditionExpression(), variables)) {return process.getFlowElement(outgoingFlow.getTargetRef());}}
//				InvokeLog.error("網(wǎng)關(guān)不匹配");throw new ActivitiException(ActivitiServiceResults.BIZ002_網(wǎng)關(guān)未匹配);
//				break;case "ParallelGateway":case "InclusiveGateway":// 處理并行網(wǎng)關(guān)或包容網(wǎng)關(guān),假設(shè)返回第一個(gè)符合條件的目標(biāo)節(jié)點(diǎn)for (SequenceFlow outgoingFlow : outgoingFlows) {return process.getFlowElement(outgoingFlow.getTargetRef());}break;case "CallActivity":// 處理 CallActivityString calledElement = ((CallActivity) currentElement).getCalledElement();Process calledProcess = getProcessByDefinitionKey(calledElement);if (calledProcess != null) {// 假設(shè)子流程的開始事件是唯一的for (FlowElement element : calledProcess.getFlowElements()) {if (element instanceof StartEvent) {return element;}}}break;case "SubProcess":// 處理 SubProcessflowElement = process.getFlowElement(outgoingFlows.get(0).getTargetRef());break;default:// 默認(rèn)處理,返回第一個(gè)目標(biāo)節(jié)點(diǎn)flowElement = process.getFlowElement(outgoingFlows.get(0).getTargetRef());break;}//			if (currentElement instanceof ExclusiveGateway) {//				// 處理排他網(wǎng)關(guān)//				for (SequenceFlow outgoingFlow : outgoingFlows) {//					if (evaluateCondition(outgoingFlow.getConditionExpression(), variables)) {//						return process.getFlowElement(outgoingFlow.getTargetRef());//					}else {//						throw new RuntimeException("網(wǎng)關(guān)不匹配");//					}//				}//			} else if (currentElement instanceof ParallelGateway || currentElement instanceof InclusiveGateway) {//				// 處理并行網(wǎng)關(guān)或包容網(wǎng)關(guān),假設(shè)返回第一個(gè)符合條件的目標(biāo)節(jié)點(diǎn)//				for (SequenceFlow outgoingFlow : outgoingFlows) {//					return process.getFlowElement(outgoingFlow.getTargetRef());//				}//			} else if (currentElement instanceof CallActivity) {//				// 處理 callActivity//				String calledElement = ((CallActivity) currentElement).getCalledElement();//				Process calledProcess = getProcessByDefinitionKey(calledElement);//				if (calledProcess != null) {//					// 假設(shè)子流程的開始事件是唯一的//					for (FlowElement element : calledProcess.getFlowElements()) {//						if (element instanceof StartEvent) {//							return element;//						}//					}//				}//			} else if (currentElement instanceof SubProcess) {//				// 處理 SubProcess//				flowElement =process.getFlowElement(outgoingFlows.get(0).getTargetRef());//			} //			else {//				flowElement = process.getFlowElement(outgoingFlows.get(0).getTargetRef());//				// 默認(rèn)處理,返回第一個(gè)目標(biāo)節(jié)點(diǎn)//			}}//判斷flowElement的類型if (flowElement!=null) {//對(duì)象組后的匯總網(wǎng)關(guān)放過(guò)就行if (currentElement instanceof SubProcess&&flowElement instanceof ParallelGateway) {flowElement=getNextFlowElement(process, flowElement.getId(), variables);}}return flowElement;}private boolean evaluateCondition(String conditionExpression, Map<String, Object> variables) {if (conditionExpression == null || conditionExpression.trim().isEmpty()) {return true; // 無(wú)條件表達(dá)式時(shí)默認(rèn)返回 true}return MVEL.evalToBoolean(conditionExpression.replaceAll("\\$|\\{|\\}", ""), variables);}public ProcessPayload startProcess(String definitionKey, Map<String, Object> var) throws ActivitiException {// TODO Auto-generated method stubProcess process = processMap.get(definitionKey);if (process==null) {throw new ActivitiException(ActivitiServiceResults.BIZ001_流程定義不存在);}Collection<FlowElement> flowElements = process.getFlowElements();String startId="";for (FlowElement e : flowElements) {if (e instanceof StartEvent) {startId = e.getId();break;}}FlowElement nextFlowElement = getNextFlowElement(definitionKey, startId, var);ProcessPayload processPayload=new ProcessPayload(definitionKey, process.getName());refreshProcessPayload(processPayload,nextFlowElement);return processPayload;}private void refreshProcessPayload(ProcessPayload processPayload, FlowElement nextFlowElement) {// TODO Auto-generated method stubif (nextFlowElement==null) {processPayload.setEnd(true);return;}String id=nextFlowElement.getId();String name=nextFlowElement.getName();String type = nextFlowElement.getClass().getSimpleName();SimpleFlowElement simpleFlowElement = new SimpleFlowElement(id, name, type);Set<String> objIds=new HashSet<String>();if ("SubProcess".equalsIgnoreCase(type)) {//對(duì)象組simpleFlowElement.setSubProcess(true);SubProcess sub=(SubProcess)nextFlowElement;List<SimpleFlowElement> subSimpleFlowElement=getSubProcessSimpleFlowElement(sub);//更新當(dāng)前對(duì)象組的對(duì)象列表simpleFlowElement.setSubSimpleFlowElement(subSimpleFlowElement);for (SimpleFlowElement e : subSimpleFlowElement) {objIds.add(e.getId());}//更新當(dāng)前對(duì)象組的對(duì)象id列表}else if ("ExclusiveGateway".equalsIgnoreCase(type)) {simpleFlowElement.setExclusiveGateway(true);objIds.add(simpleFlowElement.getId());}else if ("ParallelGateway".equalsIgnoreCase(type)) {simpleFlowElement.setParallelGateway(true);objIds.add(simpleFlowElement.getId());}else {objIds.add(simpleFlowElement.getId());}processPayload.setCurrentObjtIdSet(objIds);processPayload.setCurrentFlowElement(simpleFlowElement);}/*** 獲取對(duì)象組內(nèi)的對(duì)象節(jié)點(diǎn)信息* @param process* @return*/private List<SimpleFlowElement> getSubProcessSimpleFlowElement(SubProcess process) {// TODO Auto-generated method stubList<SimpleFlowElement> list=new ArrayList<SimpleFlowElement>();Collection<FlowElement> flowElements = process.getFlowElements();for (FlowElement e : flowElements) {if (!(e instanceof StartEvent || e instanceof EndEvent || e instanceof SequenceFlow)) {String id=e.getId();String name=e.getName();String type = e.getClass().getSimpleName();SimpleFlowElement simpleFlowElement = new SimpleFlowElement(id, name, type);list.add(simpleFlowElement);}}return list;}private FlowElement getNextFlowElement(Process process, String currentElementId, Map<String, Object> var) {if (process == null) {return null;}FlowElement currentElement = process.getFlowElement(currentElementId);if (currentElement == null) {return null;}if (currentElement instanceof FlowNode) {List<SequenceFlow> outgoingFlows = ((FlowNode) currentElement).getOutgoingFlows();if (outgoingFlows.isEmpty()) {return null;}if (currentElement instanceof ExclusiveGateway) {// 處理排他網(wǎng)關(guān)for (SequenceFlow outgoingFlow : outgoingFlows) {if (evaluateCondition(outgoingFlow.getConditionExpression(), var)) {return process.getFlowElement(outgoingFlow.getTargetRef());}}} else if (currentElement instanceof ParallelGateway || currentElement instanceof InclusiveGateway) {// 處理并行網(wǎng)關(guān)或包容網(wǎng)關(guān),假設(shè)返回第一個(gè)符合條件的目標(biāo)節(jié)點(diǎn)for (SequenceFlow outgoingFlow : outgoingFlows) {return process.getFlowElement(outgoingFlow.getTargetRef());}} else if (currentElement instanceof CallActivity) {// 處理 callActivityString calledElement = ((CallActivity) currentElement).getCalledElement();Process calledProcess = getProcessByDefinitionKey(calledElement);if (calledProcess != null) {// 假設(shè)子流程的開始事件是唯一的for (FlowElement element : calledProcess.getFlowElements()) {if (element instanceof StartEvent) {return element;}}}} else {// 默認(rèn)處理,返回第一個(gè)目標(biāo)節(jié)點(diǎn)return process.getFlowElement(outgoingFlows.get(0).getTargetRef());}}return null;}public ProcessPayload commitProcess(ProcessPayload processPayload, Set<String> commitObjIdSet, Map<String, Object> var) {try {SimpleFlowElement currentFlowElement = processPayload.getCurrentFlowElement();if (currentFlowElement.isSubProcess()) {//處理對(duì)象組List<SimpleFlowElement> subSimpleFlowElement = currentFlowElement.getSubSimpleFlowElement();for (String string : commitObjIdSet) {for (SimpleFlowElement e : subSimpleFlowElement) {if (e.getId().equalsIgnoreCase(string)) {e.setCommit(true);processPayload.getCurrentObjtIdSet().remove(string);currentFlowElement.getFlowElementNum().addAndGet(1);}}}//			if (currentFlowElement.getFlowElementNum().get()==subSimpleFlowElement.size()) {//				//當(dāng)前對(duì)象組提交完畢//				//			}if (processPayload.getCurrentObjtIdSet().size()==0) {//當(dāng)前對(duì)象組提交完畢//1.更新當(dāng)前節(jié)點(diǎn)狀態(tài)currentFlowElement.setCommit(true);//2.更新歷史節(jié)點(diǎn)processPayload.addHistoryFlowElement(currentFlowElement);//3.獲取下一節(jié)點(diǎn)并且封裝對(duì)象FlowElement nextFlowElement = getNextFlowElement(processPayload.getId(), currentFlowElement.getId(), var);refreshProcessPayload(processPayload, nextFlowElement);
//					return processPayload;}else {//仍然返回當(dāng)前節(jié)點(diǎn)
//					return processPayload;}}else {//非對(duì)象組currentFlowElement.setCommit(true);//2.更新歷史節(jié)點(diǎn)processPayload.addHistoryFlowElement(currentFlowElement);//3.獲取下一節(jié)點(diǎn)并且封裝對(duì)象FlowElement nextFlowElement = getNextFlowElement(processPayload.getId(), currentFlowElement.getId(), var);refreshProcessPayload(processPayload, nextFlowElement);}} catch (Exception e) {e.printStackTrace();if (e instanceof ActivitiException) {ActivitiException ae=(ActivitiException) e;processPayload.setErrorInfo(ae);}}return processPayload;}}

2.2 自定義節(jié)點(diǎn)類-SimpleFlowElement

package cn.com.agree.activiti10;import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;public class SimpleFlowElement {private String id;private String name;private String type; // Task, Event, Gateway, etc./* 標(biāo)識(shí)對(duì)象是否提交  */private boolean isCommit=false;/*	當(dāng)前節(jié)點(diǎn)是否是對(duì)象組	*/private boolean isSubProcess;/*	當(dāng)前節(jié)點(diǎn)是否是排他網(wǎng)關(guān)	*/private boolean isExclusiveGateway;/*	當(dāng)前節(jié)點(diǎn)是否是并行網(wǎng)關(guān)	*/private boolean isParallelGateway;/*	如果是對(duì)象組,保留組內(nèi)對(duì)象	*/List<SimpleFlowElement> subSimpleFlowElement=new ArrayList<SimpleFlowElement>();private AtomicInteger flowElementNum=new AtomicInteger(0);public SimpleFlowElement(String id, String name, String type) {this.id = id;this.name = name;this.type = type;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getType() {return type;}public void setType(String type) {this.type = type;}public boolean isCommit() {return isCommit;}public void setCommit(boolean isCommit) {this.isCommit = isCommit;}public boolean isSubProcess() {return isSubProcess;}public void setSubProcess(boolean isSubProcess) {this.isSubProcess = isSubProcess;}public List<SimpleFlowElement> getSubSimpleFlowElement() {return subSimpleFlowElement;}public void setSubSimpleFlowElement(List<SimpleFlowElement> subSimpleFlowElement) {this.subSimpleFlowElement = subSimpleFlowElement;}public boolean isExclusiveGateway() {return isExclusiveGateway;}public void setExclusiveGateway(boolean isExclusiveGateway) {this.isExclusiveGateway = isExclusiveGateway;}public boolean isParallelGateway() {return isParallelGateway;}public void setParallelGateway(boolean isParallelGateway) {this.isParallelGateway = isParallelGateway;}public AtomicInteger getFlowElementNum() {return flowElementNum;}public void setFlowElementNum(AtomicInteger flowElementNum) {this.flowElementNum = flowElementNum;}}

2.3 自定義載荷類

package cn.com.agree.activiti10;import java.util.ArrayList;
import java.util.List;
import java.util.Set;public class ProcessPayload {/* 活動(dòng)ID */private String id;/* 活動(dòng)name */private String name;/* 當(dāng)前節(jié)點(diǎn) */private SimpleFlowElement currentFlowElement;/* 歷史節(jié)點(diǎn) */private List<SimpleFlowElement> historyFlowElement=new ArrayList<SimpleFlowElement>();//	/*	一級(jí)流程下的節(jié)點(diǎn)ID	---合并到currentFlowElement*/
//	private String currentObjtId;/*	提交上來(lái)的taskId	*/
//	private Set<String> commitObjtId;//	/*	當(dāng)前節(jié)點(diǎn)是否是對(duì)象組 ---合并到currentFlowElement	*/
//	private boolean isSubProcess;//	/*	當(dāng)前待做的taskId,如果是對(duì)象組,那就是多個(gè)	---合并到currentFlowElement*/private Set<String> currentObjtIdSet;private boolean end=false;//TODO 接收到j(luò)son串的時(shí)候,記得把上次可能存在的錯(cuò)誤信息給重置下private String code="200";private String message;public ProcessPayload() {}public ProcessPayload(String id, String name) {this.id = id;this.name = name;}public ProcessPayload errorProcessPayload(String msg) {this.setCode("400");this.setMessage(msg);return this;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public SimpleFlowElement getCurrentFlowElement() {return currentFlowElement;}public void setCurrentFlowElement(SimpleFlowElement currentFlowElement) {this.currentFlowElement = currentFlowElement;}//	public Set<String> getCommitObjtId() {
//		return commitObjtId;
//	}
//
//
//
//	public void setCommitObjtId(Set<String> commitObjtId) {
//		this.commitObjtId = commitObjtId;
//	}public boolean isEnd() {return end;}public void setEnd(boolean end) {this.end = end;}public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public List<SimpleFlowElement> getHistoryFlowElement() {return historyFlowElement;}public void setHistoryFlowElement(List<SimpleFlowElement> historyFlowElement) {this.historyFlowElement = historyFlowElement;}public Set<String> getCurrentObjtIdSet() {return currentObjtIdSet;}public void setCurrentObjtIdSet(Set<String> currentObjtIdSet) {this.currentObjtIdSet = currentObjtIdSet;}public void addHistoryFlowElement(SimpleFlowElement historyFlowElement) {getHistoryFlowElement().add(historyFlowElement);}public void setErrorInfo(ActivitiException ae) {this.setCode(ae.getCode());this.setMessage(ae.getMessage());}}

2.4 測(cè)試類

package cn.com.agree.activiti10;import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;import org.activiti.bpmn.model.FlowElement;import com.alibaba.fastjson.JSON;public class Test {public static void main(String[] args) {try {BPMNService bpmnService = new BPMNService();//	            bpmnService.init(Arrays.asList("bpmn\\index.flow.bpmn"));//	            String definitionKey = "trade/test";//	            String startNodeId = "task2";bpmnService.init(Arrays.asList("bpmn\\index.activity.bpmn"));String definitionKey = "publicAc";Map<String,Object>var=new HashMap<String,Object>();var.put("a", "2");ProcessPayload processPayload=bpmnService.startProcess(definitionKey,var);String jsonString = JSON.toJSONString(processPayload);System.out.println(jsonString);while (!processPayload.isEnd()) {SimpleFlowElement currentFlowElement = processPayload.getCurrentFlowElement();System.out.println("currentFlowElement ID: " + currentFlowElement.getId());System.out.println("currentFlowElement Name: " + currentFlowElement.getName());System.out.println("currentObjIds : " + processPayload.getCurrentObjtIdSet());System.out.println("=========================================================");Set<String> currentObjtIdSet = processPayload.getCurrentObjtIdSet();Set<String>commitObjIdSet=new HashSet<String>();commitObjIdSet.addAll(currentObjtIdSet);processPayload=bpmnService.commitProcess(processPayload,commitObjIdSet,var);if (!"200".equalsIgnoreCase(processPayload.getCode())) {System.out.println(processPayload.getCode()+"--"+processPayload.getMessage());break;}
//				jsonString = JSON.toJSONString(processPayload);
//				System.out.println("processPayload"+jsonString);}} catch (Exception e) {e.printStackTrace();}}
}

2.5 其他類

package cn.com.agree.activiti10;public class ActivitiException extends Exception{/*** */private static final long serialVersionUID = 1L;private String code;private String detail;public ActivitiException(ActivitiServiceResults callResult){super(callResult.getMessage());this.code = callResult.getCode();}public ActivitiException(ActivitiServiceResults callResult, String detail){this(callResult);this.detail = detail;}public ActivitiException() {}public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getDetail() {return detail;}public void setDetail(String detail) {this.detail = detail;}}
package cn.com.agree.activiti10;
public enum ActivitiServiceResults
{BIZ001_流程定義不存在("BIZ001", "流程定義不存在"),BIZ002_網(wǎng)關(guān)未匹配("BIZ002", "網(wǎng)關(guān)未匹配");private String code;private String message;ActivitiServiceResults(String code, String message){this.code = code;this.message = message;}/*** @return the code*/public String getCode(){return code;}/*** @return the message*/public String getMessage(){return message;}/*** @param code*            the code to set*/public void setCode(String code){this.code = code;}/*** @param message*            the message to set*/public void setMessage(String message){this.message = message;}
}

2.6 bpmn文件

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test"><process isExecutable="true" id="publicAc" name="通用活動(dòng)"><startEvent id="startEvent1" name="startEvent" /><endEvent id="endEvent1" name="endEvent" /><userTask id="pubObj_subObject1" name="賬務(wù)提交處理" objectEntryConditions=""><extensionElements><activiti:formProperty id="CPCP條件" default="" /><activiti:formProperty id="pojoPath" default="BankCModule/scene/activity/publicAc/pubObj/pubObj" /></extensionElements></userTask><parallelGateway id="parallelGateway_subProcess1" name="parallelGateway_風(fēng)控對(duì)象組" /><sequenceFlow id="sequenceFlow_subProcess1" name="" sourceRef="subProcess1" targetRef="parallelGateway_subProcess1" /><subProcess id="subProcess1" name="風(fēng)控對(duì)象組"><startEvent id="subProcess1_start" name="startEvent" /><endEvent id="subProcess_end_authCheck_subObject2" name="endEvent" /><sequenceFlow id="sequenceFlow_start_authCheck_subObject2" name="" sourceRef="subProcess1_start" targetRef="authCheck_subObject2" /><sequenceFlow id="sequenceFlow_end_authCheck_subObject2" name="" sourceRef="authCheck_subObject2" targetRef="subProcess_end_authCheck_subObject2" /><userTask id="authCheck_subObject2" name="授權(quán)對(duì)象處理" objectEntryConditions=""><documentation>{&quot;id&quot;:&quot;subProcess1&quot;,&quot;name&quot;:&quot;風(fēng)控對(duì)象組&quot;}</documentation><extensionElements><activiti:formProperty id="CPCP條件" default="" /><activiti:formProperty id="pojoPath" default="BankCModule/processes/authCheck/authCheck" /></extensionElements></userTask><endEvent id="subProcess_end_reviewCheck_subObject3" name="endEvent" /><sequenceFlow id="sequenceFlow_start_reviewCheck_subObject3" name="" sourceRef="subProcess1_start" targetRef="reviewCheck_subObject3" /><sequenceFlow id="sequenceFlow_end_reviewCheck_subObject3" name="" sourceRef="reviewCheck_subObject3" targetRef="subProcess_end_reviewCheck_subObject3" /><userTask id="reviewCheck_subObject3" name="復(fù)核對(duì)象處理" objectEntryConditions=""><documentation>{&quot;id&quot;:&quot;subProcess1&quot;,&quot;name&quot;:&quot;風(fēng)控對(duì)象組&quot;}</documentation><extensionElements><activiti:formProperty id="CPCP條件" default="" /><activiti:formProperty id="pojoPath" default="BankCModule/processes/reviewCheck/reviewCheck" /></extensionElements></userTask></subProcess><sequenceFlow id="sequenceFlow5" name="" sourceRef="parallelGateway_subProcess1" targetRef="pubObj_subObject1" /><sequenceFlow id="sequenceFlow6" name="" sourceRef="startEvent1" targetRef="subProcess1" /><exclusiveGateway id="exclusiveGateway1" name="網(wǎng)關(guān)" /><userTask id="subObject4" name="網(wǎng)關(guān)1" objectEntryConditions="" /><sequenceFlow id="sequenceFlow7" name="條件" sourceRef="exclusiveGateway1" targetRef="subObject4"><conditionExpression xsi:type="tFormalExpression">${a==&#39;1&#39;}</conditionExpression></sequenceFlow><userTask id="subObject5" name="網(wǎng)關(guān)2" objectEntryConditions="" /><sequenceFlow id="sequenceFlow8" name="條件" sourceRef="exclusiveGateway1" targetRef="subObject5"><conditionExpression xsi:type="tFormalExpression">${a==&#39;2&#39;}</conditionExpression></sequenceFlow><sequenceFlow id="sequenceFlow9" name="" sourceRef="pubObj_subObject1" targetRef="exclusiveGateway1" /><userTask id="subObject6" name="對(duì)象" objectEntryConditions="" /><sequenceFlow id="sequenceFlow10" name="" sourceRef="subObject4" targetRef="subObject6" /><sequenceFlow id="sequenceFlow12" name="" sourceRef="subObject6" targetRef="endEvent1" /><sequenceFlow id="sequenceFlow13" name="" sourceRef="subObject5" targetRef="endEvent1" /></process><bpmndi:BPMNDiagram id="BPMNDiagram_通用活動(dòng)" xmlns="http://www.omg.org/spec/BPMN/20100524/DI"><bpmndi:BPMNPlane bpmnElement="通用活動(dòng)" id="BPMNPlane_通用活動(dòng)"><bpmndi:BPMNShape id="BPMNShape_startEvent1" bpmnElement="startEvent1"><omgdc:Bounds x="65" y="85" height="50" width="50" /></bpmndi:BPMNShape><bpmndi:BPMNShape id="BPMNShape_endEvent1" bpmnElement="endEvent1"><omgdc:Bounds x="950" y="185" height="50" width="50" /></bpmndi:BPMNShape><bpmndi:BPMNShape id="BPMNShape_pubObj_subObject1" bpmnElement="pubObj_subObject1"><omgdc:Bounds x="530" y="85" height="50" width="90" /></bpmndi:BPMNShape><bpmndi:BPMNShape id="BPMNShape_authCheck_subObject2" bpmnElement="authCheck_subObject2"><omgdc:Bounds x="40" y="33" height="50" width="90" /></bpmndi:BPMNShape><bpmndi:BPMNShape id="BPMNShape_reviewCheck_subObject3" bpmnElement="reviewCheck_subObject3"><omgdc:Bounds x="160" y="35" height="50" width="90" /></bpmndi:BPMNShape><bpmndi:BPMNShape id="BPMNShape_subProcess1" bpmnElement="subProcess1"><omgdc:Bounds x="230" y="52" height="115" width="265" /></bpmndi:BPMNShape><bpmndi:BPMNEdge id="BPMNEdge_sequenceFlow5" bpmnElement="sequenceFlow5"><omgdi:waypoint x="495" y="109.5" /><omgdi:waypoint x="530" y="110" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="BPMNEdge_sequenceFlow6" bpmnElement="sequenceFlow6"><omgdi:waypoint x="115" y="110" /><omgdi:waypoint x="230" y="109.5" /></bpmndi:BPMNEdge><bpmndi:BPMNShape id="BPMNShape_exclusiveGateway1" bpmnElement="exclusiveGateway1"><omgdc:Bounds x="535" y="235" height="30" width="30" /></bpmndi:BPMNShape><bpmndi:BPMNShape id="BPMNShape_subObject4" bpmnElement="subObject4"><omgdc:Bounds x="620" y="145" height="50" width="90" /></bpmndi:BPMNShape><bpmndi:BPMNEdge id="BPMNEdge_sequenceFlow7" bpmnElement="sequenceFlow7"><omgdi:waypoint x="565" y="250" /><omgdi:waypoint x="620" y="170" /></bpmndi:BPMNEdge><bpmndi:BPMNShape id="BPMNShape_subObject5" bpmnElement="subObject5"><omgdc:Bounds x="615" y="285" height="50" width="90" /></bpmndi:BPMNShape><bpmndi:BPMNEdge id="BPMNEdge_sequenceFlow8" bpmnElement="sequenceFlow8"><omgdi:waypoint x="565" y="250" /><omgdi:waypoint x="615" y="310" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="BPMNEdge_sequenceFlow9" bpmnElement="sequenceFlow9"><omgdi:waypoint x="620" y="110" /><omgdi:waypoint x="535" y="250" /></bpmndi:BPMNEdge><bpmndi:BPMNShape id="BPMNShape_subObject6" bpmnElement="subObject6"><omgdc:Bounds x="810" y="185" height="50" width="90" /></bpmndi:BPMNShape><bpmndi:BPMNEdge id="BPMNEdge_sequenceFlow10" bpmnElement="sequenceFlow10"><omgdi:waypoint x="710" y="170" /><omgdi:waypoint x="810" y="210" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="BPMNEdge_sequenceFlow12" bpmnElement="sequenceFlow12"><omgdi:waypoint x="900" y="210" /><omgdi:waypoint x="950" y="210" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="BPMNEdge_sequenceFlow13" bpmnElement="sequenceFlow13"><omgdi:waypoint x="705" y="310" /><omgdi:waypoint x="950" y="210" /></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</definitions>
http://www.risenshineclean.com/news/8798.html

相關(guān)文章:

  • 上海網(wǎng)站建設(shè)與設(shè)計(jì)公司好百度手機(jī)網(wǎng)頁(yè)版入口
  • 小說(shuō)網(wǎng)站架構(gòu)win10優(yōu)化工具下載
  • 深圳福田做網(wǎng)站百度推廣開戶需要多少錢
  • 網(wǎng)站開發(fā)網(wǎng)站開發(fā)拼多多怎么查商品排名
  • 成品網(wǎng)站 免費(fèi)網(wǎng)絡(luò)推廣的基本方法有哪些
  • 通江網(wǎng)站建設(shè)國(guó)際最新新聞熱點(diǎn)事件
  • 教育行業(yè)網(wǎng)站建設(shè)價(jià)格培訓(xùn)方案
  • 打造公司的網(wǎng)站互聯(lián)網(wǎng)推廣是干什么的
  • 北京做網(wǎng)站好的關(guān)鍵詞熱度分析
  • 網(wǎng)絡(luò)公司給別人做網(wǎng)站的cms是買的授權(quán)么自媒體怎么入門
  • 做網(wǎng)站要用到數(shù)據(jù)庫(kù)嗎東莞網(wǎng)站定制開發(fā)
  • 制作表格的軟件app優(yōu)化大師怎么提交作業(yè)
  • 儀征網(wǎng)站建設(shè)河北網(wǎng)站建設(shè)公司排名
  • 虛擬主機(jī)如何建設(shè)多個(gè)網(wǎng)站企業(yè)網(wǎng)站建設(shè)流程
  • 重慶做網(wǎng)站建設(shè)深圳市seo上詞多少錢
  • js實(shí)現(xiàn)網(wǎng)站浮動(dòng)窗口產(chǎn)品關(guān)鍵詞
  • 烏魯木齊app制作seo引擎優(yōu)化軟件
  • 公司做網(wǎng)站怎么做網(wǎng)頁(yè)制作app
  • 網(wǎng)站做多個(gè)產(chǎn)品google官網(wǎng)瀏覽器
  • 推廣哪些app最掙錢天津seo選天津旗艦科技a
  • 網(wǎng)站建設(shè)電商百度seo手機(jī)
  • 網(wǎng)站與網(wǎng)頁(yè) 主頁(yè)的概念及它們的區(qū)別游戲推廣公司
  • 畢業(yè)設(shè)計(jì)做音樂(lè)網(wǎng)站seo搜索優(yōu)化專員
  • 外貿(mào)網(wǎng)站建設(shè).cover有利于seo優(yōu)化的是
  • 在工商局網(wǎng)站做年報(bào)要交費(fèi)嗎快手流量推廣免費(fèi)網(wǎng)站
  • 網(wǎng)站建設(shè)與管理做什么網(wǎng)站seo優(yōu)化外包顧問(wèn)
  • 怎樣做企業(yè)的網(wǎng)站首頁(yè)微信公眾號(hào)推廣軟文案例
  • 如何在網(wǎng)站上做評(píng)比文案短句干凈治愈
  • 網(wǎng)站做好了前端 后端怎么做自建站模板
  • 建設(shè)的網(wǎng)站百度搜索推廣采取