package com.vci.test.workflow;
|
|
import java.util.List;
|
import java.util.Map;
|
|
import org.jbpm.api.ProcessEngine;
|
import org.jbpm.api.ProcessInstance;
|
import org.jbpm.api.TaskQuery;
|
import org.jbpm.api.TaskService;
|
import org.jbpm.api.task.Task;
|
import org.junit.Test;
|
|
import com.vci.common.utility.ObjectUtility;
|
import com.vci.corba.common.VCIError;
|
import com.vci.server.workflow.objects.FlowInstance;
|
import com.vci.server.workflow.server.template.ProcessTemplateService;
|
|
public class ProcessTemplateServiceTest {
|
|
/**
|
* @throws VCIError
|
*
|
*/
|
@Test
|
public void testStartProcessInstanceByKey() throws VCIError {
|
|
ProcessTemplateService s = new ProcessTemplateService();
|
|
// try {
|
// s.getOutComesByTaskName("120001","任务1");
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// }
|
|
String depolymentID = s.getDepolymentID("分支测试.20001");
|
System.out.println(depolymentID);
|
|
// String processDefinitionKey = "分支测试-3";
|
// FlowInstanceInfo var = new FlowInstanceInfo();
|
// var.applicant = "22222222222";
|
// var.tableName = "PLMxFxKxi6K1X7Jvc";
|
// var.clsfOid="";
|
// var.creator="22222222222";
|
// var.desc="";
|
// var.processType="";
|
// var.processName="流程事件";
|
// String[] objId = new String[]{"1"};
|
// String[] userNames = new String[0];
|
// String outcome = "";
|
// ProcessEngine processEngine = JbpmEngine.getProcessEngine();
|
// Map<String, Object> variables = new HashMap<String, Object>();
|
// variables.put("process_applicant", var.applicant);
|
// variables.put("content", "任务1");
|
// s.startProcessInstanceByKey(processDefinitionKey, var, objId, userNames, outcome);
|
// Map<String,String[]> taskAndUserMap = new HashMap<String,String[]>();
|
// taskAndUserMap.put("任务", new String[]{"1"});
|
// taskAndUserMap.put("任务2", new String[]{"3"});
|
// taskAndUserMap.put("任务3", new String[]{"4"});
|
|
//流程启动
|
// BaseService bs = new BaseService();
|
// UserEntity userEntity= new UserEntity();
|
// userEntity.setUserName(var.applicant);
|
// bs.setUserEntity(userEntity);
|
// s.startProcessInstanceByKey(processDefinitionKey, var, objId, userNames, outcome);
|
// s.completeTask(taskId, outcome, nextTaskName, approvalNote, userNames);
|
// TaskService taskService = processEngine.getTaskService();
|
// ExecutionService executionService = processEngine.getExecutionService();
|
// ExecutionImpl e = (ExecutionImpl)executionService.findProcessInstanceById("123123.1820001");
|
// Task task = taskService.createTaskQuery().processInstanceId("123123.1850001").uniqueResult();
|
// s.completeTask(task.getId(), outcome, "", "tongi", userNames);
|
// try {
|
// taskService.addTaskParticipatingUser(task.getId(),
|
// "123", Participation.CANDIDATE);
|
// List<Participation> taskParticipations = taskService.getTaskParticipations(task.getId());
|
// taskService.completeTask(task.getId());
|
// } catch (Exception e) {
|
// e.getMessage();
|
// e.printStackTrace();
|
// }
|
|
// try {
|
// BigDecimal deploymentID = s.getDeploymentID("测试发起流程时设置责任人-2");
|
// String jbpmDeploymentId = deploymentID.toString();
|
// String[] allTaskNames = s.getAllTaskNames(jbpmDeploymentId);
|
// for(String string: allTaskNames){
|
// System.out.println(string);
|
// }
|
// } catch (VCIError e) {
|
// String[] error_message = e.error_message;
|
// String string = error_message[0];
|
// e.printStackTrace();
|
// }
|
// try {
|
// s.completeTask(task.getId(), "", "任务2", "", new String[]{"123","456"});
|
// } catch (VCIError e) {
|
// e.printStackTrace();
|
// }//(new String[]{"123","456"}, "测试发起流程时设置责任人.1730006", "任务2");
|
//ProcessDefinitionImpl pdI = new ProcessDefinitionImpl();
|
// ExecutionService executionService= processEngine.getExecutionService();
|
// RepositoryService repositoryService = processEngine.getRepositoryService();
|
//
|
// EnvironmentImpl envImpl = ((EnvironmentFactory)processEngine).openEnvironment();
|
// ExecutionImpl e = (ExecutionImpl)executionService.findProcessInstanceById(proccessInstanceId);
|
// ActivityImpl currentActivityImpl = e.getActivity();
|
// ProcessDefinitionImpl processDefinitionImpl = currentActivityImpl.getProcessDefinition();
|
// List<? extends Activity> activities = processDefinitionImpl.getActivities();
|
// for(Activity a : activities){
|
// ActivityImpl at = (ActivityImpl)a;
|
// ActivityBehaviour activityBehaviour = at.getActivityBehaviour();
|
// if(activityBehaviour instanceof TaskActivity){
|
// TaskActivity ta = (TaskActivity)activityBehaviour;
|
// TaskDefinitionImpl taskDefinition = ta.getTaskDefinition();
|
//
|
// String assigneeExpression = taskDefinition.getAssigneeExpression();
|
// String candidateUsersExpression = taskDefinition.getCandidateUsersExpression();
|
// System.out.println("Task:"+taskDefinition.getName()+"--- 用户assigneeExpression:"+assigneeExpression);
|
// System.out.println("Task:"+taskDefinition.getName()+"--- 用户candidateUsersExpression:"+candidateUsersExpression);
|
// taskDefinition.setAssigneeExpression("t1");
|
// taskDefinition.setCandidateUsersExpression("t2,t3");
|
// System.out.println("Tasknew:"+taskDefinition.getName()+"--- 用户assigneeExpression:"+taskDefinition.getAssigneeExpression());
|
// System.out.println("Tasknew:"+taskDefinition.getName()+"--- 用户candidateUsersExpression:"+taskDefinition.getCandidateUsersExpression());
|
//// taskService.addTaskParticipatingUser(,
|
//// null, Participation.CANDIDATE);
|
//
|
// }
|
// }
|
// catch (Exception e) {
|
// TODO Auto-generated catch block
|
// e.printStackTrace();
|
// }
|
|
// Task nextTask = taskService.createTaskQuery()
|
// .processInstanceId(task.getExecutionId())
|
// .uniqueResult();
|
// String[] nextTaskCandidateUsers = s.nextTaskCandidateUsers(task.getExecutionId(),nextTask.getName());
|
// for(String s1 : nextTaskCandidateUsers){
|
// System.out.println(s1);
|
// }
|
// taskService.removeTaskParticipatingUser(taskId, userId, participationType);
|
// taskService.addTaskParticipatingUser(nextTask.getId(),
|
// null, Participation.CANDIDATE);
|
// identityService.createUser("123", "", "");
|
|
|
// BigDecimal deploymentID = s.getDeploymentID("分支-4");
|
// String jbpmDeploymentId = deploymentID.toString();
|
// try {
|
// //获取分支对应的任务节点
|
// s.getAllTaskNames(jbpmDeploymentId);
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// }
|
|
|
|
// startProcess(processDefinitionKey, processEngine, variables);
|
// getForInfo(processDefinitionKey, processEngine, variables);
|
// completeTask(processDefinitionKey, processEngine, variables);
|
// try {
|
// s.getCurCandidates("", "", outcome);
|
// } catch (Exception e) {
|
// // TODO Auto-generated catch block
|
// e.printStackTrace();
|
// }
|
// System.out.println(WorkFlowCahe.getTemplateMap());
|
}
|
|
/**
|
* 流程启动
|
* @param processDefinitionKey
|
* @param processEngine
|
* @param variables
|
*/
|
private void startProcess(String processDefinitionKey,
|
ProcessEngine processEngine, Map<String, Object> variables) {
|
//System.out.println("startProcessInstanceById开始!");
|
ProcessInstance processInstance = processEngine.getExecutionService().startProcessInstanceById(processDefinitionKey, variables);
|
//System.out.println("startProcessInstanceById结束!");
|
FlowInstance flowInstance = new FlowInstance();
|
String flowInstanceId = ObjectUtility.getNewObjectID36();
|
flowInstance.setId(flowInstanceId);
|
String proccessInstanceId = processInstance.getId();
|
TaskService taskService = processEngine.getTaskService();
|
TaskQuery activityName = processEngine.getTaskService().createTaskQuery().processInstanceId(proccessInstanceId).activityName("任务1");
|
Task task = activityName.uniqueResult();
|
//System.out.println(task.getActivityName());
|
taskService.completeTask(task.getId());
|
}
|
|
private void getForInfo(String processDefinitionKey,
|
ProcessEngine processEngine, Map<String, Object> variables){
|
List<Task> findPersonalTasks = processEngine.getTaskService().findPersonalTasks("2222222222222");
|
for(Task task : findPersonalTasks){
|
System.out.println(task.getActivityName());
|
}
|
}
|
|
private void completeTask(String processDefinitionKey,
|
ProcessEngine processEngine, Map<String, Object> variables){
|
// ProcessInstanceQuery processInstanceKey = processEngine.getExecutionService().createProcessInstanceQuery().processDefinitionId("");
|
// ProcessInstance uniqueResult = processInstanceKey.uniqueResult();
|
// String proccessInstanceId = uniqueResult.getId();
|
TaskService taskService = processEngine.getTaskService();
|
TaskQuery activityName = processEngine.getTaskService().createTaskQuery().activityName("任务2");
|
Task task = activityName.list().get(0);
|
taskService.completeTask(task.getId(),"同意");
|
|
|
// String processInstanceId = uniqueResult.getId();
|
// List<Task> subTasks = taskService.getSubTasks("");
|
|
// List<Task> joinTask=taskService.getSubTasks("60001");
|
// System.out.println(joinTask);
|
}
|
|
private void deleteTask(String processDefinitionKey,
|
ProcessEngine processEngine, Map<String, Object> variables){
|
TaskService taskService = processEngine.getTaskService();
|
taskService.deleteTask("");
|
}
|
// @Test
|
// public void testCompleteTask() {
|
// fail("Not yet implemented");
|
// }
|
|
// public static void main(String[] args) {
|
// ProcessTemplateService service = new ProcessTemplateService();
|
// Map<String, String[]> taskAndUserMap = new HashMap<String, String[]>();
|
// taskAndUserMap.put("task", new String[]{"1","2"});
|
// service.configTaskAndUser("dddd", new String[]{"dddss"}, taskAndUserMap);
|
// }
|
}
|