Files
SIPAIIS_WMS_JSSW/WebRoot/jsp/valueEngineering/economicLife4pumpAnalysisContrast.jsp

699 lines
31 KiB
Plaintext
Raw Permalink Normal View History

2026-01-16 14:13:44 +08:00
<%@ 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>