Enford 5 anos atrás
pai
commit
bc7d3170e8
60 arquivos alterados com 15096 adições e 0 exclusões
  1. 161 0
      src/main/webapp/webpage/modules/workpayment/workPaymentAudit.jsp
  2. 206 0
      src/main/webapp/webpage/modules/workpayment/workPaymentForm.jsp
  3. 122 0
      src/main/webapp/webpage/modules/workpayment/workPaymentHistoricList.jsp
  4. 242 0
      src/main/webapp/webpage/modules/workpayment/workPaymentList.jsp
  5. 191 0
      src/main/webapp/webpage/modules/workpayment/workPaymentTodoList.jsp
  6. 227 0
      src/main/webapp/webpage/modules/workperformance/workPerformanceForm.jsp
  7. 308 0
      src/main/webapp/webpage/modules/workperformance/workPerformanceList.jsp
  8. 227 0
      src/main/webapp/webpage/modules/workperformance/workPerformanceView.jsp
  9. 67 0
      src/main/webapp/webpage/modules/workperson/workPersonForm.jsp
  10. 539 0
      src/main/webapp/webpage/modules/workperson/workPersonList.jsp
  11. 162 0
      src/main/webapp/webpage/modules/workpettycash/workPettyCashAudit.jsp
  12. 200 0
      src/main/webapp/webpage/modules/workpettycash/workPettyCashForm.jsp
  13. 124 0
      src/main/webapp/webpage/modules/workpettycash/workPettyCashHistoricList.jsp
  14. 274 0
      src/main/webapp/webpage/modules/workpettycash/workPettyCashList.jsp
  15. 191 0
      src/main/webapp/webpage/modules/workpettycash/workPettyCashTodoList.jsp
  16. 150 0
      src/main/webapp/webpage/modules/workprequalification/workPrequalificationAudit.jsp
  17. 490 0
      src/main/webapp/webpage/modules/workprequalification/workPrequalificationForm.jsp
  18. 144 0
      src/main/webapp/webpage/modules/workprequalification/workPrequalificationHistoricList.jsp
  19. 374 0
      src/main/webapp/webpage/modules/workprequalification/workPrequalificationList.jsp
  20. 15 0
      src/main/webapp/webpage/modules/workprequalification/workPrequalificationTask.jsp
  21. 225 0
      src/main/webapp/webpage/modules/workprequalification/workPrequalificationTodoList.jsp
  22. 284 0
      src/main/webapp/webpage/modules/workprequalification/workPrequalificationView.jsp
  23. 65 0
      src/main/webapp/webpage/modules/workprocesstype/workProcessDetailForm.jsp
  24. 129 0
      src/main/webapp/webpage/modules/workprocesstype/workProcessDetailList.jsp
  25. 66 0
      src/main/webapp/webpage/modules/workproject/workProjectForm.jsp
  26. 200 0
      src/main/webapp/webpage/modules/workproject/workProjectList.jsp
  27. 135 0
      src/main/webapp/webpage/modules/workproject/workProjectLists.jsp
  28. 318 0
      src/main/webapp/webpage/modules/workproject/workRecordForm.jsp
  29. 337 0
      src/main/webapp/webpage/modules/workproject/workRecordView.jsp
  30. 790 0
      src/main/webapp/webpage/modules/workprojectManagement/startThreeGradeExamination.jsp
  31. 269 0
      src/main/webapp/webpage/modules/workprojectManagement/workAttachmentListView.jsp
  32. 141 0
      src/main/webapp/webpage/modules/workprojectManagement/workProjectManagementHistoricList.jsp
  33. 330 0
      src/main/webapp/webpage/modules/workprojectManagement/workProjectManagementList.jsp
  34. 222 0
      src/main/webapp/webpage/modules/workprojectManagement/workProjectManagementTodoList.jsp
  35. 828 0
      src/main/webapp/webpage/modules/workprojectManagement/workThreeExamination.jsp
  36. 687 0
      src/main/webapp/webpage/modules/workprojectManagement/workThreeExaminationView.jsp
  37. 828 0
      src/main/webapp/webpage/modules/workprojectManagement/workThreeGradeExamination.jsp
  38. 183 0
      src/main/webapp/webpage/modules/workprojectManagement/workThreeGradeExaminationAudit.jsp
  39. 687 0
      src/main/webapp/webpage/modules/workprojectManagement/workThreeGradeExaminationView.jsp
  40. 87 0
      src/main/webapp/webpage/modules/workprojectcalc/workProjectCalcBuildForm.jsp
  41. 150 0
      src/main/webapp/webpage/modules/workprojectcalc/workProjectCalcBuildList.jsp
  42. 288 0
      src/main/webapp/webpage/modules/workprojectcalc/workProjectCalcDecorForm.jsp
  43. 120 0
      src/main/webapp/webpage/modules/workprojectcalc/workProjectCalcDecorFormView.jsp
  44. 158 0
      src/main/webapp/webpage/modules/workprojectcalc/workProjectCalcDecorList.jsp
  45. 97 0
      src/main/webapp/webpage/modules/workprojectcompletion/projectPreList.jsp
  46. 327 0
      src/main/webapp/webpage/modules/workprojectcompletion/workFullManageCompletionList.jsp
  47. 201 0
      src/main/webapp/webpage/modules/workprojectcompletion/workProjectCompletionEdit.jsp
  48. 205 0
      src/main/webapp/webpage/modules/workprojectcompletion/workProjectCompletionForm.jsp
  49. 132 0
      src/main/webapp/webpage/modules/workprojectcompletion/workProjectCompletionHistoryList.jsp
  50. 101 0
      src/main/webapp/webpage/modules/workprojectcompletion/workProjectCompletionLookForm.jsp
  51. 15 0
      src/main/webapp/webpage/modules/workprojectcompletion/workProjectCompletionTask.jsp
  52. 238 0
      src/main/webapp/webpage/modules/workprojectcompletion/workProjectCompletionToDoList.jsp
  53. 144 0
      src/main/webapp/webpage/modules/workprojectcompletion/workProjectCompletiontAudit.jsp
  54. 78 0
      src/main/webapp/webpage/modules/workprojectdeposit/workProjectDepositForm.jsp
  55. 229 0
      src/main/webapp/webpage/modules/workprojectdeposit/workProjectDepositList.jsp
  56. 93 0
      src/main/webapp/webpage/modules/workprojectnotify/workProjectNotifyForm.jsp
  57. 647 0
      src/main/webapp/webpage/modules/workprojectnotify/workProjectNotifyList.jsp
  58. 330 0
      src/main/webapp/webpage/modules/workprojectnotify/workProjectNotifyLists.jsp
  59. 303 0
      src/main/webapp/webpage/modules/workprojectnotify/workProjectNotifyShowList.jsp
  60. 15 0
      src/main/webapp/webpage/modules/workprojectnotify/workProjectNotityTask.jsp

+ 161 - 0
src/main/webapp/webpage/modules/workpayment/workPaymentAudit.jsp

@@ -0,0 +1,161 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>付款申请流程管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        var validateForm;
+        function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                if(obj == 1){
+                    $('#flag').val('yes');
+                }else{
+                    $('#flag').val('no');
+                }
+                $("#inputForm").submit();
+                return true;
+            }
+
+            return false;
+        }
+
+        $('#btnPresent').click(function () {
+
+            $.ajax({
+                url:"${ctx}/workpayment/workPayment/present",
+                data:$('#loginForm').serialize(),
+                type:"post",
+                success:function(data){
+
+                }
+            });
+        });
+
+        $(document).ready(function() {
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+		});
+	</script>
+</head>
+
+<body class="gray-bg">
+
+  <div class="wrapper wrapper-content">
+	<div class="ibox">
+	<div class="ibox-title">
+		<h5>付款申请详情 </h5>
+		<div class="ibox-tools">
+			<a class="collapse-link">
+				<i class="fa fa-chevron-up"></i>
+			</a>
+			<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+				<i class="fa fa-wrench"></i>
+			</a>
+			<ul class="dropdown-menu dropdown-user">
+				<li><a href="javascript:void(0)">选项1</a>
+				</li>
+				<li><a href="javascript:void(0)">选项2</a>
+				</li>
+			</ul>
+			<a class="close-link">
+				<i class="fa fa-times"></i>
+			</a>
+		</div>
+	</div>
+		<div class="ibox-content">
+		<form:form id="inputForm" modelAttribute="workPayment" action="${ctx}/workpayment/workPayment/saveAudit" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+			<form:hidden path="home"/>
+		<form:hidden path="act.taskId"/>
+		<form:hidden path="act.taskName"/>
+		<form:hidden path="act.taskDefKey"/>
+		<form:hidden path="act.procInsId"/>
+		<form:hidden path="act.procDefId"/>
+		<form:hidden id="flag" path="act.flag"/>
+		<sys:message content="${message}"/>
+			<c:set var="status" value="${workPayment.act.status}" />
+			<div class="control-group">
+				<label class="control-label">付款事由:</label>
+				<div class="controls" style="margin-top: 8px;">
+					${workPayment.reason}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">付款金额(元):</label>
+				<div class="controls" style="margin-top: 8px;">
+					${workPayment.amount}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">付款方式:</label>
+				<div class="controls" style="margin-top: 8px;">
+					${fns:getDictLabel(workPayment.payType, 'pay_type', '')}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">支付日期:</label>
+				<div class="controls" style="margin-top: 8px;">
+					<fmt:formatDate value="${workPayment.payDate}" pattern="yyyy-MM-dd"/>
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">支付对象:</label>
+				<div class="controls" style="margin-top: 8px;">
+					${workPayment.payObject}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">开户银行:</label>
+				<div class="controls" style="margin-top: 8px;">
+					${workPayment.payBank}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">银行账户:</label>
+				<div class="controls" style="margin-top: 8px;">
+					${workPayment.payBankAccount}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">备注:</label>
+				<div class="controls" style="margin-top: 8px;">
+						${workPayment.remarks}
+				</div>
+			</div>
+			<c:if test="${not empty status}">
+				<div class="control-group">
+					<label class="control-label">审批意见:</label>
+					<div class="controls">
+						<form:textarea path="act.comment" class="form-control" rows="3" maxlength="127"/>
+					</div>
+				</div>
+				<%--<div class="form-actions">
+				<c:if test="${workPayment.act.taskDefKey ne 'apply_end'}">
+						<input id="btnSubmit" class="btn btn-primary" type="submit" value="同 意" onclick="$('#flag').val('yes')"/>&nbsp;
+						<input id="btnSubmit" class="btn btn-inverse" type="submit" value="驳 回" onclick="$('#flag').val('no')"/>&nbsp;
+				</c:if>
+				<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
+				</div>--%>
+			</c:if>
+			<act:flowChart procInsId="${workPayment.act.procInsId}"/>
+			<act:histoicFlow procInsId="${workPayment.act.procInsId}"/>
+	</form:form>
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 206 - 0
src/main/webapp/webpage/modules/workpayment/workPaymentForm.jsp

@@ -0,0 +1,206 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>付款申请管理</title>
+	<meta name="decorator" content="default"/>
+	<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+		  if(validateForm.form()){
+			  $("#inputForm").submit();
+			  return true;
+		  }
+	
+		  return false;
+		}
+		$(document).ready(function() {
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+
+				    var len = $("#showPeo span").length;
+					if(len<=0){
+                        parent.layer.msg("请选择审批人!",{icon:5});
+					    return false;
+					}
+					if(len<0){
+
+					}
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+		});
+
+        function selectPeople(objId,objName){
+            var currentUser = '${fns:getUser().id}';
+            if(currentUser==objId){
+                parent.layer.msg("不能选择自己为审批人!",{icon:5});
+                return false;
+            }
+            var showPeo = $("#showPeo").html();
+            var len = $("#showPeo span").length;
+            if(len > 4){
+                parent.layer.msg("最多添加5个审批人",{icon:5})
+                return;
+            }
+            var arr = [];
+            var a = $("#showPeo span").each(function(){
+                var dataId = $(this).attr("data-id");
+                arr.push(dataId)
+            })
+            if(arr.indexOf(objId) != -1){
+                parent.layer.msg("该审批人已被选择,不能重复选择!!!",{icon:5})
+                return ;
+            }
+            showPeo = showPeo + '<span class="badge badge-success fontSpan" data-id="'+objId+'">'+objName+'&nbsp;&nbsp;&nbsp;' +
+                '<i onclick=deletePeo(this) class="fa fa-close"></i><input type="hidden" name=adds['+len+'] value="'+objId+'"></span>';
+            $("#showPeo").html(showPeo)
+        }
+        function deletePeo(obj){
+            $(obj).parent().remove()
+        }
+	</script>
+</head>
+<body class="gray-bg">
+
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+		<c:if test="${sessionScope.state!='disabled'}">
+			<div class="ibox-title" style="height: 70px;">
+				<h5>
+					<ul class="nav nav-tabs">
+						<li><a href="${ctx}/workpayment/workPayment/list">付款申请信息</a></li>
+						<li><a href="${ctx}/workpayment/workPayment/workPaymentTodoList">待办任务</a></li>
+						<li><a href="${ctx}/workpayment/workPayment/workPaymentHistoricList">已办任务</a></li>
+						<shiro:hasPermission name="workpayment:workPayment:edit"><li class="active"><a href="${ctx}/workpayment/workPayment/form?ids=0">付款申请</a></li></shiro:hasPermission>
+					</ul>
+				</h5>
+				<%--<div class="ibox-tools">
+					<a class="collapse-link">
+						<i class="fa fa-chevron-up"></i>
+					</a>
+					<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+						<i class="fa fa-wrench"></i>
+					</a>
+					<ul class="dropdown-menu dropdown-user">
+						<li><a href="javascript:void(0)">选项1</a>
+						</li>
+						<li><a href="javascript:void(0)">选项2</a>
+						</li>
+					</ul>
+					<a class="close-link">
+						<i class="fa fa-times"></i>
+					</a>
+				</div>--%>
+			</div>
+		</c:if>
+		<div class="ibox-content">
+			<form:form id="inputForm" modelAttribute="workPayment" action="${ctx}/workpayment/workPayment/save" method="post" class="form-horizontal">
+				<form:hidden path="id"/>
+				<c:set var="id" value="${workPayment.id}" />
+				<c:set var="ids" value="${workPayment.ids}" />
+				<sys:message content="${message}"/>
+				<div class="control-group">
+					<label class="control-label"><font color="red">*</font>付款事由:</label>
+					<div class="controls">
+						<form:textarea path="reason" class="form-control required" rows="3" maxlength="20"/>
+						<span class="help-inline"></span>
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label"><font color="red">*</font>付款金额(元):</label>
+					<div class="controls">
+						<input id="amount" name="amount" type="text" class="form-control required number" value="${workPayment.amount}"/>
+						<span class="help-inline"></span>
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label">付款方式:</label>
+					<div class="controls" style="width: 200px;">
+						<form:select path="payType" class="form-control required">
+							<form:options items="${fns:getDictList('pay_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+						</form:select>
+						<span class="help-inline"></span>
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label"><font color="red">*</font>支付日期:</label>
+					<div class="controls" style="width: 200px;">
+						<input class="form-control layer-date laydate-icon required" id="payDate" name="payDate" readonly="readonly" value="<fmt:formatDate value="${workPayment.payDate}" pattern="yyyy-MM-dd"/>" onclick="laydate({istime: false, format: 'YYYY-MM-DD'})">
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label">支付对象:</label>
+					<div class="controls">
+						<input id="payObject" name="payObject" type="text"  class="form-control" value="${workPayment.payObject}"/>
+						<span class="help-inline"></span>
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label">开户银行:</label>
+					<div class="controls">
+						<input id="payBank" name="payBank" type="text"  class="form-control" value="${workPayment.payBank}"/>
+						<span class="help-inline"></span>
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label">银行账户:</label>
+					<div class="controls">
+						<input id="payBankAccount" name="payBankAccount" type="text"  class="form-control number" value="${workPayment.payBankAccount}"/>
+						<span class="help-inline"></span>
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label">备注:</label>
+					<div class="controls">
+						<form:textarea path="remarks" class="form-control" rows="3" maxlength="20"/>
+						<span class="help-inline"></span>
+					</div>
+				</div>
+				<c:if test="${empty id}">
+					<div class="control-group">
+						<label class="control-label"><font color="red">*</font>审批人:</label>
+						<div id="" class="controls">
+							<sys:treeselectleave id="" name="" value="" labelName="" labelValue=""
+											title="审批人" url="/sys/office/treeDataAll?type=3" cssClass="form-control required" allowClear="true" notAllowSelectParent="true"/>
+							<span class="help-inline"></span>
+						</div>
+						<div id="showPeo" class="controls">
+						</div>
+					</div>
+					<div class="control-group">
+						<label class="control-label"><font color="red">*</font>抄送人:</label>
+						<div id="CCid" class="controls">
+							<sys:treeselect id="CCid" name="CCid" value="" labelName="" labelValue=""
+											title="抄送人" url="/sys/office/treeDataAll?type=3&isAll=false" cssClass="form-control required" allowClear="true" checked="true" notAllowSelectParent="true"/>
+							<span class="help-inline"></span>
+						</div>
+					</div>
+					<c:if test="${not empty ids}">
+						<div class="form-actions">
+							<input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>&nbsp;
+							<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
+						</div>
+					</c:if>
+				</c:if>
+			</form:form>
+		</div>
+	</div>
+</div>
+<%
+	session.removeAttribute("state");
+%>
+
+</body>
+</html>

+ 122 - 0
src/main/webapp/webpage/modules/workpayment/workPaymentHistoricList.jsp

@@ -0,0 +1,122 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>已审核付款申请信息</title>
+	<meta name="decorator" content="default"/>
+	<%--<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>--%>
+	<script type="text/javascript">
+        $(document).ready(function() {
+            laydate.render({
+                elem: '#beginDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+        });
+	</script>
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+		<div class="ibox-title" style="height: 70px;">
+			<h5>
+				<ul class="nav nav-tabs">
+					<li><a href="${ctx}/workpayment/workPayment/list">付款申请信息</a></li>
+					<li><a href="${ctx}/workpayment/workPayment/workPaymentTodoList">待办任务</a></li>
+					<li class="active"><a href="${ctx}/workpayment/workPayment/workPaymentHistoricList">已办任务</a></li>
+					<shiro:hasPermission name="workpayment:workPayment:edit"><li><a href="${ctx}/workpayment/workPayment/form?ids=0">付款申请</a></li></shiro:hasPermission>
+				</ul>
+			</h5>
+			<%--<div class="ibox-tools">
+				<a class="collapse-link">
+					<i class="fa fa-chevron-up"></i>
+				</a>
+				<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+					<i class="fa fa-wrench"></i>
+				</a>
+
+			</div>--%>
+		</div>
+
+		<div class="ibox-content">
+			<sys:message content="${message}"/>
+			<!--查询条件-->
+			<div class="row">
+				<div class="col-sm-12">
+					<form:form id="searchForm" modelAttribute="act" action="${ctx}/workpayment/workPayment/workPaymentHistoricList" method="get" class="form-inline">
+						<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+						<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+						<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+						<div class="form-group">
+							<label>创建时间:</label>
+							<input id="beginDate"  name="beginDate"  type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.beginDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+							 -- 
+							<input id="endDate" name="endDate" type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.endDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+						</div>
+					</form:form>
+					<br/>
+				</div>
+			</div>
+			<!-- 工具栏 -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="pull-left">
+						<button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+					</div>
+					<div class="pull-right">
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+					</div>
+				</div>
+			</div>
+			<!-- 表格 -->
+			<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+				<thead>
+				<tr>
+					<th style="text-align: center;">流程发起人</th>
+					<th style="text-align: center;">流程名称</th>
+					<th style="text-align: center;">流程版本</th>
+					<th style="text-align: center;"  class="sort-column a.reason">申请事由</th>
+					<th style="text-align: center;"  class="sort-column a.amount">申请金额(元)</th>
+					<th style="text-align: center;"  class="sort-column a.create_date">申请时间</th>
+				</tr>
+				</thead>
+				<tbody>
+				<c:forEach items="${list}" var="workPayment">
+					<c:set var="task" value="${workPayment.act.task}" />
+					<c:set var="vars" value="${workPayment.act.vars}" />
+					<c:set var="procDef" value="${workPayment.act.procDef}" />
+					<c:set var="status" value="${workPayment.act.status}" />
+					<tr>
+						<td>${workPayment.act.vars.map.applyUserId}</td>
+						<td>
+							<shiro:hasPermission name="workpayment:workPayment:view">
+								<a href="javascript:void(0)" onclick="openDialogView('详情', '${ctx}/workpayment/workPayment/form?id=${workPayment.id}&readAttr=disabled&name=view','80%','80%')">
+									${procDef.name}
+								</a>
+							</shiro:hasPermission>
+						</td>
+						<td><b title='流程版本号'>V: ${procDef.version}</b></td>
+						<td><span title="${workPayment.reason}">${fns:abbr(workPayment.reason, 30)}</span></td>
+						<td>${workPayment.amount}</td>
+						<td><fmt:formatDate value="${workPayment.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+					</tr>
+				</c:forEach>
+				</tbody>
+			</table>
+			<!-- 分页代码 -->
+			<table:page page="${page}"></table:page>
+			<br/>
+			<br/>
+		</div>
+	</div>
+</div>
+</body>
+</html>

+ 242 - 0
src/main/webapp/webpage/modules/workpayment/workPaymentList.jsp

@@ -0,0 +1,242 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>付款申请管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		$(document).ready(function() {
+            function page(n,s){
+                location = '${ctx}/workpayment/workPayment/list/?pageNo='+n+'&pageSize='+s;
+            }
+		});
+        function openDialogre(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['同意','驳回','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn3: function(index){
+                }
+            });
+        }
+	</script>
+</head>
+<body class="gray-bg">
+	<div class="wrapper wrapper-content">
+	<div class="ibox">
+	<div class="ibox-title">
+		<h5>
+			<ul class="nav nav-tabs">
+				<li class="active"><a href="${ctx}/workpayment/workPayment/list">付款申请信息</a></li>
+				<li><a href="${ctx}/workpayment/workPayment/workPaymentTodoList">待办任务</a></li>
+				<li><a href="${ctx}/workpayment/workPayment/workPaymentHistoricList">已办任务</a></li>
+				<shiro:hasPermission name="workpayment:workPayment:edit"><li><a href="${ctx}/workpayment/workPayment/form?ids=0">付款申请</a></li></shiro:hasPermission>
+			</ul>
+		</h5>
+		<%--<div class="ibox-tools">
+			<a class="collapse-link">
+				<i class="fa fa-chevron-up"></i>
+			</a>
+			<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+				<i class="fa fa-wrench"></i>
+			</a>
+			<ul class="dropdown-menu dropdown-user">
+				<li><a href="javascript:void(0)">选项1</a>
+				</li>
+				<li><a href="javascript:void(0)">选项2</a>
+				</li>
+			</ul>
+			<a class="close-link">
+				<i class="fa fa-times"></i>
+			</a>
+		</div>--%>
+	</div>
+    
+    <div class="ibox-content">
+	<sys:message content="${message}"/>
+	
+	<!--查询条件-->
+	<div class="row">
+	<div class="col-sm-12">
+	<form:form id="searchForm" modelAttribute="workPayment" action="${ctx}/workpayment/workPayment/list" method="post" class="form-inline">
+		<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+		<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+		<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+		<a href="#" id="moresee" class="fa fa-chevron-down" style="float: right;">更多</a>
+		<div class="form-group">
+			<span>申请部门:</span>
+				<sys:treeselect id="officeId" name="officeId" value="${workPayment.officeId}" labelName="officeName" labelValue="${workPayment.officeName}"
+					title="部门" url="/sys/office/treeDataAll?type=2" cssClass="form-control input-sm" allowClear="true" notAllowSelectParent="true"/>
+			<label>审核状态:</label>
+			<form:select path="status"  class="form-control m-b">
+				<form:option value="" label=""/>
+				<form:options items="${fns:getDictList('act_status')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+			</form:select>
+		 </div>	
+	</form:form>
+	<br/>
+	</div>
+	</div>
+	
+	<!-- 工具栏 -->
+	<div class="row">
+	<div class="col-sm-12">
+		<div class="pull-left">
+	        <button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+		</div>
+		<div class="pull-right">
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+		</div>
+	</div>
+	</div>
+	
+	<!-- 表格 -->
+	<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+		<thead>
+			<tr>
+				<th style="text-align: center;">序号</th>
+				<th style="text-align: center;"  class="sort-column company.name">申请公司</th>
+				<th style="text-align: center;"  class="sort-column a.reason">事由</th>
+				<th style="text-align: center;"  class="sort-column a.amount">付款金额(元)</th>
+				<th style="text-align: center;"  class="sort-column a.pay_type">付款方式</th>
+				<th style="text-align: center;"  class="sort-column a.pay_date">支付日期</th>
+				<th style="text-align: center;"  class="sort-column a.pay_object">支付对象</th>
+				<th style="text-align: center;"  class="sort-column a.pay_bank">开户银行</th>
+				<th style="text-align: center;"  class="sort-column a.pay_bank_account">银行账户</th>
+				<th style="text-align: center;"  class="sort-column a.status">审批状态</th>
+				<th style="text-align: center;"  class="sort-column a.create_date">创建时间</th>
+				<th style="text-align: center;">操作</th>
+			</tr>
+		</thead>
+		<tbody>
+		<c:forEach items="${page.list}" var="workPayment" varStatus="varStatus">
+			<c:set var="task" value="${workPayment.task }" />
+			<c:set var="pi" value="${workPayment.processInstance }" />
+			<c:set var="hpi" value="${workPayment.historicProcessInstance }" />
+			<tr>
+				<td>${varStatus.index+1}</td>
+				<td>
+					<%--${workPayment.company.name}--%>
+					<span title="${workPayment.company.name}">${fns:abbr(workPayment.company.name, 30)}</span>
+				</td>
+				<td>
+					<%--${workPayment.reason}--%>
+					<span title="${workPayment.reason}">${fns:abbr(workPayment.reason, 16)}</span>
+				</td>
+				<td>
+					${workPayment.amount}
+				</td>
+				<td>
+					${fns:getDictLabel(workPayment.payType,'pay_type','')}
+				</td>
+				<td>
+					<fmt:formatDate value="${workPayment.payDate}" pattern="yyyy-MM-dd"/>
+				</td>
+				<td>
+					${workPayment.payObject}
+				</td>
+				<td>
+					${workPayment.payBank}
+				</td>
+				<td>
+					${workPayment.payBankAccount}
+				</td>
+				<c:if test="${not empty task}">
+					<td>${fns:getDictLabel(workPayment.status, 'act_status', '')}</td>
+					<td><fmt:formatDate value="${workPayment.createDate}" pattern="yyyy-MM-dd"/></td>
+					<td>
+						<div style="text-align: center">
+						<shiro:hasPermission name="workpayment:workPayment:view">
+							<a href="javascript:void(0)" onclick="openDialogView('详情', '${ctx}/workpayment/workPayment/form?id=${workPayment.id}&readAttr=disabled&name=view','80%','80%')" class="btn btn-info btn-xs" ><i class="fa fa-search-plus"></i> 查看</a>
+						</shiro:hasPermission>&nbsp;&nbsp;
+						<c:if test="${workPayment.createBy.id eq fns:getUser().id}">
+							<c:if test="${workPayment.status!=3 && workPayment.status!=4 && workPayment.status!=5}">
+								<a href="${ctx}/workpayment/workPayment/revoke?id=${workPayment.id}&processInstanceId=${workPayment.processInstanceId}&reason=${workPayment.reason}" onclick="return confirmx('确认要撤回该申请吗?', this.href)" class="btn btn-warning btn-xs"><i class="glyphicon glyphicon-share-alt"></i> 撤回</a>
+							</c:if>
+						</c:if>
+						<c:if test="${not empty task.assignee}">
+							<a href="${ctx}/workpayment/workPayment/applyOnWorkpayment?taskId=${task.id}&taskName=${fns:urlEncode(task.name)}&taskDefKey=${task.taskDefinitionKey}&procInsId=${task.processInstanceId}&procDefId=${task.processDefinitionId}&status=1" class="btn btn-success btn-xs">任务办理</a>
+						</c:if>
+						</div>
+					</td>
+				</c:if>
+				<c:if test="${empty task}">
+					<td>${fns:getDictLabel(workPayment.status, 'act_status', '')}</td>
+					<td><fmt:formatDate value="${workPayment.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+					<td>
+						<div style="text-align: center">
+						<shiro:hasPermission name="workpayment:workPayment:view">
+							<a href="javascript:void(0)" onclick="openDialogView('详情', '${ctx}/workpayment/workPayment/form?id=${workPayment.id}&readAttr=disabled&name=view','80%','80%')" class="btn btn-info btn-xs" ><i class="fa fa-search-plus"></i> 查看</a>
+						</shiro:hasPermission>
+						<c:if test="${workPayment.createBy.id eq fns:getUser().id}">
+							<c:if test="${workPayment.status!=3 && workPayment.status!=4 && workPayment.status!=5}">
+								<a href="${ctx}/workpayment/workPayment/revoke?id=${workPayment.id}&processInstanceId=${workPayment.processInstanceId}&reason=${workPayment.reason}" onclick="return confirmx('确认要撤回该信息吗?', this.href)" class="btn btn-warning btn-xs"><i class="glyphicon glyphicon-share-alt"></i> 撤回</a>
+							</c:if>
+							<c:if test="${workPayment.status==4 || workPayment.status==5}">
+								<shiro:hasPermission name="workpayment:workPayment:del">
+									<a href="${ctx}/workpayment/workPayment/delete?id=${workPayment.id}" onclick="return confirmx('确认要删除该付款申请吗?', this.href)"   class="btn btn-danger btn-xs"><i class="fa fa-trash"></i> 删除</a>
+								</shiro:hasPermission>
+							</c:if>
+							<c:if test="${workPayment.status==3}">
+								<a href="javascript:void(0)" onclick="javascript:top.layer.alert('该申请已通过不允许删除',{icon: 0, title:'系统提示'})" class="btn btn-default btn-xs"><i class="fa fa-trash"></i>删除</a>
+							</c:if>
+						</c:if>
+						</div>
+					</td>
+				</c:if>
+			</tr>
+		</c:forEach>
+		</tbody>
+	</table>
+	
+		<!-- 分页代码 -->
+	<table:page page="${page}"></table:page>
+	<br/>
+	<br/>
+	</div>
+	</div>
+</div>
+</body>
+</html>

+ 191 - 0
src/main/webapp/webpage/modules/workpayment/workPaymentTodoList.jsp

@@ -0,0 +1,191 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>待审核付款申请信息管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        function page(n,s){
+            location = '${ctx}/workpayment/workPayment/list/?pageNo='+n+'&pageSize='+s;
+        }
+        $(document).ready(function() {
+            laydate.render({
+                elem: '#beginDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+        });
+        function openDialogre(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['同意','驳回','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn3: function(index){
+                }
+            });
+        }
+	</script>
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+		<div class="ibox-title" style="height: 70px;">
+			<h5>
+				<ul class="nav nav-tabs">
+					<li><a href="${ctx}/workpayment/workPayment/list">付款申请信息</a></li>
+					<li class="active"><a href="${ctx}/workpayment/workPayment/workPaymentTodoList">待办任务</a></li>
+					<li><a href="${ctx}/workpayment/workPayment/workPaymentHistoricList">已办任务</a></li>
+					<shiro:hasPermission name="workpayment:workPayment:edit"><li><a href="${ctx}/workpayment/workPayment/form?ids=0">付款申请</a></li></shiro:hasPermission>
+				</ul>
+			</h5>
+			<%--<div class="ibox-tools">
+				<a class="collapse-link">
+					<i class="fa fa-chevron-up"></i>
+				</a>
+				<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+					<i class="fa fa-wrench"></i>
+				</a>
+
+			</div>--%>
+		</div>
+
+		<div class="ibox-content">
+			<sys:message content="${message}"/>
+			<!--查询条件-->
+			<div class="row">
+				<div class="col-sm-12">
+					<form:form id="searchForm" modelAttribute="act" action="${ctx}/workpayment/workPayment/workPaymentTodoList" method="get" class="form-inline">
+						<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+						<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+						<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+						<div class="form-group">
+							<label>创建时间:</label>
+							<input id="beginDate"  name="beginDate"  type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.beginDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+							 -- 
+							<input id="endDate" name="endDate" type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.endDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+						</div>
+					</form:form>
+					<br/>
+				</div>
+			</div>
+
+			<!-- 工具栏 -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="pull-left">
+						<button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+					</div>
+					<div class="pull-right">
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+					</div>
+				</div>
+			</div>
+			<!-- 表格 -->
+			<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+				<thead>
+				<tr>
+					<th style="text-align: center;">流程发起人</th>
+					<th style="text-align: center;">当前环节</th>
+					<th style="text-align: center;">流程名称</th>
+					<th style="text-align: center;">流程版本</th>
+					<th style="text-align: center;"  class="sort-column a.reason">申请事由</th>
+					<th style="text-align: center;"  class="sort-column a.amount">申请金额(元)</th>
+					<th style="text-align: center;"  class="sort-column a.create_date">申请时间</th>
+					<th style="text-align: center;">创建时间</th>
+					<th style="text-align: center;">操作</th>
+				</tr>
+				</thead>
+				<tbody>
+				<c:forEach items="${list}" var="workPayment">
+					<c:set var="task" value="${workPayment.act.task}" />
+					<c:set var="vars" value="${workPayment.act.vars}" />
+					<c:set var="procDef" value="${workPayment.act.procDef}" />
+					<c:set var="status" value="${workPayment.act.status}" />
+					<tr>
+						<td>${workPayment.act.vars.map.applyUserId}</td>
+						<td>${task.name}</td>
+						<td>
+							<div style="text-align: center">
+							<shiro:hasPermission name="workpayment:workPayment:view">
+								<a href="javascript:void(0)" onclick="openDialogView('详情', '${ctx}/workpayment/workPayment/form?id=${workPayment.id}&readAttr=disabled&name=view','80%','80%')">
+										${procDef.name}
+								</a>
+							</shiro:hasPermission>
+							</div>
+						</td>
+						<td><b title='流程版本号'>V: ${procDef.version}</b></td>
+						<td><span title="${workPayment.reason}">${fns:abbr(workPayment.reason, 30)}</span></td>
+						<td>${workPayment.amount}</td>
+						<td><fmt:formatDate value="${workPayment.createDate}" type="both"/></td>
+						<td><fmt:formatDate value="${task.createTime}" type="both"/></td>
+						<td>
+							<div style="text-align: center">
+							<c:if test="${not empty task.assignee}">
+								<a href="javascript:void(0)" onclick="openDialogre('任务办理', '${ctx}/workpayment/workPayment/applyOnWorkpayment?taskId=${task.id}&taskName=${fns:urlEncode(task.name)}&taskDefKey=${task.taskDefinitionKey}&procInsId=${task.processInstanceId}&procDefId=${task.processDefinitionId}&status=${status}','80%','80%')" class="btn btn-success btn-xs" ><i class="fa fa-edit"></i> 任务办理</a>
+
+								<%--<a href="${ctx}/workpayment/workPayment/applyOnWorkpayment?taskId=${task.id}&taskName=${fns:urlEncode(task.name)}&taskDefKey=${task.taskDefinitionKey}&procInsId=${task.processInstanceId}&procDefId=${task.processDefinitionId}&status=${status}" class="btn btn-success btn-xs">任务办理</a>
+							--%></c:if>
+							</div>
+						</td>
+					</tr>
+				</c:forEach>
+				</tbody>
+			</table>
+			<!-- 分页代码 -->
+			<table:page page="${page}"></table:page>
+			<br/>
+			<br/>
+		</div>
+	</div>
+</div>
+</body>
+</html>

+ 227 - 0
src/main/webapp/webpage/modules/workperformance/workPerformanceForm.jsp

@@ -0,0 +1,227 @@
+<%@ page import="com.jeeplus.modules.sys.utils.UserUtils" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>公司业绩管理</title>
+	<meta name="decorator" content="default"/>
+	<style type="text/css">
+		img{width: 50px;height: 50px;}
+	</style>
+	<script type="text/javascript">
+        var validateForm;
+        function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                $("#inputForm").submit();
+                return true;
+            }
+
+            return false;
+        }
+        $(document).ready(function() {
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+            $("#attachment_btn").click(function () {
+                $("#attachment_file").click();
+            });
+        });
+        function insertTitle(tValue){
+            var list = "${workPerformance.workAttachments}";
+            var size = (list.split('url')).length-1;
+            var files = $("#attachment_file")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = "";
+            var attachmentFlag = "113";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workPerformance/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        }
+	</script>
+</head>
+<body>
+<div class="single-form">
+	<div class="container">
+		<form:form id="inputForm" modelAttribute="workPerformance" action="${ctx}/workperformance/workPerformance/save" method="post"  class="form-horizontal"><%--enctype="multipart/form-data"--%>
+			<form:hidden path="id"/>
+			<sys:message content="${message}"/>
+			<div class="form-group layui-row first lw8">
+				<div class="form-group-label"><h2>基础信息</h2></div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>合同编号:</label>
+					<div class="layui-input-block">
+						<form:input path="num" htmlEscape="false"  class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>项目名称:</label>
+					<div class="layui-input-block">
+						<form:input path="name" htmlEscape="false"  class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>委托单位:</label>
+					<div class="layui-input-block">
+						<form:input path="client" htmlEscape="false" class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>服务内容:</label>
+					<div class="layui-input-block">
+						<form:input path="content" htmlEscape="false"  class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>工程分类:</label>
+					<div class="layui-input-block">
+						<form:input path="type" htmlEscape="false"  class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>服务起止时间:</label>
+					<div class="layui-input-block">
+						<form:input path="serviceDate" htmlEscape="false"  class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>合同金额(元):</label>
+					<div class="layui-input-block">
+						<form:input path="contractPrice" htmlEscape="false"  class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line">投资额(万元):</label>
+					<div class="layui-input-block">
+						<form:input path="investmentAmount" htmlEscape="false" class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line">建筑面积/规模:</label>
+					<div class="layui-input-block">
+						<form:input path="scaleQuantity" htmlEscape="false"  class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line">委托方联系人/电话:</label>
+					<div class="layui-input-block">
+						<form:input path="linkman" htmlEscape="false"  class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">合同来源:</label>
+					<div class="layui-input-block">
+						<form:input path="contractSource" htmlEscape="false"  class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">所属部门:</label>
+					<div class="layui-input-block">
+						<form:input path="officeName" htmlEscape="false"  class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>项目负责人:</label>
+					<div class="layui-input-block">
+						<form:input path="projectLeaders" htmlEscape="false" class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">是否归档:</label>
+					<div class="layui-input-block">
+						<form:input path="record" htmlEscape="false" readonly="true" class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">数据来源:</label>
+					<div class="layui-input-block">
+						<form:input path="source" htmlEscape="false" readonly="true" class="form-control  layui-input"/>
+					</div>
+				</div>
+			</div>
+			<div class="form-group layui-row">
+				<div class="form-group-label"><h2>附件信息</h2></div>
+				<div class="layui-item nav-btns">
+					<a id="attachment_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>
+				</div>
+				<div id="addFile_attachment" style="display: none" class="upload-progress">
+					<span id="fileName_attachment" ></span>
+					<b><span id="baifenbi_attachment" ></span></b>
+					<div class="progress">
+						<div id="jindutiao_attachment" class="progress-bar" style="width: 0%" aria-valuenow="0">
+						</div>
+					</div>
+				</div>
+				<input id="attachment_file" type="file" name="attachment_file" multiple="multiple" style="display: none;" onChange="if(this.value)insertTitle(this.value);"/>
+				<span id="attachment_title"></span>
+				<div class="layui-item layui-col-xs12" style="padding:0 16px;">
+					<table id="upTable" class="table table-bordered table-condensed details">
+						<thead>
+						<tr>
+								<%-- <th>序号</th>--%>
+							<th>文件预览</th>
+							<th>上传人</th>
+							<th>上传时间</th>
+							<th width="150px">操作</th>
+						</tr>
+						</thead>
+						<tbody id="file_attachment">
+						<c:forEach items="${workPerformance.workAttachments}" var = "workClientAttachment" varStatus="status">
+							<tr>
+									<%-- <td>${status.index + 1}</td>--%>
+								<c:choose>
+									<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+										<td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+									</c:when>
+									<c:otherwise>
+										<c:choose>
+											<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+												<td><a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%','1')">${workClientAttachment.attachmentName}</a></td>
+											</c:when>
+											<c:otherwise>
+												<td><a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%')">${workClientAttachment.attachmentName}</a></td>
+											</c:otherwise>
+										</c:choose>
+									</c:otherwise>
+								</c:choose>
+								<td>${workClientAttachment.createBy.name}</td>
+								<td><fmt:formatDate value="${workClientAttachment.createDate}" type="both"/></td>
+								<td class="op-td">
+									<div class="op-btn-box" >
+										<a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent(encodeURIComponent('${workClientAttachment.url}'));" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+										<c:if test="${workClientAttachment.createBy.id eq fns:getUser().id}">
+											<a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile')" class="op-btn op-btn-delete" ><i class="fa fa-trash"></i>&nbsp;删除</a>
+										</c:if>
+									</div>
+								</td>
+							</tr>
+						</c:forEach>
+						</tbody>
+					</table>
+				</div>
+			</div>
+			<div class="form-group layui-row page-end"></div>
+		</form:form>
+	</div>
+</div>
+</body>
+</html>

+ 308 - 0
src/main/webapp/webpage/modules/workperformance/workPerformanceList.jsp

@@ -0,0 +1,308 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>公司业绩库管理</title>
+	<meta name="decorator" content="default"/>
+	<style type="text/css">
+		img{width: 50px;height: 50px;}
+	</style>
+	<script type="text/javascript">
+        $(document).ready(function() {
+            //搜索框收放
+            $('#moresee').click(function(){
+                if($('#moresees').is(':visible'))
+                {
+                    $('#moresees').slideUp(0,resizeListWindow1);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-up").addClass("glyphicon glyphicon-menu-down");
+                }else{
+                    $('#moresees').slideDown(0,resizeListWindow1);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-down").addClass("glyphicon glyphicon-menu-up");
+                }
+            });
+        });
+
+        function openDialogreProject(title,url,width,height,target){
+
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: ['90%','90%'],
+                title:title,
+                skin:"two-btns",
+                name:'friend',
+                content: encodeURI("${ctx}/workinvoice/workInvoice/selectprojectperfces?url=${ctx}/workinvoice/workInvoice/selectprojectperfce&isAll=true&type=null&isSingle=false") ,
+                btn: ['确定', '关闭'],
+                yes: function(index, layero){
+                    var iframeWin = layero.find('iframe')[0].contentWindow; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var item = iframeWin.getSelectedItem();
+                    if(item == "-1"){
+                        return;
+                    }
+                    var _ids; ;
+                    if(false){//单选
+                        _ids = item.id;
+                        //selectUserInfo(item.userId);
+                    }else{//多选
+                        var ids = [], names = [];
+                        for (var i=0;i<item.length;i++){
+                            ids.push(item[i].id);
+                        }
+                        var arr=ids.join(",").replace(/u_/ig,"");
+                        _ids = arr;
+                        //setUserInfo(arr);
+                    }
+                    console.log(_ids);
+                    //console.log($("#id").val());
+                    $.ajax({
+                        type:"post",
+                        url:'${ctx}/workperformance/workPerformance/projectIds',
+                        data:{"ids":_ids},
+                        dataType:"json",
+                        success:function(data){
+                            if(data.success) {
+                                parent.layer.msg(data.msg,{icon:1});
+                                search();
+                            }else {
+                                parent.layer.msg(data.msg,{icon:2});
+                            }
+                        }
+                    })
+                    top.layer.close(index);//关闭对话框。
+
+                },
+                cancel: function(index){
+                }
+            });
+        }
+        function openDialogre(title,url,width,height,target){
+
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: false, //开启最大化最小化按钮
+                skin: 'three-btns',
+                content: url ,
+                btn: ['提交','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn3: function(index){
+                }
+            });
+        }
+	</script>
+	<style>
+		body{
+			background-color:transparent;
+			filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
+			color:#ffffff;
+			background-color:rgba(255,255,255,0);
+			height:100%;
+		}
+	</style>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+	<sys:message content="${message}"/>
+	<div class="layui-row">
+		<div class="full-width fl">
+			<div class="contentShadow layui-row" id="queryDiv">
+
+				<form:form id="searchForm" modelAttribute="workPerformance" action="${ctx}/workperformance/workPerformance/" method="post" class="form-inline">
+					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+					<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+					<div class="commonQuery lw8">
+						<div class="layui-item query athird">
+							<label class="layui-form-label">工程分类:</label>
+							<div class="layui-input-block">
+								<form:input id="type" path="type" htmlEscape="false" class="form-control  layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">主委托方:</label>
+							<div class="layui-input-block">
+								<form:input path="client" htmlEscape="false" maxlength="64"  class=" form-control layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item athird">
+							<div class="input-group">
+								<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
+								<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>
+								<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>
+							</div>
+						</div>
+						<div style="    clear:both;"></div>
+					</div>
+					<div id="moresees" class="lw8" style="clear:both;display:none;">
+							<%--<div class="layui-item query athird">
+                                <label class="layui-form-label">专业:</label>
+                                <div class="layui-input-block">
+                                    <form:input path="specialty" htmlEscape="false" maxlength="64"  class=" form-control layui-input"/>
+                                </div>
+                            </div>--%>
+					</div>
+				</form:form>
+			</div>
+		</div>
+		<div class="full-width fl">
+			<div class="contentShadow layui-form contentDetails">
+				<div class="nav-btns">
+					<%--此处按钮样式包括 nav-btn-add nav-btn-refresh nav-btn-import nav-btn-export nav-btn-query nav-btn-reset--%>
+					<shiro:hasPermission name="workperformance:workPerformance:add">
+						<a href="javascript:void(0)" onclick="openDialogreProject('选择项目', '${ctx}/workinvoice/workInvoice/selectprojectperfces','90%','90%')" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i>&nbsp;引用</a>
+					</shiro:hasPermission>
+						<shiro:hasPermission name="workperformance:workPerformance:import">
+							<table:importExcel url="${ctx}/workperformance/workPerformance/import"></table:importExcel><!-- 导入按钮 -->
+						</shiro:hasPermission>
+					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
+					<div style="clear: both;"></div>
+				</div>
+				<table class="oa-table layui-table" id="contentTable"></table>
+
+				<!-- 分页代码 -->
+				<table:page page="${page}"></table:page>
+				<div style="clear: both;"></div>
+			</div>
+		</div>
+	</div>
+	<div id="changewidth"></div>
+</div>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+    layui.use('table', function(){
+        layui.table.render({
+            limit:${ page.pageSize }
+            ,elem: '#contentTable'
+            ,page: false
+            ,cols: [[
+                // {checkbox: true, fixed: true},
+                {field:'index',align:'center', title: '序号',width:40}
+                ,{field:'num',align:'center',title: '编号',width:160,templet:function(d){
+                    var xml = "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('查看公司业绩', '${ctx}/workperformance/workPerformance/form?id=" + d.id + "&tabId=view','95%','95%')\">" +
+                        "<span title=" + d.num + ">" + d.num + "</span></a>";
+                    return xml;
+                }}
+                ,{field:'name',align:'center', title: '项目名称',width:160,templet:function(d){
+                    return "<span title='"+ d.name +"'>" + d.name + "</span>";
+                }}
+                ,{field:'client',align:'center', title: '主委托方',width:160,templet:function(d){
+                    return "<span title='"+ d.client +"'>" + d.client + "</span>";
+                }}
+                ,{field:'content',align:'center', title: '服务内容',width:160,templet:function(d){
+                    return "<span title='"+ d.content +"'>" + d.content + "</span>";
+                }}
+                ,{field:'type',align:'center', title: '工程分类',width:160,templet:function(d){
+                    return "<span title='"+ d.type +"'>" + d.type + "</span>";
+                }}
+                ,{field:'serviceDate',align:'center', title: '服务起止时间',width:160,templet:function(d){
+                    return "<span title='"+ d.serviceDate +"'>" + d.serviceDate + "</span>";
+                }}
+                ,{field:'contractPrice',align:'center', title: '合同金额',width:160,templet:function(d){
+                    return "<span title='"+ d.contractPrice +"'>" + d.contractPrice + "</span>";
+                }}
+                ,{field:'investmentAmount',align:'center', title: '投资额',width:160,templet:function(d){
+                    return "<span title='"+ d.investmentAmount +"'>" + d.investmentAmount + "</span>";
+                }} ,{field:'scaleQuantity',align:'center', title: '建筑面积/规模',width:160,templet:function(d){
+                    return "<span title='"+ d.scaleQuantity +"'>" + d.scaleQuantity + "</span>";
+                }} ,{field:'linkman',align:'center', title: '委托方联系人/电话',width:160,templet:function(d){
+                    return "<span title='"+ d.linkman +"'>" + d.linkman + "</span>";
+                }}
+                ,{field:'contractSource',align:'center', title: '合同来源',width:160,templet:function(d){
+                    return "<span title='"+ d.contractSource +"'>" + d.contractSource + "</span>";
+                }}
+                ,{field:'officeName',align:'center', title: '所属部门',width:160,templet:function(d){
+                    return "<span title='"+ d.officeName +"'>" + d.officeName + "</span>";
+                }}
+                ,{field:'projectLeaders',align:'center', title: '项目负责人',width:160,templet:function(d){
+                    return "<span title='"+ d.projectLeaders +"'>" + d.projectLeaders + "</span>";
+                }}
+                ,{field:'record',align:'center', title: '是否归档',width:160,templet:function(d){
+                    return "<span title='"+ d.record +"'>" + d.record + "</span>";
+                }}
+                ,{field:'source', align:'center',title: '数据来源',width:160,templet:function(d){
+                    return "<span title='"+ d.source +"'>" + d.source + "</span>";
+                }}
+                ,{field:'op',align:'center',title:"操作",width:130,templet:function(d){
+                    ////对操作进行初始化
+                    var xml = "";
+                    if(d.canedit1 != undefined && d.canedit1 == "1")
+                        xml +="<a href=\"javascript:void(0)\" onclick=\"openDialogre('修改公司业绩', '${ctx}/workperformance/workPerformance/form?id="+ d.id + "','95%','95%')\" class=\"op-btn op-btn-edit\" ><i class=\"fa fa-edit\"></i> 修改</a>";
+                    if(d.candelete != undefined && d.candelete == "1")
+                        xml +="<a href=\"${ctx}/workperformance/workPerformance/delete?id=" + d.id + "\" onclick=\"return confirmx('确认要删除该业绩吗?', this.href)\"   class=\"op-btn op-btn-delete\"><i class=\"fa fa-trash\"></i> 删除</a>";
+                    return xml;
+                }}
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="workPerformance" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+                    "index":"${index.index+1}"
+                    ,"id":"${workPerformance.id}"
+                    ,"num":"${workPerformance.num}"
+                    ,"name":"${workPerformance.name}"
+                    ,"client":"${workPerformance.client}"
+                    ,"content":"${workPerformance.content}"
+                    ,"type":"${workPerformance.type}"
+                    ,"serviceDate":"${workPerformance.serviceDate}"
+                    ,"contractPrice":"${workPerformance.contractPrice}"
+                    ,"investmentAmount":"${workPerformance.investmentAmount}"
+                    ,"scaleQuantity":"${workPerformance.scaleQuantity}"
+                    ,"linkman":"${workPerformance.linkman}"
+                    ,"contractSource":"${workPerformance.contractSource}"
+                    ,"officeName":"${workPerformance.officeName}"
+                    ,"projectLeaders":"${workPerformance.projectLeaders}"
+                    ,"record":"${workPerformance.record}"
+                    ,"source":"${workPerformance.source}"
+                    <shiro:hasPermission name="workperformance:workPerformance:edit"><c:choose>
+                    <c:when test="${'1' == '1' }">,"canedit1":"1"</c:when>
+                    </c:choose></shiro:hasPermission>
+                    <shiro:hasPermission name="workperformance:workPerformance:del"><c:choose>
+                    <c:when test="${'1' == '1'}">,"candelete":"1"</c:when>
+                    </c:choose></shiro:hasPermission>
+                }
+                </c:forEach>
+                </c:if>
+            ]
+            // ,even: true
+            // ,height: 315
+        });
+
+    })
+
+    resizeListTable();
+</script>
+<script>
+    resizeListWindow1();
+    $(window).resize(function(){
+        resizeListWindow1();
+    });
+</script>
+</body>
+</html>

+ 227 - 0
src/main/webapp/webpage/modules/workperformance/workPerformanceView.jsp

@@ -0,0 +1,227 @@
+<%@ page import="com.jeeplus.modules.sys.utils.UserUtils" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>公司业绩管理</title>
+	<meta name="decorator" content="default"/>
+	<style type="text/css">
+		img{width: 50px;height: 50px;}
+	</style>
+	<script type="text/javascript">
+        var validateForm;
+        function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                $("#inputForm").submit();
+                return true;
+            }
+
+            return false;
+        }
+        $(document).ready(function() {
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+            $("#attachment_btn").click(function () {
+                $("#attachment_file").click();
+            });
+        });
+        function insertTitle(tValue){
+            var list = "${workPerformance.workAttachments}";
+            var size = (list.split('url')).length-1;
+            var files = $("#attachment_file")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = "";
+            var attachmentFlag = "113";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workPerformance/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        }
+	</script>
+</head>
+<body>
+<div class="single-form">
+	<div class="container view-form">
+		<form:form id="inputForm" modelAttribute="workPerformance" action="${ctx}/workperformance/workPerformance/save" method="post"  class="form-horizontal"><%--enctype="multipart/form-data"--%>
+			<form:hidden path="id"/>
+			<sys:message content="${message}"/>
+			<div class="form-group layui-row first lw8">
+				<div class="form-group-label"><h2>基础信息</h2></div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>合同编号:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"   readonly="true" class="form-control layui-input" value="${workPerformance.num}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>项目名称:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"   readonly="true" class="form-control layui-input" value="${workPerformance.name}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>委托单位:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"   readonly="true" class="form-control layui-input" value="${workPerformance.client}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>服务内容:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"   readonly="true" class="form-control layui-input" value="${workPerformance.content}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>工程分类:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"   readonly="true" class="form-control layui-input" value="${workPerformance.type}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>服务起止时间:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"   readonly="true" class="form-control layui-input" value="${workPerformance.serviceDate}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>合同金额(元):</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"   readonly="true" class="form-control layui-input" value="${workPerformance.contractPrice}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line">投资额(万元):</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"   readonly="true" class="form-control layui-input" value="${workPerformance.investmentAmount}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line">建筑面积/规模:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"   readonly="true" class="form-control layui-input" value="${workPerformance.scaleQuantity}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line">委托方联系人/电话:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"   readonly="true" class="form-control layui-input" value="${workPerformance.linkman}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">合同来源:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"   readonly="true" class="form-control layui-input" value="${workPerformance.contractSource}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">所属部门:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"   readonly="true" class="form-control layui-input" value="${workPerformance.officeName}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>项目负责人:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"   readonly="true" class="form-control layui-input" value="${workPerformance.projectLeaders}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">是否归档:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"   readonly="true" class="form-control layui-input" value="${workPerformance.record}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">数据来源:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"   readonly="true" class="form-control layui-input" value="${workPerformance.source}"/>
+					</div>
+				</div>
+			</div>
+			<div class="form-group layui-row">
+				<div class="form-group-label"><h2>附件信息</h2></div>
+				<%--<div class="layui-item nav-btns">
+					<a id="attachment_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>
+				</div>--%>
+				<div id="addFile_attachment" style="display: none" class="upload-progress">
+					<span id="fileName_attachment" ></span>
+					<b><span id="baifenbi_attachment" ></span></b>
+					<div class="progress">
+						<div id="jindutiao_attachment" class="progress-bar" style="width: 0%" aria-valuenow="0">
+						</div>
+					</div>
+				</div>
+				<input id="attachment_file" type="file" name="attachment_file" multiple="multiple" style="display: none;" onChange="if(this.value)insertTitle(this.value);"/>
+				<span id="attachment_title"></span>
+				<div class="layui-item layui-col-xs12" style="padding:0 16px;">
+					<table id="upTable" class="table table-bordered table-condensed details">
+						<thead>
+						<tr>
+								<%-- <th>序号</th>--%>
+							<th>文件预览</th>
+							<th>上传人</th>
+							<th>上传时间</th>
+							<th width="150px">操作</th>
+						</tr>
+						</thead>
+						<tbody id="file_attachment">
+						<c:forEach items="${workPerformance.workAttachments}" var = "workClientAttachment" varStatus="status">
+							<tr>
+									<%-- <td>${status.index + 1}</td>--%>
+								<c:choose>
+									<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+										<td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+									</c:when>
+									<c:otherwise>
+										<c:choose>
+											<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+												<td><a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%','1')">${workClientAttachment.attachmentName}</a></td>
+											</c:when>
+											<c:otherwise>
+												<td><a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%')">${workClientAttachment.attachmentName}</a></td>
+											</c:otherwise>
+										</c:choose>
+									</c:otherwise>
+								</c:choose>
+								<td>${workClientAttachment.createBy.name}</td>
+								<td><fmt:formatDate value="${workClientAttachment.createDate}" type="both"/></td>
+								<td class="op-td">
+									<div class="op-btn-box" >
+										<a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent(encodeURIComponent('${workClientAttachment.url}'));" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+										<%--<c:if test="${workClientAttachment.createBy.id eq fns:getUser().id}">
+											<a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile')" class="op-btn op-btn-delete" ><i class="fa fa-trash"></i>&nbsp;删除</a>
+										</c:if>--%>
+									</div>
+								</td>
+							</tr>
+						</c:forEach>
+						</tbody>
+					</table>
+				</div>
+			</div>
+			<div class="form-group layui-row page-end"></div>
+		</form:form>
+	</div>
+</div>
+</body>
+</html>

+ 67 - 0
src/main/webapp/webpage/modules/workperson/workPersonForm.jsp

@@ -0,0 +1,67 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>人员信息管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+		  if(validateForm.form()){
+			  $("#inputForm").submit();
+			  return true;
+		  }
+	
+		  return false;
+		}
+		$(document).ready(function() {
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+			
+		});
+	</script>
+</head>
+<body class="hideScroll">
+		<form:form id="inputForm" modelAttribute="workPerson" action="${ctx}/workperson/workPerson/save" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+		<sys:message content="${message}"/>	
+		<table class="table table-bordered  table-condensed dataTables-example dataTable no-footer">
+		   <tbody>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">备注信息:</label></td>
+					<td class="width-35">
+						<form:textarea path="remarks" htmlEscape="false" rows="4"    class="form-control "/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">公司:</label></td>
+					<td class="width-35">
+						<form:input path="companyId" htmlEscape="false"    class="form-control "/>
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">部门:</label></td>
+					<td class="width-35">
+						<form:input path="officeId" htmlEscape="false"    class="form-control "/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">人员档案:</label></td>
+					<td class="width-35">
+						<form:input path="basicId" htmlEscape="false"    class="form-control "/>
+					</td>
+				</tr>
+		 	</tbody>
+		</table>
+	</form:form>
+</body>
+</html>

+ 539 - 0
src/main/webapp/webpage/modules/workperson/workPersonList.jsp

@@ -0,0 +1,539 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>信息库管理</title>
+	<meta name="decorator" content="default"/>
+	<style>
+		body{
+			background-color:transparent;
+			filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
+			color:#ffffff;
+			background-color:rgba(255,255,255,0);
+			height:100%;
+		}
+	</style>
+	<script type="text/javascript">
+        var validateForm;
+        $(document).ready(function() {
+            $("#cus_name").show();
+            $("#cus_name").siblings().hide();
+            //搜索框收放
+            $('#moresee').click(function(){
+                if($('#moresees').is(':visible'))
+                {
+                    $('#moresees').slideUp(0,resizeListWindow1);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-up").addClass("glyphicon glyphicon-menu-down");
+                }else{
+                    $('#moresees').slideDown(0,resizeListWindow1);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-down").addClass("glyphicon glyphicon-menu-up");
+                }
+            });
+            laydate.render({
+                elem: '#beginEntryDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+            });
+            laydate.render({
+                elem: '#endEntryDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+            });
+            laydate.render({
+                elem: '#beginBirthdayDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+            });
+            laydate.render({
+                elem: '#endBirthdayDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+            });
+            laydate.render({
+                elem: '#beginWorkDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'month'
+            });
+            laydate.render({
+                elem: '#endWorkDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'month'
+            });
+
+            validateForm = $("#searchForm").validate({
+                submitHandler: function(form){
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+        });
+
+        function openDialogreUser(title,url,width,height,target){
+
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: ['90%','90%'],
+                title:title,
+                skin:"two-btns",
+                name:'friend',
+                content: encodeURI("${ctx}/sys/office/gridSelectUser?url=${ctx}/sys/office/gridSelectUser&isAll=true&type=5&isSingle=false") ,
+                btn: ['确定', '关闭'],
+                yes: function(index, layero){
+                    var iframeWin = layero.find('iframe')[0].contentWindow; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var item = iframeWin.getSelectedItem();
+                    if(item == "-1"){
+                        return;
+                    }
+                    var userIds; ;
+                    if(false){//单选
+                        userIds = item.id;
+                        //selectUserInfo(item.userId);
+                    }else{//多选
+                        var ids = [], names = [];
+                        for (var i=0;i<item.length;i++){
+                            ids.push(item[i].id);
+                        }
+                        var arr=ids.join(",").replace(/u_/ig,"");
+                        userIds = arr;
+                        //setUserInfo(arr);
+                    }
+                    console.log(userIds);
+                    //console.log($("#id").val());
+                    $.ajax({
+                        type:"post",
+                        url:'${ctx}/workperson/workPerson/assignUserIds',
+                        data:{"userIds":userIds},
+                        dataType:"json",
+                        success:function(data){
+                            if(data.success) {
+                                parent.layer.msg(data.msg,{icon:1});
+                                search();
+                            }else {
+                                parent.layer.msg(data.msg,{icon:2});
+                            }
+                        }
+                    })
+                    top.layer.close(index);//关闭对话框。
+
+                },
+                cancel: function(index){
+                }
+            });
+        }
+
+        function openDialog(title,url,width,height,target) {
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url,
+                btn: ["提交","关闭"],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+
+                    if(iframeWin.contentWindow.doSubmit(index) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                    return false;
+                },
+                btn2: function (index) {
+
+                }
+            });
+        }
+        function setParentInfo(ids,names,nos,salarys){
+            return;
+        }
+
+        function formatNum(obj) {
+            var val = $(obj).val();
+            if(val==null||val==''|| isNaN(val))return;
+            var money = parseFloat((val + "").replace(/[^\d\.-]/g, "")).toFixed(2) + "";
+            var l = money.split(".")[0].split("").reverse(),
+                r = money.split(".")[1];
+            t = "";
+            for(i = 0; i < l.length; i ++ )
+            {
+                t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
+            }
+            $(obj).val(t.split("").reverse().join("") + "." + r);
+        }
+
+        $(document).ready(function() {
+            $('#contentTable thead tr th input.i-checks').on('ifChecked', function(event){ //ifCreated 事件应该在插件初始化之前绑定
+                $('#contentTable tbody tr td input.i-checks').iCheck('check');
+            });
+
+            $('#contentTable thead tr th input.i-checks').on('ifUnchecked', function(event){ //ifCreated 事件应该在插件初始化之前绑定
+                $('#contentTable tbody tr td input.i-checks').iCheck('uncheck');
+            });
+
+        });
+        function completeAll(){
+            var checkStatus = layui.table.checkStatus('contentTable'); //test即为基础参数id对应的值
+            var checkeddata = checkStatus.data;
+            if(checkeddata.length == 0){
+                top.layer.alert('请至少选择一条数据!', {icon: 0, title:'警告'});
+                return;
+            }
+            var str="";
+            var ids="";
+            for(var i=0;i<checkeddata.length;i++){
+                str +=checkeddata[i].id+',';
+            }
+            if(str.substr(str.length-1)== ','){
+                ids = str.substr(0,str.length-1);
+            }
+
+            top.layer.confirm('确认要通知员工完善数据吗?', {icon: 3, title:'系统提示'}, function(index){
+                window.location = "${ctx}/workstaff/workStaffBasicInfo/complete?achiveIds="+ids;
+                top.layer.close(index);
+            });
+
+
+        }
+	</script>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+	<sys:message content="${message}"/>
+	<div class="layui-row">
+		<div class="full-width fl">
+			<div class="contentShadow layui-row" id="queryDiv">
+				<form:form id="searchForm" modelAttribute="workPerson" action="${ctx}/workperson/workPerson/" method="post" class="form-inline">
+					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+					<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+					<div class="commonQuery">
+						<div class="layui-item query athird lw9">
+							<label class="layui-form-label">姓    名:</label>
+							<div class="layui-input-block">
+								<form:input path="workStaffBasicInfo.name" htmlEscape="false" maxlength="64"  class=" form-control layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item query athird lw9">
+							<label class="layui-form-label">部门:</label>
+							<div class="layui-input-block with-icon">
+								<sys:treeselect id="office" name="workStaffBasicInfo.office.id" value="${workPerson.workStaffBasicInfo.office.id}" labelName="workStaffBasicInfo.office.name" labelValue="${workPerson.workStaffBasicInfo.office.name}"
+												title="部门" url="/sys/office/treeData?type=2" cssClass="form-control layui-input" notAllowSelectParent="true"/>
+							</div>
+						</div>
+
+						<div class="layui-item athird fr">
+							<div class="input-group">
+								<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
+								<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>
+								<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>
+							</div>
+						</div>
+						<div style="    clear:both;"></div>
+					</div>
+					<div id="moresees" style="clear:both;display:none;">
+						<%--<div class="layui-item query athird lw9">
+							<label class="layui-form-label">移动电话:</label>
+							<div class="layui-input-block">
+								<form:input path="mobile" htmlEscape="false" maxlength="64"  class=" form-control layui-input"/>
+							</div>
+						</div>--%>
+						<div class="layui-item query athird lw9">
+							<label class="layui-form-label">性别:</label>
+							<div class="layui-input-block">
+								<form:select path="workStaffBasicInfo.gender" class="form-control simple-select">
+									<form:option value="" label=""/>
+									<form:options items="${fns:getDictList('sex')}" itemLabel="label" itemValue="value" htmlEscape="false"/>s
+								</form:select>
+							</div>
+						</div>
+
+						<div class="layui-item query athird lw9">
+							<label class="layui-form-label">身份证号码:</label>
+							<div class="layui-input-block">
+								<form:input path="workStaffBasicInfo.idCard" htmlEscape="false" maxlength="20"  class=" form-control layui-input"/>
+							</div>
+						</div>
+						<%--<div class="layui-item query athird lw9">
+							<label class="layui-form-label">公历/农历:</label>
+							<div class="layui-input-block">
+								<form:select path="calendar" class="form-control simple-select">
+									<form:option value="" label=""/>
+									<form:options items="${fns:getDictList('calendar_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+								</form:select>
+							</div>
+						</div>
+						<div class="layui-item query athird lw9">
+							<label class="layui-form-label">民族:</label>
+							<div class="layui-input-block">
+								<form:select path="workStaffBasicInfo.nation" class="form-control simple-select">
+									<form:option value="" label=""/>
+									<form:options items="${fns:getDictList('nation_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+								</form:select>
+							</div>
+						</div>
+						<div class="layui-item query athird lw9">
+							<label class="layui-form-label">出生日期:</label>
+							<div class="layui-input-block">
+								<input id="beginBirthdayDate" name="beginBirthdayDate" type="text" placeholder="开始时间" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+									   value="<fmt:formatDate value="${workStaffBasicInfo.beginBirthdayDate}" pattern="yyyy-MM-dd"/>"/>
+								</input>
+								<span class="group-sep">-</span>
+								<input id="endBirthdayDate" name="endBirthdayDate" type="text" placeholder="结束时间" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+									   value="<fmt:formatDate value="${workStaffBasicInfo.endBirthdayDate}" pattern="yyyy-MM-dd"/>"/>
+								</input>
+							</div>
+						</div>--%>
+						<div class="layui-item query athird lw9">
+							<label class="layui-form-label">工    号:</label>
+							<div class="layui-input-block">
+								<form:input path="workStaffBasicInfo.no" htmlEscape="false" maxlength="10"  class=" form-control layui-input"/>
+							</div>
+						</div>
+						<%--<div class="layui-item query athird lw9">
+							<label class="layui-form-label">年龄:</label>
+							<div class="layui-input-block">
+								<input name="minAge" htmlEscape="false" value="${workStaffBasicInfo.minAge}" class="form-control digits layui-input query-group"/>
+								<span class="group-sep">-</span>
+								<input name="maxAge" htmlEscape="false" value="${workStaffBasicInfo.maxAge}"  class="form-control digits layui-input query-group"/>
+							</div>
+						</div>
+						<div class="layui-item query athird lw9">
+							<label class="layui-form-label">婚姻状况:</label>
+							<div class="layui-input-block">
+								<form:select path="marriage" class="form-control simple-select">
+									<form:option value="" label=""/>
+									<form:options items="${fns:getDictList('marriage_status')}" itemLabel="label" itemValue="label" htmlEscape="false"/>
+								</form:select>
+							</div>
+						</div>
+						<div class="layui-item query athird lw9">
+							<label class="layui-form-label">政治面貌:</label>
+							<div class="layui-input-block">
+								<form:select path="politics" class="form-control simple-select">
+									<form:option value="" label=""/>
+									<form:options items="${fns:getDictList('politics_type')}" itemLabel="label" itemValue="label" htmlEscape="false"/>
+								</form:select>
+							</div>
+						</div>
+
+						<div class="layui-item query athird lw9">
+							<label class="layui-form-label">职级:</label>
+							<div class="layui-input-block with-icon">
+								<sys:treeselectJobGrade id="jobGrade" name="jobGrade.id" value="${workStaffBasicInfo.jobGrade.id}" labelName="jobGrade.name" labelValue="${workStaffBasicInfo.jobGrade.name}"
+														title="职级类型" url="/workjobgrade/workJobGrade/treeData"  cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
+							</div>
+						</div>
+						<div class="layui-item query athird lw9">
+							<label class="layui-form-label">基本工资:</label>
+							<div class="layui-input-block with-icon">
+								<input id="minSalary" htmlEscape="false" value="<fmt:formatNumber pattern="#,##0.00#" value="${workStaffBasicInfo.minSalary}"/>" onchange="formatNum(this)" class="form-control number layui-input query-group"/>
+								<span class="group-sep">-</span>
+								<input id="maxSalary" htmlEscape="false" value="<fmt:formatNumber pattern="#,##0.00#" value="${workStaffBasicInfo.maxSalary}"/>" onchange="formatNum(this)" class="form-control number layui-input query-group"/>
+							</div>
+						</div>--%>
+						<%--<div class="layui-item query athird lw9">
+							<label class="layui-form-label">员工状态:</label>
+							<div class="layui-input-block">
+								<form:select path="status" class="form-control simple-select">
+									<form:option value="" label=""/>
+									<form:options items="${fns:getDictList('staff_status')}" itemLabel="label" itemValue="label" htmlEscape="false"/>
+								</form:select>
+							</div>
+						</div>
+						<div class="layui-item query athird lw9">
+							<label class="layui-form-label">入职日期:</label>
+							<div class="layui-input-block">
+								<input id="beginEntryDate" name="beginEntryDate" type="text" placeholder="开始时间" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+									   value="<fmt:formatDate value="${workStaffBasicInfo.beginEntryDate}" pattern="yyyy-MM-dd"/>"/>
+								</input>
+								<span class="group-sep">-</span>
+								<input id="endEntryDate" name="endEntryDate" type="text" placeholder="结束时间" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+									   value="<fmt:formatDate value="${workStaffBasicInfo.endEntryDate}" pattern="yyyy-MM-dd"/>"/>
+								</input>
+							</div>
+						</div>
+						<div class="layui-item query athird lw9">
+							<label class="layui-form-label">参加工作日期:</label>
+							<div class="layui-input-block">
+								<input id="beginWorkDate" name="beginWorkDate" type="text" placeholder="开始时间" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+									   value="<fmt:formatDate value="${workStaffBasicInfo.beginWorkDate}" pattern="yyyy-MM"/>"/>
+								</input>
+								<span class="group-sep">-</span>
+								<input id="endWorkDate" name="endWorkDate" type="text" placeholder="结束时间" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+									   value="<fmt:formatDate value="${workStaffBasicInfo.endWorkDate}" pattern="yyyy-MM"/>"/>
+								</input>
+							</div>
+						</div>
+						<div class="layui-item query athird lw9">
+							<label class="layui-form-label">信息完善度:</label>
+							<div class="layui-input-block">
+								<input name="minPercent" htmlEscape="false" value="${workStaffBasicInfo.minPercent}" class="form-control percent layui-input query-group"/>
+								<span class="group-sep">-</span>
+								<input name="maxPercent" htmlEscape="false" value="${workStaffBasicInfo.maxPercent}"  class="form-control percent layui-input query-group"/>
+							</div>
+						</div>--%>
+					</div>
+				</form:form>
+			</div>
+		</div>
+
+		<div class="full-width fl">
+			<div class="contentShadow layui-form contentDetails">
+				<div class="nav-btns">
+					<shiro:hasPermission name="workperson:workPerson:add">
+						<a href="javascript:void(0)" onclick="openDialogreUser('选择人员', '${ctx}/sys/office/gridSelectUser','90%','90%')" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i>&nbsp;引用</a>
+					</shiro:hasPermission>
+					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
+					<div style="clear: both;"></div>
+				</div>
+				<table class="oa-table layui-table" id="contentTable" lay-data="{id: 'id'}"></table>
+
+				<!-- 分页代码 -->
+				<table:page page="${page}"></table:page>
+				<div style="clear: both;"></div>
+			</div>
+		</div>
+	</div>
+	<div id="changewidth"></div>
+</div>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+    layui.use('table', function(){
+        layui.table.render({
+            limit:${ page.pageSize }
+            ,elem: '#contentTable'
+            ,page: false
+            ,cols: [[
+                /*{checkbox: true}*/
+                {field:'index',align:'center', title: '序号',width:40}
+                ,{field:'no',align:'center', title: '工号',minWidth:100,templet:function(d){
+                    var xml = "<a class=\"attention-info\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看员工信息', '${ctx}/workstaff/workStaffBasicInfo/achiveView?achiveId="+d.id+"','95%','95%')\">" +
+                        "<span title=" + d.no + ">" + d.no + "</span></a>";
+                    return xml;
+                }}
+                ,{field:'name',align:'center', title: '姓名',minWidth:100,templet:function(d){
+                    var xml = "<a class=\"attention-info\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看员工信息', '${ctx}/workstaff/workStaffBasicInfo/achiveView?achiveId="+d.id+"','95%','95%')\">" +
+                        "<span title=" + d.name + ">" + d.name + "</span></a>";
+                    return xml;
+                }}
+                ,{field:'gender',align:'center', title: '性别',minWidth:50}
+                ,{field:'nation',align:'center', title: '民族',minWidth:50}
+                ,{field:'idCard',align:'center', title: '身份证号码',minWidth:150}
+                ,{field:'calendar',align:'center', title: '公历/农历',minWidth:50}
+                ,{field:'birthday',align:'center', title: '出生日期',minWidth:100}
+                ,{field:'age',align:'center', title: '年龄',minWidth:50}
+                ,{field:'marriage',align:'center', title: '婚姻状况',minWidth:50}
+                ,{field:'mobile',align:'center', title: '移动电话', minWidth:100}
+                ,{field:'politics',align:'center', title: '政治面貌', minWidth:100}
+                ,{field:'office',align:'center', title: '部门', minWidth:150}
+                ,{field:'jobGrade',align:'center', title: '职级', minWidth:100}
+                ,{field:'salary',align:'center', title: '基本工资', minWidth:100}
+                ,{field:'entryDate', align:'center',sort:true,title: '入职日期',width:100}
+                ,{field:'workDate', align:'center',title: '参加工作日期',width:80}
+                ,{field:'percent', align:'center',title: '信息完善度',width:80}
+                ,{field:'op',align:'center',title:"操作",width:130,templet:function(d){
+                    ////对操作进行初始化
+                    var xml = "";
+                    if(d.canedit != undefined && d.canedit == "1"){
+                        xml +="<a href=\"javascript:void(0)\" onclick=\"openDialog('修改员工信息', '${ctx}/workstaff/workStaffBasicInfo/achiveForms?achiveId=" + d.id+"','95%','95%')\" class=\"op-btn op-btn-edit\" ><i class=\"fa fa-edit\"></i>修改</a>"
+                    }
+                    if(d.candelete != undefined && d.candelete == "1")
+                        xml +="<a href=\"${ctx}/workperson/workPerson/delete?id=" + d.idd + "\" onclick=\"return confirmx('确认要删除该信息吗?', this.href)\"   class=\"op-btn op-btn-delete\"><i class=\"fa fa-trash\"></i> 删除</a>";
+                    return xml;
+                }}
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="workPerson" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+                    "index":"${index.index+1}"
+                    ,"id":"${workPerson.basicId}"
+                    ,"idd":"${workPerson.id}"
+                    ,"no":"<c:out value="${workPerson.workStaffBasicInfo.no}" escapeXml="true"/>"
+                    ,"name":"<c:out value="${workPerson.workStaffBasicInfo.name}" escapeXml="false"/>"
+                    ,"gender":"<c:out value="${fns:getDictLabel(workPerson.workStaffBasicInfo.gender,'sex','')}" escapeXml="true"/>"
+                    ,"nation":"<c:out value="${fns:getDictLabel(workPerson.workStaffBasicInfo.nation,'nation_type','')}" escapeXml="true"/>"
+                    ,"idCard":"<c:out value="${workPerson.workStaffBasicInfo.idCard}" escapeXml="true"/>"
+                    ,"calendar":"<c:out value="${fns:getDictLabel(workPerson.workStaffBasicInfo.calendar,'calendar_type','')}" escapeXml="true"/>"
+                    ,"birthday":"<fmt:formatDate value="${workPerson.workStaffBasicInfo.birthday}" pattern="yyyy-MM-dd"/>"
+                    ,'age':"<c:out value="${workPerson.workStaffBasicInfo.age}" escapeXml="true"/>"
+                    ,'marriage':"<c:out value="${workPerson.workStaffBasicInfo.marriage}" escapeXml="true"/>"
+                    ,'mobile':"<c:out value="${workPerson.workStaffBasicInfo.mobile}" escapeXml="true"/>"
+                    ,'politics':"<c:out value="${workPerson.workStaffBasicInfo.politics}" escapeXml="true"/>"
+                    ,'office':"<c:out value="${workPerson.workStaffBasicInfo.office.topCompany}" escapeXml="true"/>"
+                    ,'jobGrade':"<c:out value="${workPerson.workStaffBasicInfo.jobGrade.name}" escapeXml="true"/>"
+                    ,'salary':"<fmt:formatNumber pattern="#,##0.00#" value="${workPerson.workStaffBasicInfo.salary}"/>"
+                    ,"entryDate":"<fmt:formatDate value="${workPerson.workStaffBasicInfo.entryDate}" pattern="yyyy-MM-dd"/>"
+                    ,"workDate":"<fmt:formatDate value="${workPerson.workStaffBasicInfo.workDate}" pattern="yyyy-MM"/>"
+                    ,"percent":"<c:out value="${workPerson.workStaffBasicInfo.percent}" escapeXml="true"/>"
+                    <shiro:hasPermission name="workperson:workPerson:edit">,"canedit":"1"</shiro:hasPermission>
+                    <shiro:hasPermission name="workperson:workPerson:del">,"candelete":"1"</shiro:hasPermission>
+                }
+                </c:forEach>
+                </c:if>
+            ]
+        });
+
+    })
+
+    resizeListTable(130);/*消除由于有竖向滚动条造成table出现横向滚动条*/
+    $("a").on("click",addLinkVisied);
+
+    var navg = window.navigator.userAgent;
+    console.log(navg)
+    if(navg.indexOf('Chrome')!==-1&& navg.indexOf('Edge')==-1){
+        $('.layui-table').children().eq(0).children().children().eq(1).css({"background":"transparent","position":"sticky","border-right":"1px solid #ccc","left":"0","background":"#F5F5F5","z-index":"999"});
+        var tableft = $('.layui-table').children().eq(0).children().children().eq(1).width();
+        $('.layui-table').children().eq(0).children().children().eq(2).css({"background":"transparent","position":"sticky","left":tableft,"background":"#F5F5F5","z-index":"999"});
+        var trone = $('.layui-table').children().eq(1).children();
+        var newArr = []
+        for(var i=0;i<trone.length;i++){
+            newArr.push(trone[i]);
+            $(newArr[i]).children().eq(1).css({"background":"transparent","position":"sticky","left":"0","background":"#fff","z-index":"999"});
+            $(newArr[i]).children().eq(2).css({"background":"transparent","position":"sticky","left":tableft,"background":"#fff","z-index":"999"});
+        }
+	}
+
+
+
+
+
+</script>
+<script>
+    resizeListWindow1();
+    $(window).resize(function(){
+        resizeListWindow1();
+    });
+</script>
+</body>
+</html>

+ 162 - 0
src/main/webapp/webpage/modules/workpettycash/workPettyCashAudit.jsp

@@ -0,0 +1,162 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>备用金申请流程管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        var validateForm;
+        function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                if(obj == 1){
+                    $('#flag').val('yes');
+                }else{
+                    $('#flag').val('no');
+                }
+                $("#inputForm").submit();
+                return true;
+            }
+
+            return false;
+        }
+
+        $('#btnPresent').click(function () {
+
+            $.ajax({
+                url:"${ctx}/workpettycash/workPettyCash/present",
+                data:$('#loginForm').serialize(),
+                type:"post",
+                success:function(data){
+
+                }
+            });
+        });
+
+        $(document).ready(function() {
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+		});
+	</script>
+</head>
+
+<body class="gray-bg">
+
+  <div class="wrapper wrapper-content">
+	<div class="ibox">
+	<div class="ibox-title">
+		<h5>备用金申请详情 </h5>
+		<div class="ibox-tools">
+			<a class="collapse-link">
+				<i class="fa fa-chevron-up"></i>
+			</a>
+			<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+				<i class="fa fa-wrench"></i>
+			</a>
+			<ul class="dropdown-menu dropdown-user">
+				<li><a href="javascript:void(0)">选项1</a>
+				</li>
+				<li><a href="javascript:void(0)">选项2</a>
+				</li>
+			</ul>
+			<a class="close-link">
+				<i class="fa fa-times"></i>
+			</a>
+		</div>
+	</div>
+		<div class="ibox-content">
+		<form:form id="inputForm" modelAttribute="workPettyCash" action="${ctx}/workpettycash/workPettyCash/saveAudit" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+			<form:hidden path="home"/>
+		<form:hidden path="act.taskId"/>
+		<form:hidden path="act.taskName"/>
+		<form:hidden path="act.taskDefKey"/>
+		<form:hidden path="act.procInsId"/>
+		<form:hidden path="act.procDefId"/>
+		<form:hidden id="flag" path="act.flag"/>
+		<sys:message content="${message}"/>
+			<c:set var="status" value="${workPettyCash.act.status}" />
+			<div class="control-group">
+			<label class="control-label">申请人:</label>
+			<div class="controls" style="margin-top: 8px;">
+				${workPettyCash.applicantName}
+			</div>
+			</div>
+            <div class="control-group">
+                <label class="control-label">申请部门:</label>
+                <div class="controls" style="margin-top: 8px;">
+                    ${workPettyCash.applicantOffice.name}
+				</div>
+            </div>
+			<div class="control-group">
+				<label class="control-label">事由:</label>
+				<div class="controls" style="margin-top: 8px;">
+					${workPettyCash.reason}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">金额(元):</label>
+				<div class="controls" style="margin-top: 8px;">
+					${workPettyCash.amount}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">使用日期:</label>
+				<div class="controls" style="margin-top: 8px;">
+					<fmt:formatDate value="${workPettyCash.useDate}" pattern="yyyy-MM-dd"/>
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">归还日期:</label>
+				<div class="controls" style="margin-top: 8px;">
+					<fmt:formatDate value="${workPettyCash.returnDate}" pattern="yyyy-MM-dd"/>
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">出纳:</label>
+				<div class="controls" style="margin-top: 8px;">
+					${workPettyCash.casherName}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">备注:</label>
+				<div class="controls" style="margin-top: 8px;">
+					${workPettyCash.remarks}
+				</div>
+			</div>
+
+			<c:if test="${not empty status}">
+				<div class="control-group">
+					<label class="control-label">审批意见:</label>
+					<div class="controls">
+						<form:textarea path="act.comment" class="form-control" rows="3" maxlength="127"/>
+					</div>
+				</div>
+				<%--<div class="form-actions">
+				<c:if test="${workPettyCash.act.taskDefKey ne 'apply_end'}">
+						<input id="btnSubmit" class="btn btn-primary" type="submit" value="同 意" onclick="$('#flag').val('yes')"/>&nbsp;
+						<input id="btnSubmit" class="btn btn-inverse" type="submit" value="驳 回" onclick="$('#flag').val('no')"/>&nbsp;
+				</c:if>
+				<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
+				</div>--%>
+			</c:if>
+			<act:flowChart procInsId="${workPettyCash.act.procInsId}"/>
+			<act:histoicFlow procInsId="${workPettyCash.act.procInsId}"/>
+	</form:form>
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 200 - 0
src/main/webapp/webpage/modules/workpettycash/workPettyCashForm.jsp

@@ -0,0 +1,200 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>备用金申请管理</title>
+	<meta name="decorator" content="default"/>
+	<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+		  if(validateForm.form()){
+			  $("#inputForm").submit();
+			  return true;
+		  }
+	
+		  return false;
+		}
+		$(document).ready(function() {
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+                    var len = $("#showPeo span").length;
+                    if(len<=0){
+                        parent.layer.msg("请选择审批人!",{icon:5});
+                        return false;
+                    }
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+		});
+
+        function selectPeople(objId,objName){
+            var currentUser = '${fns:getUser().id}';
+            if(currentUser==objId){
+                parent.layer.msg("不能选择自己为审批人!",{icon:5});
+                return false;
+            }
+            var showPeo = $("#showPeo").html();
+            var len = $("#showPeo span").length;
+            if(len > 4){
+                parent.layer.msg("最多添加5个审批人",{icon:5});
+                return;
+            }
+            var arr = [];
+            var a = $("#showPeo span").each(function(){
+                var dataId = $(this).attr("data-id");
+                arr.push(dataId)
+            })
+            if(arr.indexOf(objId) != -1){
+                parent.layer.msg("该审批人已被选择,不能重复选择!!!",{icon:5})
+                return ;
+            }
+            showPeo = showPeo + '<span class="badge badge-success fontSpan" data-id="'+objId+'">'+objName+'&nbsp;&nbsp;&nbsp;' +
+                '<i onclick=deletePeo(this) class="fa fa-close"></i><input type="hidden" name=adds['+len+'] value="'+objId+'"></span>';
+            $("#showPeo").html(showPeo)
+        }
+        function deletePeo(obj){
+            $(obj).parent().remove()
+        }
+	</script>
+</head>
+<body class="gray-bg">
+
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+		<c:if test="${sessionScope.state!='disabled'}">
+			<div class="ibox-title" style="height: 70px;">
+				<h5>
+					<ul class="nav nav-tabs">
+						<li><a href="${ctx}/workpettycash/workPettyCash/list">备用金申请信息</a></li>
+						<li><a href="${ctx}/workpettycash/workPettyCash/workPettyCashTodoList">待办任务</a></li>
+						<li><a href="${ctx}/workpettycash/workPettyCash/workPettyCashHistoricList">已办任务</a></li>
+						<shiro:hasPermission name="workpettycash:workPettyCash:edit"><li class="active"><a href="${ctx}/workpettycash/workPettyCash/form?ids=0">备用金申请</a></li></shiro:hasPermission>
+					</ul>
+				</h5>
+				<%--<div class="ibox-tools">
+					<a class="collapse-link">
+						<i class="fa fa-chevron-up"></i>
+					</a>
+					<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+						<i class="fa fa-wrench"></i>
+					</a>
+					<ul class="dropdown-menu dropdown-user">
+						<li><a href="javascript:void(0)">选项1</a>
+						</li>
+						<li><a href="javascript:void(0)">选项2</a>
+						</li>
+					</ul>
+					<a class="close-link">
+						<i class="fa fa-times"></i>
+					</a>
+				</div>--%>
+			</div>
+		</c:if>
+		<div class="ibox-content">
+			<form:form id="inputForm" modelAttribute="workPettyCash" action="${ctx}/workpettycash/workPettyCash/save" method="post" class="form-horizontal">
+				<form:hidden path="id"/>
+				<c:set var="id" value="${workPettyCash.id}" />
+				<c:set var="ids" value="${workPettyCash.ids}" />
+				<sys:message content="${message}"/>
+				<div class="control-group">
+					<label class="control-label"><font color="red">*</font>申请人:</label>
+					<div class="controls">
+						<input id="applicantName" name="applicantName" type="text" style="width: 240px;" class="form-control required"/>
+						<span class="help-inline"></span>
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label">申请部门:</label>
+					<div class="controls">
+						<sys:treeselect id="applicantOffice" name="applicantOffice.id" value="${workPettyCash.applicantOffice.id}" labelName="applicantOffice.name" labelValue="${workPettyCash.applicantOfficeName}"
+										title="部门" url="/sys/office/treeDataAll?type=2" cssClass="form-control" allowClear="true" notAllowSelectParent="true"/>
+						<span class="help-inline"></span>
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label"><font color="red">*</font>事由:</label>
+					<div class="controls">
+						<form:textarea path="reason" class="form-control required" rows="3" maxlength="20"/>
+						<span class="help-inline"></span>
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label"><font color="red">*</font>申请金额(元):</label>
+					<div class="controls">
+						<input id="amount" name="amount" type="text" class="form-control required number" value="${workPettyCash.amount}"/>
+						<span class="help-inline"></span>
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label"><font color="red">*</font>使用日期:</label>
+					<div class="controls">
+						<input class="form-control layer-date laydate-icon required" id="useDate" name="useDate" readonly="readonly" value="<fmt:formatDate value="${workPettyCash.useDate}" pattern="yyyy-MM-dd"/>" onclick="laydate({istime: false, format: 'YYYY-MM-DD'})">
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label"><font color="red">*</font>归还日期:</label>
+					<div class="controls">
+						<input class="form-control layer-date laydate-icon required" id="returnDate" name="returnDate" readonly="readonly" value="<fmt:formatDate value="${workPettyCash.returnDate}" pattern="yyyy-MM-dd"/>" onclick="laydate({istime: false, format: 'YYYY-MM-DD'})">
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label">出纳:</label>
+					<div class="controls">
+						<input id="casherName" name="casherName" type="text" style="width: 240px;" class="form-control"/>
+						<span class="help-inline"></span>
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label">备注:</label>
+					<div class="controls">
+						<form:textarea path="remarks" class="form-control" rows="3" maxlength="20"/>
+						<span class="help-inline"></span>
+					</div>
+				</div>
+				<c:if test="${empty id}">
+					<div class="control-group">
+						<label class="control-label"><font color="red">*</font>审批人:</label>
+						<div id="addida" class="controls">
+							<sys:treeselectleave id="ida" name="ida" value="" labelName="" labelValue=""
+											title="审批人" url="/sys/office/treeDataAll?type=3" cssClass="form-control required" allowClear="true" notAllowSelectParent="true"/>
+							<span class="help-inline"></span>
+						</div>
+						<div id="showPeo" class="controls">
+						</div>
+					</div>
+					<div class="control-group">
+						<label class="control-label"><font color="red">*</font>抄送人:</label>
+						<div id="CCid" class="controls">
+							<sys:treeselect id="CCid" name="CCid" value="" labelName="" labelValue=""
+											title="抄送人" url="/sys/office/treeDataAll?type=3&isAll=false" cssClass="form-control required" allowClear="true" checked="true" notAllowSelectParent="true"/>
+							<span class="help-inline"></span>
+						</div>
+					</div>
+					<c:if test="${not empty ids}">
+						<div class="form-actions">
+							<input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>&nbsp;
+							<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
+						</div>
+					</c:if>
+				</c:if>
+			</form:form>
+		</div>
+	</div>
+</div>
+<%
+	session.removeAttribute("state");
+%>
+
+</body>
+</html>

+ 124 - 0
src/main/webapp/webpage/modules/workpettycash/workPettyCashHistoricList.jsp

@@ -0,0 +1,124 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>已审核备用金申请信息</title>
+	<meta name="decorator" content="default"/>
+	<%--<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>--%>
+	<script type="text/javascript">
+        $(document).ready(function() {
+            laydate.render({
+                elem: '#beginDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+        });
+	</script>
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+		<div class="ibox-title" style="height: 70px;">
+			<h5>
+				<ul class="nav nav-tabs">
+					<li><a href="${ctx}/workpettycash/workPettyCash/list">备用金申请信息</a></li>
+					<li><a href="${ctx}/workpettycash/workPettyCash/workPettyCashTodoList">待办任务</a></li>
+					<li class="active"><a href="${ctx}/workpettycash/workPettyCash/workPettyCashHistoricList">已办任务</a></li>
+					<shiro:hasPermission name="workpettycash:workPettyCash:edit"><li><a href="${ctx}/workpettycash/workPettyCash/form?ids=0">备用金申请</a></li></shiro:hasPermission>
+				</ul>
+			</h5>
+			<%--<div class="ibox-tools">
+				<a class="collapse-link">
+					<i class="fa fa-chevron-up"></i>
+				</a>
+				<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+					<i class="fa fa-wrench"></i>
+				</a>
+
+			</div>--%>
+		</div>
+
+		<div class="ibox-content">
+			<sys:message content="${message}"/>
+			<!--查询条件-->
+			<div class="row">
+				<div class="col-sm-12">
+					<form:form id="searchForm" modelAttribute="act" action="${ctx}/workpettycash/workPettyCash/workPettyCashHistoricList" method="get" class="form-inline">
+						<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+						<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+						<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+						<div class="form-group">
+							<label>创建时间:</label>
+							<input id="beginDate"  name="beginDate"  type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.beginDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+							 -- 
+							<input id="endDate" name="endDate" type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.endDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+						</div>
+					</form:form>
+					<br/>
+				</div>
+			</div>
+			<!-- 工具栏 -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="pull-left">
+						<button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+					</div>
+					<div class="pull-right">
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+					</div>
+				</div>
+			</div>
+			<!-- 表格 -->
+			<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+				<thead>
+				<tr>
+					<th style="text-align: center;">流程发起人</th>
+					<th style="text-align: center;">流程名称</th>
+					<th style="text-align: center;">流程版本</th>
+					<th style="text-align: center;"  class="sort-column a.office_id">申请部门</th>
+					<th style="text-align: center;"  class="sort-column a.reason">申请事由</th>
+					<th style="text-align: center;"  class="sort-column a.amount">申请金额(元)</th>
+					<th style="text-align: center;"  class="sort-column a.create_date">申请时间</th>
+				</tr>
+				</thead>
+				<tbody>
+				<c:forEach items="${list}" var="workPettyCash">
+					<c:set var="task" value="${workPettyCash.act.task}" />
+					<c:set var="vars" value="${workPettyCash.act.vars}" />
+					<c:set var="procDef" value="${workPettyCash.act.procDef}" />
+					<c:set var="status" value="${workPettyCash.act.status}" />
+					<tr>
+						<td>${workPettyCash.act.vars.map.applyUserId}</td>
+						<td>
+							<shiro:hasPermission name="workpettycash:workPettyCash:view">
+								<a href="javascript:void(0)" onclick="openDialogView('详情', '${ctx}/workpettycash/workPettyCash/form?id=${workPettyCash.id}&readAttr=disabled&name=view','80%','80%')">
+									${procDef.name}
+								</a>
+							</shiro:hasPermission>
+						</td>
+						<td><b title='流程版本号'>V: ${procDef.version}</b></td>
+						<td><span title="${workPettyCash.applicantOffice.name}">${fns:abbr(workPettyCash.applicantOffice.name, 30)}</span></td>
+						<td><span title="${workPettyCash.reason}">${fns:abbr(workPettyCash.reason, 30)}</span></td>
+						<td>${workPettyCash.amount}</td>
+						<td><fmt:formatDate value="${workPettyCash.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+					</tr>
+				</c:forEach>
+				</tbody>
+			</table>
+			<!-- 分页代码 -->
+			<table:page page="${page}"></table:page>
+			<br/>
+			<br/>
+		</div>
+	</div>
+</div>
+</body>
+</html>

+ 274 - 0
src/main/webapp/webpage/modules/workpettycash/workPettyCashList.jsp

@@ -0,0 +1,274 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>备用金申请管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		$(document).ready(function() {
+            function page(n,s){
+                location = '${ctx}/workpettycash/workPettyCash/list/?pageNo='+n+'&pageSize='+s;
+            }
+		});
+		function openDialogre(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['同意','驳回','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn3: function(index){
+                }
+            });
+        }
+	</script>
+</head>
+<body class="gray-bg">
+	<div class="wrapper wrapper-content">
+	<div class="ibox">
+	<div class="ibox-title">
+		<h5>
+			<ul class="nav nav-tabs">
+				<li class="active"><a href="${ctx}/workpettycash/workPettyCash/list">备用金申请信息</a></li>
+				<li><a href="${ctx}/workpettycash/workPettyCash/workPettyCashTodoList">待办任务</a></li>
+				<li><a href="${ctx}/workpettycash/workPettyCash/workPettyCashHistoricList">已办任务</a></li>
+				<shiro:hasPermission name="workpettycash:workPettyCash:edit"><li><a href="${ctx}/workpettycash/workPettyCash/form?ids=0">备用金申请</a></li></shiro:hasPermission>
+			</ul>
+		</h5>
+		<%--<div class="ibox-tools">
+			<a class="collapse-link">
+				<i class="fa fa-chevron-up"></i>
+			</a>
+			<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+				<i class="fa fa-wrench"></i>
+			</a>
+			<ul class="dropdown-menu dropdown-user">
+				<li><a href="javascript:void(0)">选项1</a>
+				</li>
+				<li><a href="javascript:void(0)">选项2</a>
+				</li>
+			</ul>
+			<a class="close-link">
+				<i class="fa fa-times"></i>
+			</a>
+		</div>--%>
+	</div>
+    
+    <div class="ibox-content">
+	<sys:message content="${message}"/>
+	
+	<!--查询条件-->
+	<div class="row">
+	<div class="col-sm-12">
+	<form:form id="searchForm" modelAttribute="workPettyCash" action="${ctx}/workpettycash/workPettyCash/" method="post" class="form-inline">
+		<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+		<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+		<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+		<a href="#" id="moresee" class="fa fa-chevron-down" style="float: right;">更多</a>
+		<div class="form-group">
+			<span>申请部门:</span>
+				<sys:treeselect id="applicantOfficeId" name="applicantOfficeId" value="${workPettyCash.applicantOfficeId}" labelName="applicantOfficeName" labelValue="${workPettyCash.applicantOfficeName}"
+					title="部门" url="/sys/office/treeDataAll?type=2" cssClass="form-control" allowClear="true" notAllowSelectParent="true"/>
+			<span>申请人:</span>
+				<form:input path="applicantName" htmlEscape="false" maxlength="64"  class=" form-control input-sm"/>
+			<label>审核状态:</label>
+			<form:select path="status"  class="form-control m-b">
+				<form:option value="" label=""/>
+				<form:options items="${fns:getDictList('act_status')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+			</form:select>
+		 </div>	
+	</form:form>
+	<br/>
+	</div>
+	</div>
+	
+	<!-- 工具栏 -->
+	<div class="row">
+	<div class="col-sm-12">
+		<div class="pull-left">
+			<%--<shiro:hasPermission name="workpettycash:workPettyCash:add">--%>
+				<%--<table:addRow url="${ctx}/workpettycash/workPettyCash/form" title="备用金申请"></table:addRow><!-- 增加按钮 -->--%>
+			<%--</shiro:hasPermission>--%>
+			<%--<shiro:hasPermission name="workpettycash:workPettyCash:edit">--%>
+			    <%--<table:editRow url="${ctx}/workpettycash/workPettyCash/form" title="备用金申请" id="contentTable"></table:editRow><!-- 编辑按钮 -->--%>
+			<%--</shiro:hasPermission>--%>
+			<%--<shiro:hasPermission name="workpettycash:workPettyCash:del">--%>
+				<%--<table:delRow url="${ctx}/workpettycash/workPettyCash/deleteAll" id="contentTable"></table:delRow><!-- 删除按钮 -->--%>
+			<%--</shiro:hasPermission>--%>
+			<%--<shiro:hasPermission name="workpettycash:workPettyCash:import">--%>
+				<%--<table:importExcel url="${ctx}/workpettycash/workPettyCash/import"></table:importExcel><!-- 导入按钮 -->--%>
+			<%--</shiro:hasPermission>--%>
+			<%--<shiro:hasPermission name="workpettycash:workPettyCash:export">--%>
+	       		<%--<table:exportExcel url="${ctx}/workpettycash/workPettyCash/export"></table:exportExcel><!-- 导出按钮 -->--%>
+	       	<%--</shiro:hasPermission>--%>
+	       <button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+		
+			</div>
+		<div class="pull-right">
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+		</div>
+	</div>
+	</div>
+	
+	<!-- 表格 -->
+	<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+		<thead>
+			<tr>
+				<th style="text-align: center;">序号</th>
+				<th style="text-align: center;"  class="sort-column company.name">申请公司</th>
+				<th style="text-align: center;"  class="sort-column applicantOffice.name">申请部门</th>
+				<th style="text-align: center;"  class="sort-column a.applicant_name">申请人</th>
+				<th style="text-align: center;"  class="sort-column a.reason">事由</th>
+				<th style="text-align: center;"  class="sort-column a.amount">金额(元)</th>
+				<th style="text-align: center;"  class="sort-column a.use_date">使用日期</th>
+				<th style="text-align: center;"  class="sort-column a.return_date">归还日期</th>
+				<th style="text-align: center;"  class="sort-column a.casher_name">出纳</th>
+				<th style="text-align: center;"  class="sort-column a.status">审批状态</th>
+				<th style="text-align: center;"  class="sort-column a.create_date">创建时间</th>
+				<th style="text-align: center;">操作</th>
+			</tr>
+		</thead>
+		<tbody>
+		<c:forEach items="${page.list}" var="workPettyCash" varStatus="varStatus">
+			<c:set var="task" value="${workPettyCash.task }" />
+			<c:set var="pi" value="${workPettyCash.processInstance }" />
+			<c:set var="hpi" value="${workPettyCash.historicProcessInstance }" />
+			<tr>
+				<td>${varStatus.index+1}</td>
+				<td>
+					<%--${workPettyCash.company.name}--%>
+					<span title="${workPettyCash.company.name}">${fns:abbr(workPettyCash.company.name, 30)}</span>
+				</td>
+				<td>
+					<%--${workPettyCash.office.name}--%>
+					<span title="${workPettyCash.applicantOffice.name}">${fns:abbr(workPettyCash.applicantOffice.name, 30)}</span>
+				</td>
+				<td>
+					${workPettyCash.applicantName}
+				</td>
+				<td>
+					<%--${workPettyCash.reason}--%>
+					<span title="${workPettyCash.reason}">${fns:abbr(workPettyCash.reason, 16)}</span>
+				</td>
+				<td>
+					${workPettyCash.amount}
+				</td>
+				<td>
+					<fmt:formatDate value="${workPettyCash.useDate}" pattern="yyyy-MM-dd"/>
+				</td>
+				<td>
+					<fmt:formatDate value="${workPettyCash.returnDate}" pattern="yyyy-MM-dd"/>
+				</td>
+				<td>
+					${workPettyCash.casherName}
+				</td>
+				<c:if test="${not empty task}">
+					<td>${fns:getDictLabel(workPettyCash.status, 'act_status', '')}</td>
+					<td><fmt:formatDate value="${workPettyCash.createDate}" pattern="yyyy-MM-dd"/></td>
+					<td>
+						<div style="text-align: center">
+						<shiro:hasPermission name="workpettycash:workPettyCash:view">
+							<a href="javascript:void(0)" onclick="openDialogView('详情', '${ctx}/workpettycash/workPettyCash/form?id=${workPettyCash.id}&readAttr=disabled&name=view','80%','80%')" class="btn btn-info btn-xs" ><i class="fa fa-search-plus"></i> 查看</a>
+						</shiro:hasPermission>&nbsp;&nbsp;
+						<c:if test="${workPettyCash.createBy.id eq fns:getUser().id}">
+							<c:if test="${workPettyCash.status!=3 && workPettyCash.status!=4 && workPettyCash.status!=5}">
+								<a href="${ctx}/workpettycash/workPettyCash/revoke?id=${workPettyCash.id}&processInstanceId=${workPettyCash.processInstanceId}&reason=${workPettyCash.reason}" onclick="return confirmx('确认要撤回该申请吗?', this.href)" class="btn btn-warning btn-xs"><i class="glyphicon glyphicon-share-alt"></i> 撤回</a>
+							</c:if>
+						</c:if>
+						<c:if test="${not empty task.assignee}">
+							<%--<a href="${ctx}/workpettycash/workPettyCash/applyOnWorkpettycash?taskId=${task.id}&taskName=${fns:urlEncode(task.name)}&taskDefKey=${task.taskDefinitionKey}&procInsId=${task.processInstanceId}&procDefId=${task.processDefinitionId}&status=1" class="btn btn-success btn-xs">任务办理</a>
+							--%><a href="javascript:void(0)" onclick="openDialogre('任务办理', '${ctx}/workpettycash/workPettyCash/applyOnWorkpettycash?taskId=${task.id}&taskName=${fns:urlEncode(task.name)}&taskDefKey=${task.taskDefinitionKey}&procInsId=${task.processInstanceId}&procDefId=${task.processDefinitionId}&status=${status}','80%','80%')" class="btn btn-success btn-xs" ><i class="fa fa-edit"></i> 任务办理</a>
+
+						</c:if>
+						</div>
+					</td>
+				</c:if>
+				<c:if test="${empty task}">
+					<td>${fns:getDictLabel(workPettyCash.status, 'act_status', '')}</td>
+					<td><fmt:formatDate value="${workPettyCash.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+					<td>
+						<div style="text-align: center">
+						<shiro:hasPermission name="workpettycash:workPettyCash:view">
+							<a href="javascript:void(0)" onclick="openDialogView('详情', '${ctx}/workpettycash/workPettyCash/form?id=${workPettyCash.id}&readAttr=disabled&name=view','80%','80%')" class="btn btn-info btn-xs" ><i class="fa fa-search-plus"></i> 查看</a>
+						</shiro:hasPermission>
+						<c:if test="${workPettyCash.createBy.id eq fns:getUser().id}">
+							<c:if test="${workPettyCash.status!=3 && workPettyCash.status!=4 && workPettyCash.status!=5}">
+								<a href="${ctx}/workpettycash/workPettyCash/revoke?id=${workPettyCash.id}&processInstanceId=${workPettyCash.processInstanceId}&reason=${workPettyCash.reason}" onclick="return confirmx('确认要撤回该信息吗?', this.href)" class="btn btn-warning btn-xs"><i class="glyphicon glyphicon-share-alt"></i> 撤回</a>
+							</c:if>
+							<c:if test="${workPettyCash.status==4 || workPettyCash.status==5}">
+								<shiro:hasPermission name="workpettycash:workPettyCash:del">
+								<a href="${ctx}/workpettycash/workPettyCash/delete?id=${workPettyCash.id}" onclick="return confirmx('确认要删除该备用金申请吗?', this.href)"   class="btn btn-danger btn-xs"><i class="fa fa-trash"></i> 删除</a>
+								</shiro:hasPermission>
+							</c:if>
+							<c:if test="${workPettyCash.status==3}">
+								<a href="javascript:void(0)" onclick="javascript:top.layer.alert('该申请已通过不允许删除',{icon: 0, title:'系统提示'})" class="btn btn-default btn-xs"><i class="fa fa-trash"></i>删除</a>
+							</c:if>
+						</c:if>
+						</div>
+					</td>
+				</c:if>
+				<%--<td>--%>
+					<%--<shiro:hasPermission name="workpettycash:workPettyCash:view">--%>
+						<%--<a href="javascript:void(0)" onclick="openDialogView('查看备用金申请', '${ctx}/workpettycash/workPettyCash/form?id=${workPettyCash.id}','80%','80%')" class="btn btn-info btn-xs" ><i class="fa fa-search-plus"></i> 查看</a>--%>
+					<%--</shiro:hasPermission>--%>
+					<%--<shiro:hasPermission name="workpettycash:workPettyCash:edit">--%>
+    					<%--<a href="javascript:void(0)" onclick="openDialog('修改备用金申请', '${ctx}/workpettycash/workPettyCash/form?id=${workPettyCash.id}','80%','80%')" class="btn btn-success btn-xs" ><i class="fa fa-edit"></i> 修改</a>--%>
+    				<%--</shiro:hasPermission>--%>
+    				<%--<shiro:hasPermission name="workpettycash:workPettyCash:del">--%>
+						<%--<a href="${ctx}/workpettycash/workPettyCash/delete?id=${workPettyCash.id}" onclick="return confirmx('确认要删除该备用金申请吗?', this.href)"   class="btn btn-danger btn-xs"><i class="fa fa-trash"></i> 删除</a>--%>
+					<%--</shiro:hasPermission>--%>
+				<%--</td>--%>
+			</tr>
+		</c:forEach>
+		</tbody>
+	</table>
+	
+		<!-- 分页代码 -->
+	<table:page page="${page}"></table:page>
+	<br/>
+	<br/>
+	</div>
+	</div>
+</div>
+</body>
+</html>

+ 191 - 0
src/main/webapp/webpage/modules/workpettycash/workPettyCashTodoList.jsp

@@ -0,0 +1,191 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>待审核备用金申请信息管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        function page(n,s){
+            location = '${ctx}/workpettycash/workPettyCash/list/?pageNo='+n+'&pageSize='+s;
+        }
+        $(document).ready(function() {
+            laydate.render({
+                elem: '#beginDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+        });
+        function openDialogre(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['同意','驳回','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn3: function(index){
+                }
+            });
+        }
+	</script>
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+		<div class="ibox-title" style="height: 70px;">
+			<h5>
+				<ul class="nav nav-tabs">
+					<li><a href="${ctx}/workpettycash/workPettyCash/list">备用金申请信息</a></li>
+					<li class="active"><a href="${ctx}/workpettycash/workPettyCash/workPettyCashTodoList">待办任务</a></li>
+					<li><a href="${ctx}/workpettycash/workPettyCash/workPettyCashHistoricList">已办任务</a></li>
+					<shiro:hasPermission name="workpettycash:workPettyCash:edit"><li><a href="${ctx}/workpettycash/workPettyCash/form?ids=0">备用金申请</a></li></shiro:hasPermission>
+				</ul>
+			</h5>
+			<%--<div class="ibox-tools">
+				<a class="collapse-link">
+					<i class="fa fa-chevron-up"></i>
+				</a>
+				<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+					<i class="fa fa-wrench"></i>
+				</a>
+
+			</div>--%>
+		</div>
+
+		<div class="ibox-content">
+			<sys:message content="${message}"/>
+			<!--查询条件-->
+			<div class="row">
+				<div class="col-sm-12">
+					<form:form id="searchForm" modelAttribute="act" action="${ctx}/workpettycash/workPettyCash/workPettyCashTodoList" method="get" class="form-inline">
+						<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+						<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+						<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+						<div class="form-group">
+							<label>创建时间:</label>
+							<input id="beginDate"  name="beginDate"  type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.beginDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+							 -- 
+							<input id="endDate" name="endDate" type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.endDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+						</div>
+					</form:form>
+					<br/>
+				</div>
+			</div>
+
+			<!-- 工具栏 -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="pull-left">
+						<button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+					</div>
+					<div class="pull-right">
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+					</div>
+				</div>
+			</div>
+			<!-- 表格 -->
+			<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+				<thead>
+				<tr>
+					<th style="text-align: center;">流程发起人</th>
+					<th style="text-align: center;">当前环节</th>
+					<th style="text-align: center;">流程名称</th>
+					<th style="text-align: center;">流程版本</th>
+					<th style="text-align: center;"  class="sort-column a.office_id">申请部门</th>
+					<th style="text-align: center;"  class="sort-column a.reason">申请事由</th>
+					<th style="text-align: center;"  class="sort-column a.amount">申请金额(元)</th>
+					<th style="text-align: center;"  class="sort-column a.create_date">申请时间</th>
+					<th style="text-align: center;">创建时间</th>
+					<th style="text-align: center;">操作</th>
+				</tr>
+				</thead>
+				<tbody>
+				<c:forEach items="${list}" var="workPettyCash">
+					<c:set var="task" value="${workPettyCash.act.task}" />
+					<c:set var="vars" value="${workPettyCash.act.vars}" />
+					<c:set var="procDef" value="${workPettyCash.act.procDef}" />
+					<c:set var="status" value="${workPettyCash.act.status}" />
+					<tr>
+						<td>${workPettyCash.act.vars.map.applyUserId}</td>
+						<td>${task.name}</td>
+						<td>
+							<shiro:hasPermission name="workpettycash:workPettyCash:view">
+								<a href="javascript:void(0)" onclick="openDialogView('详情', '${ctx}/workpettycash/workPettyCash/form?id=${workPettyCash.id}&readAttr=disabled&name=view','80%', '80%')">
+										${procDef.name}
+								</a>
+							</shiro:hasPermission>
+						</td>
+						<td><b title='流程版本号'>V: ${procDef.version}</b></td>
+						<td><span title="${workPettyCash.applicantOffice.name}">${fns:abbr(workPettyCash.applicantOffice.name, 30)}</span></td>
+						<td><span title="${workPettyCash.reason}">${fns:abbr(workPettyCash.reason, 30)}</span></td>
+						<td>${workPettyCash.amount}</td>
+						<td><fmt:formatDate value="${workPettyCash.createDate}" type="both"/></td>
+						<td><fmt:formatDate value="${task.createTime}" type="both"/></td>
+						<td>
+							<div style="text-align: center">
+							<c:if test="${not empty task.assignee}">
+								<a href="javascript:void(0)" onclick="openDialogre('任务办理', '${ctx}/workpettycash/workPettyCash/applyOnWorkpettycash?taskId=${task.id}&taskName=${fns:urlEncode(task.name)}&taskDefKey=${task.taskDefinitionKey}&procInsId=${task.processInstanceId}&procDefId=${task.processDefinitionId}&status=${status}','80%','80%')" class="btn btn-success btn-xs" ><i class="fa fa-edit"></i> 任务办理</a>
+
+								<%--<a href="${ctx}/workpettycash/workPettyCash/applyOnWorkpettycash?taskId=${task.id}&taskName=${fns:urlEncode(task.name)}&taskDefKey=${task.taskDefinitionKey}&procInsId=${task.processInstanceId}&procDefId=${task.processDefinitionId}&status=${status}" class="btn btn-success btn-xs">任务办理</a>
+							--%></c:if>
+							</div>
+						</td>
+					</tr>
+				</c:forEach>
+				</tbody>
+			</table>
+			<!-- 分页代码 -->
+			<table:page page="${page}"></table:page>
+			<br/>
+			<br/>
+		</div>
+	</div>
+</div>
+</body>
+</html>

+ 150 - 0
src/main/webapp/webpage/modules/workprequalification/workPrequalificationAudit.jsp

@@ -0,0 +1,150 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目流程管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+		  if(validateForm.form()){
+              if(obj == 1) {
+                  $("#flag").val("yes");
+              }else {
+                  $("#flag").val("no");
+			  }
+			  $("#inputForm").submit();
+			  return true;
+		  }
+	
+		  return false;
+		}
+		
+		$('#btnPresent').click(function () { 
+
+			$.ajax({
+	             url:"${ctx}/workprequalification/workPrequalification/present",
+	             data:$('#loginForm').serialize(),
+	             type:"post",
+	             success:function(data){
+	        
+	             }					
+		});
+		});	
+			
+		$(document).ready(function() {
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+            //只做查看时,禁用掉以下标签
+            $('input,textarea,select').attr('disabled',<%=request.getAttribute("disabled")%>);
+            if (${requestScope.disabled eq 'false'}) {
+                $("#startTime").attr('disabled',true);
+                $("#endTime").attr('disabled',true);
+                $("#reason").attr('disabled',true);
+            }
+		});
+	</script>
+</head>
+
+<body class="gray-bg">
+
+  <div class="wrapper wrapper-content">
+	<div class="ibox">
+	<div class="ibox-title">
+		<h5>资格预审审批 </h5>
+		<div class="ibox-tools">
+			<a class="collapse-link">
+				<i class="fa fa-chevron-up"></i>
+			</a>
+			<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+				<i class="fa fa-wrench"></i>
+			</a>
+			<ul class="dropdown-menu dropdown-user">
+				<li><a href="javascript:void(0)">选项1</a>
+				</li>
+				<li><a href="javascript:void(0)">选项2</a>
+				</li>
+			</ul>
+			<a class="close-link">
+				<i class="fa fa-times"></i>
+			</a>
+		</div>
+	</div>
+		<div class="ibox-content">
+		<form:form id="inputForm" modelAttribute="workBidProject" action="${ctx}/workprequalification/workPrequalification/saveAudit" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+		<form:hidden path="act.taskId"/>
+		<form:hidden path="act.taskName"/>
+		<form:hidden path="act.taskDefKey"/>
+		<form:hidden path="act.procInsId"/>
+		<form:hidden path="act.procDefId"/>
+		<form:hidden id="flag" path="act.flag"/>
+		<sys:message content="${message}"/>
+			<c:set var="status" value="${workBidProject.act.status}" />
+			<div class="control-group">
+				<label class="control-label">项目名称:</label>
+				<div class="controls">
+					${workBidProject.projectName}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">项目编号:</label>
+				<div class="controls">
+					${workBidProject.projectNumber}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">项目类型:</label>
+				<div class="controls">
+					${fns:getMainDictLabel(workBidProject.projectType, 'contract_type', '')}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">项目概况:</label>
+				<div class="controls">
+					${workBidProject.projectSituation}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">备注信息:</label>
+				<div class="controls">
+					${workBidProject.remarks}
+				</div>
+			</div>
+
+			<c:if test="${not empty status}">
+				<div class="control-group">
+					<label class="control-label">审批意见:</label>
+					<div class="controls">
+						<form:textarea path="act.comment" class="form-control" rows="3" maxlength="127"/>
+					</div>
+				</div>
+				<%--<div class="form-actions">
+				<c:if test="${workBidProject.act.taskDefKey ne 'apply_end'}">
+							<input id="btnSubmit" class="btn btn-primary" type="submit" value="同 意" onclick="$('#flag').val('yes')"/>&nbsp;
+						<input id="btnSubmit" class="btn btn-inverse" type="submit" value="驳 回" onclick="$('#flag').val('no')"/>&nbsp;
+					</c:if>
+				<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
+				</div>--%>
+			</c:if>
+			<act:flowChart procInsId="${workBidProject.act.procInsId}"/>
+			<act:histoicFlow procInsId="${workBidProject.act.procInsId}"/>
+	</form:form>
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 490 - 0
src/main/webapp/webpage/modules/workprequalification/workPrequalificationForm.jsp

@@ -0,0 +1,490 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>投标项目管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        var validateForm;
+        function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                if(obj == 1){
+                    $("#inputForm").attr("action","${ctx}/workprequalification/workPrequalification/save");
+                }else if (obj == 2){
+                    $("#inputForm").attr("action","${ctx}/workprequalification/workPrequalification/store");
+                }else if (obj == 3){
+                    $("#inputForm").attr("action","${ctx}/workprequalification/workPrequalification/save");
+                }else if (obj == 4){
+                    $("#inputForm").attr("action","${ctx}/workprequalification/workPrequalification/store");
+                }else {
+                    $("#inputForm").attr("action","${ctx}/workprequalification/workPrequalification/save");
+                }
+                $("#inputForm").submit();
+                return true;
+            }
+            return false;
+        }
+        $(document).ready(function() {
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+
+            laydate.render({
+                elem: '#registrationDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            laydate.render({
+                elem: '#bidDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            laydate.render({
+                elem: '#trialDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            laydate.render({
+                elem: '#purchaseDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            laydate.render({
+                elem: '#refundDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            var isExt = "${workBidProject.isExt}";
+            if(isExt==0){
+                $("#contact").show();
+                $("#btnAdd1").hide();
+                //$("#btnAdd2").show();
+                $("#extContact").hide();
+            }else{
+                $("#extContact").show();
+                $("#btnAdd1").show();
+                //$("#btnAdd2").hide();
+                $("#contact").hide();
+            }
+
+
+        });
+
+        function addRow(list, idx, workClientLinkmanTpl, row) {
+           // if (idx < 1) {
+                $(list).append(Mustache.render(workClientLinkmanTpl, {
+                    idx: idx, delBtn: false, row: row
+                }));
+                $(list + idx).find("select").each(function () {
+                    $(this).val($(this).attr("data-value"));
+                });
+                $(list + idx).find("input[type='checkbox'], input[type='radio']").each(function () {
+                    var ss = $(this).attr("data-value").split(',');
+                    for (var i = 0; i < ss.length; i++) {
+                        if ($(this).val() == ss[i]) {
+                            $(this).attr("checked", "checked");
+                        }
+                    }
+                });
+            //}
+        }
+        function delRow(obj, prefix){
+            var id = $(prefix+"_id");
+            var delFlag = $(prefix+"_delFlag");
+            if (id.val() == ""){
+                $(obj).parent().parent().remove();
+            }else if(delFlag.val() == "0"){
+                delFlag.val("1");
+                $(obj).parent().parent().hide();
+                $(obj).html("&divide;").attr("title", "撤回删除");
+                $(obj).parent().parent().addClass("error");
+            }else if(delFlag.val() == "1"){
+                delFlag.val("0");
+                $(obj).html("&times;").attr("title", "删除");
+                $(obj).parent().parent().removeClass("error");
+            }
+        }
+
+        function display(n){
+            $('#workClientLinkmanList').html("");
+            $('#bidCompanyName').val("");
+            if(n==0){
+                $("#contact").show();
+                $("#btnAdd1").hide();
+                //$("#btnAdd2").show();
+                $("#extContact").hide();
+            }else{
+                $("#extContact").show();
+                $("#btnAdd1").show();
+                //$("#btnAdd2").hide();
+                $("#contact").hide();
+            }
+
+			//显示系统外客户联系人
+			if(n==1){
+                getExtCompany();
+			}
+        }
+        function getExtCompany(){
+            var workBidProjectId =$("#workBidProjectId").val(); console.log("id="+workBidProjectId);
+            $.get("${ctx}/workprequalification/workPrequalification/getExtCompany", { "workBidProjectId": workBidProjectId},
+                function(data,textStatus){
+                    data = data.body.list;
+                    if(data !=null){
+                        for (var i=0; i<data.length; i++){
+                            addRow('#workClientLinkmanList', workClientLinkmanRowIdx, workClientLinkmanTpl, data[i]);
+                            workClientLinkmanRowIdx = workClientLinkmanRowIdx + 1;
+                        }
+                    }
+                });
+        }
+
+        function changeTypeExplain(obj) {
+			if (obj.value == 4){
+                $("#typeExplain").attr("class","form-control required");
+			}else {
+                $("#typeExplain").attr("class","form-control");
+			}
+        }
+        function changeSourceExplain(obj) {
+			if (obj.value == 3){
+                $("#sourceExplain").attr("class","form-control required");
+			}else {
+                $("#sourceExplain").attr("class","form-control");
+			}
+        }
+
+	</script>
+	<script type="text/template" id="workClientLinkmanTpl">//<!--
+				<tr id="workClientLinkmanList{{idx}}">
+					<td class="hide">
+						<input id="workClientLinkmanList{{idx}}_id" name="workClientLinkmanList[{{idx}}].id" type="hidden" value="{{row.id}}" />
+						<input id="workClientLinkmanList{{idx}}_delFlag" name="workClientLinkmanList[{{idx}}].delFlag" type="hidden" value="0" />
+					</td>
+					<td>
+						<input id="workClientLinkmanList{{idx}}_name" name="workClientLinkmanList[{{idx}}].name" type="text" value="{{row.name}}"    class="form-control "/>
+					</td>
+      				<td>
+                    	<input id="workClientLinkmanList{{idx}}_office" name="workClientLinkmanList[{{idx}}].office" type="text" value="{{row.office}}"    class="form-control "/>
+                	</td>
+					<td>
+						<input id="workClientLinkmanList{{idx}}_position" name="workClientLinkmanList[{{idx}}].position" type="text" value="{{row.position}}"    class="form-control"/>
+					</td>
+					<td>
+						<input id="workClientLinkmanList{{idx}}_qq" name="workClientLinkmanList[{{idx}}].qq" type="text" value="{{row.qq}}"    class="form-control " />
+					</td>
+					<td>
+						<input id="workClientLinkmanList{{idx}}_linkPhone" name="workClientLinkmanList[{{idx}}].linkPhone" type="text" value="{{row.linkPhone}}"    class="form-control "/>
+					</td>
+					<td>
+						<input id="workClientLinkmanList{{idx}}_linkMobile" name="workClientLinkmanList[{{idx}}].linkMobile" type="text" value="{{row.linkMobile}}"    class="form-control " />
+					</td>
+					<td>
+						<input id="workClientLinkmanList{{idx}}_email" name="workClientLinkmanList[{{idx}}].email" type="text" value="{{row.email}}"    class="form-control "/>
+					</td>
+					<td class="text-center" width="10">
+						{{#delBtn}}<span class="close" onclick="delRow(this, '#workClientLinkmanList{{idx}}')" title="删除">&times;</span>{{/delBtn}}
+					</td>
+				</tr>//-->
+	</script>
+	<script type="text/javascript">
+        var workClientLinkmanRowIdx = 0, workClientLinkmanTpl = $("#workClientLinkmanTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+        $(document).ready(function() {
+            var data = ${fns:toJson(workBidProject.workClientLinkmanList)};
+            if(data !=null){
+                for (var i=0; i<data.length; i++){
+                    addRow('#workClientLinkmanList', workClientLinkmanRowIdx, workClientLinkmanTpl, data[i]);
+                    workClientLinkmanRowIdx = workClientLinkmanRowIdx + 1;
+                }
+            }
+        });
+        function  chooseType() {
+			if($("#psort").val()==1){
+                $("#ssort ").attr("value","");
+                    document.getElementById( "t1").style.display= "";
+                    document.getElementById( "t2").style.display= "";
+                	$("#ssort11").show();$("#ssort12").show();$("#ssort13").show();
+                    $("#ssort21").hide();$("#ssort22").hide();$("#ssort23").hide();$("#ssort24").hide();
+					$("#ssort31").hide();$("#ssort32").hide();$("#ssort33").hide();$("#ssort34").hide();$("#ssort35").hide();$("#ssort36").hide();
+					$("#ssort41").hide();$("#ssort42").hide();
+					$("#ssort51").hide();$("#ssort52").hide();$("#ssort53").hide();$("#ssort54").hide();$("#ssort55").hide();
+					$("#ssort101").hide();$("#ssort102").hide();
+            }
+            else if($("#psort").val()==2){
+                $("#ssort ").attr("value","");
+                document.getElementById( "t1").style.display= "";
+                document.getElementById( "t2").style.display= "";
+                $("#ssort11").hide();$("#ssort12").hide();$("#ssort13").hide();
+                $("#ssort21").show();$("#ssort22").show();$("#ssort23").show();$("#ssort24").show();
+                $("#ssort31").hide();$("#ssort32").hide();$("#ssort33").hide();$("#ssort34").hide();$("#ssort35").hide();$("#ssort36").hide();
+                $("#ssort41").hide();$("#ssort42").hide();
+                $("#ssort51").hide();$("#ssort52").hide();$("#ssort53").hide();$("#ssort54").hide();$("#ssort55").hide();
+                $("#ssort101").hide();$("#ssort102").hide();
+            }
+            else if($("#psort").val()==3){
+                $("#ssort ").attr("value","");
+                document.getElementById( "t1").style.display= "";
+                document.getElementById( "t2").style.display= "";
+                $("#ssort11").hide();$("#ssort12").hide();$("#ssort13").hide();
+                $("#ssort21").hide();$("#ssort22").hide();$("#ssort23").hide();$("#ssort24").hide();
+                $("#ssort31").show();$("#ssort32").show();$("#ssort33").show();$("#ssort34").show();$("#ssort35").show();$("#ssort36").show();
+                $("#ssort41").hide();$("#ssort42").hide();
+                $("#ssort51").hide();$("#ssort52").hide();$("#ssort53").hide();$("#ssort54").hide();$("#ssort55").hide();
+                $("#ssort101").hide();$("#ssort102").hide();
+            }
+            else if($("#psort").val()==4){
+                $("#ssort ").attr("value","");
+                document.getElementById( "t1").style.display= "";
+                document.getElementById( "t2").style.display= "";
+                $("#ssort11").hide();$("#ssort12").hide();$("#ssort13").hide();
+                $("#ssort21").hide();$("#ssort22").hide();$("#ssort23").hide();$("#ssort24").hide();
+                $("#ssort31").hide();$("#ssort32").hide();$("#ssort33").hide();$("#ssort34").hide();$("#ssort35").hide();$("#ssort36").hide();
+                $("#ssort41").show();$("#ssort42").show();
+                $("#ssort51").hide();$("#ssort52").hide();$("#ssort53").hide();$("#ssort54").hide();$("#ssort55").hide();
+                $("#ssort101").hide();$("#ssort102").hide();
+            }
+            else if($("#psort").val()==5){
+                $("#ssort ").attr("value","");
+                document.getElementById( "t1").style.display= "";
+                document.getElementById( "t2").style.display= "";
+                $("#ssort11").hide();$("#ssort12").hide();$("#ssort13").hide();
+                $("#ssort21").hide();$("#ssort22").hide();$("#ssort23").hide();$("#ssort24").hide();
+                $("#ssort31").hide();$("#ssort32").hide();$("#ssort33").hide();$("#ssort34").hide();$("#ssort35").hide();$("#ssort36").hide();
+                $("#ssort41").hide();$("#ssort42").hide();
+                $("#ssort51").show();$("#ssort52").show();$("#ssort53").show();$("#ssort54").show();$("#ssort55").show();
+                $("#ssort101").hide();$("#ssort102").hide();
+            }
+            else if($("#psort").val()==10){
+                $("#ssort ").attr("value","");
+                document.getElementById( "t1").style.display= "";
+                document.getElementById( "t2").style.display= "";
+                $("#ssort11").hide();$("#ssort12").hide();$("#ssort13").hide();
+                $("#ssort21").hide();$("#ssort22").hide();$("#ssort23").hide();$("#ssort24").hide();
+                $("#ssort31").hide();$("#ssort32").hide();$("#ssort33").hide();$("#ssort34").hide();$("#ssort35").hide();$("#ssort36").hide();
+                $("#ssort41").hide();$("#ssort42").hide();
+                $("#ssort51").hide();$("#ssort52").hide();$("#ssort53").hide();$("#ssort54").hide();$("#ssort55").hide();
+                $("#ssort101").show();$("#ssort102").show();
+            }else{
+                document.getElementById( "t1").style.display= "none";
+                document.getElementById( "t2").style.display= "none";
+            }
+        }
+	</script>
+	<script type="text/javascript">
+        /**
+         * 设置系统内客户信息
+         * @param obj
+         */
+
+        function setValuee(obj){
+            $('#workClientLinkmanList').html("");
+            $.get("${ctx}/workclientinfo/workClientInfo/selectLinkman", { clientId: obj},
+                function(data,textStatus){
+                    data = data.body.list;
+                    if(data !=null){
+                        for (var i=0; i<data.length; i++){
+                            addRow('#workClientLinkmanList', workClientLinkmanRowIdx, workClientLinkmanTpl, data[i]);
+                            workClientLinkmanRowIdx = workClientLinkmanRowIdx + 1;
+                        }
+                    }
+                });
+        }
+	</script>
+</head>
+<body class="hideScroll">
+<form:form id="inputForm" modelAttribute="workBidProject" method="post" class="form-horizontal">
+	<form:hidden path="id" id="workBidProjectId"/>
+	<sys:message content="${message}"/>
+	<table class="table table-bordered  table-condensed dataTables-example dataTable no-footer">
+		<tbody>
+		<tr>
+			<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目名称:</label></td>
+			<td class="width-35" colspan="3">
+				<form:input path="projectName" htmlEscape="false"    class="form-control required"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目编号:</label></td>
+			<td class="width-35" colspan="3">
+				<form:input path="projectNumber" htmlEscape="false" readonly="true" class="form-control required"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目类型:</label></td>
+			<td class="width-35">
+				<form:select path="projectType" class="form-control required" onChange="changeTypeExplain(this)">
+					<form:option value="" label=""/>
+					<form:options items="${fns:getMainDictList('contract_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+				</form:select>
+			</td>
+			<td class="width-15 active"><label class="pull-right">类型说明:</label></td>
+			<td class="width-35">
+				<form:input id="typeExplain" path="typeExplain" htmlEscape="false"   class="form-control"/>
+			</td>
+		</tr>
+
+		<tr>
+			<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目来源:</label></td>
+			<td class="width-35">
+				<form:select path="projectSource" class="form-control required" onChange="changeSourceExplain(this)">
+					<form:option value="" label=""/>
+					<form:options items="${fns:getMainDictList('bidProjectSource')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+				</form:select>
+			</td>
+			<td class="width-15 active"><label class="pull-right">来源说明:</label></td>
+			<td class="width-35">
+				<form:input id="sourceExplain" path="sourceExplain" htmlEscape="false"  class="form-control"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="pull-right">行业分类:</label></td>
+			<td class="width-35">
+				<form:select id="psort" path="psort" class="form-control" onChange="chooseType()"><%--onChange="changeTypeExplain(this)"--%>
+					<form:option value="" label=""/>
+					<form:options items="${fns:getDictList('psort')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+				</form:select>
+			</td>
+				<td class="width-15 active" id="t1" style="display:none"><label class="pull-right">详细分类:</label></td>
+			<td class="width-35" id="t2" style="display:none">
+				<form:select path="ssort" class="form-control" onChange="changeTypeExplain(this)">
+					<form:option value="" label=""/>
+					<form:options id="ssort1" items="${fns:getDictList('ssort1')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+					<form:options id="ssort2" items="${fns:getDictList('ssort2')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+					<form:options id="ssort3" items="${fns:getDictList('ssort3')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+					<form:options id="ssort4" items="${fns:getDictList('ssort4')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+					<form:options id="ssort5" items="${fns:getDictList('ssort5')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+					<form:options id="ssort10" items="${fns:getDictList('ssort10')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+				</form:select>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="pull-right"> 是否外部联系人  :</label></td>
+			<td class="width-35">
+				<c:choose>
+					<c:when test="${workBidProject.isExt == 1}">
+						<input type="radio" class="i-checks" value="1" id="isExt" name="isExt" onclick="display(this.value)" checked="checked">系统外客户
+						<input type="radio" class="i-checks" value="0" id="isExt" name="isExt" onclick="display(this.value)" >系统内客户
+					</c:when>
+					<c:otherwise>
+						<input type="radio" class="i-checks" value="1" id="isExt" name="isExt" onclick="display(this.value)" >系统外客户
+						<input type="radio" class="i-checks" value="0" id="isExt" name="isExt" onclick="display(this.value)" checked="checked">系统内客户
+						<%-- <form:radiobuttons path="isExternalContacts" items="${fns:getDictList('yes_no')}" itemLabel="label" itemValue="value" onclick="display(this.value) htmlEscape="false" class="i-checks "/> --%>
+					</c:otherwise>
+				</c:choose>
+
+
+					<%-- <form:checkboxes path="isExt" items="${fns:getDictList('yes_no')}" itemLabel="label" itemValue="value" htmlEscape="false" class="i-checks "/> --%>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="pull-right"><font color="red">*</font>招标单位:</label></td>
+			<td class="width-35" colspan="3">
+				<div id ="extContact" style="display:none">
+					<form:input path="extCompany" htmlEscape="false"    class="form-control required"/>
+				</div>
+				<div id ="contact" style="display:block">
+					<sys:gridselect url="${ctx}/workbidproject/workBidProject/selectbidCompany" id="bidCompany" name="bidCompany.id"  value="${workBidProject.bidCompany.id}"  title="选择招标单位" labelName="bidCompany.name"
+									labelValue="${workBidProject.bidCompany.name}" cssClass="form-control required" fieldLabels="客户" fieldKeys="name" searchLabel="客户名称" searchKey="name"  ></sys:gridselect>
+				</div>
+			</td>
+		</tr>
+
+		<tr>
+			<td class="width-15 active"><label class="pull-right">联系人:</label></td>
+			<td class="width-75"  colspan="3">
+				<a id="btnAdd1" style="width:95px;display:none" class="btn btn-white btn-sm" onclick="addRow('#workClientLinkmanList', workClientLinkmanRowIdx, workClientLinkmanTpl);workClientLinkmanRowIdx = workClientLinkmanRowIdx + 1;" title="新增"><i class="fa fa-plus"></i> 新增联系人</a>
+				<div></div>
+				<table style="margin-top:10px;" id="contentTable" class="table table-striped table-bordered table-condensed">
+					<thead>
+					<tr>
+						<th class="hide"></th> 
+						<th>联系人姓名</th>
+						<th>部门</th>
+						<th>职务</th>
+						<th>QQ</th>
+						<th>联系方式1</th>
+						<th>联系方式2</th>
+						<th>E-mail</th>
+						<th>&nbsp;</th>
+					</tr>
+					</thead>
+					<tbody id="workClientLinkmanList">
+					</tbody>
+				</table>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="pull-right">项目负责人:</label></td>
+			<td class="width-35" ><sys:treeselect id="projectMaster" name="projectMasterIds" value="${workBidProject.projectMasterIds}" labelName="projectMasterNames" labelValue="${workBidProject.projectMasterNames}"
+												  title="选择负责人" url="/sys/office/treeDataAll?type=3&isAll=false" cssClass="form-control" notAllowSelectParent="true" checked="true"/>
+			</td>
+			<td class="width-15 active"><label class="pull-right">项目组成员:</label></td>
+			<td class="width-35" ><sys:treeselect id="projectMember" name="projectMemberIds" value="${workBidProject.projectMemberIds}" labelName="projectMemberNames" labelValue="${workBidProject.projectMemberNames}"
+												  title="选择成员" url="/sys/office/treeDataAll?type=3&isAll=false" cssClass="form-control" notAllowSelectParent="true" checked="true"/>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="pull-right">资审日期:</label></td>
+			<td class="width-35">
+				<input id="trialDate" name="trialDate" type="text" maxlength="20" class="laydate-icondate form-control layer-date "
+					   value="<fmt:formatDate value="${workBidProject.trialDate}" pattern="yyyy-MM-dd"/>"/>
+			</td>
+			<td class="width-15 active"><label class="pull-right">购买领用招标文件日期:</label></td>
+			<td class="width-35">
+				<input id="purchaseDate" name="purchaseDate" type="text" maxlength="20" class="laydate-icondate form-control layer-date "
+					   value="<fmt:formatDate value="${workBidProject.purchaseDate}" pattern="yyyy-MM-dd"/>"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="pull-right">文件费用(元):</label></td>
+			<td class="width-35">
+				<form:input path="documentCost" htmlEscape="false"    class="form-control  number"/>
+			</td>
+			<td class="width-15 active"><label class="pull-right">装订费用(元):</label></td>
+			<td class="width-35">
+				<form:input path="bindCost" htmlEscape="false"    class="form-control  number"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="pull-right">报名日期:</label></td>
+			<td class="width-35">
+				<input id="registrationDate" name="registrationDate" type="text" maxlength="20" class="laydate-icondate form-control layer-date "
+					   value="<fmt:formatDate value="${workBidProject.registrationDate}" pattern="yyyy-MM-dd"/>"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="pull-right">是否外协:</label></td>
+			<td class="width-35">
+				<form:select path="isSubcontract" class="form-control ">
+					<form:option value="" label=""/>
+					<form:options items="${fns:getDictList('is_subcontract')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+				</form:select>
+			</td>
+			<td class="width-15 active"><label class="pull-right">对外协作单位:</label></td>
+			<td class="width-35">
+				<form:input path="subcontractCompany" htmlEscape="false"    class="form-control "/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目概况:</label></td>
+			<td class="width-35" colspan="3">
+				<form:textarea path="projectSituation" htmlEscape="false" rows="6"    class="form-control required"/>
+			</td>
+		</tr>
+		<tr>
+			<td class="width-15 active"><label class="pull-right">备注信息:</label></td>
+			<td class="width-35" colspan="3">
+				<form:textarea path="remarks" htmlEscape="false" rows="4"    class="form-control "/>
+			</td>
+		</tr>
+		</tbody>
+	</table>
+</form:form>
+</body>
+</html>

+ 144 - 0
src/main/webapp/webpage/modules/workprequalification/workPrequalificationHistoricList.jsp

@@ -0,0 +1,144 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>已审核资格预审管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        $(document).ready(function() {
+            laydate.render({
+                elem: '#beginDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+        });
+	</script>
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+		<div class="ibox-title" style="height: 70px;">
+			<h5>
+				<ul class="nav nav-tabs">
+					<li><a href="${ctx}/workprequalification/workPrequalification/list">资格预审项目列表</a></li>
+					<li><a href="${ctx}/workprequalification/workPrequalification/workPrequalificationTodoList">待办任务</a></li>
+					<li class="active"><a href="${ctx}/workprequalification/workPrequalification/workPrequalificationHistoricList">已办任务</a></li>
+					<%--<li><a href="${ctx}/workprequalification/workPrequalification/form">申请资格预审项目</a></li>--%>
+				</ul>
+			</h5>
+			<%--<div class="ibox-tools">
+				<a class="collapse-link">
+					<i class="fa fa-chevron-up"></i>
+				</a>
+				<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+					<i class="fa fa-wrench"></i>
+				</a>
+
+			</div>--%>
+		</div>
+
+		<div class="ibox-content">
+			<sys:message content="${message}"/>
+			<!--查询条件-->
+			<div class="row">
+				<div class="col-sm-12">
+					<form:form id="searchForm" modelAttribute="act" action="${ctx}/workprequalification/workPrequalification/workPrequalificationHistoricList" method="get" class="form-inline">
+						<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+						<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+						<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+						<div class="form-group">
+							<label>创建时间:</label>
+							<input id="beginDate"  name="beginDate"  type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.beginDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+							 -- 
+							<input id="endDate" name="endDate" type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.endDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+						</div>
+					</form:form>
+					<br/>
+				</div>
+			</div>
+			<!-- 工具栏 -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="pull-left">
+						<button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+					</div>
+					<div class="pull-right">
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+					</div>
+				</div>
+			</div>
+			<!-- 表格 -->
+			<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+				<thead>
+				<tr>
+                    <th style="text-align: center;">流程发起人</th>
+					<th style="text-align: center;">流程名称</th>
+					<th style="text-align: center;">流程版本</th>
+					<th style="text-align: center;">项目名称</th>
+					<th style="text-align: center;">项目编号</th>
+					<th style="text-align: center;">项目类型</th>
+					<th style="text-align: center;">项目概况</th>
+					<th style="text-align: center;">备注信息</th>
+					<th style="text-align: center;">创建时间</th>
+					<%--<th>操作</th>--%>
+				</tr>
+				</thead>
+				<tbody>
+				<c:choose>
+				<c:when test="${not empty list}">
+				<c:forEach items="${list}" var="workprequalification">
+					<c:set var="task" value="${workprequalification.act.task}" />
+					<c:set var="vars" value="${workprequalification.act.vars}" />
+					<c:set var="procDef" value="${workprequalification.act.procDef}" />
+					<c:set var="status" value="${workprequalification.act.status}" />
+					<tr>
+						<td>${workprequalification.act.vars.map.applyUserId}</td>
+						<td>${procDef.name}</td>
+						<td><b title='流程版本号'>V: ${procDef.version}</b></td>
+						<td>
+							<a  href="javascript:void(0)" onclick="openDialogView('查看资格预审项目', '${ctx}/workprequalification/workPrequalification/form?id=${workprequalification.id}&name=view','80%','80%')">
+									${fns:abbr(workprequalification.projectName,30)}
+							</a>
+						</td>
+						<td>
+							<a  href="javascript:void(0)" onclick="openDialogView('查看资格预审项目', '${ctx}/workprequalification/workPrequalification/form?id=${workprequalification.id}&name=view','80%','80%')">
+									${fns:abbr(workprequalification.projectNumber,30)}
+							</a>
+						</td>
+						<td>${fns:getMainDictLabel(workprequalification.projectType, 'contract_type', '')}</td>
+						<td>${workprequalification.projectSituation}</td>
+						<td>${workprequalification.remarks}</td>
+						<td><fmt:formatDate value="${workprequalification.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+						<%--<td>
+							</td>--%>
+					</tr>
+				</c:forEach>
+				</c:when>
+					<c:otherwise>
+						<tr>
+							<td colspan="15" align="center">
+								暂无数据
+							</td>
+						</tr>
+					</c:otherwise>
+				</c:choose>
+				</tbody>
+			</table>
+			<!-- 分页代码 -->
+			<table:page page="${page}"></table:page>
+			<br/>
+			<br/>
+		</div>
+		<td>${act.vars.map.applyUserId}</td>
+	</div>
+</div>
+</body>
+</html>

+ 374 - 0
src/main/webapp/webpage/modules/workprequalification/workPrequalificationList.jsp

@@ -0,0 +1,374 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>资格预审项目管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        $(document).ready(function() {
+            //搜索框收放
+            $('#moresee').click(function(){
+                if($('#moresees').is(':visible'))
+                {
+                    $('#moresees').slideUp('slow');
+                    $(this).text("更多").removeClass("fa fa-chevron-up").addClass("fa fa-chevron-down");
+                    //document.getElementById("moresees").style.visibility = "hidden";
+                }else{
+                    $('#moresees').slideDown('slow');
+                    $(this).text("收起").removeClass("fa fa-chevron-down").addClass("fa fa-chevron-up");
+                    //document.getElementById("moresees").style.visibility = "visible";
+                }
+            });
+        });
+        function openDialogre(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['提交','暂存','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                         //top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                         //top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                    return false;
+                },
+                btn3: function(index){
+                }
+            });
+
+        }
+
+        function openDialogreToo(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['重新申请','撤回','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(3) ){
+                        //top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(4) ){
+                        //top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                    return false;
+                },
+                btn3: function(index){
+                }
+            });
+
+        }
+	</script>
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+		<div class="ibox-title">
+			<h5>
+				<ul class="nav nav-tabs">
+					<li class="active"><a href="${ctx}/workprequalification/workPrequalification/list">资格预审项目列表</a></li>
+					<li><a href="${ctx}/workprequalification/workPrequalification/workPrequalificationTodoList">待办任务</a></li>
+					<li><a href="${ctx}/workprequalification/workPrequalification/workPrequalificationHistoricList">已办任务</a></li>
+					<%--<li><a href="${ctx}/workprequalification/workPrequalification/form">申请资格预审项目</a></li>--%>
+				</ul>
+			</h5>
+			<%--<div class="ibox-tools">
+				<a class="collapse-link">
+					<i class="fa fa-chevron-up"></i>
+				</a>
+				<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+					<i class="fa fa-wrench"></i>
+				</a>
+				<ul class="dropdown-menu dropdown-user">
+					<li><a href="javascript:void(0)">选项1</a>
+					</li>
+					<li><a href="javascript:void(0)">选项2</a>
+					</li>
+				</ul>
+				<a class="close-link">
+					<i class="fa fa-times"></i>
+				</a>
+			</div>--%>
+		</div>
+
+		<div class="ibox-content">
+			<sys:message content="${message}"/>
+
+			<!--查询条件-->
+			<div class="row">
+				<div class="col-sm-12">
+					<form:form id="searchForm" modelAttribute="workBidProject" action="${ctx}/workprequalification/workPrequalification/" method="post" class="form-inline">
+						<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+						<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+						<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+						<a href="#" id="moresee" class="fa fa-chevron-down" style="float: right;">更多</a>
+						<div class="form-group">
+							<span>项目编号:</span>
+							<form:input path="projectNumber" htmlEscape="false" maxlength="64"  class=" form-control input-sm"/>
+							<span>项目名称:</span>
+							<form:input path="projectName" htmlEscape="false" maxlength="64"  class=" form-control input-sm"/>
+							<span>项目类型:</span>
+							<form:select path="projectType"  class="form-control m-b">
+								<form:option value="" label=""/>
+								<form:options items="${fns:getMainDictList('contract_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+							</form:select>
+
+							<%--<span>是否外协:</span>
+							<form:select path="isSubcontract"  class="form-control m-b">
+								<form:option value="" label=""/>
+								<form:options items="${fns:getDictList('is_subcontract')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+							</form:select>--%>
+						</div>
+						<div style="display:none;margin-top: 15px" id="moresees">
+						<span>项目状态:</span>
+						<form:select path="status"  class="form-control m-b">
+							<form:option value="" label=""/>
+							<form:options items="${fns:getDictList('bid_project_status')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+						</form:select>
+						<span>行业分类:</span>
+						<form:select path="psort"  class="form-control m-b">
+							<form:option value="" label=""/>
+							<form:options items="${fns:getDictList('psort')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+						</form:select>
+						</div>
+					</form:form>
+					<br/>
+				</div>
+			</div>
+
+			<!-- 工具栏 -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="pull-right">
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+					</div>
+					<div class="pull-left">
+						<shiro:hasPermission name="workprequalification:workPrequalification:add">
+							<button class="btn btn-white btn-sm" title="资格预审项目" onclick="openDialogre('资格预审项目','${ctx}/workprequalification/workPrequalification/form','80%','80%')"><i class="fa fa-plus"></i>&nbsp;新增</button>
+							<%--<table:addRows url="${ctx}/workprequalification/workPrequalification/form" title="资格预审项目"></table:addRows><!-- 增加按钮 -->--%>
+						</shiro:hasPermission>
+							<%--<shiro:hasPermission name="workprequalification:workPrequalification:edit">
+                                <table:editRow url="${ctx}/workprequalification/workPrequalification/form" title="资格预审项目" id="contentTable"></table:editRow><!-- 编辑按钮 -->
+                            </shiro:hasPermission>
+                            <shiro:hasPermission name="workprequalification:workPrequalification:del">
+                                <table:delRow url="${ctx}/workprequalification/workPrequalification/deleteAll" id="contentTable"></table:delRow><!-- 删除按钮 -->
+                            </shiro:hasPermission>--%>
+						<shiro:hasPermission name="workprequalification:workPrequalification:import">
+							<table:importExcel url="${ctx}/workprequalification/workPrequalification/import"></table:importExcel><!-- 导入按钮 -->
+						</shiro:hasPermission>
+						<shiro:hasPermission name="workprequalification:workPrequalification:export">
+							<table:exportExcel url="${ctx}/workprequalification/workPrequalification/export"></table:exportExcel><!-- 导出按钮 -->
+						</shiro:hasPermission>
+						<button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+
+					</div>
+				</div>
+			</div>
+
+			<!-- 表格 -->
+			<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+				<thead>
+				<tr>
+					<th> 序号</th>
+					<th style="text-align: center;"  class="sort-column projectNumber">项目编号</th>
+					<th style="text-align: center;"  class="sort-column projectName">项目名称</th>
+					<th style="text-align: center;"  class="sort-column projectType">项目类型</th>
+					<th style="text-align: center;"  class="sort-column bidCompany.name">招标单位</th>
+					<%--<th style="text-align: center;"  >联系人</th>--%>
+					<th style="text-align: center;"  class="sort-column trialDate">资格预审日期</th>
+					<th style="text-align: center;"  class="sort-column isSubcontract">是否对外协作</th>
+					<th style="text-align: center;"  class="sort-column u.name">创建人</th>
+					<th style="text-align: center;" >流程追踪</th>
+					<th style="text-align: center;"  class="sort-column status">项目状态</th>
+					<th style="text-align: center;">操作</th>
+				</tr>
+				</thead>
+				<tbody>
+				<c:choose>
+				<c:when test="${not empty page.list}">
+				<c:forEach items="${page.list}" var="workBidProject" varStatus="index">
+					<c:set var="workClientLinkmanList" value="${workBidProject.workClientLinkmanList}" />
+					<c:set var="role" value="${role}" />
+					<tr>
+						<td> ${index.index+1}</td>
+						<td>
+							<a  href="javascript:void(0)" onclick="openDialogView('查看资格预审项目', '${ctx}/workprequalification/workPrequalification/form?id=${workBidProject.id}&name=view','80%','80%')">
+								<span title="${workBidProject.projectNumber}">${fns:abbr(workBidProject.projectNumber,30)}</span>
+							</a>
+						</td>
+						<td>
+							<a  href="javascript:void(0)" onclick="openDialogView('查看资格预审项目', '${ctx}/workbidproject/workBidProject/form?id=${workBidProject.id}&name=view','80%','80%')">
+									<span title="${workBidProject.projectName}">${fns:abbr(workBidProject.projectName,30)}</span>
+							</a>
+						</td>
+						<td>
+								${fns:getMainDictLabel(workBidProject.projectType, 'contract_type', '')}
+						</td>
+						<td>
+							<c:choose>
+								<c:when test="${workBidProject.isExt ==0}">
+									<a  href="javascript:void(0)" onclick="openDialogView('查看客户管理', '${ctx}/workclientinfo/workClientInfo/detail?id=${workBidProject.bidCompany.id}','80%','80%')">
+										<span title="${workBidProject.bidCompany.name}">${fns:abbr(workBidProject.bidCompany.name,30)}</span>
+									</a>
+								</c:when>
+								<c:otherwise>
+									${fns:abbr(workBidProject.extCompany,30)}
+								</c:otherwise>
+							</c:choose>
+
+						</td>
+						<%--<td>--%>
+							<%--<c:if test="${not empty workClientLinkmanList}">--%>
+								<%--<c:forEach items="${workClientLinkmanList}" var="entry"  varStatus="status">--%>
+									<%--<c:choose>--%>
+										<%--<c:when test="${status.first}">--%>
+											<%--<c:set scope="page" var="sub">${entry.name}</c:set>--%>
+										<%--</c:when>--%>
+										<%--<c:otherwise>--%>
+											<%--<c:set scope="page" var="sub">${sub},${entry.name}</c:set>--%>
+										<%--</c:otherwise>--%>
+
+									<%--</c:choose>--%>
+
+								<%--</c:forEach>--%>
+									<%--${sub}--%>
+							<%--</c:if>--%>
+						<%--</td>--%>
+						<td>
+							<fmt:formatDate value="${workBidProject.trialDate}" pattern="yyyy-MM-dd"/>
+						</td>
+						<td>
+								${fns:getDictLabel(workBidProject.isSubcontract, 'is_subcontract', '')}
+						</td>
+						<td>
+								${workBidProject.createBy.name}
+						</td>
+						<td>
+							<div style="text-align: center">
+							<c:choose>
+								<c:when test="${workBidProject.status eq '1'}">
+									<a href="${ctx}/workprequalification/workPrequalification/startposs?id=${workBidProject.id}" onclick="return confirmx('确认要发起该资格预审项目吗?', this.href)"   class="btn btn-info btn-xs"> 启动流程</a>
+								</c:when>
+								<c:otherwise>
+									<a href="javascript:void(0)" onclick="openDialogView('流程追踪', '${ctx}/workprequalification/workPrequalification/getProcess?id=${workBidProject.id}','80%','80%')" class="btn btn-info btn-xs" > 流程追踪</a>
+								</c:otherwise>
+
+							</c:choose>
+							</div>
+						</td>
+						<td>
+								${fns:getDictLabel(workBidProject.status, 'project_state', '')}
+						</td>
+						<td>
+							<div style="text-align: center">
+							<c:choose>
+								<c:when test="${workBidProject.status == 4 && workBidProject.queryCon eq 'true'  && fns:getUser().id eq workBidProject.createBy.id}">
+									<a href="javascript:void(0)" onclick="openDialogreToo('重新申请资格预审项目', '${ctx}/workprequalification/workPrequalification/form?id=${workBidProject.id}','80%','80%')" class="btn btn-success btn-xs" ><i class="fa fa-edit"></i> 修改</a>
+									<a href="${ctx}/workprequalification/workPrequalification/delete?id=${workBidProject.id}" onclick="return confirmx('确认要删除该资格预审项目吗?', this.href)"   class="btn btn-danger btn-xs"><i class="fa fa-trash"></i> 删除</a>
+								</c:when>
+								<c:when test="${(workBidProject.status == 4 || workBidProject.status == 5) && empty workBidProject.queryCon  && fns:getUser().id eq workBidProject.createBy.id}">
+									<a href="javascript:void(0)" onclick="javascript:parent.layer.msg('您没有权限修改此项目!',{icon:2})" class="btn btn-default btn-xs"><i class="fa fa-edit"></i>修改</a>
+									<a href="${ctx}/workprequalification/workPrequalification/delete?id=${workBidProject.id}" onclick="return confirmx('确认要删除该资格预审项目吗?', this.href)"   class="btn btn-danger btn-xs"><i class="fa fa-trash"></i> 删除</a>
+								</c:when>
+								<c:when test="${workBidProject.status == 1 || (workBidProject.status == 3 && not empty role)}">
+									<a href="javascript:void(0)" onclick="openDialog('修改资格预审项目', '${ctx}/workprequalification/workPrequalification/form?id=${workBidProject.id}','80%','80%')" class="btn btn-success btn-xs" ><i class="fa fa-edit"></i> 修改</a>
+									<a href="${ctx}/workprequalification/workPrequalification/delete?id=${workBidProject.id}" onclick="return confirmx('确认要删除该资格预审项目吗?', this.href)"   class="btn btn-danger btn-xs"><i class="fa fa-trash"></i> 删除</a>
+								</c:when>
+								<c:otherwise>
+									<a href="javascript:void(0)" onclick="javascript:parent.layer.msg('您没有权限修改此项目!',{icon:2})" class="btn btn-default btn-xs"><i class="fa fa-edit"></i>修改</a>
+									<a href="javascript:void(0)" onclick="javascript:parent.layer.msg('您没有权限删除此项目!',{icon:2})" class="btn btn-default btn-xs"><i class="fa fa-trash"></i>删除</a>
+								</c:otherwise>
+							</c:choose>
+							</div>
+						</td>
+					</tr>
+				</c:forEach>
+				</c:when>
+					<c:otherwise>
+						<tr>
+							<td colspan="15" align="center">
+								暂无数据
+							</td>
+						</tr>
+					</c:otherwise>
+				</c:choose>
+				</tbody>
+			</table>
+
+			<!-- 分页代码 -->
+			<table:page page="${page}"></table:page>
+			<br/>
+			<br/>
+		</div>
+	</div>
+</div>
+</body>
+</html>

+ 15 - 0
src/main/webapp/webpage/modules/workprequalification/workPrequalificationTask.jsp

@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>资格预审流程追踪</title>
+	<meta name="decorator" content="default"/>
+</head>
+<body class="gray-bg">
+	<div class="wrapper wrapper-content">
+        <act:flowChart procInsId="${processInstanceId}"/>
+        <act:histoicFlow procInsId="${processInstanceId}"/>
+	</div>
+</body>
+</html>
+

+ 225 - 0
src/main/webapp/webpage/modules/workprequalification/workPrequalificationTodoList.jsp

@@ -0,0 +1,225 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>待审核资格预审管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        $(document).ready(function() {
+            laydate.render({
+                elem: '#beginDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+        });
+        function page(n,s){
+            location = '${ctx}/workprequalification/workPrequalification/list/?pageNo='+n+'&pageSize='+s;
+        }
+        /**
+         * 签收任务
+         */
+        function claim(taskId) {
+            $.get('${ctx}/act/task/claim' ,{taskId: taskId}, function(data) {
+                if (data == 'true'){
+                    top.$.jBox.tip('签收完成');
+                    location = '${ctx}/workprequalification/workPrequalification/workPrequalificationTodoList/';
+                }else{
+                    top.$.jBox.tip('签收失败');
+                }
+            });
+        }
+
+        function openDialogre(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['同意','驳回','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                    return false;
+                },
+                btn3: function(index){
+                }
+            });
+
+        }
+	</script>
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+		<div class="ibox-title" style="height: 70px;">
+			<h5>
+				<ul class="nav nav-tabs">
+					<li><a href="${ctx}/workprequalification/workPrequalification/list">资格预审项目列表</a></li>
+					<li class="active"><a href="${ctx}/workprequalification/workPrequalification/workPrequalificationTodoList">待办任务</a></li>
+					<li><a href="${ctx}/workprequalification/workPrequalification/workPrequalificationHistoricList">已办任务</a></li>
+					<%--<li><a href="${ctx}/workprequalification/workPrequalification/form">申请资格预审项目</a></li>--%>
+				</ul>
+			</h5>
+			<%--<div class="ibox-tools">
+				<a class="collapse-link">
+					<i class="fa fa-chevron-up"></i>
+				</a>
+				<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+					<i class="fa fa-wrench"></i>
+				</a>
+
+			</div>--%>
+		</div>
+
+		<div class="ibox-content">
+			<sys:message content="${message}"/>
+			<!--查询条件-->
+			<div class="row">
+				<div class="col-sm-12">
+					<form:form id="searchForm" modelAttribute="act" action="${ctx}/workprequalification/workPrequalification/workPrequalificationTodoList" method="get" class="form-inline">
+						<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+						<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+						<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+						<div class="form-group">
+							<label>创建时间:</label>
+							<input id="beginDate"  name="beginDate"  type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.beginDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+							 -- 
+							<input id="endDate" name="endDate" type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.endDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+						</div>
+					</form:form>
+					<br/>
+				</div>
+			</div>
+
+			<!-- 工具栏 -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="pull-left">
+						<button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+					</div>
+					<div class="pull-right">
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+					</div>
+				</div>
+			</div>
+			<!-- 表格 -->
+			<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+				<thead>
+				<tr>
+					<th style="text-align: center;">流程发起人</th>
+					<th style="text-align: center;">当前环节</th>
+					<th style="text-align: center;">流程名称</th>
+					<th style="text-align: center;">流程版本</th>
+					<th style="text-align: center;">项目名称</th>
+					<th style="text-align: center;">项目编号</th>
+					<th style="text-align: center;">项目类型</th>
+					<th style="text-align: center;">项目概况</th>
+					<th style="text-align: center;">备注信息</th>
+					<th style="text-align: center;">创建时间</th>
+					<th style="text-align: center;">操作</th>
+				</tr>
+				</thead>
+				<tbody>
+				<c:choose>
+				<c:when test="${not empty list}">
+				<c:forEach items="${list}" var="workprequalification">
+					<c:set var="task" value="${workprequalification.act.task}" />
+					<c:set var="vars" value="${workprequalification.act.vars}" />
+					<c:set var="procDef" value="${workprequalification.act.procDef}" />
+					<c:set var="status" value="${workprequalification.act.status}" />
+					<tr>
+						<td>${workprequalification.act.vars.map.applyUserId}</td>
+						<td>
+							${task.name}
+						</td>
+						<td>${procDef.name}</td>
+						<td><b title='流程版本号'>V: ${procDef.version}</b></td>
+						<td>
+							<a  href="javascript:void(0)" onclick="openDialogView('查看资格预审项目', '${ctx}/workprequalification/workPrequalification/form?id=${workprequalification.id}&name=view','80%','80%')">
+									${fns:abbr(workprequalification.projectName,30)}
+							</a>
+						</td>
+						<td>
+							<a  href="javascript:void(0)" onclick="openDialogView('查看资格预审项目', '${ctx}/workprequalification/workPrequalification/form?id=${workprequalification.id}&name=view','80%','80%')">
+								${fns:abbr(workprequalification.projectNumber,30)}
+							</a>
+						</td>
+						<td>${fns:getMainDictLabel(workprequalification.projectType, 'contract_type', '')}</td>
+						<td>${workprequalification.projectSituation}</td>
+						<td>${workprequalification.remarks}</td>
+						<td><fmt:formatDate value="${task.createTime}" type="both"/></td>
+						<td>
+							<div style="text-align: center">
+							<a href="javascript:void(0)" onclick="openDialogre('查看资格预审项目', '${ctx}/workprequalification/workPrequalification/applyOnWorkBidProject?taskId=${task.id}&taskName=${fns:urlEncode(task.name)}&taskDefKey=${task.taskDefinitionKey}&procInsId=${task.processInstanceId}&procDefId=${task.processDefinitionId}&status=${status}','80%','80%','','同意','驳回')" class="btn btn-info btn-xs" > 任务办理</a>
+						<%--<c:if test="${empty task.assignee}">
+								<a href="javascript:claim('${task.id}');" class="btn btn-white btn-xs" >签收任务</a>
+							</c:if>
+							<c:if test="${not empty task.assignee}">
+								</c:if>--%>
+							</div>
+						</td>
+					</tr>
+				</c:forEach>
+				</c:when>
+					<c:otherwise>
+						<tr>
+							<td colspan="15" align="center">
+								暂无数据
+							</td>
+						</tr>
+					</c:otherwise>
+				</c:choose>
+				</tbody>
+			</table>
+			<!-- 分页代码 -->
+			<table:page page="${page}"></table:page>
+			<br/>
+			<br/>
+		</div>
+	</div>
+</div>
+</body>
+</html>

+ 284 - 0
src/main/webapp/webpage/modules/workprequalification/workPrequalificationView.jsp

@@ -0,0 +1,284 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>投标项目管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        $(function () {
+
+            if(${requestScope.linkmanList !=null}){
+                var defaultLinkmanName = "";
+                $.each(JSON.parse('${requestScope.linkmanList}'),function(n,value){
+                    var optionTag = '<option id="linkman_attr_'+n+'" type="text" value='+n+'>'+value.linkmanName+'</option>';
+                    $("#linkman_list").append(optionTag);
+                    if(n==0){
+                        defaultLinkmanName=value.linkmanName;
+                    }
+                });
+                $("#linkman_list option:first").prop("selected","selected").text(defaultLinkmanName);
+            }
+        });
+
+        /**
+         * 查看联系人(需要用到linkManList)
+         */
+        function selectLinkman(index,target) {
+            if(target=='linkman'){
+                var manList = JSON.parse('${requestScope.linkmanList}');
+
+                var linkman = manList[index];
+                $("#linkmanOffice").val(linkman.linkmanOffice);
+                $("#linkmanPosition").val(linkman.linkmanPosition);
+                $("#QQ").val(linkman.QQ);
+                $("#linkmanPhone").val(linkman.linkmanPhone);
+                $("#linkmanMobile").val(linkman.linkmanMobile);
+                $("#linkmanEmail").val(linkman.linkmanEmail);
+            }
+        }
+
+	</script>
+
+
+</head>
+<body class="hideScroll">
+		<form:form id="inputForm" modelAttribute="workBidProject" action="${ctx}/workbidproject/workBidProject/save" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+		<sys:message content="${message}"/>	
+		<table class="table table-bordered  table-condensed dataTables-example dataTable no-footer">
+		   <tbody>
+			   <div class="tabs-container">
+				   <ul class="nav nav-tabs">
+					   <li class="active"><a data-toggle="tab" href="#tab-1" aria-expanded="true" style="margin-top: 25px">项目信息</a>
+					   </li>
+				   </ul>
+			   </div>
+		   		<tr>
+		   			<td class="width-15 active"><label class="pull-right">项目名称:</label></td>
+					<td class="width-35" colspan="3">
+							${workBidProject.projectName}
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">项目编号:</label></td>
+					<td class="width-35" colspan="3">
+							${workBidProject.projectNumber}
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">项目类型:</label></td>
+					<td class="width-35">
+							${fns:getMainDictLabel(workBidProject.projectType, 'contract_type', '')}
+					</td>
+					<td class="width-15 active"><label class="pull-right">类型说明:</label></td>
+					<td class="width-35">
+							${workBidProject.typeExplain}
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">项目来源:</label></td>
+					<td class="width-35">
+							${fns:getMainDictLabel(workBidProject.projectSource, 'bidProjectSource', '')}
+					</td>
+					<td class="width-15 active"><label class="pull-right">来源说明:</label></td>
+					<td class="width-35">
+							${workBidProject.sourceExplain}
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">行业分类:</label></td>
+					<td class="width-35">
+							${fns:getDictLabel(workBidProject.psort, 'psort', '')}
+					</td>
+					<td class="width-15 active"><label class="pull-right">详细分类:</label></td>
+					<td class="width-35">
+							<c:choose>
+								<c:when test="${workBidProject.psort eq 1}">
+										${fns:getDictLabel(workBidProject.ssort, 'ssort1', '')}
+								</c:when>
+								<c:when test="${workBidProject.psort eq 2}">
+									${fns:getDictLabel(workBidProject.ssort, 'ssort2', '')}
+								</c:when>
+								<c:when test="${workBidProject.psort eq 3}">
+									${fns:getDictLabel(workBidProject.ssort, 'ssort3', '')}
+								</c:when>
+								<c:when test="${workBidProject.psort eq 4}">
+									${fns:getDictLabel(workBidProject.ssort, 'ssort4', '')}
+								</c:when>
+								<c:when test="${workBidProject.psort eq 5}">
+									${fns:getDictLabel(workBidProject.ssort, 'ssort5', '')}
+								</c:when>
+								<c:when test="${workBidProject.psort eq 10}">
+									${fns:getDictLabel(workBidProject.ssort, 'ssort10', '')}
+								</c:when>
+								<c:otherwise>
+										无
+								</c:otherwise>
+							</c:choose>
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right"> 是否外部联系人  :</label></td>
+					<td class="width-35">
+						<c:choose>
+						<c:when test="${workBidProject.isExt == 1}">
+							系统外客户
+						</c:when>
+						<c:otherwise>
+							系统内客户
+						</c:otherwise>
+						</c:choose>
+					</td>
+				</tr>
+
+<!--
+				<tr>
+					<td class="width-15 active"><label class="pull-right">联系人:</label></td>
+					<td class="width-75"  colspan="3">
+						<table style="margin-top:10px;" id="contentTable" class="table table-striped table-bordered table-condensed">
+							<thead>
+								<tr>
+									<th>序号</th>
+									<th>联系人姓名</th>
+									<th>部门</th>
+									<th>职务</th>
+									<th>QQ</th>
+									<th>联系人电话</th>
+									<th>联系人手机</th>
+									<th>E-mail</th>
+								</tr>
+							</thead>
+								<tbody id="workClientLinkmanList">
+								<c:forEach items="${workBidProject.workClientLinkmanList}" var="workClientLinkman" varStatus="status">
+									<tr>
+										<td>${status.index + 1}</td>
+										<td>${workClientLinkman.name}</td>
+										<td>${workClientLinkman.office}</td>
+										<td>${workClientLinkman.position}</td>
+										<td>${workClientLinkman.qq}</td>
+										<td>${workClientLinkman.linkPhone}</td>
+										<td>${workClientLinkman.linkMobile}</td>
+										<td>${workClientLinkman.email}</td>
+									</tr>
+								</c:forEach>
+								<c:if test="${linkManSize == 0}">
+									<tr>
+										<td colspan="8">暂无数据</td>
+									</tr>
+								</c:if>
+								</tbody>
+						</table>
+					</td>
+				</tr>
+-->
+
+				<tr>
+					<td class="width-15 active"><label class="pull-right">项目负责人:</label></td>
+					<td class="width-35">
+							${workPrequalification.projectMasterNames}
+					</td>
+					<td class="width-15 active"><label class="pull-right">项目组成员:</label></td>
+					<td class="width-35">
+							${workPrequalification.projectMemberNames}
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">资审日期:</label></td>
+					<td class="width-35">
+						<fmt:formatDate value="${workBidProject.trialDate}" pattern="yyyy-MM-dd"/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">购买领用招标文件日期:</label></td>
+					<td class="width-35">
+						<fmt:formatDate value="${workBidProject.purchaseDate}" pattern="yyyy-MM-dd"/>
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">文件费用(元):</label></td>
+					<td class="width-35">
+							${workBidProject.documentCost}
+					</td>
+					<td class="width-15 active"><label class="pull-right">装订费用(元):</label></td>
+					<td class="width-35">
+							${workBidProject.bindCost}
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">报名日期:</label></td>
+					<td class="width-35">
+						<fmt:formatDate value="${workBidProject.registrationDate}" pattern="yyyy-MM-dd"/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">是否外协:</label></td>
+					<td class="width-35">
+							${fns:getDictLabel(workBidProject.isSubcontract, 'is_subcontract', '')}
+					</td>
+				</tr>
+				<tr>					
+					<td class="width-15 active"><label class="pull-right">项目概况:</label></td>
+					<td class="width-35" colspan="3">
+							${workBidProject.projectSituation}
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">备注信息:</label></td>
+					<td class="width-35" colspan="3">
+							${workBidProject.remarks}
+					</td>
+				</tr>
+		   </tbody>
+		</table>
+		<table class="table table-bordered  table-condensed dataTables-example dataTable no-footer">
+			<tbody>
+			<div class="tabs-container">
+				<ul class="nav nav-tabs">
+					<li class="active"><a data-toggle="tab" href="#tab-1" aria-expanded="true" style="margin-top: 25px">招标单位</a>
+					</li>
+				</ul>
+			</div>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">招标单位:</label></td>
+					<td class="width-35" colspan="3">
+							${workBidProject.extCompany}${workBidProject.bidCompany.name}
+					</td>
+				</tr>
+			   <tr>
+				   <td class="width-15 active"><label class="pull-right">联系人:</label></td>
+				   <td class="width-35">
+					   <select id="linkman_list" onchange="selectLinkman(this.value,'linkman')" class="linkman_list max-width-200 form-control" />
+				   </td>
+				   <td class="width-15 active"><label class="pull-right">部门:</label></td>
+				   <td class="width-35">
+					   <input value="${workBidProject.workClientLinkmanList[0].office}" id="linkmanOffice" readonly="true" class="form-control linkman_attr"/>
+				   </td>
+			   </tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">职务:</label></td>
+					<td class="width-35">
+						<input value="${workBidProject.workClientLinkmanList[0].position}" id="linkmanPosition" readonly="true" class="form-control linkman_attr"/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">QQ:</label></td>
+					<td class="width-35">
+						<input value="${workBidProject.workClientLinkmanList[0].qq}" id="QQ" readonly="true" class="form-control linkman_attr"/>
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">电话:</label></td>
+					<td class="width-35">
+						<input value="${workBidProject.workClientLinkmanList[0].linkPhone}" id="linkmanPhone" readonly="true" class="form-control linkman_attr"/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">手机:</label></td>
+					<td class="width-35">
+						<input value="${workBidProject.workClientLinkmanList[0].linkPhone}" id="linkmanMobile" readonly="true" class="form-control linkman_attr"/>
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">E-mail:</label></td>
+					<td class="width-35">
+						<input value="${workBidProject.workClientLinkmanList[0].email}" id="linkmanEmail" readonly="true" class="form-control linkman_attr"/>
+					</td>
+				</tr>
+			</tbody>
+		</table>
+
+	</form:form>
+</body>
+</html>

+ 65 - 0
src/main/webapp/webpage/modules/workprocesstype/workProcessDetailForm.jsp

@@ -0,0 +1,65 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp" %>
+<html>
+<head>
+    <title>过程控制类型管理</title>
+    <meta name="decorator" content="default"/>
+    <script type="text/javascript">
+        var validateForm;
+
+        function doSubmit() {//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if (validateForm.form()) {
+                $("#inputForm").submit();
+                return true;
+            }
+
+            return false;
+        }
+
+        $(document).ready(function () {
+            validateForm = $("#inputForm").validate({
+                submitHandler: function (form) {
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function (error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox") || element.is(":radio") || element.parent().is(".input-append")) {
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+
+        });
+    </script>
+</head>
+<body class="hideScroll">
+<div class="single-form">
+    <div class="container">
+        <form:form id="inputForm" modelAttribute="workProcessDetail"
+                   action="${ctx}/workprocesstype/workProcessDetail/save" method="post" class="form-horizontal">
+            <form:hidden path="id"/>
+            <sys:message content="${message}"/>
+            <div class="form-group layui-row first">
+                <div class="form-group-label"><h2>基础信息</h2></div>
+                <div class="layui-item layui-col-sm6">
+                    <label class="layui-form-label"><span class="require-item">*</span>表格编号:</label>
+                    <div class="layui-input-block">
+                        <form:input path="processNumber" htmlEscape="false" class="form-control required layui-input"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6">
+                    <label class="layui-form-label"><span class="require-item">*</span>过程名称:</label>
+                    <div class="layui-input-block">
+                        <form:input path="processName" htmlEscape="false" class="form-control layui-input"/>
+                    </div>
+                </div>
+            </div>
+        </form:form>
+    </div>
+</div>
+</body>
+</html>

+ 129 - 0
src/main/webapp/webpage/modules/workprocesstype/workProcessDetailList.jsp

@@ -0,0 +1,129 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp" %>
+<html>
+<head>
+    <title>过程控制类型管理</title>
+    <meta name="decorator" content="default"/>
+    <style>
+        body{
+            background-color:transparent;
+            filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
+            color:#ffffff;
+            background-color:rgba(255,255,255,0);
+            height:100%;
+        }
+    </style>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+    <sys:message content="${message}"/>
+    <div class="layui-row">
+        <div class="full-width fl">
+            <div class="layui-row" id="queryDiv">
+                <form:form id="searchForm" modelAttribute="workProcessDetail"
+                           action="${ctx}/workprocesstype/workProcessDetail/" method="post" class="form-inline">
+                    <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+                    <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+                    <table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}"
+                                      callback="sortOrRefresh();"/><!-- 支持排序 -->
+                </form:form>
+            </div>
+        </div>
+        <div class="full-width fl">
+            <div class="contentShadow layui-form contentDetails">
+                <div class="nav-btns">
+                    <div style="clear: both;"></div>
+                </div>
+                <table class="oa-table layui-table" id="contentTable"></table>
+                <!-- 分页代码 -->
+                <table:page page="${page}"></table:page>
+                <div style="clear: both;"></div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+    layui.use('table', function () {
+        layui.table.render({
+            limit:${ page.pageSize }
+            , elem: '#contentTable'
+            , page: false
+            , cols: [[
+                // {checkbox: true, fixed: true},
+                {
+                    field: 'processNumber',
+                    align: 'center',
+                    width: 120,
+                    title: '表格编号'
+                },
+                {
+                    field: 'processName',
+                    align: 'center',
+                    title: '表格名称'
+                },
+                {
+                    field: 'stateStr',
+                    align: 'center',
+                    title: '状态',
+                    width: 200
+                },
+                {
+                    align: 'center', title: "操作", width: 200, templet: function (d) {
+                        ////对操作进行初始化
+                        var xml = "";
+                        if(d.state == "0" || !d.state){
+                            xml+='<a class="op-btn op-btn-trace" href="${ctx}/workprocesstype/workProcessType/saveState?id='+d.typeId+'&state=1&stateId='+d.stateId+'"><i class="fa fa-trash"></i> 移除</a>';
+                        }else{
+                            xml+='<a class="op-btn op-btn-submit" href="${ctx}/workprocesstype/workProcessType/saveState?id='+d.typeId+'&state=0&stateId='+d.stateId+'"><i class="fa fa-undo"></i> 恢复</a>'
+                        }
+                        if (d.processNumber == "01")
+                            xml += '<a href="#" onclick="openDialogView(\'设备询价记录\', \'${ctx}/workdevicerecord/workDeviceXjRecord/form?view=view\',\'95%\', \'95%\')" class="op-btn op-btn-edit"><i class="fa fa-search-plus"></i> 查看</a>';
+                        if (d.processNumber == "02")
+                            xml += '<a href="#" onclick="openDialogView(\'补充资料清单\', \'${ctx}/workinfolist/workInfoList/form?view=view\',\'95%\', \'95%\')" class="op-btn op-btn-edit"><i class="fa fa-search-plus"></i> 查看</a>';
+                        if (d.processNumber == "03")
+                            xml += '<a href="#" onclick="openDialogView(\'现场踏勘记录\', \'${ctx}/workexplore/workExplore/form?view=view\',\'95%\', \'95%\')" class="op-btn op-btn-edit"><i class="fa fa-search-plus"></i> 查看</a>';
+                        if (d.processNumber == "04")
+                            xml += '<a href="#" onclick="openDialogView(\'沟通记录表\', \'${ctx}/workcommunicaterecord/workCommunicateRecord/form?view=view\',\'95%\', \'95%\')" class="op-btn op-btn-edit"><i class="fa fa-search-plus"></i> 查看</a>';
+                        if (d.processNumber == "05")
+                            xml += '<a href="#" onclick="openDialogView(\'工程量计算底稿\', \'${ctx}/workprojectcalc/workProjectCalcDecor/form?view=view\',\'95%\', \'95%\')" class="op-btn op-btn-edit"><i class="fa fa-search-plus"></i> 查看</a>';
+                        if (d.processNumber == "06")
+                            xml += '<a href="#" onclick="openDialogView(\'交接单\', \'${ctx}/workhandbill/workHandBill/form?view=view\',\'95%\', \'95%\')" class="op-btn op-btn-edit"><i class="fa fa-search-plus"></i> 查看</a>';
+                        if (d.processNumber == "07")
+                            xml += '<a href="#" onclick="openDialogView(\'日志\', \'${ctx}/worklog/workLog/form?view=view\',\'95%\', \'95%\')" class="op-btn op-btn-edit"><i class="fa fa-search-plus"></i> 查看</a>';
+                        if (d.processNumber == "08")
+                            xml += '<a href="#" onclick="openDialogView(\'会议\', \'${ctx}/workmeeting/workMeeting/form?view=view\',\'95%\', \'95%\')" class="op-btn op-btn-edit"><i class="fa fa-search-plus"></i> 查看</a>';
+                        return xml;
+                    }
+                }
+            ]]
+            , data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="workProcessDetail" varStatus="index">
+                <c:if test="${index.index != 0}">, </c:if>
+                {
+                    "stateId":"${workProcessDetail.id}",
+                    "typeId":"${workProcessDetail.typeId}",
+                    "processNumber": "${workProcessDetail.processNumber}",
+                    "processName": "${workProcessDetail.processName}",
+                    "state": "${workProcessDetail.state}",
+                    "stateStr": "<c:choose><c:when test="${workProcessDetail.state==null or workProcessDetail.state=='0'}">启用</c:when><c:otherwise>禁用</c:otherwise></c:choose>"
+                }
+                </c:forEach>
+                </c:if>
+            ]
+            // ,even: true
+            // ,height: 315
+        });
+
+    })
+
+</script>
+<script>
+    resizeListWindow3();
+    $(window).resize(function(){
+        resizeListWindow3();
+    });
+</script>
+</body>
+</html>

+ 66 - 0
src/main/webapp/webpage/modules/workproject/workProjectForm.jsp

@@ -0,0 +1,66 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目管理管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+		  if(validateForm.form()){
+			  $("#inputForm").submit();
+			  return true;
+		  }
+	
+		  return false;
+		}
+		$(document).ready(function() {
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+			
+		});
+	</script>
+</head>
+<body class="hideScroll">
+		<form:form id="inputForm" modelAttribute="workProject" action="${ctx}/workproject/workProject/save" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+		<sys:message content="${message}"/>	
+		<table class="table table-bordered  table-condensed dataTables-example dataTable no-footer">
+		   <tbody>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">项目名称:</label></td>
+					<td class="width-35">
+						<form:input path="name" htmlEscape="false"    class="form-control "/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">项目编号:</label></td>
+					<td class="width-35">
+						<form:input path="number" htmlEscape="false"    class="form-control "/>
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">合同外键:</label></td>
+					<td class="width-35">
+						<sys:gridselect url="${ctx}/workproject/workProject/selectcontractId" id="contractId" name="contractId"  value="${workProject.contractId.id}"  title="选择合同外键" labelName="contractId.name" 
+						 labelValue="${workProject.contractId.name}" cssClass="form-control required" fieldLabels="合同信息id" fieldKeys="id" searchLabel="合同名称" searchKey="name" ></sys:gridselect>
+					</td>
+					<td class="width-15 active"></td>
+		   			<td class="width-35" ></td>
+		  		</tr>
+		 	</tbody>
+		</table>
+	</form:form>
+</body>
+</html>

+ 200 - 0
src/main/webapp/webpage/modules/workproject/workProjectList.jsp

@@ -0,0 +1,200 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目管理管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		$(document).ready(function() {
+		});
+	</script>
+</head>
+<body class="gray-bg">
+	<div class="wrapper wrapper-content">
+	<div class="ibox">
+	<%--<div class="ibox-title">
+		<h5>项目管理列表 </h5>
+		<div class="ibox-tools">
+			<a class="collapse-link">
+				<i class="fa fa-chevron-up"></i>
+			</a>
+			<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+				<i class="fa fa-wrench"></i>
+			</a>
+			<ul class="dropdown-menu dropdown-user">
+				<li><a href="javascript:void(0)">选项1</a>
+				</li>
+				<li><a href="javascript:void(0)">选项2</a>
+				</li>
+			</ul>
+			<a class="close-link">
+				<i class="fa fa-times"></i>
+			</a>
+		</div>
+	</div>
+    --%>
+    <div class="ibox-content">
+	<sys:message content="${message}"/>
+	
+	<!--查询条件-->
+	<div class="row">
+	<div class="col-sm-12">
+	<form:form id="searchForm" modelAttribute="workProject" action="${ctx}/workproject/workProject/" method="post" class="form-inline">
+		<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+		<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+		<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+		<a href="#" id="moresee" class="fa fa-chevron-down" style="float: right;">更多</a>
+		<div class="form-group">
+			<span>项目名称:</span>
+				<form:input path="name" htmlEscape="false" maxlength="255"  class=" form-control input-sm"/>
+			<span>项目编号:</span>
+				<form:input path="number" htmlEscape="false" maxlength="255"  class=" form-control input-sm"/>
+			<span>项目类型:</span>
+			<form:input path="sort" htmlEscape="false" maxlength="255"  class=" form-control input-sm"/>
+			<%--<span>合同外键:</span>
+				<sys:gridselect url="${ctx}/workproject/workProject/selectcontractId" id="contractId" name="contractId"  value="${workProject.contractId.id}"  title="选择合同外键" labelName="contractId.name" 
+					labelValue="${workProject.contractId.name}" cssClass="form-control required" fieldLabels="合同信息id" fieldKeys="id" searchLabel="合同名称" searchKey="name" ></sys:gridselect>--%>
+		 </div>	
+	</form:form>
+	<br/>
+	</div>
+	</div>
+	
+	<!-- 工具栏 -->
+	<div class="row">
+	<div class="col-sm-12">
+		<div class="pull-left">
+			<shiro:hasPermission name="workproject:workProject:add">
+				<table:addRow url="${ctx}/workproject/workProject/form" title="项目管理"></table:addRow><!-- 增加按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workproject:workProject:edit">
+			    <table:editRow url="${ctx}/workproject/workProject/form" title="项目管理" id="contentTable"></table:editRow><!-- 编辑按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workproject:workProject:del">
+				<table:delRow url="${ctx}/workproject/workProject/deleteAll" id="contentTable"></table:delRow><!-- 删除按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workproject:workProject:import">
+				<table:importExcel url="${ctx}/workproject/workProject/import"></table:importExcel><!-- 导入按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workproject:workProject:export">
+	       		<table:exportExcel url="${ctx}/workproject/workProject/export"></table:exportExcel><!-- 导出按钮 -->
+	       	</shiro:hasPermission>
+	       <button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+		
+			</div>
+		<div class="pull-right">
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+		</div>
+	</div>
+	</div>
+	
+	<!-- 表格 -->
+	<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+		<thead>
+			<tr>
+				<%--<th> <input type="checkbox" class="i-checks"></th>--%>
+				<%--<th  class="sort-column updateDate">update_date</th>
+				<th  class="sort-column remarks">remarks</th>--%>
+				<th style="text-align: center;width: 40%"  class="sort-column name">项目名称</th>
+				<th style="text-align: center;width: 20%"  class="sort-column number">项目编号</th>
+				<th style="text-align: center;width: 10%"  class="sort-column sort">项目类型</th>
+				<th style="text-align: center;width: 10%"  class="">归档状态</th>
+				<th style="text-align: center;width: 10%"  class="">项目归档</th>
+				<%--<th  class="sort-column contractId">合同外键</th>--%>
+				<th style="text-align: center;width: 10%">操作</th>
+			</tr>
+		</thead>
+		<tbody>
+		<c:forEach items="${page.list}" var="workProject">
+			<tr>
+				<%--<td> <input type="checkbox" id="${workProject.id}" class="i-checks"></td>
+				<td><a  href="javascript:void(0)" onclick="openDialogView('查看项目管理', '${ctx}/workproject/workProject/form?id=${workProject.id}','80%','80%')">
+					<fmt:formatDate value="${workProject.updateDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
+				</a></td>
+				<td>
+					${workProject.remarks}
+				</td>--%>
+				<td>
+					${workProject.name}
+				</td>
+				<td>
+					${workProject.number}
+				</td>
+				<td>
+					${workProject.sort}
+				</td>
+					<td>
+						<c:choose>
+							<c:when test="${workProject.state == 1}">
+								归档中
+							</c:when>
+							<c:when test="${workProject.state == 3}">
+								已归档
+							</c:when>
+							<c:otherwise>
+								未归档
+							</c:otherwise>
+						</c:choose>
+					</td>
+				<td>
+					<div style="text-align: center">
+					<c:choose>
+							<c:when test="${workProject.state == 1}">
+							<%--<a href="${ctx}/workproject/workProject/startProcess?id=${workProject.id}" class="btn btn-info btn-xs">项目归档</a>--%>
+							<a href="javascript:void(0)" onclick="openDialog('项目归档', '${ctx}/workproject/workProject/startProcess?id=${workProject.id}','80%', '80%')" class="btn btn-info btn-xs" >项目归档</a>
+						</c:when>
+						<c:when test="${workProject.state == 3}">
+							<a href="javascript:void(0)" onclick="openDialogView('项目归档', '${ctx}/workproject/workProject/startProcess?id=${workProject.id}','80%', '80%')" class="btn btn-info btn-xs" >项目归档</a>
+						</c:when>
+						<c:otherwise>
+							<a href="javascript:parent.layer.msg('项目还未到归档阶段,暂无法归档',{icon:5})" class="btn btn-default btn-xs">项目归档</a>
+						</c:otherwise>
+					</c:choose>
+					</div>
+				</td>
+				<td>
+					<div style="text-align: center">
+					<c:choose>
+						<c:when test="${workProject.sort eq '投标项目'}">
+							<a href="javascript:void(0)" onclick="openDialogView('查看项目管理', '${ctx}/workproject/workProject/form?id=${workProject.id}&&view=1','80%','80%')" class="btn btn-info btn-xs" ><i class="fa fa-search-plus"></i> 查看</a>
+						</c:when>
+						<c:when test="${workProject.sort eq '招标代理'}">
+							<a href="javascript:void(0)" onclick="openDialogView('查看项目管理', '${ctx}/workproject/workProject/form?id=${workProject.id}&&view=2','80%','80%')" class="btn btn-info btn-xs" ><i class="fa fa-search-plus"></i> 查看</a>
+						</c:when>
+						<c:when test="${workProject.sort eq '工程咨询'}">
+							<a href="javascript:void(0)" onclick="openDialogView('查看项目管理', '${ctx}/workproject/workProject/form?id=${workProject.id}&&view=3','80%','80%')" class="btn btn-info btn-xs" ><i class="fa fa-search-plus"></i> 查看</a>
+						</c:when>
+						<c:when test="${workProject.sort eq '全过程管理'}">
+							<a href="javascript:void(0)" onclick="openDialogView('查看项目管理', '${ctx}/workproject/workProject/form?id=${workProject.id}&&view=4','80%','80%')" class="btn btn-info btn-xs" ><i class="fa fa-search-plus"></i> 查看</a>
+						</c:when>                                                        <%--${ctx}/workfullmanage/workFullManage/form?id=${workFullManage.id}&tabId=0--%>
+						<c:otherwise>                                                          <%--${ctx}/workproject/workProject/form?id=${workProject.id}&&view=4--%>
+							<a href="javascript:parent.layer.msg('无此项目类型,无法查看',{icon:5})" class="btn btn-default btn-xs">查看</a>
+						</c:otherwise>
+					</c:choose>
+<%--
+					<shiro:hasPermission name="workproject:workProject:view">
+--%>
+					<%--</shiro:hasPermission>--%>
+					<%--<shiro:hasPermission name="workproject:workProject:edit">
+    					<a href="javascript:void(0)" onclick="openDialog('修改项目管理', '${ctx}/workproject/workProject/form?id=${workProject.id}','80%','80%')" class="btn btn-success btn-xs" ><i class="fa fa-edit"></i> 修改</a>
+    				</shiro:hasPermission>
+    				<shiro:hasPermission name="workproject:workProject:del">
+						<a href="${ctx}/workproject/workProject/delete?id=${workProject.id}" onclick="return confirmx('确认要删除该项目管理吗?', this.href)"   class="btn btn-danger btn-xs"><i class="fa fa-trash"></i> 删除</a>
+					</shiro:hasPermission>--%>
+					</div>
+				</td>
+			</tr>
+		</c:forEach>
+		</tbody>
+	</table>
+	
+		<!-- 分页代码 -->
+	<table:page page="${page}"></table:page>
+	<br/>
+	<br/>
+	</div>
+	</div>
+</div>
+</body>
+</html>

+ 135 - 0
src/main/webapp/webpage/modules/workproject/workProjectLists.jsp

@@ -0,0 +1,135 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目管理管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		$(document).ready(function() {
+		});
+	</script>
+</head>
+<body class="gray-bg">
+	<div class="wrapper wrapper-content">
+	<div class="ibox">
+	<div class="ibox-title">
+		<h5>项目管理列表 </h5>
+		<div class="ibox-tools">
+			<a class="collapse-link">
+				<i class="fa fa-chevron-up"></i>
+			</a>
+			<a class="dropdown-toggle" data-toggle="dropdown" href="#">
+				<i class="fa fa-wrench"></i>
+			</a>
+			<ul class="dropdown-menu dropdown-user">
+				<li><a href="#">选项1</a>
+				</li>
+				<li><a href="#">选项2</a>
+				</li>
+			</ul>
+			<a class="close-link">
+				<i class="fa fa-times"></i>
+			</a>
+		</div>
+	</div>
+    
+    <div class="ibox-content">
+	<sys:message content="${message}"/>
+	
+	<!--查询条件-->
+	<div class="row">
+	<div class="col-sm-12">
+	<form:form id="searchForm" modelAttribute="workProject" action="${ctx}/caseinfo/caseInfo/projectlists" method="post" class="form-inline">
+		<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+		<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+		<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+		<div class="form-group">
+			<span>项目名称:</span>
+				<form:input path="name" htmlEscape="false" maxlength="255"  class=" form-control input-sm"/>
+			<span>项目编号:</span>
+				<form:input path="number" htmlEscape="false" maxlength="255"  class=" form-control input-sm"/>
+			<span>项目类型:</span>
+			<form:input path="sort" htmlEscape="false" maxlength="255"  class=" form-control input-sm"/>
+		 </div>
+	</form:form>
+	<br/>
+	</div>
+	</div>
+	
+	<!-- 工具栏 -->
+	<div class="row">
+	<div class="col-sm-12">
+		<div class="pull-left">
+	       <button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+		
+			</div>
+		<div class="pull-right">
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+		</div>
+	</div>
+	</div>
+	
+	<!-- 表格 -->
+	<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+		<thead>
+			<tr>
+				<th> <input type="checkbox" class="i-checks"></th>
+				<%--<th  class="sort-column updateDate">update_date</th>
+				<th  class="sort-column remarks">remarks</th>--%>
+				<th  class="">项目名称</th>
+				<th  class="">项目编号</th>
+				<th  class="">项目类型</th>
+					<th  class="">登记时间</th>
+			</tr>
+		</thead>
+		<tbody>
+		<c:forEach items="${page.list}" var="workProject">
+			<tr>
+				<td> <input type="checkbox" id="${workProject.id}" class="i-checks"></td>
+				<%--<td> <input type="checkbox" id="${workProject.id}" class="i-checks"></td>
+				<td><a  href="#" onclick="openDialogView('查看项目管理', '${ctx}/workproject/workProject/form?id=${workProject.id}','80%','80%')">
+					<fmt:formatDate value="${workProject.updateDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
+				</a></td>
+				<td>
+					${workProject.remarks}
+				</td>--%>
+				<td>
+					${workProject.name}
+				</td>
+				<td>
+					${workProject.number}
+				</td>
+				<td>
+					${workProject.sort}
+				</td>
+				<td>
+					<fmt:formatDate value="${workProject.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
+				</td>
+					<%--<td>
+						<c:choose>
+							<c:when test="${workProject.state == 1}">
+								归档中
+							</c:when>
+							<c:when test="${workProject.state == 3}">
+								已归档
+							</c:when>
+							<c:otherwise>
+								未归档
+							</c:otherwise>
+						</c:choose>
+					</td>--%>
+			</tr>
+		</c:forEach>
+		</tbody>
+	</table>
+	
+		<!-- 分页代码 -->
+	<table:page page="${page}"></table:page>
+	<br/>
+	<br/>
+	</div>
+	</div>
+</div>
+</body>
+</html>

+ 318 - 0
src/main/webapp/webpage/modules/workproject/workRecordForm.jsp

@@ -0,0 +1,318 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目归档</title>
+	<meta name="decorator" content="default"/>
+	<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>
+	<style type="text/css">
+		.table{
+			margin-bottom: 0px;
+		}
+		.workfull>.form-horizontal{
+			margin: 0;
+			padding: 0;
+		}
+	</style>
+	<script type="text/javascript">
+        $(function(){
+            $("#attachment_btn").click(function () {
+                $("#attachment_file").click();
+            });
+            var oneSize = $(".oneTab").size();
+            for(var i = 0;i < oneSize;i++){
+                var hei = $(".oneTab:eq("+i+")").parent().height();
+                $(".oneTab:eq("+i+")").css("height",hei)
+                    .css("vertical-align","middle")
+                    .css("line-height",hei+"px")
+            }
+            $("img").not(".upload_ico").each(function () {
+                var num = 1 ;
+                $(this).click(function () {
+                    var flag = num%2;
+                    if(flag == 1){
+                        $(this).css("width","90%");
+                        $(this).css("height","90%");
+                        num++;
+                    }else if(flag ==0){
+                        $(this).css("width","50px");
+                        $(this).css("height","50px");
+                        num++;
+                    }
+                })
+            });
+        })
+        var validateForm;
+        function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                $("#inputForm").submit();
+                return true;
+            }
+            return false;
+        }
+        $(document).ready(function() {
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+        });
+
+        function insertTitle(tValue){
+            var list = "${workAttachmentList}";
+            var size = (list.split('url')).length-1;
+            var files = $("#attachment_file")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "66";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectRecord/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        }
+
+
+        function deleteFileFromAliyun(obj,deleteUrl){
+            $.ajax({
+                type:"post",
+                url:deleteUrl,
+                success:function(data){
+                    if(data.str){
+                        parent.layer.msg('删除成功',{icon:1});
+                        $(obj).parent().parent().remove();
+                    }else {
+                        parent.layer.msg('删除失败',{icon:1});
+                    }
+                }
+            });
+        }
+	</script>
+</head>
+<body class="hideScroll">
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+	<div class="ibox-content">
+		<div class="col-sm-12 m-t-xs">
+			<div class="col-sm-2 gray-bg text-center oneTab">
+				<label>档案信息</label>
+			</div>
+			<div class="col-sm-10 workfull" >
+				<form:form id="inputForm" modelAttribute="workFullRecord" action="${ctx}/workproject/workProject/updateRd" method="post" class="form-horizontal">
+					<form:hidden path="id"/>
+					<sys:message content="${message}"/>
+					<table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+						<tbody>
+						<tr>
+							<td class="width-15 active"><label class="pull-right"><font color="red">*</font>案卷名称:</label></td>
+							<td class="width-25" colspan="3">
+								<form:input path="recordName" htmlEscape="false"    class="form-control " readonly="true" value="${workFullRecord.recordName}"/>
+								<input type="hidden" name="workProject.id" value="${workProject.id}"   class="form-control "/>
+							</td>
+						</tr>
+						<tr>
+							<td class="width-15 active"><label class="pull-right"><font color="red">*</font>案卷号:</label></td>
+							<td class="width-35">
+								<form:input path="recordNumber" htmlEscape="false" readonly="true" value="${workFullRecord.recordNumber}"   class="form-control "/>
+							</td>
+							<td class="width-15 active"><label class="pull-right">归档号:</label></td>
+							<td class="width-35">
+								<form:input path="backRecordNumber" htmlEscape="false"    class="form-control "/>
+							</td>
+						</tr>
+						<tr>
+							<td class="width-15 active"><label class="pull-right">所属卷库:</label></td>
+							<td class="width-25">
+								<form:select path="recordLibNumber" class="form-control ">
+									<form:option value="" label=""/>
+									<form:options items="${fns:getDictList('record_lib_number')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+								</form:select>
+							</td>
+							<td class="width-15 active"><label class="pull-right">归档年代:</label></td>
+							<td class="width-25">
+								<form:input path="backRecordYear" htmlEscape="false"    class="form-control "/>
+							</td>
+						</tr>
+						<tr>
+							<td class="width-15 active"><label class="pull-right">所属部门:</label></td>
+							<td class="width-25">
+								<sys:treeselect id="backRecordDept" name="backRecordDept.id" value="${workFullRecord.backRecordDept.id}" labelName="backRecordDept.name" labelValue="${workFullRecord.backRecordDept.name}"
+												title="部门" url="/sys/office/treeDataAll?type=2" cssClass="form-control " allowClear="true" notAllowSelectParent="true"/>
+							</td>
+							<td class="width-15 active"><label class="pull-right">编制机构:</label></td>
+							<td class="width-25">
+								<form:input path="compleOrganization" htmlEscape="false"    class="form-control "/>
+							</td>
+						</tr>
+						<tr>
+							<td class="width-15 active"><label class="pull-right">保管期限:</label></td>
+							<td class="width-25">
+								<form:select path="retentionPeriod" class="form-control ">
+									<form:option value="" label=""/>
+									<form:options items="${fns:getDictList('retention_period')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+								</form:select>
+							</td>
+							<td class="width-15 active"><label class="pull-right">起止日期:</label></td>
+							<td class="width-25" style="display: inline-block;">
+									<%--<input id="startTime" name="startTime" type="text" maxlength="20" class="laydate-icon form-control layer-date "--%>
+									<%--value="<fmt:formatDate value="${startTime}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>--%>
+									<%--<input id="endTime" name="endTime" type="text" maxlength="20" class="laydate-icon form-control layer-date "--%>
+									<%--value="/>--%>
+								<div class="col-sm-5" style="padding: 0;">
+									<input class="form-control" id="startTime" name="startTime" value="<fmt:formatDate value="${workFullRecord.startTime}" pattern="yyyy-MM-dd"/>" onclick="laydate({istime: false, format: 'YYYY-MM-DD'})">
+								</div>
+								<div class="col-sm-2 text-center" style="padding: 0;vertical-align: middle;line-height: 30px;">
+									至
+								</div>
+								<div class="col-sm-5" style="padding: 0;">
+									<input class="form-control" id="endTime" name="endTime" value="<fmt:formatDate value="${workFullRecord.endTime}" pattern="yyyy-MM-dd"/>" onclick="laydate({istime: false, format: 'YYYY-MM-DD'})">
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td class="width-15 active"><label class="pull-right">案卷密级:</label></td>
+							<td class="width-25">
+								<form:select path="recordSecretLevel" class="form-control ">
+									<form:option value="" label=""/>
+									<form:options items="${fns:getDictList('record_secret_level')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+								</form:select>
+							</td>
+							<td class="width-15 active"><label class="pull-right">全宗号:</label></td>
+							<td class="width-25">
+								<form:input path="fondsNumber" htmlEscape="false"    class="form-control "/>
+							</td>
+						</tr>
+						<tr>
+							<td class="width-15 active"><label class="pull-right">目录号:</label></td>
+							<td class="width-25">
+								<form:input path="listsNumber" htmlEscape="false"    class="form-control "/>
+							</td>
+							<td class="width-15 active"><label class="pull-right">归档馆号:</label></td>
+							<td class="width-25">
+								<form:input path="recordProNumber" htmlEscape="false"    class="form-control "/>
+							</td>
+						</tr>
+						<tr>
+							<td class="width-15 active"><label class="pull-right">保险箱号:</label></td>
+							<td class="width-25">
+								<form:input path="strongboxNumber" htmlEscape="false"    class="form-control "/>
+							</td>
+							<td class="width-15 active"><label class="pull-right">缩微号:</label></td>
+							<td class="width-25">
+								<form:input path="microNumber" htmlEscape="false"    class="form-control "/>
+							</td>
+						</tr>
+						<tr>
+							<td class="width-15 active"><label class="pull-right">凭证类别:</label></td>
+							<td class="width-25">
+								<form:select path="ekkoType" class="form-control ">
+									<form:option value="" label=""/>
+									<form:options items="${fns:getDictList('ekko_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+								</form:select>
+							</td>
+							<td class="width-15 active"><label class="pull-right">凭证编号:</label></td>
+							<td class="width-25">
+								<div class="col-sm-5" style="padding: 0;">
+									<form:input path="ekkoBstypOne" htmlEscape="false" class="form-control "/>
+								</div>
+								<div class="col-sm-2 text-center" style="padding: 0;vertical-align: middle;line-height: 30px;">
+									至
+								</div>
+								<div class="col-sm-5" style="padding: 0;">
+									<form:input path="ekkoBstypTwo" htmlEscape="false"  class="form-control "/>
+								</div>
+							</td>
+						</tr>
+						<tr>
+							<td class="width-15 active"><label class="pull-right">报告号:</label></td>
+							<td class="width-25">
+								<form:input path="reportNumber" htmlEscape="false"    class="form-control "/>
+							</td>
+							<td class="width-15 active"><label class="pull-right">页数:</label></td>
+							<td class="width-25">
+								<form:input path="pageNumber" htmlEscape="false"    class="form-control "/>
+							</td>
+						</tr>
+						<tr>
+							<td class="width-15 active"><label class="pull-right">案卷管理员:</label></td>
+							<td class="width-25">
+								<form:input path="manageUser" htmlEscape="false"    class="form-control "/>
+							</td>
+						</tr>
+						<tr>
+							<td class="width-15 active"><label class="pull-right">备注:</label></td>
+							<td class="width-25" colspan="3">
+								<form:textarea path="remarks" htmlEscape="false" rows="4"    class="form-control "/>
+							</td>
+						</tr>
+						<tr>
+							<td colspan="4" style="background:white;">
+							<div style="float:left;width: 80px; height: 100%; ">
+								附件
+							</div>
+							<div style="float:left; height: 100%; width: 500px; ">
+								<div style="display: inline-block">
+									<div id="addFile_attachment" style="display: none">
+										<span id="fileName_attachment" ></span>
+										<b><span id="baifenbi_attachment" ></span></b>
+										<div class="progress">
+											<div id="jindutiao_attachment" class="progress-bar" style="width: 0%" aria-valuenow="0">
+											</div>
+										</div>
+									</div>
+									<input id="attachment_file" type="file" name="attachment_file" multiple="multiple" style="display: none;" onChange="if(this.value)insertTitle(this.value);"/>
+									<a id="attachment_btn" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+									<span id="attachment_title"></span>
+								</div>
+
+
+								<table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+									<thead>
+									<tr>
+										<%--<th>序号</th>--%>
+										<th>文件名称</th>
+										<th>上传人</th>
+										<th>上传时间</th>
+										<th>操作</th>
+									</tr>
+									</thead>
+									<tbody id="file_attachment">
+									<c:forEach items="${workAttachments}" varStatus="status" var="workClientAttachment">
+										<tr>
+											<%--<td>${status.index + 1}</td>--%>
+											<td>${workClientAttachment.attachmentName}</td>
+											<td>${workClientAttachment.createBy.name}</td>
+											<td><fmt:formatDate value="${workClientAttachment.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+											<td>
+												<a href="${attachment.url}">下载</a>
+												<a href="${ctx}/workvisa/workVisa/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workVisa.id}">删除</a>
+											</td>
+										</tr>
+									</c:forEach>
+									</tbody>
+								</table>
+							</div>
+							</td>
+						</tr>
+						</tbody>
+					</table>
+				</form:form>
+			</div>
+		</div>
+	</div>
+	</div>
+</div>
+</body>
+</html>

+ 337 - 0
src/main/webapp/webpage/modules/workproject/workRecordView.jsp

@@ -0,0 +1,337 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目归档</title>
+	<meta name="decorator" content="default"/>
+	<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>
+	<style type="text/css">
+		.table{
+			margin-bottom: 0px;
+		}
+		.workfull>.form-horizontal{
+			margin: 0;
+			padding: 0;
+		}
+	</style>
+	<script type="text/javascript">
+        $(function(){
+            var oneSize = $(".oneTab").size();
+            for(var i = 0;i < oneSize;i++){
+                var hei = $(".oneTab:eq("+i+")").parent().height();
+                $(".oneTab:eq("+i+")").css("height",hei)
+                    .css("vertical-align","middle")
+                    .css("line-height",hei+"px")
+            }
+            $("img").not(".upload_ico").each(function () {
+                var num = 1 ;
+                $(this).click(function () {
+                    var flag = num%2;
+                    if(flag == 1){
+                        $(this).css("width","90%");
+                        $(this).css("height","90%");
+                        num++;
+                    }else if(flag ==0){
+                        $(this).css("width","50px");
+                        $(this).css("height","50px");
+                        num++;
+                    }
+                })
+            });
+        })
+        var validateForm;
+        function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                $("#inputForm").submit();
+                return true;
+            }
+            return false;
+        }
+        $(document).ready(function() {
+          /*  validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });*/
+        });
+
+	</script>
+</head>
+<body class="hideScroll">
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+	<div class="ibox-content">
+		<div class="col-sm-12 m-t-xs">
+			<div class="col-sm-2 gray-bg text-center oneTab">
+				<label>档案信息</label>
+			</div>
+			<div class="col-sm-10 workfull" >
+				<form:form id="inputForm" modelAttribute="workFullRecord" action="${ctx}/workproject/workProject/updateRd" method="post" class="form-horizontal">
+						<sys:message content="${message}"/>
+						<table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+							<tbody>
+							<tr>
+								<td class="width-15 active"><label class="pull-right"><font color="red">*</font>案卷名称:</label></td>
+								<td class="width-25" colspan="3">
+									<form:input path="recordName" htmlEscape="false"    class="form-control " readonly="true" value="${workFullRecord.recordName}"/>
+									<input type="hidden" name="workProject.id" value="${workProject.id}"   class="form-control "/>
+
+								</td>
+							</tr>
+							<tr>
+								<td class="width-15 active"><label class="pull-right"><font color="red">*</font>案卷号:</label></td>
+								<td class="width-35">
+									<form:input path="recordNumber" htmlEscape="false" readonly="true" value="${workFullRecord.recordNumber}"   class="form-control "/>
+								</td>
+								<td class="width-15 active"><label class="pull-right">归档号:</label></td>
+								<td class="width-35">
+										${workFullRecord.backRecordNumber}
+								</td>
+							</tr>
+							<tr>
+								<td class="width-15 active"><label class="pull-right">所属卷库:</label></td>
+								<td class="width-25">
+										<%--<form:select path="recordLibNumber" class="form-control ">
+                                            <form:option value="" label=""/>
+                                            <form:options items="${fns:getDictList('record_lib_number')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+                                        </form:select>--%>
+										${fns:getDictLabel(workFullRecord.recordLibNumber, 'record_lib_number', '')}
+								</td>
+								<td class="width-15 active"><label class="pull-right">归档年代:</label></td>
+								<td class="width-25">
+										${workFullRecord.backRecordYear}
+								</td>
+							</tr>
+							<tr>
+								<td class="width-15 active"><label class="pull-right">所属部门:</label></td>
+								<td class="width-25">
+										<%--<sys:treeselect id="backRecordDept" name="backRecordDept.id" value="${workFullRecord.backRecordDept.id}" labelName="backRecordDept.name" labelValue="${workFullRecord.backRecordDept.name}"
+                                                        title="部门" url="/sys/office/treeDataAll?type=2" cssClass="form-control " allowClear="true" notAllowSelectParent="true"/>--%>
+										${workFullRecord.backRecordDept.name}
+								</td>
+								<td class="width-15 active"><label class="pull-right">编制机构:</label></td>
+								<td class="width-25">
+										${workFullRecord.compleOrganization}
+								</td>
+							</tr>
+							<tr>
+								<td class="width-15 active"><label class="pull-right">保管期限:</label></td>
+								<td class="width-25">
+										<%--<form:select path="retentionPeriod" class="form-control ">
+                                            <form:option value="" label=""/>
+                                            <form:options items="${fns:getDictList('retention_period')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+                                        </form:select>--%>
+										${fns:getDictLabel(workFullRecord.retentionPeriod, 'retention_period', '')}
+								</td>
+								<td class="width-15 active"><label class="pull-right">起止日期:</label></td>
+								<td class="width-25" style="display: inline-block;">
+										<%--<input id="startTime" name="startTime" type="text" maxlength="20" class="laydate-icon form-control layer-date "--%>
+										<%--value="<fmt:formatDate value="${startTime}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>--%>
+										<%--<input id="endTime" name="endTime" type="text" maxlength="20" class="laydate-icon form-control layer-date "--%>
+										<%--value="/>--%>
+									<div class="col-sm-5" style="padding: 0;">
+										<fmt:formatDate value="${workFullRecord.startTime}" pattern="yyyy-MM-dd"/>
+											<%--<input class="form-control" id="startTime" name="startTime" value="<fmt:formatDate value="${workFullRecord.startTime}" pattern="yyyy-MM-dd"/>" onclick="laydate({istime: false, format: 'YYYY-MM-DD'})">--%>
+									</div>
+									<div class="col-sm-2 text-center" style="padding: 0;vertical-align: middle;line-height: 30px;">
+										至
+									</div>
+									<div class="col-sm-5" style="padding: 0;">
+										<fmt:formatDate value="${workFullRecord.endTime}" pattern="yyyy-MM-dd"/>
+											<%--<input class="form-control" id="endTime" name="endTime" value="<fmt:formatDate value="${workFullRecord.endTime}" pattern="yyyy-MM-dd"/>" onclick="laydate({istime: false, format: 'YYYY-MM-DD'})">--%>
+									</div>
+								</td>
+							</tr>
+							<tr>
+								<td class="width-15 active"><label class="pull-right">案卷密级:</label></td>
+								<td class="width-25">
+										<%--<form:select path="recordSecretLevel" class="form-control ">
+                                            <form:option value="" label=""/>
+                                            <form:options items="${fns:getDictList('record_secret_level')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+                                        </form:select>--%>
+										${fns:getDictLabel(workFullRecord.recordSecretLevel, 'record_secret_level', '')}
+								</td>
+								<td class="width-15 active"><label class="pull-right">全宗号:</label></td>
+								<td class="width-25">
+										${workFullRecord.fondsNumber}
+								</td>
+							</tr>
+							<tr>
+								<td class="width-15 active"><label class="pull-right">目录号:</label></td>
+								<td class="width-25">
+										${workFullRecord.listsNumber}
+								</td>
+								<td class="width-15 active"><label class="pull-right">归档馆号:</label></td>
+								<td class="width-25">
+										${workFullRecord.recordProNumber}
+								</td>
+							</tr>
+							<tr>
+								<td class="width-15 active"><label class="pull-right">保险箱号:</label></td>
+								<td class="width-25">
+										${workFullRecord.strongboxNumber}
+								</td>
+								<td class="width-15 active"><label class="pull-right">缩微号:</label></td>
+								<td class="width-25">
+										${workFullRecord.microNumber}
+								</td>
+							</tr>
+							<tr>
+								<td class="width-15 active"><label class="pull-right">凭证类别:</label></td>
+								<td class="width-25">
+										<%--<form:select path="ekkoType" class="form-control ">
+                                            <form:option value="" label=""/>
+                                            <form:options items="${fns:getDictList('ekko_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+                                        </form:select>--%>
+										${fns:getDictLabel(workFullRecord.ekkoType, 'ekko_type', '')}
+								</td>
+								<td class="width-15 active"><label class="pull-right">凭证编号:</label></td>
+								<td class="width-25">
+									<div class="col-sm-5" style="padding: 0;">
+											${workFullRecord.ekkoBstypOne}
+									</div>
+									<div class="col-sm-2 text-center" style="padding: 0;vertical-align: middle;line-height: 30px;">
+										至
+									</div>
+									<div class="col-sm-5" style="padding: 0;">
+											${workFullRecord.ekkoBstypTwo}
+									</div>
+								</td>
+							</tr>
+							<tr>
+								<td class="width-15 active"><label class="pull-right">报告号:</label></td>
+								<td class="width-25">
+										${workFullRecord.reportNumber}
+								</td>
+								<td class="width-15 active"><label class="pull-right">页数:</label></td>
+								<td class="width-25">
+										${workFullRecord.pageNumber}
+								</td>
+							</tr>
+							<tr>
+								<td class="width-15 active"><label class="pull-right">案卷管理员:</label></td>
+								<td class="width-25">
+										${workFullRecord.manageUser}
+								</td>
+							</tr>
+							<tr>
+								<td class="width-15 active"><label class="pull-right">备注:</label></td>
+								<td class="width-25" colspan="3">
+										${workFullRecord.remarks}
+								</td>
+							</tr>
+
+							<tr>
+								<td class="width-25" colspan="4">
+									<div style="width: 580px; ">
+										<div style="float:left;width: 80px; height: 100%; ">
+											附件
+										</div>
+										<div style="float:left; height: 100%; width: 500px; ">
+												<%--<div style="display: inline-block">--%>
+												<%--<input id="attachment_file" type="file" name="attachment_file" multiple="multiple" style="display: none;" onChange="if(this.value)insertTitle(this.value);"/>--%>
+												<%--<a id="attachment_btn" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>--%>
+												<%--<span id="attachment_title"></span>--%>
+												<%--</div>--%>
+													<%--<table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+														<thead>
+														<tr>
+															<th>序号</th>
+															<th>文件名称</th>
+															<th>上传人</th>
+															<th>上传时间</th>
+															<th>操作</th>
+														</tr>
+														</thead>
+														<tbody id="file_attachment">
+														<c:forEach items="${workAttachments}" varStatus="status" var="workClientAttachment">
+															<tr>
+																<td>${status.index + 1}</td>
+																<td>${workClientAttachment.attachmentName}</td>
+																<td>${workClientAttachment.createBy.name}</td>
+																<td><fmt:formatDate value="${workClientAttachment.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+																<td>
+																	<a href="${attachment.url}">下载</a>
+																</td>
+															</tr>
+														</c:forEach>
+														</tbody>
+													</table>--%>
+
+
+										<table id="contentTable" class="table table-striped table-bordered table-condensed">
+											</tbody>
+											<tr>
+												<th class="hide"></th>
+												<th width="30%">文件名称</th>
+												<th width="30%">上传人</th>
+												<th width="30%">创建时间</th>
+												<th>操作</th>
+											</tr>
+											<c:choose>
+												<c:when test="${not empty workFullRecord.workAttachments}">
+													<c:forEach items="${workFullRecord.workAttachments}" var="workClientAttachment">
+														<tr>
+															<td class="hide"></td>
+															<c:choose>
+																<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+												   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+												   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+												   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+												   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+																	<td><img src="${workClientAttachment.url}" width="50" height="50" alt="${workClientAttachment.attachmentName}"/></td>
+																</c:when>
+																<c:otherwise>
+																	<c:choose>
+																		<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+																			<td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','80%','80%','1')">${workClientAttachment.attachmentName}</a></td>
+																		</c:when>
+																		<c:otherwise>
+																			<td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','80%','80%')">${workClientAttachment.attachmentName}</a></td>
+																		</c:otherwise>
+																	</c:choose>
+																</c:otherwise>
+															</c:choose>
+															<td>${workClientAttachment.createBy.name}</td>
+															<td><fmt:formatDate value="${workFullRecord.createDate}" pattern="yyyy年MM月dd日" type="date" dateStyle="full"/></td>
+															<td>
+																<a href="${workClientAttachment.url}">下载</a>
+															</td>
+														</tr>
+													</c:forEach>
+												</c:when>
+												<c:otherwise>
+													<tr>
+														<td colspan="5" align="center">暂无数据</td>
+													</tr>
+												</c:otherwise>
+											</c:choose>
+
+											</tbody>
+											<tbody id="workContractAnnexList">
+											</tbody>
+										</table>
+										</div>
+									</div>
+								</td>
+							</tr>
+							</tbody>
+						</table>
+				</form:form>
+			</div>
+		</div>
+	</div>
+	</div>
+</div>
+</body>
+</html>

+ 790 - 0
src/main/webapp/webpage/modules/workprojectManagement/startThreeGradeExamination.jsp

@@ -0,0 +1,790 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>工程项目信息管理</title>
+    <meta name="decorator" content="default"/>
+    <script type="text/javascript">
+        $(function(){
+            $("img").not(".upload_ico").each(function () {
+                var num = 1 ;
+                $(this).click(function () {
+                    var flag = num%2;
+                    if(flag == 1){
+                        $(this).css("width","90%");
+                        $(this).css("height","90%");
+                        num++;
+                    }else if(flag ==0){
+                        $(this).css("width","50px");
+                        $(this).css("height","50px");
+                        num++;
+                    }
+                })
+            });
+        })
+        var validateForm;
+        function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                if(obj == 1) {
+                    $("#flag").val("1");
+                }else if(obj == 2){
+                    $("#flag").val("2");
+                }else if(obj == 3){
+                    $("#flag").val("1");
+                }else if(obj == 4){
+                    $("#flag").val("2");
+                }
+                $("#plan").val(obj);
+                $("#name").val("allocation");
+                $("#inputForm").submit();
+                return true;
+            }
+            return false;
+        }
+        $(document).ready(function() {
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+            laydate.render({
+                elem: '#workStartDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            laydate.render({
+                elem: '#workEndDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            $("#attachment_btn_report").click(function () {
+                $("#attachment_report").click();
+            });
+            $("#attachment_btn_basis").click(function () {
+                $("#attachment_basis").click();
+            });
+            $("#attachment_btn_remote").click(function () {
+                $("#attachment_remote").click();
+            });
+            $("#attachment_btn_summary").click(function () {
+                $("#attachment_summary").click();
+            });
+            $("#attachment_btn_other").click(function () {
+                $("#attachment_other").click();
+            });
+            var oneSize = $(".oneTab").size();
+            for(var i = 0;i < oneSize;i++){
+                var hei = $(".oneTab:eq("+i+")").parent().height()-20;
+                $(".oneTab:eq("+i+")").css("height",hei)
+                    .css("vertical-align","middle")
+                    .css("line-height",hei+"px")
+            }
+        });
+
+        /* function reportInsertTitle(tValue){
+             $("#attachment_title_report_div").remove();
+             var t1 = tValue.lastIndexOf("\\");
+             if(t1 >= 0 && t1 < tValue.length){
+                 $("#attachment_title_report").text(tValue.substring(t1+1));
+                 $("#attachment_title_report").after("<div id='attachment_title_report_div' style='float: right'>&nbsp;&nbsp;<span id='attachment_delete' onclick='attachment_report_del()'style='color: red ; cursor: pointer;'>x</span></div>");
+             }
+         }*/
+        function reportInsertTitle(tValue){
+            var list = "${workReportList}";
+            var size = (list.split('url')).length-1;
+            var files = $("#attachment_report")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "39";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectReport/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment_report";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        };
+        function basisInsertTitle(tValue){
+            var list = "${workBasisInformationList}";
+            var size = (list.split('url')).length-1;
+            $("#attachment_title_basis_div").remove();
+            var files = $("#attachment_basis")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "40";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectReport/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment_basis";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        }
+        function remoteInsertTitle(tValue){
+            var list = "${workRemoteControlList}";
+            var size = (list.split('url')).length-1;
+            $("#attachment_title_remote_div").remove();
+            var files = $("#attachment_remote")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "41";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectReport/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment_remote";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        }
+        function summaryInsertTitle(tValue){
+            var list = "${workSummaryList}";
+            var size = (list.split('url')).length-1;
+            $("#attachment_title_summary_div").remove();
+            var files = $("#attachment_summary")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "42";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectReport/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment_summary";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        }
+        function otherInsertTitle(tValue){
+            var list = "${workOtherList}";
+            var size = (list.split('url')).length-1;
+            $("#attachment_title_other_div").remove();
+            var files = $("#attachment_other")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "43";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectReport/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment_other";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        }
+        function attachment_report_del() {
+            $("#attachment_report").val("");
+            $("#attachment_title_report").text("");
+            $("#attachment_report_delete").remove();
+            $("#attachment_title_report_div").remove();
+        }
+        function attachment_basis_del() {
+            $("#attachment_basis").val("");
+            $("#attachment_title_basis").text("");
+            $("#attachment_basis_delete").remove();
+            $("#attachment_title_basis_div").remove();
+        }
+        function attachment_remote_del() {
+            $("#attachment_remote").val("");
+            $("#attachment_title_remote").text("");
+            $("#attachment_remote_delete").remove();
+            $("#attachment_title_remote_div").remove();
+        }
+        function attachment_summary_del() {
+            $("#attachment_summary").val("");
+            $("#attachment_title_summary").text("");
+            $("#attachment_summary_delete").remove();
+            $("#attachment_title_summary_div").remove();
+        }
+        function attachment_other_del() {
+            $("#attachment_other").val("");
+            $("#attachment_title_other").text("");
+            $("#attachment_other_delete").remove();
+            $("#attachment_title_other_div").remove();
+        }
+        function sendPriceValue(obj) {
+            var sendPrice = $("#sendPrice").val();
+            var approvedPrice = $("#approvedPrice").val();
+            if (sendPrice>0 && approvedPrice>0){
+                var addEditAmount = 0;
+                var addEditRate = 0;
+                if(parseFloat(sendPrice)>parseFloat(approvedPrice)){
+                    addEditAmount = sendPrice - approvedPrice;
+                    addEditRate = ((approvedPrice / sendPrice)* 100 ).toFixed(2)+ "%";
+                }else {
+                    addEditAmount = approvedPrice - sendPrice;
+                    addEditRate = ((sendPrice / approvedPrice)* 100 ).toFixed(2)+ "%";
+                }
+                $("#addEditAmount").val(addEditAmount);
+                $("#addEditRate").val(addEditRate);
+            }
+
+        }
+        function approvedPriceValue(obj) {
+            var sendPrice = $("#sendPrice").val();
+            var approvedPrice = $("#approvedPrice").val();
+            if (sendPrice>0 && approvedPrice>0){
+                var addEditAmount = 0;
+                var addEditRate = 0;
+                if(parseFloat(sendPrice)>parseFloat(approvedPrice)){
+                    addEditAmount = sendPrice - approvedPrice;
+                }else {
+                    addEditAmount = approvedPrice - sendPrice;
+                }
+                addEditRate = ((sendPrice / approvedPrice)* 100 ).toFixed(2) + "%";
+                $("#addEditAmount").val(addEditAmount);
+                $("#addEditRate").val(addEditRate);
+                $("#consultAmount").val(approvedPrice);
+            }
+        }
+    </script>
+</head>
+<body class="hideScroll">
+<form:form id="inputForm" modelAttribute="workEngineeringProject" action="${ctx}/projectManagement/projectManagement/saveAudit" method="post" class="form-horizontal">
+<form:hidden path="id"/>
+<form:hidden path="workEngineeringPrice.id"/>
+<form:hidden path="name"/>
+<form:hidden path="plan"/>
+<form:hidden path="act.taskId"/>
+<form:hidden path="act.taskName"/>
+<form:hidden path="act.taskDefKey"/>
+<form:hidden path="act.procInsId"/>
+<form:hidden path="act.procDefId"/>
+<form:hidden id="flag" path="act.flag"/>
+<sys:message content="${message}"/>
+<div class="wrapper wrapper-content">
+    <div class="ibox">
+        <div class="ibox-content">
+            <div class="col-sm-12">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>文件信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <tr>
+                        <td class="width-15 active" ><label class="pull-left">报告文件:</label></td>
+                        <td class="width-35" colspan="3">
+                            <div style="display: inline-block">
+                                <div id="addFile_attachment_report" style="display: none">
+                                    <div>
+                                        <span id="fileName_attachment_report" ></span>
+                                        <b><span id="baifenbi_attachment_report" ></span></b>
+                                    </div>
+                                    <div>
+                                        <div class="progress">
+                                            <div id="jindutiao_attachment_report" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <input id="attachment_report" type="file" name="attachment_report" multiple="multiple" style="display: none;" onChange="if(this.value)reportInsertTitle(this.value);"/>
+                                <a id="attachment_btn_report" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+                                <span id="attachment_title_report"></span>
+                            </div>
+                            <table id="workReportList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                <thead>
+                                <tr>
+                                    <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                </tr>
+                                </thead>
+                                <tbody id="file_attachment_report">
+                                <c:forEach items="${workReportList}" var="attachment" varStatus="status">
+                                    <tr>
+                                        <%--<td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${fns:abbr(attachment.attachmentName,30)}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        <td>${attachment.attachmentUser}</td>
+                                        <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+                                        <td>
+                                            <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                            </c:if>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="width-15 active"><label class="pull-left">依据性资料:</label></td>
+                        <td class="width-35" colspan="3">
+                            <div style="display: inline-block">
+                                <div id="addFile_attachment_basis" style="display: none">
+                                    <div>
+                                        <span id="fileName_attachment_basis" ></span>
+                                        <b><span id="baifenbi_attachment_basis" ></span></b>
+                                    </div>
+                                    <div>
+                                        <div class="progress">
+                                            <div id="jindutiao_attachment_basis" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <input id="attachment_basis" type="file" name="attachment_basis" multiple="multiple" style="display: none;" onChange="if(this.value)basisInsertTitle(this.value);"/>
+                                <a id="attachment_btn_basis" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+                                <span id="attachment_title_basis"></span>
+                            </div>
+                            <table id="workBasisInformationList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                <thead>
+                                <tr>
+                                    <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                </tr>
+                                </thead>
+                                <tbody id="file_attachment_basis">
+                                <c:forEach items="${workBasisInformationList}" var="attachment" varStatus="status">
+                                    <tr>
+                                       <%-- <td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${fns:abbr(attachment.attachmentName,30)}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        <td>${attachment.attachmentUser}</td>
+                                        <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                        <td>
+                                            <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                            </c:if>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="width-15 active"><label class="pull-left">过程控制资料:</label></td>
+                        <td class="width-35" colspan="3">
+                            <div style="display: inline-block">
+                                <div id="addFile_attachment_remote" style="display: none">
+                                    <div>
+                                        <span id="fileName_attachment_remote" ></span>
+                                        <b><span id="baifenbi_attachment_remote" ></span></b>
+                                    </div>
+                                    <div>
+                                        <div class="progress">
+                                            <div id="jindutiao_attachment_remote" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <input id="attachment_remote" type="file" name="attachment_remote" multiple="multiple" style="display: none;" onChange="if(this.value)remoteInsertTitle(this.value);"/>
+                                <a id="attachment_btn_remote" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+                                <span id="attachment_title_remote"></span>
+                            </div>
+                            <table id="workRemoteControlList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                <thead>
+                                <tr>
+                                    <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                </tr>
+                                </thead>
+                                <tbody id="file_attachment_remote">
+                                <c:forEach items="${workRemoteControlList}" var="attachment" varStatus="status">
+                                    <tr>
+                                        <%--<td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${fns:abbr(attachment.attachmentName,30)}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        <td>${attachment.attachmentUser}</td>
+                                        <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                        <td>
+                                            <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                            </c:if>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="width-15 active"><label class="pull-left">汇总表:</label></td>
+                        <td class="width-35" colspan="3">
+                            <div style="display: inline-block">
+                                <div id="addFile_attachment_summary" style="display: none">
+                                    <div>
+                                        <span id="fileName_attachment_summary" ></span>
+                                        <b><span id="baifenbi_attachment_summary" ></span></b>
+                                    </div>
+                                    <div>
+                                        <div class="progress">
+                                            <div id="jindutiao_attachment_summary" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <input id="attachment_summary" type="file" name="attachment_summary" multiple="multiple" style="display: none;" onChange="if(this.value)summaryInsertTitle(this.value);"/>
+                                <a id="attachment_btn_summary" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+                                <span id="attachment_title_summary"></span>
+                            </div>
+                            <table id="workSummaryList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                <thead>
+                                <tr>
+                                    <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                </tr>
+                                </thead>
+                                <tbody id="file_attachment_summary">
+                                <c:forEach items="${workSummaryList}" var="attachment" varStatus="status">
+                                    <tr>
+                                       <%-- <td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${fns:abbr(attachment.attachmentName,30)}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        <td>${attachment.attachmentUser}</td>
+                                        <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                        <td>
+                                            <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                            </c:if>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="width-15 active"><label class="pull-left">其他资料:</label></td>
+                        <td class="width-35" colspan="3">
+                            <div style="display: inline-block">
+                                <div id="addFile_attachment_other" style="display: none">
+                                    <div>
+                                        <span id="fileName_attachment_other" ></span>
+                                        <b><span id="baifenbi_attachment_other" ></span></b>
+                                    </div>
+                                    <div>
+                                        <div class="progress">
+                                            <div id="jindutiao_attachment_other" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <input id="attachment_other" type="file" name="attachment_other" multiple="multiple" style="display: none;" onChange="if(this.value)otherInsertTitle(this.value);"/>
+                                <a id="attachment_btn_other" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+                                <span id="attachment_title_other"></span>
+                            </div>
+                            <table id="workOtherList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                <thead>
+                                <tr>
+                                   <%-- <td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                </tr>
+                                </thead>
+                                <tbody id="file_attachment_other">
+                                <c:forEach items="${workOtherList}" var="attachment" varStatus="status">
+                                    <tr>
+                                        <%--<td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${fns:abbr(attachment.attachmentName,30)}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        <td>${attachment.attachmentUser}</td>
+                                        <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                        <td>
+                                            <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                            </c:if>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+                        </td>
+                    </tr>
+                </div>
+            </div>
+
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>价格信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">送审价(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.sendPrice" id="sendPrice" htmlEscape="false"    class="form-control  number" onChange="if(this.value)sendPriceValue(this.value);"/>
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">审定价(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.approvedPrice" id="approvedPrice" htmlEscape="false"    class="form-control  number" onChange="if(this.value)approvedPriceValue(this.value);"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">合同价(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.contractPrice" id="contractPrice" htmlEscape="false"  class="form-control  number"/>
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">核增核减额(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.addEditAmount" id="addEditAmount" htmlEscape="false"   readonly="true"   class="form-control  number"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">核增核减率(%):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.addEditRate" id="addEditRate" htmlEscape="false"  readonly="true"   class="form-control "/>
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">咨询标的额(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.consultAmount" id="consultAmount"  htmlEscape="false"  readonly="true"  class="form-control  number"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">其中土建造价(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.civilEngineeringCost" id="civilEngineeringCost" htmlEscape="false"    class="form-control  number"/>
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">其中安装造价(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.installationCost" id="installationCost" htmlEscape="false"    class="form-control  number"/>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>合同信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <c:choose>
+                            <c:when test="${workEngineeringProject.isExt eq 1}">
+                                <tr>
+                                    <td class="width-15 active"><label class="pull-right">合同名称:<font color="red">*</font></label></td>
+                                    <td class="width-35" colspan="3">
+                                            ${workEngineeringProject.contractInfoName}
+                                    </td>
+                                </tr>
+                            </c:when>
+                            <c:otherwise>
+                                <tr>
+                                    <td class="width-15 active"><label class="pull-right">合同名称:<font color="red">*</font></label></td>
+                                    <td class="width-35" colspan="3">
+                                            ${workEngineeringProject.contractId.name}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="width-15 active"><label class="pull-right">合同编号:<font color="red">*</font></label></td>
+                                    <td class="width-35">
+                                            ${workEngineeringProject.contractId.contractNum}
+                                    </td>
+                                </tr>
+                            </c:otherwise>
+                        </c:choose>
+
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>项目信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active">项目名称:</td>
+                            <td class="width-35" colspan="3">
+                                <span title="${workEngineeringProject.projectId.name}">${fns:abbr(workEngineeringProject.projectId.name,30)}</span>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">项目编号:</td>
+                            <td class="width-35">
+                                <span title="${workEngineeringProject.projectId.number}">${fns:abbr(workEngineeringProject.projectId.number,30)}</span>
+                            </td>
+                            <td class="width-15 active">业务类型:</td>
+                            <td class="width-35">
+                                    ${fns:getMainDictLabel(workEngineeringProject.businessType, 'business_type', '')}
+                            </td>
+
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">预送审金额:</td>
+                            <td class="width-35" colspan="3">
+                                    ${workEngineeringProject.preTrialAmount}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>客户信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active"> 客户单位:<font color="red">*</font></td>
+                            <td class="width-35" colspan="3">
+                                <span title="${workEngineeringProject.workClientInfo.name}">${fns:abbr(workEngineeringProject.workClientInfo.name,30)}</span>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">联系人姓名:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.name}
+                            </td>
+                            <td class="width-15 active">职务:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.position}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"> 联系方式:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.linkPhone}
+                            </td>
+                            <td class="width-15 active">E-mail:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.email}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>人员安排</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active">主办公司/部门</br>项目负责人:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.hostOfficeMasterName}
+                            </td>
+                            <td class="width-15 active">协办公司/部门</br>项目负责人:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.jointlyOfficeMasterName}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">主办公司/部门</br>项目组成员:</td>
+                            <td class="width-35" colspan="3">
+                                    ${workEngineeringProject.hostOfficeMemberNames}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">协办公司/部门</br>项目组成员:</td>
+                            <td class="width-35" colspan="3">
+                                    ${workEngineeringProject.jointlyOfficeMemberNames}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+                </form:form>
+            </div>
+        </div>
+    </div>
+</div>
+</div>
+</body>
+</html>

+ 269 - 0
src/main/webapp/webpage/modules/workprojectManagement/workAttachmentListView.jsp

@@ -0,0 +1,269 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>工程项目信息管理</title>
+    <meta name="decorator" content="default"/>
+    <script type="text/javascript">
+        $(function(){
+            $("img").not(".upload_ico").each(function () {
+                var num = 1 ;
+                $(this).click(function () {
+                    var flag = num%2;
+                    if(flag == 1){
+                        $(this).css("width","90%");
+                        $(this).css("height","90%");
+                        num++;
+                    }else if(flag ==0){
+                        $(this).css("width","50px");
+                        $(this).css("height","50px");
+                        num++;
+                    }
+                })
+            });
+        })
+        $(document).ready(function() {
+            var oneSize = $(".oneTab").size();
+            for(var i = 0;i < oneSize;i++){
+                var hei = $(".oneTab:eq("+i+")").parent().height()-20;
+                $(".oneTab:eq("+i+")").css("height",hei)
+                    .css("vertical-align","middle")
+                    .css("line-height",hei+"px")
+            }
+        });
+    </script>
+</head>
+<body class="hideScroll">
+<div class="wrapper wrapper-content">
+    <div class="ibox">
+        <div class="ibox-content">
+            <div class="col-sm-12">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>文件信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-35" colspan="4">
+                                <label class="pull-left">报告文件:</label>
+                                <table id="workReportList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                    <tr>
+                                       <%-- <td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                    </tr>
+                                    <c:forEach items="${workReportList}" var="attachment" varStatus="status">
+                                    <tr>
+                                            <%--<td>${status.index + 1}</td>--%>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')">${attachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                        </c:choose>
+
+                                        <td>${attachment.attachmentUser}</td>
+                                            <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                            <td>
+                                                <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                                <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                    <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                                </c:if>
+                                            </td>
+                                    </tr>
+                                    </c:forEach>
+                                </table>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-35" colspan="4">
+                                <label class="pull-left">依据性资料:</label>
+                                <table id="workBasisInformationList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                    <tr>
+                                        <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                    </tr>
+                                    <c:forEach items="${workBasisInformationList}" var="attachment" varStatus="status">
+                                    <tr>
+                                           <%-- <td>${status.index + 1}</td>--%>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')">${attachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                            <td>${attachment.attachmentUser}</td>
+                                            <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                            <td>
+                                                <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                                <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                    <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                                </c:if>
+                                            </td>
+                                    </tr>
+                                    </c:forEach>
+                                </table>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-35" colspan="4">
+                                <label class="pull-left">过程控制资料:</label>
+                                <table id="workRemoteControlList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                    <tr>
+                                       <%-- <td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                    </tr>
+                                        <c:forEach items="${workRemoteControlList}" var="attachment" varStatus="status">
+                                    <tr>
+                                    <td><%--${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')">${attachment.attachmentName}</a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                            <td>${attachment.attachmentUser}</td>
+                                            <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                            <td>
+                                                <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                                <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                    <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                                </c:if>
+                                           </td>
+                                    </tr>
+                                        </c:forEach>
+                                </table>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-35" colspan="4">
+                                <label class="pull-left">汇总表:</label>
+                                <table id="workSummaryList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                    <tr>
+                                        <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                    </tr>
+                                    <c:forEach items="${workSummaryList}" var="attachment" varStatus="status">
+                                    <tr>
+                                           <%-- <td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')">${attachment.attachmentName}</a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                            <td>${attachment.attachmentUser}</td>
+                                            <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                            <td>
+                                                <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                                 <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                     <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                                 </c:if>
+                                            </td>
+                                    </tr>
+                                    </c:forEach>
+                                </table>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-35" colspan="4">
+                                <label class="pull-left">其他资料:</label>
+                                <table id="workOtherList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                    <tr>
+                                        <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                    </tr>
+                                    <c:forEach items="${workOtherList}" var="attachment" varStatus="status">
+                                    <tr>
+                                           <%-- <td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')">${attachment.attachmentName}</a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                            <td>${attachment.attachmentUser}</td>
+                                            <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                            <td>
+                                                <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                                <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                    <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                                </c:if>
+                                            </td>
+                                    </tr>
+                                    </c:forEach>
+                                </table>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+</html>

+ 141 - 0
src/main/webapp/webpage/modules/workprojectManagement/workProjectManagementHistoricList.jsp

@@ -0,0 +1,141 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>已审核项目登记管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        $(document).ready(function() {
+            laydate.render({
+                elem: '#beginDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+        });
+	</script>
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+		<div class="ibox-title" style="height: 70px;">
+			<h5>
+				<ul class="nav nav-tabs">
+					<li ><a href="${ctx}/projectManagement/projectManagement/list">工程项目信息列表</a></li>
+					<li><a href="${ctx}/projectManagement/projectManagement/workProjectManagementTodoList">待办任务</a></li>
+					<li class="active"><a href="${ctx}/projectManagement/projectManagement/workProjectManagementHistoricList">已办任务</a></li>
+				</ul>
+			</h5>
+			<%--<div class="ibox-tools">
+				<a class="collapse-link">
+					<i class="fa fa-chevron-up"></i>
+				</a>
+				<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+					<i class="fa fa-wrench"></i>
+				</a>
+
+			</div>--%>
+		</div>
+
+		<div class="ibox-content">
+			<sys:message content="${message}"/>
+			<!--查询条件-->
+			<div class="row">
+				<div class="col-sm-12">
+					<form:form id="searchForm" modelAttribute="act" action="${ctx}/projectManagement/projectManagement/workProjectManagementHistoricList" method="get" class="form-inline">
+						<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+						<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+						<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+						<div class="form-group">
+							<label>创建时间:</label>
+							<input id="beginDate"  name="beginDate"  type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.beginDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+							 -- 
+							<input id="endDate" name="endDate" type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.endDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+						</div>
+					</form:form>
+					<br/>
+				</div>
+			</div>
+			<!-- 工具栏 -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="pull-left">
+						<button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+					</div>
+					<div class="pull-right">
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+					</div>
+				</div>
+			</div>
+			<!-- 表格 -->
+			<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+				<thead>
+				<tr>
+                    <th style="text-align: center;width: 10%">流程发起人</th>
+					<th style="text-align: center;width: 10%">流程名称</th>
+					<th style="text-align: center;width: 10%">流程版本</th>
+					<th style="text-align: center;width: 15%">项目名称</th>
+					<th style="text-align: center;width: 10%">项目编号</th>
+					<th style="text-align: center;width: 10%">项目类型</th>
+					<th style="text-align: center;width: 15%">备注信息</th>
+					<th style="text-align: center;width: 15%">创建时间</th>
+					<%--<th>操作</th>--%>
+				</tr>
+				</thead>
+				<tbody>
+				<c:choose>
+				<c:when test="${not empty list}">
+				<c:forEach items="${list}" var="workengineeringproject">
+					<c:set var="task" value="${workengineeringproject.act.task}" />
+					<c:set var="vars" value="${workengineeringproject.act.vars}" />
+					<c:set var="procDef" value="${workengineeringproject.act.procDef}" />
+					<c:set var="status" value="${workengineeringproject.act.status}" />
+					<tr>
+						<td>${workengineeringproject.act.vars.map.applyUserId}</td>
+						<td>${procDef.name}</td>
+						<td><b title='流程版本号'>V: ${procDef.version}</b></td>
+						<td>
+							<a  href="javascript:void(0)" onclick="openDialogView('查看工程项目信息', '${ctx}/workengineeringproject/workEngineeringProject/form?id=${workengineeringproject.id}&name=view','80%','80%')">
+								<span title="${workengineeringproject.projectId.name}">${fns:abbr(workengineeringproject.projectId.name,30)}</span>
+							</a>
+						</td>
+						<td>
+							<a  href="javascript:void(0)" onclick="openDialogView('查看工程项目信息', '${ctx}/workengineeringproject/workEngineeringProject/form?id=${workengineeringproject.id}&name=view','80%','80%')">
+								<span title="${workengineeringproject.projectId.name}">${fns:abbr(workengineeringproject.projectId.number,30)}</span>
+							</a>
+						</td>
+						<td>${fns:getMainDictLabel(workengineeringproject.businessType, 'business_type', '')}</td>
+						<td>${workengineeringproject.remarks}</td>
+						<td><fmt:formatDate value="${workengineeringproject.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+						<%--<td>
+							</td>--%>
+					</tr>
+				</c:forEach>
+				</c:when>
+					<c:otherwise>
+						<tr>
+							<td colspan="15" align="center">
+								暂无数据
+							</td>
+						</tr>
+					</c:otherwise>
+				</c:choose>
+				</tbody>
+			</table>
+			<!-- 分页代码 -->
+			<table:page page="${page}"></table:page>
+			<br/>
+			<br/>
+		</div>
+		<td>${act.vars.map.applyUserId}</td>
+	</div>
+</div>
+</body>
+</html>

+ 330 - 0
src/main/webapp/webpage/modules/workprojectManagement/workProjectManagementList.jsp

@@ -0,0 +1,330 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>工程项目信息管理</title>
+	<meta name="decorator" content="default"/>
+	<%@include file="/webpage/include/treetable.jsp" %>
+	<script type="text/javascript">
+		$(document).ready(function() {
+            $("#treeTable").treeTable({expandLevel : 1,column:1}).show();
+		});
+
+        function openDialogre(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['通过','驳回','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                         top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                    return false;
+                },
+                btn3: function(index){
+                }
+            });
+        }
+        function openDialogres(title,url,width,height,target) {
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url,
+                btn: ['重新申请', '撤回','关闭'],
+                btn1: function (index, layero) {
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if (target) {
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    } else {
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if (iframeWin.contentWindow.doSubmit(3)) {
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function () {
+                            top.layer.close(index)
+                        }, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2: function (index, layero) {
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if (target) {
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    } else {
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if (iframeWin.contentWindow.doSubmit(4)) {
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function () {
+                            top.layer.close(index)
+                        }, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                    return false;
+                },
+                btn3: function(index){
+                }
+            });
+        }
+	</script>
+</head>
+<body class="gray-bg">
+	<div class="wrapper wrapper-content">
+	<div class="ibox">
+	<div class="ibox-title">
+		<h5>
+			<ul class="nav nav-tabs">
+				<li class="active"><a href="${ctx}/projectManagement/projectManagement/list">工程项目信息列表</a></li>
+				<li><a href="${ctx}/projectManagement/projectManagement/workProjectManagementTodoList">待办任务</a></li>
+				<li><a href="${ctx}/projectManagement/projectManagement/workProjectManagementHistoricList">已办任务</a></li>
+			</ul>
+		</h5>
+	<%--	<div class="ibox-tools">
+			<a class="collapse-link">
+				<i class="fa fa-chevron-up"></i>
+			</a>
+			<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+				<i class="fa fa-wrench"></i>
+			</a>
+			<ul class="dropdown-menu dropdown-user">
+				<li><a href="javascript:void(0)">选项1</a>
+				</li>
+				<li><a href="javascript:void(0)">选项2</a>
+				</li>
+			</ul>
+			<a class="close-link">
+				<i class="fa fa-times"></i>
+			</a>
+		</div>--%>
+	</div>
+    
+    <div class="ibox-content">
+	<sys:message content="${message}"/>
+	
+	<!--查询条件-->
+	<div class="row">
+	<div class="col-sm-12">
+	<form:form id="searchForm" modelAttribute="workEngineeringProject" action="${ctx}/projectManagement/projectManagement/" method="post" class="form-inline">
+		<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+		<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+		<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+		<a href="#" id="moresee" class="fa fa-chevron-down" style="float: right;">更多</a>
+		<div class="form-group">
+			<span>报告号:</span>
+				<form:input path="reportNumber" htmlEscape="false" maxlength="255"  class=" form-control input-sm"/>
+			<span>项目名称:</span>
+				<form:input path="projectId.name" htmlEscape="false" maxlength="255"  class=" form-control input-sm"/>
+				<%--<sys:gridselect url="${ctx}/workengineeringproject/workEngineeringProject/selectprojectId" id="projectId" name="projectId"  value="${workEngineeringProject.projectId.id}"  title="选择项目外键id" labelName="projectId.projectName"
+					labelValue="${workEngineeringProject.projectId.projectName}" cssClass="form-control required" fieldLabels="项目id" fieldKeys="id" searchLabel="项目名称" searchKey="projectName" ></sys:gridselect>
+			--%>
+			<span>业务类型:</span>
+				<form:select path="businessType"  class="form-control m-b">
+					<form:option value="" label=""/>
+					<form:options items="${fns:getMainDictList('business_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+				</form:select>
+			<span>项目状态:</span>
+			<form:select path="status"  class="form-control m-b">
+				<form:option value="" label=""/>
+				<form:options items="${fns:getDictList('engineering_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+			</form:select>
+		 </div>	
+	</form:form>
+	<br/>
+	</div>
+	</div>
+	
+	<!-- 工具栏 -->
+	<div class="row">
+	<div class="col-sm-12">
+		<div class="pull-left">
+	       <button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+		
+			</div>
+		<div class="pull-right">
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+		</div>
+	</div>
+	</div>
+	
+	<!-- 表格 -->
+	<table id="treeTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+		<thead>
+			<tr>
+				<%--<th> 序号</th>--%>
+				<th style="text-align: center;width: 10%" class="sort-column projectId.number">项目编号</th>
+				<%--<th  class="sort-column totalProjectName">总项目名称</th>--%>
+				<th style="text-align: center;width: 10%" class="sort-column reportNumber">报告号</th>
+				<th style="text-align: center;width: 15%" class="sort-column projectId.name">项目名称</th>
+				<th style="text-align: center;width: 10%" class="sort-column businessType">业务类型</th>
+				<th style="text-align: center;width: 13%" class="sort-column client.name">客户单位</th>
+				<th style="text-align: center;width: 10%">项目负责人</th>
+				<th style="text-align: center;width: 10%" class="sort-column createDate">创建时间</th>
+				<th style="text-align: center;width: 8%" class="sort-column status">项目状态</th>
+				<%--<th  class="sort-column status">三级校审</th>--%>
+				<th style="text-align: center;width: 7%" >流程追踪</th>
+				<th style="text-align: center;width: 7%">附件管理</th>
+			</tr>
+		</thead>
+		<tbody>
+		<c:choose>
+		<c:when test="${not empty page.list}">
+		<c:forEach items="${page.list}" var="workEngineeringProject" varStatus="status">
+			<tr id="${workEngineeringProject.id}" pId="${workEngineeringProject.totalProjectId ne '1'?workEngineeringProject.totalProjectId:'0'}">
+				<%--<td> ${status.index+1 }</td>--%>
+				<td>
+					<span title="${workEngineeringProject.projectId.number}">${fns:abbr(workEngineeringProject.projectId.number,40)}</span>
+				</td>
+				<%--<td>--%>
+					<%--<a  href="javascript:void(0)" onclick="openDialogView('查看工程项目信息', '${ctx}/workengineeringproject/workEngineeringProject/form?id=${workEngineeringProject.id}&name=view','80%','80%')">--%>
+						<%--<span title="${workEngineeringProject.totalProjectName}">${fns:abbr(workEngineeringProject.totalProjectName,30)}</span>--%>
+					<%--</a>--%>
+				<%--</td>--%>
+					<td>
+						<a  href="javascript:void(0)" onclick="openDialogView('查看工程项目信息', '${ctx}/workengineeringproject/workEngineeringProject/form?id=${workEngineeringProject.id}&name=view','80%','80%')">
+							<span title="${workEngineeringProject.projectId.name}">${fns:abbr(workEngineeringProject.projectId.name,30)}</span>
+						</a>
+					</td>
+				<td>
+					<span title="${workEngineeringProject.reportNumber}">${fns:abbr(workEngineeringProject.reportNumber,30)}</span>
+				</td>
+
+				<td>
+					${fns:getMainDictLabel(workEngineeringProject.businessType, 'business_type', '')}
+				</td>
+				<td>
+					<a  href="javascript:void(0)" onclick="openDialogView('查看客户管理', '${ctx}/workclientinfo/workClientInfo/detail?id=${workEngineeringProject.workClientInfo.id}','80%','80%')">
+						<span title="${workEngineeringProject.workClientInfo.name}">${fns:abbr(workEngineeringProject.workClientInfo.name,30)}</span>
+					</a>
+				</td>
+				<td>
+						${fns:abbr(workEngineeringProject.hostOfficeMasterName,30)}
+				</td>
+				<td>
+					<fmt:formatDate value="${workEngineeringProject.createDate}" pattern="yyyy-MM-dd"/>
+				</td>
+				<td>
+					${fns:getDictLabel(workEngineeringProject.status, 'engineering_type', '')}
+				</td>
+				<%--<td>
+					<c:choose>
+						<c:when test="${workEngineeringProject.status eq '4' && workEngineeringProject.proofreadStatus ne '5'}">
+							<c:choose>
+								<c:when test="${empty workEngineeringProject.proofreadStatus && workEngineeringProject.createBy.id eq fns:getUser().id}">
+									<a href="javascript:void(0)" onclick="openDialog('三级校审', '${ctx}/projectManagement/projectManagement/startThreeGradeExamination?id=${workEngineeringProject.id}&name=1','80%','80%')" class="btn btn-info btn-xs" > 三级校审</a>
+								</c:when>
+								<c:when test="${workEngineeringProject.proofreadStatus eq '2' && fn:containsIgnoreCase(workEngineeringProject.proofreadMaster,fns:getUser().id)}">
+									<a href="javascript:void(0)" onclick="openDialogre('三级校审', '${ctx}/projectManagement/projectManagement/startThreeGradeExamination?id=${workEngineeringProject.id}&name=2','80%','80%')" class="btn btn-info btn-xs" > 三级校审</a>
+								</c:when>
+								<c:when test="${workEngineeringProject.proofreadStatus eq '2' &&  not empty workEngineeringProject.proofreadTotal && workEngineeringProject.proofreadTotal eq name}">
+									<a href="javascript:void(0)" onclick="openDialogre('三级校审', '${ctx}/projectManagement/projectManagement/startThreeGradeExamination?id=${workEngineeringProject.id}&name=3','80%','80%')" class="btn btn-info btn-xs" > 三级校审</a>
+								</c:when>
+								<c:when test="${workEngineeringProject.proofreadStatus eq '2' &&  empty workEngineeringProject.proofreadTotal && empty workEngineeringProject.proofreadMaster && fns:getUser().id eq workEngineeringProject.createBy.id}">
+									<a href="javascript:void(0)" onclick="openDialogres('三级校审', '${ctx}/projectManagement/projectManagement/startThreeGradeExamination?id=${workEngineeringProject.id}&name=5','80%','80%')" class="btn btn-info btn-xs" > 三级校审</a>
+								</c:when>
+								<c:otherwise>
+									<a href="javascript:void(0)" onclick="openDialogView('三级校审', '${ctx}/projectManagement/projectManagement/startThreeGradeExamination?id=${workEngineeringProject.id}&name=4','80%','80%')" class="btn btn-info btn-xs" > 三级校审</a>
+								</c:otherwise>
+							</c:choose>
+						</c:when>
+						<c:otherwise>
+							<a href="javascript:void(0)" onclick="javascript:parent.layer.msg('当前状态不能进行三级校审!',{icon:2})" class="btn btn-default btn-xs">三级校审</a>
+						</c:otherwise>
+					</c:choose>
+				</td>--%>
+				<td>
+					<div style="text-align: center">
+					<c:choose>
+						<c:when test="${workEngineeringProject.proofreadStatus == 4 && workEngineeringProject.queryCon eq 'true'  && fns:getUser().id eq workEngineeringProject.createBy.id}">
+							<a href="javascript:void(0)" onclick="openDialogres('重新申请资格预审项目', '${ctx}/projectManagement/projectManagement/startThreeGradeExamination?id=${workEngineeringProject.id}&name=5','80%','80%')" class="btn btn-info btn-xs" > 重新申请</a>
+						</c:when>
+						<c:when test="${not empty workEngineeringProject.proofreadStatus}">
+							<a href="javascript:void(0)" onclick="openDialogView('流程追踪', '${ctx}/workengineeringproject/workEngineeringProject/getProcess?id=${workEngineeringProject.id}&name=2','80%','80%')" class="btn btn-info btn-xs" > 流程追踪</a>
+						</c:when>
+						<c:when test="${workEngineeringProject.status eq 4 && workEngineeringProject.createBy.id eq fns:getUser().id}">
+							<a href="javascript:void(0)" onclick="openDialog('三级校审', '${ctx}/projectManagement/projectManagement/startThreeGradeExamination?id=${workEngineeringProject.id}&name=5','80%','80%')" class="btn btn-info btn-xs" > 发起三级校审</a>
+						</c:when>
+						<c:otherwise>
+							<a href="javascript:void(0)" onclick="javascript:parent.layer.msg('三级校审流程未发起!',{icon:2})" class="btn btn-default btn-xs">流程追踪</a>
+						</c:otherwise>
+					</c:choose>
+					</div>
+				</td>
+				<td>
+					<div style="text-align: center">
+					<a href="javascript:void(0)" onclick="openDialogView('附件列表', '${ctx}/projectManagement/projectManagement/getAttachmentList?id=${workEngineeringProject.id}','80%','80%')" class="btn btn-info btn-xs" > 附件列表</a>
+					</div>
+				</td>
+			</tr>
+		</c:forEach>
+		</c:when>
+			<c:otherwise>
+				<tr>
+					<td colspan="15" align="center">
+						暂无数据
+					</td>
+				</tr>
+			</c:otherwise>
+		</c:choose>
+		</tbody>
+	</table>
+	
+		<!-- 分页代码 -->
+	<table:page page="${page}"></table:page>
+	<br/>
+	<br/>
+	</div>
+	</div>
+</div>
+</body>
+</html>

+ 222 - 0
src/main/webapp/webpage/modules/workprojectManagement/workProjectManagementTodoList.jsp

@@ -0,0 +1,222 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>待审核项目登记管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        $(document).ready(function() {
+            laydate.render({
+                elem: '#beginDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+                ,type: 'datetime'
+            });
+        });
+        function page(n,s){
+            location = '${ctx}/workengineeringproject/workengineeringproject/list/?pageNo='+n+'&pageSize='+s;
+        }
+        /**
+         * 签收任务
+         */
+        function claim(taskId) {
+            $.get('${ctx}/act/task/claim' ,{taskId: taskId}, function(data) {
+                if (data == 'true'){
+                    top.$.jBox.tip('签收完成');
+                    location = '${ctx}/workengineeringproject/workengineeringproject/workengineeringprojectTodoList/';
+                }else{
+                    top.$.jBox.tip('签收失败');
+                }
+            });
+        }
+
+        function openDialogre(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['同意','驳回','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                    return false;
+                },
+                btn3: function(index){
+                }
+            });
+
+        }
+	</script>
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+		<div class="ibox-title" style="height: 70px;">
+			<h5>
+				<ul class="nav nav-tabs">
+					<li ><a href="${ctx}/projectManagement/projectManagement/list">工程项目信息列表</a></li>
+					<li class="active"><a href="${ctx}/projectManagement/projectManagement/workProjectManagementTodoList">待办任务</a></li>
+					<li><a href="${ctx}/projectManagement/projectManagement/workProjectManagementHistoricList">已办任务</a></li>
+				</ul>
+			</h5>
+			<%--<div class="ibox-tools">
+				<a class="collapse-link">
+					<i class="fa fa-chevron-up"></i>
+				</a>
+				<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+					<i class="fa fa-wrench"></i>
+				</a>
+
+			</div>--%>
+		</div>
+
+		<div class="ibox-content">
+			<sys:message content="${message}"/>
+			<!--查询条件-->
+			<div class="row">
+				<div class="col-sm-12">
+					<form:form id="searchForm" modelAttribute="act" action="${ctx}/projectManagement/projectManagement/workProjectManagementTodoList" method="get" class="form-inline">
+						<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+						<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+						<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+						<div class="form-group">
+							<label>创建时间:</label>
+							<input id="beginDate"  name="beginDate"  type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.beginDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+							 -- 
+							<input id="endDate" name="endDate" type="text" readonly="readonly" maxlength="20" style="width:200px;" class="laydate-icondate form-control layer-date input-sm"
+								   value="<fmt:formatDate value="${act.endDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+						</div>
+					</form:form>
+					<br/>
+				</div>
+			</div>
+
+			<!-- 工具栏 -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="pull-left">
+						<button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+					</div>
+					<div class="pull-right">
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+					</div>
+				</div>
+			</div>
+			<!-- 表格 -->
+			<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+				<thead>
+				<tr>
+					<th style="text-align: center;width: 10%">流程发起人</th>
+					<th style="text-align: center;width: 10%">当前环节</th>
+					<th style="text-align: center;width: 10%">流程名称</th>
+					<th style="text-align: center;width: 10%">流程版本</th>
+					<th style="text-align: center;width: 10%">项目名称</th>
+					<th style="text-align: center;width: 10%">项目编号</th>
+					<th style="text-align: center;width: 8%">项目类型</th>
+					<th style="text-align: center;width: 10%">备注信息</th>
+					<th style="text-align: center;width: 14%">创建时间</th>
+					<th style="text-align: center;width: 8%">操作</th>
+				</tr>
+				</thead>
+				<tbody>
+				<c:choose>
+				<c:when test="${not empty list}">
+				<c:forEach items="${list}" var="workengineeringproject">
+					<c:set var="task" value="${workengineeringproject.act.task}" />
+					<c:set var="vars" value="${workengineeringproject.act.vars}" />
+					<c:set var="procDef" value="${workengineeringproject.act.procDef}" />
+					<c:set var="status" value="${workengineeringproject.act.status}" />
+					<tr>
+						<td>${workengineeringproject.act.vars.map.applyUserId}</td>
+						<td>
+							${task.name}
+						</td>
+						<td>${procDef.name}</td>
+						<td><b title='流程版本号'>V: ${procDef.version}</b></td>
+						<td>
+							<a  href="javascript:void(0)" onclick="openDialogView('查看工程项目信息', '${ctx}/workengineeringproject/workEngineeringProject/form?id=${workengineeringproject.id}&name=view','80%','80%')">
+								<span title="${workengineeringproject.projectId.name}">${fns:abbr(workengineeringproject.projectId.name,30)}</span>
+							</a>
+						</td>
+						<td>
+							<a  href="javascript:void(0)" onclick="openDialogView('查看工程项目信息', '${ctx}/workengineeringproject/workEngineeringProject/form?id=${workengineeringproject.id}&name=view','80%','80%')">
+								<span title="${workengineeringproject.projectId.name}">${fns:abbr(workengineeringproject.projectId.number,30)}</span>
+							</a>
+						</td>
+						<td>${fns:getMainDictLabel(workengineeringproject.businessType, 'business_type', '')}</td>
+						<td>${workengineeringproject.remarks}</td>
+						<td><fmt:formatDate value="${task.createTime}" type="both"/></td>
+						<td>
+							<div style="text-align: center">
+							<a href="javascript:void(0)" onclick="openDialogre('查看资格预审项目', '${ctx}/projectManagement/projectManagement/applyOnWorkProjectManagement?taskId=${task.id}&taskName=${fns:urlEncode(task.name)}&taskDefKey=${task.taskDefinitionKey}&procInsId=${task.processInstanceId}&procDefId=${task.processDefinitionId}&status=${status}','80%','80%','','同意','驳回')" class="btn btn-info btn-xs" > 任务办理</a>
+						<%--<c:if test="${empty task.assignee}">
+								<a href="javascript:claim('${task.id}');" class="btn btn-white btn-xs" >签收任务</a>
+							</c:if>
+							<c:if test="${not empty task.assignee}">
+								</c:if>--%>
+							</div>
+						</td>
+					</tr>
+				</c:forEach>
+				</c:when>
+					<c:otherwise>
+						<tr>
+							<td colspan="15" align="center">
+								暂无数据
+							</td>
+						</tr>
+					</c:otherwise>
+				</c:choose>
+				</tbody>
+			</table>
+			<!-- 分页代码 -->
+			<table:page page="${page}"></table:page>
+			<br/>
+			<br/>
+		</div>
+	</div>
+</div>
+</body>
+</html>

+ 828 - 0
src/main/webapp/webpage/modules/workprojectManagement/workThreeExamination.jsp

@@ -0,0 +1,828 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>工程项目信息管理</title>
+    <meta name="decorator" content="default"/>
+    <script type="text/javascript">
+        $(function(){
+            $("img").not(".upload_ico").each(function () {
+                var num = 1 ;
+                $(this).click(function () {
+                    var flag = num%2;
+                    if(flag == 1){
+                        $(this).css("width","90%");
+                        $(this).css("height","90%");
+                        num++;
+                    }else if(flag ==0){
+                        $(this).css("width","50px");
+                        $(this).css("height","50px");
+                        num++;
+                    }
+                })
+            });
+        })
+        var validateForm;
+        function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                if(obj == 1) {
+                    $("#flag").val("1");
+                }else if(obj == 2){
+                    $("#flag").val("2");
+                }else if(obj == 3){
+                    $("#flag").val("1");
+                }else if(obj == 4){
+                    $("#flag").val("2");
+                }
+                $("#plan").val(obj);
+                $("#name").val("allocation");
+                $("#inputForm").submit();
+                return true;
+            }
+            return false;
+        }
+        $(document).ready(function() {
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+            laydate.render({
+                elem: '#workStartDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            laydate.render({
+                elem: '#workEndDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            $("#attachment_btn_report").click(function () {
+                $("#attachment_report").click();
+            });
+            $("#attachment_btn_basis").click(function () {
+                $("#attachment_basis").click();
+            });
+            $("#attachment_btn_remote").click(function () {
+                $("#attachment_remote").click();
+            });
+            $("#attachment_btn_summary").click(function () {
+                $("#attachment_summary").click();
+            });
+            $("#attachment_btn_other").click(function () {
+                $("#attachment_other").click();
+            });
+            var oneSize = $(".oneTab").size();
+            for(var i = 0;i < oneSize;i++){
+                var hei = $(".oneTab:eq("+i+")").parent().height()-20;
+                $(".oneTab:eq("+i+")").css("height",hei)
+                    .css("vertical-align","middle")
+                    .css("line-height",hei+"px")
+            }
+        });
+
+        /* function reportInsertTitle(tValue){
+             $("#attachment_title_report_div").remove();
+             var t1 = tValue.lastIndexOf("\\");
+             if(t1 >= 0 && t1 < tValue.length){
+                 $("#attachment_title_report").text(tValue.substring(t1+1));
+                 $("#attachment_title_report").after("<div id='attachment_title_report_div' style='float: right'>&nbsp;&nbsp;<span id='attachment_delete' onclick='attachment_report_del()'style='color: red ; cursor: pointer;'>x</span></div>");
+             }
+         }*/
+        function reportInsertTitle(tValue){
+            var list = "${workReportList}";
+            var size = (list.split('url')).length-1;
+            var files = $("#attachment_report")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "39";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectReport/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment_report";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        };
+        function basisInsertTitle(tValue){
+            var list = "${workBasisInformationList}";
+            var size = (list.split('url')).length-1;
+            $("#attachment_title_basis_div").remove();
+            var files = $("#attachment_basis")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "40";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectReport/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment_basis";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        }
+        function remoteInsertTitle(tValue){
+            var list = "${workRemoteControlList}";
+            var size = (list.split('url')).length-1;
+            $("#attachment_title_remote_div").remove();
+            var files = $("#attachment_remote")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "41";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectReport/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment_remote";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        }
+        function summaryInsertTitle(tValue){
+            var list = "${workSummaryList}";
+            var size = (list.split('url')).length-1;
+            $("#attachment_title_summary_div").remove();
+            var files = $("#attachment_summary")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "42";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectReport/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment_summary";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        }
+        function otherInsertTitle(tValue){
+            var list = "${workOtherList}";
+            var size = (list.split('url')).length-1;
+            $("#attachment_title_other_div").remove();
+            var files = $("#attachment_other")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "43";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectReport/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment_other";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        }
+        function attachment_report_del() {
+            $("#attachment_report").val("");
+            $("#attachment_title_report").text("");
+            $("#attachment_report_delete").remove();
+            $("#attachment_title_report_div").remove();
+        }
+        function attachment_basis_del() {
+            $("#attachment_basis").val("");
+            $("#attachment_title_basis").text("");
+            $("#attachment_basis_delete").remove();
+            $("#attachment_title_basis_div").remove();
+        }
+        function attachment_remote_del() {
+            $("#attachment_remote").val("");
+            $("#attachment_title_remote").text("");
+            $("#attachment_remote_delete").remove();
+            $("#attachment_title_remote_div").remove();
+        }
+        function attachment_summary_del() {
+            $("#attachment_summary").val("");
+            $("#attachment_title_summary").text("");
+            $("#attachment_summary_delete").remove();
+            $("#attachment_title_summary_div").remove();
+        }
+        function attachment_other_del() {
+            $("#attachment_other").val("");
+            $("#attachment_title_other").text("");
+            $("#attachment_other_delete").remove();
+            $("#attachment_title_other_div").remove();
+        }
+        function sendPriceValue(obj) {
+            var sendPrice = $("#sendPrice").val();
+            var approvedPrice = $("#approvedPrice").val();
+            if (sendPrice>0 && approvedPrice>0){
+                var addEditAmount = 0;
+                var addEditRate = 0;
+                if(parseFloat(sendPrice)>parseFloat(approvedPrice)){
+                    addEditAmount = sendPrice - approvedPrice;
+                    addEditRate = ((approvedPrice / sendPrice)* 100 ).toFixed(2)+ "%";
+                }else {
+                    addEditAmount = approvedPrice - sendPrice;
+                    addEditRate = ((sendPrice / approvedPrice)* 100 ).toFixed(2)+ "%";
+                }
+                $("#addEditAmount").val(addEditAmount);
+                $("#addEditRate").val(addEditRate);
+            }
+
+        }
+        function approvedPriceValue(obj) {
+            var sendPrice = $("#sendPrice").val();
+            var approvedPrice = $("#approvedPrice").val();
+            if (sendPrice>0 && approvedPrice>0){
+                var addEditAmount = 0;
+                var addEditRate = 0;
+                if(parseFloat(sendPrice)>parseFloat(approvedPrice)){
+                    addEditAmount = sendPrice - approvedPrice;
+                }else {
+                    addEditAmount = approvedPrice - sendPrice;
+                }
+                addEditRate = ((sendPrice / approvedPrice)* 100 ).toFixed(2) + "%";
+                $("#addEditAmount").val(addEditAmount);
+                $("#addEditRate").val(addEditRate);
+                $("#consultAmount").val(approvedPrice);
+            }
+        }
+    </script>
+</head>
+<body class="hideScroll">
+<form:form id="inputForm" modelAttribute="workEngineeringProject" action="${ctx}/projectManagement/projectManagement/saveAudit" method="post" class="form-horizontal">
+<form:hidden path="id"/>
+<form:hidden path="workEngineeringPrice.id"/>
+<form:hidden path="name"/>
+<form:hidden path="plan"/>
+<form:hidden path="act.taskId"/>
+<form:hidden path="act.taskName"/>
+<form:hidden path="act.taskDefKey"/>
+<form:hidden path="act.procInsId"/>
+<form:hidden path="act.procDefId"/>
+<form:hidden id="flag" path="act.flag"/>
+<sys:message content="${message}"/>
+<div class="wrapper wrapper-content">
+    <div class="ibox">
+        <div class="ibox-content">
+            <div class="col-sm-12">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>文件信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <tr>
+                        <td class="width-15 active" ><label class="pull-left">报告文件:</label></td>
+                        <td class="width-35" colspan="3">
+                            <div style="display: inline-block">
+                                <div id="addFile_attachment_report" style="display: none">
+                                    <div>
+                                        <span id="fileName_attachment_report" ></span>
+                                        <b><span id="baifenbi_attachment_report" ></span></b>
+                                    </div>
+                                    <div>
+                                        <div class="progress">
+                                            <div id="jindutiao_attachment_report" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <input id="attachment_report" type="file" name="attachment_report" multiple="multiple" style="display: none;" onChange="if(this.value)reportInsertTitle(this.value);"/>
+                                <a id="attachment_btn_report" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+                                <span id="attachment_title_report"></span>
+                            </div>
+                            <table id="workReportList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                <thead>
+                                <tr>
+                                    <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                </tr>
+                                </thead>
+                                <tbody id="file_attachment_report">
+                                <c:forEach items="${workReportList}" var="attachment" varStatus="status">
+                                    <tr>
+                                        <%--<td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${fns:abbr(attachment.attachmentName,30)}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        <td>${attachment.attachmentUser}</td>
+                                        <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+                                        <td>
+                                            <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                            </c:if>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="width-15 active"><label class="pull-left">依据性资料:</label></td>
+                        <td class="width-35" colspan="3">
+                            <div style="display: inline-block">
+                                <div id="addFile_attachment_basis" style="display: none">
+                                    <div>
+                                        <span id="fileName_attachment_basis" ></span>
+                                        <b><span id="baifenbi_attachment_basis" ></span></b>
+                                    </div>
+                                    <div>
+                                        <div class="progress">
+                                            <div id="jindutiao_attachment_basis" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <input id="attachment_basis" type="file" name="attachment_basis" multiple="multiple" style="display: none;" onChange="if(this.value)basisInsertTitle(this.value);"/>
+                                <a id="attachment_btn_basis" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+                                <span id="attachment_title_basis"></span>
+                            </div>
+                            <table id="workBasisInformationList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                <thead>
+                                <tr>
+                                    <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                </tr>
+                                </thead>
+                                <tbody id="file_attachment_basis">
+                                <c:forEach items="${workBasisInformationList}" var="attachment" varStatus="status">
+                                    <tr>
+                                        <%--<td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${fns:abbr(attachment.attachmentName,30)}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        <td>${attachment.attachmentUser}</td>
+                                        <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                        <td>
+                                            <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                             <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                 <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                             </c:if>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="width-15 active"><label class="pull-left">过程控制资料:</label></td>
+                        <td class="width-35" colspan="3">
+                            <div style="display: inline-block">
+                                <div id="addFile_attachment_remote" style="display: none">
+                                    <div>
+                                        <span id="fileName_attachment_remote" ></span>
+                                        <b><span id="baifenbi_attachment_remote" ></span></b>
+                                    </div>
+                                    <div>
+                                        <div class="progress">
+                                            <div id="jindutiao_attachment_remote" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <input id="attachment_remote" type="file" name="attachment_remote" multiple="multiple" style="display: none;" onChange="if(this.value)remoteInsertTitle(this.value);"/>
+                                <a id="attachment_btn_remote" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+                                <span id="attachment_title_remote"></span>
+                            </div>
+                            <table id="workRemoteControlList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                <thead>
+                                <tr>
+                                  <%--  <td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                </tr>
+                                </thead>
+                                <tbody id="file_attachment_remote">
+                                <c:forEach items="${workRemoteControlList}" var="attachment" varStatus="status">
+                                    <tr>
+                                       <%-- <td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${fns:abbr(attachment.attachmentName,30)}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        <td>${attachment.attachmentUser}</td>
+                                        <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                        <td>
+                                            <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                               <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                   <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                               </c:if>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="width-15 active"><label class="pull-left">汇总表:</label></td>
+                        <td class="width-35" colspan="3">
+                            <div style="display: inline-block">
+                                <div id="addFile_attachment_summary" style="display: none">
+                                    <div>
+                                        <span id="fileName_attachment_summary" ></span>
+                                        <b><span id="baifenbi_attachment_summary" ></span></b>
+                                    </div>
+                                    <div>
+                                        <div class="progress">
+                                            <div id="jindutiao_attachment_summary" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <input id="attachment_summary" type="file" name="attachment_summary" multiple="multiple" style="display: none;" onChange="if(this.value)summaryInsertTitle(this.value);"/>
+                                <a id="attachment_btn_summary" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+                                <span id="attachment_title_summary"></span>
+                            </div>
+                            <table id="workSummaryList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                <thead>
+                                <tr>
+                                  <%--  <td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                </tr>
+                                </thead>
+                                <tbody id="file_attachment_summary">
+                                <c:forEach items="${workSummaryList}" var="attachment" varStatus="status">
+                                    <tr>
+                                       <%-- <td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${fns:abbr(attachment.attachmentName,30)}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        <td>${attachment.attachmentUser}</td>
+                                        <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                        <td>
+                                            <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                            </c:if>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="width-15 active"><label class="pull-left">其他资料:</label></td>
+                        <td class="width-35" colspan="3">
+                            <div style="display: inline-block">
+                                <div id="addFile_attachment_other" style="display: none">
+                                    <div>
+                                        <span id="fileName_attachment_other" ></span>
+                                        <b><span id="baifenbi_attachment_other" ></span></b>
+                                    </div>
+                                    <div>
+                                        <div class="progress">
+                                            <div id="jindutiao_attachment_other" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <input id="attachment_other" type="file" name="attachment_other" multiple="multiple" style="display: none;" onChange="if(this.value)otherInsertTitle(this.value);"/>
+                                <a id="attachment_btn_other" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+                                <span id="attachment_title_other"></span>
+                            </div>
+                            <table id="workOtherList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                <thead>
+                                <tr>
+                                    <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                </tr>
+                                </thead>
+                                <tbody id="file_attachment_other">
+                                <c:forEach items="${workOtherList}" var="attachment" varStatus="status">
+                                    <tr>
+                                      <%--  <td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${fns:abbr(attachment.attachmentName,30)}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        <td>${attachment.attachmentUser}</td>
+                                        <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                        <td>
+                                            <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                            </c:if>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+                        </td>
+                    </tr>
+                </div>
+            </div>
+
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>价格信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">送审价(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.sendPrice" id="sendPrice" htmlEscape="false"    class="form-control  number" onChange="if(this.value)sendPriceValue(this.value);"/>
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">审定价(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.approvedPrice" id="approvedPrice" htmlEscape="false"    class="form-control  number" onChange="if(this.value)approvedPriceValue(this.value);"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">合同价(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.contractPrice" id="contractPrice" htmlEscape="false"  class="form-control  number"/>
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">核增核减额(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.addEditAmount" id="addEditAmount" htmlEscape="false"   readonly="true"   class="form-control  number"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">核增核减率(%):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.addEditRate" id="addEditRate" htmlEscape="false"  readonly="true"   class="form-control "/>
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">咨询标的额(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.consultAmount" id="consultAmount"  htmlEscape="false"  readonly="true"  class="form-control  number"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">其中土建造价(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.civilEngineeringCost" id="civilEngineeringCost" htmlEscape="false"    class="form-control  number"/>
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">其中安装造价(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.installationCost" id="installationCost" htmlEscape="false"    class="form-control  number"/>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>审批</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <c:if test="${workEngineeringProject.plan eq 2 }">
+                            <tr>
+                                <td class="width-15 active"><label class="pull-left">选择退回步骤:<font color="red">*</font></label></td>
+                                <td class="width-25" colspan="3">
+                                    <input type="radio" value="2" name="reject" checked="checked">文件自校
+                                    <c:if test="${not empty workEngineeringProject.proofreadTotal}">
+                                        <input type="radio" value="3" name="reject" >项目负责人审核
+                                    </c:if>
+                                </td>
+                            </tr>
+                        </c:if>
+                        <c:if test="${not empty workEngineeringProject.proofreadTotal && workEngineeringProject.plan eq 2 }">
+                            <tr>
+                                <td class="width-15 active"><label class="pull-left">校审问题:<font color="red">*</font></label></td>
+                                <td class="width-25" colspan="3">
+                                    <input type="radio" value="一般问题" name="problem" checked="checked">一般问题
+                                    <input type="radio" value="中等问题" name="problem" >中等问题
+                                    <input type="radio" value="重大问题" name="problem" >重大问题
+                                </td>
+                            </tr>
+                        </c:if>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-left">审批意见:</label></td>
+                            <td class="width-25" colspan="3">
+                                <form:textarea path="act.comment" class="form-control" rows="3" maxlength="20"/>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>合同信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <c:choose>
+                            <c:when test="${workEngineeringProject.isExt eq 1}">
+                                <tr>
+                                    <td class="width-15 active"><label class="pull-right">合同名称:<font color="red">*</font></label></td>
+                                    <td class="width-35" colspan="3">
+                                            ${workEngineeringProject.contractInfoName}
+                                    </td>
+                                </tr>
+                            </c:when>
+                            <c:otherwise>
+                                <tr>
+                                    <td class="width-15 active"><label class="pull-right">合同名称:<font color="red">*</font></label></td>
+                                    <td class="width-35" colspan="3">
+                                            ${workEngineeringProject.contractId.name}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="width-15 active"><label class="pull-right">合同编号:<font color="red">*</font></label></td>
+                                    <td class="width-35">
+                                            ${workEngineeringProject.contractId.contractNum}
+                                    </td>
+                                </tr>
+                            </c:otherwise>
+                        </c:choose>
+
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>项目信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active">项目名称:</td>
+                            <td class="width-35" colspan="3">
+                                <span title="${workEngineeringProject.projectId.name}">${fns:abbr(workEngineeringProject.projectId.name,30)}</span>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">项目编号:</td>
+                            <td class="width-35">
+                                <span title="${workEngineeringProject.projectId.number}">${fns:abbr(workEngineeringProject.projectId.number,30)}</span>
+                            </td>
+                            <td class="width-15 active">业务类型:</td>
+                            <td class="width-35">
+                                    ${fns:getMainDictLabel(workEngineeringProject.businessType, 'business_type', '')}
+                            </td>
+
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">预送审金额:</td>
+                            <td class="width-35" colspan="3">
+                                    ${workEngineeringProject.preTrialAmount}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>客户信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active"> 客户单位:<font color="red">*</font></td>
+                            <td class="width-35" colspan="3">
+                                <span title="${workEngineeringProject.workClientInfo.name}">${fns:abbr(workEngineeringProject.workClientInfo.name,30)}</span>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">联系人姓名:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.name}
+                            </td>
+                            <td class="width-15 active">职务:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.position}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"> 联系方式:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.linkPhone}
+                            </td>
+                            <td class="width-15 active">E-mail:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.email}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>人员安排</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active">主办公司/部门</br>项目负责人:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.hostOfficeMasterName}
+                            </td>
+                            <td class="width-15 active">协办公司/部门</br>项目负责人:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.jointlyOfficeMasterName}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">主办公司/部门</br>项目组成员:</td>
+                            <td class="width-35" colspan="3">
+                                    ${workEngineeringProject.hostOfficeMemberNames}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">协办公司/部门</br>项目组成员:</td>
+                            <td class="width-35" colspan="3">
+                                    ${workEngineeringProject.jointlyOfficeMemberNames}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+                </form:form>
+            </div>
+        </div>
+    </div>
+</div>
+</div>
+</body>
+</html>

+ 687 - 0
src/main/webapp/webpage/modules/workprojectManagement/workThreeExaminationView.jsp

@@ -0,0 +1,687 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>工程项目信息管理</title>
+    <meta name="decorator" content="default"/>
+    <script type="text/javascript">
+        $(function(){
+            $("img").not(".upload_ico").each(function () {
+                var num = 1 ;
+                $(this).click(function () {
+                    var flag = num%2;
+                    if(flag == 1){
+                        $(this).css("width","90%");
+                        $(this).css("height","90%");
+                        num++;
+                    }else if(flag ==0){
+                        $(this).css("width","50px");
+                        $(this).css("height","50px");
+                        num++;
+                    }
+                })
+            });
+        })
+        var validateForm;
+        function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                $("#plan").val(obj);
+                $("#name").val("allocation");
+                $("#inputForm").submit();
+                return true;
+            }
+
+            return false;
+        }
+        $(document).ready(function() {
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+            laydate.render({
+                elem: '#workStartDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            laydate.render({
+                elem: '#workEndDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            $("#attachment_btn_report").click(function () {
+                $("#attachment_report").click();
+            });
+            $("#attachment_btn_basis").click(function () {
+                $("#attachment_basis").click();
+            });
+            $("#attachment_btn_remote").click(function () {
+                $("#attachment_remote").click();
+            });
+            $("#attachment_btn_summary").click(function () {
+                $("#attachment_summary").click();
+            });
+            $("#attachment_btn_other").click(function () {
+                $("#attachment_other").click();
+            });
+            var oneSize = $(".oneTab").size();
+            for(var i = 0;i < oneSize;i++){
+                var hei = $(".oneTab:eq("+i+")").parent().height()-20;
+                $(".oneTab:eq("+i+")").css("height",hei)
+                    .css("vertical-align","middle")
+                    .css("line-height",hei+"px")
+            }
+        });
+
+        function reportInsertTitle(tValue){
+            $("#attachment_title_report_div").remove();
+            var t1 = tValue.lastIndexOf("\\");
+            if(t1 >= 0 && t1 < tValue.length){
+                $("#attachment_title_report").text(tValue.substring(t1+1));
+                $("#attachment_title_report").after("<div id='attachment_title_report_div' style='float: right'>&nbsp;&nbsp;<span id='attachment_delete' onclick='attachment_report_del()'style='color: red ; cursor: pointer;'>x</span></div>");
+            }
+        }
+        function basisInsertTitle(tValue){
+            $("#attachment_title_basis_div").remove();
+            var t1 = tValue.lastIndexOf("\\");
+            if(t1 >= 0 && t1 < tValue.length){
+                $("#attachment_title_basis").text(tValue.substring(t1+1));
+                $("#attachment_title_basis").after("<div id='attachment_title_basis_div' style='float: right'>&nbsp;&nbsp;<span id='attachment_basis_delete' onclick='attachment_basis_del()'style='color: red ; cursor: pointer;'>x</span></div>");
+            }
+        }
+        function remoteInsertTitle(tValue){
+            $("#attachment_title_remoteInsert_div").remove();
+            var t1 = tValue.lastIndexOf("\\");
+            if(t1 >= 0 && t1 < tValue.length){
+                $("#attachment_title_remote").text(tValue.substring(t1+1));
+                $("#attachment_title_remote").after("<div id='attachment_title_div' style='float: right'>&nbsp;&nbsp;<span id='attachment_remote_delete' onclick='attachment_remote_del()'style='color: red ; cursor: pointer;'>x</span></div>");
+            }
+        }
+        function summaryInsertTitle(tValue){
+            $("#attachment_title_summary_div").remove();
+            var t1 = tValue.lastIndexOf("\\");
+            if(t1 >= 0 && t1 < tValue.length){
+                $("#attachment_title_summary").text(tValue.substring(t1+1));
+                $("#attachment_title_summary").after("<div id='attachment_title_summary_div' style='float: right'>&nbsp;&nbsp;<span id='attachment_summary_delete' onclick='attachment_summary_del()'style='color: red ; cursor: pointer;'>x</span></div>");
+            }
+        }
+        function otherInsertTitle(tValue){
+            $("#attachment_title_other_div").remove();
+            var t1 = tValue.lastIndexOf("\\");
+            if(t1 >= 0 && t1 < tValue.length){
+                $("#attachment_title_other").text(tValue.substring(t1+1));
+                $("#attachment_title_other").after("<div id='attachment_title_other_div' style='float: right'>&nbsp;&nbsp;<span id='attachment_other_delete' onclick='attachment_other_del()'style='color: red ; cursor: pointer;'>x</span></div>");
+            }
+        }
+        function attachment_report_del() {
+            $("#attachment_report").val("");
+            $("#attachment_title_report").text("");
+            $("#attachment_report_delete").remove();
+            $("#attachment_title_report_div").remove();
+        }
+        function attachment_basis_del() {
+            $("#attachment_basis").val("");
+            $("#attachment_title_basis").text("");
+            $("#attachment_basis_delete").remove();
+            $("#attachment_title_basis_div").remove();
+        }
+        function attachment_remote_del() {
+            $("#attachment_remote").val("");
+            $("#attachment_title_remote").text("");
+            $("#attachment_remote_delete").remove();
+            $("#attachment_title_remote_div").remove();
+        }
+        function attachment_summary_del() {
+            $("#attachment_summary").val("");
+            $("#attachment_title_summary").text("");
+            $("#attachment_summary_delete").remove();
+            $("#attachment_title_summary_div").remove();
+        }
+        function attachment_other_del() {
+            $("#attachment_other").val("");
+            $("#attachment_title_other").text("");
+            $("#attachment_other_delete").remove();
+            $("#attachment_title_other_div").remove();
+        }
+    </script>
+</head>
+<body class="hideScroll">
+<form:form id="inputForm" modelAttribute="workEngineeringProject" action="${ctx}/projectManagement/projectManagement/save" method="post" enctype="multipart/form-data" class="form-horizontal">
+<form:hidden path="id"/>
+<form:hidden path="name"/>
+<form:hidden path="plan"/>
+<sys:message content="${message}"/>
+<div class="wrapper wrapper-content">
+    <div class="ibox">
+        <div class="ibox-content">
+            <div class="col-sm-12">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>文件信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-35" colspan="4">
+                                <label class="pull-left">报告文件:</label>
+                                <table id="workReportList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                    <tr>
+                                        <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                    </tr>
+                                    <c:forEach items="${workReportList}" var="attachment" varStatus="status">
+                                        <tr>
+                                            <%--<td>${status.index + 1}</td>--%>
+                                                <%--<c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                        <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <c:choose>
+                                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                                <td><a href="${attachment.url}">${attachment.attachmentName}</a></td>
+                                                            </c:when>
+                                                            <c:otherwise>
+                                                                <td><a href="javascript:void(0)" onclick="openDialogViewPre('预览','${ctx}/previewController/previewUrl?fileUrl=${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            </c:otherwise>
+                                                        </c:choose>
+                                                    </c:otherwise>
+                                                </c:choose>--%>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')">${attachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('${ctx}/previewController/previewUrl?fileUrl=${workClientAttachment.url}','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openword','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openexcel','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openppt','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                            <td>${attachment.attachmentUser}</td>
+                                            <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                            <td>
+                                                <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            </td>
+                                        </tr>
+                                    </c:forEach>
+                                </table>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-35" colspan="4">
+                                <label class="pull-left">依据性资料:</label>
+                                <table id="workBasisInformationList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                    <tr>
+                                       <%-- <td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                    </tr>
+                                    <c:forEach items="${workBasisInformationList}" var="attachment" varStatus="status">
+                                        <tr>
+                                          <%--  <td>${status.index + 1}</td>--%>
+                                                <%-- <c:choose>
+                                                     <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                                    or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                                    or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                                    or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                         <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                     </c:when>
+                                                     <c:otherwise>
+                                                         <c:choose>
+                                                             <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                                 <td><a href="${attachment.url}">${attachment.attachmentName}</a></td>
+                                                             </c:when>
+                                                             <c:otherwise>
+                                                                 <td><a href="javascript:void(0)" onclick="openDialogViewPre('预览','${ctx}/previewController/previewUrl?fileUrl=${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                             </c:otherwise>
+                                                         </c:choose>
+                                                     </c:otherwise>
+                                                 </c:choose>--%>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')">${attachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('${ctx}/previewController/previewUrl?fileUrl=${workClientAttachment.url}','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openword','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openexcel','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openppt','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                            <td>${attachment.attachmentUser}</td>
+                                            <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                            <td>
+                                                <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            </td>
+                                        </tr>
+                                    </c:forEach>
+                                </table>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-35" colspan="4">
+                                <label class="pull-left">过程控制资料:</label>
+                                <table id="workRemoteControlList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                    <tr>
+                                        <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                    </tr>
+                                    <c:forEach items="${workRemoteControlList}" var="attachment" varStatus="status">
+                                        <tr>
+                                           <%-- <td>${status.index + 1}</td>--%>
+                                                <%--<c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                        <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <c:choose>
+                                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                                <td><a href="${attachment.url}">${attachment.attachmentName}</a></td>
+                                                            </c:when>
+                                                            <c:otherwise>
+                                                                <td><a href="javascript:void(0)" onclick="openDialogViewPre('预览','${ctx}/previewController/previewUrl?fileUrl=${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            </c:otherwise>
+                                                        </c:choose>
+                                                    </c:otherwise>
+                                                </c:choose>--%>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')">${attachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('${ctx}/previewController/previewUrl?fileUrl=${workClientAttachment.url}','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openword','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openexcel','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openppt','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                            <td>${attachment.attachmentUser}</td>
+                                            <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                            <td>
+                                                <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            </td>
+                                        </tr>
+                                    </c:forEach>
+                                </table>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-35" colspan="4">
+                                <label class="pull-left">汇总表:</label>
+                                <table id="workSummaryList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                    <tr>
+                                       <%-- <td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                    </tr>
+                                    <c:forEach items="${workSummaryList}" var="attachment" varStatus="status">
+                                        <tr>
+                                            <%--<td>${status.index + 1}</td>--%>
+                                                <%--<c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                        <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <c:choose>
+                                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                                <td><a href="${attachment.url}">${attachment.attachmentName}</a></td>
+                                                            </c:when>
+                                                            <c:otherwise>
+                                                                <td><a href="javascript:void(0)" onclick="openDialogViewPre('预览','${ctx}/previewController/previewUrl?fileUrl=${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            </c:otherwise>
+                                                        </c:choose>
+                                                    </c:otherwise>
+                                                </c:choose>--%>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')">${attachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('${ctx}/previewController/previewUrl?fileUrl=${workClientAttachment.url}','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openword','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openexcel','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openppt','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                            <td>${attachment.attachmentUser}</td>
+                                            <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                            <td>
+                                                <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                                <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-primary btn-xs" >删除</a>
+                                            </td>
+                                        </tr>
+                                    </c:forEach>
+                                </table>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-35" colspan="4">
+                                <label class="pull-left">其他资料:</label>
+                                <table id="workOtherList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                    <tr>
+                                        <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                    </tr>
+                                    <c:forEach items="${workOtherList}" var="attachment" varStatus="status">
+                                        <tr>
+                                            <%--<td>${status.index + 1}</td>--%>
+                                                <%-- <c:choose>
+                                                     <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                                    or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                                    or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                                    or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                         <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                     </c:when>
+                                                     <c:otherwise>
+                                                         <c:choose>
+                                                             <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                                 <td><a href="${attachment.url}">${attachment.attachmentName}</a></td>
+                                                             </c:when>
+                                                             <c:otherwise>
+                                                                 <td><a href="javascript:void(0)" onclick="openDialogViewPre('预览','${ctx}/previewController/previewUrl?fileUrl=${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                             </c:otherwise>
+                                                         </c:choose>
+                                                     </c:otherwise>
+                                                 </c:choose>--%>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')">${attachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('${ctx}/previewController/previewUrl?fileUrl=${workClientAttachment.url}','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openword','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openexcel','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openppt','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                            <td>${attachment.attachmentUser}</td>
+                                            <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                            <td>
+                                                <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            </td>
+                                        </tr>
+                                    </c:forEach>
+                                </table>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>价格信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">送审价(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.sendPrice}
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">审定价(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.approvedPrice}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">合同价(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.contractPrice}
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">核增核减额(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.addEditAmount}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">核增核减率(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.addEditRate}
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">咨询标的额(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.consultAmount}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">其中土建造价(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.civilEngineeringCost}
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">其中安装造价(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.installationCost}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>合同信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <c:choose>
+                            <c:when test="${workEngineeringProject.isExt eq 1}">
+                                <tr>
+                                    <td class="width-15 active"><label class="pull-right">合同名称:<font color="red">*</font></label></td>
+                                    <td class="width-35" colspan="3">
+                                            ${workEngineeringProject.contractInfoName}
+                                    </td>
+                                </tr>
+                            </c:when>
+                            <c:otherwise>
+                                <tr>
+                                    <td class="width-15 active"><label class="pull-right">合同名称:<font color="red">*</font></label></td>
+                                    <td class="width-35" colspan="3">
+                                            ${workEngineeringProject.contractId.name}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="width-15 active"><label class="pull-right">合同编号:<font color="red">*</font></label></td>
+                                    <td class="width-35">
+                                            ${workEngineeringProject.contractId.contractNum}
+                                    </td>
+                                </tr>
+                            </c:otherwise>
+                        </c:choose>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>项目信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active">项目名称:</td>
+                            <td class="width-35" colspan="3">
+                                <span title="${workEngineeringProject.projectId.name}">${fns:abbr(workEngineeringProject.projectId.name,30)}</span>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">项目编号:</td>
+                            <td class="width-35">
+                                <span title="${workEngineeringProject.projectId.number}">${fns:abbr(workEngineeringProject.projectId.number,30)}</span>
+                            </td>
+                            <td class="width-15 active">业务类型:</td>
+                            <td class="width-35">
+                                    ${fns:getMainDictLabel(workEngineeringProject.businessType, 'business_type', '')}
+                            </td>
+
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">预送审金额:</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.preTrialAmount}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>客户信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">客户单位:<font color="red">*</font></label></td>
+                            <td class="width-35" colspan="3">
+                                    ${workEngineeringProject.workClientInfo.name}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">联系人姓名:</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.name}
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">职务:</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.position}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right"> 联系方式:</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.linkPhone}
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">E-mail:</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.email}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>人员安排</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">主办公司/部门</br>项目负责人:<font color="red">*</font></label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.hostOfficeMasterName}
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">协办公司/部门</br>项目负责人:</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.jointlyOfficeMasterName}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">主办公司/部门</br>项目组成员:</label></td>
+                            <td class="width-35" colspan="3">
+                                    ${workEngineeringProject.hostOfficeMemberNames}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">协办公司/部门</br>项目组成员:</label></td>
+                            <td class="width-35" colspan="3">
+                                    ${workEngineeringProject.jointlyOfficeMemberNames}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+                </form:form>
+            </div>
+        </div>
+    </div>
+</div>
+</div>
+</body>
+</html>

+ 828 - 0
src/main/webapp/webpage/modules/workprojectManagement/workThreeGradeExamination.jsp

@@ -0,0 +1,828 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>工程项目信息管理</title>
+    <meta name="decorator" content="default"/>
+    <script type="text/javascript">
+        $(function(){
+            $("img").not(".upload_ico").each(function () {
+                var num = 1 ;
+                $(this).click(function () {
+                    var flag = num%2;
+                    if(flag == 1){
+                        $(this).css("width","90%");
+                        $(this).css("height","90%");
+                        num++;
+                    }else if(flag ==0){
+                        $(this).css("width","50px");
+                        $(this).css("height","50px");
+                        num++;
+                    }
+                })
+            });
+        })
+        var validateForm;
+        function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                if(obj == 1) {
+                    $("#flag").val("1");
+                }else if(obj == 2){
+                    $("#flag").val("2");
+                }else if(obj == 3){
+                    $("#flag").val("1");
+                }else if(obj == 4){
+                    $("#flag").val("2");
+                }
+                $("#plan").val(obj);
+                $("#name").val("allocation");
+                $("#inputForm").submit();
+                return true;
+            }
+            return false;
+        }
+        $(document).ready(function() {
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+            laydate.render({
+                elem: '#workStartDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            laydate.render({
+                elem: '#workEndDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            $("#attachment_btn_report").click(function () {
+                $("#attachment_report").click();
+            });
+            $("#attachment_btn_basis").click(function () {
+                $("#attachment_basis").click();
+            });
+            $("#attachment_btn_remote").click(function () {
+                $("#attachment_remote").click();
+            });
+            $("#attachment_btn_summary").click(function () {
+                $("#attachment_summary").click();
+            });
+            $("#attachment_btn_other").click(function () {
+                $("#attachment_other").click();
+            });
+            var oneSize = $(".oneTab").size();
+            for(var i = 0;i < oneSize;i++){
+                var hei = $(".oneTab:eq("+i+")").parent().height()-20;
+                $(".oneTab:eq("+i+")").css("height",hei)
+                    .css("vertical-align","middle")
+                    .css("line-height",hei+"px")
+            }
+        });
+
+        /* function reportInsertTitle(tValue){
+             $("#attachment_title_report_div").remove();
+             var t1 = tValue.lastIndexOf("\\");
+             if(t1 >= 0 && t1 < tValue.length){
+                 $("#attachment_title_report").text(tValue.substring(t1+1));
+                 $("#attachment_title_report").after("<div id='attachment_title_report_div' style='float: right'>&nbsp;&nbsp;<span id='attachment_delete' onclick='attachment_report_del()'style='color: red ; cursor: pointer;'>x</span></div>");
+             }
+         }*/
+        function reportInsertTitle(tValue){
+            var list = "${workReportList}";
+            var size = (list.split('url')).length-1;
+            var files = $("#attachment_report")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "39";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectReport/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment_report";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        };
+        function basisInsertTitle(tValue){
+            var list = "${workBasisInformationList}";
+            var size = (list.split('url')).length-1;
+            $("#attachment_title_basis_div").remove();
+            var files = $("#attachment_basis")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "40";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectReport/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment_basis";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        }
+        function remoteInsertTitle(tValue){
+            var list = "${workRemoteControlList}";
+            var size = (list.split('url')).length-1;
+            $("#attachment_title_remote_div").remove();
+            var files = $("#attachment_remote")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "41";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectReport/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment_remote";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        }
+        function summaryInsertTitle(tValue){
+            var list = "${workSummaryList}";
+            var size = (list.split('url')).length-1;
+            $("#attachment_title_summary_div").remove();
+            var files = $("#attachment_summary")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "42";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectReport/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment_summary";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        }
+        function otherInsertTitle(tValue){
+            var list = "${workOtherList}";
+            var size = (list.split('url')).length-1;
+            $("#attachment_title_other_div").remove();
+            var files = $("#attachment_other")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "43";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workProjectReport/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment_other";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
+        }
+        function attachment_report_del() {
+            $("#attachment_report").val("");
+            $("#attachment_title_report").text("");
+            $("#attachment_report_delete").remove();
+            $("#attachment_title_report_div").remove();
+        }
+        function attachment_basis_del() {
+            $("#attachment_basis").val("");
+            $("#attachment_title_basis").text("");
+            $("#attachment_basis_delete").remove();
+            $("#attachment_title_basis_div").remove();
+        }
+        function attachment_remote_del() {
+            $("#attachment_remote").val("");
+            $("#attachment_title_remote").text("");
+            $("#attachment_remote_delete").remove();
+            $("#attachment_title_remote_div").remove();
+        }
+        function attachment_summary_del() {
+            $("#attachment_summary").val("");
+            $("#attachment_title_summary").text("");
+            $("#attachment_summary_delete").remove();
+            $("#attachment_title_summary_div").remove();
+        }
+        function attachment_other_del() {
+            $("#attachment_other").val("");
+            $("#attachment_title_other").text("");
+            $("#attachment_other_delete").remove();
+            $("#attachment_title_other_div").remove();
+        }
+        function sendPriceValue(obj) {
+            var sendPrice = $("#sendPrice").val();
+            var approvedPrice = $("#approvedPrice").val();
+            if (sendPrice>0 && approvedPrice>0){
+                var addEditAmount = 0;
+                var addEditRate = 0;
+                if(parseFloat(sendPrice)>parseFloat(approvedPrice)){
+                    addEditAmount = sendPrice - approvedPrice;
+                    addEditRate = ((approvedPrice / sendPrice)* 100 ).toFixed(2)+ "%";
+                }else {
+                    addEditAmount = approvedPrice - sendPrice;
+                    addEditRate = ((sendPrice / approvedPrice)* 100 ).toFixed(2)+ "%";
+                }
+                $("#addEditAmount").val(addEditAmount);
+                $("#addEditRate").val(addEditRate);
+            }
+
+        }
+        function approvedPriceValue(obj) {
+            var sendPrice = $("#sendPrice").val();
+            var approvedPrice = $("#approvedPrice").val();
+            if (sendPrice>0 && approvedPrice>0){
+                var addEditAmount = 0;
+                var addEditRate = 0;
+                if(parseFloat(sendPrice)>parseFloat(approvedPrice)){
+                    addEditAmount = sendPrice - approvedPrice;
+                }else {
+                    addEditAmount = approvedPrice - sendPrice;
+                }
+                addEditRate = ((sendPrice / approvedPrice)* 100 ).toFixed(2) + "%";
+                $("#addEditAmount").val(addEditAmount);
+                $("#addEditRate").val(addEditRate);
+                $("#consultAmount").val(approvedPrice);
+            }
+        }
+    </script>
+</head>
+<body class="hideScroll">
+<form:form id="inputForm" modelAttribute="workEngineeringProject" action="${ctx}/projectManagement/projectManagement/saveAudit" method="post" class="form-horizontal">
+<form:hidden path="id"/>
+<form:hidden path="workEngineeringPrice.id"/>
+<form:hidden path="name"/>
+<form:hidden path="plan"/>
+<form:hidden path="act.taskId"/>
+<form:hidden path="act.taskName"/>
+<form:hidden path="act.taskDefKey"/>
+<form:hidden path="act.procInsId"/>
+<form:hidden path="act.procDefId"/>
+<form:hidden id="flag" path="act.flag"/>
+<sys:message content="${message}"/>
+<div class="wrapper wrapper-content">
+    <div class="ibox">
+        <div class="ibox-content">
+            <div class="col-sm-12">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>文件信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <tr>
+                        <td class="width-15 active" ><label class="pull-left">报告文件:</label></td>
+                        <td class="width-35" colspan="3">
+                            <div style="display: inline-block">
+                                <div id="addFile_attachment_report" style="display: none">
+                                    <div>
+                                        <span id="fileName_attachment_report" ></span>
+                                        <b><span id="baifenbi_attachment_report" ></span></b>
+                                    </div>
+                                    <div>
+                                        <div class="progress">
+                                            <div id="jindutiao_attachment_report" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <input id="attachment_report" type="file" name="attachment_report" multiple="multiple" style="display: none;" onChange="if(this.value)reportInsertTitle(this.value);"/>
+                                <a id="attachment_btn_report" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+                                <span id="attachment_title_report"></span>
+                            </div>
+                            <table id="workReportList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                <thead>
+                                <tr>
+                                   <%-- <td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                </tr>
+                                </thead>
+                                <tbody id="file_attachment_report">
+                                <c:forEach items="${workReportList}" var="attachment" varStatus="status">
+                                    <tr>
+                                        <%--<td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${fns:abbr(attachment.attachmentName,30)}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        <td>${attachment.attachmentUser}</td>
+                                        <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+                                        <td>
+                                            <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                            </c:if>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="width-15 active"><label class="pull-left">依据性资料:</label></td>
+                        <td class="width-35" colspan="3">
+                            <div style="display: inline-block">
+                                <div id="addFile_attachment_basis" style="display: none">
+                                    <div>
+                                        <span id="fileName_attachment_basis" ></span>
+                                        <b><span id="baifenbi_attachment_basis" ></span></b>
+                                    </div>
+                                    <div>
+                                        <div class="progress">
+                                            <div id="jindutiao_attachment_basis" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <input id="attachment_basis" type="file" name="attachment_basis" multiple="multiple" style="display: none;" onChange="if(this.value)basisInsertTitle(this.value);"/>
+                                <a id="attachment_btn_basis" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+                                <span id="attachment_title_basis"></span>
+                            </div>
+                            <table id="workBasisInformationList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                <thead>
+                                <tr>
+                                   <%-- <td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                </tr>
+                                </thead>
+                                <tbody id="file_attachment_basis">
+                                <c:forEach items="${workBasisInformationList}" var="attachment" varStatus="status">
+                                    <tr>
+                                        <%--<td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${fns:abbr(attachment.attachmentName,30)}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        <td>${attachment.attachmentUser}</td>
+                                        <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                        <td>
+                                            <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                            </c:if>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="width-15 active"><label class="pull-left">过程控制资料:</label></td>
+                        <td class="width-35" colspan="3">
+                            <div style="display: inline-block">
+                                <div id="addFile_attachment_remote" style="display: none">
+                                    <div>
+                                        <span id="fileName_attachment_remote" ></span>
+                                        <b><span id="baifenbi_attachment_remote" ></span></b>
+                                    </div>
+                                    <div>
+                                        <div class="progress">
+                                            <div id="jindutiao_attachment_remote" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <input id="attachment_remote" type="file" name="attachment_remote" multiple="multiple" style="display: none;" onChange="if(this.value)remoteInsertTitle(this.value);"/>
+                                <a id="attachment_btn_remote" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+                                <span id="attachment_title_remote"></span>
+                            </div>
+                            <table id="workRemoteControlList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                <thead>
+                                <tr>
+                                   <%-- <td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                </tr>
+                                </thead>
+                                <tbody id="file_attachment_remote">
+                                <c:forEach items="${workRemoteControlList}" var="attachment" varStatus="status">
+                                    <tr>
+                                        <%--<td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${fns:abbr(attachment.attachmentName,30)}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        <td>${attachment.attachmentUser}</td>
+                                        <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                        <td>
+                                            <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                            </c:if>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="width-15 active"><label class="pull-left">汇总表:</label></td>
+                        <td class="width-35" colspan="3">
+                            <div style="display: inline-block">
+                                <div id="addFile_attachment_summary" style="display: none">
+                                    <div>
+                                        <span id="fileName_attachment_summary" ></span>
+                                        <b><span id="baifenbi_attachment_summary" ></span></b>
+                                    </div>
+                                    <div>
+                                        <div class="progress">
+                                            <div id="jindutiao_attachment_summary" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <input id="attachment_summary" type="file" name="attachment_summary" multiple="multiple" style="display: none;" onChange="if(this.value)summaryInsertTitle(this.value);"/>
+                                <a id="attachment_btn_summary" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+                                <span id="attachment_title_summary"></span>
+                            </div>
+                            <table id="workSummaryList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                <thead>
+                                <tr>
+                                   <%-- <td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                </tr>
+                                </thead>
+                                <tbody id="file_attachment_summary">
+                                <c:forEach items="${workSummaryList}" var="attachment" varStatus="status">
+                                    <tr>
+                                       <%-- <td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${fns:abbr(attachment.attachmentName,30)}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        <td>${attachment.attachmentUser}</td>
+                                        <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                        <td>
+                                            <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                            </c:if>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="width-15 active"><label class="pull-left">其他资料:</label></td>
+                        <td class="width-35" colspan="3">
+                            <div style="display: inline-block">
+                                <div id="addFile_attachment_other" style="display: none">
+                                    <div>
+                                        <span id="fileName_attachment_other" ></span>
+                                        <b><span id="baifenbi_attachment_other" ></span></b>
+                                    </div>
+                                    <div>
+                                        <div class="progress">
+                                            <div id="jindutiao_attachment_other" class="progress-bar" style="width: 0%" aria-valuenow="0">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <input id="attachment_other" type="file" name="attachment_other" multiple="multiple" style="display: none;" onChange="if(this.value)otherInsertTitle(this.value);"/>
+                                <a id="attachment_btn_other" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+                                <span id="attachment_title_other"></span>
+                            </div>
+                            <table id="workOtherList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                <thead>
+                                <tr>
+                                   <%-- <td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                </tr>
+                                </thead>
+                                <tbody id="file_attachment_other">
+                                <c:forEach items="${workOtherList}" var="attachment" varStatus="status">
+                                    <tr>
+                                        <%--<td>${status.index + 1}</td>--%>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                <td><img src="${attachment.url}" width="50" height="50" alt="${fns:abbr(attachment.attachmentName,30)}"/></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')"><span title="${attachment.attachmentName}">${fns:abbr(attachment.attachmentName,30)}</span></a></td>
+
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        <td>${attachment.attachmentUser}</td>
+                                        <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                        <td>
+                                            <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            <c:if test="${attachment.createBy.id eq fns:getUser().id}">
+                                                <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-danger btn-xs" >删除</a>
+                                            </c:if>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                                </tbody>
+                            </table>
+                        </td>
+                    </tr>
+                </div>
+            </div>
+
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>价格信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">送审价(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.sendPrice" id="sendPrice" htmlEscape="false"    class="form-control  number" onChange="if(this.value)sendPriceValue(this.value);"/>
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">审定价(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.approvedPrice" id="approvedPrice" htmlEscape="false"    class="form-control  number" onChange="if(this.value)approvedPriceValue(this.value);"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">合同价(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.contractPrice" id="contractPrice" htmlEscape="false"  class="form-control  number"/>
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">核增核减额(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.addEditAmount" id="addEditAmount" htmlEscape="false"   readonly="true"   class="form-control  number"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">核增核减率(%):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.addEditRate" id="addEditRate" htmlEscape="false"  readonly="true"   class="form-control "/>
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">咨询标的额(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.consultAmount" id="consultAmount"  htmlEscape="false"  readonly="true"  class="form-control  number"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">其中土建造价(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.civilEngineeringCost" id="civilEngineeringCost" htmlEscape="false"    class="form-control  number"/>
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">其中安装造价(元):</label></td>
+                            <td class="width-35">
+                                <form:input path="workEngineeringPrice.installationCost" id="installationCost" htmlEscape="false"    class="form-control  number"/>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>审批</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <c:if test="${workEngineeringProject.plan eq 2 }">
+                            <tr>
+                                <td class="width-15 active"><label class="pull-left">选择退回步骤:<font color="red">*</font></label></td>
+                                <td class="width-25" colspan="3">
+                                    <input type="radio" value="2" name="reject" checked="checked">文件自校
+                                    <c:if test="${not empty workEngineeringProject.proofreadTotal}">
+                                        <input type="radio" value="3" name="reject" >项目负责人审核
+                                    </c:if>
+                                </td>
+                            </tr>
+                        </c:if>
+                        <c:if test="${not empty workEngineeringProject.proofreadTotal && workEngineeringProject.plan eq 2 }">
+                            <tr>
+                                <td class="width-15 active"><label class="pull-left">校审问题:<font color="red">*</font></label></td>
+                                <td class="width-25" colspan="3">
+                                    <input type="radio" value="一般问题" name="problem" checked="checked">一般问题
+                                    <input type="radio" value="中等问题" name="problem" >中等问题
+                                    <input type="radio" value="重大问题" name="problem" >重大问题
+                                </td>
+                            </tr>
+                        </c:if>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-left">审批意见:</label></td>
+                            <td class="width-25" colspan="3">
+                                <form:textarea path="act.comment" class="form-control" rows="3" maxlength="20"/>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>合同信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <c:choose>
+                            <c:when test="${workEngineeringProject.isExt eq 1}">
+                                <tr>
+                                    <td class="width-15 active"><label class="pull-right">合同名称:<font color="red">*</font></label></td>
+                                    <td class="width-35" colspan="3">
+                                            ${workEngineeringProject.contractInfoName}
+                                    </td>
+                                </tr>
+                            </c:when>
+                            <c:otherwise>
+                                <tr>
+                                    <td class="width-15 active"><label class="pull-right">合同名称:<font color="red">*</font></label></td>
+                                    <td class="width-35" colspan="3">
+                                            ${workEngineeringProject.contractId.name}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="width-15 active"><label class="pull-right">合同编号:<font color="red">*</font></label></td>
+                                    <td class="width-35">
+                                            ${workEngineeringProject.contractId.contractNum}
+                                    </td>
+                                </tr>
+                            </c:otherwise>
+                        </c:choose>
+
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>项目信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active">项目名称:</td>
+                            <td class="width-35" colspan="3">
+                                <span title="${workEngineeringProject.projectId.name}">${fns:abbr(workEngineeringProject.projectId.name,30)}</span>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">项目编号:</td>
+                            <td class="width-35">
+                                <span title="${workEngineeringProject.projectId.number}">${fns:abbr(workEngineeringProject.projectId.number,30)}</span>
+                            </td>
+                            <td class="width-15 active">业务类型:</td>
+                            <td class="width-35">
+                                    ${fns:getMainDictLabel(workEngineeringProject.businessType, 'business_type', '')}
+                            </td>
+
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">预送审金额:</td>
+                            <td class="width-35" colspan="3">
+                                    ${workEngineeringProject.preTrialAmount}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>客户信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active"> 客户单位:<font color="red">*</font></td>
+                            <td class="width-35" colspan="3">
+                                <span title="${workEngineeringProject.workClientInfo.name}">${fns:abbr(workEngineeringProject.workClientInfo.name,30)}</span>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">联系人姓名:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.name}
+                            </td>
+                            <td class="width-15 active">职务:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.position}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"> 联系方式:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.linkPhone}
+                            </td>
+                            <td class="width-15 active">E-mail:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.email}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>人员安排</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active">主办公司/部门</br>项目负责人:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.hostOfficeMasterName}
+                            </td>
+                            <td class="width-15 active">协办公司/部门</br>项目负责人:</td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.jointlyOfficeMasterName}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">主办公司/部门</br>项目组成员:</td>
+                            <td class="width-35" colspan="3">
+                                    ${workEngineeringProject.hostOfficeMemberNames}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">协办公司/部门</br>项目组成员:</td>
+                            <td class="width-35" colspan="3">
+                                    ${workEngineeringProject.jointlyOfficeMemberNames}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+                </form:form>
+            </div>
+        </div>
+    </div>
+</div>
+</div>
+</body>
+</html>

+ 183 - 0
src/main/webapp/webpage/modules/workprojectManagement/workThreeGradeExaminationAudit.jsp

@@ -0,0 +1,183 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目流程管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+		  if(validateForm.form()){
+			  $("#inputForm").submit();
+			  return true;
+		  }
+	
+		  return false;
+		}
+		
+		$('#btnPresent').click(function () { 
+
+			$.ajax({
+	             url:"${ctx}/projectManagement/projectManagement/present",
+	             data:$('#loginForm').serialize(),
+	             type:"post",
+	             success:function(data){
+	        
+	             }					
+		});
+		});	
+			
+		$(document).ready(function() {
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+            //只做查看时,禁用掉以下标签
+            $('input,textarea,select').attr('disabled',<%=request.getAttribute("disabled")%>);
+            if (${requestScope.disabled eq 'false'}) {
+                $("#startTime").attr('disabled',true);
+                $("#endTime").attr('disabled',true);
+                $("#reason").attr('disabled',true);
+            }
+		});
+	</script>
+</head>
+
+<body class="gray-bg">
+
+  <div class="wrapper wrapper-content">
+	<div class="ibox">
+	<div class="ibox-title">
+		<h5>当前步骤--[${workEngineeringProject.act.taskName}] </h5>
+		<div class="ibox-tools">
+			<a class="collapse-link">
+				<i class="fa fa-chevron-up"></i>
+			</a>
+			<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+				<i class="fa fa-wrench"></i>
+			</a>
+			<ul class="dropdown-menu dropdown-user">
+				<li><a href="javascript:void(0)">选项1</a>
+				</li>
+				<li><a href="javascript:void(0)">选项2</a>
+				</li>
+			</ul>
+			<a class="close-link">
+				<i class="fa fa-times"></i>
+			</a>
+		</div>
+	</div>
+		<div class="ibox-content">
+		<form:form id="inputForm" modelAttribute="workEngineeringProject" action="${ctx}/projectManagement/projectManagement/saveAudit" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+		<form:hidden path="act.taskId"/>
+		<form:hidden path="act.taskName"/>
+		<form:hidden path="act.taskDefKey"/>
+		<form:hidden path="act.procInsId"/>
+		<form:hidden path="act.procDefId"/>
+		<form:hidden id="flag" path="act.flag"/>
+		<%--	<taskId=${task.id}&taskName=${fns:urlEncode(task.name)}&taskDefKey=${task.taskDefinitionKey}&procInsId=${task.processInstanceId}&procDefId=${task.processDefinitionId}&status=${status}></taskId>
+		--%><sys:message content="${message}"/>
+		<c:set var="status" value="${workEngineeringProject.status}" />
+			<div class="control-group">
+				<label class="control-label">合同名称:</label>
+				<div class="controls">
+						${workEngineeringProject.contractId.name}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">合同编号:</label>
+				<div class="controls">
+						${workEngineeringProject.contractId.contractNum}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">项目名称:</label>
+				<div class="controls">
+						${workEngineeringProject.projectId.name}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">项目编号:</label>
+				<div class="controls">
+						${workEngineeringProject.projectId.number}
+				</div>
+			</div>
+			<div class="control-group">
+				<label class="control-label">备注信息:</label>
+				<div class="controls">
+						${workEngineeringProject.remarks}
+				</div>
+			</div>
+			<c:if test="${workEngineeringProject.plan eq 2 }">
+				<div class="control-group">
+					<label class="control-label">选择退回步骤:</label>
+					<div class="controls">
+						<input type="radio" value="2" name="reject" checked="checked">文件自校
+						<c:if test="${not empty workEngineeringProject.proofreadTotal}">
+							<input type="radio" value="3" name="reject" >项目负责人审核
+						</c:if>
+					</div>
+				</div>
+			</c:if>
+			<c:if test="${not empty workEngineeringProject.proofreadTotal && workEngineeringProject.plan eq 2 }">
+				<div class="control-group">
+					<label class="control-label">校审问题:<font color="red">*</font></label>
+					<div class="controls">
+						<input type="radio" value="一般问题" name="problem" checked="checked">一般问题
+						<input type="radio" value="中等问题" name="problem" >中等问题
+						<input type="radio" value="重大问题" name="problem" >重大问题
+					</div>
+				</div>
+			</c:if>
+
+			<div class="control-group">
+				<label class="control-label">审批意见:</label>
+				<div class="controls">
+					<form:textarea path="act.comment" class="form-control " rows="3" maxlength="20"/>
+				</div>
+			</div>
+			<div class="form-actions">
+				<c:if test="${not empty workEngineeringProject.act.taskDefKey}">
+					<c:choose>
+						<c:when test="${workEngineeringProject.plan eq '1'}">
+							<input id="btnSubmit" class="btn btn-primary" type="submit" value="确认选择" onclick="$('#flag').val('1')"/>&nbsp;
+						</c:when>
+						<c:when test="${workEngineeringProject.plan eq '2'}">
+							<input id="btnSubmit" class="btn btn-inverse" type="submit" value="确认驳回" onclick="$('#flag').val('2')"/>&nbsp;
+						</c:when>
+						<c:when test="${workEngineeringProject.plan eq '3'}">
+							<input id="btnSubmit" class="btn btn-inverse" type="submit" value="重新申请" onclick="$('#flag').val('1')"/>&nbsp;
+						</c:when>
+						<c:otherwise>
+							<input id="btnSubmit" class="btn btn-inverse" type="submit" value="撤回申请" onclick="$('#flag').val('2')"/>&nbsp;
+						</c:otherwise>
+					</c:choose>
+				</c:if>
+				<c:if test="${empty workEngineeringProject.act.taskDefKey}">
+					<input id="btnSubmit" class="btn btn-primary" type="submit" value="文件自校" onclick="$('#flag').val('1')"/>&nbsp;
+					<%--<input id="btnSubmit" class="btn btn-inverse" type="submit" value="驳 回" onclick="$('#flag').val('no')"/>&nbsp;--%>
+				</c:if>
+				<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
+			</div>
+			<c:if test="${not empty workEngineeringProject.act.taskDefKey}">
+				<act:flowChart procInsId="${workEngineeringProject.processInstanceProofreadId}"/>
+				<act:histoicFlow procInsId="${workEngineeringProject.processInstanceProofreadId}"/>
+			</c:if>
+	</form:form>
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 687 - 0
src/main/webapp/webpage/modules/workprojectManagement/workThreeGradeExaminationView.jsp

@@ -0,0 +1,687 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>工程项目信息管理</title>
+    <meta name="decorator" content="default"/>
+    <script type="text/javascript">
+        $(function(){
+            $("img").not(".upload_ico").each(function () {
+                var num = 1 ;
+                $(this).click(function () {
+                    var flag = num%2;
+                    if(flag == 1){
+                        $(this).css("width","90%");
+                        $(this).css("height","90%");
+                        num++;
+                    }else if(flag ==0){
+                        $(this).css("width","50px");
+                        $(this).css("height","50px");
+                        num++;
+                    }
+                })
+            });
+        })
+        var validateForm;
+        function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                $("#plan").val(obj);
+                $("#name").val("allocation");
+                $("#inputForm").submit();
+                return true;
+            }
+
+            return false;
+        }
+        $(document).ready(function() {
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+            laydate.render({
+                elem: '#workStartDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            laydate.render({
+                elem: '#workEndDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            $("#attachment_btn_report").click(function () {
+                $("#attachment_report").click();
+            });
+            $("#attachment_btn_basis").click(function () {
+                $("#attachment_basis").click();
+            });
+            $("#attachment_btn_remote").click(function () {
+                $("#attachment_remote").click();
+            });
+            $("#attachment_btn_summary").click(function () {
+                $("#attachment_summary").click();
+            });
+            $("#attachment_btn_other").click(function () {
+                $("#attachment_other").click();
+            });
+            var oneSize = $(".oneTab").size();
+            for(var i = 0;i < oneSize;i++){
+                var hei = $(".oneTab:eq("+i+")").parent().height()-20;
+                $(".oneTab:eq("+i+")").css("height",hei)
+                    .css("vertical-align","middle")
+                    .css("line-height",hei+"px")
+            }
+        });
+
+        function reportInsertTitle(tValue){
+            $("#attachment_title_report_div").remove();
+            var t1 = tValue.lastIndexOf("\\");
+            if(t1 >= 0 && t1 < tValue.length){
+                $("#attachment_title_report").text(tValue.substring(t1+1));
+                $("#attachment_title_report").after("<div id='attachment_title_report_div' style='float: right'>&nbsp;&nbsp;<span id='attachment_delete' onclick='attachment_report_del()'style='color: red ; cursor: pointer;'>x</span></div>");
+            }
+        }
+        function basisInsertTitle(tValue){
+            $("#attachment_title_basis_div").remove();
+            var t1 = tValue.lastIndexOf("\\");
+            if(t1 >= 0 && t1 < tValue.length){
+                $("#attachment_title_basis").text(tValue.substring(t1+1));
+                $("#attachment_title_basis").after("<div id='attachment_title_basis_div' style='float: right'>&nbsp;&nbsp;<span id='attachment_basis_delete' onclick='attachment_basis_del()'style='color: red ; cursor: pointer;'>x</span></div>");
+            }
+        }
+        function remoteInsertTitle(tValue){
+            $("#attachment_title_remoteInsert_div").remove();
+            var t1 = tValue.lastIndexOf("\\");
+            if(t1 >= 0 && t1 < tValue.length){
+                $("#attachment_title_remote").text(tValue.substring(t1+1));
+                $("#attachment_title_remote").after("<div id='attachment_title_div' style='float: right'>&nbsp;&nbsp;<span id='attachment_remote_delete' onclick='attachment_remote_del()'style='color: red ; cursor: pointer;'>x</span></div>");
+            }
+        }
+        function summaryInsertTitle(tValue){
+            $("#attachment_title_summary_div").remove();
+            var t1 = tValue.lastIndexOf("\\");
+            if(t1 >= 0 && t1 < tValue.length){
+                $("#attachment_title_summary").text(tValue.substring(t1+1));
+                $("#attachment_title_summary").after("<div id='attachment_title_summary_div' style='float: right'>&nbsp;&nbsp;<span id='attachment_summary_delete' onclick='attachment_summary_del()'style='color: red ; cursor: pointer;'>x</span></div>");
+            }
+        }
+        function otherInsertTitle(tValue){
+            $("#attachment_title_other_div").remove();
+            var t1 = tValue.lastIndexOf("\\");
+            if(t1 >= 0 && t1 < tValue.length){
+                $("#attachment_title_other").text(tValue.substring(t1+1));
+                $("#attachment_title_other").after("<div id='attachment_title_other_div' style='float: right'>&nbsp;&nbsp;<span id='attachment_other_delete' onclick='attachment_other_del()'style='color: red ; cursor: pointer;'>x</span></div>");
+            }
+        }
+        function attachment_report_del() {
+            $("#attachment_report").val("");
+            $("#attachment_title_report").text("");
+            $("#attachment_report_delete").remove();
+            $("#attachment_title_report_div").remove();
+        }
+        function attachment_basis_del() {
+            $("#attachment_basis").val("");
+            $("#attachment_title_basis").text("");
+            $("#attachment_basis_delete").remove();
+            $("#attachment_title_basis_div").remove();
+        }
+        function attachment_remote_del() {
+            $("#attachment_remote").val("");
+            $("#attachment_title_remote").text("");
+            $("#attachment_remote_delete").remove();
+            $("#attachment_title_remote_div").remove();
+        }
+        function attachment_summary_del() {
+            $("#attachment_summary").val("");
+            $("#attachment_title_summary").text("");
+            $("#attachment_summary_delete").remove();
+            $("#attachment_title_summary_div").remove();
+        }
+        function attachment_other_del() {
+            $("#attachment_other").val("");
+            $("#attachment_title_other").text("");
+            $("#attachment_other_delete").remove();
+            $("#attachment_title_other_div").remove();
+        }
+    </script>
+</head>
+<body class="hideScroll">
+<form:form id="inputForm" modelAttribute="workEngineeringProject" action="${ctx}/projectManagement/projectManagement/save" method="post" enctype="multipart/form-data" class="form-horizontal">
+<form:hidden path="id"/>
+<form:hidden path="name"/>
+<form:hidden path="plan"/>
+<sys:message content="${message}"/>
+<div class="wrapper wrapper-content">
+    <div class="ibox">
+        <div class="ibox-content">
+            <div class="col-sm-12">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>文件信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-35" colspan="4">
+                                <label class="pull-left">报告文件:</label>
+                                <table id="workReportList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                    <tr>
+                                       <%-- <td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                    </tr>
+                                    <c:forEach items="${workReportList}" var="attachment" varStatus="status">
+                                        <tr>
+                                            <%--<td>${status.index + 1}</td>--%>
+                                                <%--<c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                        <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <c:choose>
+                                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                                <td><a href="${attachment.url}">${attachment.attachmentName}</a></td>
+                                                            </c:when>
+                                                            <c:otherwise>
+                                                                <td><a href="javascript:void(0)" onclick="openDialogViewPre('预览','${ctx}/previewController/previewUrl?fileUrl=${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            </c:otherwise>
+                                                        </c:choose>
+                                                    </c:otherwise>
+                                                </c:choose>--%>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')">${attachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('${ctx}/previewController/previewUrl?fileUrl=${workClientAttachment.url}','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openword','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openexcel','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openppt','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                            <td>${attachment.attachmentUser}</td>
+                                            <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                            <td>
+                                                <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            </td>
+                                        </tr>
+                                    </c:forEach>
+                                </table>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-35" colspan="4">
+                                <label class="pull-left">依据性资料:</label>
+                                <table id="workBasisInformationList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                    <tr>
+                                        <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                    </tr>
+                                    <c:forEach items="${workBasisInformationList}" var="attachment" varStatus="status">
+                                        <tr>
+                                            <%--<td>${status.index + 1}</td>--%>
+                                                <%-- <c:choose>
+                                                     <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                                    or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                                    or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                                    or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                         <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                     </c:when>
+                                                     <c:otherwise>
+                                                         <c:choose>
+                                                             <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                                 <td><a href="${attachment.url}">${attachment.attachmentName}</a></td>
+                                                             </c:when>
+                                                             <c:otherwise>
+                                                                 <td><a href="javascript:void(0)" onclick="openDialogViewPre('预览','${ctx}/previewController/previewUrl?fileUrl=${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                             </c:otherwise>
+                                                         </c:choose>
+                                                     </c:otherwise>
+                                                 </c:choose>--%>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')">${attachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('${ctx}/previewController/previewUrl?fileUrl=${workClientAttachment.url}','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openword','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openexcel','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openppt','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                            <td>${attachment.attachmentUser}</td>
+                                            <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                            <td>
+                                                <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            </td>
+                                        </tr>
+                                    </c:forEach>
+                                </table>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-35" colspan="4">
+                                <label class="pull-left">过程控制资料:</label>
+                                <table id="workRemoteControlList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                    <tr>
+                                        <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                    </tr>
+                                    <c:forEach items="${workRemoteControlList}" var="attachment" varStatus="status">
+                                        <tr>
+                                            <%--<td>${status.index + 1}</td>--%>
+                                                <%--<c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                        <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <c:choose>
+                                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                                <td><a href="${attachment.url}">${attachment.attachmentName}</a></td>
+                                                            </c:when>
+                                                            <c:otherwise>
+                                                                <td><a href="javascript:void(0)" onclick="openDialogViewPre('预览','${ctx}/previewController/previewUrl?fileUrl=${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            </c:otherwise>
+                                                        </c:choose>
+                                                    </c:otherwise>
+                                                </c:choose>--%>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')">${attachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('${ctx}/previewController/previewUrl?fileUrl=${workClientAttachment.url}','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openword','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openexcel','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openppt','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                            <td>${attachment.attachmentUser}</td>
+                                            <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                            <td>
+                                                <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            </td>
+                                        </tr>
+                                    </c:forEach>
+                                </table>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-35" colspan="4">
+                                <label class="pull-left">汇总表:</label>
+                                <table id="workSummaryList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                    <tr>
+                                        <%--<td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                    </tr>
+                                    <c:forEach items="${workSummaryList}" var="attachment" varStatus="status">
+                                        <tr>
+                                           <%-- <td>${status.index + 1}</td>--%>
+                                                <%--<c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                                   or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                        <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <c:choose>
+                                                            <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                                <td><a href="${attachment.url}">${attachment.attachmentName}</a></td>
+                                                            </c:when>
+                                                            <c:otherwise>
+                                                                <td><a href="javascript:void(0)" onclick="openDialogViewPre('预览','${ctx}/previewController/previewUrl?fileUrl=${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            </c:otherwise>
+                                                        </c:choose>
+                                                    </c:otherwise>
+                                                </c:choose>--%>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')">${attachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('${ctx}/previewController/previewUrl?fileUrl=${workClientAttachment.url}','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openword','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openexcel','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openppt','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                            <td>${attachment.attachmentUser}</td>
+                                            <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                            <td>
+                                                <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                                <a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/workengineeringproject/workEngineeringProject/deleteFileFromAliyun?attachmentId=${attachment.id}&id=${workEngineeringProject.id}&type=2')" class="btn btn-primary btn-xs" >删除</a>
+                                            </td>
+                                        </tr>
+                                    </c:forEach>
+                                </table>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-35" colspan="4">
+                                <label class="pull-left">其他资料:</label>
+                                <table id="workOtherList"  style="text-align: center;width: 100%;margin-top:10px;"  class="table table-striped table-bordered table-condensed" >
+                                    <tr>
+                                       <%-- <td>序号</td>--%><td>文件名</td><td>上传人</td><td>上传时间</td><td>操作</td>
+                                    </tr>
+                                    <c:forEach items="${workOtherList}" var="attachment" varStatus="status">
+                                        <tr>
+                                            <%--<td>${status.index + 1}</td>--%>
+                                                <%-- <c:choose>
+                                                     <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                                    or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                                    or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                                    or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                         <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                     </c:when>
+                                                     <c:otherwise>
+                                                         <c:choose>
+                                                             <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                                 <td><a href="${attachment.url}">${attachment.attachmentName}</a></td>
+                                                             </c:when>
+                                                             <c:otherwise>
+                                                                 <td><a href="javascript:void(0)" onclick="openDialogViewPre('预览','${ctx}/previewController/previewUrl?fileUrl=${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                             </c:otherwise>
+                                                         </c:choose>
+                                                     </c:otherwise>
+                                                 </c:choose>--%>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'jpg')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'png')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'gif')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'bmp')
+                                                               or fn:containsIgnoreCase(attachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${attachment.url}" width="50" height="50" alt="${attachment.attachmentName}"/></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(attachment.attachmentName,'pdf')}">
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%','1')">${attachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('${ctx}/previewController/previewUrl?fileUrl=${workClientAttachment.url}','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openword','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <td><a href="javascript:void(0)" onclick="preview('预览','${attachment.url}','80%','80%')">${attachment.attachmentName}</a></td>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openexcel','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+                                                            <%--<td><a href="javascript:void(0)" onclick="POBrowser.openWindow('/ruihua/openppt','80%','80%')">${workClientAttachment.attachmentName}</a></td>--%>
+
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                            <td>${attachment.attachmentUser}</td>
+                                            <td><fmt:formatDate value="${attachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                            <td>
+                                                <a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${attachment.url}" class="btn btn-success btn-xs">下载</a>
+                                            </td>
+                                        </tr>
+                                    </c:forEach>
+                                </table>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>价格信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">送审价(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.sendPrice}
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">审定价(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.approvedPrice}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">合同价(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.contractPrice}
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">核增核减额(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.addEditAmount}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">核增核减率(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.addEditRate}
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">咨询标的额(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.consultAmount}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">其中土建造价(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.civilEngineeringCost}
+                            </td>
+
+                            <td class="width-15 active"><label class="pull-right">其中安装造价(元):</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workEngineeringPrice.installationCost}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>合同信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <c:choose>
+                            <c:when test="${workEngineeringProject.isExt eq 1}">
+                                <tr>
+                                    <td class="width-15 active"><label class="pull-right">合同名称:<font color="red">*</font></label></td>
+                                    <td class="width-35" colspan="3">
+                                            ${workEngineeringProject.contractInfoName}
+                                    </td>
+                                </tr>
+                            </c:when>
+                            <c:otherwise>
+                                <tr>
+                                    <td class="width-15 active"><label class="pull-right">合同名称:<font color="red">*</font></label></td>
+                                    <td class="width-35" colspan="3">
+                                            ${workEngineeringProject.contractId.name}
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="width-15 active"><label class="pull-right">合同编号:<font color="red">*</font></label></td>
+                                    <td class="width-35">
+                                            ${workEngineeringProject.contractId.contractNum}
+                                    </td>
+                                </tr>
+                            </c:otherwise>
+                        </c:choose>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>项目信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active">项目名称:</td>
+                            <td class="width-35" colspan="3">
+                                <span title="${workEngineeringProject.projectId.name}">${fns:abbr(workEngineeringProject.projectId.name,30)}</span>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active">项目编号:</td>
+                            <td class="width-35">
+                                <span title="${workEngineeringProject.projectId.number}">${fns:abbr(workEngineeringProject.projectId.number,30)}</span>
+                            </td>
+                            <td class="width-15 active">业务类型:</td>
+                            <td class="width-35">
+                                    ${fns:getMainDictLabel(workEngineeringProject.businessType, 'business_type', '')}
+                            </td>
+
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">预送审金额:</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.preTrialAmount}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>客户信息</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">客户单位:<font color="red">*</font></label></td>
+                            <td class="width-35" colspan="3">
+                                    ${workEngineeringProject.workClientInfo.name}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">联系人姓名:</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.name}
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">职务:</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.position}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right"> 联系方式:</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.linkPhone}
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">E-mail:</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.workClientLinkman.email}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <div class="col-sm-12 m-t-xs">
+                <div class="col-sm-2 gray-bg text-center oneTab">
+                    <label>人员安排</label>
+                </div>
+                <div class="col-sm-10 " >
+                    <table class="table table-striped table-bordered table-hover table-condensed dataTables-example">
+                        <tbody>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">主办公司/部门</br>项目负责人:<font color="red">*</font></label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.hostOfficeMasterName}
+                            </td>
+                            <td class="width-15 active"><label class="pull-right">协办公司/部门</br>项目负责人:</label></td>
+                            <td class="width-35">
+                                    ${workEngineeringProject.jointlyOfficeMasterName}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">主办公司/部门</br>项目组成员:</label></td>
+                            <td class="width-35" colspan="3">
+                                    ${workEngineeringProject.hostOfficeMemberNames}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="width-15 active"><label class="pull-right">协办公司/部门</br>项目组成员:</label></td>
+                            <td class="width-35" colspan="3">
+                                    ${workEngineeringProject.jointlyOfficeMemberNames}
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+                </form:form>
+            </div>
+        </div>
+    </div>
+</div>
+</div>
+</body>
+</html>

+ 87 - 0
src/main/webapp/webpage/modules/workprojectcalc/workProjectCalcBuildForm.jsp

@@ -0,0 +1,87 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>工程计算量底稿管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+		  if(validateForm.form()){
+			  $("#inputForm").submit();
+			  return true;
+		  }
+	
+		  return false;
+		}
+		$(document).ready(function() {
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+			
+		});
+	</script>
+</head>
+<body class="hideScroll">
+		<form:form id="inputForm" modelAttribute="workProjectCalcBuild" action="${ctx}/workprojectcalc/workProjectCalcBuild/save" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+		<sys:message content="${message}"/>	
+		<table class="table table-bordered  table-condensed dataTables-example dataTable no-footer">
+		   <tbody>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">备注信息:</label></td>
+					<td class="width-35">
+						<form:textarea path="remarks" htmlEscape="false" rows="4"    class="form-control "/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">序号:</label></td>
+					<td class="width-35">
+						<form:input path="buildNumber" htmlEscape="false"    class="form-control "/>
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">清单编码/定额编码:</label></td>
+					<td class="width-35">
+						<form:input path="buildCode" htmlEscape="false"    class="form-control "/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">项目名称:</label></td>
+					<td class="width-35">
+						<form:input path="projectName" htmlEscape="false"    class="form-control "/>
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">计量单位:</label></td>
+					<td class="width-35">
+						<form:input path="buildUnit" htmlEscape="false"    class="form-control "/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">计算式/索引:</label></td>
+					<td class="width-35">
+						<form:input path="buildMode" htmlEscape="false"    class="form-control "/>
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">其他:</label></td>
+					<td class="width-35">
+						<form:input path="buildOther" htmlEscape="false"    class="form-control "/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">分项式索引:</label></td>
+					<td class="width-35">
+						<form:input path="buildIndex" htmlEscape="false"    class="form-control "/>
+					</td>
+				</tr>
+		 	</tbody>
+		</table>
+	</form:form>
+</body>
+</html>

+ 150 - 0
src/main/webapp/webpage/modules/workprojectcalc/workProjectCalcBuildList.jsp

@@ -0,0 +1,150 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>工程计算量底稿管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		$(document).ready(function() {
+		});
+	</script>
+</head>
+<body class="gray-bg">
+	<div class="wrapper wrapper-content">
+	<div class="ibox">
+	<div class="ibox-title">
+		<h5>工程计算量底稿列表 </h5>
+		<div class="ibox-tools">
+			<a class="collapse-link">
+				<i class="fa fa-chevron-up"></i>
+			</a>
+			<a class="dropdown-toggle" data-toggle="dropdown" href="#">
+				<i class="fa fa-wrench"></i>
+			</a>
+			<ul class="dropdown-menu dropdown-user">
+				<li><a href="#">选项1</a>
+				</li>
+				<li><a href="#">选项2</a>
+				</li>
+			</ul>
+			<a class="close-link">
+				<i class="fa fa-times"></i>
+			</a>
+		</div>
+	</div>
+    
+    <div class="ibox-content">
+	<sys:message content="${message}"/>
+	
+	<!--查询条件-->
+	<div class="row">
+	<div class="col-sm-12">
+	<form:form id="searchForm" modelAttribute="workProjectCalcBuild" action="${ctx}/workprojectcalc/workProjectCalcBuild/" method="post" class="form-inline">
+		<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+		<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+		<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+		<div class="form-group">
+		 </div>	
+	</form:form>
+	<br/>
+	</div>
+	</div>
+	
+	<!-- 工具栏 -->
+	<div class="row">
+	<div class="col-sm-12">
+		<div class="pull-left">
+			<shiro:hasPermission name="workprojectcalc:workProjectCalcBuild:add">
+				<table:addRow url="${ctx}/workprojectcalc/workProjectCalcBuild/form" title="工程计算量底稿"></table:addRow><!-- 增加按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workprojectcalc:workProjectCalcBuild:edit">
+			    <table:editRow url="${ctx}/workprojectcalc/workProjectCalcBuild/form" title="工程计算量底稿" id="contentTable"></table:editRow><!-- 编辑按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workprojectcalc:workProjectCalcBuild:del">
+				<table:delRow url="${ctx}/workprojectcalc/workProjectCalcBuild/deleteAll" id="contentTable"></table:delRow><!-- 删除按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workprojectcalc:workProjectCalcBuild:import">
+				<table:importExcel url="${ctx}/workprojectcalc/workProjectCalcBuild/import"></table:importExcel><!-- 导入按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workprojectcalc:workProjectCalcBuild:export">
+	       		<table:exportExcel url="${ctx}/workprojectcalc/workProjectCalcBuild/export"></table:exportExcel><!-- 导出按钮 -->
+	       	</shiro:hasPermission>
+	       <button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+		
+			</div>
+		<div class="pull-right">
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+		</div>
+	</div>
+	</div>
+	
+	<!-- 表格 -->
+	<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+		<thead>
+			<tr>
+				<th> <input type="checkbox" class="i-checks"></th>
+				<th  class="sort-column remarks">备注信息</th>
+				<th  class="sort-column buildNumber">序号</th>
+				<th  class="sort-column buildCode">清单编码/定额编码</th>
+				<th  class="sort-column projectName">项目名称</th>
+				<th  class="sort-column buildUnit">计量单位</th>
+				<th  class="sort-column buildMode">计算式/索引</th>
+				<th  class="sort-column buildOther">其他</th>
+				<th  class="sort-column buildIndex">分项式索引</th>
+				<th>操作</th>
+			</tr>
+		</thead>
+		<tbody>
+		<c:forEach items="${page.list}" var="workProjectCalcBuild">
+			<tr>
+				<td> <input type="checkbox" id="${workProjectCalcBuild.id}" class="i-checks"></td>
+				<td><a  href="#" onclick="openDialogView('查看工程计算量底稿', '${ctx}/workprojectcalc/workProjectCalcBuild/form?id=${workProjectCalcBuild.id}','800px', '500px')">
+					${workProjectCalcBuild.remarks}
+				</a></td>
+				<td>
+					${workProjectCalcBuild.buildNumber}
+				</td>
+				<td>
+					${workProjectCalcBuild.buildCode}
+				</td>
+				<td>
+					${workProjectCalcBuild.projectName}
+				</td>
+				<td>
+					${workProjectCalcBuild.buildUnit}
+				</td>
+				<td>
+					${workProjectCalcBuild.buildMode}
+				</td>
+				<td>
+					${workProjectCalcBuild.buildOther}
+				</td>
+				<td>
+					${workProjectCalcBuild.buildIndex}
+				</td>
+				<td>
+					<shiro:hasPermission name="workprojectcalc:workProjectCalcBuild:view">
+						<a href="#" onclick="openDialogView('查看工程计算量底稿', '${ctx}/workprojectcalc/workProjectCalcBuild/form?id=${workProjectCalcBuild.id}','800px', '500px')" class="btn btn-info btn-xs" ><i class="fa fa-search-plus"></i> 查看</a>
+					</shiro:hasPermission>
+					<shiro:hasPermission name="workprojectcalc:workProjectCalcBuild:edit">
+    					<a href="#" onclick="openDialog('修改工程计算量底稿', '${ctx}/workprojectcalc/workProjectCalcBuild/form?id=${workProjectCalcBuild.id}','800px', '500px')" class="btn btn-success btn-xs" ><i class="fa fa-edit"></i> 修改</a>
+    				</shiro:hasPermission>
+    				<shiro:hasPermission name="workprojectcalc:workProjectCalcBuild:del">
+						<a href="${ctx}/workprojectcalc/workProjectCalcBuild/delete?id=${workProjectCalcBuild.id}" onclick="return confirmx('确认要删除该工程计算量底稿吗?', this.href)"   class="btn btn-danger btn-xs"><i class="fa fa-trash"></i> 删除</a>
+					</shiro:hasPermission>
+				</td>
+			</tr>
+		</c:forEach>
+		</tbody>
+	</table>
+	
+		<!-- 分页代码 -->
+	<table:page page="${page}"></table:page>
+	<br/>
+	<br/>
+	</div>
+	</div>
+</div>
+</body>
+</html>

+ 288 - 0
src/main/webapp/webpage/modules/workprojectcalc/workProjectCalcDecorForm.jsp

@@ -0,0 +1,288 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>工程计算量底稿管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+		  if(validateForm.form()){
+			  $("#inputForm").submit();
+			  return true;
+		  }
+	
+		  return false;
+		}
+		$(document).ready(function() {
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+            getCurrentDocumentHei();
+		});
+        function addRow(list, idx, tpl, row){
+            var idx1 = $("#workProjectCalcDecors tr").length;
+            if(list == '#workProjectCalcDecors'){
+                bornTemplete(list, idx, tpl, row, idx1);
+            }
+            var idx2 = $("#workProjectCalcBuilds tr").length;
+            if(list == '#workProjectCalcBuilds'){
+                bornTemplete(list, idx, tpl, row, idx2);
+            }
+        }
+        function bornTemplete(list, idx, tpl, row, idx1){
+            $(list).append(Mustache.render(tpl, {
+                idx: idx, delBtn: true, row: row,
+                order:idx1 + 1
+            }));
+            getCurrentDocumentHei();
+        }
+        function delRow(obj, prefix,othis){
+            var id = $(prefix+"_id");
+            var delFlag = $(prefix+"_delFlag");
+            if (id.val() == ""){
+                delFlag.val("1");
+                $(obj).parent().parent().remove();
+            }else if(delFlag.val() == "0"){
+                delFlag.val("1");
+                $(obj).html("&divide;").attr("title", "撤回删除");
+                $(obj).parent().parent().addClass("error");
+                $(obj).parent().parent().addClass("hide");
+            }else if(delFlag.val() == "1"){
+                delFlag.val("0");
+                $(obj).parent().parent().removeClass("error");
+            }
+            getCurrentDocumentHei(othis)
+        }
+        function getCurrentDocumentHei(obj){
+            var height = $(document).outerHeight();
+            var hei = 0;
+            if(obj){
+                hei = $(obj).find("tr").eq(0).height() || 0;
+			}
+            parent.$("#controltype").attr("height",(height - hei) +"px")
+        }
+	</script>
+</head>
+<body class="hideScroll">
+		<form:form id="inputForm" modelAttribute="workProjectCalcDecor" action="${ctx}/workprojectcalc/workProjectCalcDecor/save" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+		<sys:message content="${message}"/>
+		<input type="hidden" name="projectId" id="projectId">
+			<div class="ibox">
+				<div class="ibox-title" style="min-height:0px;">
+					装饰部分
+				</div>
+				<div class="ibox-content">
+					<a class="btn btn-white btn-sm addBtn" onclick="addRow('#workProjectCalcDecors', workProjectCalcDecorsRowIdx, workProjectCalcDecorsTpl);workProjectCalcDecorsRowIdx = workProjectCalcDecorsRowIdx + 1;" title="新增"><i class="fa fa-plus"></i> 新增</a>
+					<table id="contentTable1" class="table table-striped table-bordered table-condensed">
+						<thead>
+						<tr>
+							<th><font color="red">*</font>序号</th>
+							<th><font color="red">*</font>清单编号/定额编号</th>
+							<th><font color="red">*</font>项目名称</th>
+							<th><font color="red">*</font>计量单位</th>
+							<th><font color="red">*</font>计算式</th>
+							<th><font color="red">*</font>工程量</th>
+							<th><font color="red">*</font>其他</th>
+							<th><font color="red">*</font>工程来源</th>
+							<th width="150px">操作</th>
+						</tr>
+						</thead>
+						<tbody id="workProjectCalcDecors">
+						<c:if test="${not empty workProjectCalcDecor.workProjectCalcDecorList}">
+							<c:forEach items="${workProjectCalcDecor.workProjectCalcDecorList}" var="workProjectCalcDecor" varStatus="index">
+								<tr id="workHandBillDetailList${index.index}">
+									<td class="hide">
+										<input id="workProjectCalcDecorList${index.index}_id" name="workProjectCalcDecorList[${index.index}].id" type="hidden" value="${workProjectCalcDecor.id}"/>
+										<input id="workProjectCalcDecorList${index.index}_delFlag" name="workProjectCalcDecorList[${index.index}].delFlag" type="hidden" value="0"/>
+									</td>
+									<td>
+										<input id="workProjectCalcDecorList${index.index}decorNumber"  name="workProjectCalcDecorList[${index.index}].decorNumber" type="text" value="${workProjectCalcDecor.decorNumber}"    class="form-control required"/>
+									</td>
+
+									<td>
+										<input id="workProjectCalcDecorList${index.index}_decorCode" name="workProjectCalcDecorList[${index.index}].decorCode" type="text" value="${workProjectCalcDecor.decorCode}"    class="form-control required"/>
+									</td>
+									<td>
+										<input id="workProjectCalcDecorList${index.index}_projectName" name="workProjectCalcDecorList[${index.index}].projectName" type="text" value="${workProjectCalcDecor.projectName}"    class="form-control required"/>
+									</td>
+									<td>
+										<input id="workProjectCalcDecorList${index.index}_decorUnit" name="workProjectCalcDecorList[${index.index}].decorUnit" type="text" value="${workProjectCalcDecor.decorUnit}"    class="form-control required"/>
+									</td>
+									<td>
+										<input id="workProjectCalcDecorList${index.index}_decorMode" name="workProjectCalcDecorList[${index.index}].decorMode" type="text" value="${workProjectCalcDecor.decorMode}"    class="form-control required"/>
+									</td>
+									<td>
+										<input id="workProjectCalcDecorList${index.index}_decorSize" name="workProjectCalcDecorList[${index.index}].decorSize" type="text" value="${workProjectCalcDecor.decorSize}"    class="form-control required"/>
+									</td>
+									<td>
+										<input id="workProjectCalcDecorList${index.index}_decorOther" name="workProjectCalcDecorList[${index.index}].decorOther" type="text" value="${workProjectCalcDecor.decorOther}"    class="form-control required"/>
+									</td>
+									<td>
+										<input id="workProjectCalcDecorList${index.index}_decorOrigin" name="workProjectCalcDecorList[${index.index}].decorOrigin" type="text" value="${workProjectCalcDecor.decorOrigin}"    class="form-control required"/>
+									</td>
+									<td class="text-center" style="width:80px;">
+										<span class="btn btn-danger btn-xs" onclick="delRow(this, '#workProjectCalcDecorList${index.index}','#workProjectCalcDecors')" title="删除"><i class="fa fa-trash"></i> 删除</span>
+									</td>
+								</tr>
+							</c:forEach>
+						</c:if>
+						</tbody>
+					</table>
+					<script type="text/template" id="workProjectCalcDecorsTpl">//<!--
+						<tr id="workProjectCalcDecorList{{idx}}">
+							<td class="hide">
+								<input id="workProjectCalcDecorList{{idx}}_id" name="workDeviceRecordList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+								<input id="workProjectCalcDecorList{{idx}}_delFlag" name="workDeviceRecordList[{{idx}}].delFlag" type="hidden" value="0"/>
+							</td>
+							<td>
+								<input id="workProjectCalcDecorList{{idx}}_decorNumber"  name="workProjectCalcDecorList[{{idx}}].decorNumber" type="text" value="{{row.decorNumber}}"    class="form-control required"/>
+							</td>
+							<td>
+								<input id="workProjectCalcDecorList{{idx}}_decorCode"  name="workProjectCalcDecorList[{{idx}}].decorCode" type="text" value="{{row.decorCode}}"    class="form-control required"/>
+							</td>
+							<td>
+								<input id="workProjectCalcDecorList{{idx}}_projectName" name="workProjectCalcDecorList[{{idx}}].projectName" type="text" value="{{row.projectName}}"    class="form-control required"/>
+							</td>
+							<td>
+								<input id="workProjectCalcDecorList{{idx}}_decorUnit" name="workProjectCalcDecorList[{{idx}}].decorUnit" type="text" value="{{row.decorUnit}}"    class="form-control required"/>
+							</td>
+							<td>
+								<input id="workProjectCalcDecorList{{idx}}_decorMode" name="workProjectCalcDecorList[{{idx}}].decorMode" type="text" value="{{row.decorMode}}"    class="form-control required"/>
+							</td>
+							<td>
+								<input id="workProjectCalcDecorList{{idx}}_decorSize" name="workProjectCalcDecorList[{{idx}}].decorSize" type="text" value="{{row.decorMode}}"    class="form-control required"/>
+							</td>
+							<td>
+								<input id="workProjectCalcDecorList{{idx}}_decorOther" name="workProjectCalcDecorList[{{idx}}].decorOther" type="text" value="{{row.decorMode}}"    class="form-control required"/>
+							</td>
+							<td>
+								<input id="workProjectCalcDecorList{{idx}}_decorOrigin" name="workProjectCalcDecorList[{{idx}}].decorOrigin" type="text" value="{{row.decorOrigin}}"    class="form-control required"/>
+							</td>
+							<td class="text-center" style="width:80px;">
+								{{#delBtn}}<span class="btn btn-danger btn-xs" onclick="delRow(this, '#workProjectCalcDecorList{{idx}}','#workProjectCalcDecors')" title="删除"><i class="fa fa-trash"></i> 删除</span>{{/delBtn}}
+							</td>
+						</tr>//-->
+					</script>
+					<script type="text/javascript">
+                        var workProjectCalcDecorsRowIdx = 0, workProjectCalcDecorsTpl = $("#workProjectCalcDecorsTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+					</script>
+				</div>
+			</div>
+			<div class="ibox">
+				<div class="ibox-title" style="min-height:0px;">
+					建筑部分
+				</div>
+				<div class="ibox-content">
+					<a class="btn btn-white btn-sm addBtn" onclick="addRow('#workProjectCalcBuilds', workProjectCalcBuildsRowIdx, workProjectCalcBuildsTpl);workProjectCalcBuildsRowIdx = workProjectCalcBuildsRowIdx + 1;" title="新增"><i class="fa fa-plus"></i> 新增</a>
+					<table id="contentTable2" class="table table-striped table-bordered table-condensed">
+						<thead>
+						<tr>
+							<th><font color="red">*</font>序号</th>
+							<th><font color="red">*</font>清单编号/定额编号</th>
+							<th><font color="red">*</font>项目名称</th>
+							<th><font color="red">*</font>计量单位</th>
+							<th><font color="red">*</font>计算式/索引</th>
+							<th><font color="red">*</font>工程量</th>
+							<th><font color="red">*</font>其他</th>
+							<th><font color="red">*</font>分项数据索引</th>
+							<th width="150px">操作</th>
+						</tr>
+						</thead>
+						<tbody id="workProjectCalcBuilds">
+						<c:if test="${not empty workProjectCalcDecor.workProjectCalcBuildList}">
+							<c:forEach items="${workProjectCalcDecor.workProjectCalcBuildList}" var="workProjectCalcBuild" varStatus="index">
+								<tr id="workHandBillDetailList${index.index}">
+									<td class="hide">
+										<input id="workProjectCalcBuildList${index.index}_id" name="workProjectCalcBuildList[${index.index}].id" type="hidden" value="${workProjectCalcBuild.id}"/>
+										<input id="workProjectCalcBuildList${index.index}_delFlag" name="workProjectCalcBuildList[${index.index}].delFlag" type="hidden" value="0"/>
+									</td>
+									<td>
+										<input id="workProjectCalcBuildList${index.index}buildNumber"  name="workProjectCalcBuildList[${index.index}].buildNumber" type="text" value="${workProjectCalcBuild.buildNumber}"    class="form-control required"/>
+									</td>
+
+									<td>
+										<input id="workProjectCalcBuildList${index.index}_buildCode" name="workProjectCalcBuildList[${index.index}].buildCode" type="text" value="${workProjectCalcBuild.buildCode}"    class="form-control required"/>
+									</td>
+									<td>
+										<input id="workProjectCalcBuildList${index.index}_projectName" name="workProjectCalcBuildList[${index.index}].projectName" type="text" value="${workProjectCalcBuild.projectName}"    class="form-control required"/>
+									</td>
+									<td>
+										<input id="workProjectCalcBuildList${index.index}_buildUnit" name="workProjectCalcBuildList[${index.index}].buildUnit" type="text" value="${workProjectCalcBuild.buildUnit}"    class="form-control required"/>
+									</td>
+									<td>
+										<input id="workProjectCalcBuildList${index.index}_buildMode" name="workProjectCalcBuildList[${index.index}].buildMode" type="text" value="${workProjectCalcBuild.buildMode}"    class="form-control required"/>
+									</td>
+									<td>
+										<input id="workProjectCalcBuildList${index.index}_buildSize" name="workProjectCalcBuildList[${index.index}].buildSize" type="text" value="${workProjectCalcBuild.buildSize}"    class="form-control required"/>
+									</td>
+									<td>
+										<input id="workProjectCalcBuildList${index.index}_buildOther" name="workProjectCalcBuildList[${index.index}].buildOther" type="text" value="${workProjectCalcBuild.buildOther}"    class="form-control required"/>
+									</td>
+									<td>
+										<input id="workProjectCalcBuildList${index.index}_buildIndex" name="workProjectCalcBuildList[${index.index}].buildIndex" type="text" value="${workProjectCalcBuild.buildIndex}"    class="form-control required"/>
+									</td>
+									<td class="text-center" style="width:80px;">
+										<span class="btn btn-danger btn-xs" onclick="delRow(this, '#workProjectCalcBuildList${index.index}','#workProjectCalcBuilds')" title="删除"><i class="fa fa-trash"></i> 删除</span>
+									</td>
+								</tr>
+							</c:forEach>
+						</c:if>
+						</tbody>
+					</table>
+					<script type="text/template" id="workProjectCalcBuildsTpl">//<!--
+				<tr id="workProjectCalcBuildList{{idx}}">
+					<td class="hide">
+						<input id="workProjectCalcBuildList{{idx}}_id" name="workProjectCalcBuildList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+						<input id="workProjectCalcBuildList{{idx}}_delFlag" name="workProjectCalcBuildList[{{idx}}].delFlag" type="hidden" value="0"/>
+					</td>
+					<td>
+						<input id="workProjectCalcBuildList{{idx}}_buildNumber"  name="workProjectCalcBuildList[{{idx}}].buildNumber" type="text" value="{{row.buildNumber}}"    class="form-control required"/>
+					</td>
+					<td>
+						<input id="workProjectCalcBuildList{{idx}}_buildCode"  name="workProjectCalcBuildList[{{idx}}].buildCode" type="text" value="{{row.buildCode}}"    class="form-control required"/>
+					</td>
+					<td>
+						<input id="workProjectCalcBuildList{{idx}}_projectName" name="workProjectCalcBuildList[{{idx}}].projectName" type="text" value="{{row.projectName}}"    class="form-control required"/>
+					</td>
+					<td>
+						<input id="workProjectCalcBuildList{{idx}}_buildUnit" name="workProjectCalcBuildList[{{idx}}].buildUnit" type="text" value="{{row.buildUnit}}"    class="form-control required"/>
+					</td>
+					<td>
+						<input id="workProjectCalcBuildList{{idx}}_buildMode" name="workProjectCalcBuildList[{{idx}}].buildMode" type="text" value="{{row.buildMode}}"    class="form-control required"/>
+					</td>
+					<td>
+						<input id="workProjectCalcBuildList{{idx}}_buildSize" name="workProjectCalcBuildList[{{idx}}].buildSize" type="text" value="{{row.buildSize}}"    class="form-control required"/>
+					</td>
+					<td>
+						<input id="workProjectCalcBuildList{{idx}}_buildOther" name="workProjectCalcBuildList[{{idx}}].buildOther" type="text" value="{{row.buildOther}}"    class="form-control required"/>
+					</td>
+					<td>
+						<input id="workProjectCalcBuildList{{idx}}_buildIndex" name="workProjectCalcBuildList[{{idx}}].buildIndex" type="text" value="{{row.buildIndex}}"    class="form-control required"/>
+					</td>
+					<td class="text-center" style="width:80px;">
+						{{#delBtn}}<span class="btn btn-danger btn-xs" onclick="delRow(this, '#workProjectCalcBuildList{{idx}}','#workProjectCalcBuilds')" title="删除"><i class="fa fa-trash"></i> 删除</span>{{/delBtn}}
+					</td>
+				</tr>//-->
+					</script>
+					<script type="text/javascript">
+                        var workProjectCalcBuildsRowIdx = 0, workProjectCalcBuildsTpl = $("#workProjectCalcBuildsTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+					</script>
+				</div>
+			</div>
+	</form:form>
+</body>
+</html>

+ 120 - 0
src/main/webapp/webpage/modules/workprojectcalc/workProjectCalcDecorFormView.jsp

@@ -0,0 +1,120 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp" %>
+<html>
+<head>
+    <title>工程计算量底稿管理</title>
+    <meta name="decorator" content="default"/>
+</head>
+<body>
+<div class="single-form">
+    <div class="container">
+        <div class="form-group layui-row">
+            <div class="form-group-label"><h2>装饰部分</h2></div>
+            <div class="layui-item layui-col-xs12 form-table-container">
+                <table class="table table-bordered table-condensed no-bottom-margin details">
+                    <thead>
+                    <tr>
+                        <th><font color="red">*</font>序号</th>
+                        <th><font color="red">*</font>清单编号/定额编号</th>
+                        <th><font color="red">*</font>项目名称</th>
+                        <th><font color="red">*</font>计量单位</th>
+                        <th><font color="red">*</font>计算式</th>
+                        <th><font color="red">*</font>工程量</th>
+                        <th><font color="red">*</font>其他</th>
+                        <th><font color="red">*</font>工程来源</th>
+                    </tr>
+                    </thead>
+                    <tbody>
+                    <c:if test="${not empty workProjectCalcDecor.workProjectCalcDecorList}">
+                        <c:forEach items="${workProjectCalcDecor.workProjectCalcDecorList}" var="workProjectCalcDecor"
+                                   varStatus="index">
+                            <tr id="workHandBillDetailList${index.index}">
+                                <td>
+                                        ${workProjectCalcDecor.decorNumber}
+                                </td>
+
+                                <td>
+                                        ${workProjectCalcDecor.decorCode}
+                                </td>
+                                <td>
+                                        ${workProjectCalcDecor.projectName}
+                                </td>
+                                <td>
+                                        ${workProjectCalcDecor.decorUnit}
+                                </td>
+                                <td>
+                                        ${workProjectCalcDecor.decorMode}
+                                </td>
+                                <td>
+                                        ${workProjectCalcDecor.decorSize}
+                                </td>
+                                <td>
+                                        ${workProjectCalcDecor.decorOther}
+                                </td>
+                                <td>
+                                        ${workProjectCalcDecor.decorOrigin}
+                                </td>
+                            </tr>
+                        </c:forEach>
+                    </c:if>
+                    </tbody>
+                </table>
+            </div>
+        </div>
+        <div class="form-group layui-row">
+            <div class="form-group-label"><h2>建筑部分</h2></div>
+            <div class="layui-item layui-col-xs12 form-table-container">
+                <table class="table table-bordered table-condensed no-bottom-margin details">
+                    <thead>
+                    <tr>
+                        <th><font color="red">*</font>序号</th>
+                        <th><font color="red">*</font>清单编号/定额编号</th>
+                        <th><font color="red">*</font>项目名称</th>
+                        <th><font color="red">*</font>计量单位</th>
+                        <th><font color="red">*</font>计算式/索引</th>
+                        <th><font color="red">*</font>工程量</th>
+                        <th><font color="red">*</font>其他</th>
+                        <th><font color="red">*</font>分项数据索引</th>
+                    </tr>
+                    </thead>
+                    <tbody>
+                    <c:if test="${not empty workProjectCalcDecor.workProjectCalcBuildList}">
+                        <c:forEach items="${workProjectCalcDecor.workProjectCalcBuildList}" var="workProjectCalcBuild"
+                                   varStatus="index">
+                            <tr id="workHandBillDetailList${index.index}">
+                                <td>
+                                        ${workProjectCalcBuild.buildNumber}
+                                </td>
+
+                                <td>
+                                        ${workProjectCalcBuild.buildCode}
+                                </td>
+                                <td>
+                                        ${workProjectCalcBuild.projectName}
+                                </td>
+                                <td>
+                                        ${workProjectCalcBuild.buildUnit}
+                                </td>
+                                <td>
+                                        ${workProjectCalcBuild.buildMode}
+                                </td>
+                                <td>
+                                        ${workProjectCalcBuild.buildSize}
+                                </td>
+                                <td>
+                                        ${workProjectCalcBuild.buildOther}
+                                </td>
+                                <td>
+                                        ${workProjectCalcBuild.buildIndex}
+                                </td>
+                            </tr>
+                        </c:forEach>
+                    </c:if>
+                    </tbody>
+                </table>
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+</html>

+ 158 - 0
src/main/webapp/webpage/modules/workprojectcalc/workProjectCalcDecorList.jsp

@@ -0,0 +1,158 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>工程计算量底稿管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		$(document).ready(function() {
+		});
+	</script>
+</head>
+<body class="gray-bg">
+	<div class="wrapper wrapper-content">
+	<div class="ibox">
+	<div class="ibox-title">
+		<h5>工程计算量底稿列表 </h5>
+		<div class="ibox-tools">
+			<a class="collapse-link">
+				<i class="fa fa-chevron-up"></i>
+			</a>
+			<a class="dropdown-toggle" data-toggle="dropdown" href="#">
+				<i class="fa fa-wrench"></i>
+			</a>
+			<ul class="dropdown-menu dropdown-user">
+				<li><a href="#">选项1</a>
+				</li>
+				<li><a href="#">选项2</a>
+				</li>
+			</ul>
+			<a class="close-link">
+				<i class="fa fa-times"></i>
+			</a>
+		</div>
+	</div>
+    
+    <div class="ibox-content">
+	<sys:message content="${message}"/>
+	
+	<!--查询条件-->
+	<div class="row">
+	<div class="col-sm-12">
+	<form:form id="searchForm" modelAttribute="workProjectCalcDecor" action="${ctx}/workprojectcalc/workProjectCalcDecor/" method="post" class="form-inline">
+		<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+		<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+		<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+		<div class="form-group">
+		 </div>	
+	</form:form>
+	<br/>
+	</div>
+	</div>
+	
+	<!-- 工具栏 -->
+	<div class="row">
+	<div class="col-sm-12">
+		<div class="pull-left">
+			<shiro:hasPermission name="workprojectcalc:workProjectCalcDecor:add">
+				<table:addRow url="${ctx}/workprojectcalc/workProjectCalcDecor/form" title="工程计算量底稿"></table:addRow><!-- 增加按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workprojectcalc:workProjectCalcDecor:edit">
+			    <table:editRow url="${ctx}/workprojectcalc/workProjectCalcDecor/form" title="工程计算量底稿" id="contentTable"></table:editRow><!-- 编辑按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workprojectcalc:workProjectCalcDecor:del">
+				<table:delRow url="${ctx}/workprojectcalc/workProjectCalcDecor/deleteAll" id="contentTable"></table:delRow><!-- 删除按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workprojectcalc:workProjectCalcDecor:import">
+				<table:importExcel url="${ctx}/workprojectcalc/workProjectCalcDecor/import"></table:importExcel><!-- 导入按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workprojectcalc:workProjectCalcDecor:export">
+	       		<table:exportExcel url="${ctx}/workprojectcalc/workProjectCalcDecor/export"></table:exportExcel><!-- 导出按钮 -->
+	       	</shiro:hasPermission>
+	       <button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+
+			</div>
+		<div class="pull-right">
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+		</div>
+	</div>
+	</div>
+	
+	<!-- 表格 -->
+	<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+		<thead>
+			<tr>
+				<th> <input type="checkbox" class="i-checks"></th>
+				<th  class="sort-column remarks">备注信息</th>
+				<th  class="sort-column decorNumber">序号</th>
+				<th  class="sort-column decorCode">清单编码/定额编码</th>
+				<th  class="sort-column projectName">项目名称</th>
+				<th  class="sort-column decorUnit">计量单位</th>
+				<th  class="sort-column decorMode">计算式</th>
+				<th  class="sort-column decorSize">工程量</th>
+				<th  class="sort-column decorOther">其他</th>
+				<th  class="sort-column decorOrigin">工程量来源</th>
+				<th  class="sort-column projectId">项目编号</th>
+				<th>操作</th>
+			</tr>
+		</thead>
+		<tbody>
+		<c:forEach items="${page.list}" var="workProjectCalcDecor">
+			<tr>
+				<td> <input type="checkbox" id="${workProjectCalcDecor.id}" class="i-checks"></td>
+				<td><a  href="#" onclick="openDialogView('查看工程计算量底稿', '${ctx}/workprojectcalc/workProjectCalcDecor/form?id=${workProjectCalcDecor.id}','800px', '500px')">
+					${workProjectCalcDecor.remarks}
+				</a></td>
+				<td>
+					${workProjectCalcDecor.decorNumber}
+				</td>
+				<td>
+					${workProjectCalcDecor.decorCode}
+				</td>
+				<td>
+					${workProjectCalcDecor.projectName}
+				</td>
+				<td>
+					${workProjectCalcDecor.decorUnit}
+				</td>
+				<td>
+					${workProjectCalcDecor.decorMode}
+				</td>
+				<td>
+					${workProjectCalcDecor.decorSize}
+				</td>
+				<td>
+					${workProjectCalcDecor.decorOther}
+				</td>
+				<td>
+					${workProjectCalcDecor.decorOrigin}
+				</td>
+				<td>
+					${workProjectCalcDecor.projectId}
+				</td>
+				<td>
+					<shiro:hasPermission name="workprojectcalc:workProjectCalcDecor:view">
+						<a href="#" onclick="openDialogView('查看工程计算量底稿', '${ctx}/workprojectcalc/workProjectCalcDecor/form?id=${workProjectCalcDecor.id}','800px', '500px')" class="btn btn-info btn-xs" ><i class="fa fa-search-plus"></i> 查看</a>
+					</shiro:hasPermission>
+					<shiro:hasPermission name="workprojectcalc:workProjectCalcDecor:edit">
+    					<a href="#" onclick="openDialog('修改工程计算量底稿', '${ctx}/workprojectcalc/workProjectCalcDecor/form?id=${workProjectCalcDecor.id}','800px', '500px')" class="btn btn-success btn-xs" ><i class="fa fa-edit"></i> 修改</a>
+    				</shiro:hasPermission>
+    				<shiro:hasPermission name="workprojectcalc:workProjectCalcDecor:del">
+						<a href="${ctx}/workprojectcalc/workProjectCalcDecor/delete?id=${workProjectCalcDecor.id}" onclick="return confirmx('确认要删除该工程计算量底稿吗?', this.href)"   class="btn btn-danger btn-xs"><i class="fa fa-trash"></i> 删除</a>
+					</shiro:hasPermission>
+				</td>
+			</tr>
+		</c:forEach>
+		</tbody>
+	</table>
+
+		<!-- 分页代码 -->
+	<table:page page="${page}"></table:page>
+	<br/>
+	<br/>
+	</div>
+	</div>
+</div>
+</body>
+</html>

+ 97 - 0
src/main/webapp/webpage/modules/workprojectcompletion/projectPreList.jsp

@@ -0,0 +1,97 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目竣工附件查看</title>
+	<meta name="decorator" content="default"/>
+	<style type="text/css">
+		.table{
+			margin-bottom: 0px;
+		}
+	</style>
+	<script type="text/javascript">
+		$(function(){
+		    var oneSize = $(".oneTab").size();
+		    for(var i = 0;i < oneSize;i++){
+                var hei = $(".twoTab:eq("+i+")").parent().height();
+                $(".oneTab:eq("+i+")").css("height",hei)
+                    .css("vertical-align","middle")
+                    .css("line-height",hei+"px")
+                $(".twoTab:eq("+i+")").css("height",hei);
+			}
+		})
+		function urlRedict(id,file,attach,attachment){
+            var index = parent.layer.load(0, {shade: false});
+            $.post("${ctx}/workfullmanage/workFullManage/deleteFile",
+				{"id":id,"file":file,"attach":attach,"attachment":attachment},
+				function(result){
+		        	var d = JSON.parse(result);
+					if(d.str){
+					    location.reload();
+					    parent.layer.msg("删除成功!!!",{icon:6});
+					    parent.layer.close(index);
+					}
+				});
+		}
+	</script>
+</head>
+<body class="hideScroll">
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+		<div class="ibox-content">
+			<div class="col-sm-12">
+				<div class="col-sm-2 gray-bg text-center oneTab">
+					<label>附件信息</label>
+				</div>
+				<div class="col-sm-10 " >
+					<!-- 表格 -->
+					<table class="table table-striped table-bordered table-hover table-condensed dataTables-example twoTab">
+						<thead>
+							<tr>
+								<%--<th>序号</th>--%>
+								<th>文件名称</th>
+								<th>上传人</th>
+								<th>上传时间</th>
+								<th>操作</th>
+							</tr>
+						</thead>
+						<tbody>
+							<c:forEach items="${list}" var="workClientAttachment" varStatus="status">
+								<tr>
+									<%--<td>${status.index + 1}</td>--%>
+									<%--<td>${workAttach.attachmentName}</td>--%>
+									<c:choose>
+										<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+													   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+													   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+													   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+											<td><img src="${workClientAttachment.url}" width="50" height="50" alt="${workClientAttachment.attachmentName}"/></td>
+										</c:when>
+										<c:otherwise>
+											<c:choose>
+												<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+													<td><a href="${workClientAttachment.url}">${workClientAttachment.attachmentName}</a></td>
+												</c:when>
+												<c:otherwise>
+													<td><a href="javascript:void(0)" onclick="openDialogViewPre('预览','${ctx}/previewController/previewUrl?fileUrl=${workClientAttachment.url}','80%','80%')">${workClientAttachment.attachmentName}</a></td>
+												</c:otherwise>
+											</c:choose>
+										</c:otherwise>
+									</c:choose>
+									<td>${workClientAttachment.createBy.name}</td>
+									<td><fmt:formatDate value="${workClientAttachment.createDate}" pattern="yyyy-MM-dd HH:mm:ss" /> </td>
+									<td>
+										<a href="${ctx}/workfullmanage/workFullManage/downLoadAttach?file=${workClientAttachment.url}" class="btn btn-success btn-xs">下载</a>
+										<%--<a href="javascript:void(0)" onclick=urlRedict("${id}","${workAttach.url}","${workAttach.id}","${workAttach.attachmentFlag}") class="btn btn-danger btn-xs">删除</a>--%>
+									</td>
+								</tr>
+							</c:forEach>
+						</tbody>
+					</table>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+</body>
+</html>

+ 327 - 0
src/main/webapp/webpage/modules/workprojectcompletion/workFullManageCompletionList.jsp

@@ -0,0 +1,327 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目竣工</title>
+	<meta name="decorator" content="default"/>
+	<%@include file="/webpage/include/treetable.jsp" %>
+	<script type="text/javascript">
+        $(function(){
+            $("#treeTable").treeTable({expandLevel : 2,column:1}).show();
+        });
+        function openDialogre(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['提交','暂存','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    var $document = iframeWin.contentWindow.document;
+                    var projectId = $($document.getElementById("projectId")).val();
+                    var id = $($document.getElementById("id")).val();
+                    location.href="${ctx}/workprojectcompletion/workProjectCompletion/save?id="+id+"&projectId="+projectId;
+                    setTimeout(function(){
+                        top.layer.close(index);
+                    },0);
+                },
+                btn2: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    var $document = iframeWin.contentWindow.document;
+                    var projectId = $($document.getElementById("projectId")).val();
+                    var id = $($document.getElementById("id")).val();
+                    location.href="${ctx}/workprojectcompletion/workProjectCompletion/store?id="+id+"&projectId="+projectId;
+                    setTimeout(function(){
+                        top.layer.close(index);
+                    },0);
+                },
+
+                cancel: function(index){
+                }
+            });
+        }
+        function contractOpenDialogre(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['重新申请','撤回','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+//                    var $document = iframeWin.contentWindow.document;
+//                    var projectId = $($document.getElementById("projectId")).val();
+//                    var id = $($document.getElementById("id")).val();
+                    <%--location.href="${ctx}/workprojectcompletion/workProjectCompletion/saveAudit?id="+id+"&projectId="+projectId;--%>
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        top.layer.close(index);
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+//                    var $document = iframeWin.contentWindow.document;
+//                    var projectId = $($document.getElementById("projectId")).val();
+//                    var id = $($document.getElementById("id")).val();
+                    <%--location.href="${ctx}/workprojectcompletion/workProjectCompletion/saveAudit?id="+id+"&projectId="+projectId;--%>
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        top.layer.close(index);
+                    }
+                    return false;
+                },
+                btn3: function(index){
+                }
+            });
+
+        }
+	</script>
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+		<div class="ibox-title" style="height: 70px;">
+			<h5>
+				<ul class="nav nav-tabs">
+					<li class="active"><a href="${ctx}/workprojectcompletion/workProjectCompletion/workFullManageList">项目竣工管理</a></li>
+					<li><a href="${ctx}/workprojectcompletion/workProjectCompletion/toDoList">待办任务</a></li>
+					<li ><a href="${ctx}/workprojectcompletion/workProjectCompletion/HistoryList">已办任务</a></li>
+				</ul>
+			</h5>
+			<%--<div class="ibox-tools">
+				<a class="collapse-link">
+					<i class="fa fa-chevron-up"></i>
+				</a>
+				<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+					<i class="fa fa-wrench"></i>
+				</a>
+
+			</div>--%>
+		</div>
+
+		<div class="ibox-content">
+			<sys:message content="${message}"/>
+
+			<!--查询条件-->
+			<div class="row">
+				<div class="col-sm-12">
+					<form:form id="searchForm" modelAttribute="workFullManage" action="${ctx}/workprojectcompletion/workProjectCompletion/workFullManageList" method="post" class="form-inline">
+						<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+						<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+						<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+						<a href="#" id="moresee" class="fa fa-chevron-down" style="float: right;">更多</a>
+						<div class="form-group">
+							<label>项目编号:</label>
+							<form:input path="fullProjectNumber" htmlEscape="false"  class="form-control required"/>
+							<label>项目名称:</label>
+							<form:input path="fullProjectName" htmlEscape="false"    class="form-control required"/>
+							<p></p>
+						</div>
+					</form:form>
+					<br/>
+				</div>
+			</div>
+
+			<!-- 工具栏 -->
+			<div class="row">
+				<div class="col-sm-12">
+					<div class="pull-right">
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+						<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+					</div>
+				</div>
+			</div>
+
+			<!-- 表格 -->
+			<table id="treeTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+				<thead>
+				<tr>
+					<%--<th> <input type="checkbox" class="i-checks"></th>--%>
+					<%--<th  class="sort-column totalFullName">总项目名称</th>--%>
+					<th style="text-align: center;width: 20%"  class="sort-column fullProjectName">项目名称</th>
+					<th style="text-align: center;width: 20%"  class="sort-column ciName">客户单位</th>
+					<th style="text-align: center;width: 10%"  class="sort-column ''">项目负责人</th>
+					<th style="text-align: center;width: 13%"  class="sort-column createDate">创建日期</th>
+					<th style="text-align: center;width: 8%"  class="sort-column fullProjectStatus">当前状态</th>
+					<th style="text-align: center;width: 8%"  class="sort-column ''">项目竣工</th>
+					<th style="text-align: center;width: 8%"  class="sort-column ''">流程追踪</th>
+					<th style="text-align: center;width: 8%">操作</th>
+				</tr>
+				</thead>
+				<tbody>
+				<c:choose>
+					<c:when test="${not empty page.list}">
+						<c:forEach items="${page.list}" var="workFullManage">
+							<tr id="${workFullManage.id}" pId="${workFullManage.totalFullId ne '1'?workFullManage.totalFullId:'0'}">
+								<%--<td> <input type="checkbox" id="${workFullManage.id}" class="i-checks"></td>--%>
+								<%--<td>--%>
+									<%--<span title="${workFullManage.fullProjectNumber}">${fns:abbr(workFullManage.fullProjectNumber,30)}</span>--%>
+								<%--</td>--%>
+								<%--<td>--%>
+									<%--<a  href="javascript:void(0)" onclick="openDialogView('查看项目登记', '${ctx}/workfullmanage/workFullManage/form?id=${workFullManage.totalFullId}&tabId=0','80%','80%')">--%>
+										<%--<span title="${workFullManage.totalFullName}">${fns:abbr(workFullManage.totalFullName,30)}</span>--%>
+									<%--</a>--%>
+								<%--</td>--%>
+								<td>
+									<a  href="javascript:void(0)" onclick="openDialogView('查看项目登记', '${ctx}/workfullmanage/workFullManage/form?id=${workFullManage.id}&tabId=0','80%','80%')">
+										<span title="${workFullManage.fullProjectName}">${fns:abbr(workFullManage.fullProjectName,30)}</span>
+									</a>
+								</td>
+								<td>
+									<a  href="javascript:void(0)" onclick="openDialogView('查看客户合同信息', '${ctx}/workfullmanage/workFullManage/form?id=${workFullManage.id}&tabId=3','80%','80%')">
+										<span title="${workFullManage.ciName}">${fns:abbr(workFullManage.ciName,30)}</span>
+									</a>
+								</td>
+								<td>
+									<span title="${workFullManage.hostMasterName}">${fns:abbr(workFullManage.hostMasterName,30)}</span>
+								</td>
+								<td>
+									<fmt:formatDate value="${workFullManage.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
+								</td>
+								<td>
+									<c:choose>
+										<c:when test="${empty workFullManage.workProjectCompletion.projectStatus}">
+											未开始
+										</c:when>
+										<c:otherwise>
+											${fns:getDictLabel(workFullManage.workProjectCompletion.projectStatus, 'project_complete_status', '')}
+										</c:otherwise>
+									</c:choose>
+								</td>
+
+								<td>
+									<div style="text-align: center">
+									<c:choose>
+										<c:when test="${workFullManage.fullProjectStatus >= 4}">
+											<c:choose>
+												<c:when test="${workFullManage.workProjectCompletion.projectStatus == 2 && workFullManage.queryCon eq 'true'}">
+													<c:choose>
+														<c:when test="${workFullManage.workProjectCompletion.createBy.id == fns:getUser().id}">
+															<a href="javascript:void(0)" onclick="contractOpenDialogre('项目竣工','${ctx}/workprojectcompletion/workProjectCompletion/form?id=${workFullManage.workProjectCompletion.id}&projectId=${workFullManage.id}&tabId=1','80%','80%')" class="btn btn-info btn-xs">项目竣工</a>
+														</c:when>
+														<c:otherwise>
+															<a href="javascript:parent.layer.msg('只有登记人能操作',{icon:5})" class="btn btn-default btn-xs">项目竣工</a>
+														</c:otherwise>
+													</c:choose>
+												</c:when>
+												<c:otherwise>
+													<c:choose>
+														<c:when test="${workFullManage.workProjectCompletion.projectStatus == 0 or workFullManage.workProjectCompletion.projectStatus == 4  or empty workFullManage.workProjectCompletion.projectStatus}">
+															<c:choose>
+																<c:when test="${workFullManage.createBy.id == fns:getUser().id}">
+																	<a href="javascript:void(0)" onclick="openDialogre('项目竣工','${ctx}/workprojectcompletion/workProjectCompletion/form?id=${workFullManage.workProjectCompletion.id}&projectId=${workFullManage.id}','80%','80%')" class="btn btn-info btn-xs">项目竣工</a>
+																</c:when>
+																<c:otherwise>
+																	<a href="javascript:parent.layer.msg('只有登记人能操作',{icon:5})" class="btn btn-default btn-xs">项目竣工</a>
+																</c:otherwise>
+															</c:choose>
+														</c:when>
+														<c:otherwise>
+															<c:choose>
+																<c:when test="${workFullManage.workProjectCompletion.projectStatus == 3}">
+																	<a href="javascript:parent.layer.msg('项目竣工已通过,不能再次申请',{icon:5})" class="btn btn-default btn-xs">项目竣工</a>
+																</c:when>
+																<c:otherwise>
+																	<a href="javascript:parent.layer.msg('当前项目竣工审核,不能再次申请',{icon:5})" class="btn btn-default btn-xs">项目竣工</a>
+																</c:otherwise>
+															</c:choose>
+														</c:otherwise>
+													</c:choose>
+												</c:otherwise>
+											</c:choose>
+										</c:when>
+										<c:otherwise>
+												<a href="javascript:parent.layer.msg('还未到项目竣工阶段,暂不能操作',{icon:5})" class="btn btn-default btn-xs">项目竣工</a>
+										</c:otherwise>
+									</c:choose>
+									</div>
+								</td>
+								<td>
+									<div style="text-align: center">
+									<c:choose>
+										<c:when test="${not empty workFullManage.workProjectCompletion.projectStatus}">
+											<a  href="javascript:void(0)" onclick="openDialogView('流程追踪', '${ctx}/workprojectcompletion/workProjectCompletion/getProcess?processInstanceId=${workFullManage.workProjectCompletion.processInstanceId}','80%','80%')"class="btn btn-info btn-xs">
+												流程追踪
+											</a>
+										</c:when>
+										<c:otherwise>
+											<a href="javascript:parent.layer.msg('当前流程未启动,暂无流程!',{icon:5})" class="btn btn-default btn-xs">流程追踪</a>
+										</c:otherwise>
+									</c:choose>
+									</div>
+								</td>
+								<td>
+									<div style="text-align: center">
+									<a href="javascript:void(0)" onclick="openDialogView('查看项目竣工信息', '${ctx}/workprojectcompletion/workProjectCompletion/lookForm?id=${workFullManage.workProjectCompletion.id}&projectId=${workFullManage.id}','80%','80%')" class="btn btn-info btn-xs" >查看</a>
+									</div>
+								</td>
+							</tr>
+						</c:forEach>
+					</c:when>
+					<c:otherwise>
+						<tr>
+							<td colspan="9" align="center">暂无数据</td>
+						</tr>
+					</c:otherwise>
+				</c:choose>
+				</tbody>
+			</table>
+
+			<!-- 分页代码 -->
+			<table:page page="${page}"></table:page>
+			<br/>
+			<br/>
+		</div>
+	</div>
+</div>
+</body>
+</html>

+ 201 - 0
src/main/webapp/webpage/modules/workprojectcompletion/workProjectCompletionEdit.jsp

@@ -0,0 +1,201 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>发起项目竣工</title>
+	<meta name="decorator" content="default"/>
+	<style type="text/css">
+		.table{
+			margin-bottom: 0px;
+		}
+	</style>
+	<script>
+        var validateForm;
+        $(function(){
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+            var id = "${workProjectCompletionInfo.id}";
+            for (var i = 0; i < 12 ;i++){
+                var indexLoad;
+                var file_type = $("#file_type"+i).val();
+                $("#file-qiye"+i).fileinput('refresh',
+                    {
+                        showUpload: false,
+                        uploadAsync:true,
+                        dropZoneEnabled:false,
+                        uploadUrl : '${ctx}/workprojectcompletion/workProjectCompletion/uploadFile',
+                        uploadExtraData:{
+                            "id":id,	//项目id
+                            "file_type":file_type
+                        },
+                        showCaption: false,
+                        showPreview: false,
+                        browseIcon:'',
+                        browseClass: "none",
+                        browseLabel: "<button class='btn btn-info btn-xs'>上传附件</button>",
+                        showRemove : false,
+                        showCancel : false,
+
+                        progressUploadThreshold:99,
+                        allowedFileExtensions : [ 'doc', 'xls', 'jpg', 'png',
+                            'xlsx', 'docx' ],
+                    }).on('fileloaded', function(event, numFiles, label) {
+                    indexLoad = parent.layer.load(0, {shade: false});
+                    $(this).fileinput('upload');
+                }).on('filebatchuploadsuccess',function(event, file, previewId, index, reader) {
+                    parent.layer.msg("上传成功",{icon:6});
+                    parent.layer.close(indexLoad);
+                });
+            }
+            $(".kv-upload-progress").remove();
+            var oneSize = $(".oneTab").size();
+            for(var i = 0;i < oneSize;i++){
+                var hei = $(".twoTab:eq("+i+")").parent().height();
+                $(".oneTab:eq("+i+")").css("height",hei)
+                    .css("vertical-align","middle")
+                    .css("line-height",hei+"px")
+                $(".twoTab:eq("+i+")").css("height",hei);
+            }
+        });
+        function doSubmit(obj){
+            // 回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                if(obj == 1) {
+                    $("#flag").val("yes");
+                }else {
+                    $("#flag").val("no");
+                }
+                $("#inputForm").submit();
+                return true;
+            }
+            return false;
+        }
+
+	</script>
+</head>
+<body class="hideScroll">
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+		<div class="ibox-content">
+			<div class="col-sm-12">
+				<div class="col-sm-2 gray-bg text-center oneTab">
+					<label>项目信息</label>
+				</div>
+				<div class="col-sm-10 ">
+				<form:form id="inputForm" modelAttribute="workProjectCompletionInfo" action="${ctx}/workprojectcompletion/workProjectCompletion/saveAudit" method="post" class="form-horizontal">
+					<form:hidden path="id"/>
+					<form:hidden path="act.taskId"/>
+					<form:hidden path="act.taskName"/>
+					<form:hidden path="act.taskDefKey"/>
+					<form:hidden path="act.procInsId"/>
+					<form:hidden path="act.procDefId"/>
+					<form:hidden id="flag" path="act.flag"/>
+					<sys:message content="${message}"/>
+					<table class="table table-striped table-bordered table-hover table-condensed dataTables-example twoTab">
+						<tbody>
+						<tr>
+							<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目编号:</label></td>
+							<td class="width-35">
+								${workFullManage.fullProjectNumber}
+								<input type="hidden" value="${workFullManage.id}" id = "projectId">
+								<input type="hidden" value="${workProjectCompletionInfo.id}" id = "id">
+							</td>
+							<td class="width-15 active"><label class="pull-right">登记日期:</label></td>
+							<td class="width-35">
+								<fmt:formatDate value="${workFullManage.createDate}" pattern="yyyy年MM月dd日" type="date" dateStyle="full"/>
+
+							</td>
+						</tr>
+						<tr>
+							<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目名称:</label></td>
+							<td class="width-30" colspan="3">
+								${workFullManage.fullProjectName}
+							</td>
+						</tr>
+						</tbody>
+					</table>
+				</form:form>
+				</div>
+			</div>
+			<div class="col-sm-12 m-t-xs">
+				<div class="col-sm-2 gray-bg text-center oneTab">
+					<label>文件信息</label>
+				</div>
+				<div class="col-sm-10 " >
+					<table class="table table-striped table-bordered table-hover table-condensed dataTables-example twoTab">
+						<thead>
+							<tr>
+								<th >序号</th>
+								<th >文件类型</th>
+								<th >附件表</th>
+								<th>上传附件</th>
+							</tr>
+						</thead>
+						<tbody>
+							<tr>
+								<td>1</td>
+								<td>结算阶段初审</td>
+								<td>
+									<%--<a href="javascript:void(0)" onclick="openDialogView('附件信息','${ctx}/workprojectcompletion/workProjectCompletion/queryInfoToFile?id=${workProjectCompletionInfo.id}&attachment=58','80%','80%')" class="btn btn-info btn-xs">查看</a>
+									--%><a href="javascript:void(0)" onclick="openDialogView('附件信息','${ctx}/workfullmanage/workFullManage/queryInfoToFile?id=${workFullManage.id}&attachment=58','80%','80%')" class="btn btn-info btn-xs">查看</a>
+								</td>
+								<td>
+									<div class="table-responsive">
+										<div class="kv-main" style="text-align: center;vertical-align: middle;">
+											<form enctype="multipart/form-data">
+												<input type="hidden" id="file_root7">
+												<input type="hidden" id="file_name7">
+												<input type="hidden" id="file_type7" value="58">
+												<div class="form-group" style="margin-left: 0; margin-right: 0;">
+													<input id="file-qiye7" name="myFile" type="file" class="file">
+												</div>
+											</form>
+										</div>
+									</div>
+								</td>
+							</tr>
+							<tr>
+								<td>1</td>
+								<td>送审结算清单</td>
+								<td>
+									<%--<a href="javascript:void(0)" onclick="openDialogView('附件信息','${ctx}/workprojectcompletion/workProjectCompletion/queryInfoToFile?id=${workProjectCompletionInfo.id}&attachment=59','80%','80%')" class="btn btn-info btn-xs">查看</a>
+									--%><a href="javascript:void(0)" onclick="openDialogView('附件信息','${ctx}/workfullmanage/workFullManage/queryInfoToFile?id=${workFullManage.id}&attachment=59','80%','80%')" class="btn btn-info btn-xs">查看</a>
+								</td>
+								<td>
+									<div class="table-responsive" style="text-align: center;vertical-align: middle;">
+										<div class="kv-main">
+											<form enctype="multipart/form-data">
+												<input type="hidden" id="file_root8">
+												<input type="hidden" id="file_name8">
+												<input type="hidden" id="file_type8" value="59">
+												<div class="form-group" style="margin-left: 0; margin-right: 0;">
+													<input id="file-qiye8" name="myFile" type="file" class="file">
+												</div>
+											</form>
+										</div>
+									</div>
+								</td>
+							</tr>
+						</tbody>
+					</table>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+</body>
+</html>
+

+ 205 - 0
src/main/webapp/webpage/modules/workprojectcompletion/workProjectCompletionForm.jsp

@@ -0,0 +1,205 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>发起项目竣工</title>
+	<meta name="decorator" content="default"/>
+	<style type="text/css">
+		.table{
+			margin-bottom: 0px;
+		}
+	</style>
+	<script>
+        $(function(){
+            $("#attachment_btn_qiye58").click(function () {
+                $("#attachment_file_qiye58").click();
+            });
+            $("#attachment_btn_qiye59").click(function () {
+                $("#attachment_file_qiye59").click();
+            });
+            var id = "${workFullManage.id}";
+            for (var i = 0; i < 2 ;i++){
+                var indexLoad;
+                var file_type = $("#file_type"+i).val();
+                $("#file-qiye"+i).fileinput('refresh',
+                    {
+                        showUpload: false,
+                        uploadAsync:true,
+                        dropZoneEnabled:false,
+                        uploadUrl : '${ctx}/workfullmanage/workFullManage/uploadFile',
+                        uploadExtraData:{
+                            "id":id,	//项目id
+                            "file_type":file_type
+                        },
+                        showCaption: false,
+                        showPreview: false,
+                        browseIcon:'',
+                        browseClass: "none",
+                        browseLabel: "<button class='btn btn-info btn-xs'>上传附件</button>",
+                        showRemove : false,
+                        showCancel : false,
+
+                        progressUploadThreshold:99,
+                        allowedFileExtensions : [ 'doc', 'xls', 'jpg', 'png',
+                            'xlsx', 'docx','html','bmp','pdf','rar','txt' ],
+                    }).on('fileloaded', function(event, numFiles, label) {
+                    indexLoad = parent.layer.load(0, {shade: false});
+                    $(this).fileinput('upload');
+                }).on('filebatchuploadsuccess',function(event, file, previewId, index, reader) {
+                    parent.layer.msg("上传成功",{icon:6});
+                    parent.layer.close(indexLoad);
+                });
+            }
+            $(".kv-upload-progress").remove();
+            var oneSize = $(".oneTab").size();
+            for(var i = 0;i < oneSize;i++){
+                var hei = $(".twoTab:eq("+i+")").parent().height();
+                $(".oneTab:eq("+i+")").css("height",hei)
+                    .css("vertical-align","middle")
+                    .css("line-height",hei+"px")
+                $(".twoTab:eq("+i+")").css("height",hei);
+            }
+        });
+        function insertTitle(tValue){
+            var fileId = $(tValue).attr("id");
+            var divId = fileId.replace("attachment_file","");
+            var attachmentFlag = divId.replace("_qiye","");
+            var files = $("#attachment_file"+divId)[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = "${workFullManage.id}";
+            var timestamp=new Date().getTime();
+
+            var storeAs = "attachment-file/workFullManage/"+timestamp+"/"+file['name'];
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,"0");}
+        }
+
+	</script>
+</head>
+<body class="hideScroll">
+<div class="wrapper wrapper-content">
+	<div class="ibox">
+		<div class="ibox-content">
+			<div class="col-sm-12">
+				<div class="col-sm-2 gray-bg text-center oneTab">
+					<label>项目信息</label>
+				</div>
+				<div class="col-sm-10 ">
+					<table class="table table-striped table-bordered table-hover table-condensed dataTables-example twoTab">
+						<tbody>
+						<tr>
+							<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目编号:</label></td>
+							<td class="width-35">
+								${workFullManage.fullProjectNumber}
+								<input type="hidden" value="${workFullManage.id}" id = "projectId">
+								<input type="hidden" value="${workProjectCompletionInfo.id}" id = "id">
+							</td>
+							<td class="width-15 active"><label class="pull-right">登记日期:</label></td>
+							<td class="width-35">
+								<fmt:formatDate value="${workFullManage.createDate}" pattern="yyyy年MM月dd日" type="date" dateStyle="full"/>
+
+							</td>
+						</tr>
+						<tr>
+							<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目名称:</label></td>
+							<td class="width-30" colspan="3">
+								${workFullManage.fullProjectName}
+							</td>
+						</tr>
+						</tbody>
+					</table>
+				</div>
+			</div>
+			<div class="col-sm-12 m-t-xs">
+				<div class="col-sm-2 gray-bg text-center oneTab">
+					<label>文件信息</label>
+				</div>
+				<div class="col-sm-10 " >
+					<table class="table table-striped table-bordered table-hover table-condensed dataTables-example twoTab">
+						<thead>
+							<tr>
+								<th >序号</th>
+								<th >文件类型</th>
+								<th >附件表</th>
+								<th>上传附件</th>
+							</tr>
+						</thead>
+						<tbody>
+							<tr>
+								<td>1</td>
+								<td>结算阶段初审</td>
+								<td>
+									<a href="javascript:void(0)" onclick="openDialogView('附件信息','${ctx}/workfullmanage/workFullManage/queryInfoToFile?id=${workFullManage.id}&attachment=58','80%','80%')" class="btn btn-info btn-xs">查看</a>
+								</td>
+								<td>
+									<div style="display: inline-block">
+										<div id="addFile_qiye58" style="display: none">
+											<span id="fileName_qiye58" ></span>
+											<b><span id="baifenbi_qiye58" ></span></b>
+											<div class="progress">
+												<div id="jindutiao_qiye58" class="progress-bar" style="width: 0%" aria-valuenow="0">
+												</div>
+											</div>
+										</div>
+										<input id="attachment_file_qiye58" type="file" name="attachment_file" multiple="multiple" style="display: none;" onChange="if(this.value)insertTitle(this);"/>
+										<a id="attachment_btn_qiye58" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+										<span id="attachment_title_qiye58"></span>
+									</div>
+									<%--<div class="table-responsive">
+										<div class="kv-main" style="text-align: center;vertical-align: middle;">
+											<form enctype="multipart/form-data">
+												<input type="hidden" id="file_root0">
+												<input type="hidden" id="file_name0">
+												<input type="hidden" id="file_type0" value="58">
+												<div class="form-group" style="margin-left: 0; margin-right: 0;">
+													<input id="file-qiye0" name="myFile" type="file" class="file">
+												</div>
+											</form>
+										</div>
+									</div>--%>
+								</td>
+							</tr>
+							<tr>
+								<td>1</td>
+								<td>送审结算清单</td>
+								<td>
+									<a href="javascript:void(0)" onclick="openDialogView('附件信息','${ctx}/workfullmanage/workFullManage/queryInfoToFile?id=${workFullManage.id}&attachment=59','80%','80%')" class="btn btn-info btn-xs">查看</a>
+								</td>
+								<td>
+									<div style="display: inline-block">
+										<div id="addFile_qiye59" style="display: none">
+											<span id="fileName_qiye59" ></span>
+											<b><span id="baifenbi_qiye59" ></span></b>
+											<div class="progress">
+												<div id="jindutiao_qiye59" class="progress-bar" style="width: 0%" aria-valuenow="0">
+												</div>
+											</div>
+										</div>
+										<input id="attachment_file_qiye59" type="file" name="attachment_file" multiple="multiple" style="display: none;" onChange="if(this.value)insertTitle(this);"/>
+										<a id="attachment_btn_qiye59" class="btn btn-info btn-xs" ><i class="fa fa-plus"></i> 添加附件</a>
+										<span id="attachment_title_qiye59"></span>
+									</div>
+									<%--<div class="table-responsive" style="text-align: center;vertical-align: middle;">
+										<div class="kv-main">
+											<form enctype="multipart/form-data">
+												<input type="hidden" id="file_root1">
+												<input type="hidden" id="file_name1">
+												<input type="hidden" id="file_type1" value="59">
+												<div class="form-group" style="margin-left: 0; margin-right: 0;">
+													<input id="file-qiye1" name="myFile" type="file" class="file">
+												</div>
+											</form>
+										</div>
+									</div>--%>
+								</td>
+							</tr>
+						</tbody>
+					</table>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+</body>
+</html>
+

+ 132 - 0
src/main/webapp/webpage/modules/workprojectcompletion/workProjectCompletionHistoryList.jsp

@@ -0,0 +1,132 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>项目竣工已办管理</title>
+    <meta name="decorator" content="default"/>
+    <script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content">
+    <div class="ibox">
+        <div class="ibox-title">
+            <h5>
+                <ul class="nav nav-tabs">
+                    <li ><a href="${ctx}/workprojectcompletion/workProjectCompletion/workFullManageList">项目竣工管理</a></li>
+                    <li><a href="${ctx}/workprojectcompletion/workProjectCompletion/toDoList">待办任务</a></li>
+                    <li class="active"><a href="${ctx}/workprojectcompletion/workProjectCompletion/HistoryList">已办任务</a></li>
+                </ul>
+            </h5>
+          <%--  <div class="ibox-tools">
+                <a class="collapse-link">
+                    <i class="fa fa-chevron-up"></i>
+                </a>
+                <a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+                    <i class="fa fa-wrench"></i>
+                </a>
+                <ul class="dropdown-menu dropdown-user">
+                    <li><a href="javascript:void(0)">选项1</a>
+                    </li>
+                    <li><a href="javascript:void(0)">选项2</a>
+                    </li>
+                </ul>
+                <a class="close-link">
+                    <i class="fa fa-times"></i>
+                </a>
+            </div>--%>
+        </div>
+
+        <div class="ibox-content">
+            <sys:message content="${message}"/>
+
+            <!--查询条件-->
+            <div class="row">
+                <div class="col-sm-12">
+                    <form:form id="searchForm" modelAttribute="act" action="${ctx}/workprojectcompletion/workProjectCompletion/HistoryList" method="get" class="form-inline">
+                        <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+                        <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+                        <table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+                        <div class="form-group">
+                            <label>创建时间:</label>
+                            <input class="form-control layer-date laydate-icon" id="beginDate" name="beginDate" value="<fmt:formatDate value="${act.beginDate}" pattern="yyyy-MM-dd"/>" onclick="laydate({istime: false, format: 'YYYY-MM-DD'})">
+                             -- 
+                            <input class="form-control layer-date laydate-icon" id="endDate" name="endDate" value="<fmt:formatDate value="${act.endDate}" pattern="yyyy-MM-dd"/>" onclick="laydate({istime: false, format: 'YYYY-MM-DD'})">
+                        </div>
+                    </form:form>
+                    <br/>
+                </div>
+            </div>
+
+            <!-- 工具栏 -->
+            <div class="row">
+                <div class="col-sm-12">
+                    <div class="pull-right">
+                        <button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+                        <button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+                    </div>
+                </div>
+            </div>
+
+            <!-- 表格 -->
+            <table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+                <thead>
+                <tr>
+                    <%--<th> <input type="checkbox" class="i-checks"></th>--%>
+                    <th style="text-align: center;" class="sort-column createBy.name">流程发起人</th>
+                    <th style="text-align: center;" class="sort-column task.name">当前环节</th>
+                    <th style="text-align: center;" class="sort-column procDef.name">流程名称</th>
+                    <th style="text-align: center;" class="sort-column procDef.revision">流程版本</th>
+                    <th style="text-align: center;" class="sort-column createDate">创建日期</th>
+                    <th style="text-align: center;" class="sort-column ''">流程追踪</th>
+                </tr>
+                </thead>
+                <tbody>
+                <c:choose>
+                    <c:when test="${not empty list}">
+                        <c:forEach items="${list}" var="workProjectCompletionInfo">
+                            <c:set var="task" value="${workProjectCompletionInfo.act.histTask}" />
+                            <c:set var="vars" value="${workProjectCompletionInfo.act.vars}" />
+                            <c:set var="procDef" value="${workProjectCompletionInfo.act.procDef}" />
+                            <tr>
+                                <%--<td> <input type="checkbox" id="${workProjectCompletionInfo.id}" class="i-checks"></td>--%>
+                                <td>
+                                    ${workProjectCompletionInfo.createBy.name}
+                                </td>
+                                <td>
+                                    ${task.name}
+                                </td>
+                                <td>
+                                    ${procDef.name}
+                                </td>
+
+                                <td>
+                                    <b title='流程版本号'>V: ${procDef.revision}</b>
+                                </td>
+                                <td>
+                                    <fmt:formatDate value="${workProjectCompletionInfo.createDate}" pattern="yyyy-MM-dd"/>
+                                </td>
+                                <td>
+                                    <a  href="javascript:void(0)" onclick="openDialogView('流程追踪', '${ctx}/workprojectcompletion/workProjectCompletion/getProcess?processInstanceId=${workProjectCompletionInfo.processInstanceId}','80%','80%')"class="btn btn-info btn-xs">
+                                        流程追踪
+                                    </a>
+                                </td>
+                            </tr>
+                        </c:forEach>
+                    </c:when>
+                    <c:otherwise>
+                        <tr>
+                            <td colspan="9" align="center">暂无数据</td>
+                        </tr>
+                    </c:otherwise>
+                </c:choose>
+                </tbody>
+            </table>
+            <!-- 分页代码 -->
+            <table:page page="${page}"></table:page>
+            <br/>
+            <br/>
+        </div>
+    </div>
+</div>
+</body>
+</html>

+ 101 - 0
src/main/webapp/webpage/modules/workprojectcompletion/workProjectCompletionLookForm.jsp

@@ -0,0 +1,101 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>查看项目竣工附件</title>
+	<meta name="decorator" content="default"/>
+	<style type="text/css">
+		.table{
+			margin-bottom: 0px;
+		}
+	</style>
+	<script type="text/javascript">
+		$(function(){
+            var oneSize = $(".oneTab").size();
+            for(var i = 0;i < oneSize;i++){
+                var hei = $(".twoTab:eq("+i+")").parent().height();
+                $(".oneTab:eq("+i+")").css("height",hei)
+                    .css("vertical-align","middle")
+                    .css("line-height",hei+"px")
+                $(".twoTab:eq("+i+")").css("height",hei);
+            }
+		})
+	</script>
+</head>
+<body class="hideScroll">
+<div class="wrapper wrapper-content">
+	<div class="ibox-content">
+		<input type="hidden" value="${workProjectCompletionInfo.id}" id="workProjectCompletionInfoId">
+		<input type="hidden" value="${workProjectCompletionInfo.projectStatus}" id="projectCompleteStatus">
+		<div class="col-sm-12">
+			<div class="col-sm-2 gray-bg text-center oneTab">
+				<label>项目意向</label>
+			</div>
+			<div class="col-sm-10 ">
+				<table class="table table-striped table-bordered table-hover table-condensed dataTables-example twoTab">
+					<tbody>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目编号:</label></td>
+						<td class="width-35">
+
+							${workFullManage.fullProjectNumber}
+						</td>
+						<td class="width-15 active"><label class="pull-right">登记日期:</label></td>
+						<td class="width-35">
+
+							<fmt:formatDate value="${workFullManage.createDate}" pattern="yyyy年MM月dd日" type="date" dateStyle="full"/>
+
+						</td>
+					</tr>
+					<tr>
+						<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目名称:</label></td>
+						<td class="width-30" colspan="3">
+							${workFullManage.fullProjectName}
+						</td>
+					</tr>
+					</tbody>
+				</table>
+			</div>
+		</div>
+		<div class="col-sm-12 m-t-xs">
+			<div class="col-sm-2 gray-bg text-center oneTab">
+				<label>文件信息</label>
+			</div>
+			<div class="col-sm-10 " >
+				<table class="table table-striped table-bordered table-hover table-condensed dataTables-example twoTab">
+					<thead>
+						<tr>
+							<th >序号</th>
+							<th >文件类型</th>
+							<th >附件表</th>
+						</tr>
+					</thead>
+					<tbody>
+						<tr>
+							<td>1</td>
+							<td>结算阶段初审</td>
+							<td>
+								<a href="javascript:void(0)" onclick="openDialogView('附件信息','${ctx}/workfullmanage/workFullManage/queryInfoToFile?id=${workFullManage.id}&attachment=58','80%','80%')" class="btn btn-info btn-xs">查看</a>
+							</td>
+
+						</tr>
+						<tr>
+							<td>1</td>
+							<td>送审结算清单</td>
+							<td>
+								<a href="javascript:void(0)" onclick="openDialogView('附件信息','${ctx}/workfullmanage/workFullManage/queryInfoToFile?id=${workFullManage.id}&attachment=59','80%','80%')" class="btn btn-info btn-xs">查看</a>
+							</td>
+
+						</tr>
+					</tbody>
+
+
+				</table>
+			</div>
+
+		</div>
+	</div>
+</div>
+</body>
+</html>
+

+ 15 - 0
src/main/webapp/webpage/modules/workprojectcompletion/workProjectCompletionTask.jsp

@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目竣工流程追踪</title>
+	<meta name="decorator" content="default"/>
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content">
+	<act:flowChart procInsId="${processInstanceId}"/>
+	<act:histoicFlow procInsId="${processInstanceId}"/>
+</div>
+</body>
+</html>
+

Diferenças do arquivo suprimidas por serem muito extensas
+ 238 - 0
src/main/webapp/webpage/modules/workprojectcompletion/workProjectCompletionToDoList.jsp


+ 144 - 0
src/main/webapp/webpage/modules/workprojectcompletion/workProjectCompletiontAudit.jsp

@@ -0,0 +1,144 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>項目竣工审批</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        var validateForm;
+        function doSubmit(obj){
+            // 回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                if(obj == 1) {
+                    $("#flag").val("yes");
+                }else {
+                    $("#flag").val("no");
+                }
+                $("#inputForm").submit();
+                return true;
+            }
+
+            return false;
+        }
+        $(document).ready(function() {
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+
+            laydate.render({
+                elem: '#contractDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            laydate.render({
+                elem: '#effectiveDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+            laydate.render({
+                elem: '#closingDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus' //响应事件。如果没有传入event,则按照默认的click
+            });
+        });
+
+
+	</script>
+	<style type="text/css">
+		.controls{
+			margin-top: 7px;
+		}
+	</style>
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content">
+
+	<div class="ibox">
+		<div class="ibox-tools">
+			<a class="collapse-link">
+				<i class="fa fa-chevron-up"></i>
+			</a>
+			<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+				<i class="fa fa-wrench"></i>
+			</a>
+			<ul class="dropdown-menu dropdown-user">
+				<li><a href="javascript:void(0)">选项1</a>
+				</li>
+				<li><a href="javascript:void(0)">选项2</a>
+				</li>
+			</ul>
+			<a class="close-link">
+				<i class="fa fa-times"></i>
+			</a>
+		</div>
+		<div class="ibox-title" style="height: 50px;">
+			<h7 style="font-size: 20px;">
+				項目竣工审批
+			</h7>
+		</div>
+
+		<div class="ibox-content">
+			<sys:message content="${message}"/>
+
+<form:form id="inputForm" modelAttribute="workProjectCompletionInfo" action="${ctx}/workprojectcompletion/workProjectCompletion/saveAudit" method="post" class="form-horizontal">
+	<form:hidden path="id"/>
+	<form:hidden path="act.taskId"/>
+	<form:hidden path="act.taskName"/>
+	<form:hidden path="act.taskDefKey"/>
+	<form:hidden path="act.procInsId"/>
+	<form:hidden path="act.procDefId"/>
+	<form:hidden id="flag" path="act.flag"/>
+	<sys:message content="${message}"/>
+	<c:set var="status" value="${workProjectCompletionInfo.act.status}" />
+	<c:set var="createBy.id" value="${workProjectCompletionInfo.createBy.id}" />
+
+	<div class="control-group">
+		<label class="control-label">項目名称:</label>
+		<div class="controls">
+			<a href="javascript:void(0)" onclick="openDialogView('查看项目竣工信息', '${ctx}/workprojectcompletion/workProjectCompletion/lookForm?id=${workProjectCompletionInfo.id}&projectId=${workProjectCompletionInfo.projectId}','80%','80%')" >
+					${workFullManage.fullProjectName}</a>
+
+		</div>
+	</div>
+	<div class="control-group">
+		<label class="control-label">项目编号:</label>
+		<div class="controls">
+				${workFullManage.fullProjectNumber}
+		</div>
+	</div>
+	<div class="control-group">
+		<label class="control-label">创建日期:</label>
+		<div class="controls">
+			<fmt:formatDate value="${workFullManage.createDate}" pattern="yyyy-MM-dd"/>
+
+		</div>
+	</div>
+	<%--<c:if test="${not empty status}">--%>
+		<div class="control-group">
+			<label class="control-label">审批意见:</label>
+			<div class="controls">
+				<form:textarea path="act.comment" class="form-control" rows="3" maxlength="20"/>
+			</div>
+		</div>
+	<%--</c:if>--%>
+	<div class="wrapper wrapper-content">
+		<act:flowChart procInsId="${workProjectCompletionInfo.processInstanceId}"/>
+		<act:histoicFlow procInsId="${workProjectCompletionInfo.processInstanceId}"/>
+	</div>
+
+
+</form:form>
+		</div>
+	</div>
+</div>
+</body>
+</html>

+ 78 - 0
src/main/webapp/webpage/modules/workprojectdeposit/workProjectDepositForm.jsp

@@ -0,0 +1,78 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>保证金模块管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+		  if(validateForm.form()){
+			  $("#inputForm").submit();
+			  return true;
+		  }
+	
+		  return false;
+		}
+		$(document).ready(function() {
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+			
+		});
+	</script>
+</head>
+<body class="hideScroll">
+		<form:form id="inputForm" modelAttribute="workProjectDeposit" action="${ctx}/workprojectdeposit/workProjectDeposit/save" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+		<input type="hidden" name="bidingProject.id" value="${workProjectDeposit.bidingProject.id}"/>
+		<sys:message content="${message}"/>	
+		<table class="table table-bordered  table-condensed dataTables-example dataTable no-footer">
+		   <tbody>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">投标企业:</label></td>
+					<td class="width-35">
+						<form:input path="bidingOfficeName" htmlEscape="false"    class="form-control "/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">联系人:</label></td>
+					<td class="width-35">
+						<form:input path="contacts" htmlEscape="false"    class="form-control "/>
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">联系电话:</label></td>
+					<td class="width-35">
+						<form:input path="phone" htmlEscape="false"    class="form-control "/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">e_mail:</label></td>
+					<td class="width-35">
+						<form:input path="email" htmlEscape="false"    class="form-control "/>
+					</td>
+				</tr>
+				<tr>
+					<td class="width-15 active"><label class="pull-right">保证金:</label></td>
+					<td class="width-35">
+						<form:input path="deposit" htmlEscape="false"    class="form-control  number"/>
+					</td>
+					<td class="width-15 active"><label class="pull-right">标书费:</label></td>
+					<td class="width-35">
+						<form:input path="bidingDocumentFee" htmlEscape="false"    class="form-control  number"/>
+					</td>
+				</tr>
+		 	</tbody>
+		</table>
+	</form:form>
+</body>
+</html>

+ 229 - 0
src/main/webapp/webpage/modules/workprojectdeposit/workProjectDepositList.jsp

@@ -0,0 +1,229 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>保证金模块管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		$(document).ready(function() {
+		});
+
+        function confirmDeposit(num,obj,workProjectDepositId) {
+            var loadingMessage = parent.layer.load(0, {shade: [0.1,'#393d49']});
+            var statusValue = $(obj).val();
+            $.post('${ctx}/workbidingevaluation/workBidingEvaluation/confirmDeposit',
+                {"num":num,"statusValue":statusValue,"workProjectDepositId":workProjectDepositId},
+                function () {
+
+
+                    parent.layer.msg("确认成功!!!",{icon:6});
+                    parent.layer.close(loadingMessage);
+                }
+            );
+        }
+	</script>
+</head>
+<body class="gray-bg">
+	<div class="wrapper wrapper-content">
+	<div class="ibox">
+	<%--<div class="ibox-title">
+		<h5>保证金模块列表 </h5>
+		<div class="ibox-tools">
+			<a class="collapse-link">
+				<i class="fa fa-chevron-up"></i>
+			</a>
+			<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
+				<i class="fa fa-wrench"></i>
+			</a>
+			<ul class="dropdown-menu dropdown-user">
+				<li><a href="javascript:void(0)">选项1</a>
+				</li>
+				<li><a href="javascript:void(0)">选项2</a>
+				</li>
+			</ul>
+			<a class="close-link">
+				<i class="fa fa-times"></i>
+			</a>
+		</div>
+	</div>--%>
+    
+    <div class="ibox-content">
+	<sys:message content="${message}"/>
+	
+	<!--查询条件-->
+	<div class="row">
+	<div class="col-sm-12">
+	<form:form id="searchForm" modelAttribute="workProjectDeposit" action="${ctx}/workprojectdeposit/workProjectDeposit/" method="post" class="form-inline">
+		<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+		<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+		<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+		<a href="#" id="moresee" class="fa fa-chevron-down" style="float: right;">更多</a>
+		<div class="form-group">
+			<span>招标项目:</span>
+			<div class="form-group shows">
+				<form:input path="bidingProject.projectName" htmlEscape="false" maxlength="255"  class=" form-control input-sm"/>
+			</div>
+			<span>&nbsp;投标企业:</span>
+				<form:input path="bidingOfficeName" htmlEscape="false" maxlength="255"  class=" form-control input-sm"/>
+			<span>&nbsp;保证金状态:</span>
+				<form:select path="depositStatus"  class="form-control m-b">
+					<form:option value="" label=""/>
+					<form:options items="${fns:getDictList('deposit_status')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+				</form:select>
+			<span>&nbsp;标书费缴纳状态:</span>
+				<form:select path="bidingDocumentStatus"  class="form-control m-b">
+					<form:option value="" label=""/>
+					<form:options items="${fns:getDictList('biding_document_status')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+				</form:select>
+		 </div>	
+	</form:form>
+	<br/>
+	</div>
+	</div>
+	
+	<!-- 工具栏 -->
+	<div class="row">
+	<div class="col-sm-12">
+		<div class="pull-left">
+			<%--<shiro:hasPermission name="workprojectdeposit:workProjectDeposit:add">
+				<table:addRow url="${ctx}/workprojectdeposit/workProjectDeposit/form" title="保证金模块"></table:addRow><!-- 增加按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workprojectdeposit:workProjectDeposit:edit">
+			    <table:editRow url="${ctx}/workprojectdeposit/workProjectDeposit/form" title="保证金模块" id="contentTable"></table:editRow><!-- 编辑按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workprojectdeposit:workProjectDeposit:del">
+				<table:delRow url="${ctx}/workprojectdeposit/workProjectDeposit/deleteAll" id="contentTable"></table:delRow><!-- 删除按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workprojectdeposit:workProjectDeposit:import">
+				<table:importExcel url="${ctx}/workprojectdeposit/workProjectDeposit/import"></table:importExcel><!-- 导入按钮 -->
+			</shiro:hasPermission>
+			<shiro:hasPermission name="workprojectdeposit:workProjectDeposit:export">
+	       		<table:exportExcel url="${ctx}/workprojectdeposit/workProjectDeposit/export"></table:exportExcel><!-- 导出按钮 -->
+	       	</shiro:hasPermission>--%>
+	       <button class="btn btn-white btn-sm " data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</button>
+		
+			</div>
+		<div class="pull-right">
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="search()" ><i class="fa fa-search"></i> 查询</button>
+			<button  class="btn btn-primary btn-rounded btn-outline btn-sm " onclick="reset()" ><i class="fa fa-refresh"></i> 重置</button>
+		</div>
+	</div>
+	</div>
+	
+	<!-- 表格 -->
+	<table id="contentTable" class="table table-striped table-bordered table-hover table-condensed dataTables-example dataTable">
+		<thead>
+			<tr>
+				<th style="text-align: center;width: 5%"> 序号</th>
+				<th style="text-align: center;width: 10%"  class="sort-column createDate">登记时间</th>
+				<th style="text-align: center;width: 10%"  class="sort-column bidingProject">招标项目</th>
+				<th style="text-align: center;width: 10%"  class="sort-column bidingOfficeName">投标企业</th>
+				<th style="text-align: center;width: 8%"  class="sort-column contacts">联系人</th>
+				<th style="text-align: center;width: 10%"  class="sort-column phone">联系电话</th>
+				<th style="text-align: center;width: 10%"  class="sort-column Email">邮箱</th>
+				<th style="text-align: center;width: 7%"  class="sort-column deposit">保证金(万元)</th>
+				<th style="text-align: center;width: 8%"  class="sort-column depositStatus">保证金状态</th>
+				<th style="text-align: center;width: 7%"  class="sort-column bidingDocumentFee">标书费(元)</th>
+				<th style="text-align: center;width: 8%"  class="sort-column bidingDocumentStatus">标书费缴纳状态</th>
+				<th style="text-align: center;width: 7%">操作</th>
+			</tr>
+		</thead>
+		<tbody>
+			<c:choose>
+				<c:when test="${not empty page.list}">
+					<c:forEach items="${page.list}" var="workProjectDeposit" varStatus="index">
+						<tr>
+							<td>${index.index+1}</td>
+							<td>
+								<fmt:formatDate value="${workProjectDeposit.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
+							</td>
+							<td>
+								<a  href="javascript:void(0)" onclick="openDialogView('查看招标项目信息', '${ctx}/workbidingproject/workBidingProject/form?id=${workProjectDeposit.bidingProject.id}&name=view','80%', '80%')">
+									${workProjectDeposit.bidingProject.projectName}
+								</a>
+							</td>
+							<td>
+									${workProjectDeposit.bidingOfficeName}
+							</td>
+							<td>
+									${workProjectDeposit.contacts}
+							</td>
+							<td>
+									${workProjectDeposit.phone}
+							</td>
+							<td>
+									${workProjectDeposit.email}
+							</td>
+							<td>
+									${workProjectDeposit.deposit}
+							</td>
+							<td>
+								<div style="text-align: center">
+									<%--${fns:getDictLabel(workProjectDeposit.depositStatus, 'deposit_status', '')}--%>
+								<select name="" id="depositStatus" onchange="confirmDeposit('0',this,'${workProjectDeposit.id}')">
+									<c:forEach items="${fns:getDictList('deposit_status')}" var="item">
+
+										<c:if test="${item.value eq workProjectDeposit.depositStatus}">
+											<option value="${item.value}" selected="selected" >${item.label}</option>
+										</c:if>
+										<c:if test="${item.value ne workProjectDeposit.depositStatus}">
+											<option value="${item.value}">${item.label}</option>
+										</c:if>
+									</c:forEach>
+								</select>
+								</div>
+							</td>
+							<td>
+									${workProjectDeposit.bidingDocumentFee}
+							</td>
+							<td>
+								<div style="text-align: center">
+									<%--${fns:getDictLabel(workProjectDeposit.bidingDocumentStatus, 'biding_document_status', '')}--%>
+								<select name="" id="bidingDocumentStatus" onchange="confirmDeposit('1',this,'${workProjectDeposit.id}')">
+									<c:forEach items="${fns:getDictList('biding_document_status')}" var="item">
+										<c:if test="${item.value eq workProjectDeposit.bidingDocumentStatus}">
+											<option value="${item.value}" selected="selected" >${item.label}</option>
+										</c:if>
+										<c:if test="${item.value ne workProjectDeposit.bidingDocumentStatus}">
+											<option value="${item.value}">${item.label}</option>
+										</c:if>
+									</c:forEach>
+								</select>
+								</div>
+							</td>
+							<td>
+								<div style="text-align: center">
+								<shiro:hasPermission name="workprojectdeposit:workProjectDeposit:view">
+									<a href="javascript:void(0)" onclick="openDialogView('查看保证金模块', '${ctx}/workprojectdeposit/workProjectDeposit/form?id=${workProjectDeposit.id}','80%','80%')" class="btn btn-info btn-xs" ><i class="fa fa-search-plus"></i> 查看</a>
+								</shiro:hasPermission>
+								<%--<shiro:hasPermission name="workprojectdeposit:workProjectDeposit:edit">--%>
+									<%--<a href="javascript:void(0)" onclick="openDialog('修改保证金模块', '${ctx}/workprojectdeposit/workProjectDeposit/form?id=${workProjectDeposit.id}','80%','80%')" class="btn btn-success btn-xs" ><i class="fa fa-edit"></i> 修改</a>--%>
+								<%--</shiro:hasPermission>--%>
+								<%--<shiro:hasPermission name="workprojectdeposit:workProjectDeposit:del">--%>
+									<%--<a href="${ctx}/workprojectdeposit/workProjectDeposit/delete?id=${workProjectDeposit.id}" onclick="return confirmx('确认要删除该保证金模块吗?', this.href)"   class="btn btn-danger btn-xs"><i class="fa fa-trash"></i> 删除</a>--%>
+								<%--</shiro:hasPermission>--%>
+								</div>
+							</td>
+						</tr>
+					</c:forEach>
+				</c:when>
+			<c:otherwise>
+				<tr>
+					<td colspan="15" align="center">
+						暂无数据
+					</td>
+				</tr>
+			</c:otherwise>
+		</c:choose>
+		</tbody>
+	</table>
+	
+		<!-- 分页代码 -->
+	<table:page page="${page}"></table:page>
+	<br/>
+	<br/>
+	</div>
+	</div>
+</div>
+</body>
+</html>

+ 93 - 0
src/main/webapp/webpage/modules/workprojectnotify/workProjectNotifyForm.jsp

@@ -0,0 +1,93 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>通知管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+		  if(validateForm.form()){
+			  $("#inputForm").submit();
+			  return true;
+		  }
+	
+		  return false;
+		}
+		$(document).ready(function() {
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+			
+		});
+	</script>
+</head>
+<body>
+<div class="single-form">
+	<div class="container view-form">
+		<form:form id="inputForm" modelAttribute="workProjectNotify" action="${ctx}/workprojectnotify/workProjectNotify/save" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+		<sys:message content="${message}"/>
+			<div class="form-group layui-row first lw6">
+				<c:choose>
+					<c:when test="${empty errorMsg}">
+						<div class="form-group-label"><h2>基本信息</h2></div>
+					</c:when>
+					<c:otherwise>
+						<div class="form-group-label"><h2>${errorMsg}</h2></div>
+					</c:otherwise>
+				</c:choose>
+				<div class="layui-item layui-col-sm12">
+					<label class="layui-form-label">标题:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true"  class="form-control layui-input" value="${workProjectNotify.title}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm12 with-textarea">
+					<label class="layui-form-label">内容:</label>
+					<div class="layui-input-block">
+						<textarea rows="4" htmlEscape="false" readonly="true" class="form-control">${workProjectNotify.content}</textarea>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">类型:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true"  class="form-control layui-input" value="${fns:getDictLabel(workProjectNotify.type, 'project_notify_type', '')}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">通知发起人:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true"  class="form-control layui-input" value="${fns:getUserById(workProjectNotify.createBy.id).name}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">读取状态:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true"  class="form-control layui-input" value="${fns:getDictLabel(workProjectNotify.status, 'project_notify_status', '')}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">创建日期:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true"  class="form-control layui-input" value="<fmt:formatDate value="${workProjectNotify.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+					</div>
+				</div>
+			</div>
+		</form:form>
+	</div>
+</div>
+</body>
+</html>

+ 647 - 0
src/main/webapp/webpage/modules/workprojectnotify/workProjectNotifyList.jsp

@@ -0,0 +1,647 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>待办管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		$(document).ready(function() {
+		});
+        function openDialogre(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+				skin:"three-btns",
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['通过','驳回','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                    return false;
+                },
+                btn3: function(index){
+            }
+            });
+
+        }
+        function openDialogreExample(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                skin:"three-btns",
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['通过','驳回','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmita(1) ){
+                        //top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmita(2) ){
+                        //top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                    return false;
+                },
+                btn3: function(index){
+                }
+            });
+
+        }
+        function openDialogres(title,url,width,height,target) {
+            parent.index = "";
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url,
+                shin:"two-btns",
+                btn: ['重新申请', '关闭'],
+                btn1: function (index, layero) {
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if (target) {
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    } else {
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if (iframeWin.contentWindow.doSubmit(3)) {
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function () {
+                            top.layer.close(index)
+                        }, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2: function(index){
+                }
+            });
+        }
+        /*案例审核人审批*/
+        function openDialogPass(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                skin:"three-btns",
+                btn: ['通过','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn3: function(index){
+                }
+            });
+
+        }
+        function openDialogPass2(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                skin:"three-btns",
+                btn: ['提交','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn3: function(index){
+                }
+            });
+
+        }
+        function openDialogreAttendance(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                skin:"three-btns",
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['确认','重算','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        //top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    parent.layer.confirm('确定要进行重算吗?',{icon: 3, title:'系统提示'}, function(index){
+                        if(iframeWin.contentWindow.doSubmit(2) ){
+                            //top.layer.close(index);//关闭对话框。
+                            //setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                        }
+                        parent.layer.close(index);
+                    }, function(index){
+                        parent.layer.close(index)
+                    });
+
+                    return false;
+                },
+                btn3: function(index){
+                }
+            });
+
+        }
+
+        function openDialogreAttendanceAudit(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                skin:"three-btns",
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                btn: ['同意','驳回','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        //top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        //top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn3: function(index){
+                }
+            });
+
+        }
+	</script>
+	<style>
+		body{
+			background-color:transparent;
+			filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
+			color:#ffffff;
+			background-color:rgba(255,255,255,0);
+			height:100%;
+		}
+	</style>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+	<sys:message content="${message}"/>
+	<div class="layui-row">
+		<div class="full-width fl">
+			<div class="contentShadow layui-row" id="queryDiv">
+
+			<form:form id="searchForm" modelAttribute="workProjectNotify" action="${ctx}/workprojectnotify/workProjectNotify/list" method="post" class="form-inline">
+				<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+				<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+				<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+
+				<div class="commonQuery">
+					<div class="layui-item query athird">
+						<label class="layui-form-label">内容:</label>
+						<div class="layui-input-block">
+							<form:input path="content" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+						</div>
+					</div>
+					<div class="layui-item query athird">
+						<label class="layui-form-label">类型:</label>
+						<div class="layui-input-block">
+							<form:select id="type" path="type" class="form-control simple-select">
+								<form:option value="" label=""/>
+								<form:options items="${fns:getDictList('project_notify_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+							</form:select>
+						</div>
+					</div>
+					<div class="layui-item athird">
+						<div class="input-group">
+							<button style="margin-right: 0px;" id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>
+							<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>
+						</div>
+					</div>
+					<div style="    clear:both;"></div>
+				</div>
+			</form:form>
+			</div>
+		</div>
+		<div class="full-width fl">
+			<div class="contentShadow layui-form contentDetails">
+				<div class="nav-btns">
+					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
+					<div style="clear: both;"></div>
+				</div>
+				<table class="oa-table layui-table" id="contentTable"></table>
+
+				<!-- 分页代码 -->
+				<table:page page="${page}"></table:page>
+				<div style="clear: both;"></div>
+			</div>
+		</div>
+	</div>
+	<div id="changewidth"></div>
+</div>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+    layui.use('table', function(){
+        layui.table.render({
+            limit:${ page.pageSize }
+            ,elem: '#contentTable'
+            ,page: false
+            ,cols: [[
+                // {checkbox: true, fixed: true},
+                {field:'index',align:'center',  width:40,title: '序号'}
+                ,{align:'center', title: '类型', width:100,templet:function(d){
+                        return "<span title='"+ d.type1 +"'>" + d.type1 + "</span>";
+                    }}
+                ,{align:'center', title: '环节', width:120,templet:function(d){
+                        return "<span title='"+ d.step +"'>" + d.step + "</span>";
+                    }}
+                ,{align:'center', title: '标题', minWidth:150,templet:function(d){
+
+                    if(d.type == "6")
+					{
+					    if( d.status != 1 )
+						{
+						    return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialog('确认定投标', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                                "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                                "</a>";
+						}
+						else
+						{
+							return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('确认定投标', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                                "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                                "</a>";
+						}
+                    }
+                    else if(d.type == "18"){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogre('企业申请', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+					}
+					else if(d.type == "19"){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('企业申请', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+					}
+                    else if(d.type == "57" && d.step == '申请人归档'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "50" && d.step == '投标专员标书编制'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "50" && d.step == '投标专员调整申请'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "50" && d.step == '市场研发管理部负责人备案'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "16" && d.step == '合同盖章'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "44" && d.step == '合同盖章'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "67" && d.step == '部门主任'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "67" && d.step == '签约人'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "50" && d.step == '盖章人盖章'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "50" && d.step == '申请人开标'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "50" && d.step == '市场研发管理部负责人'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "55" && d.step == '申请人审批'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "58" && d.remarks == '待处理'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass2('待处理', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "69" && d.remarks == '待处理'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass2('待处理', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "71" && d.step == '各级审批'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass2('待处理', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "60" && d.remarks == '待审批'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "61" && d.step == '行政主管'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "40" && d.step == '主管会计审核'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.remarks == "待归档")
+					{
+					    return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"top.openTab('${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','待归档',false)\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>"
+					}
+                    else if(d.remarks == "再次申请" && d.status != "1")
+                    {
+                        return " <a class=\"attention-info\"  href=\"javascript:void(0)\" onclick=\"openDialogres('重新申请', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.remarks == "重新申请" && d.status != "1")
+                    {
+                        return "<a class=\"attention-info\"  href=\"javascript:void(0)\" onclick=\"openDialogres('重新申请', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "66" && d.step == '转正人补充信息'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "40" && d.step == '主管会计审核'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogPass('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "76" && d.step == '案例审核人审批'){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogreExample('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "83"){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogreAttendanceAudit('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.type == "84"){
+                        return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogreAttendance('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+
+                    else if(d.remarks == "待审批" && d.status != "1") {
+                        return "<a class=\"attention-info\"  href=\"javascript:void(0)\" onclick=\"openDialogre('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    else if(d.remarks == "待审批" && d.status != "1" && d.type == "76" && d.step == '案例审核人审批') {
+                        return "<a class=\"attention-info\"  href=\"javascript:void(0)\" onclick=\"openDialogreExample('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+
+                    else{
+                        return "<a class=\"attention-info\"  href=\"javascript:void(0)\" onclick=\"openDialogView('查看通知', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                            "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                            "</a>";
+                    }
+                    }}
+                ,{align:'center',title: '内容', minWidth:150,templet:function(d){
+                        return "<span title='"+ d.content +"'>" + d.content + "</span>";
+                    }}
+                ,{align:'center',title: '提交人', width:80,templet:function(d){
+                        return "<span title='"+ d.submit +"'>" + d.submit + "</span>";
+                    }}
+                ,{field:'status1', align:'center',title: '审批状态',width:100}
+                ,{field:'op',align:'center', title: '创建时间', width:140,templet:function(d){
+                        return "<span title='"+ d.date +"'>" + d.date + "</span>";
+                    }}
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="workProjectNotify" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+                    "index":"${index.index+1}"
+                    ,"id":"${workProjectNotify.id}"
+                    ,"type":"${workProjectNotify.type}"
+                    ,"type1":"${fns:getDictLabel(workProjectNotify.type, 'project_notify_type', '')}"
+                    ,"step":"${workProjectNotify.notifyRole}"
+                    ,"title":"${workProjectNotify.title}"
+                    ,"content":"${workProjectNotify.content}"
+                    ,"submit":"${fns:getUserById(workProjectNotify.createBy.id).name}"
+					,"status":"${workProjectNotify.status}"
+                    ,"status1":"${fns:getDictLabel(workProjectNotify.status, 'project_notify_class', '')}"
+                    ,"date":"<fmt:formatDate value="${workProjectNotify.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"
+					,"remarks":"${workProjectNotify.remarks}"
+                }
+                </c:forEach>
+                </c:if>
+            ]
+            // ,even: true
+            // ,height: 315
+        });
+
+    })
+
+    resizeListTable(140);
+    $("a").on("click",addLinkVisied);
+</script>
+<script>
+    resizeListWindow1();
+    $(window).resize(function(){
+        resizeListWindow1();
+    });
+</script>
+</body>
+</html>

+ 330 - 0
src/main/webapp/webpage/modules/workprojectnotify/workProjectNotifyLists.jsp

@@ -0,0 +1,330 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>待办管理</title>
+	<meta name="decorator" content="default"/>
+	<%--<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>--%>
+	<script type="text/javascript">
+		$(document).ready(function() {
+
+            $('#moresee').click(function(){
+                if($('#moresees').is(':visible'))
+                {
+                    $('#moresees').slideUp(0,resizeListWindow1);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-up").addClass("glyphicon glyphicon-menu-down");
+                }else{
+                    $('#moresees').slideDown(0,resizeListWindow1);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-down").addClass("glyphicon glyphicon-menu-up");
+                }
+            });
+
+            laydate.render({
+                elem: '#startDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+            });
+		});
+        function openDialogre(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+				skin:"three-btns",
+                btn: ['通过','驳回','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                    return false;
+                },
+                btn3: function(index){
+            }
+            });
+
+        }
+        function openDialogres(title,url,width,height,target) {
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url,
+				skin:"two-btns",
+                btn: ['重新申请', '结束流程'],
+                btn1: function (index, layero) {
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if (target) {
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    } else {
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if (iframeWin.contentWindow.doSubmit(3)) {
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function () {
+                            top.layer.close(index)
+                        }, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2: function (index, layero) {
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if (target) {
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    } else {
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if (iframeWin.contentWindow.doSubmit(4)) {
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function () {
+                            top.layer.close(index)
+                        }, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                    return false;
+                },
+            });
+        }
+	</script>
+	<style>
+		body{
+			background-color:transparent;
+			filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
+			color:#ffffff;
+			background-color:rgba(255,255,255,0);
+			height:100%;
+		}
+	</style>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+	<sys:message content="${message}"/>
+	<div class="layui-row">
+		<div class="full-width fl">
+			<div class="contentShadow layui-row" id="queryDiv">
+			<form:form id="searchForm" modelAttribute="workProjectNotify" action="${ctx}/workprojectnotify/workProjectNotify/lists" method="post" class="form-inline">
+				<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+				<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+				<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+
+				<div class="commonQuery">
+					<div class="layui-item query athird">
+						<label class="layui-form-label">审批状态:</label>
+						<div class="layui-input-block">
+							<form:select id="status" path="status" class="form-control simple-select">
+								<form:option value="" label=""/>
+								<form:options items="${fns:getDictList('project_notify_class')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+							</form:select>
+						</div>
+					</div>
+					<div class="layui-item query athird">
+						<label class="layui-form-label">类型:</label>
+						<div class="layui-input-block">
+							<form:select id="type" path="type" class="form-control simple-select">
+								<form:option value="" label=""/>
+								<form:options items="${fns:getDictList('project_notify_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+							</form:select>
+						</div>
+					</div>
+					<div class="layui-item athird">
+						<div class="input-group">
+							<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
+							<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>
+							<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>
+						</div>
+					</div>
+					<div style="    clear:both;"></div>
+				</div>
+				<div id="moresees" style="clear:both;display:none;">
+					<div class="layui-item query athird">
+						<label class="layui-form-label">审批日期:</label>
+						<div class="layui-input-block">
+							<input placeholder="开始时间" class="laydate-icondate form-control layer-date layui-input laydate-icon range" id="startDate" name="startDate" readonly="readonly" value="<fmt:formatDate value="${workProjectNotify.startDate}" pattern="yyyy-MM-dd"/>">
+							<span class="date-sep">-</span>
+							<input placeholder="结束时间" class="laydate-icondate form-control layer-date layui-input laydate-icon range" id="endDate" name="endDate" readonly="readonly" value="<fmt:formatDate value="${workProjectNotify.endDate}" pattern="yyyy-MM-dd"/>">
+						</div>
+					</div>
+				</div>
+			</form:form>
+			</div>
+		</div>
+		<div class="full-width fl">
+			<div class="contentShadow layui-form contentDetails">
+				<div class="nav-btns">
+					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
+					<div style="clear: both;"></div>
+				</div>
+				<table class="oa-table layui-table" id="contentTable"></table>
+
+				<!-- 分页代码 -->
+				<table:page page="${page}"></table:page>
+				<div style="clear: both;"></div>
+			</div>
+		</div>
+	</div>
+	<div id="changewidth"></div>
+</div>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+    layui.use('table', function(){
+        layui.table.render({
+            limit:${ page.pageSize }
+            ,elem: '#contentTable'
+            ,page: false
+            ,cols: [[
+                // {checkbox: true, fixed: true},
+                {field:'index',align:'center',  width:40,title: '序号'}
+                ,{align:'center', title: '类型', width:100,templet:function(d){
+                        return "<span title='"+ d.type1 +"'>" + d.type1 + "</span>";
+                    }}
+                ,{align:'center', title: '环节', width:120,templet:function(d){
+                        return "<span title='"+ d.step +"'>" + d.step + "</span>";
+                    }}
+                ,{align:'center', title: '标题', minWidth:150,templet:function(d){
+						return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('查看待办信息', '${ctx}/workprojectnotify/workProjectNotify/view?id="+ d.id +"','95%','95%')\">" +
+                            "<span title=\"" + d.title + "\">" + d.title + "</span>" +
+                            "</a>";
+                    }}
+                ,{align:'center',title: '内容', minWidth:150,templet:function(d){
+                        return "<span title='"+ d.content +"'>" + d.content + "</span>";
+                    }}
+                ,{align:'center',title: '提交人', width:80,templet:function(d){
+                        return "<span title='"+ d.submit +"'>" + d.submit + "</span>";
+                    }}
+                ,{field:'op',align:'center', title: '创建日期', width:140,templet:function(d){
+                    return "<span title='"+ d.date2 +"'>" + d.date2 + "</span>";
+                }}
+                ,{align:'center',title: '审批人', width:80,templet:function(d){
+                        return "<span title='"+ d.audit1 +"'>" + d.audit1 + "</span>";
+                    }}
+                ,{align:'center',title: '实际审批人', width:80,templet:function(d){
+                    if(d.audit2 != undefined)
+                        return "<span title='"+ d.audit2 +"'>" + d.audit2 + "</span>";
+                    else
+                        return "<span></span>";
+                    }}
+                ,{ align:'center',title: '审批状态',width:80,templet:function(d){
+                    if(d.pid != undefined)
+                    {
+                        if(d.status == "待审批")
+                        {
+                            return "<a href=\"javascript:void(0)\" onclick=\"openDialogView('流程追踪', '${ctx}/workreimbursement/workReimbursement/getProcessOne?processInstanceId="+ d.pid + "','95%','95%')\" class=\"status-label status-label-auditing\" >"+ d.status +"</a>";
+                        }
+                        else if(d.status == "已审批")
+                        {
+                            return "<a href=\"javascript:void(0)\" onclick=\"openDialogView('流程追踪', '${ctx}/workreimbursement/workReimbursement/getProcessOne?processInstanceId="+ d.pid + "','95%','95%')\" class=\"status-label status-label-signed\" >"+ d.status +"</a>";
+                        }
+                        else if(d.status == "已签收")
+                        {
+                            return "<a href=\"javascript:void(0)\" onclick=\"openDialogView('流程追踪', '${ctx}/workreimbursement/workReimbursement/getProcessOne?processInstanceId="+ d.pid + "','95%','95%')\" class=\"status-label status-label-finish\" >"+ d.status +"</a>";
+                        }
+                        else
+                        {
+                            return "<a href=\"javascript:void(0)\" onclick=\"openDialogView('流程追踪', '${ctx}/workreimbursement/workReimbursement/getProcessOne?processInstanceId="+ d.pid + "','95%','95%')\" class=\"status-label status-label-finish\" >"+ d.status +"</a>";
+                        }
+                    }
+                    else
+                        return "";
+                    var st = getAuditState(d.status);
+                    if(st.action)
+                        var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/workreimbursement/workReimbursement/getProcessOne?id=" + d.id + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+                    else
+                        var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+                    return xml;
+                }}
+                ,{field:'op',align:'center', title: '审批日期', width:140,templet:function(d){
+                        return "<span title='"+ d.date +"'>" + d.date + "</span>";
+                    }}
+
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="workProjectNotify" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+                    "index":"${index.index+1}"
+                    ,"id":"${workProjectNotify.id}"
+                    ,"type1":"${fns:getDictLabel(workProjectNotify.type, 'project_notify_type', '')}"
+                    ,"step":"${workProjectNotify.notifyRole}"
+                    ,"title":"${workProjectNotify.title}"
+                    ,"content":"${workProjectNotify.content}"
+                    ,"submit":"${fns:getUserById(workProjectNotify.createBy.id).name}"
+					<c:if test="${not empty workProjectNotify.processInstanceId}">,"pid":"${workProjectNotify.processInstanceId}"</c:if>
+                    ,"status":"${fns:getDictLabel(workProjectNotify.status, 'project_notify_class', '')}"
+					,"audit1":"${fns:getUserById(workProjectNotify.user.id).name}"
+                    <c:if test="${workProjectNotify.status == 1}">,"audit2":"${fns:getUserById(workProjectNotify.updateBy.id).name}"</c:if>
+                    ,"date":"<fmt:formatDate value="${workProjectNotify.updateDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"
+                    ,"date2":"<fmt:formatDate value="${workProjectNotify.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"
+                }
+                </c:forEach>
+                </c:if>
+            ]
+            // ,even: true
+            // ,height: 315
+        });
+
+    })
+
+    resizeListTable(140);
+    $("a").on("click",addLinkVisied);
+</script>
+<script>
+    resizeListWindow1();
+    $(window).resize(function(){
+        resizeListWindow1();
+    });
+</script>
+</body>
+</html>

+ 303 - 0
src/main/webapp/webpage/modules/workprojectnotify/workProjectNotifyShowList.jsp

@@ -0,0 +1,303 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>通知管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		$(document).ready(function() {
+		});
+        function openDialogre(title,url,width,height,target){
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+				skin:"three-btns",
+                btn: ['通过','驳回','关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                    return false;
+                },
+                btn3: function(index){
+            }
+            });
+
+        }
+        function openDialogres(title,url,width,height,target) {
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url,
+				skin:"two-btns",
+                btn: ['重新申请', '结束流程'],
+                btn1: function (index, layero) {
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if (target) {
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    } else {
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if (iframeWin.contentWindow.doSubmit(3)) {
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function () {
+                            top.layer.close(index)
+                        }, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2: function (index, layero) {
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if (target) {
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    } else {
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if (iframeWin.contentWindow.doSubmit(4)) {
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function () {
+                            top.layer.close(index)
+                        }, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                    return false;
+                },
+            });
+        }
+	</script>
+	<style>
+		body{
+			background-color:transparent;
+			filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
+			color:#ffffff;
+			background-color:rgba(255,255,255,0);
+			height:100%;
+		}
+	</style>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+	<sys:message content="${message}"/>
+	<div class="layui-row">
+		<div class="full-width fl">
+			<div class="contentShadow layui-row" id="queryDiv">
+				<form:form id="searchForm" modelAttribute="workProjectNotify" action="${ctx}/workprojectnotify/workProjectNotify/listShow" method="post" class="form-inline">
+					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+					<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+
+					<div class="commonQuery">
+						<div class="layui-item query athird">
+							<label class="layui-form-label">内容:</label>
+							<div class="layui-input-block">
+								<form:input path="content" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">类型:</label>
+							<div class="layui-input-block">
+								<form:select id="type" path="type" class="form-control simple-select">
+									<form:option value="" label=""/>
+									<form:options items="${fns:getDictList('project_notify_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+								</form:select>
+							</div>
+						</div>
+						<div class="layui-item athird">
+							<div class="input-group">
+								<button style="margin-right: 0px;" id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>
+								<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>
+							</div>
+						</div>
+						<div style="    clear:both;"></div>
+					</div>
+				</form:form>
+			</div>
+		</div>
+		<div class="full-width fl">
+			<div class="contentShadow layui-form contentDetails">
+				<div class="nav-btns">
+					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
+					<div style="clear: both;"></div>
+				</div>
+				<table class="oa-table layui-table" id="contentTable"></table>
+
+				<!-- 分页代码 -->
+				<table:page page="${page}"></table:page>
+				<div style="clear: both;"></div>
+			</div>
+		</div>
+	</div>
+	<div id="changewidth"></div>
+</div>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+    layui.use('table', function(){
+        layui.table.render({
+            limit:${ page.pageSize }
+            ,elem: '#contentTable'
+            ,page: false
+            ,cols: [[
+                // {checkbox: true, fixed: true},
+                {field:'index',align:'center',  width:40,title: '序号'}
+                ,{align:'center', title: '类型', width:100,templet:function(d){
+                        return "<span title='"+ d.type1 +"'>" + d.type1 + "</span>";
+                    }}
+                ,{align:'center', title: '环节', width:120,templet:function(d){
+                        return "<span title='"+ d.step +"'>" + d.step + "</span>";
+                    }}
+                ,{align:'center', title: '标题', minWidth:150,templet:function(d){
+
+                        if(d.type == "6")
+                        {
+                            if( d.status != 1 )
+                            {
+                                return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialog('确认定投标', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                                    "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                                    "</a>";
+                            }
+                            else
+                            {
+                                return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('确认定投标', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                                    "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                                    "</a>";
+                            }
+                        }
+                        else if(d.type == "18"){
+                            return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('企业申请列表', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                                "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                                "</a>";
+                        }
+                        else if(d.type == "19"){
+                            return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('企业申请列表', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                                "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                                "</a>";
+                        }
+                        else if(d.remarks == "待归档")
+                        {
+                            return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"top.openTab('${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','待归档',false)\">" +
+                                "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                                "</a>"
+                        }
+                        else if(d.remarks == "再次申请" && d.status != "1")
+                        {
+                            return " <a class=\"attention-info\"  href=\"javascript:void(0)\" onclick=\"openDialogres('重新申请', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                                "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                                "</a>";
+                        }
+                        else if(d.remarks == "重新申请" && d.status != "1")
+                        {
+                            return "<a class=\"attention-info\"  href=\"javascript:void(0)\" onclick=\"openDialogres('重新申请', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                                "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                                "</a>";
+                        }
+                        else if(d.remarks == "待审批" && d.status != "1")
+                        {
+                            return "<a class=\"attention-info\"  href=\"javascript:void(0)\" onclick=\"openDialogre('待审批', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                                "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                                "</a>";
+                        }
+                        else{
+                            return "<a class=\"attention-info\"  href=\"javascript:void(0)\" onclick=\"openDialogView('查看通知', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','95%','95%')\">" +
+                                "<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+                                "</a>";
+                        }
+                    }}
+                ,{align:'center',title: '内容', minWidth:150,templet:function(d){
+                        return "<span title='"+ d.content +"'>" + d.content + "</span>";
+                    }}
+                ,{align:'center',title: '提交人', width:80,templet:function(d){
+                        return "<span title='"+ d.submit +"'>" + d.submit + "</span>";
+                    }}
+                ,{field:'status1', align:'center',title: '读取状态',width:100}
+                ,{field:'op',align:'center', title: '创建时间', width:140,templet:function(d){
+                        return "<span title='"+ d.date +"'>" + d.date + "</span>";
+                    }}
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="workProjectNotify" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+                    "index":"${index.index+1}"
+                    ,"id":"${workProjectNotify.id}"
+                    ,"type":"${workProjectNotify.type}"
+                    ,"type1":"${fns:getDictLabel(workProjectNotify.type, 'project_notify_type', '')}"
+                    ,"step":"${workProjectNotify.notifyRole}"
+                    ,"title":"${workProjectNotify.title}"
+                    ,"content":"${workProjectNotify.content}"
+                    ,"submit":"${fns:getUserById(workProjectNotify.createBy.id).name}"
+                    ,"status":"${workProjectNotify.status}"
+                    ,"status1":"${fns:getDictLabel(workProjectNotify.status, 'project_notify_status', '')}"
+                    ,"date":"<fmt:formatDate value="${workProjectNotify.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"
+                    ,"remarks":"${workProjectNotify.remarks}"
+                }
+                </c:forEach>
+                </c:if>
+            ]
+            // ,even: true
+            // ,height: 315
+        });
+
+    })
+
+    resizeListTable(140);
+    $("a").on("click",addLinkVisied);
+</script>
+<script>
+    resizeListWindow1();
+    $(window).resize(function(){
+        resizeListWindow1();
+    });
+</script>
+</body>
+</html>

+ 15 - 0
src/main/webapp/webpage/modules/workprojectnotify/workProjectNotityTask.jsp

@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>流程追踪</title>
+	<meta name="decorator" content="default"/>
+</head>
+<body class="gray-bg">
+	<div class="container form layui-form">
+		<act:flowChart procInsId="${processInstanceId}"/>
+        <act:histoicFlow procInsId="${processInstanceId}"/>
+	</div>
+</body>
+</html>
+