Package com.founder.fix.fixflow.core.impl.command

Examples of com.founder.fix.fixflow.core.impl.command.ExpandTaskCommand


    this.expandTaskComplete(expandTaskCommandClaim, null);
  }

 
  public void claim(String taskId, String claimUserId) {
    ExpandTaskCommand expandTaskCommandClaim=new ExpandTaskCommand();
    expandTaskCommandClaim.setCommandType("claim");
    expandTaskCommandClaim.setTaskId(taskId);
    this.expandTaskComplete(expandTaskCommandClaim, null);   
  }
View Full Code Here


 
 

  public void release(String taskId){
    ExpandTaskCommand expandTaskCommandClaim=new ExpandTaskCommand();
    expandTaskCommandClaim.setCommandType("releaseTask");
    expandTaskCommandClaim.setTaskId(taskId);
    this.expandTaskComplete(expandTaskCommandClaim, null);
  }
View Full Code Here

   * 测试暂停和恢复任务,暂停和恢复需成对出现,暂停任务后,任务为暂停状态,只可以有恢复按钮
   */
  @Deployment(resources = { "com/founder/fix/fixflow/test/engine/api/task/TaskServiceNewTest.bpmn"})
  public void testSuspendAndContinueTask(){
    //创建一个通用命令
    ExpandTaskCommand expandTaskCommand = new ExpandTaskCommand();
    //设置流程名
    expandTaskCommand.setProcessDefinitionKey("TaskServiceNewTest");
    //设置流程的业务关联键
    expandTaskCommand.setBusinessKey("BK_testStartProcessInstanceByKey");
    //命令类型,可以从流程引擎配置中查询   启动并提交为startandsubmit
    expandTaskCommand.setCommandType("startandsubmit");
    //设置提交人
    expandTaskCommand.setInitiator("1200119390");
    //设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //执行这个启动并提交的命令,返回启动的流程实例
    ProcessInstance processInstance = (ProcessInstance)taskService.expandTaskComplete(expandTaskCommand, null);
    String processInstanceId = processInstance.getId();
    //验证是流程实例是否存在
    assertNotNull(processInstanceId);
   
    // 创建任务查询
    TaskQuery taskQuery = taskService.createTaskQuery();
    // 查找 1200119390 的这个流程实例的当前独占任务
    List<TaskInstance> taskInstances = taskQuery.taskAssignee("1200119390").processInstanceId(processInstanceId).taskNotEnd().list();
    //取得当前任务
    TaskInstance taskInstance = taskInstances.get(0);
   
    //暂停任务前,任务为非暂停状态
    assertEquals(taskInstance.isSuspended(),false);
    //创建通用命令
    ExpandTaskCommand expandTaskCommandSuspendTask=new ExpandTaskCommand();
    //设置命令为暂停任务
    expandTaskCommandSuspendTask.setCommandType("suspendTask");
    //设置命令按钮的iD,与节点上处理命令设置一致
    expandTaskCommandSuspendTask.setUserCommandId("HandleCommand_9");
    //设置命令的处理任务号
    expandTaskCommandSuspendTask.setTaskId(taskInstance.getId());
    //执行这个暂停任务的命令
    taskService.expandTaskComplete(expandTaskCommandSuspendTask, null);
   
    taskQuery = taskService.createTaskQuery();
    // 查找 1200119390 的这个流程实例的当前独占任务
    taskInstance = taskQuery.taskAssignee("1200119390").processInstanceId(processInstanceId).taskNotEnd().list().get(0);
    //暂停任务后,验证任务为暂停状态
    assertEquals(taskInstance.isSuspended(),true);
   
   
    //创建通用命令
    ExpandTaskCommand expandTaskCommandContinueTask=new ExpandTaskCommand();
    //设置命令为恢复任务
    expandTaskCommandContinueTask.setCommandType("continueTask");
    //设置命令按钮的iD,与节点上处理命令设置一致
    expandTaskCommandContinueTask.setUserCommandId("HandleCommand_10");
    //设置命令的处理任务号
    expandTaskCommandContinueTask.setTaskId(taskInstance.getId());
    //执行这个恢复任务的命令
    taskService.expandTaskComplete(expandTaskCommandContinueTask, null);
    //重置任务查询
    taskQuery = taskService.createTaskQuery();
    // 查找 1200119390 的这个流程实例的当前独占任务
View Full Code Here

   * 测试流程持久化变量,持久化变量是保存在数据库中,设置一次,在整个流程实例中均可使用
   */
  @Deployment(resources = { "com/founder/fix/fixflow/test/engine/api/runtime/ProcessVariablesTest.bpmn"})
  public void testVariables(){
    //创建一个通用命令
    ExpandTaskCommand expandTaskCommand = new ExpandTaskCommand();
    //设置流程名
    expandTaskCommand.setProcessDefinitionKey("ProcessVariablesTest");
    //设置流程的业务关联键
    expandTaskCommand.setBusinessKey("BK_ProcessVariablesTest");
    //命令类型,可以从流程引擎配置中查询   启动并提交为startandsubmit
    expandTaskCommand.setCommandType("startandsubmit");
    //设置提交人
    expandTaskCommand.setInitiator("1200119390");
    //设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //执行这个启动并提交的命令,返回启动的流程实例
    ProcessInstance processInstance = (ProcessInstance)taskService.expandTaskComplete(expandTaskCommand, null);
    String processInstanceId = processInstance.getId();
    //验证是否成功启动
    assertNotNull(processInstanceId);
View Full Code Here

   * 测试流程瞬态变量,瞬态变量是存在线程副本里,在一个线程的生命周期内可以使用   流程排他网关设置如果瞬态变量可用则走User_Task3节点
   */
  @Deployment(resources = { "com/founder/fix/fixflow/test/engine/api/runtime/ProcessVariablesTest.bpmn"})
  public void testTransientVariables(){
    //创建一个通用命令
    ExpandTaskCommand expandTaskCommand = new ExpandTaskCommand();
    //设置流程名
    expandTaskCommand.setProcessDefinitionKey("ProcessVariablesTest");
    //设置流程的业务关联键
    expandTaskCommand.setBusinessKey("BK_ProcessVariablesTest");
    //命令类型,可以从流程引擎配置中查询   启动并提交为startandsubmit
    expandTaskCommand.setCommandType("startandsubmit");
    //设置提交人
    expandTaskCommand.setInitiator("1200119390");
    //设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //执行这个启动并提交的命令,返回启动的流程实例
    ProcessInstance processInstance = (ProcessInstance)taskService.expandTaskComplete(expandTaskCommand, null);
    String processInstanceId = processInstance.getId();
    //验证是否成功启动
    assertNotNull(processInstanceId);
View Full Code Here

    String nodeId = taskInstance.getNodeId();
    // 验证流程实例是否在第一个节点
    assertEquals(nodeId, "UserTask_1");
   
    // 创建一个启动并提交命令
    ExpandTaskCommand expandTaskCommand = new ExpandTaskCommand();
    // 设置流程名
    expandTaskCommand.setProcessDefinitionKey("ConnectorTest");
    // 设置流程的业务关联键
    expandTaskCommand.setBusinessKey("1234567890");
    // 命令类型,可以从流程引擎配置中查询 启动并提交为startandsubmit
    expandTaskCommand.setCommandType("startandsubmit");
    // 设置提交人
    expandTaskCommand.setInitiator("1200119390");
    // 设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    // 执行这个启动并提交的命令,返回启动的流程实例
    ProcessInstance processInstance = (ProcessInstance) taskService.expandTaskComplete(expandTaskCommand, null);
    processInstanceId = processInstance.getId();
   
    // 验证是否成功启动
View Full Code Here

    deploymentIdTemp = deploymentBuilder2.deploy().getId();
    assertNotNull(deploymentIdTemp);
   
    // 启动测试流程
    // 创建一个启动并提交命令
    ExpandTaskCommand expandTaskCommand = new ExpandTaskCommand();
    // 设置流程名
    expandTaskCommand.setProcessDefinitionKey("CallActivityTest");
    // 设置流程的业务关联键
    expandTaskCommand.setBusinessKey("1234567890");
    // 命令类型,可以从流程引擎配置中查询 启动并提交为startandsubmit
    expandTaskCommand.setCommandType("startandsubmit");
    // 设置提交人
    expandTaskCommand.setInitiator("1200119390");
    // 设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //设置数据变量
//    expandTaskCommand.setTransientVariables(transientVariables);
    // 执行这个启动并提交的命令,返回启动的流程实例
    ProcessInstance processInstance = (ProcessInstance) taskService.expandTaskComplete(expandTaskCommand, null);
    // 拿到流程实例ID
    String mainProcessInstanceId = processInstance.getId();
    // 验证是否成功启动
    assertNotNull(mainProcessInstanceId);
    //创建流程实例查询
    ProcessInstanceQuery processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //拿到子流程实例
    ProcessInstance subProcessInstance = processInstanceQuery.processDefinitionKey("SubProcessTest").singleResult();
    //验证是否为设置的子流程
    assertEquals("SubProcessTest", subProcessInstance.getProcessDefinitionKey());
    //主流程的任务应该没有了,查询子流程中的任务
    TaskQuery taskQuery = taskService.createTaskQuery();
    // 查找 1200119390 的这个流程实例的当前独占任务
    List<TaskInstance> taskInstances = taskQuery.taskAssignee("1200119390").processInstanceId(subProcessInstance.getId()).taskNotEnd().list();
    TaskInstance taskInstance = taskInstances.get(0);
    //启动子流程,并且令牌停留在UserTask_1节点
    assertEquals("UserTask_1", taskInstance.getNodeId());

    //下面是正常走SubProcess流程
    //===========================================================================
    // 创建一个启动并提交命令
    expandTaskCommand = new ExpandTaskCommand();
    // 设置流程名
    expandTaskCommand.setProcessDefinitionKey("SubProcessTest");
    // 设置流程的业务关联键
    expandTaskCommand.setBusinessKey("1234567890");
    // 命令类型,可以从流程引擎配置中查询 启动并提交为startandsubmit
    expandTaskCommand.setCommandType("submit");
    // 设置提交人
    expandTaskCommand.setInitiator("1200119390");
    // 设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //设置任务编号
    expandTaskCommand.setTaskId(taskInstance.getId());
    //设置数据变量
//        expandTaskCommand.setTransientVariables(transientVariables);

    // 执行这个启动并提交的命令,返回启动的流程实例
    processInstance = (ProcessInstance) taskService.expandTaskComplete(expandTaskCommand, null);
    // 拿到流程实例ID
    String subProcessInstanceId = subProcessInstance.getId();
    // 验证是否成功启动
    assertNotNull(subProcessInstanceId);
    // 查找 1200119390 的这个流程实例的当前独占任务
    taskInstances = taskQuery.taskAssignee("1200119390").processInstanceId(subProcessInstanceId).taskNotEnd().list();
    taskInstance = taskInstances.get(0);
    //启动子流程,并且令牌停留在UserTask_2节点
    assertEquals("UserTask_2", taskInstance.getNodeId());
    //创建一个处理命令
    expandTaskCommand = new ExpandTaskCommand();
    // 设置流程名
    expandTaskCommand.setProcessDefinitionKey("SubProcessTest");
    // 设置流程的业务关联键
    expandTaskCommand.setBusinessKey("1234567890");
    // 命令类型,通用按钮
    expandTaskCommand.setCommandType("general");
    // 设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //设置任务ID
    expandTaskCommand.setTaskId(taskInstance.getId());
    //执行处理命令
    taskService.expandTaskComplete(expandTaskCommand, null);
    taskInstances = taskQuery.taskAssignee("1200119390").processInstanceId(subProcessInstanceId).taskNotEnd().list();
    taskInstance = taskInstances.get(0);
    //令牌停留在UserTask_3节点
    assertEquals("UserTask_3", taskInstance.getNodeId());
    //创建一个处理命令
    expandTaskCommand = new ExpandTaskCommand();
    // 设置流程名
    expandTaskCommand.setProcessDefinitionKey("SubProcessTest");
    // 设置流程的业务关联键
    expandTaskCommand.setBusinessKey("1234567890");
    // 命令类型,通用按钮
    expandTaskCommand.setCommandType("general");
    // 设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //设置任务ID
    expandTaskCommand.setTaskId(taskInstance.getId());
    //执行处理命令
    taskService.expandTaskComplete(expandTaskCommand, null);
    taskInstances = taskQuery.taskAssignee("1200119390").processInstanceId(subProcessInstanceId).taskNotEnd().list();
    taskInstance = taskInstances.get(0);
    //令牌停留在UserTask_4节点
    assertEquals("UserTask_4", taskInstance.getNodeId());
    //创建一个处理命令
    expandTaskCommand = new ExpandTaskCommand();
    // 设置流程名
    expandTaskCommand.setProcessDefinitionKey("SubProcessTest");
    // 设置流程的业务关联键
    expandTaskCommand.setBusinessKey("1234567890");
    // 命令类型,通用按钮
    expandTaskCommand.setCommandType("general");
    // 设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //设置任务ID
    expandTaskCommand.setTaskId(taskInstance.getId());
    //执行处理命令
    taskService.expandTaskComplete(expandTaskCommand, null);
    taskInstances = taskQuery.taskAssignee("1200119390").processInstanceId(subProcessInstanceId).taskNotEnd().list();
    //全部走完,任务为空
    assertEquals(0, taskInstances.size());
View Full Code Here

   * @throws InterruptedException
   */
  @Deployment(resources = { "com/founder/fix/fixflow/test/engine/api/task/TaskServiceNewTest.bpmn"})
  public void testTaskInstanceQueryExpandQuery(){
    //创建一个通用命令
    ExpandTaskCommand expandTaskCommand = new ExpandTaskCommand();
    //设置流程名
    expandTaskCommand.setProcessDefinitionKey("TaskServiceNewTest");
    //设置流程的业务关联键
    expandTaskCommand.setBusinessKey("BK_testStartProcessInstanceByKey");
    //命令类型,可以从流程引擎配置中查询   启动并提交为startandsubmit
    expandTaskCommand.setCommandType("startandsubmit");
    //设置提交人
    expandTaskCommand.setInitiator("1200119390");
    //设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //执行这个启动并提交的命令,返回启动的流程实例
    ProcessInstance processInstance = (ProcessInstance)taskService.expandTaskComplete(expandTaskCommand, null);
    String processInstanceId = processInstance.getId();
    //验证是否成功启动
    assertNotNull(processInstanceId);
View Full Code Here

      }
    }
    assertNotNull(startAndSubmitCommand);
    /*********3.处理提交表单toolbar***********************/
    //创建一个通用命令
    ExpandTaskCommand expandTaskCommand = new ExpandTaskCommand();
    //设置流程名
    expandTaskCommand.setProcessDefinitionKey("TaskServiceNewTest");
    //设置流程的业务关联键
    expandTaskCommand.setBusinessKey("BK_testStartProcessInstanceByKey");
    //命令类型
    expandTaskCommand.setCommandType(startAndSubmitCommand.getTaskCommandType());
    //设置提交人
    expandTaskCommand.setInitiator("1200119390");
    //设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId(startAndSubmitCommand.getId());
    //执行这个启动并提交的命令,返回启动的流程实例
    ProcessInstance processInstance = (ProcessInstance)taskService.expandTaskComplete(expandTaskCommand, null);
    String processInstanceId = processInstance.getId();
    //验证是否成功启动
    assertNotNull(processInstanceId);
   
    /*********4.获取第二个任务节点的任务【查询代办任务】***********************/
    // 创建任务查询
    TaskQuery taskQuery = taskService.createTaskQuery();
    // 查找 1200119390 的这个流程实例的当前独占任务
    List<TaskInstance> taskInstances = taskQuery.taskAssignee("1200119390").processInstanceId(processInstanceId).taskNotEnd().list();
    // 获取一条任务
    TaskInstance taskInstance = taskInstances.get(0);
    //验证这个待办是否为空
    assertNotNull(taskInstance);
    String nodeId = taskInstance.getNodeId();
    //验证流程实例是否在第二个节点
    assertEquals(nodeId, "UserTask_2");
   
    /*********5.打开第二个任务节点表单***********************/
   
    //获取任务节点上的formUrl
    String taskFormUrl = taskInstance.getFormUri();
    //验证是否为配置的add
    assertEquals("add", taskFormUrl);
   
    /*********6.获取第二个任务节点toolbar***********************/
    //创建流程定义查询
    ProcessDefinitionQuery processDefinitionQuery = modelService.createProcessDefinitionQuery();
    //获取流程定义
    ProcessDefinitionBehavior processDefinition = processDefinitionQuery.processDefinitionKey("TaskServiceNewTest").singleResult();
    //获取流程定义编号   页面上用的时候应该能拿到流程定义号,就不用这样取了。
    String processDefinitionId = processDefinition.getProcessDefinitionId();
    //获取节点上的处理命令
    List<TaskCommandInst> taskCommandList= taskService.getTaskCommandById(processDefinitionId, nodeId);
    assertNotNull(taskCommandList);
   
    /*********7.完成第二个节点处理命令***********************/
    TaskCommandInst generalTaskCommand = null;
    for(int i = 0;i < taskCommandList.size(); i++){
      if("general".equals(taskCommandList.get(i).getTaskCommandType())){
        generalTaskCommand = taskCommandList.get(i);
      }
    }
    assertNotNull(generalTaskCommand);
   
    //创建通用命令
    ExpandTaskCommand expandTaskCommandGeneral=new ExpandTaskCommand();
    //设置命令为领取任务
    expandTaskCommandGeneral.setCommandType("general");
    //设置命令的ID,需和节点上配置的按钮编号对应,会执行其中脚本
    expandTaskCommandGeneral.setUserCommandId("HandleCommand_2");
    //设置命令的处理任务号
    expandTaskCommandGeneral.setTaskId(taskInstance.getId());
    //领取任务
    taskService.expandTaskComplete(expandTaskCommandGeneral, null);
   
    //创建流程实例查询
    ProcessInstanceQuery processInstanceQuery = runtimeService.createProcessInstanceQuery();
View Full Code Here

  public void testProcessInstanceQuery() throws InterruptedException{
   
    Date date = null;
    for(int i = 0;i<10;i++){
      //创建一个通用命令
      ExpandTaskCommand expandTaskCommand = new ExpandTaskCommand();
      //设置流程名
      expandTaskCommand.setProcessDefinitionKey("Process_TaskServiceTest");
      //设置流程的业务关联键
      expandTaskCommand.setBusinessKey("BK_testStartProcessInstanceByKey");
      //命令类型,可以从流程引擎配置中查询   启动并提交为startandsubmit
      expandTaskCommand.setCommandType("startandsubmit");
      //设置提交人
      expandTaskCommand.setInitiator("1200119390");
      //设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
      expandTaskCommand.setUserCommandId("HandleCommand_2");
     
     
      Map<String, Object> mapVariables = new HashMap<String, Object>();
      //设置变量,流程线条上用到,amount<300时走独占任务,否则都共享任务
      int amount = 280+i;
      mapVariables.put("amount", amount);
      expandTaskCommand.setTransientVariables(mapVariables);
      //执行这个启动并提交的命令,返回启动的流程实例
      ProcessInstance processInstance = (ProcessInstance)taskService.expandTaskComplete(expandTaskCommand, null);
      String processInstanceId = processInstance.getId();
      //取得第六个流程启动时的时间,用来验证大于或小于开始时间的查询
      if(i == 6){
        date = processInstance.getStartTime();
      }
      //验证是否成功启动
      assertNotNull(processInstanceId);
      //暂停1000毫秒,用来验证order by
      Thread.sleep(1000);
    }
    //流程实例查询
    ProcessInstanceQuery processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //根据流程定义key查询
    List<ProcessInstance> processInstances = processInstanceQuery.processDefinitionKey("Process_TaskServiceTest").list();
    //验证是10条流程实例
    assertEquals(10, processInstances.size());
   
    //重置流程实例查询
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //流程实例key的集合
    List<String> definitionKeys = new ArrayList<String>();
    definitionKeys.add("Process_TaskServiceTest");
    //根据key的集合查询实例
    processInstances = processInstanceQuery.processDefinitionKey(definitionKeys).list();
    //验证10条查询结果
    assertEquals(10, processInstances.size());
   
    //根据开始时间降序查询
    processInstanceQuery.orderByStartTime().desc();
    //获取第一页的0-5条结果
    processInstances = processInstanceQuery.listPage(1, 5);
    //获取第二页5-10条结果
    List<ProcessInstance> tmpProcessInstances = processInstanceQuery.listPage(6, 10);
    //取得第一条结果
    Date firstStartTime = processInstances.get(0).getStartTime();
    //验证比本页所有的时间都大,表示降序排序正确
    for(int i = 1;i < processInstances.size();i++){
      Date tmpStartTime = processInstances.get(i).getStartTime();
      assertTrue(firstStartTime.after(tmpStartTime));
    }
    //验证比第二页所有的时间都大,表示降序排序正确
    for(int i = 0;i<tmpProcessInstances.size();i++){
      Date tmpStartTime = tmpProcessInstances.get(i).getStartTime();
      assertTrue(firstStartTime.after(tmpStartTime));
    }
   
    //需要重置查询,因为order by 有叠加效果
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    processInstanceQuery.processDefinitionKey(definitionKeys);
    //根据开始时间升序排序
    processInstanceQuery.orderByStartTime().asc();
    //获取第一页的0-5条结果
    processInstances = processInstanceQuery.listPage(1, 5);
    //获取第二页5-10条结果
    tmpProcessInstances = processInstanceQuery.listPage(6, 10);
    //取得第一条结果
    firstStartTime = processInstances.get(0).getStartTime();
    //验证比本页所有的时间都小,表示升序正确
    for(int i = 1;i < processInstances.size();i++){
      Date tmpStartTime = processInstances.get(i).getStartTime();
      assertTrue(firstStartTime.before(tmpStartTime));
    }
    //验证比第二页所有的时间都小,表示升序正确
    for(int i = 0;i<tmpProcessInstances.size();i++){
      Date tmpStartTime = tmpProcessInstances.get(i).getStartTime();
      assertTrue(firstStartTime.before(tmpStartTime));
    }
   
   
    //需要重置查询,因为order by 有叠加效果
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    processInstanceQuery.processDefinitionKey(definitionKeys);
    //根据更新时间升序排序
    processInstanceQuery.orderByUpdateTime().asc();
    //获取第一页的0-5条结果
    processInstances = processInstanceQuery.listPage(1, 5);
    //获取第二页5-10条结果
    tmpProcessInstances = processInstanceQuery.listPage(6, 10);
    //取得第一条结果
    firstStartTime = processInstances.get(0).getUpdateTime();
    //验证比本页所有的时间都小,表示升序正确
    for(int i = 1;i < processInstances.size();i++){
      Date tmpStartTime = processInstances.get(i).getUpdateTime();
      assertTrue(firstStartTime.before(tmpStartTime));
    }
    //验证比第二页所有的时间都小,表示升序正确
    for(int i = 0;i<tmpProcessInstances.size();i++){
      Date tmpStartTime = tmpProcessInstances.get(i).getUpdateTime();
      assertTrue(firstStartTime.before(tmpStartTime));
    }
   
   
   
    //需要重置查询,因为order by 有叠加效果
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    processInstanceQuery.processDefinitionKey(definitionKeys);
    //根据更新时间降序序排序
    processInstanceQuery.orderByUpdateTime().desc();
    //获取第一页的0-5条结果
    processInstances = processInstanceQuery.listPage(1, 5);
    //获取第二页5-10条结果
    tmpProcessInstances = processInstanceQuery.listPage(6, 10);
    //取得第一条结果
    firstStartTime = processInstances.get(0).getUpdateTime();
    //验证比本页所有的时间都小,表示降序正确
    for(int i = 1;i < processInstances.size();i++){
      Date tmpStartTime = processInstances.get(i).getUpdateTime();
      assertTrue(firstStartTime.after(tmpStartTime));
    }
    //验证比第二页所有的时间都小,表示降序正确
    for(int i = 0;i<tmpProcessInstances.size();i++){
      Date tmpStartTime = tmpProcessInstances.get(i).getUpdateTime();
      assertTrue(firstStartTime.after(tmpStartTime));
    }
   
   
    //验证小于开始时间的查询
    //重置查询
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //查询开始时间小于某个时间的流程实例(时间在方法开始时定义)
    processInstances = processInstanceQuery.processDefinitionKey("Process_TaskServiceTest").startTimeBefore(date).list();
    //验证是否有4个
    assertEquals(4, processInstances.size());
   
    //验证大于开始时间的查询
    //重置查询
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //查询开始时间大于某个时间的流程实例(时间在方法开始时定义)
    processInstances = processInstanceQuery.processDefinitionKey("Process_TaskServiceTest").startTimeAfter(date).list();
    //验证是否有6个
    assertEquals(7, processInstances.size());
   
    //重置查询
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //查询未结束的流程实例
    processInstances = processInstanceQuery.processDefinitionKey("Process_TaskServiceTest").notEnd().list();
    //验证是否有10个
    assertEquals(10, processInstances.size());
   
    //重置查询
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //查询已结束的流程实例
    processInstances = processInstanceQuery.processDefinitionKey("Process_TaskServiceTest").isEnd().list();
    //验证是否有0个
    assertEquals(0, processInstances.size());
   
   
    //重置查询
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //查询对应bizKey的流程实例
    processInstances = processInstanceQuery.processDefinitionKey("Process_TaskServiceTest").processInstanceBusinessKey("BK_testStartProcessInstanceByKey").list();
    //验证是否有10个
    assertEquals(10, processInstances.size());
   
    //重置查询
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //查询对应bizKey的流程实例
    long count = processInstanceQuery.processDefinitionKey("Process_TaskServiceTest").processInstanceStatus(ProcessInstanceType.RUNNING).count();
    //验证是否有10个
    assertEquals(10, count);
   
    //重置查询
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //查询对应bizKey的流程实例(方法2)
    processInstances = processInstanceQuery.processInstanceBusinessKey("BK_testStartProcessInstanceByKey","Process_TaskServiceTest").list();
    //验证是否有10个
    assertEquals(10, processInstances.size());
   
    //重置查询
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //查询某人发起的流程实例
    processInstances = processInstanceQuery.processDefinitionKey("Process_TaskServiceTest").initiator("1200119390").list();
    //验证是否有10个
    assertEquals(10, processInstances.size());
   
    //重置查询
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //查询流程定义名称like“TaskServiceTes”的流程实例
    processInstances = processInstanceQuery.processDefinitionNameLike("TaskServiceTes").list();
    //验证是否有10个
    assertEquals(10, processInstances.size());
   
    //重置查询
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //查询流程定义名称等于“TaskServiceTest”的流程实例
    processInstances = processInstanceQuery.processDefinitionName("TaskServiceTest").list();
    //验证是否有10个
    assertEquals(10, processInstances.size());
   
   
    String processInstanceId = processInstances.get(0).getId();
    TaskQuery taskQuery = taskService.createTaskQuery();
    taskQuery.processInstanceId(processInstanceId).taskNotEnd();
    TaskInstance taskInstance = taskQuery.list().get(0);
   
    Date begin = new Date();
    //创建通用命令
    ExpandTaskCommand expandTaskCommandGeneral=new ExpandTaskCommand();
    //设置命令为处理
    expandTaskCommandGeneral.setCommandType("general");
    //设置命令的ID,需和节点上配置的按钮编号对应,会执行其中脚本
    expandTaskCommandGeneral.setUserCommandId("Normal_1");
    //设置命令的处理任务号
    expandTaskCommandGeneral.setTaskId(taskInstance.getId());
    //领取任务
    taskService.expandTaskComplete(expandTaskCommandGeneral, null);
    Date end = new Date();
   
    //重置查询
View Full Code Here

TOP

Related Classes of com.founder.fix.fixflow.core.impl.command.ExpandTaskCommand

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.