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

699 lines
31 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

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

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<script type="text/javascript">
//获取>泵性能曲线-总
function getChartData_pumpAll(id,title,xAxis,data,legendData,selected) {
var lifeChart = echarts.getInstanceByDom(document.getElementById(id)); //有的话就获取已有echarts实例的DOM节点。
if (lifeChart != null) { // 如果存在,就进行销毁。
lifeChart.dispose();
}
var option = {
title: {
text: title,
x:'center',
},
tooltip: {
trigger: 'axis'
},
toolbox: {
show: true,
feature: {
dataZoom: {
yAxisIndex: 'none'
},
}
},
legend: {
type: 'scroll',
data: legendData,
x:'left',
top:'25px',
selected: selected
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'category',
data:xAxis,
},
yAxis: {
type: 'value'
},
series: data
};
lifeChart = echarts.init(document.getElementById(id));
lifeChart.setOption(option,true);
}
//获取泵性能曲线-分项
function getChartData_pump(id,data,data2,title) {
// See https://github.com/ecomfe/echarts-stat
var myRegression = ecStat.regression('polynomial', data);
myRegression.points.sort(function(a, b) {
return a[0] - b[0];
});
var myRegression2 = ecStat.regression('polynomial', data2.reverse());
myRegression2.points.sort(function(a, b) {
return a[0] - b[0];
});
var option = {
title: {
text: title,
left: 'center'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
},
legend: {
data: ['实际', '标准'],
x:'right'
},
xAxis: {
type: 'value',
splitLine: {
lineStyle: {
type: 'dashed'
}
},
},
yAxis: {
type: 'value',
splitLine: {
lineStyle: {
type: 'dashed'
}
}
},
series: [{
name: '实际scatter',
type: 'scatter',
emphasis: {
label: {
show: true,
position: 'left',
color: 'blue',
fontSize: 16
}
},
data: data
}, {
name: '实际',
type: 'line',
showSymbol: false,
smooth: true,
data: myRegression.points,
markPoint: {
itemStyle: {
color: 'transparent'
},
label: {
show: false,
position: 'left',
formatter: myRegression.expression,
color: '#333',
fontSize: 14
},
data: [{
coord: myRegression.points[myRegression.points.length - 1]
}]
}
},{
name: '标准scatter',
type: 'scatter',
emphasis: {
label: {
show: true,
position: 'left',
color: 'green',
fontSize: 16
}
},
data: data2
}, {
name: '标准',
type: 'line',
showSymbol: false,
smooth: true,
data: myRegression2.points,
markPoint: {
itemStyle: {
color: 'transparent'
},
label: {
show: false,
position: 'left',
formatter: myRegression2.expression,
color: '#333',
fontSize: 14
},
data: [{
coord: myRegression2.points[myRegression2.points.length - 1]
}]
}
}]
};
var lifeChart = echarts.init(document.getElementById(id));
lifeChart.setOption(option);
}
function charts_bars_new(id,title,data,legendData) {
var option = {
title: {
text: title,
x:'left',
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
grid: [{
right: '60%'
},{
left: '40%'
}],
legend: {
data: legendData,
x:'right',
},
xAxis: [
{
type: 'category',
data: ['单耗kWh/t']
},
{
type: 'category',
data: ['运行次数(次)', '运行时间h'],
gridIndex: 1,
}
],
yAxis: [
{
type: 'value',
axisLine: {
show: true,
},
splitLine: {
show: false,
},
},
{
type: 'value',
position: 'right',
axisLine: {
show: true,
},
splitLine: {
show: false,
},
gridIndex: 1,
}
],
series: data
};
var lifeChart = echarts.init(document.getElementById(id));
lifeChart.setOption(option);
}
$(function () {
/* $("#enddate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
$("#startdate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
$("#enddate_consumption").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
$("#startdate_consumption").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})*/
$("#enddate").datetimepicker({
language:'zh-CN',
format: 'yyyy-mm-dd hh:ii',
dateFormat: 'yyyy-mm-dd',//日期显示格式
timeFormat: 'HH:mm',//时间显示格式
startView: "day", //初始化视图是‘年’
minView: 0,
maxView: "year",
minuteStep: 1,//分钟间隔1分钟
autoclose: true
}).on('changeDate', function () {
});
$("#startdate").datetimepicker({
language:'zh-CN',
format: 'yyyy-mm-dd hh:ii',
dateFormat: 'yyyy-mm-dd',//日期显示格式
timeFormat: 'HH:mm',//时间显示格式
startView: "day", //初始化视图是‘年’
minView: 0,
maxView: "year",
minuteStep: 1,//分钟间隔1分钟
autoclose: true
}).on('changeDate', function () {
});
$("#enddate_consumption").datetimepicker({
language:'zh-CN',
format: 'yyyy-mm-dd hh:ii',
dateFormat: 'yyyy-mm-dd',//日期显示格式
timeFormat: 'HH:mm',//时间显示格式
startView: "day", //初始化视图是‘年’
minView: 0,
maxView: "year",
minuteStep: 1,//分钟间隔1分钟
autoclose: true
}).on('changeDate', function () {
});
$("#startdate_consumption").datetimepicker({
language:'zh-CN',
format: 'yyyy-mm-dd hh:ii',
dateFormat: 'yyyy-mm-dd',//日期显示格式
timeFormat: 'HH:mm',//时间显示格式
startView: "day", //初始化视图是‘年’
minView: 0,
maxView: "year",
minuteStep: 1,//分钟间隔1分钟
autoclose: true
}).on('changeDate', function () {
});
$("#enddate_consumption_DH").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
$("#startdate_consumption_DH").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
var htmlStr = equipmentNames;
$("#myModalLabel").html(htmlStr);
getData();
/* getConsumptionData();
getConsumptionData_DH(); */
})
function getData() {
var timeType = $("#timeType").val();
var num = $("#num").val();
var startdate = $("#startdate").val();
var enddate = $("#enddate").val();
var pumpMultiple = $("#pumpMultiple").val();
$.post(ext.contextPath + '/valueEngineering/equipmentEvaluate/getPumpAnalysisContrastChartData.do',
{ id: equipmentids,timeType:timeType,num:num,startdate:startdate,enddate:enddate,pumpMultiple:pumpMultiple }, function (datas) {
var data = JSON.parse(datas);
console.log(data);
var result = data.dataList;
var xAxisList = data.xAxisList;
if (result != "") {
var data_flow = [];
var data_power = [];//功率_实际
var data_lift = [];//扬程_实际
var data_efficiency = [];//效率_实际
var data_level = [];//青标液位_实际
var legend_flow = [];
var legend_power = [];//功率_实际
var legend_lift = [];//扬程_实际
var legend_efficiency = [];//效率_实际
var legend_level = [];//青标液位_实际
var selected_flow = {};
var selected_power = {};//功率_实际
var selected_lift = {};//扬程_实际
var selected_efficiency = {};//效率_实际
var selected_level = {};//青标液位_实际
var selected_tons = {};//青标液位_实际
var legend_tons = [];//功率_实际
var data_tons = [];//单耗_实际
var data_flow_standard = [];//流量_标准
var data_power_standard = [];//功率_标准
var data_lift_standard = [];//扬程_标准
var data_efficiency_standard = [];//效率_标准
var data_lift_actual_item = [];
var data_lift_standard_item = [];
var data_power_actual_item = [];
var data_power_standard_item = [];
var data_efficiency_actual_item = [];
var data_efficiency_standard_item = [];
for(var i=0;i<result.length;i++){
var data = result[i];
legend_flow[i]=data.equipmentCardName+"流量";
legend_power[i]=data.equipmentCardName+"功率";
legend_lift.push(data.equipmentCardName+"扬程",data.equipmentCardName+"青标液位",data.equipmentCardName+"压力");
legend_efficiency[i]=data.equipmentCardName+"效率";
legend_level[i]=data.equipmentCardName+"青标液位";
legend_tons[i]=data.equipmentCardName+"单耗";
selected_flow[data.equipmentCardName+"流量"]=true;
selected_power[data.equipmentCardName+"功率"]=true;
selected_lift[data.equipmentCardName+"扬程"]=true;
selected_lift[data.equipmentCardName+"青标液位"]=false;
selected_lift[data.equipmentCardName+"压力"]=false;
selected_efficiency[data.equipmentCardName+"效率"]=true;
selected_level[data.equipmentCardName+"青标液位"]=true;
selected_tons[data.equipmentCardName+"单耗"]=true;
data_flow.push({
name: data.equipmentCardName+"流量",
type: 'line',
data: data.flow_actual
});
data_power.push({
name: data.equipmentCardName+"功率",
type: 'line',
data: data.power_actual
});
data_lift.push({
name: data.equipmentCardName+"扬程",
type: 'line',
data: data.lift_actual
});
data_efficiency.push({
name: data.equipmentCardName+"效率",
type: 'line',
data: data.efficiency_actual
});
data_lift.push({
name: data.equipmentCardName+"青标液位",
type: 'line',
data: data.level_actual
});
data_lift.push({
name: data.equipmentCardName+"压力",
type: 'line',
data: data.pressure_actual
});
data_tons[i]={
name: data.equipmentCardName+"单耗",
type: 'line',
data: data.tons_actual
}
data_flow_standard = data.flow_standard;//流量_标准
data_power_standard = data.power_standard;//功率_标准
data_lift_standard = data.lift_standard;//扬程_标准
data_efficiency_standard = data.efficiency_standard;//效率_标准
//流量_实际
if(data.flow_actual!=null && data.flow_actual.length>0){
for(var a=0;a<data.flow_actual.length;a++){
if(a<data.lift_actual.length){
data_lift_actual_item.push([data.flow_actual[a][1],data.lift_actual[a][1]]);
}/* else{
data_lift_actual_item[a] = [data_flow[a],0];
} */
if(a<data.power_actual.length){
data_power_actual_item.push([data.flow_actual[a][1],data.power_actual[a][1]]);
}/* else{
data_power_actual_item[a] = [data_flow[a],0];
} */
if(a<data.efficiency_actual.length){
data_efficiency_actual_item.push([data.flow_actual[a][1],data.efficiency_actual[a][1]]);
}/* else{
data_efficiency_actual_item[a] = [data_flow[a],0];
} */
}
}
if(data_flow_standard!=null && data_flow_standard.length>0){
for(var a=0;a<data_flow_standard.length;a++){
if(a<data_lift_standard.length){
data_lift_standard_item[a] = [data_flow_standard[a],data_lift_standard[a]];
}/* else{
data_lift_standard_item[a] = [data_flow_standard[a],0];
} */
if(a<data_power_standard.length){
data_power_standard_item[a] = [data_flow_standard[a],data_power_standard[a]];
}/* else{
data_power_standard_item[a] = [data_flow_standard[a],0];
} */
if(a<data_efficiency_standard.length){
data_efficiency_standard_item[a] = [data_flow_standard[a],data_efficiency_standard[a]];
}/* else{
data_efficiency_standard_item[a] = [data_flow_standard[a],0];
} */
}
}
}
getChartData_pumpAll('flow','流量曲线(m³/h)',xAxisList,data_flow,legend_flow,selected_flow);
getChartData_pumpAll('power','单耗曲线(KWh/t/m)',xAxisList,data_tons,legend_tons,selected_tons);
//getChartData_pumpAll('power','功率曲线(kW)',xAxisList,data_power,legend_power,selected_power);
getChartData_pumpAll('lift','扬程(m)、青标液位(m)、压力曲线',xAxisList,data_lift,legend_lift,selected_lift);
getChartData_pumpAll('efficiency','效率曲线(%)',xAxisList,data_efficiency,legend_efficiency,selected_efficiency);
//getChartData_pump('pump_lift',data_lift_actual_item,data_lift_standard_item,'扬程曲线(m)');
//getChartData_pump('pump_power',data_power_actual_item,data_power_standard_item,'功率曲线');
//getChartData_pump('pump_efficiency',data_efficiency_actual_item,data_efficiency_standard_item,'效率曲线(%)');
}
});
}
function getConsumptionData() {
var timeType = $("#timeType_consumption").val();
var num = $("#num_consumption").val();
var startdate = $("#startdate_consumption").val();
var enddate = $("#enddate_consumption").val();
var pumpMultiple = $("#pumpMultiple_consumption").val();
$.post(ext.contextPath + '/valueEngineering/equipmentEvaluate/getPumpAnalysisContrastChartData.do',
{ id: equipmentids,timeType:timeType,num:num,startdate:startdate,enddate:enddate,pumpMultiple:pumpMultiple }, function (datas) {
var data = JSON.parse(datas);
console.log(data);
var result = data.dataList;
var xAxisList = data.xAxisList;
if (result != "") {
var legend_flow = [];
var legend_tons = [];//功率_实际
var legend_lift = [];//扬程_实际
var data_flow = [];//流量_实际
var data_lift = [];//扬程_实际
var data_tons = [];//单耗_实际
for(var i=0;i<result.length;i++){
var data = result[i];
legend_flow[i]=data.equipmentCardName+"流量";
legend_lift[i]=data.equipmentCardName+"扬程";
legend_tons[i]=data.equipmentCardName+"单耗";
data_flow[i]={
name: data.equipmentCardName+"流量",
type: 'line',
data: data.flow_actual
}
data_lift[i]={
name: data.equipmentCardName+"扬程",
type: 'line',
data: data.lift_actual
}
data_tons[i]={
name: data.equipmentCardName+"单耗",
type: 'line',
data: data.tons_actual
}
}
getChartData_pumpAll('flow_consumption','流量曲线(m³/h)',xAxisList,data_flow,legend_flow);
getChartData_pumpAll('lift_consumption','扬程曲线(m)',xAxisList,data_lift,legend_lift);
getChartData_pumpAll('tons_consumption','单耗曲线(KWh/t/m)',xAxisList,data_tons,legend_tons);
}
});
}
function getConsumptionData_DH() {
var startdate = $("#startdate_consumption_DH").val();
var enddate = $("#enddate_consumption_DH").val();
var pumpMultiple = $("#pumpMultiple_consumption_DH").val();
$.post(ext.contextPath + '/valueEngineering/equipmentEvaluate/getPumpAnalysisDHChartData.do',
{ selectionModels: equipmentids,startdate:startdate,enddate:enddate,unitId:unitId,pumpMultiple:pumpMultiple },
function (result) {
result = JSON.parse(result);
if (result != "") {
var datas = [];
var legendData = [];
for(var i=0;i<result.length;i++){
var data = result[i];
var equipmentCard =JSON.parse(data.equipmentCard);
legendData[i]=equipmentCard.equipmentcardid;
datas.push({
name: equipmentCard.equipmentcardid,
type: 'bar',
data: [data.actual[0]]
});
datas.push({
name: equipmentCard.equipmentcardid,
type: 'bar',
xAxisIndex: 1,
yAxisIndex: 1,
data: [data.actual[1],data.actual[2]]
});
}
/* charts_bars('tons_consumption_DH','单耗分析',datas,legendData) */
charts_bars_new('tons_consumption_DH','单耗分析',datas,legendData);
}
});
}
</script>
<div class="modal fade" id="economicLifeModal">
<div class="modal-dialog modal-xlg" id="sub">
<div class="modal-content nav-tabs-custom" id="content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title pull-right" id="myModalLabel" style="margin: 0 10px;"></h4>
<ul class="nav nav-tabs">
<li class="active"><a href="#tab_1" data-toggle="tab">泵性能曲线</a></li>
<!-- <li><a href="#tab_3" data-toggle="tab">吨水每米单耗</a></li>
<li><a href="#tab_4" data-toggle="tab">单耗分析</a></li> -->
</ul>
</div>
<div class="modal-body" style="overflow-x:auto;">
<div class="tab-content">
<div class="tab-pane active" id="tab_1">
<div class="row">
<div class="col-md-12">
<div class="col-md-2">
<select class="form-control " id="timeType" name="timeType" onchange ="getData();"
style="width: 150px;">
<!-- <option value="2">月数据</option> -->
<!-- <option value="1">日数据</option> -->
<option value="0" selected>实时数据</option>
</select>
</div>
<div class="col-md-2">
<select class="form-control " id="pumpMultiple" name="pumpMultiple" onchange ="getData();"
style="width: 150px;">
<option value="">全部</option>
<option value="0" selected>单泵</option>
<option value="1">满负荷</option>
</select>
</div>
<div class="col-md-5 col-sm-2">
<div class="input-group">
<div class="input-group-addon">开始时间</div>
<input type="text" class="form-control" id="startdate" name ="startdate" value="${fn:substring(startdate,0,16)}" >
<div class="input-group-addon">结束时间</div>
<input type="text" class="form-control" id="enddate" name ="enddate" value="${fn:substring(enddate,0,16)}" >
</div>
</div>
<div class="col-md-1 col-sm-2">
<a role="button" class="btn btn-primary" href="javascript:;" onclick="getData();" >刷新</a>
</div>
</div>
<div class="col-md-12">
<div id="flow" style="float:left;height:320px;width:500px"></div>
<div id="lift" style="float:left;height:320px;width:500px"></div>
<div id="power" style="float:left;height:320px;width:500px"></div>
<div id="efficiency" style="float:left;height:320px;width:500px"></div>
</div>
<!--<div class="col-md-7">
<div id="flow" style="float:left;height:320px;width:325px"></div>
<div id="lift" style="float:left;height:320px;width:325px"></div>
<div id="power" style="float:left;height:320px;width:325px"></div>
<div id="efficiency" style="float:left;height:320px;width:325px"></div>
</div>
<div class="col-md-5">
<div id="pump_lift" style="height:220px;width:450px"></div>
<div id="pump_power" style="height:220px;width:450px"></div>
<div id="pump_efficiency" style="height:220px;width:450px"></div>
</div> -->
</div>
</div>
<!-- /.tab-pane -->
<div class="tab-pane" id="tab_3">
<div class="row">
<div class="col-md-12">
<div class="col-md-2">
<select class="form-control " id="timeType_consumption" name="timeType_consumption" onchange ="getConsumptionData();"
style="width: 150px;">
<!-- <option value="2">月数据</option> -->
<!-- <option value="1">日数据</option> -->
<option value="0" selected>实时数据</option>
</select>
</div>
<div class="col-md-2">
<select class="form-control " id="pumpMultiple_consumption" name="pumpMultiple_consumption" onchange ="getConsumptionData();"
style="width: 150px;">
<option value="">全部</option>
<option value="0" selected>单泵</option>
<option value="1">满负荷</option>
</select>
</div>
<div class="col-md-5 col-sm-2">
<div class="input-group">
<div class="input-group-addon">开始时间</div>
<input type="text" class="form-control" id="startdate_consumption" name ="startdate_consumption" value="${fn:substring(startdate,0,16)}" >
<div class="input-group-addon">结束时间</div>
<input type="text" class="form-control" id="enddate_consumption" name ="enddate_consumption" value="${fn:substring(enddate,0,16)}" >
</div>
</div>
<div class="col-md-1 col-sm-2">
<a role="button" class="btn btn-primary" href="javascript:;" onclick="getConsumptionData();" >刷新</a>
</div>
</div>
<div class="col-md-12">
<div id="tons_consumption" style="float:left;height:640px;width:380px"></div>
<div id="flow_consumption" style="float:left;height:640px;width:380px"></div>
<div id="lift_consumption" style="float:left;height:640px;width:380px"></div>
</div>
</div>
</div>
<!-- /.tab-pane -->
<div class="tab-pane" id="tab_4">
<div class="row">
<div class="col-md-12">
<div class="col-md-5 col-sm-2">
<div class="input-group">
<div class="input-group-addon">开始时间</div>
<input type="text" class="form-control" id="startdate_consumption_DH" name ="startdate_consumption_DH" value="${fn:substring(startdate,0,10)}" >
<div class="input-group-addon">结束时间</div>
<input type="text" class="form-control" id="enddate_consumption_DH" name ="enddate_consumption_DH" value="${fn:substring(enddate,0,10)}" >
</div>
</div>
<div class="col-md-2">
<select class="form-control " id="pumpMultiple_consumption_DH" name="pumpMultiple_consumption_DH" onchange ="getConsumptionData_DH();"
style="width: 150px;">
<option value="" >全部</option>
<option value="0" selected>单泵</option>
<option value="1">满负荷</option>
</select>
</div>
<div class="col-md-1 col-sm-2">
<a role="button" class="btn btn-primary" href="javascript:;" onclick="getConsumptionData_DH();" >刷新</a>
</div>
</div>
<div class="col-md-12">
<div id="tons_consumption_DH" style="float:left;height:640px;width:1100px"></div>
</div>
</div>
</div>
<!-- /.tab-pane -->
</div>
<!-- /.tab-content -->
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>