Activiti获取待办任务信息

来源:互联网 发布:淘宝的书是正版吗 编辑:程序博客网 时间:2024/06/05 15:42
根据userid获得TaskQuery然后再获得HistoricTaskInstance然后再赋值到页面需要的BO。
/** *  *@User :Test *@date :2014-6-27 上午09:53:09 *@return :List *@userFor :获得待办任务列表 */public List getCurrentWorkList(int pageNo, int pageSize, String sort,String dir, TaskQueryBo taskQueryBo) {if (pageNo <= 1)pageNo = 1;if (pageSize <= 1)pageSize = 0xf423f;int start = (pageNo - 1) * pageSize;int limit = pageSize;List tasks = new ArrayList();TaskQuery taskQuery = getTaskQuery(taskQueryBo);// 根据用户id得到任务列表List todoList = ((TaskQuery) ((TaskQuery) taskQuery.orderByTaskPriority().desc()).orderByTaskCreateTime().desc()).listPage(start, limit);tasks.addAll(todoList);List taskBoList = new ArrayList();TaskBo taskBo;// TaskQuery转换成Taskfor (Iterator iterator = tasks.iterator(); iterator.hasNext(); taskBoList.add(taskBo)) {Task task = (Task) iterator.next();taskBo = getTaskDetail(task.getId());}return taskBoList;}/** *  *@User :Test *@date :2014-6-27 上午09:55:12 *@return :TaskQuery *@userFor :根据不同的条件获得任务列表 TaskQuery */private TaskQuery getTaskQuery(TaskQueryBo taskQueryBo) {TaskQuery taskQuery = taskService.createTaskQuery();if (taskQueryBo != null) {String candidateUser = taskQueryBo.getCandidateUser();if (StringUtil.hasText(candidateUser))taskQuery = taskQuery.taskCandidateUser(candidateUser);String systemName = taskQueryBo.getSystemName();if (StringUtil.hasText(systemName))taskQuery = taskQuery.processVariableValueEquals("processCategory", systemName);String workflowName = taskQueryBo.getWorkflowName();if (StringUtil.hasText(workflowName))taskQuery = taskQuery.taskDefinitionKey(workflowName);String taskId = taskQueryBo.getTaskId();if (StringUtil.hasText(taskId))taskQuery = taskQuery.taskId(taskId);}return taskQuery;}public TaskBo getTaskDetail(String taskId) {TaskBo taskBo;HistoricTaskInstance historicTaskInstance = (HistoricTaskInstance) historyService.createHistoricTaskInstanceQuery().taskId(taskId).singleResult();taskBo = null;if (historicTaskInstance != null)taskBo = setTaskBo(historicTaskInstance);return taskBo;}/** *  *@User   :Test *@date   :2014-6-27 上午09:59:45 *@return :TaskBo *@userFor :设置页面需要的字段信息 HistoricTaskInstance */private TaskBo setTaskBo(HistoricTaskInstance task) {TaskBo taskBo = new TaskBo();taskBo.setTaskId(task.getId());taskBo.setTaskName(task.getName());taskBo.setApproveUserName(task.getAssignee() != null ? getUserName(task.getAssignee()) : "");taskBo.setStartTime(task.getStartTime() != null ? DateTimeUtil.getFormatDate(task.getStartTime(),WorkflowConstants.DATEFORMATSTRING) : "");if (task.getEndTime() == null)taskBo.setEndTime("");elsetaskBo.setEndTime(DateTimeUtil.getFormatDate(task.getEndTime(),WorkflowConstants.DATEFORMATSTRING));taskBo.setDueTime(task.getDueDate() != null ? DateTimeUtil.getFormatDate(task.getDueDate(),WorkflowConstants.DATEFORMATSTRING) : "");ProcessDefinition processDefinition = (ProcessDefinition) repositoryService.createProcessDefinitionQuery().processDefinitionId(task.getProcessDefinitionId()).singleResult();taskBo.setBusinessName(processDefinition.getName());taskBo.setWorkflowName(processDefinition.getKey());//流程状态taskBo.setStatus(processDefinition.isSuspended() ? "已挂起" : "正常");taskBo.setVersion(String.valueOf(processDefinition.getVersion()));HistoricProcessInstance historicProcessInstance = (HistoricProcessInstance) historyService.createHistoricProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult();//得到业务id即eventidtaskBo.setBusinessEventId(historicProcessInstance.getBusinessKey());//发起人姓名if (historicProcessInstance.getStartUserId() != null)taskBo.setStartUserName(getUserName(historicProcessInstance.getStartUserId()));elsetaskBo.setStartUserName("");taskBo.setWorkflowSubject(getWorkflowVariable(historicProcessInstance.getId(), WorkflowConstants.WORKFLOWSUBJECT));return taskBo;}
0 0
原创粉丝点击