Activiti获取待办任务信息

[color=red]根据userid获得TaskQuery然后再获得HistoricTaskInstance然后再赋值到页面需要的BO。[/color]

/**
*
*@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转换成Task
for (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("");
else
taskBo.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即eventid
taskBo.setBusinessEventId(historicProcessInstance.getBusinessKey());
//发起人姓名
if (historicProcessInstance.getStartUserId() != null)
taskBo.setStartUserName(getUserName(historicProcessInstance
.getStartUserId()));
else
taskBo.setStartUserName("");
taskBo.setWorkflowSubject(getWorkflowVariable(historicProcessInstance
.getId(), WorkflowConstants.WORKFLOWSUBJECT));
return taskBo;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值