Activiti5 学习笔记(八)—— comment 批注

  • Post author:
  • Post category:其他


一般我们审批任务时,都会填写审批意见、审批时间、审批人等信息。activiti为什么我们提供了act_hi_comment表和操作comment的API,现在我们就来学习如何使用(仅了解,我更喜欢自己建表,毕竟这是业务数据,和流程关系不大)。

//完成任务添加批注
@Test
public void completeTask(){
	String taskId = "12504";
	Task task = processEngine.getTaskService().createTaskQuery()
			.taskId(taskId) //使用任务ID查询
			.singleResult();
	String processInstanceId = task.getProcessInstanceId(); //获取流程实例id
	String message = "审批通过"; //批注信息
	Authentication.setAuthenticatedUserId("张三");  //设置审批人,若不设置则数据表userid字段为null
	processEngine.getTaskService().addComment(taskId, processInstanceId, message); //添加批注
	processEngine.getTaskService().complete(taskId); //完成任务
}
//查询批注
@Test
public void findComment() {
	
	//如果流程还在继续执行,可以通过正在执行的任务获取流程实例id
	String taskId = "12504";  
	Task task = processEngine.getTaskService().createTaskQuery()
			.taskId(taskId)
			.singleResult();
	String _processInstanceId = task.getProcessInstanceId();
	List<Comment> _list = processEngine.getTaskService().getProcessInstanceComments(_processInstanceId);
	
	//如果流程已经执行完毕,就要想办法获取到流程实例id
	/*HistoricProcessInstance historicProcessInstance = processEngine.getHistoryService()
			.createHistoricProcessInstanceQuery()
			.processInstanceBusinessKey(businessKey)  //关于businessKey请查看前面的教程《与业务关联》
			.singleResult();*/
	String processInstanceId = "12501";  //这里我们直接指定流程实例id
	List<Comment> list = processEngine.getTaskService().getProcessInstanceComments(processInstanceId);
	for (Comment comment : list) {
		System.out.println("审批人:" + comment.getUserId());
		System.out.println("审批时间:" + comment.getTime());
		System.out.println("审批信息:" + comment.getFullMessage());
	}
	
}



版权声明:本文为q42368773原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。