2024-08-14 15:17:51 +08:00

354 lines
13 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@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>
<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("操作失败!");
}
}
});
}
}
</script>
</head>
<body>
<%@ include file="/commons/messages.jsp" %>
<form id="queryForm" name="queryForm" action="${ctx}/taskMgr/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 width="100px" height="25px">流程定义名称:</td>
<td width="100px" heiht="25px">
<input value="${query.processDefName}" id="processDefName" name="processDefName" />
</td>
<td>流程标题:</td>
<td>
<input value="${query.title}" id="title" name="title" />
</td>
<td width="100px">流程实例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="${assigneeName}" id="assigneeName" name="assigneeName" maxlength="30" onclick="showUserOrg('assigneeName','','','USER'); return false;" readonly />
<input value="${assignee}" type="hidden" id="assignee" name="assignee" maxlength="30" />
</td>
<td width="80px">环节定义ID</td>
<td>
<input value="${actDefId}" id="actDefId" name="actDefId" />
</td>
<td width="70px">环节实例ID</td>
<td>
<input value="${actInstId}" id="actInstId" name="actInstId" />
</td>
</tr>
<c:if test="${customSso != '1'}">
<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>
</button>
<!--
<button type="button" onclick="processAction('${ctx}/taskMgr/delete.do','您确定要删除待办吗?','3');" class="btn btn-xs btn-grey">
删除待办
<i class="ace-icon fa fa-trash-o bigger-110"></i></button>
</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>
<%-- <a href="${ctx}/taskMgr/exportList.do?fileName=流程任务" class="btn btn-xs btn-primary"><i class="ace-icon fa fa-edit bigger-110"></i>导出流程任务列表</a> --%>
</td>
</tr>
</c:if>
</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>
<%--<c:choose>--%>
<%-- <c:when test="${page.result.size() > 0}"> </c:when>--%>
<%-- <c:otherwise>--%>
<%-- </c:otherwise>--%>
<%--</c:choose>--%>
<!-- 排序时为th增加sortColumn即可,new SimpleTable('sortColumns')会为tableHeader自动增加排序功能; -->
<th style="width: 20px"></th>
<th style="width: 150px;">流程定义</th>
<th>流程标题</th>
<th >流程实例</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 title="<%=task.getProcessDefinitionName()%>" class="td"><%=task.getProcessDefinitionName()%></td>
<td title="<%=task.getProcTitle()%>&nbsp;" class="td">
<a title="流程实例ID:<%=task.getProcessInstanceId()%>,环节实例ID:<%=task.getId()%>,环节定义ID:<%=task.getTaskDefinitionKey()%>,组织id:<%=task.getAssigneeOrgId()%>" href="javascript:void(0);" onclick="openProcessTrackPage('${ctx}','<%=task.getProcessInstanceId() %>');">
<%=task.getProcTitle()%>&nbsp;</a>
</td>
<td title="<%=task.getProcessInstanceId()%>" class="td">
<%=task.getProcessInstanceId()%>
</td>
<td title="<%if(null!=task.getAssigneeUserName()){ %>
<%=task.getAssigneeUserName() %>(<%=task.getAssignee()!=null?task.getAssignee():""%>)
<%}else{ %>
<%=task.getAssignee()!=null?task.getAssignee():""%>
<%} %>" class="td" title="执行人组织:<%=task.getAssigneeOrgName()%>">
<%if(null!=task.getAssigneeUserName()){ %>
<%=task.getAssigneeUserName() %>(<%=task.getAssignee()!=null?task.getAssignee():""%>)
<%}else{ %>
<%=task.getAssignee()!=null?task.getAssignee():""%>
<%} %>
</td>
<td>
<%=task.getName()%>&nbsp; </td>
<td title="<%if(null!=task.getSendUserName()){ %>
<%=task.getSendUserName()!=null?task.getSendUserName():""%>(<%=task.getSendUserId()!=null?task.getSendUserId():""%>)
<%}else{ %>
<%=task.getSendUserId()!=null?task.getSendUserId():""%>
<%} %>" 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())%>&nbsp; </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>
<!-- /.table-responsive -->
</div>
<!-- /span -->
</div>
</div>
</div>
</div>
</form>
</body>
</html>