update
This commit is contained in:
145
ebpm-process-manage/webapp/pages/sysMgr/appProcessList.jsp
Normal file
145
ebpm-process-manage/webapp/pages/sysMgr/appProcessList.jsp
Normal file
@@ -0,0 +1,145 @@
|
||||
<%@ 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 language="javascript" type="text/javascript" src="${ctx}/resource/js/plugins/My97DatePicker/WdatePicker.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>
|
||||
<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>
|
||||
|
||||
<script type="text/javascript">
|
||||
function openSysDialog(ctx, appId, col){
|
||||
var height1 = window.parent.document.documentElement.clientHeight;
|
||||
var height = (parseInt(height1)-45)+"px";
|
||||
var url = "${ctx}/sysMgr/getAppName.do?appId="+appId;
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: url, //Servlet请求地址
|
||||
async: true,
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
// var List = data;
|
||||
// for(var actDef in List){
|
||||
// var showContent = "";//添加内容变量
|
||||
// showContent += "<tr class='children"+num+"'>";
|
||||
// showContent += "<td style='padding-left:50px'>"+List[actDef].ACTDEFNAME+"</td>";
|
||||
// showContent += "<td><span class='label label-warning'>"+List[actDef].EFFICIENCY+"</span></td>";
|
||||
// showContent += "</tr>";
|
||||
// $("#procDefId"+num).after(showContent);
|
||||
// }
|
||||
// $(".loadmask").remove();
|
||||
// $(".loadmask-msg").remove();
|
||||
var title = '流程总览--' + data +"--"+ col;
|
||||
showDiaLog(ctx,title,'1400px',height);
|
||||
},
|
||||
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
||||
alert(errorThrown);
|
||||
console.info("数据请求异常 请查看控制台错误 或者检查servlet配置")
|
||||
}
|
||||
});
|
||||
}
|
||||
function query(){
|
||||
setMask("main-container");
|
||||
document.getElementById("queryForm").submit();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<%@ include file="/commons/messages.jsp"%>
|
||||
<form id="queryForm" name="queryForm" method="post" style="display: inline;" action="${ctx}/sysMgr/appProcessList.do">
|
||||
<div class="main-container" id="main-container">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h8>流程总览</h8>
|
||||
</div>
|
||||
<div class="panel-body" id="panel-body" style="padding:3px;">
|
||||
<div class="well well-sm" style="margin-bottom: 2px;">
|
||||
|
||||
<table border="0" cellspacing="0" cellpadding="0"
|
||||
class="table-search">
|
||||
<tr>
|
||||
<td>应用名称:</td>
|
||||
<td>
|
||||
<select name="appId">
|
||||
<option value="">--请选择--</option>
|
||||
<c:forEach items="${applicationList}" var="item">
|
||||
<option ${params.appId==item.appId?"selected":""} value="${item.appId }">${item.appName}</option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
</td>
|
||||
<td>创建年度:</td>
|
||||
<td><input value="${params.searchYear}" id="searchYear" name="searchYear" onClick="WdatePicker({dateFmt:'yyyy'})" autocomplete="off"/></td>
|
||||
<td>创建月份:</td>
|
||||
<td><input value="${params.searchMouth}" id="searchMouth" name="searchMouth" onClick="WdatePicker({dateFmt:'MM'})" autocomplete="off"/></td>
|
||||
<td>
|
||||
<input id="toSearchYear" name="toSearchYear" value="ALL" type="hidden"/>
|
||||
<button type="submit" onclick="query()" class="btn btn-xs btn-primary">
|
||||
查询<i class="ace-icon fa fa-search bigger-110"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="table-responsive">
|
||||
<table id="sample-table-1"
|
||||
class="table table-striped table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th sortColumn="appName">应用名称(${params.appSum })</th>
|
||||
<th sortColumn="runTaskNum">流程定义(${params.runtaskSum })</th>
|
||||
<th sortColumn="procinstOneNum">流程实例(运行中)(${params.procinstOneSum })</th>
|
||||
<th sortColumn="procinstFiveNum">流程历史(已办结)(${params.procinstFiveSum })</th>
|
||||
<th sortColumn="procdefNum">流程待办(${params.procdefSum })</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach items="${resultMap}" var="item" varStatus="status">
|
||||
<tr class="${status.count % 2 == 0 ? 'odd' : 'even'}">
|
||||
<td>${item.APPNAME} </td>
|
||||
<td>
|
||||
<a href="javascript:void(0);" onclick="openSysDialog('${ctx}/procDefMgr/list.do?appId=${item.APPID }', '${item.APPID }' , '流程定义');">
|
||||
${item.RUNTASKNUM == null ? 0 : item.RUNTASKNUM}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:void(0);" onclick="openSysDialog('${ctx}/sysMgr/sysProcessInstList.do?appId=${item.APPID }&toProcState=1&toSearchYear=${params.searchYear}', '${item.APPID }' , '流程实例(运行中)');">
|
||||
${item.PROCINSTONENUM == null ? 0 : item.PROCINSTONENUM}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:void(0);" onclick="openSysDialog('${ctx}/sysMgr/sysProcessInstList.do?appId=${item.APPID }&toProcState=5&toSearchYear=${params.searchYear}', '${item.APPID }' , '流程历史(已办结)');">
|
||||
${item.PROCINSTFIVENUM == null ? 0 : item.PROCINSTFIVENUM}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:void(0);" onclick="openSysDialog('${ctx}/sysMgr/sysTaskList.do?appId=${item.APPID }&toSearchYear=${params.searchYear}', '${item.APPID }' , '流程待办');">
|
||||
${item.PROCDEFNUM == null ? 0 : item.PROCDEFNUM}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
<%@ 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' src='${ctx}/resource/js/plugins/loadmask/jquery.loadmask.js'></script>
|
||||
<script type="text/javascript">
|
||||
function query(){
|
||||
setMask("main-container");
|
||||
document.getElementById("queryForm").submit();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<%@ include file="/commons/messages.jsp"%>
|
||||
<form id="queryForm" name="queryForm" action="${ctx}/sysMgr/appProcessLogByDay.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="appId">
|
||||
<option value="">--请选择--</option>
|
||||
<c:forEach items="${applicationList}" var="item">
|
||||
<option ${params.appId==item.appId?"selected":""} value="${item.appId }">${item.appName}</option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
</td>
|
||||
<td width="50px">日期:</td>
|
||||
<td width="100px"><input value="${params.searchDay}" id="searchDay" name="searchDay" onClick="WdatePicker({dateFmt:'yyyy-MM-dd'})" autocomplete="off"/></td>
|
||||
<td>
|
||||
<button type="button" class="btn btn-xs btn-primary" onclick="query();">
|
||||
统计<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="processDefBar" style="height: 700px; margin: 0 auto"></div>
|
||||
<script>
|
||||
getProcessLogByBar("processDefBar","按应用及时间统计","${params.searchDay}各应用一共调用 ${total}次流程服务","${row}","${column}");
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
|
||||
<%@ 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' src='${ctx}/resource/js/plugins/loadmask/jquery.loadmask.js'></script>
|
||||
<script type="text/javascript">
|
||||
function query(){
|
||||
setMask("main-container");
|
||||
document.getElementById("queryForm").submit();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<form id="queryForm" name="queryForm" action="${ctx}/sysMgr/appProcessLogByYear.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="appId">
|
||||
<option value="">--请选择--</option>
|
||||
<c:forEach items="${applicationList}" var="item">
|
||||
<option ${params.appId==item.appId?"selected":""} value="${item.appId }">${item.appName}</option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
</td>
|
||||
<td width="50px">年份:</td>
|
||||
<td width="100px"><input value="${params.searchYear}" id="searchYear" name="searchYear" onClick="WdatePicker({dateFmt:'yyyy'})" autocomplete="off"/></td>
|
||||
<td>
|
||||
<button type="button" class="btn btn-xs btn-primary" onclick="query();">
|
||||
统计<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">
|
||||
<c:if test="${total != 0}">
|
||||
<div class="table-responsive">
|
||||
<div id="processDefBar" style="height: 600px; margin: 0 auto"></div>
|
||||
<script>
|
||||
getReportDataByZxt("processDefBar","按应用及时间统计","${params.searchYear}年各应用一共调用 ${total}次流程服务","${row}","${column}",'运行个数');
|
||||
</script>
|
||||
</div>
|
||||
</c:if>
|
||||
<c:if test="${total == 0}">
|
||||
<div class="table-responsive">
|
||||
<div style="text-align:center">
|
||||
<font style="font-size:20px">按应用及时间统计</font><br/><br/>
|
||||
<font style="font-size:15px">${params.searchYear}年各应用一共调用 ${total}次流程服务</font><br/>
|
||||
<img src="${ctx}/resource/images/noData.jpg" style="width:80%;height:500px"/>
|
||||
</div>
|
||||
</div>
|
||||
</c:if>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
256
ebpm-process-manage/webapp/pages/sysMgr/sysProcessInstList.jsp
Normal file
256
ebpm-process-manage/webapp/pages/sysMgr/sysProcessInstList.jsp
Normal file
@@ -0,0 +1,256 @@
|
||||
<%@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 language="javascript" type="text/javascript" src="${ctx}/resource/js/plugins/My97DatePicker/WdatePicker.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>
|
||||
<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>
|
||||
<script type="text/javascript" >
|
||||
$(document).ready(function() {
|
||||
// 分页需要依赖的初始化动作
|
||||
window.simpleTable = new SimpleTable('queryForm','${page.thisPageNumber}','${page.pageSize}','${pageRequest.sortColumns}');
|
||||
|
||||
});
|
||||
function updateProcessComment(url){
|
||||
var procInstId=getOneProcInstId();
|
||||
if(!procInstId){
|
||||
return;
|
||||
}
|
||||
showDiaLog(url+"?procInstId="+procInstId,"修改流转意见",'1024px','550px');
|
||||
}
|
||||
function getOneProcInstId(){
|
||||
var chk_value =[];
|
||||
$("input[name='items']:checkbox:checked").each(function(){
|
||||
chk_value.push($(this).val());
|
||||
})
|
||||
if(chk_value.length==0){
|
||||
alert("请选择一条流程数据!");
|
||||
return;
|
||||
}else if(chk_value.length>1){
|
||||
alert("请选择一条流程数据!");
|
||||
return;
|
||||
}
|
||||
return chk_value[0];
|
||||
}
|
||||
function processAction(myUrl,title,id){
|
||||
|
||||
var chk_value =[];
|
||||
var processInstanceId="";
|
||||
$("input[name='items']:checkbox:checked").each(function(){
|
||||
chk_value.push($(this).val());
|
||||
})
|
||||
if(chk_value.length==0){
|
||||
alert("请选择一条流程数据!");
|
||||
return;
|
||||
}else{
|
||||
for(var i=0;i<chk_value.length;i++){
|
||||
processInstanceId+=chk_value[i]+";";
|
||||
}
|
||||
}
|
||||
setMask("main-container");
|
||||
if (confirm(title)) {
|
||||
jQuery.ajax({
|
||||
url: myUrl,
|
||||
data: { "processInstanceId": processInstanceId},
|
||||
type: "POST",
|
||||
success: function(resp)
|
||||
{
|
||||
alert(resp);
|
||||
window.location.reload();
|
||||
}
|
||||
});
|
||||
}else{
|
||||
$("#main-container").unmask();
|
||||
}
|
||||
}
|
||||
function openSysDialog(ctx){
|
||||
var height1 = window.parent.document.documentElement.clientHeight;
|
||||
var height = (parseInt(height1)-45)+"px";
|
||||
showDiaLog(ctx,'流程配置','1400px',height);
|
||||
}
|
||||
function query(){
|
||||
setMask("main-container");
|
||||
document.getElementById("queryForm").submit();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<%@ include file="/commons/messages.jsp"%>
|
||||
<form id="queryForm" name="queryForm" method="post" style="display: inline;" action="${ctx}/sysMgr/sysProcessInstList.do">
|
||||
<div class="main-container" id="main-container">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h8>流程实例查询</h8>
|
||||
</div>
|
||||
<div class="panel-body" id="panel-body" style="padding:3px;">
|
||||
<div class="well well-sm" style="margin-bottom: 2px;">
|
||||
|
||||
<table border="0" cellspacing="0" cellpadding="0"
|
||||
class="table-search">
|
||||
<tr>
|
||||
<td>应用名称:</td>
|
||||
<td>
|
||||
<select name="appId">
|
||||
<option value="">--请选择--</option>
|
||||
<c:forEach items="${applicationList}" var="item">
|
||||
<option ${params.appId==item.appId?"selected":""} value="${item.appId }">${item.appName}</option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
</td>
|
||||
<td>流程标题:</td>
|
||||
<td><input value="${params.title}" id="title" name="title" /></td>
|
||||
<td>流程实例ID:</td>
|
||||
<td><input value="${params.processInstanceId}" id="processInstanceId" name="processInstanceId" /></td>
|
||||
<c:if test="${params.toProcState == null || params.toProcState == ''}">
|
||||
<td>流程状态:</td>
|
||||
<td>
|
||||
<select name="procState">
|
||||
<option value="">--请选择--</option>
|
||||
<option ${params.procState=="1"?"selected":""} value="1">运行中</option>
|
||||
<option ${params.procState=="3"?"selected":""} value="3">作废</option>
|
||||
<option ${params.procState=="5"?"selected":""} value="5">已办结</option>
|
||||
</select>
|
||||
</td>
|
||||
</c:if>
|
||||
<c:if test="${params.toProcState != null && params.toProcState != ''}">
|
||||
<input value="${params.toProcState}" type="hidden" id="toProcState" name="toProcState" />
|
||||
</c:if>
|
||||
<td>
|
||||
<button type="submit" onclick="query()"class="btn btn-xs btn-primary">
|
||||
查询<i class="ace-icon fa fa-search bigger-110"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>创建人:</td>
|
||||
<td><input value="${params.userId}" id="userId" name="userId" /></td>
|
||||
<c:if test="${params.toSearchYear == null || params.toSearchYear == ''}">
|
||||
<td>创建年度:</td>
|
||||
<td><input value="${params.searchYear}" id="searchYear" name="searchYear" onClick="WdatePicker({dateFmt:'yyyy'})" autocomplete="off"/></td>
|
||||
<td>创建月份:</td>
|
||||
<td><input value="${params.searchMouth}" id="searchMouth" name="searchMouth" onClick="WdatePicker({dateFmt:'MM'})" autocomplete="off"/></td>
|
||||
</c:if>
|
||||
<td>流程定义名称:</td>
|
||||
<td>
|
||||
<input value="${params.processDefName}" id="processDefName" name="processDefName" />
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<button type="button" id="cancel" onclick="processAction('${ctx}/procInstMgr/cancel.do','您确认要作废该流程吗?作废后的流程可在流程历史管理中查询到!',this.id);" class="btn btn-xs btn-danger">
|
||||
作废<i class="ace-icon fa fa-trash-o bigger-110"></i>
|
||||
</button>
|
||||
<c:if test="${isBpmAdmin}">
|
||||
<button type="button" id="delete" onclick="processAction('${ctx}/procInstMgr/delete.do','您确认要删除该流程吗?删除流程后数据将无法恢复!',this.id);" class="btn btn-xs btn-inverse">
|
||||
删除<i class="ace-icon fa fa-trash-o bigger-110"></i>
|
||||
</button>
|
||||
<button type="button" onclick="updateProcessComment('${ctx}/taskMgr/updateProcessCommentView.do');" class="btn btn-xs btn-primary">
|
||||
修改流转意见<i class="ace-icon fa fa-pencil-square-o bigger-110"></i>
|
||||
</button>
|
||||
</c:if>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="table-responsive">
|
||||
<div style="width: 100%;overflow: auto;">
|
||||
<table style=" width: inherit;max-width: 600%;table-layout: fixed;" id="sample-table-1"
|
||||
class="table table-striped table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 20px"><input type="checkbox" onclick="setAllCheckboxState('items',this.checked)"></th>
|
||||
<th style="width: 150px">应用名称</th>
|
||||
<th>流程标题</th>
|
||||
<th style="width: 150px;">流程定义</th>
|
||||
<th>流程实例ID</th>
|
||||
<th style="width: 110px">流程状态</th>
|
||||
<th style="width: 150px">发起时间</th>
|
||||
<th style="width: 150px">办结时间</th>
|
||||
<th style="width: 90px">持续时间</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<%
|
||||
Page mypage=(Page)request.getAttribute("page");
|
||||
List<HistoricProcessInstanceEntity> histProcInsts=mypage.getResult();
|
||||
if(histProcInsts!=null){
|
||||
for(int i=0;i<histProcInsts.size();i++){
|
||||
HistoricProcessInstanceEntity histProcInst=(HistoricProcessInstanceEntity)histProcInsts.get(i);
|
||||
%>
|
||||
<tr class="<%=((i+1)%2== 0 ? "odd" : "even") %>">
|
||||
<td><input type="checkbox" name="items" value="<%=histProcInst.getId()%>"></td>
|
||||
<td class="td" title="<%=histProcInst.getTenantId()%> "><%=histProcInst.getTenantId()%> </td>
|
||||
<td class="td">
|
||||
<a href="javascript:void(0);" onclick="openProcessTrackPage('${ctx}','<%=histProcInst.getId() %>');">
|
||||
<%=histProcInst.getProcTitle()%>
|
||||
</a>
|
||||
</td>
|
||||
<td class="td">
|
||||
<a href="javascript:void(0);" onclick="openSysDialog('${ctx}/procDefMgr/config.do?procDefId=<%=histProcInst.getProcessDefinitionId() %>');">
|
||||
<%=histProcInst.getProcessDefinitionName()%>
|
||||
</a>
|
||||
</td>
|
||||
<td class="td" title="<%=histProcInst.getId()%>"><%=histProcInst.getId()%> </td>
|
||||
<td>
|
||||
<%if(histProcInst.getProcState()==1){%>
|
||||
<span class="label label-success">运行中</span>
|
||||
<%}else if(histProcInst.getProcState()==3){%>
|
||||
<span class="label label-warning">作废</span>
|
||||
<%}else if(histProcInst.getProcState()==5){%>
|
||||
<span class="label label-danger">已办结</span>
|
||||
<%}%>
|
||||
</td>
|
||||
<td><%=DateUtil.convertDateToString("yyyy-MM-dd HH:mm:ss", histProcInst.getStartTime()) %></td>
|
||||
<td><%=DateUtil.convertDateToString("yyyy-MM-dd HH:mm:ss", histProcInst.getEndTime()) %></td>
|
||||
<td>
|
||||
<%String day=com.blueland.bpm.manage.web.ProcessInstanceController.differByDay(histProcInst.getStartTime(),histProcInst.getEndTime());%>
|
||||
<%if(day == "" || day == null){%>
|
||||
|
||||
<%}else if(Integer.parseInt(day)<=3){%>
|
||||
<span class="label label-success">耗时<%=day%>天</span>
|
||||
<%}else if(Integer.parseInt(day)<=10){%>
|
||||
<span class="label label-warning">耗时<%=day%>天</span>
|
||||
<%}else if(Integer.parseInt(day)>10){%>
|
||||
<span class="label label-danger">耗时<%=day%>天</span>
|
||||
<%}%>
|
||||
</td>
|
||||
</tr>
|
||||
<%}} %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<simpletable:pageToolbar page="${page}"></simpletable:pageToolbar>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
326
ebpm-process-manage/webapp/pages/sysMgr/sysTaskList.jsp
Normal file
326
ebpm-process-manage/webapp/pages/sysMgr/sysTaskList.jsp
Normal file
@@ -0,0 +1,326 @@
|
||||
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
|
||||
<%@page import="org.activiti.engine.task.Task" %>
|
||||
<%@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"%>
|
||||
<jsp:include page="/commons/userOrgTree.jsp" flush="true" />
|
||||
<%
|
||||
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 language="javascript" type="text/javascript" src="${ctx}/resource/js/plugins/My97DatePicker/WdatePicker.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>
|
||||
<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>
|
||||
<script type="text/javascript" >
|
||||
$(document).ready(function() {
|
||||
// 分页需要依赖的初始化动作
|
||||
window.simpleTable = new SimpleTable('queryForm','${page.thisPageNumber}','${page.pageSize}','${pageRequest.sortColumns}');
|
||||
});
|
||||
function assigneeNameOnDbClick(name, value) {
|
||||
$("#assigneeName").val(name);
|
||||
$("#assignee").val(value);
|
||||
}
|
||||
function getTaskId(){
|
||||
var chk_value =[];
|
||||
var taskId="";
|
||||
$("input[name='items']:radio:checked").each(function(){
|
||||
chk_value.push($(this).val());
|
||||
})
|
||||
if(chk_value.length==0){
|
||||
alert("请选择一条流程数据!");
|
||||
return taskId;
|
||||
}else{
|
||||
var items=chk_value[0].split("=");
|
||||
for(var i=0;i<items.length;i++){
|
||||
if(items[0]=="taskId"){
|
||||
taskId=items[1];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return taskId;
|
||||
}
|
||||
function updateTaskData(url){
|
||||
var taskId=getTaskId();
|
||||
if(taskId.length==0){
|
||||
return;
|
||||
}
|
||||
showDiaLog(url+"?taskId="+taskId,"修改业务属性",'1024px','550px');
|
||||
}
|
||||
function updateProcessComment(url){
|
||||
var taskId=getTaskId();
|
||||
if(taskId.length==0){
|
||||
return;
|
||||
}
|
||||
showDiaLog(url+"?taskId="+taskId,"修改流转意见",'1024px','550px');
|
||||
}
|
||||
function jumpAnyTask(url){
|
||||
var taskId=getTaskId();
|
||||
if(taskId.length==0){
|
||||
return;
|
||||
}
|
||||
showDiaLog(url+"?taskId="+taskId,"自由跳转",'800px','400px');
|
||||
}
|
||||
|
||||
function againSetTaskReceiver(url){
|
||||
var taskId=getTaskId();
|
||||
if(taskId.length==0){
|
||||
return;
|
||||
}
|
||||
showDiaLog(url+"?taskId="+taskId,"重新分配人员",'600px','400px');
|
||||
}
|
||||
function addMultiInstanceView(url){
|
||||
var taskId=getTaskId();
|
||||
if(taskId.length==0){
|
||||
return;
|
||||
}
|
||||
if(isButOperatePower(taskId,"ADD_MULTIINST_ACT_BTN","当前待办无法进行补发多实例操作!")){
|
||||
return ;
|
||||
}
|
||||
showDiaLog(url+"?taskId="+taskId,"补发多实例",'600px','400px');
|
||||
}
|
||||
function isButOperatePower(taskId,butOperateId,tip){
|
||||
var data={ "curActInstId": taskId,"butOperateId":butOperateId};
|
||||
var needReturn = false;
|
||||
//判断是否有权限进行作废操作
|
||||
jQuery.ajax({
|
||||
url: "${ctx}/taskMgr/getButOperatePower.do",
|
||||
data: data,
|
||||
type: "POST",
|
||||
async: false,
|
||||
success: function(resp)
|
||||
{
|
||||
if(!resp){
|
||||
alert(tip);
|
||||
needReturn = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
return needReturn;
|
||||
}
|
||||
function processAction(myUrl,title,type){
|
||||
var taskId=getTaskId();
|
||||
if(taskId.length==0){
|
||||
return;
|
||||
}
|
||||
|
||||
var needReturn = false;
|
||||
if(type=='1'){//退回拟稿环节
|
||||
needReturn=isButOperatePower(taskId,"BACK_STARTER_BTN","当前待办无法进行退回拟稿环节操作!");
|
||||
}else if(type=='2'){//退回上一环节
|
||||
needReturn=isButOperatePower(taskId,"BACK_PREV_ACT_BTN","当前待办无法进行退回上一环节操作!");
|
||||
}else if(type=='3'){//删除多实例待办
|
||||
needReturn=isButOperatePower(taskId,"DELETE_MULTIINST_ACT_BTN","当前待办无法进行删除多实例操作!");
|
||||
}
|
||||
if(needReturn){
|
||||
return;
|
||||
}
|
||||
|
||||
if (confirm(title)) {
|
||||
jQuery.ajax({
|
||||
url: myUrl,
|
||||
data: { "taskId": taskId,"isHistory": false},
|
||||
type: "POST",
|
||||
success: function(resp)
|
||||
{
|
||||
if(resp.executeStatus=='SUCCESS'){
|
||||
alert("操作成功!");
|
||||
window.location.reload();
|
||||
}else{
|
||||
alert("操作失败!");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
function openSysDialog(ctx){
|
||||
var height1 = window.parent.document.documentElement.clientHeight;
|
||||
var height = (parseInt(height1)-45)+"px";
|
||||
showDiaLog(ctx,'流程配置','1400px',height);
|
||||
}
|
||||
function query(){
|
||||
setMask("main-container");
|
||||
document.getElementById("queryForm").submit();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<%@ include file="/commons/messages.jsp"%>
|
||||
<form id="queryForm" name="queryForm" method="post" style="display: inline;" action="${ctx}/sysMgr/sysTaskList.do">
|
||||
<div class="main-container" id="main-container">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h8>流程待办查询</h8>
|
||||
</div>
|
||||
<div class="panel-body" id="panel-body" style="padding:3px;">
|
||||
<div class="well well-sm" style="margin-bottom: 2px;">
|
||||
|
||||
<table border="0" cellspacing="0" cellpadding="0"
|
||||
class="table-search">
|
||||
<tr>
|
||||
<td>应用名称:</td>
|
||||
<td>
|
||||
<select name="appId">
|
||||
<option value="">--请选择--</option>
|
||||
<c:forEach items="${applicationList}" var="item">
|
||||
<option ${params.appId==item.appId?"selected":""} value="${item.appId }">${item.appName}</option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
</td>
|
||||
<td>流程标题:</td>
|
||||
<td><input value="${params.title}" id="title" name="title" /></td>
|
||||
<td width="100px">流程实例ID:</td>
|
||||
<td><input value="${params.processInstanceId}" id="processInstanceId" name="processInstanceId" /></td>
|
||||
<td width="100px">流程定义名称:</td>
|
||||
<td width="100px"><input value="${params.processDefName}" id="processDefName" name="processDefName" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>执行人:</td>
|
||||
<td>
|
||||
<input value="${params.assigneeName}" id="assigneeName" name="assigneeName" maxlength="30" onclick="showUserOrg('assigneeName','','','USER'); return false;" readonly />
|
||||
<input value="${params.assignee}" type="hidden" id="assignee" name="assignee" maxlength="30" />
|
||||
</td>
|
||||
<td width="100px">环节实例ID:</td>
|
||||
<td><input value="${params.actInstId}" id="actInstId" name="actInstId" /></td>
|
||||
<td width="70px">环节名称:</td>
|
||||
<td><input value="${params.actInstName}" id="actInstName" name="actInstName" /></td>
|
||||
<td>
|
||||
<input value="${params.taskDefName}" id="taskDefName" name="taskDefName" type="hidden"/>
|
||||
<button type="submit" onclick="query()"class="btn btn-xs btn-primary">
|
||||
查询<i class="ace-icon fa fa-search bigger-110"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="7">
|
||||
<button type="button" onclick="againSetTaskReceiver('${ctx}/taskMgr/againSetTaskReceiverView.do');" class="btn btn-xs btn-success">
|
||||
重新分配人员<i class="ace-icon fa fa-share bigger-110"></i>
|
||||
</button>
|
||||
<c:if test="${ebpmAdmin}">
|
||||
<button type="button" onclick="jumpAnyTask('${ctx}/taskMgr/jumpAnyTaskView.do');" class="btn btn-xs btn-success">
|
||||
自由跳转<i class="ace-icon fa fa-paper-plane-o bigger-110"></i>
|
||||
</button>
|
||||
</c:if>
|
||||
<button type="button" onclick="processAction('${ctx}/taskMgr/backStarterTask.do','您确定要退回拟稿人环节吗?','1');" class="btn btn-xs btn-yellow">
|
||||
退回拟稿环节<i class="ace-icon fa fa-reply-all bigger-110"></i>
|
||||
</button>
|
||||
<button type="button" onclick="processAction('${ctx}/taskMgr/backPrevTask.do','您确定要退回上一环节吗?','2');" class="btn btn-xs btn-yellow">
|
||||
退回上一环节<i class="ace-icon fa fa-reply bigger-110"></i>
|
||||
</button>
|
||||
<button type="button" onclick="addMultiInstanceView('${ctx}/taskMgr/addMultiInstanceView.do');" class="btn btn-xs btn-success">
|
||||
补发多实例<i class="ace-icon fa fa-plus bigger-110"></i>
|
||||
</button>
|
||||
<button type="button" onclick="processAction('${ctx}/taskMgr/deleteMultiInstance.do','您确定要删除多实例吗?','3');" class="btn btn-xs btn-grey">
|
||||
删除多实例<i class="ace-icon fa fa-trash-o bigger-110"></i>
|
||||
</button>
|
||||
<c:if test="${ebpmAdmin}">
|
||||
<button type="button" onclick="updateTaskData('${ctx}/taskMgr/updateTaskDataView.do');" class="btn btn-xs btn-primary">
|
||||
修改业务属性<i class="ace-icon fa fa-edit bigger-110"></i>
|
||||
</button>
|
||||
</c:if>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="table-responsive">
|
||||
<div style="width: 100%;overflow: auto;">
|
||||
<table style=" width: inherit;max-width: 600%;table-layout: fixed;" id="sample-table-1"
|
||||
class="table table-striped table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 20px"></th>
|
||||
<th>应用名称</th>
|
||||
<th>流程标题</th>
|
||||
<th style="width: 150px;">流程定义</th>
|
||||
<th>流程实例ID</th>
|
||||
<th>执行人</th>
|
||||
<th>当前环节</th>
|
||||
<th>发送人</th>
|
||||
<th style="width: 150px">接收时间</th>
|
||||
<th style="width: 90px">持续时间</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<%
|
||||
Page mypage=(Page)request.getAttribute("page");
|
||||
List<Task> tasks=mypage.getResult();
|
||||
if(tasks!=null){
|
||||
for(int i=0;i<tasks.size();i++){
|
||||
Task task=(Task)tasks.get(i);
|
||||
%>
|
||||
<tr class="<%=((i+1)%2== 0 ? "odd" : "even") %>">
|
||||
<td><input type="radio" name="items" value="taskId=<%=task.getId() %>"></td>
|
||||
<td class="td" title="<%=task.getTenantId()%>"><%=task.getTenantId()%></td>
|
||||
<td class="td">
|
||||
<a title="流程实例ID:<%=task.getProcessInstanceId()%>,环节实例ID:<%=task.getId()%>" href="javascript:void(0);" onclick="openProcessTrackPage('${ctx}','<%=task.getProcessInstanceId() %>');">
|
||||
<%=task.getProcTitle()%> </a>
|
||||
</td>
|
||||
<td class="td">
|
||||
<a href="javascript:void(0);" onclick="openSysDialog('${ctx}/procDefMgr/config.do?procDefId=<%=task.getProcessDefinitionId() %>');">
|
||||
<%=task.getProcessDefinitionName()%>
|
||||
</a>
|
||||
</td>
|
||||
<td class="td" title="<%=task.getProcessInstanceId()%>">
|
||||
<%=task.getProcessInstanceId()%>
|
||||
</td>
|
||||
<td class="td" title="执行人组织:<%=task.getAssigneeOrgName()%>">
|
||||
<%if(null!=task.getAssigneeUserName()){ %>
|
||||
<%=task.getAssigneeUserName() %>(<%=task.getAssigneeUserId()!=null?task.getAssigneeUserId():""%>)
|
||||
<%}else{ %>
|
||||
<%=task.getAssigneeUserId()!=null?task.getAssigneeUserId():""%>
|
||||
<%} %>
|
||||
</td>
|
||||
<td class="td" title="<%=task.getName()%> ">
|
||||
<%=task.getName()%> </td>
|
||||
<td class="td" title="发送人组织:<%=task.getSenderOrgName()%>">
|
||||
<%if(null!=task.getSendUserName()){ %>
|
||||
<%=task.getSendUserName()!=null?task.getSendUserName():""%>(<%=task.getSendUserId()!=null?task.getSendUserId():""%>)
|
||||
<%}else{ %>
|
||||
<%=task.getSendUserId()!=null?task.getSendUserId():""%>
|
||||
<%} %>
|
||||
</td>
|
||||
<td><%=DateUtil.convertDateToString("yyyy-MM-dd HH:mm:ss",task.getCreateTime())%> </td>
|
||||
<td>
|
||||
<%String day=com.blueland.bpm.manage.web.ProcessInstanceController.differByDay(task.getCreateTime(),new Date());%>
|
||||
<%if(Integer.parseInt(day)<=3){
|
||||
%><span class="label label-success">耗时<%=day%>天</span>
|
||||
<%
|
||||
}else if(Integer.parseInt(day)<=10){%>
|
||||
<span class="label label-warning">耗时<%=day%>天</span>
|
||||
<%}else if(Integer.parseInt(day)>10){%>
|
||||
<span class="label label-danger">耗时<%=day%>天</span>
|
||||
<%}%>
|
||||
</td>
|
||||
</tr>
|
||||
<%}} %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<simpletable:pageToolbar page="${page}"></simpletable:pageToolbar>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
371
ebpm-process-manage/webapp/pages/sysMgr/sysYibanTaskList.jsp
Normal file
371
ebpm-process-manage/webapp/pages/sysMgr/sysYibanTaskList.jsp
Normal file
@@ -0,0 +1,371 @@
|
||||
<%@page import="org.activiti.engine.repository.ProcessDefinition" %>
|
||||
<%@page import="org.activiti.engine.impl.persistence.entity.HistoricTaskInstanceEntity" %>
|
||||
<%@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"%>
|
||||
<jsp:include page="/commons/userOrgTree.jsp" flush="true" />
|
||||
<%
|
||||
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 language="javascript" type="text/javascript" src="${ctx}/resource/js/plugins/My97DatePicker/WdatePicker.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>
|
||||
<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>
|
||||
<script type="text/javascript" >
|
||||
$(document).ready(function() {
|
||||
// 分页需要依赖的初始化动作
|
||||
window.simpleTable = new SimpleTable('queryForm','${page.thisPageNumber}','${page.pageSize}','${pageRequest.sortColumns}');
|
||||
});
|
||||
function assigneeNameOnDbClick(name, value) {
|
||||
$("#assigneeName").val(name);
|
||||
$("#assignee").val(value);
|
||||
}
|
||||
function getTaskId(){
|
||||
var chk_value =[];
|
||||
var taskId="";
|
||||
$("input[name='items']:radio:checked").each(function(){
|
||||
chk_value.push($(this).val());
|
||||
})
|
||||
if(chk_value.length==0){
|
||||
alert("请选择一条流程数据!");
|
||||
return taskId;
|
||||
}else{
|
||||
var items=chk_value[0].split("=");
|
||||
for(var i=0;i<items.length;i++){
|
||||
if(items[0]=="taskId"){
|
||||
taskId=items[1];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return taskId;
|
||||
}
|
||||
function updateTaskData(url){
|
||||
var taskId=getTaskId();
|
||||
if(taskId.length==0){
|
||||
return;
|
||||
}
|
||||
showDiaLog(url+"?taskId="+taskId,"修改业务属性",'1024px','550px');
|
||||
}
|
||||
function updateProcessComment(url){
|
||||
var taskId=getTaskId();
|
||||
if(taskId.length==0){
|
||||
return;
|
||||
}
|
||||
showDiaLog(url+"?taskId="+taskId,"修改流转意见",'1024px','550px');
|
||||
}
|
||||
function jumpAnyTask(url){
|
||||
var taskId=getTaskId();
|
||||
if(taskId.length==0){
|
||||
return;
|
||||
}
|
||||
showDiaLog(url+"?taskId="+taskId,"自由跳转",'800px','400px');
|
||||
}
|
||||
|
||||
function againSetTaskReceiver(url){
|
||||
var taskId=getTaskId();
|
||||
if(taskId.length==0){
|
||||
return;
|
||||
}
|
||||
showDiaLog(url+"?taskId="+taskId,"重新分配人员",'600px','400px');
|
||||
}
|
||||
function addMultiInstanceView(url){
|
||||
var taskId=getTaskId();
|
||||
if(taskId.length==0){
|
||||
return;
|
||||
}
|
||||
if(isButOperatePower(taskId,"ADD_MULTIINST_ACT_BTN","当前待办无法进行补发多实例操作!")){
|
||||
return ;
|
||||
}
|
||||
showDiaLog(url+"?taskId="+taskId,"补发多实例",'600px','400px');
|
||||
}
|
||||
function isButOperatePower(taskId,butOperateId,tip){
|
||||
var data={ "curActInstId": taskId,"butOperateId":butOperateId};
|
||||
var needReturn = false;
|
||||
//判断是否有权限进行作废操作
|
||||
jQuery.ajax({
|
||||
url: "${ctx}/taskMgr/getButOperatePower.do",
|
||||
data: data,
|
||||
type: "POST",
|
||||
async: false,
|
||||
success: function(resp)
|
||||
{
|
||||
if(!resp){
|
||||
alert(tip);
|
||||
needReturn = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
return needReturn;
|
||||
}
|
||||
function processAction(myUrl,title,type){
|
||||
var taskId=getTaskId();
|
||||
if(taskId.length==0){
|
||||
return;
|
||||
}
|
||||
|
||||
var needReturn = false;
|
||||
if(type=='1'){//退回拟稿环节
|
||||
needReturn=isButOperatePower(taskId,"BACK_STARTER_BTN","当前待办无法进行退回拟稿环节操作!");
|
||||
}else if(type=='2'){//退回上一环节
|
||||
needReturn=isButOperatePower(taskId,"BACK_PREV_ACT_BTN","当前待办无法进行退回上一环节操作!");
|
||||
}else if(type=='3'){//删除多实例待办
|
||||
needReturn=isButOperatePower(taskId,"DELETE_MULTIINST_ACT_BTN","当前待办无法进行删除多实例操作!");
|
||||
}
|
||||
if(needReturn){
|
||||
return;
|
||||
}
|
||||
|
||||
if (confirm(title)) {
|
||||
jQuery.ajax({
|
||||
url: myUrl,
|
||||
data: { "taskId": taskId,"isHistory": false},
|
||||
type: "POST",
|
||||
success: function(resp)
|
||||
{
|
||||
if(resp.executeStatus=='SUCCESS'){
|
||||
alert("操作成功!");
|
||||
window.location.reload();
|
||||
}else{
|
||||
alert("操作失败!");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
function openSysDialog(ctx){
|
||||
var height1 = window.parent.document.documentElement.clientHeight;
|
||||
var height = (parseInt(height1)-45)+"px";
|
||||
showDiaLog(ctx,'流程配置','1400px',height);
|
||||
}
|
||||
function query(){
|
||||
setMask("main-container");
|
||||
document.getElementById("queryForm").submit();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<%@ include file="/commons/messages.jsp"%>
|
||||
<form id="queryForm" name="queryForm" method="post" style="display: inline;" action="${ctx}/sysMgr/sysYibanTaskList.do">
|
||||
<div class="main-container" id="main-container">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h8>流程已办查询</h8>
|
||||
</div>
|
||||
<div class="panel-body" id="panel-body" style="padding:3px;">
|
||||
<div class="well well-sm" style="margin-bottom: 2px;">
|
||||
|
||||
<table border="0" cellspacing="0" cellpadding="0"
|
||||
class="table-search">
|
||||
<tr>
|
||||
<td>应用名称:</td>
|
||||
<td>
|
||||
<select name="appId">
|
||||
<option value="">--请选择--</option>
|
||||
<c:forEach items="${applicationList}" var="item">
|
||||
<option ${params.appId==item.appId?"selected":""} value="${item.appId }">${item.appName}</option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
</td>
|
||||
<%-- <td>流程标题:</td>
|
||||
<td><input value="${params.title}" id="title" name="title" /></td> --%>
|
||||
<td width="100px">流程实例ID:</td>
|
||||
<td><input value="${params.processInstanceId}" id="processInstanceId" name="processInstanceId" /></td>
|
||||
<td width="100px">流程定义名称:</td>
|
||||
<td width="100px"><input value="${params.processDefName}" id="processDefName" name="processDefName" /></td>
|
||||
<td>
|
||||
<input value="${params.taskDefName}" id="taskDefName" name="taskDefName" type="hidden"/>
|
||||
<button type="submit" onclick="query()"class="btn btn-xs btn-primary">
|
||||
查询<i class="ace-icon fa fa-search bigger-110"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>执行人:</td>
|
||||
<td>
|
||||
<input value="${params.assigneeName}" id="assigneeName" name="assigneeName" maxlength="30" onclick="showUserOrg('assigneeName','','','USER'); return false;" readonly />
|
||||
<input value="${params.assignee}" type="hidden" id="assignee" name="assignee" maxlength="30" />
|
||||
</td>
|
||||
<td width="100px">环节实例ID:</td>
|
||||
<td><input value="${params.actInstId}" id="actInstId" name="actInstId" /></td>
|
||||
<td width="70px">环节名称:</td>
|
||||
<td><input value="${params.actInstName}" id="actInstName" name="actInstName" /></td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<%-- <td colspan="7">
|
||||
<button type="button" onclick="againSetTaskReceiver('${ctx}/taskMgr/againSetTaskReceiverView.do');" class="btn btn-xs btn-success">
|
||||
重新分配人员<i class="ace-icon fa fa-share bigger-110"></i>
|
||||
</button>
|
||||
<c:if test="${ebpmAdmin}">
|
||||
<button type="button" onclick="jumpAnyTask('${ctx}/taskMgr/jumpAnyTaskView.do');" class="btn btn-xs btn-success">
|
||||
自由跳转<i class="ace-icon fa fa-paper-plane-o bigger-110"></i>
|
||||
</button>
|
||||
</c:if>
|
||||
<button type="button" onclick="processAction('${ctx}/taskMgr/backStarterTask.do','您确定要退回拟稿人环节吗?','1');" class="btn btn-xs btn-yellow">
|
||||
退回拟稿环节<i class="ace-icon fa fa-reply-all bigger-110"></i>
|
||||
</button>
|
||||
<button type="button" onclick="processAction('${ctx}/taskMgr/backPrevTask.do','您确定要退回上一环节吗?','2');" class="btn btn-xs btn-yellow">
|
||||
退回上一环节<i class="ace-icon fa fa-reply bigger-110"></i>
|
||||
</button>
|
||||
<button type="button" onclick="addMultiInstanceView('${ctx}/taskMgr/addMultiInstanceView.do');" class="btn btn-xs btn-success">
|
||||
补发多实例<i class="ace-icon fa fa-plus bigger-110"></i>
|
||||
</button>
|
||||
<button type="button" onclick="processAction('${ctx}/taskMgr/deleteMultiInstance.do','您确定要删除多实例吗?','3');" class="btn btn-xs btn-grey">
|
||||
删除多实例<i class="ace-icon fa fa-trash-o bigger-110"></i>
|
||||
</button>
|
||||
<c:if test="${ebpmAdmin}">
|
||||
<button type="button" onclick="updateTaskData('${ctx}/taskMgr/updateTaskDataView.do');" class="btn btn-xs btn-primary">
|
||||
修改业务属性<i class="ace-icon fa fa-edit bigger-110"></i>
|
||||
</button>
|
||||
</c:if>
|
||||
</td> --%>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="table-responsive">
|
||||
<div style="width: 100%;overflow: auto;">
|
||||
<table style=" width: inherit;max-width: 600%;table-layout: fixed;" id="sample-table-1"
|
||||
class="table table-striped table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 20px"></th>
|
||||
<th>应用名称</th>
|
||||
<th>流程标题</th>
|
||||
<th style="width: 150px;">流程定义</th>
|
||||
<th>流程实例ID</th>
|
||||
<th>执行人</th>
|
||||
<th>当前环节</th>
|
||||
<th>发送人</th>
|
||||
<th style="width: 150px">接收时间</th>
|
||||
<th style="width: 90px">持续时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<%
|
||||
Page mypage=(Page)request.getAttribute("page");
|
||||
List<HistoricTaskInstanceEntity> tasks=mypage.getResult();
|
||||
if(tasks!=null){
|
||||
for(int i=0;i<tasks.size();i++){
|
||||
HistoricTaskInstanceEntity task=(HistoricTaskInstanceEntity)tasks.get(i);
|
||||
%>
|
||||
<tr class="<%=((i+1)%2== 0 ? "odd" : "even") %>">
|
||||
<td><input type="radio" name="items" value="taskId=<%=task.getId() %>"></td>
|
||||
<td class="td" title="<%=task.getTenantId()%>"><%=task.getTenantId()%></td>
|
||||
<td class="td" >
|
||||
<a title="流程实例ID:<%=task.getProcessInstanceId()%>,环节实例ID:<%=task.getId()%>" href="javascript:void(0);" onclick="openProcessTrackPage('${ctx}','<%=task.getProcessInstanceId() %>');">
|
||||
<%=task.getProcTitle()%> </a>
|
||||
</td>
|
||||
<td class="td" title="<%=task.getProcessDefinitionName()%>">
|
||||
<a href="javascript:void(0);" onclick="openSysDialog('${ctx}/procDefMgr/config.do?procDefId=<%=task.getProcessDefinitionId() %>');">
|
||||
<%=task.getProcessDefinitionName()%>
|
||||
</a>
|
||||
</td>
|
||||
<td class="td" title="<%=task.getProcessInstanceId()%>">
|
||||
<%=task.getProcessInstanceId()%>
|
||||
</td>
|
||||
<td class="td" title="执行人组织:<%=task.getAssigneeOrgName()%>">
|
||||
<%if(null!=task.getAssigneeUserName()){ %>
|
||||
<%=task.getAssigneeUserName() %>(<%=task.getAssigneeUserId()!=null?task.getAssigneeUserId():""%>)
|
||||
<%}else{ %>
|
||||
<%=task.getAssigneeUserId()!=null?task.getAssigneeUserId():""%>
|
||||
<%} %>
|
||||
</td>
|
||||
<td class="td" title="<%=task.getName()%>">
|
||||
<%=task.getName()%> </td>
|
||||
<td class="td" title="发送人组织:<%=task.getSenderOrgName()%>">
|
||||
<%if(null!=task.getSendUserName()){ %>
|
||||
<%=task.getSendUserName()!=null?task.getSendUserName():""%>(<%=task.getSendUserId()!=null?task.getSendUserId():""%>)
|
||||
<%}else{ %>
|
||||
<%=task.getSendUserId()!=null?task.getSendUserId():""%>
|
||||
<%} %>
|
||||
</td>
|
||||
<td ><%=DateUtil.convertDateToString("yyyy-MM-dd HH:mm:ss",task.getCreateTime())%> </td>
|
||||
<td>
|
||||
<%if (task.getDescription()!=null&&task.getDescription().indexOf("耗时")!=-1) {%>
|
||||
<span class="label label-default"><%=task.getDescription() %></span>
|
||||
<%} else if (task.getDescription()!=null&&task.getDescription().indexOf("超时")!=-1) {%>
|
||||
<span class="label label-danger"><%=task.getDescription() %></span>
|
||||
<%}else if (task.getDescription()!=null&&task.getDescription().indexOf("剩余")!=-1) {%>
|
||||
<span class="label label-success"><%=task.getDescription() %></span>
|
||||
<%}%>
|
||||
</td>
|
||||
</tr>
|
||||
<%}} %>
|
||||
|
||||
|
||||
<%-- <c:forEach items="${page.result}" var="item" varStatus="status">
|
||||
<tr class="${status.count % 2 == 0 ? 'odd' : 'even'}">
|
||||
<td>${item.tenantId}</td>
|
||||
<td>
|
||||
<a title="流程实例ID:${item.processInstanceId},环节实例ID:${item.id}>" href="javascript:void(0);" onclick="openProcessTrackPage('${ctx}','${item.processInstanceId}');">
|
||||
${item.procTitle} </a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:void(0);" onclick="openSysDialog('${ctx}/procDefMgr/config.do?procDefId=${item.ProcessDefinitionId}');">
|
||||
${item.processDefinitionName}>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
${item.processInstanceId}
|
||||
</td>
|
||||
<td title="执行人组织:${item.AssigneeOrgName()%>">
|
||||
<%if(null!=task.getAssigneeUserName()){ %>
|
||||
<%=task.getAssigneeUserName() %>(<%=task.getAssigneeUserId()!=null?task.getAssigneeUserId():""%>)
|
||||
<%}else{ %>
|
||||
<%=task.getAssigneeUserId()!=null?task.getAssigneeUserId():""%>
|
||||
<%} %>
|
||||
</td>
|
||||
<td>
|
||||
<%=task.getName()%> </td>
|
||||
<td title="发送人组织:<%=task.getSenderOrgName()%>">
|
||||
<%if(null!=task.getSendUserName()){ %>
|
||||
<%=task.getSendUserName()!=null?task.getSendUserName():""%>(<%=task.getSendUserId()!=null?task.getSendUserId():""%>)
|
||||
<%}else{ %>
|
||||
<%=task.getSendUserId()!=null?task.getSendUserId():""%>
|
||||
<%} %>
|
||||
</td>
|
||||
<td><%=DateUtil.convertDateToString("yyyy-MM-dd HH:mm:ss",task.getCreateTime())%> </td>
|
||||
<td>
|
||||
<%if (task.getDescription()!=null&&task.getDescription().indexOf("耗时")!=-1) {%>
|
||||
<span class="label label-default"><%=task.getDescription() %></span>
|
||||
<%} else if (task.getDescription()!=null&&task.getDescription().indexOf("超时")!=-1) {%>
|
||||
<span class="label label-danger"><%=task.getDescription() %></span>
|
||||
<%}else if (task.getDescription()!=null&&task.getDescription().indexOf("剩余")!=-1) {%>
|
||||
<span class="label label-success"><%=task.getDescription() %></span>
|
||||
<%}%>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
</c:forEach> --%>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<simpletable:pageToolbar page="${page}"></simpletable:pageToolbar>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user