This commit is contained in:
hanjian
2024-08-14 15:17:51 +08:00
parent 20a221c1a2
commit b610f94b2e
3483 changed files with 650965 additions and 0 deletions

View File

@@ -0,0 +1,205 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>节点分析</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
$(document).ready(function() {
getAnalysisData();
});
function openSysDialog(ctx, title){
var height1 = window.parent.document.documentElement.clientHeight;
var height = (parseInt(height1)-45)+"px";
showDiaLog(ctx,title,'1400px',height);
}
function getAnalysisData(){
//流程统计
$.ajax({
url:"${ctx}/flow/monitor/actAnalysisDetail.do",
type:"GET",
dataType:"json",
success:function(data){
for (var i = 0; i < eval(data).length; i++) {
getDatas(eval(data)[i]);
}
},
});
}
function getDatas(item){
if(item.id =="params"){
$("#actUserTime").text(item.actUserTime);
$("#doTaskAct").text(item.doTaskAct);
return;
}
var colors = ['#2194ff'];
//['#2194ff', '#face1d', '#37c461'];
Highcharts.getOptions().colors = Highcharts.map(colors, function (color) {
return {
radialGradient: { cx: 0, cy: -0.8, r: 2.3 },
stops: [[0, color], [2, Highcharts.Color(color).get('rgb')] // darken
]
};
});
Highcharts.setOptions({
lang: {
numericSymbols: null // 不换算单位
}
});
$('#'+item.id).highcharts({
chart:{
type: item.id == 'actAvgUserTimeTotal'?'bar':'column'
},
credits: {
enabled: false //不显示LOGO
},
exporting: { enabled:false },//导出图表去掉
title: {
text: ''
},
subtitle: {
text: ''
},
xAxis: {
type: 'category',
labels: {
rotation: item.id == 'actAvgUserTimeTotal'?0:-30 // 设置轴标签旋转角度
}
},
yAxis: {
min: 0,
title: {
text: ''
},
labels: {
formatter:function(){
return item.id=="actAvgUserTimeTotal"?this.value+"h":this.value;
},
rotation: item.id == 'actAvgUserTimeTotal'?-30:0 // 设置轴标签旋转角度
}
},
legend: {
enabled: false
},
tooltip: {
pointFormat: item.id == 'actAvgUserTimeTotal'?'<b>节点平均耗时:{point.y}(小时)</b>':'<b>待审流程最多的节点:{point.y}(个)</b>',
style: {
"fontSize": "10px",
"color":"#999",
}
},
plotOptions: {
series: {
stacking: 'normal',
cursor: 'pointer',
events: {
click: function(event) {
if(item.id=="actAvgUserTimeTotal"){
window.location.href="${ctx}/flow/monitor/actAvgUserTimePage.do?appId="+event.point.id;
}else{
window.location.href="${ctx}/flow/monitor/actDoProcessMaxPage.do?appId="+event.point.id;
}
}
}
}
},
series: eval(item.datas)
});
}
</script>
<style type="text/css">
</style>
</head>
<body>
<div class="page-content">
<div class="row process_monitor">
<div class="col-sm-12">
<div class="process_tabs">
<a class="tabs_link" href="flow/monitor/processAnalysis.do">流程分析</a>
<a class="tabs_link active" href="flow/monitor/actAnalysis.do">节点分析</a>
<a class="tabs_link" href="flow/monitor/staffAnalysis.do">人员分析</a>
</div><!--process_tabs 顶部页签-->
<div class="process_list">
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-5.png" /></div>
<div class="cell-text"><p class="title">平台耗时最长的节点</p><p class="text" id="actUserTime"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-8.png" /></div>
<div class="cell-text"><p class="title">待审流程最多的节点</p><p class="text" id="doTaskAct"></p></div>
</div>
</div><!--list-->
</div><!--process_list 图标列表-->
<div class="row">
<div class="col-sm-6">
<div class="widget-box ace-box-1">
<div class="widget-header widget-header-flat widget-header-small">
<h5 class="widget-title">平台耗时最长的节点</h5>
</div>
<div class="widget-body">
<div class="widget-main algin-center">
<div id="actAvgUserTimeTotal" style="min-width:500px;height:300px"></div>
</div><!--widget-main -->
</div><!--widget-body -->
</div>
</div><!--col-sm-6-->
<div class="col-sm-6">
<div class="widget-box ace-box-1">
<div class="widget-header widget-header-flat widget-header-small">
<h5 class="widget-title">待审流程最多的节点</h5>
</div>
<div class="widget-body">
<div class="widget-main algin-center">
<div id="actUserTimeTotal" style="min-width:500px;height:300px"></div>
</div><!--widget-main -->
</div><!--widget-body -->
</div>
</div><!--col-sm-6-->
</div><!--row-->
</div><!--col-sm-12-->
</div><!--row process_monitor 流程监控-->
</div><!-- /.page-content -->
</div><!--main-content-inner-->
</div><!-- /.main-content -->
</body>
</html>

View File

@@ -0,0 +1,254 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>平台耗时最长的节点</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
$(document).ready(function() {
getAnalysisData();
});
function openSysDialog(ctx, title){
var height1 = window.parent.document.documentElement.clientHeight;
var height = (parseInt(height1)-45)+"px";
showDiaLog(ctx,title,'1400px',height);
}
function getAnalysisData(){
//流程统计
$.ajax({
url:"${ctx}/flow/monitor/actAvgUserTimeDetail.do?appId="+$("#appId").val(),
type:"GET",
dataType:"json",
success:function(data){
for (var i = 0; i < eval(data).length; i++) {
getDatas(eval(data)[i]);
}
},
});
}
function getDatas(item){
if(item.id =="params"){
$("#modelTotal").text(item.modelTotal);
$("#processTotal").text(item.processTotal);
$("#actUserTime").text(item.actUserTime);
return;
}
var colors = ['#2194ff'];
//['#2194ff', '#face1d', '#37c461'];
Highcharts.getOptions().colors = Highcharts.map(colors, function (color) {
return {
radialGradient: { cx: 0, cy: -0.8, r: 2.3 },
stops: [[0, color], [2, Highcharts.Color(color).get('rgb')] // darken
]
};
});
Highcharts.setOptions({
lang: {
numericSymbols: null // 不换算单位
}
});
$('#'+item.id).highcharts({
chart: {
type: 'bar'
},
credits: {
enabled: false //不显示LOGO
},
exporting: { enabled:false },//导出图表去掉
title: {
text: ''
},
subtitle: {
text: ''
},
scrollbar: {
enabled: true
},
/* xAxis: {
categories: eval(item.list),
min: 5 //3.设置显示个数
}, */
xAxis: {
type: 'category',
labels: {
rotation: -10 // 设置轴标签旋转角度
}
},
yAxis: {
min: 0,
title: {
text: ''
},
/* scrollbar: {
enabled: true,
showFull: false
}, */
labels: {
formatter:function(){
return this.value+"h";
},
//rotation: -30 // 设置轴标签旋转角度
}
},
legend: {
enabled: false
},
tooltip: {
pointFormat: '<b>平均耗时:{point.y}(小时)</b>',
style: {
"fontSize": "10px",
"color":"#999",
}
},
plotOptions: {
series: {
cursor: 'pointer',
events: {
click: function(event) {
openSysDialog("${ctx}/taskMgr/list.do?tenantId="+event.point.appId+"&actDefId="+event.point.id,"平台耗时最长的节点");
}
}
}
},
series: eval(item.datas)
});
}
</script>
<style type="text/css">
</style>
</head>
<body>
<div class="page-content">
<input id="appId" name="appId" value="${appId}" type="hidden"/>
<div class="row process_monitor">
<div class="col-sm-12">
<div class="process_tabs">
<a class="tabs_link" href="flow/monitor/processAnalysis.do">流程分析</a>
<a class="tabs_link active" href="flow/monitor/actAnalysis.do">节点分析</a>
<a class="tabs_link" href="flow/monitor/staffAnalysis.do">人员分析</a>
<a class="btn-back" href="flow/monitor/actAnalysis.do"><i class="ace-icon fa fa-reply"></i>返回上级</a>
</div><!--process_tabs 顶部页签-->
<!-- <div class="process_screen">
<div class="cell-clum">创建时间</div>
<div class="cell-text">
<a class="link active">不限</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<input class="link-input" type="text" placeholder="2020-02-01" />
<span class="text">至</span>
<input class="link-input" type="text" placeholder="2020-02-01" />
</div>
<div class="cell-btn"><a class="btn-more">更多<i class="arrow fa fa-angle-down"></i></a></div>
</div> --><!--process_screen 筛选查询-->
<div class="process_list">
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-12.png" /></div>
<div class="cell-text"><p class="title">统计人数</p><p class="text" id="modelTotal"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-13.png" /></div>
<div class="cell-text"><p class="title">流程总数</p><p class="text" id="processTotal"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-14.png" /></div>
<div class="cell-text"><p class="title">平台耗时最长的节点</p><p class="text" id="actUserTime"></p></div>
</div>
</div><!--list-->
</div><!--process_list 图标列表-->
<div class="row">
<div class="col-sm-12">
<div class="widget-box ace-box-1">
<div class="widget-header widget-header-flat widget-header-small">
<h5 class="widget-title">${appName }平台耗时最长的节点</h5>
</div>
<div class="widget-body">
<div class="widget-main algin-center">
<div id="actAvgUserTimeTotal" style="min-width:500px;min-height:550px"></div>
</div><!--widget-main -->
</div><!--widget-body -->
</div>
</div><!--col-sm-12-->
</div><!--row-->
</div><!--col-sm-12-->
</div><!--row process_monitor 流程监控-->
</div><!-- /.page-content -->
</div><!--main-content-inner-->
</div><!-- /.main-content -->
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
</body>
</html>

View File

@@ -0,0 +1,237 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>待审流程最多的节点</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
$(document).ready(function() {
getAnalysisData();
});
function openSysDialog(ctx, title){
var height1 = window.parent.document.documentElement.clientHeight;
var height = (parseInt(height1)-45)+"px";
showDiaLog(ctx,title,'1400px',height);
}
function getAnalysisData(){
//流程统计
$.ajax({
url:"${ctx}/flow/monitor/actDoProcessDetail.do?appId="+$("#appId").val(),
type:"GET",
dataType:"json",
success:function(data){
for (var i = 0; i < eval(data).length; i++) {
getDatas(eval(data)[i]);
}
},
});
}
function getDatas(item){
if(item.id =="params"){
$("#staffTotal").text(item.staffTotal);
$("#processTotal").text(item.processTotal);
$("#doTaskAct").text(item.doTaskAct);
return;
}
var colors = ['#2194ff'];
//['#2194ff', '#face1d', '#37c461'];
Highcharts.getOptions().colors = Highcharts.map(colors, function (color) {
return {
radialGradient: { cx: 0, cy: -0.8, r: 2.3 },
stops: [[0, color], [2, Highcharts.Color(color).get('rgb')] // darken
]
};
});
Highcharts.setOptions({
lang: {
numericSymbols: null // 不换算单位
}
});
$('#'+item.id).highcharts({
chart: {
type: 'column'
},
credits: {
enabled: false //不显示LOGO
},
exporting: { enabled:false },//导出图表去掉
title: {
text: ''
},
subtitle: {
text: ''
},
xAxis: {
type: 'category',
labels: {
rotation: -30 // 设置轴标签旋转角度
}
},
yAxis: {
min: 0,
title: {
text: ''
}
},
legend: {
enabled: false
},
tooltip: {
pointFormat: '<b>待办数:{point.y}(个)</b>',
style: {
"fontSize": "10px",
"color":"#999",
}
},
plotOptions: {
series: {
cursor: 'pointer',
events: {
click: function(event) {
openSysDialog("${ctx}/taskMgr/list.do?tenantId="+event.point.appId+"&actDefId="+event.point.id,"待审流程最多的节点");
}
}
}
},
series: eval(item.datas)
});
}
</script>
<style type="text/css">
</style>
</head>
<body>
<div class="page-content">
<input id="appId" name="appId" value="${appId}" type="hidden"/>
<div class="row process_monitor">
<div class="col-sm-12">
<div class="process_tabs">
<a class="tabs_link" href="flow/monitor/processAnalysis.do">流程分析</a>
<a class="tabs_link active" href="flow/monitor/actAnalysis.do">节点分析</a>
<a class="tabs_link" href="flow/monitor/staffAnalysis.do">人员分析</a>
<a class="btn-back" href="flow/monitor/actAnalysis.do"><i class="ace-icon fa fa-reply"></i>返回上级</a>
</div><!--process_tabs 顶部页签-->
<!-- <div class="process_screen">
<div class="cell-clum">创建时间</div>
<div class="cell-text">
<a class="link active">不限</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<input class="link-input" type="text" placeholder="2020-02-01" />
<span class="text">至</span>
<input class="link-input" type="text" placeholder="2020-02-01" />
</div>
<div class="cell-btn"><a class="btn-more">更多<i class="arrow fa fa-angle-down"></i></a></div>
</div> --><!--process_screen 筛选查询-->
<div class="process_list">
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-12.png" /></div>
<div class="cell-text"><p class="title">统计人数</p><p class="text" id="staffTotal"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-13.png" /></div>
<div class="cell-text"><p class="title">待办流程总数</p><p class="text" id="processTotal"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-14.png" /></div>
<div class="cell-text"><p class="title">待审流程最多的节点</p><p class="text" id="doTaskAct"></p></div>
</div>
</div><!--list-->
</div><!--process_list 图标列表-->
<div class="row">
<div class="col-sm-12">
<div class="widget-box ace-box-1">
<div class="widget-header widget-header-flat widget-header-small">
<h5 class="widget-title">${appName}待审流程最多的节点</h5>
</div>
<div class="widget-body">
<div class="widget-main algin-center">
<div id="doTaskActTotal" style="min-width:500px;min-height:550px"></div>
</div><!--widget-main -->
</div><!--widget-body -->
</div>
</div><!--col-sm-12-->
</div><!--row-->
</div><!--col-sm-12-->
</div><!--row process_monitor 流程监控-->
</div><!-- /.page-content -->
</div><!--main-content-inner-->
</div><!-- /.main-content -->
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
</body>
</html>

View File

@@ -0,0 +1,318 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>流程分析</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
$(document).ready(function() {
getAnalysisData();
});
function openSysDialog(ctx, title){
var height1 = window.parent.document.documentElement.clientHeight;
var height = (parseInt(height1)-45)+"px";
showDiaLog(ctx,title,'1400px',height);
}
function getAnalysisData(){
//流程统计
$.ajax({
url:"${ctx}/flow/monitor/analysisDetail.do",
type:"GET",
dataType:"json",
success:function(data){
for (var i = 0; i < eval(data).length; i++) {
getDatas(eval(data)[i]);
}
},
});
}
function getDatas(item){
if(item.id =="params"){
$("#mostDaiBanProcess").text(item.daiBan);
$("#avgUserTimeprocess").text(item.avgUserTimeprocess);
$("#overTimeprocess").text(item.overTimeprocess);
$("#createMostprocess").text(item.createMostprocess);
return;
}else if (item.id =="overTimeTotal" || item.id == "createProcessTotal"){
this.getbarDatas(item);
return;
}
var colors = ['#2194ff'];
//['#2194ff', '#face1d', '#37c461'];
Highcharts.getOptions().colors = Highcharts.map(colors, function (color) {
return {
radialGradient: { cx: 0, cy: -0.8, r: 2.3 },
stops: [[0, color], [2, Highcharts.Color(color).get('rgb')] // darken
]
};
});
Highcharts.setOptions({
lang: {
numericSymbols: null // 不换算单位
}
});
$('#'+item.id).highcharts({
chart: {
type: 'bar'
},
credits: {
enabled: false //不显示LOGO
},
exporting: { enabled:false },//导出图表去掉
title: {
text: ''
},
subtitle: {
text: ''
},
xAxis: {
type: 'category',
labels: {
rotation: 0 // 设置轴标签旋转角度
}
},
yAxis: {
min: 0,
title: {
text: ''
},
labels: {
formatter:function(){
return item.id=="avgUserTimeTotal"?this.value+"h":this.value;
},
}
},
legend: {
enabled: false
},
tooltip: {
pointFormat: item.id=="daiBanTotal"?'待办最多的流程数量:{point.y}(个)':'平均审批耗时时长:{point.y}(小时)',
style: {
"fontSize": "10px",
"color":"#999",
}
},
plotOptions: {
series: {
cursor: 'pointer',
events: {
click: function(event) {
if(item.id=="daiBanTotal"){
window.location.href="${ctx}/flow/monitor/analysisDetailByAppId.do?appId="+event.point.id;
}else{
window.location.href="${ctx}/flow/monitor/avgUserTimePage.do?appId="+event.point.id;
}
}
}
}
},
series: eval(item.datas)
});
}
function getbarDatas(item){
var colors = item.id=="overTimeTotal"?['#2194ff','#37c461']:['#face1d','#2194ff','#37c461'];
//['#face1d', '#2194ff', '#37c461','#88e9ec'];
Highcharts.getOptions().colors = Highcharts.map(colors, function (color) {
return {
radialGradient: { cx: 0, cy: -0.8, r: 2.3 },
stops: [[0, color], [2, Highcharts.Color(color).get('rgb')] // darken
]
};
});
$('#'+item.id).highcharts({
chart: {
type: 'bar'
},
credits: {
enabled: false //不显示LOGO
},
exporting: { enabled:false },//导出图表去掉
title: {
text: ''
},
xAxis: {
categories: eval(item.list)
},
yAxis: {
min: 0,
labels: {
formatter:function(){
return item.id=="overTimeTotal"?this.value+"h":this.value;
},
rotation: item.id=="overTimeTotal"?-30:0 // 设置轴标签旋转角度
},
title: {
text: ''
}
},
legend: {
/* 图例显示顺序反转
* 这是因为堆叠的顺序默认是反转的,可以设置
* yAxis.reversedStacks = false 来达到类似的效果
*/
reversed: true
},
tooltip: {
pointFormat:'{point.title}',
style: {
"fontSize": "10px",
"color":"#999",
}
},
plotOptions: {
series: {
stacking: 'normal',
cursor: 'pointer',
events: {
click: function(event) {
if(item.id=="overTimeTotal"){
window.location.href="${ctx}/flow/monitor/overTimePage.do?appId="+event.point.id;
}else{
window.location.href="${ctx}/flow/monitor/createMaxPorcessPage.do?appId="+event.point.id;
//openSysDialog("${ctx}/taskMgr/list.do?tenantId="+event.point.appId+"&processDefName="+event.point.id,"流程创建数量排名");
}
}
}
}
},
series: eval(item.datas)
});
}
</script>
<style type="text/css">
</style>
</head>
<body>
<div class="page-content">
<div class="row process_monitor">
<div class="col-sm-12">
<div class="process_tabs">
<a class="tabs_link active" href="flow/monitor/processAnalysis.do">流程分析</a>
<a class="tabs_link" href="flow/monitor/actAnalysis.do">节点分析</a>
<a class="tabs_link" href="flow/monitor/staffAnalysis.do">人员分析</a>
</div><!--process_tabs 顶部页签-->
<div class="process_list">
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-1.png" /></div>
<div class="cell-text"><p class="title">待办最多的流程</p><p class="text" id="mostDaiBanProcess"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-2.png" /></div>
<div class="cell-text"><p class="title">超时处理最多的流程</p><p class="text" id="overTimeprocess"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table" >
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-3.png" /></div>
<div class="cell-text"><p class="title">创建量最高的流程</p><p class="text" id="createMostprocess"></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-4.png" /></div>
<div class="cell-text"><p class="title">平均审批耗时最长的流程</p><p class="text" id="avgUserTimeprocess"></div>
</div>
</div><!--list-->
</div><!--process_list 图标列表-->
<div class="row">
<div class="col-sm-6">
<div class="widget-box ace-box-1">
<div class="widget-header widget-header-flat widget-header-small">
<h5 class="widget-title">待办最多的流程</h5>
</div>
<div class="widget-body">
<div class="widget-main algin-center">
<div id="daiBanTotal" style="min-width:500px;height:300px"></div>
</div><!--widget-main -->
</div><!--widget-body -->
</div>
</div><!--col-sm-6-->
<div class="col-sm-6">
<div class="widget-box ace-box-1">
<div class="widget-header widget-header-flat widget-header-small">
<h5 class="widget-title">超时处理最多的流程</h5>
</div>
<div class="widget-body">
<div class="widget-main algin-center">
<div id="overTimeTotal" style="min-width:500px;height:300px"></div>
</div><!--widget-main -->
</div><!--widget-body -->
</div>
</div><!--col-sm-6-->
</div><!--row-->
<div class="row">
<div class="col-sm-6">
<div class="widget-box ace-box-1">
<div class="widget-header widget-header-flat widget-header-small">
<h5 class="widget-title">流程创建数量排名</h5>
</div>
<div class="widget-body">
<div class="widget-main algin-center">
<div id="createProcessTotal" style="min-width:500px;height:300px"></div>
</div><!--widget-main -->
</div><!--widget-body -->
</div>
</div><!--col-sm-6-->
<div class="col-sm-6">
<div class="widget-box ace-box-1">
<div class="widget-header widget-header-flat widget-header-small">
<h5 class="widget-title">平均审批耗时最长的流程</h5>
</div>
<div class="widget-body">
<div class="widget-main algin-center">
<div id="avgUserTimeTotal" style="min-width:500px;height:300px"></div>
</div><!--widget-main -->
</div><!--widget-body -->
</div>
</div><!--col-sm-6-->
</div><!--row-->
</div><!--col-sm-12-->
</div><!--row process_monitor 流程监控-->
</div><!-- /.page-content -->
</div><!--main-content-inner-->
</div><!-- /.main-content -->
</body>
</html>

View File

@@ -0,0 +1,237 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>分析详情</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
$(document).ready(function() {
getAnalysisData();
});
function openSysDialog(ctx, title){
var height1 = window.parent.document.documentElement.clientHeight;
var height = (parseInt(height1)-45)+"px";
showDiaLog(ctx,title,'1400px',height);
}
function getAnalysisData(){
//流程统计
$.ajax({
url:"${ctx}/flow/monitor/appProcessDetail.do?appId="+$("#appId").val(),
type:"GET",
dataType:"json",
success:function(data){
for (var i = 0; i < eval(data).length; i++) {
getDatas(eval(data)[i]);
}
},
});
}
function getDatas(item){
if(item.id =="params"){
$("#staffTotal").text(item.staffTotal);
$("#processTotal").text(item.processTotal);
$("#doTaskAct").text(item.doTaskAct);
return;
}
var colors = ['#2194ff'];
//['#2194ff', '#face1d', '#37c461'];
Highcharts.getOptions().colors = Highcharts.map(colors, function (color) {
return {
radialGradient: { cx: 0, cy: -0.8, r: 2.3 },
stops: [[0, color], [2, Highcharts.Color(color).get('rgb')] // darken
]
};
});
Highcharts.setOptions({
lang: {
numericSymbols: null // 不换算单位
}
});
$('#'+item.id).highcharts({
chart: {
type: 'column'
},
credits: {
enabled: false //不显示LOGO
},
exporting: { enabled:false },//导出图表去掉
title: {
text: ''
},
subtitle: {
text: ''
},
xAxis: {
type: 'category',
labels: {
rotation: -30 // 设置轴标签旋转角度
}
},
yAxis: {
min: 0,
title: {
text: ''
}
},
legend: {
enabled: false
},
tooltip: {
pointFormat: '<b>待办数:{point.y}(个)</b>',
style: {
"fontSize": "10px",
"color":"#999",
}
},
plotOptions: {
series: {
cursor: 'pointer',
events: {
click: function(event) {
openSysDialog("${ctx}/taskMgr/list.do?tenantId="+event.point.appId+"&processDefName="+event.point.id,"待办最多的流程");
}
}
}
},
series: eval(item.datas)
});
}
</script>
<style type="text/css">
</style>
</head>
<body>
<div class="page-content">
<input id="appId" name="appId" value="${appId}" type="hidden"/>
<div class="row process_monitor">
<div class="col-sm-12">
<div class="process_tabs">
<a class="tabs_link active" href="flow/monitor/processAnalysis.do">流程分析</a>
<a class="tabs_link" href="flow/monitor/actAnalysis.do">节点分析</a>
<a class="tabs_link" href="flow/monitor/staffAnalysis.do">人员分析</a>
<a class="btn-back" href="flow/monitor/processAnalysis.do"><i class="ace-icon fa fa-reply"></i>返回上级</a>
</div><!--process_tabs 顶部页签-->
<!-- <div class="process_screen">
<div class="cell-clum">创建时间</div>
<div class="cell-text">
<a class="link active">不限</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<input class="link-input" type="text" placeholder="2020-02-01" />
<span class="text">至</span>
<input class="link-input" type="text" placeholder="2020-02-01" />
</div>
<div class="cell-btn"><a class="btn-more">更多<i class="arrow fa fa-angle-down"></i></a></div>
</div> --><!--process_screen 筛选查询-->
<div class="process_list">
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-12.png" /></div>
<div class="cell-text"><p class="title">统计人数</p><p class="text" id="staffTotal"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-13.png" /></div>
<div class="cell-text"><p class="title">待办流程总数</p><p class="text" id="processTotal"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-14.png" /></div>
<div class="cell-text"><p class="title">待办最多的流程</p><p class="text" id="doTaskAct"></p></div>
</div>
</div><!--list-->
</div><!--process_list 图标列表-->
<div class="row">
<div class="col-sm-12">
<div class="widget-box ace-box-1">
<div class="widget-header widget-header-flat widget-header-small">
<h5 class="widget-title">${appName}待办最多的流程</h5>
</div>
<div class="widget-body">
<div class="widget-main algin-center">
<div id="doTaskActTotal" style="min-width:500px;min-height:550px"></div>
</div><!--widget-main -->
</div><!--widget-body -->
</div>
</div><!--col-sm-12-->
</div><!--row-->
</div><!--col-sm-12-->
</div><!--row process_monitor 流程监控-->
</div><!-- /.page-content -->
</div><!--main-content-inner-->
</div><!-- /.main-content -->
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
</body>
</html>

View File

@@ -0,0 +1,371 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>租户统计</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//加载待迁移的流程待办
readytaskTransferList();
//加载近一周的流程异常
readyerrorList();
//加载待迁移的流程资源
//readyerrorResource();
//加载近一天的流程运行
readyinfoList();
//加载流程实例
$.ajax({
url:"${ctx}/processReport/appprocessModelCountIndex.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#processModel").hide();
$("#processModelLoading").append("<div id='processModelCountIndex' align='center' class='bigpic'></div>");
},
success:function(data){
//console.log(data);
$("#processModel").show();
$("#processModel").text(data.count);
//binderrorResource(data.page.result);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#processModelCountIndex").fadeOut();
}
});
//加载流程定义
$.ajax({
url:"${ctx}/processReport/appprocessDefCountIndex.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#processDef").hide();
$("#processDefLoading").append("<div id='processDefCountIndex' align='center' class='bigpic'></div>");
},
success:function(data){
//console.log(data);
$("#processDef").show();
$("#processDef").text(data.count);
//binderrorResource(data.page.result);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#processDefCountIndex").fadeOut();
}
});
//加载流程历史
$.ajax({
url:"${ctx}/processReport/apphistoryCountIndex.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#processHistory").hide();
$("#processHistoryLoading").append("<div id='historyCountIndex' align='center' class='bigpic'></div>");
},
success:function(data){
//console.log(data);
$("#processHistory").show();
$("#processHistory").text(data.count);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#historyCountIndex").fadeOut();
}
});
//加载流程任务待办
$.ajax({
url:"${ctx}/processReport/apptaskCountIndex.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#processTask").hide();
$("#processTaskLoading").append("<div id='taskCountIndex' align='center' class='bigpic'></div>");
},
success:function(data){
//console.log(data);
$("#processTask").show();
$("#processTask").text(data.count);
//binderrorResource(data.page.result);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#taskCountIndex").fadeOut();
}
});
});
function readytaskTransferList(){
$.ajax({
url:"${ctx}/processReport/apptaskTransferIndex.do?dataType=1",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#processTransfer").hide();
$("#TransferLoading").append("<div id='taskTransferIndex' align='center' class='bigpic'></div>");
},
success:function(data){
$("#processTransfer").show();
$("#processTransfer").text(data.count);
}
,
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#taskTransferIndex").fadeOut();
},
error:function(){
}
})
}
function readyerrorList(){
$.ajax({
url:"${ctx}/processReport/apperrorListIndex.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#processError").hide();
$("#processErrorLoading").append("<div id='errorListIndex' align='center' class='bigpic'></div>");
},
success:function(data){
//console.log(data);
$("#processError").show();
$("#processError").text(data.count);
// binderrorList(data.page.result);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#errorListIndex").fadeOut();
}
})
}
function readyinfoList(){
$.ajax({
url:"${ctx}/processReport/appinfoListIndex.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#processRun").hide();
$("#processRunLoading").append("<div id='infoListIndex' align='center' class='bigpic'></div>");
},
success:function(data){
//console.log(data.count);
$("#processRun").show();
$("#processRun").text(data.count);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#infoListIndex").fadeOut();
}
})
}
function readyerrorResource(){
$.ajax({
url:"${ctx}/processReport/apperrorResourceIndex.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#processRes").hide();
$("#processResLoading").append("<div id='errorResourceIndex' align='center' class='bigpic'></div>");
},
success:function(data){
//console.log("Resource:"+data);
$("#processRes").show();
$("#processRes").text(data.count);
//binderrorResource(data.page.result);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#errorResourceIndex").fadeOut();
},
error:function(){
$("#processRes").show();
}
})
}
</script>
<style type="text/css">
/*等待进度大css*/
.bigpic{
width: 16px;
height: 16px;
background-image: url("${ctx}/resource/css/icons/loading.gif");
position: absolute;
top: 0px;
bottom: 0px;
right: 0px;
left: 0px;
margin: auto;
}
</style>
</head>
<body>
<div class="row" style="margin: 10px;">
<div class="col-xs-3" style="padding-left: 0;padding-right: 6px;">
<div class="widget-box">
<div class="widget-header">
<h5>
流程定义
</h5>
</div>
<div class="widget-body" id="processDefLoading" style="height: 170px;">
<a id="processDef" href="${ctx }/procDefMgr/list.do" style="display: flex;justify-content: center;align-items: center;font-size: 50px;color: #438eb9;line-height: 170px;">0</a>
</div>
</div>
</div>
<div class="col-xs-3" style="padding-left: 6px;padding-right: 6px;">
<div class="widget-box">
<div class="widget-header">
<h5>
流程实例
</h5>
</div>
<div class="widget-body" id="processModelLoading" style="height: 170px;">
<a id="processModel" href="${ctx }/procInstMgr/list.do" style="display: flex;justify-content: center;align-items: center;font-size: 50px;color: #438eb9;line-height: 170px;">0</a>
</div>
</div>
</div>
<div class="col-xs-3" style="padding-left: 6px;padding-right: 6px;">
<div class="widget-box">
<div class="widget-header">
<h5>
流程任务
</h5>
</div>
<div class="widget-body" id="processTaskLoading" style="height: 170px;">
<a id="processTask" href="${ctx }/taskMgr/list.do" style="display: flex;justify-content: center;align-items: center;font-size: 50px;color: #438eb9;line-height: 170px;">0</a>
</div>
</div>
</div>
<div class="col-xs-3" style="padding-left: 6px;padding-right: 0;">
<div class="widget-box">
<div class="widget-header">
<h5>
流程历史
</h5>
</div>
<div class="widget-body" id="processHistoryLoading" style="height: 170px;">
<a id="processHistory" href="${ctx }/procInstMgr/historyList.do" style="display: flex;justify-content: center;align-items: center;font-size: 50px;color: #438eb9;line-height: 170px;">0</a>
</div>
</div>
</div>
</div>
<div class="row" style="margin: 10px;">
<div class="col-xs-4" style="padding-left: 0;padding-right: 6px;">
<div class="widget-box">
<div class="widget-header">
<h5>
近一天的流程运行
</h5>
</div>
<div class="widget-body" id="processRunLoading" style="height: 170px;">
<a id="processRun" href="${ctx }/processErrorLog/infoList.do" style="display: flex;justify-content: center;align-items: center;font-size: 50px;color: green;line-height: 170px;">0</a>
</div>
</div>
</div>
<div class="col-xs-4" style="padding-left: 6px;padding-right: 6px;">
<div class="widget-box">
<div class="widget-header">
<h5>
近一周的流程异常
</h5>
</div>
<div class="widget-body" id="processErrorLoading" style="height: 170px;">
<a id="processError" href="${ctx }/processErrorLog/errorList.do" style="display: flex;justify-content: center;align-items: center;font-size: 50px;color: red;line-height: 170px;">0</a>
</div>
</div>
</div>
<div class="col-xs-4" style="padding-left: 6px;padding-right: 0;">
<div class="widget-box">
<div class="widget-header">
<h5>
待迁移的流程待办
</h5>
</div>
<div class="widget-body" id="TransferLoading" style="height: 170px;">
<a id="processTransfer" href="${ctx }/taskMgr/taskTransferList.do?dataType=1" style="display: flex;justify-content: center;align-items: center;font-size: 50px;color: orange;line-height: 170px;">0</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,242 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>平均耗时</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
$(document).ready(function() {
getAnalysisData();
});
function openSysDialog(ctx, title){
var height1 = window.parent.document.documentElement.clientHeight;
var height = (parseInt(height1)-45)+"px";
showDiaLog(ctx,title,'1400px',height);
}
function getAnalysisData(){
//流程统计
$.ajax({
url:"${ctx}/flow/monitor/avgUserTimeDetail.do?appId="+$("#appId").val(),
type:"GET",
dataType:"json",
success:function(data){
for (var i = 0; i < eval(data).length; i++) {
getDatas(eval(data)[i]);
}
},
});
}
function getDatas(item){
if(item.id =="params"){
$("#modelTotal").text(item.modelTotal);
$("#processTotal").text(item.processTotal);
$("#actUserTime").text(item.actUserTime);
return;
}
var colors = ['#2194ff'];
//['#2194ff', '#face1d', '#37c461'];
Highcharts.getOptions().colors = Highcharts.map(colors, function (color) {
return {
radialGradient: { cx: 0, cy: -0.8, r: 2.3 },
stops: [[0, color], [2, Highcharts.Color(color).get('rgb')] // darken
]
};
});
Highcharts.setOptions({
lang: {
numericSymbols: null // 不换算单位
}
});
$('#'+item.id).highcharts({
chart: {
type: 'bar'
},
credits: {
enabled: false //不显示LOGO
},
exporting: { enabled:false },//导出图表去掉
title: {
text: ''
},
subtitle: {
text: ''
},
xAxis: {
type: 'category',
labels: {
rotation: 0 // 设置轴标签旋转角度
}
},
yAxis: {
labels: {
formatter:function(){
return this.value+"h";
},
},
min: 0,
title: {
text: ''
}
},
legend: {
enabled: false
},
tooltip: {
pointFormat: '<b>平均审批耗时:{point.y}(小时)</b>',
style: {
"fontSize": "10px",
"color":"#999",
}
},
plotOptions: {
series: {
cursor: 'pointer',
events: {
click: function(event) {
openSysDialog("${ctx}/taskMgr/list.do?tenantId="+event.point.appId+"&processDefName="+event.point.id,"平均审批耗时最长的流程");
}
}
}
},
series: eval(item.datas)
});
}
</script>
<style type="text/css">
</style>
</head>
<body>
<div class="page-content">
<input id="appId" name="appId" value="${appId}" type="hidden"/>
<div class="row process_monitor">
<div class="col-sm-12">
<div class="process_tabs">
<a class="tabs_link active" href="flow/monitor/processAnalysis.do">流程分析</a>
<a class="tabs_link" href="flow/monitor/actAnalysis.do">节点分析</a>
<a class="tabs_link" href="flow/monitor/staffAnalysis.do">人员分析</a>
<a class="btn-back" href="flow/monitor/processAnalysis.do"><i class="ace-icon fa fa-reply"></i>返回上级</a>
</div><!--process_tabs 顶部页签-->
<!-- <div class="process_screen">
<div class="cell-clum">创建时间</div>
<div class="cell-text">
<a class="link active">不限</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<input class="link-input" type="text" placeholder="2020-02-01" />
<span class="text">至</span>
<input class="link-input" type="text" placeholder="2020-02-01" />
</div>
<div class="cell-btn"><a class="btn-more">更多<i class="arrow fa fa-angle-down"></i></a></div>
</div> --><!--process_screen 筛选查询-->
<div class="process_list">
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-12.png" /></div>
<div class="cell-text"><p class="title">统计流程定义数量</p><p class="text" id="modelTotal"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-13.png" /></div>
<div class="cell-text"><p class="title">耗时流程总数</p><p class="text" id="processTotal"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-14.png" /></div>
<div class="cell-text"><p class="title">平均耗时最长的流程</p><p class="text" id="actUserTime"></p></div>
</div>
</div><!--list-->
</div><!--process_list 图标列表-->
<div class="row">
<div class="col-sm-12">
<div class="widget-box ace-box-1">
<div class="widget-header widget-header-flat widget-header-small">
<h5 class="widget-title">${appName}平均耗时最长的流程</h5>
</div>
<div class="widget-body">
<div class="widget-main algin-center">
<div id="actAvgUserTimeTotal" style="min-width:500px;min-height:550px"></div>
</div><!--widget-main -->
</div><!--widget-body -->
</div>
</div><!--col-sm-12-->
</div><!--row-->
</div><!--col-sm-12-->
</div><!--row process_monitor 流程监控-->
</div><!-- /.page-content -->
</div><!--main-content-inner-->
</div><!-- /.main-content -->
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
</body>
</html>

View File

@@ -0,0 +1,246 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>创建最多的流程详情 </title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
$(document).ready(function() {
getAnalysisData();
});
function openSysDialog(ctx, title){
var height1 = window.parent.document.documentElement.clientHeight;
var height = (parseInt(height1)-45)+"px";
showDiaLog(ctx,title,'1400px',height);
}
function getAnalysisData(){
//流程统计
$.ajax({
url:"${ctx}/flow/monitor/createMaxProcessDetail.do?appId="+$("#appId").val(),
type:"GET",
dataType:"json",
success:function(data){
for (var i = 0; i < eval(data).length; i++) {
getDatas(eval(data)[i]);
}
},
});
}
function getDatas(item){
if(item.id =="params"){
$("#total").text(item.total);
$("#deal").text(item.deal);
$("#un_deal").text(item.un_deal);
$("#cancle").text(item.cancle);
return;
}
var colors = ['#face1d','#2194ff','#37c461'];
//['#2194ff', '#face1d', '#37c461'];
Highcharts.getOptions().colors = Highcharts.map(colors, function (color) {
return {
radialGradient: { cx: 0, cy: -0.8, r: 2.3 },
stops: [[0, color], [2, Highcharts.Color(color).get('rgb')] // darken
]
};
});
Highcharts.setOptions({
lang: {
numericSymbols: null // 不换算单位
}
});
$('#'+item.id).highcharts({
chart: {
type: 'bar'
},
credits: {
enabled: false //不显示LOGO
},
exporting: { enabled:false },//导出图表去掉
title: {
text: ''
},
xAxis: {
categories: eval(item.list),
},
yAxis: {
min: 0,
title: {
text: ''
},
labels: {
rotation:0 // 设置轴标签旋转角度
}
},
legend: {
/* 图例显示顺序反转
* 这是因为堆叠的顺序默认是反转的,可以设置
* yAxis.reversedStacks = false 来达到类似的效果
*/
reversed: true
},
tooltip: {
pointFormat: '<b>{point.title}</b>',
style: {
"fontSize": "10px",
"color":"#999",
}
},
plotOptions: {
series: {
stacking: 'normal',
cursor: 'pointer',
events: {
click: function(event) {
openSysDialog("${ctx}/taskMgr/list.do?tenantId="+event.point.appId+"&processDefName="+event.point.id,"流程创建数量排名");
}
}
}
},
series: eval(item.datas)
});
}
</script>
<style type="text/css">
</style>
</head>
<body>
<div class="page-content">
<input id="appId" name="appId" value="${appId}" type="hidden"/>
<div class="row process_monitor">
<div class="col-sm-12">
<div class="process_tabs">
<a class="tabs_link active" href="flow/monitor/processAnalysis.do">流程分析</a>
<a class="tabs_link" href="flow/monitor/actAnalysis.do">节点分析</a>
<a class="tabs_link" href="flow/monitor/staffAnalysis.do">人员分析</a>
<a class="btn-back" href="flow/monitor/processAnalysis.do"><i class="ace-icon fa fa-reply"></i>返回上级</a>
</div><!--process_tabs 顶部页签-->
<!-- <div class="process_screen">
<div class="cell-clum">创建时间</div>
<div class="cell-text">
<a class="link active">不限</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<input class="link-input" type="text" placeholder="2020-02-01" />
<span class="text">至</span>
<input class="link-input" type="text" placeholder="2020-02-01" />
</div>
<div class="cell-btn"><a class="btn-more">更多<i class="arrow fa fa-angle-down"></i></a></div>
</div> --><!--process_screen 筛选查询-->
<div class="process_list">
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-12.png" /></div>
<div class="cell-text"><p class="title">总共发起的流程</p><p class="text" id="total"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-13.png" /></div>
<div class="cell-text"><p class="title">已结束的流程</p><p class="text" id="deal"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-13.png" /></div>
<div class="cell-text"><p class="title">已废弃的流程</p><p class="text" id="cancle"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-14.png" /></div>
<div class="cell-text"><p class="title">运行中的流程</p><p class="text" id="un_deal"></p></div>
</div>
</div><!--list-->
</div><!--process_list 图标列表-->
<div class="row">
<div class="col-sm-12">
<div class="widget-box ace-box-1">
<div class="widget-header widget-header-flat widget-header-small">
<h5 class="widget-title">${appName}流程创建数量排名</h5>
</div>
<div class="widget-body">
<div class="widget-main algin-center">
<div id="createProcessTotal" style="min-width:500px;min-height:550px"></div>
</div><!--widget-main -->
</div><!--widget-body -->
</div>
</div><!--col-sm-12-->
</div><!--row-->
</div><!--col-sm-12-->
</div><!--row process_monitor 流程监控-->
</div><!-- /.page-content -->
</div><!--main-content-inner-->
</div><!-- /.main-content -->
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
</body>
</html>

View File

@@ -0,0 +1,330 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>租户统计</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
$(document).ready(function() {
getProcessData();
getProcessMonitorTop();
getSysLoadData();
});
function getProcessData(){
//流程统计
$.ajax({
url:"${ctx}/sys/index/statisticsProcessByTime.do",
type:"GET",
dataType:"json",
success:function(data){
for (var i = 0; i < eval(data).length; i++) {
getPieDatas(eval(data)[i]);
}
},
});
}
function getProcessMonitorTop(){
//流程监控top
$.ajax({
url:"${ctx}/sys/index/getProcessMonitorTop.do",
type:"GET",
dataType:"json",
success:function(data){
//topProcess(eval(data));
getReportDataByZxt("topFlow","应用监控","说明:每月各应用流程执行排名",eval(data).row,eval(data).column,'');
},
});
}
function getSysLoadData(){
//流程系统负载
$.ajax({
url:"${ctx}/sys/index/getSysLoadData.do",
type:"GET",
dataType:"json",
success:function(data){
loadProcess(eval(data));
},
});
}
function getPieDatas(item){
if(item.id =="singleCount"){
$("#total").text(item.total);
$("#cancle").text(item.cancle);
$("#deal").text(item.deal);
$("#un_deal").text(item.un_deal);
return;
}
$('#'+item.id).highcharts({
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
//spacing : [20, 0 , 20, 0]
},
credits: {
enabled: false //不显示LOGO
},
exporting: { enabled:false },//导出图表去掉
title: {
floating:true,
text: item.name+item.allCount,
style:{
"fontSize": "12px",
"color":"#000"
}
},
tooltip: {
pointFormat: '{point.y}'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
size:90,
innerSize:'20',
dataLabels: {
enabled: true,
//format: '<b>{point.name}</b>: {point.percentage:.1f}%',
style: {
"fontSize": "10px",
"color":"#999",
//color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
}
},
point: {
events: {
}
},
}
},
series: [{
type: 'pie',
innerSize: '90%',
name: item.name,
data: item.datas
}]
}, function(c) { // 图表初始化完毕后的会掉函数
// 环形图圆心
var centerY = c.series[0].center[1],
titleHeight = parseInt(c.title.styles.fontSize);
// 动态设置标题位置
c.setTitle({
y:centerY + titleHeight/4
});
});
}
function loadProcess(data){
$('#loadFlow').highcharts({
chart: {
type: 'column'
},
credits: {
enabled: false //不显示LOGO
},
exporting: { enabled:false },//导出图表去掉
title: {
text: '系统负载图',
style:{
"font-weight": "bold",
"font-family": "微软雅黑"
},
},
subtitle: {
text: '说明:最近十天流程执行数量',
},
xAxis: {
type: 'category',
labels: {
rotation: 0 // 设置轴标签旋转角度
}
},
yAxis: {
min: 0,
title: {
text: ''
}
},
legend: {
enabled: false
},
tooltip: {
pointFormat: '执行数量: <b>{point.y}</b>',
style: {
"fontSize": "10px",
"color":"#999",
}
},
plotOptions: {
column: {
borderWidth: 0
}
},
series: eval(data.datas)
});
}
function openSysDialog(ctx, title){
var height1 = window.parent.document.documentElement.clientHeight;
var height = (parseInt(height1)-45)+"px";
showDiaLog(ctx,title,'1400px',height);
}
</script>
<style type="text/css">
</style>
</head>
<body>
<div class="page-content">
<div class="process-page">
<div class="row" style="height: 200px;">
<div class="col-sm-12">
<div class="process-boxs">
<div class="list">
<img class="list-img" src="${ctx }/resource/css/images/lc-icon-8.png" />
<div class="title">接入应用</div>
<div class="sz">
<a href="javascript:void(0);" onclick="openSysDialog('/ebpm-process-manage/applicationMgr/list.do', '接入应用');">
${allApp}
</a>
</div>
</div><!--list-->
<div class="list">
<img class="list-img" src="${ctx }/resource/css/images/lc-icon-6.png" />
<div class="title">流程定义</div>
<div class="sz">
<a href="javascript:void(0);" onclick="openSysDialog('/ebpm-process-manage/procDefMgr/list.do?flag=true', '流程定义');">
${procDefKeyCount}
</a>
</div>
</div><!--list-->
<div class="list">
<img class="list-img" src="${ctx }/resource/css/images/lc-icon-3.png" />
<div class="title">所有流程</div>
<div class="sz">
<a href="javascript:void(0);" id="total" onclick="openSysDialog('/ebpm-process-manage/sysMgr/sysProcessInstList.do?flag=true', '所有流程');">
</a>
</div>
</div><!--list-->
<div class="list">
<img class="list-img" src="${ctx }/resource/css/images/lc-icon-4.png" />
<div class="title">流程执行</div>
<div class="sz">
<a href="javascript:void(0);" onclick="openSysDialog('/ebpm-process-manage/processErrorLog/infoList.do?flag=true', '流程执行');">
${info}
</a>
</div>
</div><!--list-->
<div class="list">
<img class="list-img" src="${ctx }/resource/css/images/lc-icon-5.png" />
<div class="title">运行时流程</div>
<div class="sz">
<a href="javascript:void(0);" id="un_deal" onclick="openSysDialog('/ebpm-process-manage/sysMgr/sysProcessInstList.do?procState=1&flag=true', '运行时流程');">
</div>
</div><!--list-->
<div class="list">
<img class="list-img" src="${ctx }/resource/css/images/lc-icon-7.png" />
<div class="title">已结束流程</div>
<div class="sz">
<a href="javascript:void(0);" id="deal" onclick="openSysDialog('/ebpm-process-manage/sysMgr/sysProcessInstList.do?procState=5&flag=true', '已结束流程');">
</a>
</div>
</div><!--list-->
<div class="list">
<img class="list-img" src="${ctx }/resource/css/images/lc-icon-1.png" />
<div class="title">作废流程</div>
<div class="sz">
<a href="javascript:void(0);" id="cancle" onclick="openSysDialog('/ebpm-process-manage/sysMgr/sysProcessInstList.do?procState=3&flag=true', '作废流程');">
</a>
</div>
</div><!--list-->
<div class="list">
<img class="list-img" src="${ctx }/resource/css/images/lc-icon-2.png" />
<div class="title">异常流程</div>
<div class="sz">
<a href="javascript:void(0);" onclick="openSysDialog('/ebpm-process-manage/processErrorLog/errorList.do?flag=true', '异常流程');">
${error}
</a>
</div>
</div><!--list-->
</div><!--process-boxs-->
</div><!--col-sm-12-->
</div><!--row-->
<div class="row">
<div class="col-sm-3">
<div class="align-center">
<div id="allFlow" style="min-width:200px;height:200px"></div>
</div>
</div><!--col-sm-3-->
<div class="col-sm-3">
<div class="align-center">
<div id="yearFlow" style="min-width:200px;height:200px"></div>
</div>
</div><!--col-sm-3-->
<div class="col-sm-3">
<div class="align-center">
<div id="monthFlow" style="min-width:200px;height:200px"></div>
</div>
</div><!--col-sm-3-->
<div class="col-sm-3">
<div class="align-center">
<div id="weekFlow" style="min-width:200px;height:200px"></div>
</div>
</div><!--col-sm-3-->
</div><!--row-->
<div class="row">
<div class="col-sm-6">
<div class="align-center">
<div id="topFlow" style="min-width:400px;height:300px"></div>
</div>
</div><!--col-sm-6-->
<div class="col-sm-6">
<div class="align-center">
<div id="loadFlow" style="min-width:400px;height:300px"></div>
</div>
</div><!--col-sm-6-->
</div><!--row-->
</div><!--process-page-->
</div><!-- /.page-content -->
</body>
</html>

View File

@@ -0,0 +1,241 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>超时处理最多的流程详情 </title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
$(document).ready(function() {
getAnalysisData();
});
function openSysDialog(ctx, title){
var height1 = window.parent.document.documentElement.clientHeight;
var height = (parseInt(height1)-45)+"px";
showDiaLog(ctx,title,'1400px',height);
}
function getAnalysisData(){
//流程统计
$.ajax({
url:"${ctx}/flow/monitor/overTimeProcessDetail.do?appId="+$("#appId").val(),
type:"GET",
dataType:"json",
success:function(data){
for (var i = 0; i < eval(data).length; i++) {
getDatas(eval(data)[i]);
}
},
});
}
function getDatas(item){
if(item.id =="params"){
$("#modelTotal").text(item.modelTotal);
$("#processTotal").text(item.processTotal);
$("#actUserTime").text(item.actUserTime);
return;
}
var colors = ['#2194ff','#37c461'];
//['#2194ff', '#face1d', '#37c461'];
Highcharts.getOptions().colors = Highcharts.map(colors, function (color) {
return {
radialGradient: { cx: 0, cy: -0.8, r: 2.3 },
stops: [[0, color], [2, Highcharts.Color(color).get('rgb')] // darken
]
};
});
Highcharts.setOptions({
lang: {
numericSymbols: null // 不换算单位
}
});
$('#'+item.id).highcharts({
chart: {
type: 'bar'
},
credits: {
enabled: false //不显示LOGO
},
exporting: { enabled:false },//导出图表去掉
title: {
text: ''
},
xAxis: {
categories: eval(item.list),
},
yAxis: {
min: 0,
title: {
text: ''
},
labels: {
formatter:function(){
return this.value+"h";
},
rotation:-30 // 设置轴标签旋转角度
}
},
legend: {
/* 图例显示顺序反转
* 这是因为堆叠的顺序默认是反转的,可以设置
* yAxis.reversedStacks = false 来达到类似的效果
*/
reversed: true
},
tooltip: {
pointFormat: '<b>{point.title}</b>',
style: {
"fontSize": "10px",
"color":"#999",
}
},
plotOptions: {
series: {
stacking: 'normal',
cursor: 'pointer',
events: {
click: function(event) {
openSysDialog("${ctx}/procInstMgr/historyList.do?tenantId="+event.point.appId+"&processDefName="+event.point.id,"超时处理最多的流程");
}
}
}
},
series: eval(item.datas)
});
}
</script>
<style type="text/css">
</style>
</head>
<body>
<div class="page-content">
<input id="appId" name="appId" value="${appId}" type="hidden"/>
<div class="row process_monitor">
<div class="col-sm-12">
<div class="process_tabs">
<a class="tabs_link active" href="flow/monitor/processAnalysis.do">流程分析</a>
<a class="tabs_link" href="flow/monitor/actAnalysis.do">节点分析</a>
<a class="tabs_link" href="flow/monitor/staffAnalysis.do">人员分析</a>
<a class="btn-back" href="flow/monitor/processAnalysis.do"><i class="ace-icon fa fa-reply"></i>返回上级</a>
</div><!--process_tabs 顶部页签-->
<!-- <div class="process_screen">
<div class="cell-clum">创建时间</div>
<div class="cell-text">
<a class="link active">不限</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<input class="link-input" type="text" placeholder="2020-02-01" />
<span class="text">至</span>
<input class="link-input" type="text" placeholder="2020-02-01" />
</div>
<div class="cell-btn"><a class="btn-more">更多<i class="arrow fa fa-angle-down"></i></a></div>
</div> --><!--process_screen 筛选查询-->
<div class="process_list">
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-12.png" /></div>
<div class="cell-text"><p class="title">统计人数</p><p class="text" id="modelTotal"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-13.png" /></div>
<div class="cell-text"><p class="title">超时流程总数</p><p class="text" id="processTotal"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-14.png" /></div>
<div class="cell-text"><p class="title">超时处理最多的流程</p><p class="text" id="actUserTime"></p></div>
</div>
</div><!--list-->
</div><!--process_list 图标列表-->
<div class="row">
<div class="col-sm-12">
<div class="widget-box ace-box-1">
<div class="widget-header widget-header-flat widget-header-small">
<h5 class="widget-title">${appName}超时处理最多的流程</h5>
</div>
<div class="widget-body">
<div class="widget-main algin-center">
<div id="overTimeTotal" style="min-width:500px;min-height:550px"></div>
</div><!--widget-main -->
</div><!--widget-body -->
</div>
</div><!--col-sm-12-->
</div><!--row-->
</div><!--col-sm-12-->
</div><!--row process_monitor 流程监控-->
</div><!-- /.page-content -->
</div><!--main-content-inner-->
</div><!-- /.main-content -->
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
</body>
</html>

View File

@@ -0,0 +1,91 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>按流程定义统计</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
</script>
</head>
<body>
<form id="queryForm" name="queryForm" action="${ctx}/processReport/reportByDate.do" method="post" style="display: inline;">
<div class="main-container" id="main-container">
<div class="panel panel-primary">
<div class="panel-heading">
<h8>按流程定义统计</h8>
</div>
<div class="panel-body">
<div class="form-group well well-sm">
<table border="0" cellspacing="0" cellpadding="0"
class="table-search">
<tr>
<td width="50px">年份:</td>
<td width="100px">
<select name="year" id="year">
<option value="2014">2014</option>
</select>
</td>
<td>
<button type="submit" class="btn btn-xs btn-primary">
统&nbsp;&nbsp;计
<i class="ace-icon fa fa-bar-chart-o bigger-110"></i>
</button>
</td>
</tr>
</table>
</div>
<div class="row">
<div class="col-xs-12">
<div class="table-responsive">
<!--
<div id="processDefZjt" style="height: 450px; margin: 0 auto"></div>
<script>
var seriesValue=" {type: 'column',name: '运行个数',data: [${column}]}";
getReportDataByZjt("processDefZjt","${row}","123",seriesValue,"已运行流程统计:一共运行 ${total}个流程");
</script>
-->
<div id="processDefBar" style="height: 450px; margin: 0 auto"></div>
<script>
//getReportDataByZjt("processDefZjt","${row}","123",seriesValue,"已运行流程统计:一共运行 ${total}个流程");
getReportDataByZxt("processDefBar","按流程及时间统计","${year}年一共运行 ${total}个流程","${row}","${column}",'运行个数');
</script>
</div>
<!-- /.table-responsive -->
</div>
<!-- /span -->
</div>
</div>
</div>
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1,137 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>按流程耗时统计</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
</script>
</head>
<body>
<form id="queryForm" name="queryForm" action="${ctx}/processReport/reportByDate.do" method="post" style="display: inline;">
<div class="main-container" id="main-container">
<div class="panel panel-primary">
<div class="panel-heading">
<h8>按流程耗时统计</h8>
</div>
<div class="panel-body">
<div class="form-group well well-sm">
<table border="0" cellspacing="0" cellpadding="0"
class="table-search">
<tr>
<td>年份:</td>
<td>
<select name="year" id="year">
<option value="2015">2015</option>
</select>
</td>
<td>
<button type="submit" class="btn btn-xs btn-primary">
统&nbsp;&nbsp;计
</button>
</td>
</tr>
</table>
</div>
<div class="row">
<div class="col-xs-12">
<div class="table-responsive">
<!--
<div id="processDefZjt" style="height: 450px; margin: 0 auto"></div>
<script>
var seriesValue=" {type: 'column',name: '运行个数',data: [${column}]}";
getReportDataByZjt("processDefZjt","${row}","123",seriesValue,"已运行流程统计:一共运行 ${total}个流程");
</script>
-->
<div id="processDefBar" style="height: 450px; margin: 0 auto"></div>
<script>
$(function () {
$('#processDefBar').highcharts({
chart: {
type: 'column'
},
title: {
text: '流程实例最长耗时统计'
},
subtitle: {
text: ''
},
xAxis: {
categories: [
'标准化办公室提出需求流程',
'部门需求收集流程',
'上级文件评审',
'标准修订审批流程',
'标准年审转化需求流程',
'部门标准控制流程',
'公司标准的征集意见流程'
]
},
yAxis: {
min: 0,
title: {
text: '小时'
}
},
tooltip: {
headerFormat: '<table>',
pointFormat: '<tbody><tr><td style="padding: 0px;">2014污水处理操作程序收集 </td></tr><tr>' +
'<td style="padding: 0px;">总耗时<b>{point.y} 小时</b></td></tr>',
footerFormat: '</tbody></table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: [{
name: '流程',
data: [12, 77, 88, 44, 8, 66, 22]
}]
});
});
</script>
</div>
<!-- /.table-responsive -->
</div>
<!-- /span -->
</div>
</div>
</div>
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1,153 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>按流程耗时统计</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
</script>
</head>
<body>
<form id="queryForm" name="queryForm" action="${ctx}/processReport/reportByDate.do" method="post" style="display: inline;">
<div class="main-container" id="main-container">
<div class="panel panel-primary">
<div class="panel-heading">
<h8>按流程环节耗时统计</h8>
</div>
<div class="panel-body">
<div class="form-group well well-sm">
<table border="0" cellspacing="0" cellpadding="0"
class="table-search">
<tr>
<td>年份:</td>
<td>
<select name="year" id="year">
<option value="2015">2015</option>
</select>
</td>
<td>流程实例名称:</td>
<td style="width: 200px">
<input value="2014污水处理操作程序收集" type="text"></input>
</td>
<td>
<button type="submit" class="btn btn-xs btn-primary">
统&nbsp;&nbsp;计
</button>
</td>
</tr>
</table>
</div>
<div class="row">
<div class="col-xs-12">
<div class="table-responsive">
<!--
<div id="processDefZjt" style="height: 450px; margin: 0 auto"></div>
<script>
var seriesValue=" {type: 'column',name: '运行个数',data: [${column}]}";
getReportDataByZjt("processDefZjt","${row}","123",seriesValue,"已运行流程统计:一共运行 ${total}个流程");
</script>
-->
<div id="processDefBar" style="height: 450px; margin: 0 auto"></div>
<script>
$(function () {
$('#processDefBar').highcharts({
chart: {
type: 'column'
},
title: {
text: '2014污水处理操作程序部门需求收集一共耗时77小时'
},
subtitle: {
text: '流程起至时间2014年-7月-1日至2014年9月18日'
},
xAxis: {
categories: [
'拟稿',
'部门审核',
'本部门审核',
'相关部门审核',
'管标办审核',
'技标办审核',
'管标办主任审核',
'技标办主任审核'
]
},
yAxis: {
min: 0,
title: {
text: '小时'
}
},
tooltip: {
headerFormat: '<table>',
pointFormat: '<tbody>' +
'<td style="padding: 0px;">XXX在此环节审批总耗时<b>{point.y} 小时</b></td></tr>',
footerFormat: '</tbody></table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0,
dataLabels: {
enabled: true,
color: '',
style: {
fontWeight: 'bold'
},
formatter: function() {
return this.y+'小时';
}
}
}
},
series: [{
name: '部门需求收集流程',
data: [1, 7, 7, 26, 3, 3, 9,21]
}]
});
});
</script>
</div>
<!-- /.table-responsive -->
</div>
<!-- /span -->
</div>
</div>
</div>
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1,93 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>按流程定义统计</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
</script>
</head>
<body>
<form id="queryForm" name="queryForm" action="${ctx}/processReport/reportByProcessDef.do" method="post" style="display: inline;">
<div class="main-container" id="main-container">
<div class="panel panel-primary">
<div class="panel-heading">
<h8>按流程定义统计</h8>
</div>
<div class="panel-body">
<div class="form-group well well-sm">
<table border="0" cellspacing="0" cellpadding="0"
class="table-search">
<tr>
<td width="80px">开始时间:</td>
<td width="100px">
<input value="${query.roleName}" id="roleName" name="roleName" maxlength="30" />
</td>
<td width="80px">&nbsp;&nbsp;结束时间:</td>
<td width="100px">
<input value="${query.roleId}" id="roleId" name="roleId" maxlength="30" />
</td>
<td>&nbsp;&nbsp;
<button type="submit" class="btn btn-xs btn-primary">
统&nbsp;&nbsp;计
<i class="ace-icon fa fa-bar-chart-o bigger-110"></i>
</button>
</td>
</tr>
</table>
</div>
<div class="row">
<div class="col-xs-12">
<div class="table-responsive">
<!--
<div id="processDefZjt" style="height: 450px; margin: 0 auto"></div>
<script>
var seriesValue=" {type: 'column',name: '运行个数',data: [${column}]}";
getReportDataByZjt("processDefZjt","${row}","123",seriesValue,"已运行流程统计:一共运行 ${total}个流程");
</script>
-->
<div id="processDefBar" style="height: 1200px; margin: 0 auto"></div>
<script>
//getReportDataByZjt("processDefZjt","${row}","123",seriesValue,"已运行流程统计:一共运行 ${total}个流程");
getReportDataByBar("processDefBar","已运行流程统计","一共运行 ${total}个流程","${row}","${column}");
</script>
</div>
<!-- /.table-responsive -->
</div>
<!-- /span -->
</div>
</div>
</div>
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1,93 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>按流程定义统计</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
</script>
</head>
<body>
<form id="queryForm" name="queryForm" action="${ctx}/processReport/reportByProcessDef.do" method="post" style="display: inline;">
<div class="main-container" id="main-container">
<div class="panel panel-primary">
<div class="panel-heading">
<h8>按流程定义统计</h8>
</div>
<div class="panel-body">
<div class="form-group well well-sm">
<table border="0" cellspacing="0" cellpadding="0"
class="table-search">
<tr>
<td width="80px">开始时间:</td>
<td width="100px">
<input value="${query.roleName}" id="roleName" name="roleName" maxlength="30" />
</td>
<td width="80px">&nbsp;&nbsp;结束时间:</td>
<td width="100px">
<input value="${query.roleId}" id="roleId" name="roleId" maxlength="30" />
</td>
<td>&nbsp;&nbsp;
<button type="submit" class="btn btn-xs btn-primary">
统&nbsp;&nbsp;计
<i class="ace-icon fa fa-bar-chart-o bigger-110"></i>
</button>
</td>
</tr>
</table>
</div>
<div class="row">
<div class="col-xs-12">
<div class="table-responsive">
<!--
<div id="processDefZjt" style="height: 450px; margin: 0 auto"></div>
<script>
var seriesValue=" {type: 'column',name: '运行个数',data: [${column}]}";
getReportDataByZjt("processDefZjt","${row}","123",seriesValue,"已运行流程统计:一共运行 ${total}个流程");
</script>
-->
<div id="processDefBar" style="height: 450px; margin: 0 auto"></div>
<script>
//getReportDataByZjt("processDefZjt","${row}","123",seriesValue,"已运行流程统计:一共运行 ${total}个流程");
getReportDataByBar("processDefBar","已运行流程统计","一共运行 ${total}个流程","${row}","${column}");
</script>
</div>
<!-- /.table-responsive -->
</div>
<!-- /span -->
</div>
</div>
</div>
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1,63 @@
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%@ include file="/commons/meta.jsp" %>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>统计首页</title>
<link href="${ctx_js_plugins}/simpletable/simpletable.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="${ctx_js_plugins}/simpletable/simpletable.js"></script>
<link href="${ctx}/resource/js/plugins/loadmask/jquery.loadmask.css" rel="stylesheet" type="text/css" />
<script type='text/javascript' src='${ctx}/resource/js/plugins/loadmask/jquery.loadmask.js'></script>
<script type="text/javascript">
function sysCount(){
if($("#sys").length > 0){
if($("#sys").children().length>0){
}else{
$("#sys").html(" <iframe height='1000px' width='100%' frameBorder=0 src='${ctx}/processReport/sysreport.do' allowTransparency='true'></iframe>");
}
}
}
</script>
</head>
<body>
<ul id="myTab" class="nav nav-tabs">
<li class="active">
<a href="#tenant" data-toggle="tab">应用统计</a>
</li>
<c:if test="${ebpmAdmin}">
<li>
<a href="#sys" data-toggle="tab" onclick="sysCount()">平台统计</a>
</li>
</c:if>
</ul>
<div id="myTabContent" class="tab-content" style="padding: 0;">
<div class="tab-pane fade in active" id="tenant">
<iframe height="1000px" width="100%" frameBorder=0 src="${ctx}/processReport/appreport.do" allowTransparency="true"></iframe>
</div>
<c:if test="${ebpmAdmin}">
<div class="tab-pane fade" id="sys">
</div>
</c:if>
</div>
</body>
</html>

View File

@@ -0,0 +1,177 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>人员分析</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<%-- <script src="${ctx}/resource/js/plugins/highcharts/highstock.js"></script> --%>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
$(document).ready(function() {
getAnalysisData();
});
function getAnalysisData(){
//流程统计
$.ajax({
url:"${ctx}/flow/monitor/staffAnalysisDetail.do",
type:"GET",
dataType:"json",
success:function(data){
for (var i = 0; i < eval(data).length; i++) {
getDatas(eval(data)[i]);
}
},
});
}
function getDatas(item){
if(item.id =="params"){
$("#staffTop").text(item.staffTop);
return;
}
var colors = ['#2194ff'];
//['#2194ff', '#face1d', '#37c461'];
Highcharts.getOptions().colors = Highcharts.map(colors, function (color) {
return {
radialGradient: { cx: 0, cy: -0.8, r: 2.3 },
stops: [[0, color], [2, Highcharts.Color(color).get('rgb')] // darken
]
};
});
$('#'+item.id).highcharts({
chart: {
type: 'bar',
},
/* rangeSelector: {
selected: 1
}, */
credits: {
enabled: false //不显示LOGO
},
exporting: { enabled:false },//导出图表去掉
title: {
text: ''
},
subtitle: {
text: ''
},
scrollbar: {
enabled: true
},
/* xAxis: {
categories: eval(item.list),
min: 25 //3.设置显示个数
}, */
xAxis: {
type: 'category',
labels: {
rotation: 0 // 设置轴标签旋转角度
}
},
yAxis: {
min: 0,
title: {
text: ''
},
/* scrollbar: {
enabled: true,
showFull: false
} */
},
legend: {
enabled: false
},
tooltip: {
pointFormat: '<b>待处理流程最多的员工:{point.y}(个)</b>',
style: {
"fontSize": "10px",
"color":"#999",
}
},
plotOptions: {
series: {
stacking: 'normal',
cursor: 'pointer',
events: {
click: function(event) {
window.location.href="${ctx}/flow/monitor/staffPage.do?appId="+event.point.id;
}
}
}
},
series: eval(item.datas)
});
}
</script>
<style type="text/css">
</style>
</head>
<body>
<div class="page-content">
<div class="row process_monitor">
<div class="col-sm-12">
<div class="process_tabs">
<a class="tabs_link" href="flow/monitor/processAnalysis.do">流程分析</a>
<a class="tabs_link" href="flow/monitor/actAnalysis.do">节点分析</a>
<a class="tabs_link active" href="flow/monitor/staffAnalysis.do">人员分析</a>
</div><!--process_tabs 顶部页签-->
<div class="process_list">
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-9.png" /></div>
<div class="cell-text"><p class="title">待处理流程最多的员工</p><p class="text" id="staffTop"></p></div>
</div>
</div><!--list-->
</div><!--process_list 图标列表-->
<div class="row">
<div class="col-sm-12">
<div class="widget-box ace-box-1">
<div class="widget-header widget-header-flat widget-header-small">
<h5 class="widget-title">待处理流程最多的员工</h5>
</div>
<div class="widget-body">
<div class="widget-main algin-center">
<div id="staffTopTotal" style="min-width:500px;min-height:550px;"></div>
</div><!--widget-main -->
</div><!--widget-body -->
</div>
</div><!--col-sm-6-->
</div><!--row-->
</div><!--col-sm-12-->
</div><!--row process_monitor 流程监控-->
</div><!-- /.page-content -->
</div><!--main-content-inner-->
</div><!-- /.main-content -->
</body>
</html>

View File

@@ -0,0 +1,216 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>人员详情</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
$(document).ready(function() {
getAnalysisData();
});
function getAnalysisData(){
//流程统计
$.ajax({
url:"${ctx}/flow/monitor/staffTopDetail.do?appId="+$("#appId").val(),
type:"GET",
dataType:"json",
success:function(data){
for (var i = 0; i < eval(data).length; i++) {
getDatas(eval(data)[i]);
}
},
});
}
function getDatas(item){
if(item.id =="params"){
$("#processTotal").text(item.processTotal);
$("#staffTotal").text(item.staffTotal);
$("#staffTop").text(item.staffTop);
return;
}
var colors = ['#2194ff'];
//['#2194ff', '#face1d', '#37c461'];
Highcharts.getOptions().colors = Highcharts.map(colors, function (color) {
return {
radialGradient: { cx: 0, cy: -0.8, r: 2.3 },
stops: [[0, color], [2, Highcharts.Color(color).get('rgb')] // darken
]
};
});
$('#'+item.id).highcharts({
chart: {
type: 'column'
},
credits: {
enabled: false //不显示LOGO
},
exporting: { enabled:false },//导出图表去掉
title: {
text: ''
},
subtitle: {
text: ''
},
xAxis: {
type: 'category',
labels: {
rotation: -30 // 设置轴标签旋转角度
}
},
yAxis: {
min: 0,
title: {
text: ''
}
},
legend: {
enabled: false
},
tooltip: {
pointFormat: '<b>待处理流程最多的员工:{point.y}(个)</b>',
style: {
"fontSize": "10px",
"color":"#999",
}
},
series: eval(item.datas)
});
}
</script>
<style type="text/css">
</style>
</head>
<body>
<div class="page-content">
<input id="appId" name="appId" value="${appId}" type="hidden"/>
<div class="row process_monitor">
<div class="col-sm-12">
<div class="process_tabs">
<a class="tabs_link" href="flow/monitor/processAnalysis.do">流程分析</a>
<a class="tabs_link" href="flow/monitor/actAnalysis.do">节点分析</a>
<a class="tabs_link active" href="flow/monitor/staffAnalysis.do">人员分析</a>
<a class="btn-back" href="flow/monitor/staffAnalysis.do"><i class="ace-icon fa fa-reply"></i>返回上级</a>
</div><!--process_tabs 顶部页签-->
<!-- <div class="process_screen">
<div class="cell-clum">创建时间</div>
<div class="cell-text">
<a class="link active">不限</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<a class="link">近一周</a>
<a class="link">近一月</a>
<a class="link">近一季</a>
<a class="link">近一年</a>
<input class="link-input" type="text" placeholder="2020-02-01" />
<span class="text">至</span>
<input class="link-input" type="text" placeholder="2020-02-01" />
</div>
<div class="cell-btn"><a class="btn-more">更多<i class="arrow fa fa-angle-down"></i></a></div>
</div> --><!--process_screen 筛选查询-->
<div class="process_list">
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-12.png" /></div>
<div class="cell-text"><p class="title">统计人数</p><p class="text" id="staffTotal"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-13.png" /></div>
<div class="cell-text"><p class="title">流程总数</p><p class="text" id="processTotal"></p></div>
</div>
</div><!--list-->
<div class="list">
<div class="list-table">
<div class="cell-img"><img src="${ctx }/resource/css/images/lcjk-icon-14.png" /></div>
<div class="cell-text"><p class="title">待处理流程最多的员工</p><p class="text" id="staffTop"></p></div>
</div>
</div><!--list-->
</div><!--process_list 图标列表-->
<div class="row">
<div class="col-sm-12">
<div class="widget-box ace-box-1">
<div class="widget-header widget-header-flat widget-header-small">
<h5 class="widget-title">${appName}待处理流程最多的员工</h5>
</div>
<div class="widget-body">
<div class="widget-main algin-center">
<div id="staffTopTotal" style="min-width:500px;min-height:550px"></div>
</div><!--widget-main -->
</div><!--widget-body -->
</div>
</div><!--col-sm-12-->
</div><!--row-->
</div><!--col-sm-12-->
</div><!--row process_monitor 流程监控-->
</div><!-- /.page-content -->
</div><!--main-content-inner-->
</div><!-- /.main-content -->
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
</body>
</html>

View File

@@ -0,0 +1,435 @@
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
<%@page import="org.activiti.engine.impl.persistence.entity.*" %>
<%@page import="org.activiti.engine.repository.Deployment" %>
<%@page import="com.blueland.bpm.engine.config.model.*" %>
<%@page import="com.blueland.bpm.common.page.*" %>
<%@page import="com.blueland.bpm.common.util.*"%>
<%@page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
<%@ include file="/commons/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@ include file="/commons/meta.jsp" %>
<base href="<%=basePath%>">
<title>系统统计</title>
<script type="text/javascript" src="${ctx }/resource/js/jquery-1.8.3.min.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/highcharts.js"></script>
<script src="${ctx}/resource/js/plugins/highcharts/modules/exporting.js"></script>
<script src="${ctx}/resource/js/common/processReport.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
url:"${ctx}/processReport/sysCount.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#sysIndexCount").hide();
$("#sysCountLoading").append("<div id='sysCount' class='bigpic' style='position: absolute;margin: 0 auto;top: 75px;'></div>");
},
success:function(data){
//console.log("Resource:"+data);
$("#sysIndexCount").show();
$("#sysIndexCount").text(data.count);
//binderrorResource(data.page.result);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#sysCount").fadeOut();
},
error:function(){
$("#sysIndexCount").show();
}
});
$.ajax({
url:"${ctx}/processReport/sysProcessDefCount.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#sysProcessDef").hide();
$("#sysProcessDefLoading").append("<div id='sysProcessDefCount' class='bigpic' style='position: absolute;margin: 0 auto;top: 75px;'></div>");
},
success:function(data){
//console.log("Resource:"+data);
$("#sysProcessDef").show();
$("#sysProcessDef").text(data.count);
//binderrorResource(data.page.result);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#sysProcessDefCount").fadeOut();
},
error:function(){
$("#sysProcessDef").show();
}
});
$.ajax({
url:"${ctx}/processReport/sysProcessModelCount.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#sysProcessModel").hide();
$("#sysProcessModelLoading").append("<div id='sysProcessModelCount' class='bigpic' style='position: absolute;margin: 0 auto;top: 75px;'></div>");
},
success:function(data){
//console.log("Resource:"+data);
$("#sysProcessModel").show();
$("#sysProcessModel").text(data.count);
//binderrorResource(data.page.result);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#sysProcessModelCount").fadeOut();
},
error:function(){
$("#sysProcessModel").show();
}
});
$.ajax({
url:"${ctx}/processReport/sysHistoryCount.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#sysProcessHistory").hide();
$("#sysProcessHistoryLoading").append("<div id='sysHistoryCount' class='bigpic' style='position: absolute;margin: 0 auto;top: 75px;'></div>");
},
success:function(data){
//console.log("Resource:"+data);
$("#sysProcessHistory").show();
$("#sysProcessHistory").text(data.count);
//binderrorResource(data.page.result);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#sysHistoryCount").fadeOut();
},
error:function(){
$("#sysProcessHistory").show();
}
});
$.ajax({
url:"${ctx}/processReport/sysTaskCount.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#sysProcessTask").hide();
$("#sysProcessTaskLoading").append("<div id='sysTaskCount' class='bigpic' style='position: absolute;margin: 0 auto;top: 75px;'></div>");
},
success:function(data){
//console.log("Resource:"+data);
$("#sysProcessTask").show();
$("#sysProcessTask").text(data.count);
//binderrorResource(data.page.result);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#sysTaskCount").fadeOut();
},
error:function(){
$("#sysProcessTask").show();
}
});
$.ajax({
url:"${ctx}/processReport/sysInfoM.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#sysInfoM").append("<div id='sysInfoMCount' style='padding:0 5px;' class='bigpic' ></div>");
},
success:function(data){
$("#sysInfoM").html(data.count);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#sysInfoMCount").fadeOut();
}
});
$.ajax({
url:"${ctx}/processReport/sysInfoD.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#sysInfoD").append("<div id='sysInfoDCount' style='padding:0 5px;' class='bigpic' ></div>");
},
success:function(data){
$("#sysInfoD").html(data.count);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#sysInfoDCount").fadeOut();
}
});
$.ajax({
url:"${ctx}/processReport/sysErrorM.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#sysErrorM").append("<div id='sysErrorMCount' style='padding:0 5px;' class='bigpic' ></div>");
},
success:function(data){
$("#sysErrorM").html(data.count);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#sysErrorMCount").fadeOut();
}
});
$.ajax({
url:"${ctx}/processReport/sysErrorD.do",
type:"GET",
dataType:"json",
beforeSend:function(){
$("#sysErrorD").append("<div id='sysErrorDCount' style='padding:0 5px;' class='bigpic' ></div>");
},
success:function(data){
$("#sysErrorD").html(data.count);
},
complete:function(xhr){
/*数据加载完成后,将蒙版移除*/
$("#sysErrorDCount").fadeOut();
}
});
});
</script>
<style type="text/css">
/*等待进度大css*/
.bigpic{
width: 16px;
height: 16px;
background-image: url("${ctx}/resource/css/icons/loading.gif");
position: absolute;
top: 0px;
bottom: 0px;
right: 0px;
left: 0px;
margin: auto;
}
.col-xs-5ths, .col-sm-5ths, .col-md-5ths, .col-lg-5ths {
width: 20%;
float: left;
}
</style>
</head>
<body>
<div class="row" style="margin: 10px;">
<div class="col-xs-5ths" style="padding-left: 0;padding-right: 6px;">
<div class="widget-box">
<div class="widget-header">
<h5 class="widget-title">
应用系统
</h5>
</div>
<div class="widget-body" id="sysCountLoading" style="height: 170px;position: relative;">
<a id="sysIndexCount" href="${ctx }/applicationMgr/list.do" style="display: flex;justify-content: center;align-items: center;font-size: 50px;color: orange;line-height: 170px;">0</a>
</div>
</div>
</div>
<div class="col-xs-5ths" style="padding-left: 6px;padding-right: 6px;">
<div class="widget-box">
<div class="widget-header">
<h5 class="widget-title">
流程定义
</h5>
</div>
<div class="widget-body" id="sysProcessDefLoading" style="height: 170px;position: relative;">
<a id="sysProcessDef" href="${ctx }/procDefMgr/list.do" style="display: flex;justify-content: center;align-items: center;font-size: 50px;color: #438eb9;line-height: 170px;">0</a>
</div>
</div>
</div>
<div class="col-xs-5ths" style="padding-left: 6px;padding-right: 6px;">
<div class="widget-box">
<div class="widget-header">
<h5 class="widget-title">
流程实例
</h5>
</div>
<div class="widget-body" id="sysProcessModelLoading" style="height: 170px;position: relative;">
<a id="sysProcessModel" href="${ctx }/procInstMgr/list.do" style="display: flex;justify-content: center;align-items: center;font-size: 50px;color: #438eb9;line-height: 170px;">0</a>
</div>
</div>
</div>
<div class="col-xs-5ths" style="padding-left: 6px;padding-right: 6px;">
<div class="widget-box">
<div class="widget-header">
<h5 class="widget-title">
流程任务
</h5>
</div>
<div class="widget-body" id="sysProcessTaskLoading" style="height: 170px;position: relative;">
<a id="sysProcessTask" href="${ctx}/taskMgr/list.do" style="display: flex;justify-content: center;align-items: center;font-size: 50px;color: #438eb9;line-height: 170px;">0</a>
</div>
</div>
</div>
<div class="col-xs-5ths" style="padding-left: 6px;padding-right: 0;">
<div class="widget-box">
<div class="widget-header">
<h5 class="widget-title">
流程历史
</h5>
</div>
<div class="widget-body" id="sysProcessHistoryLoading" style="height: 170px;position: relative;" >
<a id="sysProcessHistory" href="${ctx }/procInstMgr/historyList.do" style="display: flex;justify-content: center;align-items: center;font-size: 50px;color: #438eb9;line-height: 170px;">0</a>
</div>
</div>
</div>
</div>
<div class="row" style="margin: 10px;">
<div class="col-xs-6" style="padding-left: 0;padding-right: 6px;">
<!-- <h3>流程访问量 widget-box widget-color-blue widget-title lighter</h3> <br> -->
<div class="widget-box ">
<div class="widget-header">
<h5 class="widget-title">
流程访问量
</h5>
</div>
<div class="widget-body">
<div style="display:table;width:100%;padding: 20px;color: #555;font-size: 23px;">
<div style="display:table-cell;vertical-align:middle;width:50%;text-align:center;border-right:1px dotted #999;">上月访问量<b style="color: green;padding:0 5px;font-size:36px;" id="sysInfoM"></b>次</div>
<div style="display:table-cell;vertical-align:middle;text-align: center;">当日访问量<b style="color: green;padding:0 5px;font-size:36px;" id="sysInfoD" ></b>次</div>
</div>
<!-- <div class="widget-main no-padding"> -->
<!-- <table id="dynamic-table" class="table table-striped table-bordered table-hover"> -->
<!-- <thead class="thin-border-bottom"> -->
<!-- <tr> -->
<!-- <th>统计时间段</th> -->
<!-- <th>数量</th> -->
<!-- </tr> -->
<!-- </thead> -->
<!-- <tbody> -->
<!-- <tr> -->
<!-- <td>上月访问量:</td> -->
<!-- <td ></td> -->
<!-- </tr> -->
<!-- <tr> -->
<!-- <td>当日访问量:</td> -->
<!-- <td ></td> -->
<!-- </tr> -->
<!-- </tbody> -->
<!-- </table> -->
<!-- </div> -->
</div>
</div>
</div>
<div class="col-xs-6" style="padding-left: 6px;padding-right: 0;">
<div class="widget-box">
<div class="widget-header">
<h5 class="widget-title">
流程异常
</h5>
</div>
<div class="widget-body">
<div style="display:table;width:100%;padding: 20px;color: #555;font-size: 23px;">
<div style="display:table-cell;vertical-align:middle;width:50%;text-align:center;border-right:1px dotted #999;">上月累计<b style="color: red;padding:0 5px;font-size:36px;" id="sysErrorM"></b></div>
<div style="display:table-cell;vertical-align:middle;text-align: center;">当日累计<b style="color: red;padding:0 5px;font-size:36px;" id="sysErrorD" ></b></div>
</div>
<!-- <div class="widget-main no-padding"> -->
<!-- <table id="dynamic-table" class="table table-striped table-bordered table-hover"> -->
<!-- <thead class="thin-border-bottom"> -->
<!-- <tr> -->
<!-- <th>统计时间段</th> -->
<!-- <th>数量</th> -->
<!-- </tr> -->
<!-- </thead> -->
<!-- <tbody> -->
<!-- <tr> -->
<!-- <td>上月累计:</td> -->
<!-- <td ></td> -->
<!-- </tr> -->
<!-- <tr> -->
<!-- <td>当日累计:</td> -->
<!-- <td ></td> -->
<!-- </tr> -->
<!-- </tbody> -->
<!-- </table> -->
<!-- </div> -->
</div>
</div>
</div>
</div>
</body>
</html>