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,335 @@
<%@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>
<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 =[];
var processInstanceId="";
$("input[name='items']:radio:checked").each(function(){
chk_value.push($(this).val());
})
if(chk_value.length==0){
alert("请选择一条流程数据!");
return;
}else{
var items=chk_value[0].split("=");
for(var i=0;i<items.length;i++){
if(items[0]=="processInstanceId"){
processInstanceId=items[1];
break;
}
}
}
return processInstanceId;
}
function processAction(myUrl,title){
var chk_value =[];
var processInstanceId="";
$("input[name='items']:radio:checked").each(function(){
chk_value.push($(this).val());
})
if(chk_value.length==0){
alert("请选择一条流程数据!");
return;
}else{
var items=chk_value[0].split("=");
for(var i=0;i<items.length;i++){
if(items[0]=="processInstanceId"){
processInstanceId=items[1];
}
}
}
if (confirm(title)) {
jQuery.ajax({
url: myUrl,
data: { "processInstanceId": processInstanceId,"isHistory": true},
type: "POST",
success: function(resp)
{
alert(resp);
window.location.reload();
}
});
}
}
function updateProcessTime(url){
var procInstId=getOneProcInstId();
if(!procInstId){
return;
}
showDiaLog(url+"?procInstId="+procInstId,"修改流转时间",'1200px','550px');
}
function delProcessRoam(url){
var procInstId=getOneProcInstId();
if(!procInstId){
return;
}
showDiaLog(url+"?procInstId="+procInstId,"修改流程环节",'1400px','550px');
}
function processRestore(myUrl,title){
var chk_value =[];
var processInstanceId="";
$("input[name='items']:radio:checked").each(function(){
chk_value.push($(this).val());
})
if(chk_value.length==0){
alert("请选择一条流程数据!");
return;
}else{
var items=chk_value[0].split("=");
for(var i=0;i<items.length;i++){
if(items[0]=="processInstanceId"){
processInstanceId=items[1];
}
}
}
if (confirm(title)) {
jQuery.ajax({
url: myUrl,
data: {"processInstanceId":processInstanceId},
dataType: "json", //表示返回值类型,不必须
type: "POST",
success: function(resp)
{
if(resp.flag){
alert("操作成功!");
window.location.href=window.location.href
}else{
alert(resp.msg);
}
}
});
}
}
</script>
</head>
<body>
<%@ include file="/commons/messages.jsp"%>
<form id="queryForm" name="queryForm"
action="${ctx}/procInstMgr/historyList.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" style="margin-bottom: 2px;">
<table border="0" cellspacing="0" cellpadding="0"
class="table-search">
<tr>
<!-- <td>流程定义Key</td>
<td>
<input value="${query.processDefKey}" id="processDefKey" name="processDefKey" />
</td>
-->
<td>流程定义名称:</td>
<td>
<input value="${query.processDefName}" id="processDefName" name="processDefName" />
</td>
<td>流程标题:</td>
<td>
<input value="${query.title}" id="title" name="title" />
</td>
<td>流程实例ID</td>
<td>
<input value="${query.processInstanceId}" id="processInstanceId" name="processInstanceId" />
</td>
<td>
<button type="submit" class="btn btn-xs btn-primary">查&nbsp;&nbsp;询
<i class="ace-icon fa fa-search bigger-110"></i>
</button>
</td>
</tr>
<tr>
<td>创建人:</td>
<td>
<input value="${query.userId}" id=userId name="userId" />
</td>
<td>流程状态:</td>
<td>
<select name="procState">
<option value="">请选择</option>
<option value="5" ${query.procState==5?"selected":""}>正常</option>
<option value="3" ${query.procState==3?"selected":""}>作废</option>
</select>
</td>
</tr>
</tr>
<tr>
<td colspan="4">
<button type="button" class="btn btn-xs btn-danger"
onclick="processAction('${ctx}/procInstMgr/delete.do','您确认要删除该流程吗?删除流程后数据将无法恢复!');">
删&nbsp;&nbsp;除
<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 test="${ebpmAdmin}">
<button type="button" onclick="updateProcessTime('${ctx}/procInstMgr/updateProcessTimeView.do');" class="btn btn-xs btn-primary">
修改流转时间
<i class="ace-icon fa fa-pencil-square-o bigger-110"></i>
</button>
<button type="button" onclick="delProcessRoam('${ctx}/procInstMgr/delProcessRoamView.do');" class="btn btn-xs btn-primary">
修改流程环节
<i class="ace-icon fa fa-pencil-square-o bigger-110"></i>
</button>
</c:if>
<button type="button" onclick="processRestore('${ctx}/procInstMgr/processRestore.do','您确认要恢复该流程吗?');" class="btn btn-xs btn-primary">
流程恢复
<i class="ace-icon fa fa-pencil-square-o bigger-110"></i>
</button>
</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 style="width: 150px;">流程定义名称</th>
<th>流程标题</th>
<th>流程实例ID</th>
<th>创建人</th>
<th style="width: 100px">发起时间</th>
<th style="width: 100px">结束时间</th>
<th style="width: 90px">持续时间</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="radio" name="items" value="processInstanceId=<%=histProcInst.getId()%>">
</td>
<td class="td" title="<%=histProcInst.getProcessDefinitionName()%>&nbsp;">
<%=histProcInst.getProcessDefinitionName()%>
</td>
<td class="td" title="<%=histProcInst.getProcTitle()%>&nbsp;">
<a href="javascript:void(0);" onclick="openProcessTrackPage('${ctx}','<%=histProcInst.getId() %>');">
<%=histProcInst.getProcTitle()%>&nbsp;
</a>
</td>
<td class="td" title="<%=histProcInst.getId()%>"><%=histProcInst.getId()%></td>
<td class="td">
<%if(null != histProcInst.getStartUserName()){ %>
<%=histProcInst.getStartUserName()%>(<%=histProcInst.getStartUserId()%>)
<%}else{ %>
<%=histProcInst.getStartUserId()%>
<%} %>
</td>
<td class="td" title="<%=DateUtil.convertDateToString(histProcInst.getStartTime())%>">
<%=DateUtil.convertDateToString(histProcInst.getStartTime())%>
</td>
<td class="td" title="<%=DateUtil.convertDateToString(histProcInst.getEndTime())%>">
<%=DateUtil.convertDateToString(histProcInst.getEndTime())%>
</td>
<td>
<span class="label label-default">耗时<%=com.blueland.bpm.manage.web.ProcessInstanceController.differByDay(histProcInst.getStartTime(),histProcInst.getEndTime())%>天</span>
</td>
<td>
<%
if (histProcInst.getProcState() == 5) {
%><span class="label label-success">正常</span>
<%
} else if (histProcInst.getProcState() == 3) {
%> <span
class="label label-danger">作废</span> <%
}
%>
</td>
</tr>
<%
}
}
%>
</tbody>
</table>
</div>
<simpletable:pageToolbar page="${page}">
</simpletable:pageToolbar>
</div>
<!-- /.table-responsive -->
</div>
<!-- /span -->
</div>
</div>
</div>
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1,324 @@
<%@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>
<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" >
$(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 updateProcessTime(url){
var procInstId=getOneProcInstId();
if(!procInstId){
return;
}
showDiaLog(url+"?procInstId="+procInstId,"修改流转时间",'1200px','550px');
}
function delProcessRoam(url){
var procInstId=getOneProcInstId();
if(!procInstId){
return;
}
showDiaLog(url+"?procInstId="+procInstId,"修改流程环节",'1400px','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]+";";
}
/* if(id=='cancel'){//作废操作
var needReturn = false;
//判断是否有权限进行作废操作
jQuery.ajax({
url: "${ctx}/taskMgr/getButOperatePower.do",
data: { "curProcInstId": processInstanceId,"butOperateId":"CANCEL_BTN"},
type: "POST",
async: false,
success: function(resp)
{
if(!resp){
alert("当前流程无法进行作废操作!");
needReturn = true;
}
}
});
if(needReturn){
return ;
}
} */
}
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();
}
}
</script>
</head>
<body>
<%@ include file="/commons/messages.jsp" %>
<form id="queryForm" name="queryForm" action="${ctx}/procInstMgr/list.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" style="margin-bottom: 2px;">
<table border="0" cellspacing="0" cellpadding="0"
class="table-search">
<tr>
<!-- <td>流程定义Key</td>
<td>
<input value="${query.processDefKey}" id="processDefKey" name="processDefKey" />
</td>-->
<td width="100px">流程定义名称:</td>
<td>
<input value="${query.processDefName}" id="processDefName" name="processDefName" />
</td>
<td>流程标题:</td>
<td>
<input value="${query.title}" id="title" name="title" />
</td>
<td width="80px">流程实例ID</td>
<td>
<input value="${query.processInstanceId}" id="processInstanceId" name="processInstanceId" />
<button type="submit" class="btn btn-xs btn-primary">
查&nbsp;&nbsp;询
<i class="ace-icon fa fa-search bigger-110"></i>
</button>
</td>
</tr>
<tr>
<td>创建人:</td>
<td>
<input value="${query.userId}" id=userId name="userId" />
</td>
</tr>
<tr>
<td colspan="6">
<!--
<c:if test="${isBpmAdmin}">
<button type="button" id="pause" onclick="processAction('${ctx}/procInstMgr/suspend.do','您确认要暂停该流程吗?',this.id);" class="btn btn-xs btn-warning">
暂&nbsp;&nbsp;停
<i class="ace-icon fa fa-pause bigger-110"></i>
</button>
<button type="button" id="recover" onclick="processAction('${ctx}/procInstMgr/restore.do','您确认要恢复该流程吗?',this.id);" class="btn btn-xs btn-success">
恢&nbsp;&nbsp;复
<i class="ace-icon fa fa-play bigger-110"></i>
</button>
</c:if>
-->
<button type="button" id="cancel" onclick="processAction('${ctx}/procInstMgr/cancel.do','您确认要作废该流程吗?作废后的流程可在流程历史管理中查询到!',this.id);" class="btn btn-xs btn-danger">
作&nbsp;&nbsp;废
<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">
删&nbsp;&nbsp;除
<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>
<button type="button" onclick="updateProcessTime('${ctx}/procInstMgr/updateProcessTimeView.do');" class="btn btn-xs btn-primary">
修改流转时间
<i class="ace-icon fa fa-pencil-square-o bigger-110"></i>
</button>
<button type="button" onclick="delProcessRoam('${ctx}/procInstMgr/delProcessRoamView.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>
<table id="sample-table-1"
style="max-width: 600%;table-layout: fixed;"
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 >流程实例ID</th>
<th>创建人</th>
<th >创建部门</th>
<th style="width: 150px">发起时间</th>
<th style="width: 90px">持续时间</th>
<th style="width: 90px">状态</th>
<!-- 排序时为th增加sortColumn即可,new SimpleTable('sortColumns')会为tableHeader自动增加排序功能; -->
</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 title="<%=histProcInst.getProcessDefinitionName()%>" class="td"><%=histProcInst.getProcessDefinitionName()%>&nbsp; </td>
<td title="<%=histProcInst.getProcTitle()%>&nbsp;" class="td">
<a href="javascript:void(0);" onclick="openProcessTrackPage('${ctx}','<%=histProcInst.getId() %>');">
<%=histProcInst.getProcTitle()%>&nbsp;</a>
</td>
<td title="<%=histProcInst.getId()%>"
class="td"><%=histProcInst.getId()%></td>
<td title="<%if(null!=histProcInst.getStartUserName()){%>
<%=histProcInst.getStartUserName()%>&nbsp;(<%=histProcInst.getStartUserId()%>)
<%}else{ %>
<%=histProcInst.getStartUserId()%>
<%} %>" class="td">
<%if(null!=histProcInst.getStartUserName()){%>
<%=histProcInst.getStartUserName()%>&nbsp;(<%=histProcInst.getStartUserId()%>)
<%}else{ %>
<%=histProcInst.getStartUserId()%>
<%} %>
</td>
<td title="<%=histProcInst.getStarterOrgName()%>" class="td">
<%=histProcInst.getStarterOrgName()%>
</td>
<td title="<%=DateUtil.convertDateToString("yyyy-MM-dd HH:mm:ss", histProcInst.getStartTime()) %>" class="td">
<%=DateUtil.convertDateToString("yyyy-MM-dd HH:mm:ss", histProcInst.getStartTime()) %>
</td>
<td>
<%String day=com.blueland.bpm.manage.web.ProcessInstanceController.differByDay(histProcInst.getStartTime(),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>
<td>
<%if(histProcInst.getProcState()==1){
%><span class="label label-success">正常</span>
<%
}else if(histProcInst.getProcState()==2){%>
<span class="label label-warning">暂停</span>
<%}else if(histProcInst.getProcState()==3){%>
<span class="label label-danger">作废</span>
<%}%>
</td>
</tr>
<%}} %>
</tbody>
</table>
</div>
<simpletable:pageToolbar page="${page}">
</simpletable:pageToolbar>
</div>
<!-- /.table-responsive -->
</div>
<!-- /span -->
</div>
</div>
</div>
</div>
</form>
</body>
</html>