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 variables = new HashMap(); // variables.put("process_applicant", var.applicant); // variables.put("content", "任务1"); // s.startProcessInstanceByKey(processDefinitionKey, var, objId, userNames, outcome); // Map taskAndUserMap = new HashMap(); // 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 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 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 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 variables){ List findPersonalTasks = processEngine.getTaskService().findPersonalTasks("2222222222222"); for(Task task : findPersonalTasks){ System.out.println(task.getActivityName()); } } private void completeTask(String processDefinitionKey, ProcessEngine processEngine, Map 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 subTasks = taskService.getSubTasks(""); // List joinTask=taskService.getSubTasks("60001"); // System.out.println(joinTask); } private void deleteTask(String processDefinitionKey, ProcessEngine processEngine, Map 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 taskAndUserMap = new HashMap(); // taskAndUserMap.put("task", new String[]{"1","2"}); // service.configTaskAndUser("dddd", new String[]{"dddss"}, taskAndUserMap); // } }