- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Activiti流程跟踪监控图路径线和节点高亮显示.
流程图高亮显示
该流程图示基于5.12的基础上改造的,由于涉及未来的升级问题,所以使用继承的方式扩展它的画图类。闲话少说我们切入正题。
由于这是公司完整项目上的一个小模块,而最近公司不再做进一步的开发,只是优化,所以对于并行还不能支持,但方法有了,不过就是在做更一层次的处理。希望对大家有所帮助。。。
先晒一下,我做出来的效果。
具体实现步骤:
Action
/**
* 通过指定的流程实例id生成流程监控图
*
* @param mapping
* @param form
* @param request
* @param response
* @return
*/
public ActionForward instanceDiagram(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
/** 获取流程实例ID */
String instanceId = StringUtils.trimToEmpty(request
.getParameter(instanceId));
// 设置页面不缓存
response.setHeader(Pragma, No-cache);
response.setHeader(Cache-Control, no-cache);
response.setDateHeader(Expires, 0);
try {
HistoricProcessInstance historicProcessInstance = historyService
.createHistoricProcessInstanceQuery()
.processInstanceId(instanceId).singleResult();
if (historicProcessInstance == null) {
throw new RuntimeException(获取流程图异常!);
} else {
BpmnModel bpmnModel = repositoryService
.getBpmnModel(historicProcessInstance
.getProcessDefinitionId());
ListHistoricActivityInstance activityInstances = historyService
.createHistoricActivityInstanceQuery()
.processInstanceId(instanceId)
.orderByHistoricActivityInstanceId().asc()
.list();//获取流程走过的节点,并按照节点生成先后顺序排序
ListString activitiIds = new ArrayListString();
ListString flowIds = new ArrayListString();
ListString currentFlowIds = new ArrayListString();
ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService)
.getDeployedProcessDefinition(historicProcessInstance
.getProcessDefinitionId());
flowIds = flowMoniService.getHighLightedFlows(
processDefinition, activityInstances);
currentFlowIds = flowMoniService.getCurrentHighLightedFlows(
processDefinition, activityInstances);
for (HistoricActivityInstance hai : activityInstances) {
activitiIds.add(hai.getActivityId(
文档评论(0)