初始化项目
This commit is contained in:
805
pqs9000/src/main/webapp/WEB-INF/views/report/excel.jsp
Normal file
805
pqs9000/src/main/webapp/WEB-INF/views/report/excel.jsp
Normal file
@@ -0,0 +1,805 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||
pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
|
||||
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<title>Excel报表</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport"
|
||||
content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
|
||||
<link rel="stylesheet" href="${ctx}/css/plugin/bootstrap/bootstrap.css">
|
||||
<link rel="stylesheet" href="${ctx}/css/plugin/datatimepicker/bootstrap-datetimepicker.css">
|
||||
<link rel="stylesheet" href="${ctx}/js/plugin/layui/css/layui.css">
|
||||
<link rel="stylesheet" href="${ctx}/css/plugin/bootstrapSwitch/bootstrap-switch.min.css">
|
||||
<link rel="stylesheet" href="${ctx}/js/plugin/dateRangePicker/daterangepicker.css">
|
||||
<link rel="stylesheet" href="${ctx}/css/basic.css">
|
||||
<style type="text/css">
|
||||
body {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.layui-left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
padding: 4px 12px;
|
||||
}
|
||||
|
||||
.self-style {
|
||||
margin: 9px;
|
||||
position: absolute;
|
||||
left: 280px;
|
||||
top: 40px;
|
||||
bottom: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.table-condensed > thead > tr > th,
|
||||
.table-condensed > tbody > tr > th,
|
||||
.table-condensed > tfoot > tr > th,
|
||||
.table-condensed > thead > tr > td,
|
||||
.table-condensed > tbody > tr > td,
|
||||
.table-condensed > tfoot > tr > td {
|
||||
padding: 0px !important;
|
||||
}
|
||||
|
||||
td {
|
||||
white-space: nowrap;
|
||||
padding: 1px !important
|
||||
}
|
||||
|
||||
.redColor {
|
||||
color: red;
|
||||
}
|
||||
|
||||
.styleFixd {
|
||||
table-layout:fixed;
|
||||
}
|
||||
.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off, .bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on, .bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label{
|
||||
padding: 1px 6px;
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<%--终端树区域--%>
|
||||
<%@include file="../include/deviceTree.jsp" %>
|
||||
<%--Tab选项卡区域--%>
|
||||
<div class="layui-left layui-tab self-style">
|
||||
<ul class="layui-tab-title" style="box-sizing:content-box;!important">
|
||||
<li class="layui-this" id="myLi" style="font-size: 12px;">非谐波</li>
|
||||
<li style="font-size: 12px;">谐波电压</li>
|
||||
<li style="font-size: 12px;">谐波电流</li>
|
||||
<li style="font-size: 12px;">合格率</li>
|
||||
</ul>
|
||||
<div id="myTab" class="layui-tab-content" style="padding: 5px;overflow: auto;height: 100%;">
|
||||
<div class="layui-tab-item layui-show">
|
||||
<div id="pointInfo"></div>
|
||||
<div id="voltage"></div>
|
||||
<div id="power"></div>
|
||||
<div id="flicker"></div>
|
||||
<idv id="distortion"></idv>
|
||||
<div id="vdeviation"></div>
|
||||
<div id="frequency"></div>
|
||||
<div id="threephase"></div>
|
||||
</div>
|
||||
<div class="layui-tab-item">
|
||||
<div id="vPointInfo"></div>
|
||||
<div id="voltageRate">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-tab-item">
|
||||
<div id="iPointInfo"></div>
|
||||
<div id="icurrent"></div>
|
||||
</div>
|
||||
<div class="layui-tab-item">
|
||||
<div id="fpyPointInfo"></div>
|
||||
<div id="fpy"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<%--时间区域--%>
|
||||
<form class="form-inline header" style="margin-top: 2px;position: absolute;z-index: 99;width: calc(100% - 280px);height: 50px;right: 0;text-align: right">
|
||||
|
||||
<label class="form-group">时间间隔:</label>
|
||||
<div class="form-group has-feedback">
|
||||
<select class="form-control" id="interval">
|
||||
<option value="年份">年份</option>
|
||||
<option value="季度">季度</option>
|
||||
<option value="月份">月份</option>
|
||||
<option value="周">周</option>
|
||||
<option value="天">天</option>
|
||||
<option value="自定义">自定义</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control form_datetime con"
|
||||
id="startTime" style="width: 140px">
|
||||
</div>
|
||||
—
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control form_datetime con"
|
||||
id="endTime" style="width: 140px">
|
||||
</div>
|
||||
|
||||
<button type="button" class="njcn btn themeBGColor" id="before">
|
||||
<i class="glyphicon glyphicon-backward"></i>
|
||||
</button>
|
||||
<div class="form-group" id="present">
|
||||
<button type="button" class="njcn btn themeBGColor">当前</button>
|
||||
</div>
|
||||
<button type="button" class="njcn btn themeBGColor" id="next">
|
||||
<span class="glyphicon glyphicon-forward" aria-hidden="true"></span>
|
||||
</button>
|
||||
|
||||
<div class="form-inline pdr15" style="display: inline-block;">
|
||||
|
||||
|
||||
<label style="font-size: 10px;margin-left: 5px;">模板选择:</label>
|
||||
<%--value与模板的id绑定--%>
|
||||
<select class="form-control" id="ploy" style="display: inline;font-size:10px;width:125px;"
|
||||
onchange="changeEvent(this.value)">
|
||||
<option value="##">默认模板</option>
|
||||
</select>
|
||||
<%--检修时间--%>
|
||||
<input type="checkbox" id="check"
|
||||
style="margin-left: 5px;width:16px;height: 16px;margin-bottom: 5px;vertical-align: middle;">
|
||||
<label style="font-size: 10px;margin-left: 3px;">检修时间</label>
|
||||
<button type="button" class="btn btn-primary" id="timeSet" disabled="disabled">
|
||||
<i class='glyphicon glyphicon-cog'>检修时间</i>
|
||||
</button>
|
||||
<input style="margin-left: 5px;height: 20px" type="checkbox" checked id="dayOrDate"/>
|
||||
|
||||
<%--查询按钮--%>
|
||||
<button type="button" class="btn btn-primary" style="width: 50px" id="query">
|
||||
<i class="glyphicon glyphicon-search"></i>
|
||||
</button>
|
||||
<%--导出按钮--%>
|
||||
<button type="button" class="btn btn-primary" id="export">
|
||||
<i class='glyphicon glyphicon-share'>导出</i>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<%-- bootstrap模态框(Modal) --%>
|
||||
<div class="modal fade" id="timeModel" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog" style="width:405px;">
|
||||
<div class="modal-content" style="width:405px;">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title">检修时间</h4>
|
||||
</div>
|
||||
<div class="modal-body" style="width: 405px;">
|
||||
<div>
|
||||
<label style="font-weight:normal;font-size: 14px;">时段一:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input id="first" placeholder="检修时段一"
|
||||
style="height: 25px; line-height: 25px; cursor: pointer; border: 1px solid #e2e2e2; width: 310px;"/>
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin-top: 5px;">
|
||||
<label style="font-weight:normal;font-size: 14px;">时段二:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input id="second" placeholder="检修时段二"
|
||||
style="height: 25px; line-height: 25px; cursor: pointer; border: 1px solid #e2e2e2; width: 310px;"/>
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin-top: 5px;">
|
||||
<label style="font-weight:normal;font-size: 14px;">时段三:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input id="thrid" placeholder="检修时段三"
|
||||
style="height: 25px; line-height: 25px; cursor: pointer; border: 1px solid #e2e2e2; width: 310px;"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" style="font-size: 15px;" class="btn btn-default"
|
||||
onclick="clearData()">重置
|
||||
</button>
|
||||
<button type="button" style="font-size: 15px;" class="btn btn-default"
|
||||
data-dismiss="modal">
|
||||
关闭
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="${ctx}/js/plugin/bootstrap/bootstrap.min.js"></script>
|
||||
<script src="${ctx}/js/plugin/layui/layui.js"></script>
|
||||
<script src="${ctx}/js/plugin/xss/xss.js"></script>
|
||||
<script src="${ctx}/js/plugin/dateRangePicker/moment.min.js"></script>
|
||||
<script src="${ctx}/js/plugin/bootstrapSwitch/bootstrap-switch.min.js"></script>
|
||||
<script src="${ctx}/js/plugin/dateRangePicker/daterangepicker.js"></script>
|
||||
<script src="${ctx}/js/plugin/bootstrap/bootstrap-datetimepicker.js"></script>
|
||||
<script src="${ctx}/js/plugin/bootstrap/bootstrap-datetimepicker.zh-CN.js"></script>
|
||||
<script>
|
||||
|
||||
// 用户切换时间间隔,时间会发生变化
|
||||
$("#interval").change(function () {
|
||||
var interval = $(this).val();
|
||||
judgeInterval(interval)
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime(interval, endTime);
|
||||
$("#startTime").val(startTime);
|
||||
if(interval !== '自定义'){
|
||||
let tem = endTime.split("-")
|
||||
endTime = tem[0]+"-"+tem[1]+"-"+tem[2]
|
||||
}
|
||||
$("#endTime").val(endTime);
|
||||
|
||||
|
||||
});
|
||||
|
||||
//隐藏前进后退按钮
|
||||
function judgeInterval(interval) {
|
||||
|
||||
if (interval === "自定义") {
|
||||
$('.form_datetime').datetimepicker({
|
||||
minView: "0", //选择日期后,不会再跳转去选择时分秒
|
||||
language: 'zh-CN',
|
||||
format: 'yyyy-mm-dd hh:ii:ss',
|
||||
todayBtn: false,//今日按钮
|
||||
autoclose: 1,
|
||||
});
|
||||
$("#present").css("display", "none");
|
||||
$("#before").css("display", "none");
|
||||
$("#next").css("display", "none");
|
||||
$("#startTime").removeProp("disabled");
|
||||
$("#endTime").removeProp("disabled");
|
||||
|
||||
} else {
|
||||
$('.form_datetime').datetimepicker({
|
||||
minView: "month", //选择日期后,不会再跳转去选择时分秒
|
||||
language: 'zh-CN',
|
||||
format: 'yyyy-mm-dd',
|
||||
todayBtn: false,//今日按钮
|
||||
autoclose: 1,
|
||||
});
|
||||
$("#present").css("display", "inline-block");
|
||||
$("#before").css("display", "inline-block");
|
||||
$("#next").css("display", "inline-block");
|
||||
$("#startTime").prop("disabled", "true");
|
||||
$("#endTime").prop("disabled", "true");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//向前
|
||||
$("#before").click(function () {
|
||||
var interval = $("#interval").val();
|
||||
var startTime = $("#startTime").val();
|
||||
var endTime = $("#endTime").val();
|
||||
var year = parseInt(startTime.substring(0, 4));
|
||||
var month = parseInt(startTime.substring(5, 7));
|
||||
var date = parseInt(startTime.substring(8, 10));
|
||||
|
||||
if (interval == "月份") {
|
||||
// 换年份
|
||||
if (month == 1) {
|
||||
year = year - 1;
|
||||
startTime = year + "-12-01";
|
||||
endTime = year + "-12-31";
|
||||
} else if (month <= 10) {
|
||||
month = month - 1;
|
||||
startTime = year + "-0" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-0" + month + "-" + day;
|
||||
} else {
|
||||
month = month - 1;
|
||||
startTime = year + "-" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-" + month + "-" + day;
|
||||
}
|
||||
} else if (interval == "周") {
|
||||
//根据开始时间推
|
||||
var start = new Date(year, month - 1, date);
|
||||
start.setDate(start.getDate() - 7);
|
||||
startTime = formatTime(start);
|
||||
var end = new Date(start);
|
||||
end.setDate(start.getDate() + 6);
|
||||
endTime = formatTime(end);
|
||||
} else if (interval == "季度") {
|
||||
// 换年份
|
||||
if (month == 1) {
|
||||
year = year - 1;
|
||||
startTime = year + "-10-01";
|
||||
endTime = year + "-12-31";
|
||||
} else {
|
||||
// 还是本年
|
||||
month = month - 3;
|
||||
startTime = year + "-0" + month + "-01";
|
||||
month = month + 2;
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-0" + month + "-" + day;
|
||||
}
|
||||
} else if (interval == "自定义") {
|
||||
|
||||
} else if (interval == "年份") {
|
||||
year = year - 1;
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-12-31";
|
||||
} else if (interval == "半年") {
|
||||
if (month <= 6) {
|
||||
year = year - 1;
|
||||
startTime = year + "-07-01";
|
||||
endTime = year + "-12-31";
|
||||
}else{
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-06-30";
|
||||
}
|
||||
}else if(interval == "天"){
|
||||
var start = new Date(year, month - 1, date);
|
||||
start.setDate(start.getDate() -1);
|
||||
startTime = formatTime(start);
|
||||
var end = new Date(start);
|
||||
endTime = formatTime(end);
|
||||
}
|
||||
|
||||
$("#startTime").val(startTime);
|
||||
$("#endTime").val(endTime);
|
||||
// 判断向后键的状态
|
||||
var temp = getEndTime();
|
||||
judgeNext(temp, endTime);
|
||||
});
|
||||
// 当前
|
||||
$("#present").click(function () {
|
||||
var interval = $("#interval").val();
|
||||
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime(interval, endTime);
|
||||
|
||||
$("#startTime").val(startTime);
|
||||
$("#endTime").val(endTime);
|
||||
// 判断向后键的状态
|
||||
var temp = getEndTime();
|
||||
judgeNext(temp, endTime);
|
||||
});
|
||||
|
||||
// 向后
|
||||
function back() {
|
||||
var interval = $("#interval").val();
|
||||
var startTime = $("#startTime").val();
|
||||
// 获取年份
|
||||
var year = parseInt(startTime.substring(0, 4));
|
||||
// 获取月份
|
||||
var month = parseInt(startTime.substring(5, 7));
|
||||
var date = parseInt(startTime.substring(8, 10));
|
||||
var endTime = $("#endTime").val();
|
||||
var now = new Date();
|
||||
// 获取当前年份
|
||||
var presentY = now.getFullYear();
|
||||
// 获取当前月份
|
||||
var presentM = now.getMonth() + 1;
|
||||
// 获取当前日期
|
||||
var presentD = now.getDate();
|
||||
if (interval == "月份") {
|
||||
if (month == 12) {
|
||||
year = year + 1;
|
||||
// 年份进位后,大于当前的年份,是不科学的
|
||||
if (presentY < year) {
|
||||
startTime = presentY + "-12-01";
|
||||
if (presentD < 10) {
|
||||
endTime = presentY + "-12" + "-0" + presentD;
|
||||
} else {
|
||||
endTime = presentY + "-12" + "-" + presentD;
|
||||
}
|
||||
// 年份进位后,等于当前的年份
|
||||
} else if (presentY == year) {
|
||||
startTime = year + "-01-01";
|
||||
if (presentM > 1) {
|
||||
endTime = year + "-01-31";
|
||||
} else {
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-01" + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-01" + "-" + presentD;
|
||||
}
|
||||
}
|
||||
// 年份进位后,依旧小于当前的年份
|
||||
} else {
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-01-31";
|
||||
}
|
||||
} else {
|
||||
month = month + 1;
|
||||
// 年份等于当前年份
|
||||
if (presentY == year) {
|
||||
// 月份超过当前月份,是不科学的
|
||||
if (month >= presentM) {
|
||||
if (presentM < 10) {
|
||||
startTime = year + "-0" + presentM + "-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
} else {
|
||||
startTime = year + "-" + presentM + "-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (month < 10) {
|
||||
startTime = year + "-0" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-0" + month + "-" + day;
|
||||
} else {
|
||||
startTime = year + "-" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-" + month + "-" + day;
|
||||
}
|
||||
}
|
||||
// 年份小于当前的年份
|
||||
} else {
|
||||
if (month < 10) {
|
||||
startTime = year + "-0" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-0" + month + "-" + day;
|
||||
} else {
|
||||
startTime = year + "-" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-" + month + "-" + day;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (interval == "季度") {
|
||||
// 前进需要年份进位
|
||||
if (month == 10) {
|
||||
year = year + 1;
|
||||
// 年份进位后大于当前年份是不科学的
|
||||
if (year > presentY) {
|
||||
startTime = presentY + "-10-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
} else if (year == presentY) {
|
||||
startTime = year + "-01-01";
|
||||
// 当前月份大约3月份
|
||||
if (presentM > 3) {
|
||||
endTime = year + "-03-31";
|
||||
} else {
|
||||
// 当前月份也在第一季度里
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-03-31";
|
||||
}
|
||||
} else {
|
||||
month = month + 3;
|
||||
// 季度进位后,超过当前月份是不科学的
|
||||
if (year == presentY) {
|
||||
if (month >= presentM) {
|
||||
// 当季度进位后大于当前月,以当前月的时间显示季度
|
||||
if (presentM > 0 && presentM < 4) {// 第一季度
|
||||
startTime = year + "-01-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
} else if (presentM > 3 && presentM < 7) {// 第二季度
|
||||
startTime = year + "-04-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
} else if (presentM > 6 && presentM < 10) {// 第三季度
|
||||
startTime = year + "-07-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
} else {// 第四季度
|
||||
startTime = year + "-10-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (month == 10) {
|
||||
startTime = year + "-" + month + "-01";
|
||||
} else {
|
||||
startTime = year + "-0" + month + "-01";
|
||||
}
|
||||
month = month + 2;
|
||||
if (month >= presentM) {
|
||||
endTime = getEndTime();
|
||||
;
|
||||
} else {
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-" + month + "-" + day;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (month == 10) {
|
||||
startTime = year + "-" + month + "-01";
|
||||
month = month + 2;
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-" + month + "-" + day;
|
||||
} else {
|
||||
startTime = year + "-0" + month + "-01";
|
||||
month = month + 2;
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-0" + month + "-" + day;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (interval == "自定义") {
|
||||
|
||||
} else if (interval == "周") {
|
||||
//根据开始时间推
|
||||
var start = new Date(year, month - 1, date);
|
||||
start.setDate(start.getDate() + 7);
|
||||
startTime = formatTime(start);
|
||||
var end = new Date(start);
|
||||
end.setDate(start.getDate() + 6);
|
||||
endTime = formatTime(end);
|
||||
|
||||
if (parseInt((end - new Date()) / 1000 / 60) > 24) { //相差小时大于24小时,即超过当天,置为当天日期
|
||||
endTime = formatTime(new Date());
|
||||
}
|
||||
} else if (interval == "年份") {
|
||||
year = year + 1;
|
||||
// 年份进位后大于当前年份,是不科学的
|
||||
if (year >= presentY) {
|
||||
startTime = presentY + "-01-01";
|
||||
if (presentM < 10) {
|
||||
if (presentD < 10) {
|
||||
endTime = presentY + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = presentY + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
} else {
|
||||
endTime = presentY + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
} else {
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-12-31";
|
||||
}
|
||||
} else if (interval == "半年") {
|
||||
// 前进需要年份进位
|
||||
if (month > 6) {
|
||||
year = year + 1;
|
||||
// 年份进位后大于当前年份是不科学的
|
||||
if (year >= presentY) {
|
||||
startTime = presentY + "-01-01";
|
||||
if(presentM > 6){
|
||||
endTime = year + "-06-30";
|
||||
}else{
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-06-30";
|
||||
}
|
||||
} else {
|
||||
if (year == presentY) {
|
||||
startTime = presentY + "-07-01";
|
||||
// 进位后大于当前月,以当前月的时间显示
|
||||
if (presentM < 10) {
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
}else{
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
startTime = year + "-07-01";
|
||||
endTime = year + "-12-31";
|
||||
}
|
||||
}
|
||||
}else if(interval == "天"){
|
||||
var start = new Date(year, month - 1, date);
|
||||
start.setDate(start.getDate() + 1);
|
||||
startTime = formatTime(start);
|
||||
var end = new Date(start);
|
||||
endTime = formatTime(end);
|
||||
}
|
||||
// 判断向后键的状态
|
||||
var temp = getEndTime();
|
||||
judgeNext(temp, endTime);
|
||||
$("#startTime").val(startTime);
|
||||
$("#endTime").val(endTime);
|
||||
}
|
||||
|
||||
$("#next").click(function () {
|
||||
back();
|
||||
});
|
||||
|
||||
// 判断next按钮的状态
|
||||
function judgeNext(temp, endTime) {
|
||||
if (temp == endTime) {
|
||||
$("#next").attr("class", "njcn btn");
|
||||
$("#next").unbind();
|
||||
} else {
|
||||
restoreNext();
|
||||
}
|
||||
}
|
||||
|
||||
// 恢复向后键的所有时间(点击事件、button变化事件)
|
||||
function restoreNext() {
|
||||
var $events = $._data($("#next")[0], "events");
|
||||
if ($events && $events["click"]) {
|
||||
|
||||
} else {
|
||||
$("#next").attr("class", "njcn btn btn-primary");
|
||||
$("#next").bind("click", function () {
|
||||
back();
|
||||
})
|
||||
}
|
||||
if ($events && $events["mouseover"]) {
|
||||
|
||||
} else {
|
||||
$("#next").bind("mouseover", function () {
|
||||
$(this).attr("class", "njcn btn");
|
||||
})
|
||||
}
|
||||
if ($events && $events["mouseout"]) {
|
||||
|
||||
} else {
|
||||
$("#next").bind("mouseout", function () {
|
||||
$(this).attr("class", "njcn btn btn-primary");
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 获取月份的天数
|
||||
function getDays(year, month) {
|
||||
var max = new Date(year, month, 0).getDate();
|
||||
return max;
|
||||
}
|
||||
|
||||
// 时间格式化
|
||||
function formatTime(time) {
|
||||
return time.getFullYear() + '-' + ((time.getMonth() + 1) < 10 ? '0' : '') + (time.getMonth() + 1) + '-' + (time.getDate() < 10 ? '0' : '') + time.getDate();
|
||||
}
|
||||
|
||||
$(function () {
|
||||
var interval = $("#interval").val();
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime(interval, endTime);
|
||||
$("#startTime").val(startTime);
|
||||
$("#endTime").val(endTime);
|
||||
$("#next").attr("class", "njcn btn");
|
||||
$("#next").unbind();
|
||||
// 除了自定义其他时间间隔用户可以选择日期
|
||||
if (interval === "自定义") {
|
||||
$("#present").css("display", "none");
|
||||
$("#before").css("display", "none");
|
||||
$("#next").css("display", "none");
|
||||
$("#startTime").removeProp("disabled");
|
||||
$("#endTime").removeProp("disabled");
|
||||
} else {
|
||||
$("#present").css("display", "inline-block");
|
||||
$("#before").css("display", "inline-block");
|
||||
$("#next").css("display", "inline-block");
|
||||
$("#startTime").prop("disabled", "true");
|
||||
$("#endTime").prop("disabled", "true");
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
// 获取当前日期,精确到日
|
||||
function getEndTime() {
|
||||
var now = new Date();
|
||||
var sep = "-";
|
||||
var year = now.getFullYear();
|
||||
var month = now.getMonth() + 1;
|
||||
if (month < 10) {
|
||||
month = "0" + month;
|
||||
}
|
||||
var date = now.getDate();
|
||||
if (date < 10) {
|
||||
date = "0" + date;
|
||||
}
|
||||
// 拼接当前的日期
|
||||
var endTime = year + sep + month + sep + date;
|
||||
return endTime;
|
||||
}
|
||||
|
||||
// 获取起始日期
|
||||
function getStartTime(interval, endTime) {
|
||||
var now = new Date();
|
||||
var sep = "-";
|
||||
var arr = endTime.split("-");
|
||||
var year = arr[0];
|
||||
var month = arr[1];
|
||||
var date = arr[2];
|
||||
// 按月份间隔
|
||||
if (interval == "月份") {
|
||||
date = "01";
|
||||
// 按季度间隔
|
||||
} else if (interval == "季度") {
|
||||
if (month > 0 & month < 4) {// 第一季度
|
||||
month = "01";
|
||||
date = "01";
|
||||
} else if (month > 3 && month < 7) {// 第二季度
|
||||
month = "04";
|
||||
date = "01";
|
||||
} else if (month > 6 && month < 10) {// 第三季度
|
||||
month = "07";
|
||||
date = "01";
|
||||
} else {// 第四季度
|
||||
month = 10;
|
||||
date = "01";
|
||||
}
|
||||
} else if (interval == "年份") {
|
||||
month = "01";
|
||||
date = "01";
|
||||
} else if (interval == "半年") {
|
||||
if (month < 7){
|
||||
month = "01";
|
||||
date = "01";
|
||||
}else{
|
||||
month = "07";
|
||||
date = "01";
|
||||
}
|
||||
} else if (interval == '周') {
|
||||
var start = new Date(year, month - 1, date);
|
||||
var dayOfWeek = (start.getDay() == 0) ? 7 : start.getDay(); // 如果为周日,则置为7天
|
||||
start.setDate(start.getDate() - dayOfWeek + 1);// 计算开始时间
|
||||
|
||||
if (formatTime(new Date()) != endTime) { // 如果结束时间不是当前时间
|
||||
var end = new Date(start);
|
||||
end.setDate(end.getDate() + 6);
|
||||
$("#endTime").val(formatTime(end));
|
||||
}
|
||||
|
||||
return formatTime(start);
|
||||
}else if(interval == '天'){
|
||||
var start = new Date(year, month - 1, date);
|
||||
return formatTime(start);
|
||||
}
|
||||
|
||||
var startTime = year + sep + month + sep + date;
|
||||
return startTime;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
<script src="${ctx}/jspJS/utils/judgeAjaxStatus.js"></script>
|
||||
<script src="${ctx}/jspJS/utils/loading.js"></script>
|
||||
<script src="${ctx}/jspJS/report/excel.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
281
pqs9000/src/main/webapp/WEB-INF/views/report/expModel.jsp
Normal file
281
pqs9000/src/main/webapp/WEB-INF/views/report/expModel.jsp
Normal file
@@ -0,0 +1,281 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||
pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>生成报告</title>
|
||||
<link rel="stylesheet" href="${ctx}/css/plugin/bootstrap/bootstrap.css">
|
||||
<link rel="stylesheet"
|
||||
href="${ctx}/css/plugin/datatimepicker/bootstrap-datetimepicker.css">
|
||||
<link rel="stylesheet" href="${ctx}/js/plugin/layui/css/layui.css">
|
||||
<link rel="stylesheet"
|
||||
href="${ctx}/js/plugin/dateRangePicker/daterangepicker.css">
|
||||
<link rel="stylesheet" href="${ctx}/css/basic.css">
|
||||
<style type="text/css">
|
||||
html {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.layui-left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.self-style {
|
||||
margin: 0px;
|
||||
position: absolute;
|
||||
left: 280px;
|
||||
top: 25px;
|
||||
bottom: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.width1 {
|
||||
width: 85px;
|
||||
!
|
||||
important
|
||||
}
|
||||
|
||||
.width2 {
|
||||
width: 140px;
|
||||
!
|
||||
important
|
||||
}
|
||||
|
||||
.form-control {
|
||||
height: 26px;
|
||||
!important
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="bg-white">
|
||||
<%@include file="../include/deviceTree.jsp" %>
|
||||
<%--Tab选项卡区域--%>
|
||||
<div class="layui-left layui-tab self-style pd10">
|
||||
<table class="table" id="device" frame="border" rules="groups">
|
||||
<tr>
|
||||
<td align="right" class="width1">一次接线图:</td>
|
||||
<td align="left" class="width2">
|
||||
<form class="form-inline ml12"
|
||||
enctype="multipart/form-data" id="uploadForm">
|
||||
<input type="file" name="file" id="inputfile">
|
||||
</form>
|
||||
</td>
|
||||
<td align="left">
|
||||
<button type="button" id="importimg"
|
||||
class="btn themeBGColor">上传
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right" class="width1">报告编号:</td>
|
||||
<td align="left" class="width2"><input type="text"
|
||||
name="reportNumber" id="reportNumber"></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right" class="width1">客户名称:</td>
|
||||
<td align="left" class="width2"><input type="text"
|
||||
name="crmName" id="crmName"></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right" class="width1"></td>
|
||||
<td align="left" class="width2">
|
||||
<button type="button"
|
||||
id="exportWord" class="btn themeBGColor">生成
|
||||
</button>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<%--时间区域--%>
|
||||
<form class="form-inline header"
|
||||
style="float: left; margin-top: 2px; position: relative; z-index: 99">
|
||||
<%@include file="../include/time.jsp" %>
|
||||
</form>
|
||||
|
||||
<input type="hidden" id="imgFlag" value="0">
|
||||
<input type="hidden" id="lineIndex" name="lineIndex">
|
||||
<input type="hidden" id="lineName" name="lineName">
|
||||
<script src="${ctx}/js/plugin/bootstrap/bootstrap.min.js"></script>
|
||||
<script src="${ctx}/js/plugin/layui/layui.js"></script>
|
||||
<script src="${ctx}/js/plugin/dateRangePicker/moment.min.js"></script>
|
||||
<script src="${ctx}/js/plugin/dateRangePicker/daterangepicker.js"></script>
|
||||
<script src="${ctx}/js/plugin/bootstrap/bootstrap-datetimepicker.js"></script>
|
||||
<script
|
||||
src="${ctx}/js/plugin/bootstrap/bootstrap-datetimepicker.zh-CN.js"></script>
|
||||
<script src="${ctx}/jspJS/utils/judgeAjaxStatus.js"></script>
|
||||
<script src="${ctx}/jspJS/utils/timeControl.js"></script>
|
||||
<script src="${ctx}/jspJS/utils/loading.js"></script>
|
||||
<script src="${ctx}/js/basic.js"></script>
|
||||
<script type="text/javascript">
|
||||
$("#importimg").click(
|
||||
function () {
|
||||
var i;
|
||||
var uploadEventFile = $("#inputfile").val();
|
||||
|
||||
/**
|
||||
* xuyang
|
||||
* 前端对所选文件的大小做个简单判断
|
||||
*/
|
||||
var uploadFile = document.getElementById("inputfile").files;
|
||||
//文件大小
|
||||
var size = uploadFile[0].size;
|
||||
//判断文件大小
|
||||
if (Math.floor(size/1024) <= 3072){
|
||||
if (uploadEventFile == '') {
|
||||
layer.msg("请选择图片!", {
|
||||
icon: 5,
|
||||
time: 2000
|
||||
}, function () {
|
||||
layer.closeAll()
|
||||
});
|
||||
} else if (uploadEventFile.toLowerCase().lastIndexOf(".jpg") < 0
|
||||
&& uploadEventFile.toLowerCase().lastIndexOf(".png") < 0) {
|
||||
layer.msg("只能上传图片文件", {
|
||||
icon: 5,
|
||||
time: 2000
|
||||
}, function () {
|
||||
layer.closeAll()
|
||||
});
|
||||
} else {
|
||||
layer.confirm('确定上传?', function (index) {
|
||||
var formData = new FormData($('#uploadForm')[0]);
|
||||
$.ajax({
|
||||
method: "post",
|
||||
url: "/pqs9000/exportmodel/importImg",
|
||||
data: formData,
|
||||
async: false,
|
||||
cache: false,
|
||||
contentType: false,
|
||||
processData: false,
|
||||
success: function (data) {
|
||||
if (data == "namefail") {
|
||||
layer.msg("上传失败!请选择图片文件", {
|
||||
icon: 5,
|
||||
time: 2000
|
||||
})
|
||||
} else if (data == "fail") {
|
||||
layer.msg("上传失败!请重新选择图片文件", {
|
||||
icon: 5,
|
||||
time: 2000
|
||||
})
|
||||
} else if (data == "sizefail") {
|
||||
layer.msg("上传失败,图片大小超过3M!", {
|
||||
icon: 5,
|
||||
time: 2000
|
||||
})
|
||||
} else {
|
||||
layer.msg("上传成功!", {
|
||||
icon: 1,
|
||||
time: 2000
|
||||
}, function () {
|
||||
$("#imgFlag").val("1");
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}else {
|
||||
layer.msg("上传失败,文件大小超过3M!",{icon:5,time:2000},function(){
|
||||
layer.closeAll()});
|
||||
}
|
||||
})
|
||||
|
||||
$("#exportWord").click(function () {
|
||||
var tips, picdefult;
|
||||
var uploadEventFile = $("#imgFlag").val();
|
||||
if (uploadEventFile == "0") {
|
||||
tips = '将使用默认一次接线图,确定生成?';
|
||||
picdefult = '1';
|
||||
} else {
|
||||
tips = '确定生成?';
|
||||
picdefult = '0';
|
||||
}
|
||||
var pointNode = getTreeSelected(2);
|
||||
var startTime = $("#startTime").val();
|
||||
var endTime = $("#endTime").val();
|
||||
var lineIndex = $("#lineIndex").val();
|
||||
var name = $("#lineName").val();
|
||||
var reportNumber = $("#reportNumber").val();
|
||||
var crmName = $("#crmName").val();
|
||||
if(lineIndex == null || lineIndex == ''){
|
||||
layer.msg("请选择监测点",{icon:2})
|
||||
return
|
||||
}
|
||||
layer.confirm(tips, function (index) {
|
||||
var idea;
|
||||
idea = ityzl_SHOW_LOAD_LAYER();
|
||||
$.ajax({
|
||||
method: "post",
|
||||
url: "/pqs9000/exportmodel/exportModel",
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime,
|
||||
lineIndex: lineIndex,
|
||||
name: name,
|
||||
reportNumber: reportNumber,
|
||||
crmName: crmName,
|
||||
picdefault: picdefult
|
||||
},
|
||||
dataType: 'text',
|
||||
async: false,
|
||||
success: function (data) {
|
||||
if (data == "pathfail") {
|
||||
layer.msg("生成失败,模板路径错误!", {
|
||||
icon: 5,
|
||||
time: 2000
|
||||
}, function () {
|
||||
parent.layer.closeAll()
|
||||
});
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
} else if (data == "readerror") {
|
||||
layer.msg("服务器无法打开WORD模板!", {
|
||||
icon: 5,
|
||||
time: 2000
|
||||
}, function () {
|
||||
parent.layer.closeAll()
|
||||
});
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
} else if (data == "filefail") {
|
||||
layer.msg("生成失败,上传图片文件有误!", {
|
||||
icon: 5,
|
||||
time: 2000
|
||||
}, function () {
|
||||
parent.layer.closeAll()
|
||||
});
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
} else if (data == "exportworld") {
|
||||
layer.msg("生成失败,数据有误!", {
|
||||
icon: 5,
|
||||
time: 2000
|
||||
}, function () {
|
||||
parent.layer.closeAll()
|
||||
});
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
} else {
|
||||
layer.msg("生成成功!", {
|
||||
icon: 1,
|
||||
time: 2000
|
||||
}, function () {
|
||||
self.location.href = "/pqs9000/exportmodel/downloadModel";
|
||||
});
|
||||
}
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(idea);
|
||||
}
|
||||
});
|
||||
})
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
392
pqs9000/src/main/webapp/WEB-INF/views/report/fpyReport.jsp
Normal file
392
pqs9000/src/main/webapp/WEB-INF/views/report/fpyReport.jsp
Normal file
@@ -0,0 +1,392 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||
pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
|
||||
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<title>合格率报告</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport"
|
||||
content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
|
||||
<link rel="stylesheet" href="${ctx}/css/plugin/bootstrap/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="${ctx}/css/plugin/datatables/buttons.dataTables.min.css">
|
||||
<link rel="stylesheet" href="${ctx}/css/plugin/datatables/datatables.bootstrap.css">
|
||||
<link rel="stylesheet" href="${ctx}/css/plugin/datatimepicker/bootstrap-datetimepicker.css">
|
||||
<link rel="stylesheet" href="${ctx}/css/plugin/ztree/zTreeStyle.css">
|
||||
<link rel="stylesheet" href="${ctx}/css/plugin/fontawesome/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="${ctx}/css/basic.css">
|
||||
<link rel="stylesheet" href="${ctx}/css/plugin/basicButton.css">
|
||||
<link rel="stylesheet" href="${ctx}/css/tip.css">
|
||||
<style>
|
||||
|
||||
body {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#integritylist {
|
||||
min-width: 2000px;
|
||||
}
|
||||
|
||||
.tr {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.td {
|
||||
text-align: center;
|
||||
height: 48px;
|
||||
line-height: 48px
|
||||
}
|
||||
|
||||
.table > tbody > tr > td {
|
||||
padding: 5px;
|
||||
line-height: 1.42857143;
|
||||
vertical-align: top;
|
||||
border-top: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.pagination > li > a, .pagination > li > span {
|
||||
padding: 6px 12px;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container-fluid">
|
||||
<div class="form-inline header mt10">
|
||||
<label class="form-group">区域:</label>
|
||||
<div class="form-group has-feedback mr10">
|
||||
<div class="disinlineb">
|
||||
<input id="area" class="form-control" style="width: 140px" readonly>
|
||||
<i class="fa fa-caret-down areaicon"></i>
|
||||
<i class="fa fa-caret-up treeUpIcon disnone"
|
||||
style="color: #C9CBCE;position: absolute;left: 60px;font-size: 18px;z-index: 9999;top: 20px"></i>
|
||||
<div class=" ztree treeUpDiv disnone " id="areaTree"
|
||||
style="position: absolute;width: 140px;height: 147px;border: 2px solid #C9CBCE;overflow: auto;top: 32px;background: #fff;z-index: 100;border-radius: 2px">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<%@include file="../include/time.jsp" %>
|
||||
<button id="query" type="button" class="btn btn-primary ml5">
|
||||
<i class="glyphicon glyphicon-search"></i>
|
||||
</button>
|
||||
<div class="form-group fr mr10" id="fliteData">
|
||||
<label>筛选数据:</label>
|
||||
<input type="text" class="form-control" onkeyup="searchResult(this.value)" placeholder="空格分开多条件筛选数据">
|
||||
</div>
|
||||
</div>
|
||||
<table id="integritylist" class="table table-striped table-bordered dataTable no-footer width100">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>序号</th>
|
||||
<th>变电站</th>
|
||||
<th>监测点名称</th>
|
||||
<th>行业类型</th>
|
||||
<th>分类等级</th>
|
||||
<th>电压等级</th>
|
||||
<th>上级变电站</th>
|
||||
<th>挂接线路</th>
|
||||
<th>PT变比</th>
|
||||
<th>CT变比</th>
|
||||
<th>短路容量(MVA)</th>
|
||||
<th>设备容量(MVA)</th>
|
||||
<th>协议容量(MVA)</th>
|
||||
<th>数据完整率</th>
|
||||
<th>谐波情况</th>
|
||||
<th>电能质量情况</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
<script src="${ctx}/js/plugin/jquery/jquery.min.js"></script>
|
||||
<script src="${ctx}/js/plugin/bootstrap/bootstrap.min.js"></script>
|
||||
<script src="${ctx}/js/plugin/bootstrap/bootstrap-datetimepicker.js"></script>
|
||||
<script src="${ctx}/js/plugin/bootstrap/bootstrap-datetimepicker.zh-CN.js"></script>
|
||||
<script src="${ctx}/js/plugin/datatables/datatables.jquery.js"></script>
|
||||
<script src="${ctx}/js/plugin/datatables/dataTables.buttons.min.js"></script>
|
||||
<script src="${ctx}/js/plugin/datatables/datatables.bootstrap.js"></script>
|
||||
<script src="${ctx}/js/plugin/datatables/buttons.html5.min.js"></script>
|
||||
<script src="${ctx}/js/plugin/layui/layer.js"></script>
|
||||
<script src="${ctx}/jspJS/utils/loading.js"></script>
|
||||
<script src="${ctx}/jspJS/utils/timeControl.js"></script>
|
||||
<script src="${ctx}/js/plugin/ztree/jquery.ztree.core.js"></script>
|
||||
<script src="${ctx}/js/area.js"></script>
|
||||
<script src="${ctx}/js/plugin/xss/xss.js"></script>
|
||||
<script src="${ctx}/jspJS/utils/judgeAjaxStatus.js"></script>
|
||||
<script src="${ctx}/js/color.js"></script>
|
||||
<script type="text/javascript">
|
||||
var $area = $("#area");
|
||||
var $startTime = $("#startTime");
|
||||
var $endTime = $("#endTime");
|
||||
var dataTable = null;
|
||||
var resultData = null;
|
||||
var areaInfo;
|
||||
|
||||
$("#interval").val("周");
|
||||
|
||||
$(function () {
|
||||
|
||||
//初始化区域
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/getAreasInfo",
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
areaInfo = data;
|
||||
$("#area").val(data[0].name);
|
||||
$("#area").attr("index", data[0].id);
|
||||
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
|
||||
//初始化页面内容
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(area, startTime, endTime);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
//点击确定,去后台请求参数
|
||||
$("#query").click(function () {
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(area, startTime, endTime);
|
||||
});
|
||||
|
||||
//获取表格数据
|
||||
function refresh(area, startTime, endTime) {
|
||||
var i;
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/pqs9000/fpyreport/qualifiedRate",
|
||||
dataType: "json",
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime,
|
||||
area: area
|
||||
},
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYERLONG();
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code === 500) {
|
||||
layer.msg(data.message, {icon: 2, time: 2000})
|
||||
//没有数据
|
||||
resultData = null;
|
||||
} else {
|
||||
resultData = data.body;
|
||||
}
|
||||
startQuery();
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function startQuery() {
|
||||
//实时刷新时间单位为毫秒
|
||||
it = setInterval('refreshQuery()', 100);
|
||||
|
||||
}
|
||||
|
||||
/* 刷新查询 */
|
||||
function refreshQuery() {
|
||||
var width = $("#integritylist").width();
|
||||
if (width > 100) {
|
||||
initTable(resultData);
|
||||
window.clearInterval(it)
|
||||
}
|
||||
}
|
||||
|
||||
//实例化表格
|
||||
function initTable(data) {
|
||||
var height = $(window).height() - 155;
|
||||
var length = Math.floor(height / 28);
|
||||
if (length < 1) {
|
||||
length = 1;
|
||||
}
|
||||
dataTable = $("#integritylist").DataTable();
|
||||
dataTable.clear().draw();
|
||||
dataTable = $('#integritylist').DataTable({
|
||||
columnDefs: [
|
||||
{
|
||||
orderable: false,
|
||||
targets: [0]
|
||||
}
|
||||
],
|
||||
columns: [
|
||||
{width: "2%", data: null},
|
||||
{
|
||||
width: "10%", data: "bdName", render: function (data, type, full, meta) {
|
||||
var value = data;
|
||||
if (data.length > 10) {
|
||||
value = data.substring(0, 9) + "...";
|
||||
value = "<span title=" + data + ">" + value + "</span>";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
{
|
||||
width: "10%", data: "lineName", render: function (data, type, full, meta) {
|
||||
var value = data;
|
||||
if (data.length > 12) {
|
||||
value = data.substring(0, 11) + "...";
|
||||
value = "<span title=" + data + ">" + value + "</span>";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
{width: "6%", data: "businessType"},
|
||||
{width: "6%", data: "calssificationGrade", render: function (data, type, full, meta) {
|
||||
return data==null?"/":data;
|
||||
}},
|
||||
{width: "5%", data: "scale"},
|
||||
{width: "6%", data: "superiorsSubstation", render: function (data, type, full, meta) {
|
||||
return data==null?"/":data;
|
||||
}},
|
||||
{width: "6%", data: "hangLine", render: function (data, type, full, meta) {
|
||||
return data==null?"/":data;
|
||||
}},
|
||||
{width: "5%", data: "pt"},
|
||||
{width: "5%", data: "ct"},
|
||||
{width: "6%", data: "dlcmp"},
|
||||
{width: "6%", data: "devcmp"},
|
||||
{width: "6%", data: "xycmp"},
|
||||
{
|
||||
width: "6%", data: "integrity",
|
||||
render: function (data, type, full, meta) {
|
||||
var temp = Number(data);
|
||||
if (temp > 100) {
|
||||
return 100;
|
||||
} else if (temp < 0) {
|
||||
return 0;
|
||||
} else {
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
},
|
||||
{width: "8%", data: "harmDes"},
|
||||
{
|
||||
width: "20%", data: "powerDes", render: function (data, type, full, meta) {
|
||||
var value = data;
|
||||
if (data.length > 21) {
|
||||
value = data.substring(0, 20) + "...";
|
||||
value = "<span title=" + data + ">" + value + "</span>";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
],
|
||||
destroy: true,
|
||||
data: data,
|
||||
lengthChange: false,
|
||||
searching: true,
|
||||
dom: 'rtip',
|
||||
scrollY: height,
|
||||
scrollX: true,
|
||||
lengthMenu: [length],
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json'
|
||||
},
|
||||
fnDrawCallback: function (oTable) {
|
||||
$("#integritylist_info").addClass("fl");
|
||||
$("#integritylist_paginate").addClass("fr");
|
||||
$("#integritylist_paginate").append("<div style='float:right;padding-top:4px;padding-left:10px'>到第 <input type='text' id='changePage' class='input-text' style='width:50px;height:28px;'> 页 <button class='btn btn-primary' id='dataTable-btn'>确定</button></div>");
|
||||
var table = $("#integritylist").dataTable();
|
||||
$('#dataTable-btn').click(function (e) {
|
||||
if ($("#changePage").val() && $("#changePage").val() > 0) {
|
||||
var redirectpage = $("#changePage").val() - 1;
|
||||
} else {
|
||||
var redirectpage = 0;
|
||||
}
|
||||
table.fnPageChange(redirectpage);
|
||||
});
|
||||
}
|
||||
});
|
||||
var name = $area.find("option:selected").text();
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
startTime.replace("-", "");
|
||||
endTime.replace("-", "");
|
||||
new $.fn.dataTable.Buttons(dataTable, {
|
||||
buttons: [
|
||||
{
|
||||
extend: 'csv',
|
||||
title: name + startTime + '至' + endTime + '合格率',//导出csv名称
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
||||
format: {
|
||||
body: function (data, rID, cID) {
|
||||
if (cID === 0) {
|
||||
return rID + 1;
|
||||
} else if (cID === 1 | cID === 2 | cID === 6 | cID === 7 | cID === 15) {
|
||||
let result;
|
||||
if (data.indexOf("title") > 0) {
|
||||
result = data.substring(data.indexOf("=") + 1, data.indexOf(">"));
|
||||
} else {
|
||||
result = data
|
||||
}
|
||||
|
||||
if(cID === 1){
|
||||
if (result.lastIndexOf("_") > 0) {
|
||||
result = result.substring(0,result.lastIndexOf("_"));
|
||||
}
|
||||
}
|
||||
if (cID === 15) {
|
||||
let arr = result.split(";")
|
||||
if (arr.length == 0) {
|
||||
return result;
|
||||
} else {
|
||||
let resultStr = "";
|
||||
for (let i = 0; i < arr.length; i++) {
|
||||
if (i != arr.length - 1) {
|
||||
resultStr += arr[i] + ';\n';
|
||||
}
|
||||
}
|
||||
return resultStr;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
||||
} else {
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
modifyCss(dataTable);
|
||||
dataTable.on('order.dt search.dt',
|
||||
function () {
|
||||
dataTable.column(0, {
|
||||
search: 'applied',
|
||||
order: 'applied'
|
||||
}).nodes().each(function (cell, i) {
|
||||
cell.innerHTML = i + 1;
|
||||
});
|
||||
}).draw();
|
||||
}
|
||||
|
||||
function modifyCss(dataTable) {
|
||||
dataTable.buttons().container().css("display", "inline-block");
|
||||
dataTable.buttons().container().css("float", "right");
|
||||
dataTable.buttons().container().css("top", "4px");
|
||||
dataTable.buttons().container().find("a").prepend("<i class='glyphicon glyphicon-share'></i>");
|
||||
dataTable.buttons().container().appendTo('.header');
|
||||
dataTable.buttons().container().after($("#fliteData")[0]);
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--start
|
||||
var it = null;
|
||||
|
||||
//搜索表中的数据
|
||||
function searchResult(value) {
|
||||
dataTable.search(value).draw();
|
||||
}
|
||||
</script>
|
||||
</html>
|
||||
51
pqs9000/src/main/webapp/WEB-INF/views/report/percent.jsp
Normal file
51
pqs9000/src/main/webapp/WEB-INF/views/report/percent.jsp
Normal file
@@ -0,0 +1,51 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||
pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
|
||||
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<title>合格率报表</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport"
|
||||
content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
|
||||
<link rel="stylesheet" href="${ctx}/css/plugin/bootstrap/bootstrap.css">
|
||||
<link rel="stylesheet" href="${ctx}/css/plugin/datatimepicker/bootstrap-datetimepicker.css">
|
||||
<link rel="stylesheet" href="${ctx}/js/plugin/layui/css/layui.css">
|
||||
<link rel="stylesheet" href="${ctx}/js/plugin/dateRangePicker/daterangepicker.css">
|
||||
<link rel="stylesheet" href="${ctx}/css/basic.css">
|
||||
<style type="text/css">
|
||||
body {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.form-group .form-control {
|
||||
height: 26px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<%@include file="../include/deviceTree.jsp" %>
|
||||
<form class="form-inline header" style="float: right;margin-top:5px;position: relative;z-index: 99">
|
||||
<%@include file="../include/time.jsp" %>
|
||||
<div class="form-inline pdr15" style="display: inline-block;">
|
||||
<button type="button" class="btn btn-primary" id="export">
|
||||
<i class='glyphicon glyphicon-share'>生成报表</i>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<scrqipt src="${ctx}/js/plugin/bootstrap/bootstrap.min.js"></scrqipt>
|
||||
<script src="${ctx}/js/plugin/layui/layui.js"></script>
|
||||
<script src="${ctx}/js/plugin/dateRangePicker/moment.min.js"></script>
|
||||
<script src="${ctx}/js/plugin/dateRangePicker/daterangepicker.js"></script>
|
||||
<script src="${ctx}/js/plugin/ztree/jquery.ztree.excheck.js"></script>
|
||||
<script src="${ctx}/js/plugin/bootstrap/bootstrap-datetimepicker.js"></script>
|
||||
<script src="${ctx}/js/plugin/bootstrap/bootstrap-datetimepicker.zh-CN.js"></script>
|
||||
<script src="${ctx}/jspJS/utils/judgeAjaxStatus.js"></script>
|
||||
<script src="${ctx}/jspJS/utils/timeControl.js"></script>
|
||||
<script src="${ctx}/jspJS/utils/loading.js"></script>
|
||||
<script src="${ctx}/jspJS/report/percent.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user