- 浏览: 577002 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
根据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转换成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; }
发表评论
文章已被作者锁定,不允许评论。
-
Activiti 学习总结内容
2016-11-04 14:50 1517Activiti总结内容 常用方法汇总 sequenceFl ... -
Activiti自我总结
2014-12-26 20:55 1282Spring代码 <?xml version=&qu ... -
Activiti根据Flowname进行转向
2014-06-29 18:13 703转向问题需要注意的是每次转向到其他节点时要把其他Transit ... -
Activiti小知识总结
2014-06-29 11:00 5831.ACT_HI_ACTINS表中Assignee字段没有值的 ... -
Activiti获取任务候选人
2014-06-27 09:33 2117IdentityLink是任务候选人的对象。来自于taskSe ... -
Activiti获得下一个节点
2014-06-26 14:37 1459用PvmTransition表示箭头的类。而这些类是从 Lis ... -
Activiti获取流程中的审批意见
2014-06-26 14:18 2356执行流程的过程中所有的变量信息都保存在ACT_HI_VARIN ... -
Activiti获取某个流程实例已经审批的节点记录
2014-06-25 16:15 2531已知businessid即eventid获得对应的审批记录 ... -
Activiti获取某个流程实例的FormKey
2014-06-25 15:21 2411通过任务id获得formkey ProcessDef ... -
Activiti中流程对象之间的关系
2014-06-25 10:36 716在开始之前先看看下图,对整个对象结构有个了解,再结合下面的详细 ... -
Activiti学习-2
2014-06-08 17:12 8585.12乱码问题解决: <!-- Activiti ... -
activiti学习之task与execution的关系
2014-06-08 16:54 1378一.含义 task 即待办任务 execution 即流程 ... -
Activiti学习总结
2014-06-03 11:50 18951.获得流程图乱码问题 ... -
Activiti环境安装及项目下载基础学习
2014-06-01 23:10 574Activiti资料 官网:http://www.activ ...
相关推荐
从基础讲起,结合应用场景,由浅到深细化讲解BPMN和Flowable的相关组件,并结合具体...5.1.3 查询待办任务 5.1.4 提交任务 5.1.5 查询候选任务 5.1.6 获取候选任务 5.1.7 通过流程实例ID查询任务流转图 5.2 实战案例二
关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...
关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...