Files
SIPAIIS_WMS_JSSW/WebRoot/jsp/data/curveManageView_WaterAnalysis.jsp
2026-01-16 14:13:44 +08:00

657 lines
26 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<script type="text/javascript">
var beginTimeStore1 = '';
var endTimeStore1 = '';
function initDate1() {
//定义locale汉化插件
beginTimeStore1 = moment().subtract(1, 'days').format('YYYY-MM-DD HH:mm');;
endTimeStore1 = moment().format('YYYY-MM-DD HH:mm');
/* if(${param.sdt!=''}){
beginTimeStore1='2018-08-09';
}
if(${param.edt!=''}){
endTimeStore1='2018-08-10';
} */
var locale = {
"format": 'YYYY-MM-DD HH:mm',
"separator": " ~ ",
"applyLabel": "确定",
"cancelLabel": "取消",
"fromLabel": "起始时间",
"toLabel": "结束时间'",
"customRangeLabel": "自定义",
"weekLabel": "W",
"daysOfWeek": ["日", "一", "二", "三", "四", "五", "六"],
"monthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
"firstDay": 1
};
$('#reservationtime1').daterangepicker({
"timePicker": true,
"timePicker24Hour": true,
"linkedCalendars": false,
"autoUpdateInput": false,
"timePickerIncrement": 10,
"locale": locale,
//汉化按钮部分
ranges: {
'1天': [moment().subtract(1, 'days'), moment()],
'1月': [moment().subtract(1, 'months'), moment()],
'1年': [moment().subtract(1, 'years'), moment()],
},
startDate: beginTimeStore1,
endDate: endTimeStore1
}, function(start, end, label) {
beginTimeStore1 = start.format(this.locale.format);
endTimeStore1 = end.format(this.locale.format);
if(!this.startDate){
this.element.val('');
}else{
this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));
}
});
$('#reservationtime1').val(beginTimeStore1 + locale.separator + endTimeStore1);
//展示测量点曲线
getMpointJson();
};
var companyId="";
var data = [["2000-06-05",116],["2000-06-06",129],["2000-06-07",135],["2000-06-08",86],["2000-06-09",73],["2000-06-10",85],["2000-06-11",73],["2000-06-12",68],["2000-06-13",92],["2000-06-14",130],["2000-06-15",245],["2000-06-16",139],["2000-06-17",115],["2000-06-18",111],["2000-06-19",309],["2000-06-20",206],["2000-06-21",137],["2000-06-22",128],["2000-06-23",85],["2000-06-24",94],["2000-06-25",71],["2000-06-26",106],["2000-06-27",84],["2000-06-28",93],["2000-06-29",85],["2000-06-30",73],["2000-07-01",83],["2000-07-02",125],["2000-07-03",107],["2000-07-04",82],["2000-07-05",44],["2000-07-06",72],["2000-07-07",106],["2000-07-08",107],["2000-07-09",66],["2000-07-10",91],["2000-07-11",92],["2000-07-12",113],["2000-07-13",107],["2000-07-14",131],["2000-07-15",111],["2000-07-16",64],["2000-07-17",69],["2000-07-18",88],["2000-07-19",77],["2000-07-20",83],["2000-07-21",111],["2000-07-22",57],["2000-07-23",55],["2000-07-24",60]];
var dateList = data.map(function (item) {
return item[0];
});
var valueList = data.map(function (item) {
return item[1];
});
var mpcodestr="";
var mpnamestr="";
var mpunitstr="";
var optionArr= new Array();
var colors = ['#00c200', '#d14a61', '#675bba','#5793f3'];
function getMpointJson(){
var key="${param.key}";
$.post(ext.contextPath +"/data/energyAnalysis/getMPointJsons.do",{companyId:companyId,key:key},function(data){
var keyArray= key.split(',');
$.each(data,function(index,item){
mpcodestr="";
mpnamestr="";
mpunitstr="";
var ArrayDatas = item;
var mpcode = [];
for (var i=0;i<ArrayDatas.length;i++){
mpcode.push(ArrayDatas[i].mPoint.mpointcode);
mpcodestr+=ArrayDatas[i].mPoint.mpointcode+",";//测量点code
mpnamestr+=ArrayDatas[i].mPoint.parmname+",";//测量点名称
mpunitstr+=ArrayDatas[i].mPoint.unit+",";//测量点单位
}
if(index==0){
getHistoryJsons4Area(keyArray[index],mpcodestr,mpnamestr,mpunitstr);
}else{
getHistoryJsons(keyArray[index],mpcodestr,mpnamestr,mpunitstr);
}
})
},'json');
//console.log(idArr.length);
};
var myChart;
function getHistoryJsons4Area(title,ids,names,units){
/* console.log(ids);
console.log(names);
console.log(units); */
$.post(ext.contextPath +"/work/mpoint/getHistory.do",{bizId:companyId,ids:ids,sdt:beginTimeStore1,edt:endTimeStore1},function(data){
var ArrayDatas = eval("(" + data + ")");
console.log(ArrayDatas);
var measuredt = [];
var res = ArrayDatas[0];
for(var i=0;i<res.length;i++){
measuredt.push(res[i].measuredt.substring(0,16));
}
var parmvalue = [];
var mpnamestr = names.substring(0, names.length-1);
mpnamestr = mpnamestr.split(",");
var mpunitstr = units.substring(0, units.length-1);
mpunitstr = mpunitstr.split(",");
var offset=60;
var yaAxis=[];
var series=[];
for(var i=0;i<mpnamestr.length;i++){
var xobj = {};
xobj.type='value';
xobj.name=mpnamestr[i];
if(i==0){
xobj.position='left';
xobj.offset=0;
}else{
xobj.position='right';
xobj.offset=offset*(i-1);
}
var axisLine={};
var lineStyle={};
var length=mpnamestr.length-1;
/* lineStyle.color=colors[i%colors.length];
axisLine.lineStyle=lineStyle; */
xobj.axisLine=axisLine;
var axisLabel={};
axisLabel.formatter='{value}'+mpunitstr[i];
xobj.axisLabel=axisLabel;
xobj.min= function(value){
return value.min;
}
yaAxis.push(xobj);
var yobj = {};
yobj.type='line';
yobj.name=mpnamestr[i];
//yobj.yAxisIndex=i;
var data =[];
for(var j=0;j<measuredt.length;j++){
var resy = ArrayDatas[i];
data.push(resy[j].parmvalue);
};
yobj.stack='总量';
yobj.areaStyle={};
yobj.data=data;
var markPoint={};
series.push(yobj);
console.log("series",series)
};
var option = {
title: {
text: title,
x: 'left'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
},
/* grid: {
right: '20%'
}, */
toolbox: {
feature: {
dataView: {show: false, readOnly: false},
restore: {show: false},
saveAsImage: {show: false}
}
},
legend: {
data:mpnamestr
},
xAxis : [
{
type: 'category',
axisTick: {
alignWithLabel: true
},
data: measuredt,
axisLabel: {
                    //interval: 1000,//横坐标间隔
                    rotate: 340,//横坐标倾斜角度
                },
}
],
yAxis : [
{
type : 'value'
}
],
series:series
};
var number=mpnamestr.length;
//chart.style.width = $("#chartdiv").width()+offset*number+300+'px';
//chart.style.height = 250+'px';
$("#chart").height($("#chartdiv").height()-50);
$("#chart").width($("#chartdiv").width());
//$("#chart").width(700);
var arr=[];
$.each(ArrayDatas,function(index,item){
console.log("mpnamestr",mpnamestr[index])
var point =item[0];
var value =point==null? 0:point.parmvalue;
var name =mpnamestr[index];
var arrItem={};
arrItem.name = name;
arrItem.value=value;
arr.push(arrItem)
})
var echartsPie =intialPie('chartPie',arr);
if(myChart!=null){
myChart.clear();
myChart.dispose();
}
myChart = echarts.init(document.getElementById("chart"));
myChart.on('updateAxisPointer', function (event) {
var xAxisInfo = event.axesInfo[0];
if (xAxisInfo) {
//console.log("event",event);
var dataIndex= event.dataIndex;
var arr=[];
$.each(ArrayDatas,function(index,item){
console.log("mpnamestr",mpnamestr[index])
var point =item[dataIndex];
var value =point==null? 0:point.parmvalue;
var name =mpnamestr[index];
var arrItem={};
arrItem.name = name;
arrItem.value=value;
arr.push(arrItem)
})
var dimension = xAxisInfo.value + 1;
echartsPie.setOption({
series: {
type:'pie',
radius : '55%',//饼图的半径大小
center: ['50%', '40%'],//饼图的位置
label: {
normal: {
show: true,
formatter: '{b}: {c}'
}
},
data:arr
}
});
}
});
myChart.setOption(option);
});
}
function intialPie(id,value){
var echartsPie;
var json = data;
var legend = [];
$.each(data,function(index,value){
legend.push(value.name)
});
var date = new Date();
var option = {
/* title: {
text: '处理中运维数',
x: 'center'
}, */
tooltip : {
trigger: 'item',
formatter: "{b} : {c} 次"
},
legend: {
orient : 'vertical',
x : 'left',
data:legend
},
calculable : true,
series : [
{
type:'pie',
radius : '55%',//饼图的半径大小
center: ['50%', '40%'],//饼图的位置
label: {
normal: {
show: true,
formatter: '{b}: {c}'
}
},
data:value
}
],
//color: ['#00c0ef','#00a65a','#f39c12','#3c8dbc','#dd4b39']
};
echartsPie = echarts.init(document.getElementById(id));
echartsPie.setOption(option);
return echartsPie;
}
var myChart1;
function getHistoryJsons(title,ids,names,units){
/* console.log(ids);
console.log(names);
console.log(units); */
$.post(ext.contextPath +"/work/mpoint/getHistory.do",{bizId:companyId,ids:ids,sdt:beginTimeStore1,edt:endTimeStore1},function(data){
var ArrayDatas = eval("(" + data + ")");
console.log(ArrayDatas);
var measuredt = [];
var res = ArrayDatas[0];
for(var i=0;i<res.length;i++){
measuredt.push(res[i].measuredt.substring(0,16));
}
var parmvalue = [];
var mpnamestr = names.substring(0, names.length-1);
mpnamestr = mpnamestr.split(",");
var mpunitstr = units.substring(0, units.length-1);
mpunitstr = mpunitstr.split(",");
var offset=60;
var yaAxis=[];
var series=[];
for(var i=0;i<mpnamestr.length;i++){
var xobj = {};
xobj.type='value';
xobj.name=mpnamestr[i];
if(i==0){
xobj.position='left';
xobj.offset=0;
}else{
xobj.position='right';
xobj.offset=offset*(i-1);
}
var axisLine={};
var lineStyle={};
var length=mpnamestr.length-1;
/* lineStyle.color=colors[i%colors.length];
axisLine.lineStyle=lineStyle; */
xobj.axisLine=axisLine;
var axisLabel={};
axisLabel.formatter='{value}'+mpunitstr[i];
xobj.axisLabel=axisLabel;
xobj.min= function(value){
return value.min;
}
yaAxis.push(xobj);
var yobj = {};
yobj.type='line';
yobj.name=mpnamestr[i];
//yobj.yAxisIndex=i;
var data =[];
for(var j=0;j<measuredt.length;j++){
var resy = ArrayDatas[i];
data.push(resy[j].parmvalue);
};
yobj.data=data;
var markPoint={};
/* var str ='{"data": [{"type": "max", "name": "最大值", "itemStyle": {"color": "red"}},{"type": "min", "name": "最小值", "itemStyle": {"color": "green"}}]}';
yobj.markPoint=JSON.parse(str);
str ='{"data": [{"type": "average", "name": "平均值"}]}';
yobj.markLine=JSON.parse(str); */
series.push(yobj);
console.log("series",series)
};
var option = {
title: {
text: title,
x: 'left'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
},
/* grid: {
right: '20%'
}, */
toolbox: {
feature: {
dataView: {show: false, readOnly: false},
restore: {show: false},
saveAsImage: {show: false}
}
},
legend: {
data:mpnamestr
},
/* xAxis: [
{
type: 'category',
axisTick: {
alignWithLabel: true
},
data: measuredt,
axisLabel: {
                    //interval: 1000,//横坐标间隔
                    rotate: 340,//横坐标倾斜角度
                },
}
],
yAxis:yaAxis, */
xAxis : [
{
type : 'category',
boundaryGap : false,
data : measuredt
}
],
yAxis : [
{
type : 'value'
}
],
series:series
};
var chart = document.getElementById("chart1");
var number=mpnamestr.length;
console.log(offset);
//chart.style.width = $("#chartdiv").width()+offset*number+300+'px';
//chart.style.height = 250+'px';
$("#chart1").height($("#chartdiv1").height()-50);
$("#chart1").width($("#chartdiv1").width());
var arr=[];
$.each(ArrayDatas,function(index,item){
console.log("mpnamestr",mpnamestr[index])
var point =item[0];
var value =point==null? 0:point.parmvalue;
var name =mpnamestr[index];
var arrItem={};
arrItem.name = name;
arrItem.value=value;
arr.push(arrItem)
})
var echartsPie =intialPie("chartPie1",arr);
if(myChart1!=null){
myChart1.clear();
myChart1.dispose();
}
myChart1 = echarts.init(document.getElementById("chart1"));
myChart1.on('updateAxisPointer', function (event) {
var xAxisInfo = event.axesInfo[0];
if (xAxisInfo) {
//console.log("event",event);
var dataIndex= event.dataIndex;
var arr=[];
$.each(ArrayDatas,function(index,item){
console.log("mpnamestr",mpnamestr[index])
var point =item[dataIndex];
var value =point==null? 0:point.parmvalue;
var name =mpnamestr[index];
var arrItem={};
arrItem.name = name;
arrItem.value=value;
arr.push(arrItem)
})
var dimension = xAxisInfo.value + 1;
echartsPie.setOption({
series: {
type:'pie',
radius : '55%',//饼图的半径大小
center: ['50%', '40%'],//饼图的位置
label: {
normal: {
show: true,
formatter: '{b}: {c}'
}
},
data:arr
}
});
}
});
myChart1.setOption(option);
});
}
function getHistoryList(ids,names){
var idarr = ids.substring(0, ids.length-1);
idarr = idarr.split(",");
var namearr = names.substring(0, names.length-1);
namearr = namearr.split(",");
console.log(idarr);
var length = idarr.length;
var mpoint = [];
var checkobx={};
checkobx.checkbox = true;
//mpoint.push(checkobx);
var measuredt={};
measuredt.field='measuredt';
measuredt.title='时间';
measuredt.align='center';
measuredt.valign='middle';
measuredt.width=150;
mpoint.push(measuredt);
for(var i=0;i<idarr.length;i++){
//var color=colors[i%idarr.length];
var parmvalue={};
parmvalue.field = 'paramvalue'+i;
parmvalue.title=namearr[i];
parmvalue.align='center';
parmvalue.valign='middle';
//parmvalue.width=60;
/* var css1 = {};
css1.color = color;
var cellstyle = {};
cellstyle.css=css1;
parmvalue.cellStyle=cellstyle,*/
mpoint.push(parmvalue);
};
};
function dosearch(){
mpcodestr="";
mpnamestr="";
mpunitstr="";
optionArr= new Array();
getMpointJson();
}
$(function() {
$.post(ext.contextPath + "/user/getSearchBizsByUserId4Select.do", {}, function(data) {
if(data.length == 1){
//选择厂区为一个厂时隐藏选择框
$("#search_code").css("display", "none");
$("#company").text(data[0].text);
companyId=data[0].id;
}else{
$("#company").css("display", "none");
var selelct=$("#search_code").select2({
data : data ,
placeholder:'请先选择水厂',//默认文字提示
allowClear: true,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
$(".select2-selection--single").css({'height':'30px','paddingTop':'4px'})
selelct.val('').trigger("change");
//refreshSelect();
selelct.on("change",function(e){
companyId= $(this).val();
});
}
initDate1();
},'json');
});
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="mpSubDiv"></div>
<div class="form-group">
<label class="form-label" id="companylabel">水厂:</label>
<label class="form-label" id="company" style="width:180px;border: none;background: transparent;" ></label>
<select class="form-control select2 " id="search_code" name ="search_code" style="width: 220px;"></select>
</div>
<div class="form-group pull-right form-inline" >
<div class="input-group input-group-sm">
<input type="text" class="form-control pull-left" id="reservationtime1" style="width:225px">
<div class="input-group-btn pull-left">
<button type="button" class="btn btn-default" onclick="dosearch();" ><i class="fa fa-search"></i> 查询</button>
</div>
</div>
</div>
<div class="col-sm-12 col-md-9 col-lg-9 col-xl-9" style="height:350px;padding:0px;overflow:hidden;overflow-y:hidden" id="chartdiv">
<div id="chart" style=""></div>
</div>
<div class="col-sm-12 col-md-3 col-lg-3 col-xl-3" style="height:350px;padding:0px;overflow:hidden;overflow-y:hidden" >
<div id="chartPie" style="height:350px;"></div>
</div>
<div class="col-sm-12 col-md-9 col-lg-9 col-xl-9" style="height:350px;padding:0px;overflow:hidden;overflow-y:hidden" id="chartdiv1">
<div id="chart1" style=""></div>
</div>
<div class="col-sm-12 col-md-3 col-lg-3 col-xl-3" style="height:350px;padding:0px;overflow:hidden;overflow-y:hidden" >
<div id="chartPie1" style="height:350px;"></div>
</div>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
<!-- echarts-->
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/echarts/echarts.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/echarts/macarons.js" charset="utf-8"></script>
<!-- 引入daterangepicker-->
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js" charset="utf-8"></script>
</html>