activiti自定义流程之Spring整合activiti-modeler5.16实例(九):历史任务查询
2023-09-14 08:57:30 时间
span "_blank" href="http://blog.csdn.net/tuzongxun/article/details/50787822">activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建
(2)创建流程模型:activiti自定义流程之Spring整合activiti-modeler5.16实例(二):创建流程模型
(3)流程模型列表展示:activiti自定义流程之Spring整合activiti-modeler5.16实例(三):流程模型列表展示
(4)部署流程定义:activiti自定义流程之Spring整合activiti-modeler5.16实例(四):部署流程定义
1.所有任务完成,流程也就结束了,查询历史任务或历史流程就要操作act_hi_taskinst表,用的都是historyService来调用相关的方法。
本节示例查询历史任务,历史流程便不再专门示例。
2.后台业务代码,
(1)自定义的任务实体类
(2)业务逻辑:
这里需要注意的是,历史表中存在并非是单一类型的数据,就拿历史任务表来说,里边既有已经结束的任务,也有还没有结束的任务。
如果要单独查询结束了的任务,就可以调用finished()方法,查询的就是已经结束的任务。
3.angular js前台代码(前台只是做简单的展示,不多讲):
(1)app.js中配置路由:
(2)逻辑相关代码:
项目中工作流部署详细解析!Spring中部署Activiti流程定义的三种姿势 本文对工作流Activiti框架中流程定义的部署进行了详细说明介绍。介绍了工作流Activiti框架中业务流程部署的两种方式,包括编程式部署以及通过Activiti Explorer控制台部署。介绍了流程部署时需要使用到的外部资源,流程定义部署不同的版本生成不同的流程定义的图片。通过这篇文章,基本上对工作流Activiti框架中流程定义的部署就可以很熟练了。
Spring集成使用工作流框架Activiti!事务配置,注解配置以及流程资源自动化部署 本文详尽地说明了如何在Spring项目中集成使用工作流Activiti框架。介绍了在Spring框架的项目中使用工作流Activti框架时事务的配置,表达式的使用,资源的自动化部署,单元测试以及基于注解的配置。通过这篇文章介绍的工作流框架Activiti集成到Spring项目中的使用,可以让我们更加能够熟练的在项目中使用工作流Activti框架。
相关jar包 Activiti的相关jar包 Activiti依赖的相关jar包 Spring的相关jar包 Spring依赖的相关jar包 本示例相关jar包截图 配置文件设置
span "feed-item-img" target="_blank" href="https://developer.aliyun.com/article/28590">
span "feed-item-img" target="_blank" href="https://developer.aliyun.com/article/28592">
span "author-img" src="https://ucc.alicdn.com/avatar/64a40364363447ceb5d1581bedd88018.png?x-oss-process=image/resize,h_150,m_lfit" />
涂宗勋 认真生活,快乐工作,保持理想!https://blog.csdn.net/tuzongxun
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载
(2)创建流程模型:activiti自定义流程之Spring整合activiti-modeler5.16实例(二):创建流程模型
(3)流程模型列表展示:activiti自定义流程之Spring整合activiti-modeler5.16实例(三):流程模型列表展示
(4)部署流程定义:activiti自定义流程之Spring整合activiti-modeler5.16实例(四):部署流程定义
(5)流程定义列表:activiti自定义流程之Spring整合activiti-modeler5.16实例(五):流程定义列表
(6)启动流程:activiti自定义流程之Spring整合activiti-modeler5.16实例(六):启动流程(7)任务列表展示:activiti自定义流程之Spring整合activiti-modeler5.16实例(七):任务列表展示
(8)完成个人任务:activiti自定义流程之Spring整合activiti-modeler5.16实例(八):完成个人任务
1.所有任务完成,流程也就结束了,查询历史任务或历史流程就要操作act_hi_taskinst表,用的都是historyService来调用相关的方法。
本节示例查询历史任务,历史流程便不再专门示例。
2.后台业务代码,
(1)自定义的任务实体类
package model; import java.util.Date; public class HisTaskModel { private String id; private String name; private String assignee; private String processInstanceId; private Date startTime; private Date endTime; private String cause; private String content; private String taskType; public String getCause() { return cause; public void setCause(String cause) { this.cause = cause; public String getContent() { return content; public void setContent(String content) { this.content = content; public String getTaskType() { return taskType; public void setTaskType(String taskType) { this.taskType = taskType; public String getId() { return id; public void setId(String id) { this.id = id; public String getName() { return name; public void setName(String name) { this.name = name; public String getAssignee() { return assignee; public void setAssignee(String assignee) { this.assignee = assignee; public String getProcessInstanceId() { return processInstanceId; public void setProcessInstanceId(String processInstanceId) { this.processInstanceId = processInstanceId; public Date getStartTime() { return startTime; public void setStartTime(Date startTime) { this.startTime = startTime; public Date getEndTime() { return endTime; public void setEndTime(Date endTime) { this.endTime = endTime; @Override public String toString() { return "HisTaskModel [id=" + id + ", name=" + name + ", assignee=" + assignee + ", processInstanceId=" + processInstanceId + ", startTime=" + startTime + ", endTime=" + endTime + ", cause=" + cause + ", content=" + content + ", taskType=" + taskType + "]";
(2)业务逻辑:
这里需要注意的是,历史表中存在并非是单一类型的数据,就拿历史任务表来说,里边既有已经结束的任务,也有还没有结束的任务。
如果要单独查询结束了的任务,就可以调用finished()方法,查询的就是已经结束的任务。
/** * 查询我的历史任务 * @author:tuzongxun * @Title: hisTask * @param @param req * @param @return * @return Object * @date Mar 18, 2016 9:12:07 AM * @throws @RequestMapping(value = "/hisTask.do", method = RequestMethod.POST, produces = "application/json;charset=utf-8") @ResponseBody public Object hisTask(HttpServletRequest req) { Map String, Object map = new HashMap String, Object boolean isLogin = this.isLogin(req); if (isLogin) { HttpSession session = req.getSession(); String assignee = (String) session.getAttribute("userName"); List HistoricTaskInstance hisTaskList1 = historyService .createHistoricTaskInstanceQuery().taskAssignee(assignee) .finished().list(); List HisTaskModel hisTaskList = new ArrayList HisTaskModel for (HistoricTaskInstance hisTask : hisTaskList1) { HisTaskModel hisModel = new HisTaskModel(); List HistoricVariableInstance hisList = historyService .createHistoricVariableInstanceQuery() .processInstanceId(hisTask.getProcessInstanceId()) .list(); for (HistoricVariableInstance hisVariable : hisList) { String name = hisVariable.getVariableName(); if (name.equals("content")) { hisModel.setContent((String) hisVariable.getValue()); } else if (name.equals("cause")) { hisModel.setCause((String) hisVariable.getValue()); } else if (name.equals("taskType")) { hisModel.setTaskType((String) hisVariable.getValue());
hisModel.setAssignee(hisTask.getAssignee()); hisModel.setEndTime(hisTask.getEndTime()); hisModel.setId(hisTask.getId()); hisModel.setName(hisTask.getName()); hisModel.setProcessInstanceId(hisTask.getProcessInstanceId()); hisModel.setStartTime(hisTask.getStartTime()); hisTaskList.add(hisModel); map.put("isLogin", "yes"); map.put("userName", (String) req.getSession().getAttribute("userName")); map.put("result", "success"); map.put("data", hisTaskList); } else { map.put("isLogin", "no"); return map;
3.angular js前台代码(前台只是做简单的展示,不多讲):
(1)app.js中配置路由:
$stateProvider .state(hisTask, { url: "/hisTask", views: { view: { templateUrl: activi_views/hisTask.html, controller: hisTaskCtr });
(2)逻辑相关代码:
angular.module(activitiApp) .controller(hisTaskCtr, [$rootScope,$scope,$http,$location, function($rootScope,$scope,$http,$location){ $scope.init=function(){ $http.post("./hisTask.do").success(function(result) { if(result.isLogin==="yes"){ console.log(result.data); $rootScope.userName=result.userName; $scope.taskList=result.data; }else{ $location.path("/login");4.对应的填写相关信息的页面:
div id="logdiv1" ng-init="init();" p 历史任务列表 /p center table border="1px" cellSpacing="0px" cellPadding="0px" td 类型 /td td ID /td td NAME /td td 流程实例Id /td td 开始时间 /td td 受理人 /td td 完成时间 /td td 发起原因 /td td 内容 /td /tr tr ng-repeat="task in taskList | orderBy:id" td {{task.taskType}} /td td {{task.id}} /td td {{task.name}} /td td {{task.processInstanceId}} /td td {{task.startTime | date:"yyyy-MM-dd HH:mm:ss"}} /td td {{task.assignee}} /td td {{task.endTime | date:"yyyy-MM-dd HH:mm:ss"}} /td td {{task.cause}} /td td {{task.content}} /td /tr /table /center /div
项目中工作流部署详细解析!Spring中部署Activiti流程定义的三种姿势 本文对工作流Activiti框架中流程定义的部署进行了详细说明介绍。介绍了工作流Activiti框架中业务流程部署的两种方式,包括编程式部署以及通过Activiti Explorer控制台部署。介绍了流程部署时需要使用到的外部资源,流程定义部署不同的版本生成不同的流程定义的图片。通过这篇文章,基本上对工作流Activiti框架中流程定义的部署就可以很熟练了。
Spring集成使用工作流框架Activiti!事务配置,注解配置以及流程资源自动化部署 本文详尽地说明了如何在Spring项目中集成使用工作流Activiti框架。介绍了在Spring框架的项目中使用工作流Activti框架时事务的配置,表达式的使用,资源的自动化部署,单元测试以及基于注解的配置。通过这篇文章介绍的工作流框架Activiti集成到Spring项目中的使用,可以让我们更加能够熟练的在项目中使用工作流Activti框架。
相关jar包 Activiti的相关jar包 Activiti依赖的相关jar包 Spring的相关jar包 Spring依赖的相关jar包 本示例相关jar包截图 配置文件设置
span "feed-item-img" target="_blank" href="https://developer.aliyun.com/article/28590">
span "feed-item-img" target="_blank" href="https://developer.aliyun.com/article/28592">
span "author-img" src="https://ucc.alicdn.com/avatar/64a40364363447ceb5d1581bedd88018.png?x-oss-process=image/resize,h_150,m_lfit" />
涂宗勋 认真生活,快乐工作,保持理想!https://blog.csdn.net/tuzongxun
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载
相关文章
- spring学习笔记(7)AOP前夕[2]CGLib动态代理实例解析
- 【Spring Boot】Spring Boot之两种引入spring boot maven依赖的方式
- 《转载》spring定时任务详解(@Scheduled注解)
- 简单的spring mvc实例
- spring boot: spring Aware的目的是为了让Bean获得Spring容器的服务
- Spring+Mybatis+SpringMVC+Maven+MySql搭建实例
- Spring aop面向切面编程概述
- spring的controller默认是单例还是多例
- Spring多数据源分布式事务管理/springmvc+spring+atomikos[jta]+druid+mybatis
- Spring Boot 之spring.factories
- [读后感]spring Mvc 教程框架实例以及系统演示下载
- 【架构师修炼之路】Redis 极简教程 : 基本数据结构, 跳表原理, Spring Boot 项目使用实例...
- JSP 获得Spring 注射对象
- Spring 下,关于动态数据源的事务问题的探讨
- Spring MVC使用SessionLocaleResolver实现用户自定义切换语言实例