一 连线流程(SequenceFlow)
另一条线的设置如下:
代码如下:
public void queryAndExecTasks(String deployId){
ProcessEngine engine=ProcessEngines.getDefaultProcessEngine();
//获得流程执行服务类对象
RuntimeService runServ=engine.getRuntimeService();
//获得任务管理服务类对象
TaskService taskServ=engine.getTaskService();
TaskQuery taskQuery= taskServ.createTaskQuery().deploymentId(deployId);
List<Task> taskList=taskQuery.orderByTaskCreateTime().asc().list();
Map<String, Object> varMap=null;
for(Task task:taskList){
if(task.getTaskDefinitionKey().equals("leaveApply01")){
System.out.println("当前进行流程第一步,进行第一步流程变量定义");
LeaveVariableEntity variableEntity=new LeaveVariableEntity();
variableEntity.setLeavePerson(task.getAssignee());
variableEntity.setReason("回家结婚");
variableEntity.setHours(8);
runServ.setVariable(task.getProcessInstanceId(), "leave01", variableEntity);
}
if(task.getTaskDefinitionKey().equals("managerApprove02")){
//${msg=='unimportant'}
varMap=new HashMap<String, Object>();
varMap.put("msg", "important");
System.out.println("当前进行流程第二步,获取上一步流程变量");
LeaveVariableEntity processVariableEntity=runServ.getVariable(task.getProcessInstanceId(), "leave01", LeaveVariableEntity.class);
System.out.println("请假人:"+processVariableEntity.getLeavePerson()+",原因:"+processVariableEntity.getReason()+",请假时间:"+processVariableEntity.getHours());
}
System.out.println("taskId:"+task.getId()+",taskName:"+task.getName()+",办理人assinger:"+task.getAssignee());
if(varMap!=null && varMap.get("msg").equals("important")){
System.out.println("第二步设置流程变量"+varMap.get("msg")+",指示下一步要不要执行");
taskServ.complete(task.getId(),varMap);
}else{
taskServ.complete(task.getId());
}
System.out.println(