工作流demo代码

这篇博客详细介绍了如何使用Activiti流程引擎进行配置、部署流程定义、启动流程实例、处理任务以及查询历史活动。通过示例代码展示了从创建到结束流程的完整过程,涉及了RepositoryService、RuntimeService、TaskService、FormService和HistoryService等关键API的使用。
摘要由CSDN通过智能技术生成

public void ActivityDemo(){
ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()
.setJdbcUrl("")
.setJdbcUsername("")
.setJdbcPassword("")
.setJdbcDriver("")
.setDatabaseSchemaUpdate("");

	// 实例化流程引擎
	ProcessEngine processEngine = cfg.buildProcessEngine();
	String pName = processEngine.getName();
	String ver = ProcessEngine.VERSION;

	//部署流程定义
	RepositoryService repositoryService = processEngine.getRepositoryService();
	Deployment deployment = repositoryService.createDeployment()
			.addClasspathResource("").deploy();
	ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
			.deploymentId(deployment.getId()).singleResult();

	// 运行流程实例
	RuntimeService runtimeService = processEngine.getRuntimeService();
	ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("");

	TaskService taskService = processEngine.getTaskService();
	FormService formService = processEngine.getFormService();
	HistoryService historyService = processEngine.getHistoryService();

	while (processInstance != null && !processInstance.isEnded()){
		List<Task> tasks = taskService.createTaskQuery().taskCandidateGroup("").list();
		for (int i = 0; i <tasks.size() ; i++) {
			Task task = tasks.get(i);
			Map<String,Object> map = new HashMap<String, Object>();
			FormData formData = formService.getTaskFormData(task.getId());
			for (FormProperty formProperty:formData.getFormProperties()) {
				if (StringFormType.class.isInstance(formProperty.getType())){
					map.put(formProperty.getId(),"");
				}else if (LongFormType.class.isInstance(formProperty.getType())){
                    map.put(formProperty.getId(),"");
				}else{

				}
			}

			taskService.complete(task.getId(),map);

			HistoricActivityInstance historicActivityInstance = null;
			List<HistoricActivityInstance> activitys = historyService.createHistoricActivityInstanceQuery()
					.processInstanceId(processInstance.getId()).finished()
					.orderByHistoricActivityInstanceEndTime()
					.asc()
					.list();
			for (HistoricActivityInstance activity:activitys) {
				if (activity.getActivityType() == "startEvent"){

				}

				if (activity.getActivityType() == "endEvent"){

				}
			}
			processInstance = runtimeService.createProcessInstanceQuery()
					.processInstanceId(processInstance.getId()).singleResult();

		}

	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值