package com.norteksoft.wf.unit; import java.text.DateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import org.dom4j.Document; import org.junit.Assert; import org.junit.Test; import org.unitils.database.annotations.Transactional; import org.unitils.database.util.TransactionMode; import org.unitils.spring.annotation.SpringApplicationContext; import org.unitils.spring.annotation.SpringBeanByName; import com.norteksoft.ems.entity.ExpenseReport; import com.norteksoft.ems.service.ExpenseReportManager; import com.norteksoft.product.api.ApiFactory; import com.norteksoft.product.api.entity.WorkflowInstance; import com.norteksoft.product.api.entity.WorkflowTask; import com.norteksoft.product.util.ContextUtils; import com.norteksoft.product.util.ParameterUtils; import com.norteksoft.product.util.ThreadParameters; import com.norteksoft.task.base.enumeration.TaskProcessingMode; import com.norteksoft.task.base.enumeration.TaskProcessingResult; import com.norteksoft.wf.base.enumeration.CompleteTaskTipType; import com.norteksoft.wf.base.enumeration.ProcessState; import com.norteksoft.wf.base.enumeration.TrustRecordState; import com.norteksoft.wf.base.utils.DocumentParameterUtils; import com.norteksoft.wf.base.utils.DocumentThreadParameters; import com.norteksoft.wf.base.utils.Dom4jUtils; import com.norteksoft.wf.engine.entity.TrustRecord; import com.norteksoft.wf.engine.entity.WorkflowDefinition; import com.norteksoft.wf.engine.service.DelegateMainManager; import com.norteksoft.wf.engine.service.WorkflowDefinitionManager; /** * 公开提供给用户使用的工作流任务api部署测试 * @author Administrator * */ @Transactional(TransactionMode.ROLLBACK) @SpringApplicationContext({"applicationContext-test.xml","applicationContext-memcache.xml"}) public class WorkflowTaskServiceTest extends BaseWorkflowTestCase{ @SpringBeanByName ExpenseReportManager expenseReportManager; @SpringBeanByName DelegateMainManager delegateMainManager; @SpringBeanByName WorkflowDefinitionManager workflowDefinitionManager; @Test public void getTask(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task= ApiFactory.getTaskService().getTask(dp.getWorkflowInfo().getFirstTaskId()); Assert.assertNotNull(task); } @Test public void completeWorkflowTaskOne(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE,""); Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); } @Test public void completeWorkflowTaskTwo(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); } @Test public void completeWorkflowTaskThree(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task,TaskProcessingResult.APPROVE,""); Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); } @Test public void completeWorkflowTaskFour(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task,TaskProcessingResult.APPROVE); Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); } @Test public void completeInteractiveWorkflowTaskOne(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),""); Assert.assertEquals(CompleteTaskTipType.OK, ctt); } @Test public void completeInteractiveWorkflowTaskTwo(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); List<String> loginName=new ArrayList<String>(); loginName.add("test2"); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),loginName,""); Assert.assertEquals(CompleteTaskTipType.OK, ctt); } @Test public void completeInteractiveWorkflowTaskThree(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","test2"); Assert.assertEquals(CompleteTaskTipType.OK, ctt); } @Test public void completeInteractiveWorkflowTaskFour(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task,""); Assert.assertEquals(CompleteTaskTipType.OK, ctt); } @Test public void completeInteractiveWorkflowTaskFive(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); List<String> loginName=new ArrayList<String>(); loginName.add("test2"); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task,loginName,""); Assert.assertEquals(CompleteTaskTipType.OK, ctt); } @Test public void completeInteractiveWorkflowTaskSix(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task,"","test2"); Assert.assertEquals(CompleteTaskTipType.OK, ctt); } @Test public void getNextTasksCandidates(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); Map<String[], List<String[]>> map=ApiFactory.getTaskService().getNextTasksCandidates(task.getId()); Assert.assertEquals(1,map.size()); } @Test public void getFormIdByTask(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Long formId=ApiFactory.getTaskService().getFormIdByTask(task); Assert.assertEquals(dp.getWorkflowInfo().getFormId(),formId); } @Test public void getDataIdByTask(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Long dataId=ApiFactory.getTaskService().getDataIdByTask(task); Assert.assertEquals(dp.getId(),dataId); } @Test public void addSignerOne(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","test2"); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.SUBMIT); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); List<String> loginName=new ArrayList<String>(); loginName.add("ldx"); //加签 ApiFactory.getTaskService().addSigner(task.getId(),loginName); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"ldx"); Assert.assertNotNull(task); } @Test public void addSignerTwo(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","test2"); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.SUBMIT); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); //加签 ApiFactory.getTaskService().addSigner(task.getId(),"ldx"); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"ldx"); Assert.assertNotNull(task); } @Test public void removeSignerOne(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2,ldx"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","test2"); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.SUBMIT); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"ldx"); Assert.assertNotNull(task); List<String> loginName=new ArrayList<String>(); loginName.add("ldx"); //减签 ApiFactory.getTaskService().removeSigner(task.getId(),loginName); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"ldx"); Assert.assertNull(task); } @Test public void removeSignerTwo(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2,ldx"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","test2"); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.SUBMIT); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"ldx"); Assert.assertNotNull(task); //减签 ApiFactory.getTaskService().removeSigner(task.getId(),"ldx"); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"ldx"); Assert.assertNull(task); } @Test public void getCountersignTransactors(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2,ldx"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","test2"); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.SUBMIT); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Assert.assertNotNull(task); List<String> transactors=ApiFactory.getTaskService().getCountersignTransactors(task.getId(),0); Assert.assertEquals(2, transactors.size()); } @Test public void retrieve(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2,ldx"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); String result=ApiFactory.getTaskService().retrieve(dp.getWorkflowInfo().getFirstTaskId()); Assert.assertEquals("任务已取回", result); } @Test public void drawTask(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); List<String> loginName=new ArrayList<String>(); loginName.add("test2"); loginName.add("ldx"); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),loginName,""); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"ldx"); String result=ApiFactory.getTaskService().drawTask(task.getId()); Assert.assertEquals("task.receive.success", result); } @Test public void abandonReceive(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); List<String> loginName=new ArrayList<String>(); loginName.add("test2"); loginName.add("ldx"); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),loginName,""); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"ldx"); String result=ApiFactory.getTaskService().abandonReceive(task.getId()); Assert.assertEquals("task.abandon.receive.success", result); } @Test public void assign(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); List<String> loginName=new ArrayList<String>(); loginName.add("test2"); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),loginName,""); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Assert.assertNotNull(task); ApiFactory.getTaskService().assign(task.getId(),"ldx"); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"ldx"); Assert.assertNotNull(task); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Assert.assertNull(task); } @Test public void getReturnableTaskNames(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2,ldx"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","test2"); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.SUBMIT); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Assert.assertNotNull(task); List<String> taskNames=ApiFactory.getTaskService().getReturnableTaskNames(task.getId()); Assert.assertEquals(3, taskNames.size()); } @Test public void returnTaskTo(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2,ldx"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","test2"); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.SUBMIT); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Assert.assertNotNull(task); //退回到某环节 ApiFactory.getTaskService().returnTaskTo(task.getId(),"审批报销单"); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Assert.assertNotNull(task); Assert.assertEquals("task2", task.getCode()); } @Test public void getActiveTaskByLoginName(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2,ldx"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Assert.assertNotNull(task); Assert.assertEquals("task2", task.getCode()); } @Test public void completeDistributeTaskOne(){//暂且不写 //completeDistributeTask(Long taskId, List<String> receivers) } @Test public void completeDistributeTaskTwo(){//暂且不写 //completeDistributeTask(Long taskId, String... receivers) } @Test public void selectActivity(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); dp.setFirstLoginName("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","test2"); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.SUBMIT); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Assert.assertNotNull(task); ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); ctt=ApiFactory.getTaskService().selectActivity(task.getId(),"transitionUI33"); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Assert.assertEquals("task6", task.getCode()); } @Test public void getWorkflowTasksByDefinitonName(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); dp.setFirstLoginName("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); List<WorkflowTask> tasks=ApiFactory.getTaskService().getWorkflowTasksByDefinitonName("wf_test_8","test2"); Assert.assertEquals(1, tasks.size()); } @Test public void createCopyTasks(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); List<String> loginName=new ArrayList<String>(); loginName.add("ldx"); ApiFactory.getTaskService().createCopyTasks(task.getId(),loginName,"",""); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"ldx"); Assert.assertEquals(TaskProcessingMode.TYPE_READ, task.getProcessingMode()); } @Test public void getActiveTaskCountByTransactor(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp1 = new ExpenseReport(); dp1.setCompanyId(1L); expenseReportManager.save(dp1); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp1); ExpenseReport dp2 = new ExpenseReport(); dp2.setCompanyId(1L); expenseReportManager.save(dp2); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp2); Integer taskAmount=ApiFactory.getTaskService().getActiveTaskCountByTransactor("test2"); Assert.assertEquals(2, (int)taskAmount); } @Test public void getActiveOverdueTasks(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp1 = new ExpenseReport(); dp1.setCompanyId(1L); expenseReportManager.save(dp1); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp1); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp1,"test2"); task.setLastReminderTime(new Date()); ApiFactory.getTaskService().saveTask(task); ParameterUtils.setParameters(getPrmt(1L, 33L, "ldx", "刘冬霞")); ExpenseReport dp2 = new ExpenseReport(); dp2.setCompanyId(1L); expenseReportManager.save(dp2); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp2); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp2,"ldx"); task.setLastReminderTime(new Date()); ApiFactory.getTaskService().saveTask(task); ExpenseReport dp3 = new ExpenseReport(); dp3.setCompanyId(1L); expenseReportManager.save(dp3); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp3); List<WorkflowTask> tasks=ApiFactory.getTaskService().getActiveOverdueTasks(); Assert.assertEquals(2, tasks.size()); } @Test public void getOverdueTasksNumByTransactor(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp1 = new ExpenseReport(); dp1.setCompanyId(1L); expenseReportManager.save(dp1); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp1); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp1,"test2"); task.setLastReminderTime(new Date()); ApiFactory.getTaskService().saveTask(task); ParameterUtils.setParameters(getPrmt(1L, 33L, "ldx", "刘冬霞")); ExpenseReport dp2 = new ExpenseReport(); dp2.setCompanyId(1L); expenseReportManager.save(dp2); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp2); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp2,"ldx"); task.setLastReminderTime(new Date()); ApiFactory.getTaskService().saveTask(task); ExpenseReport dp3 = new ExpenseReport(); dp3.setCompanyId(1L); expenseReportManager.save(dp3); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp3); Map<String,Integer> tasks=ApiFactory.getTaskService().getOverdueTasksNumByTransactor(); Assert.assertEquals(2, tasks.size()); Assert.assertEquals(1, (int)tasks.get("test2")); Assert.assertEquals(1, (int)tasks.get("ldx")); } @Test public void getAllOverdueTasks(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp1 = new ExpenseReport(); dp1.setCompanyId(1L); expenseReportManager.save(dp1); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp1); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp1,"test2"); task.setLastReminderTime(new Date()); ApiFactory.getTaskService().saveTask(task); ParameterUtils.setParameters(getPrmt(1L, 33L, "ldx", "刘冬霞")); ExpenseReport dp2 = new ExpenseReport(); dp2.setCompanyId(1L); expenseReportManager.save(dp2); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp2); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp2,"ldx"); task.setLastReminderTime(new Date()); ApiFactory.getTaskService().saveTask(task); ExpenseReport dp3 = new ExpenseReport(); dp3.setCompanyId(1L); expenseReportManager.save(dp3); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp3); List<WorkflowTask> tasks=ApiFactory.getTaskService().getAllOverdueTasks(); Assert.assertEquals(2, tasks.size()); } @Test public void getOverdueTaskCountGroupByTransactor(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp1 = new ExpenseReport(); dp1.setCompanyId(1L); expenseReportManager.save(dp1); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp1); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp1,"test2"); task.setLastReminderTime(new Date()); ApiFactory.getTaskService().saveTask(task); ParameterUtils.setParameters(getPrmt(1L, 33L, "ldx", "刘冬霞")); ExpenseReport dp2 = new ExpenseReport(); dp2.setCompanyId(1L); expenseReportManager.save(dp2); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp2); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp2,"ldx"); task.setLastReminderTime(new Date()); ApiFactory.getTaskService().saveTask(task); ExpenseReport dp3 = new ExpenseReport(); dp3.setCompanyId(1L); expenseReportManager.save(dp3); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp3); Map<String,Integer> tasks=ApiFactory.getTaskService().getOverdueTaskCountGroupByTransactor(); Assert.assertEquals(2, tasks.size()); Assert.assertEquals(1, (int)tasks.get("test2")); Assert.assertEquals(1, (int)tasks.get("ldx")); } @Test public void getActiveTasksByLoginName(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp1 = new ExpenseReport(); dp1.setCompanyId(1L); expenseReportManager.save(dp1); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp1); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp1,"test2"); task.setLastReminderTime(new Date()); //保存任务 ApiFactory.getTaskService().saveTask(task); ParameterUtils.setParameters(getPrmt(1L, 33L, "ldx", "刘冬霞")); ExpenseReport dp2 = new ExpenseReport(); dp2.setCompanyId(1L); expenseReportManager.save(dp2); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp2); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp2,"ldx"); task.setLastReminderTime(new Date()); //保存任务 ApiFactory.getTaskService().saveTask(task); ExpenseReport dp3 = new ExpenseReport(); dp3.setCompanyId(1L); expenseReportManager.save(dp3); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp3); List<WorkflowTask> tasks=ApiFactory.getTaskService().getActiveTasksByLoginName("ldx"); Assert.assertEquals(2, tasks.size()); } @Test public void isFirstTask(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 启动流程 ApiFactory.getInstanceService().startInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); boolean isFirstTask=ApiFactory.getTaskService().isFirstTask(task.getId()); Assert.assertTrue(isFirstTask); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); isFirstTask=ApiFactory.getTaskService().isFirstTask(task.getId()); Assert.assertFalse(isFirstTask); } @Test public void getTransactorsExcludeGivenTask(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task1=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task1.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task1.getId(),"","ldx"); WorkflowTask task2=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"ldx"); ParameterUtils.setParameters(getPrmt(1L, 33L, "ldx", "刘冬霞")); ctt=ApiFactory.getTaskService().completeWorkflowTask(task2.getId(),TaskProcessingResult.SUBMIT); List<String> transactors=ApiFactory.getTaskService().getTransactorsExcludeGivenTask(task1.getId()); Assert.assertEquals(2, transactors.size()); } @Test public void setTaskRead(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Assert.assertFalse(task.getRead()); ApiFactory.getTaskService().setTaskRead(task.getId()); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Assert.assertTrue(task.getRead()); } @Test public void taskJump(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); expenseReportManager.save(dp); // 启动流程 ApiFactory.getInstanceService().startInstance("wf_test_8", dp); CompleteTaskTipType taskJump=ApiFactory.getTaskService().taskJump(dp.getWorkflowInfo().getWorkflowId(),"会签",ContextUtils.getCompanyId()); Assert.assertEquals(CompleteTaskTipType.OK, taskJump); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Assert.assertEquals("task4", task.getCode()); } @Test public void getOptionalTasks(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); dp.setFirstLoginName("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","test2"); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.SUBMIT); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Assert.assertNotNull(task); ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType isNeedChoiceTache=ApiFactory.getTaskService().getOptionalTasks(task); Assert.assertEquals(CompleteTaskTipType.TACHE_CHOICE_URL,isNeedChoiceTache); } @Test public void getActivityTaskTransactorsOne(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); dp.setFirstLoginName("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","test2","ldx"); List<String[]> transactors=ApiFactory.getTaskService().getActivityTaskTransactors(dp); Assert.assertEquals(2,transactors.size()); } @Test public void getActivityTaskPrincipalsOne(){ DateFormat df = DateFormat.getInstance(); Calendar calendar = df.getCalendar(); calendar.setTime(new Date()); calendar.set(Calendar.HOUR_OF_DAY,0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); Date beginTime=calendar.getTime(); calendar.add(Calendar.DAY_OF_YEAR,1); Date endTime=calendar.getTime(); // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); WorkflowDefinition workflowDefinition=workflowDefinitionManager.getEnabledWorkflowDefinitionByCodeAndVersion("wf_test_8", 1,ContextUtils.getCompanyId()); TrustRecord trustRecord=new TrustRecord(); trustRecord.setCompanyId(ContextUtils.getCompanyId()); trustRecord.setCreatedTime(new Date()); trustRecord.setTrustor(ContextUtils.getLoginName()); trustRecord.setBeginTime(beginTime); trustRecord.setEndTime(endTime); trustRecord.setStyle((short)2); trustRecord.setName("全权委托"); trustRecord.setState(TrustRecordState.EFFICIENT); trustRecord.setTrustee("ldx"); trustRecord.setProcessId(workflowDefinition.getProcessId()); delegateMainManager.saveDelegateMain(trustRecord); delegateMainManager.startDelegateMain(trustRecord.getId()); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); List<String> activityTasks=ApiFactory.getTaskService().getActivityTaskPrincipals(dp); Assert.assertEquals("test2",activityTasks.get(0)); } @Test public void getActivityTaskPrincipalsDetailOne(){ DateFormat df = DateFormat.getInstance(); Calendar calendar = df.getCalendar(); calendar.setTime(new Date()); calendar.set(Calendar.HOUR_OF_DAY,0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); Date beginTime=calendar.getTime(); calendar.add(Calendar.DAY_OF_YEAR,1); Date endTime=calendar.getTime(); // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); WorkflowDefinition workflowDefinition=workflowDefinitionManager.getEnabledWorkflowDefinitionByCodeAndVersion("wf_test_8", 1,ContextUtils.getCompanyId()); TrustRecord trustRecord=new TrustRecord(); trustRecord.setCompanyId(ContextUtils.getCompanyId()); trustRecord.setCreatedTime(new Date()); trustRecord.setTrustor(ContextUtils.getLoginName()); trustRecord.setBeginTime(beginTime); trustRecord.setEndTime(endTime); trustRecord.setStyle((short)2); trustRecord.setName("全权委托"); trustRecord.setState(TrustRecordState.EFFICIENT); trustRecord.setTrustee("ldx"); trustRecord.setProcessId(workflowDefinition.getProcessId()); delegateMainManager.saveDelegateMain(trustRecord); delegateMainManager.startDelegateMain(trustRecord.getId()); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); List<String[]> activityTasks=ApiFactory.getTaskService().getActivityTaskPrincipalsDetail(dp); Object[] activityTask=activityTasks.get(0); String loginName=activityTask[0].toString(); Assert.assertEquals("test2",loginName); } @Test public void getCompletedTaskTransactorOne(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); dp.setFirstLoginName("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","ldx"); ParameterUtils.setParameters(getPrmt(1L, 33L, "ldx", "刘冬霞")); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"ldx"); ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.SUBMIT); Set<String> transactor=ApiFactory.getTaskService().getCompletedTaskTransactor(dp); Assert.assertEquals(2, transactor.size()); } @Test public void getCompletedTaskTransactorTwo(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); dp.setFirstLoginName("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","ldx"); ParameterUtils.setParameters(getPrmt(1L, 33L, "ldx", "刘冬霞")); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"ldx"); ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.SUBMIT); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Set<String> transactor=ApiFactory.getTaskService().getCompletedTaskTransactor(task.getId()); Assert.assertEquals(2, transactor.size()); } @Test public void getExtendFields(){ // 准备数据 deploy("wf_test_8.xml"); // WorkflowDefinition workflowDefinition=workflowDefinitionManager.getEnabledWorkflowDefinitionByCodeAndVersion("wf_test_8", 1,ContextUtils.getCompanyId()); // Map<String,Document> documents=new HashMap<String,Document>(); // DocumentThreadParameters p= new DocumentThreadParameters(); // String fileContent = readFileContent("wf_test_8.xml"); // Document document=Dom4jUtils.getDocument(fileContent); // documents.put(workflowDefinition.getProcessId(), document); // p.setDocuments(documents); // DocumentParameterUtils.setParameters(p); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); dp.setFirstLoginName("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Map<String,String> extendFields=ApiFactory.getTaskService().getExtendFields(task.getId()); Assert.assertEquals(2, extendFields.size()); } @Test public void getActivityTaskTransactorsTwo(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); dp.setFirstLoginName("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","test2","ldx"); List<String[]> transactors=ApiFactory.getTaskService().getActivityTaskTransactors(dp.getWorkflowInfo().getWorkflowId()); Assert.assertEquals(2,transactors.size()); } @Test public void getActivityTaskPrincipalsTwo(){ DateFormat df = DateFormat.getInstance(); Calendar calendar = df.getCalendar(); calendar.setTime(new Date()); calendar.set(Calendar.HOUR_OF_DAY,0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); Date beginTime=calendar.getTime(); calendar.add(Calendar.DAY_OF_YEAR,1); Date endTime=calendar.getTime(); // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); WorkflowDefinition workflowDefinition=workflowDefinitionManager.getEnabledWorkflowDefinitionByCodeAndVersion("wf_test_8", 1,ContextUtils.getCompanyId()); TrustRecord trustRecord=new TrustRecord(); trustRecord.setCompanyId(ContextUtils.getCompanyId()); trustRecord.setCreatedTime(new Date()); trustRecord.setTrustor(ContextUtils.getLoginName()); trustRecord.setBeginTime(beginTime); trustRecord.setEndTime(endTime); trustRecord.setStyle((short)2); trustRecord.setName("全权委托"); trustRecord.setState(TrustRecordState.EFFICIENT); trustRecord.setTrustee("ldx"); trustRecord.setProcessId(workflowDefinition.getProcessId()); delegateMainManager.saveDelegateMain(trustRecord); delegateMainManager.startDelegateMain(trustRecord.getId()); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); List<String> activityTasks=ApiFactory.getTaskService().getActivityTaskPrincipals(dp.getWorkflowInfo().getWorkflowId()); Assert.assertEquals("test2",activityTasks.get(0)); } @Test public void getActivityTaskPrincipalsDetailTwo(){ DateFormat df = DateFormat.getInstance(); Calendar calendar = df.getCalendar(); calendar.setTime(new Date()); calendar.set(Calendar.HOUR_OF_DAY,0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); Date beginTime=calendar.getTime(); calendar.add(Calendar.DAY_OF_YEAR,1); Date endTime=calendar.getTime(); // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); WorkflowDefinition workflowDefinition=workflowDefinitionManager.getEnabledWorkflowDefinitionByCodeAndVersion("wf_test_8", 1,ContextUtils.getCompanyId()); TrustRecord trustRecord=new TrustRecord(); trustRecord.setCompanyId(ContextUtils.getCompanyId()); trustRecord.setCreatedTime(new Date()); trustRecord.setTrustor(ContextUtils.getLoginName()); trustRecord.setBeginTime(beginTime); trustRecord.setEndTime(endTime); trustRecord.setStyle((short)2); trustRecord.setName("全权委托"); trustRecord.setState(TrustRecordState.EFFICIENT); trustRecord.setTrustee("ldx"); trustRecord.setProcessId(workflowDefinition.getProcessId()); delegateMainManager.saveDelegateMain(trustRecord); delegateMainManager.startDelegateMain(trustRecord.getId()); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); List<String[]> activityTasks=ApiFactory.getTaskService().getActivityTaskPrincipalsDetail(dp.getWorkflowInfo().getWorkflowId()); Object[] activityTask=activityTasks.get(0); String loginName=activityTask[0].toString(); Assert.assertEquals("test2",loginName); } @Test public void getDataByTaskId(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); dp.setFirstLoginName("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Map data=ApiFactory.getTaskService().getDataByTaskId(task.getId()); Assert.assertNotNull(data); } @Test public void getActivityTasks(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); dp.setFirstLoginName("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","test2","ldx"); List<WorkflowTask> transactors=ApiFactory.getTaskService().getActivityTasks(dp); Assert.assertEquals(2,transactors.size()); } @Test public void returnTask(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); dp.setFirstLoginName("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowTask task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); CompleteTaskTipType ctt=ApiFactory.getTaskService().completeWorkflowTask(task.getId(),TaskProcessingResult.APPROVE); //办理人设置为“上一环节办理人指定” Assert.assertEquals(CompleteTaskTipType.RETURN_URL, ctt); ctt=ApiFactory.getTaskService().completeInteractiveWorkflowTask(task.getId(),"","test2","ldx"); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); String result=ApiFactory.getTaskService().drawTask(task.getId()); Assert.assertEquals("task.receive.success",result); result=ApiFactory.getTaskService().returnTask(task.getId()); Assert.assertEquals("退回成功",result); task=ApiFactory.getTaskService().getActiveTaskByLoginName(dp,"test2"); Assert.assertEquals("task2",task.getCode()); } @Test public void endInstance(){ // 准备数据 deploy("wf_test_8.xml"); ParameterUtils.setParameters(getPrmt(1L, 65L, "test2", "test2")); ExpenseReport dp = new ExpenseReport(); dp.setCompanyId(1L); dp.setSignLoginNames("test2"); dp.setFirstLoginName("test2"); expenseReportManager.save(dp); // 提交第一环节任务 ApiFactory.getInstanceService().submitInstance("wf_test_8", dp); WorkflowInstance workflow=ApiFactory.getInstanceService().getInstance(dp.getWorkflowInfo().getWorkflowId()); ApiFactory.getTaskService().endInstance(workflow); workflow=ApiFactory.getInstanceService().getInstance(dp.getWorkflowInfo().getWorkflowId()); Assert.assertEquals(ProcessState.MANUAL_END,workflow.getProcessState()); } }