var devId = 0;
var start, end;
var waterSupplySection, salesWaterSection, intervalDays, leakFlow;
var lastWaterSupply, lastSalesWater, lastStart, lastEnd, lastIntervalDays;
var supplySection, deviceName, maoYikaoHe;
var titleColor;
var currentPage = 0;
var totalPage = 0;
var showHelp = 0;
function GetCommonEcharsLegendArr(data) {
var legendArr = new Array();
var length = data.devDatas.length;
for (var i = 0; i < length; i++) {
legendArr.push(data.devDatas[i].devName);
}
return legendArr;
}
function calculateMA(dayCount, data) {
var result = [];
for (var i = 0, len = data.length; i < len; i++) {
if (i < dayCount) {
result.push('-');
continue;
}
var sum = 0;
for (var j = 0; j < dayCount; j++) {
sum += parseFloat(data[i - j]);
}
result.push((sum / dayCount).toFixed(2));
}
return result;
}
function GetCommonEcharsXAxis(data) {
var xAxis = {};
xAxis["type"] = 'time';
xAxis["min"] = d.start;
xAxis["max"] = d.end;
return xAxis;
}
function GetSeriesDataArr(data) {
var dataArr = new Array();
var length = data.devDatas.length;
for (var i = 0; i < length; i++) {
var entity = new Object();
entity.name = data.devDatas[i].devName;
entity.type = "line";
entity.data = new Array();
var dataLen = d.devDatas[i].devDatas.length;
for (var j = 0; j < dataLen; j++) {
var metaData = [data.devDatas[i].devDatas[j].FlowTime, parseFloat(d.devDatas[i].devDatas[j].FlowRate)];
entity.data.push(metaData);
}
dataArr.push(entity);
}
}
//瞬时流量
function ShowInsAnalysisEcharts(data, echarts) {
var flowArray = new Array();
var pressureArr = new Array();
var timeArray = new Array();
var maxFlow = 0;
//var devName = data.devName + "DN" + data.caliber;
var devName = data.devName;
deviceName = devName;
var datas = data.devDatas;
devId = data.deviceId;
start = data.startTime;
end = data.endTime;
//console.log(arrFlow);
for (var i = 0; i < datas.length; i++) {
if (parseFloat(datas[i].FlowRate) > maxFlow) {
maxFlow = parseFloat(datas[i].FlowRate);
}
flowArray.push(datas[i].FlowRate)
pressureArr.push(datas[i].Pressure);
timeArray.push(datas[i].FlowTime);
}
titleColor = data.devColor;
maxFlow = Math.ceil(maxFlow * 1.2);
maxFlow = parseInt(maxFlow, 10);
echarts.setOption({
title: {
text: devName,
x: 'center',
align: 'right',
textStyle: {
color: data.devColor
}
},
tooltip: {
trigger: 'axis',
formatter: function (params) {
//console.log(params);
if (params.length > 0) {
if (params.length == 1) {
return "时间:" + params[0].name + "
" + params[0].seriesName + ' : ' + params[0].value + '';
} else if (params.length == 2) {
return "时间:" + params[0].name + "
" + params[0].seriesName + ' : ' + params[0].value + ' (m³/h)
'
+ params[1].seriesName + ' : ' + params[1].value + ' (Mpa)';
}
}
},
axisPointer: {
animation: false
}
},
legend: {
data: ['瞬时流量', '压力'],
//data: ['瞬时流量'],
x: 'left',
selected: {
'瞬时流量': true,
'压力': false
}
},
toolbox: {
show: true,
feature: {
mark: { show: true },
dataZoom: {
yAxisIndex: 'none'
},
dataView: { readOnly: true },
magicType: { type: ['line', 'bar'] },
restore: {},
saveAsImage: {}
}
},
xAxis: {
data: timeArray.map(function (str) {
return str.replace(' ', '\n')
})
},
yAxis: [
{
name: '单位:m³/h',
type: 'value'
}, {
name: '单位:Mpa',
type: 'value'
}
],
series: [
{
name: '瞬时流量',
type: 'line',
data: flowArray,
lineStyle: {
normal: {
color: '#2EC7C9'
}
},
markLine: {
data: [
{ type: 'max', name: '最大值', itemStyle: { normal: { color: '#dc143c' } } },
{ type: 'min', name: '最小值', itemStyle: { normal: { color: '#dc143c' } } },
{ type: 'average', name: '平均值', itemStyle: { normal: { color: '#dc143c' } } },
]
}
}, {
name: '压力',
type: 'line',
yAxisIndex: 1,
lineStyle: {
normal: {
color: '#f00'
}
},
data: pressureArr
}
]
}
)
maoYikaoHe = data.maoYikaoHe;
if (maoYikaoHe == '1') {//显示考核表
$('#one').css('display', 'block');
$('#three').css('display', 'none');
} else {//显示贸易表的菜单
$('#one').css('display', 'none');
$('#three').css('display', 'block');
}
$('#nightAllowFlow').html(data.nightAllowLeakFlow);
$('#suspectedLeakFlow').html(data.suspectedLeakFlow + " m³/h");
$('#suspectedLeakFlow1').html(data.suspectedLeakFlow + " m³/h");
$('.suspectedLeakFlow').html(data.suspectedLeakFlow);
$('#waterSupply').html(data.waterSupply + " m³");
$('#waterSupply1').html(data.waterSupply + " m³");
$('#salesWater').html(data.salesWater + " m³");
$('#suspectedLeakRate').html(data.suspectedLeakRate + " %");
$('#suspectedLeakRate1').html(data.suspectedLeakRate + " %");
$('.suspectedLeakRate').html(data.suspectedLeakRate);
$('#deviceName').html(devName);
supplySection = data.startTime + "-" + data.endTime;
//stringToDate
//supplySection = formatDate(stringToDate(data.startTime), "yyyy-MM-dd HH") + "-" + formatDate(stringToDate(data.endTime),"yyyy-MM-dd HH");
var startTime = new Date(data.startTime);
var endTime = new Date(data.endTime);
$('#section').html(supplySection);
$('#section1').html(supplySection);
$('.section').html(startTime.getFullYear() + '年' + (startTime.getMonth() * 1 + 1) + '月' + startTime.getDate() + '日至' + endTime.getFullYear() + '年' + (endTime.getMonth() * 1 + 1) + '月' + endTime.getDate() + '日' + data.intervalDays + '天');
$('#devName').html(devName);
//$('#devName').attr("style", "color:" + data.devColor);
$('.devName').html(devName);
//$('.devName').attr("style", "color:" + data.devColor);
$('#leakRate').html(data.suspectedLeakRate);
$('#monthHan').html(startTime.getMonth() * 1 + 1);
//$('#minFlow').val(data.minFlow);
$('#minFlow').html(data.minFlow);
$('#minFlow1').val(data.minFlow);
//$('#continuousFlow').val(parseFloat(data.continuousFlow).toFixed(2));
$('#continuousFlow').html(parseFloat(data.continuousFlow).toFixed(2));
$('#continuousFlow1').val(parseFloat(data.continuousFlow).toFixed(2));
var days = data.intervalDays + "天";
intervalDays = data.intervalDays;
leakFlow = data.suspectedLeakFlow;
$('#intervalDays').html(days);
$('#intervalDays1').html(days);
$('.intervalDays').html(intervalDays);
if (data.color == "True") {
$('#suspectedLeakRate').css("color", "red");
$('.suspectedLeakRate').css("color", "red");
$('#suspectedLeakFlow').css("color", "red");
} else {
$('#suspectedLeakRate').css("color", "black");
$('.suspectedLeakRate').css("color", "black");
$('#suspectedLeakFlow').css("color", "black");
}
waterSupplySection = data.waterSupply;
salesWaterSection = data.salesWater;
//console.log(data.sysWaterSupply);
//console.log(data.sysSalesWater);
$('#waterSupply').html(waterSupplySection);
$('#actualWaterSupply').val(data.sysWaterSupply);
$('#actualWaterSupply1').val(data.sysWaterSupply);
$('.actualWaterSupply').html(data.sysWaterSupply);
$('#actualSalesWater').val(data.sysSalesWater);
$('#actualSalesWater1').val(data.sysSalesWater);
$('.actualSalesWater').html(data.sysSalesWater);
if (data.sysSalesWater > 0) {
$('#maoyi').css('display', 'initial');
}
var avgFlow = data.avgFlow;
//流量计安装口径计算
var flowMeter = Math.sqrt(((avgFlow * 1.26) * 4 / (2.5 * 3.1416 * 3600))) * 1000;
$('#flowMeter').html(flowMeter.toFixed(0) + " mm");
//机械表安装口径计算
var mechMeter = Math.sqrt(((avgFlow * 1.26) * 4 / (1.5 * 3.1416 * 3600))) * 1000;
$('#mechanicalMeter').html(mechMeter.toFixed(0) + " mm");
$('#mechanicalMeter1').html(mechMeter.toFixed(0) + " mm");
var MeterSize = 0;
if (mechMeter < 35) {
MeterSize = 32;
} else if (mechMeter < 45) {
MeterSize = 40;
} else if (mechMeter < 65) {
MeterSize = 50;
} else if (mechMeter < 90) {
MeterSize = 80;
} else if (mechMeter < 130) {
MeterSize = 100;
} else if (mechMeter < 175) {
MeterSize = 150;
} else if (mechMeter < 250) {
MeterSize = 200;
} else if (mechMeter < 350) {
MeterSize = 300;
} else {
MeterSize = 400;
}
$('#mechanicalMeter').html(MeterSize.toFixed(0) + " mm");
$('#mechanicalMeter1').html(MeterSize.toFixed(0) + " mm");
$('.mechanicalMeter').html(MeterSize.toFixed(0) + " mm");
if (data.intervalDays < 30) {
$('#smartMeter').html(',总表、分表误差计算需要大于一个月的数据');
} else {
$('#smartMeter').html('');
}
//上期用水
lastWaterSupply = data.lastSysWaterSupply;
lastSalesWater = data.lastSysSalesWater;
lastStart = data.lastStart;
lastEnd = data.lastEnd;
lastIntervalDays = data.lastIntervalDays;
CalApparentLeak();
//报告
$('.QuJian').html(supplySection + " " + days);//期间
$('.leakFactor').html(parseFloat(data.leakFactor).toFixed(2));
$('.dmaChXCL').html(parseFloat(data.dmaChanXCL).toFixed(2));
var startDate = formatDate(stringToDate(start), "yyyy-MM-dd");
$('.startDate').html(startDate);
}
//趋势分析
function ShowDailyChart(datas, echarts) {
var flowArray = new Array();
var timeArray = new Array();
var leakArr = new Array();
for (var i = 0; i < datas.length; i++) {
flowArray.push(datas[i].DayNetFlow)
leakArr.push(datas[i].LeakRate);
timeArray.push(datas[i].Day);
}
var dataMA7 = calculateMA(7, flowArray);
var dataLeakMA5 = calculateMA(5, leakArr);
var dataLeakMA7 = calculateMA(7, leakArr);
echarts.setOption({
title: {
text: deviceName,
x: 'center',
align: 'right',
textStyle: {
color: titleColor
}
},
tooltip: {
trigger: 'axis',
formatter: function (params) {
console.log("this is params" + params);
var len = params.length;
var showInfo = "";
for (var i = 0; i < len; i++) {
if (i == 0) {
showInfo += "时间:" + params[0].name + "
";
}
showInfo += params[i].seriesName + ":" + params[i].value + "
";
}
//return "时间:" + params[0].name + "
" + params[0].value + ' m³';
return showInfo;
//+ params[1].seriesName + ' : ' + params[1].value + ' (Mpa)';
},
axisPointer: {
animation: false
}
},
legend: {
data: ['日累计流量', '趋势曲线', '流量指数', '5日指数', '7日指数'],
x: 'center',
top: 25,
selected: {
'日累计流量': false,
'趋势曲线': false,
'流量指数': true
}
},
toolbox: {
show: true,
feature: {
dataZoom: {
yAxisIndex: 'none'
},
dataView: { readOnly: true },
magicType: { type: ['line', 'bar'] },
restore: {},
saveAsImage: {}
}
},
xAxis: {
data: timeArray
},
yAxis: [
{
name: '单位:m³',
type: 'value'
}
],
series: [
{
name: '日累计流量',
type: 'bar',
itemStyle: {
normal: {
color: '#E0ECFF',
barBorderColor: '#E0ECFF',
}
},
data: flowArray
}, {
name: '趋势曲线',
type: 'line',
data: dataMA7,
smooth: true,
showSymbol: false,
lineStyle: {
normal: {
width: 1
}
}
}, {
name: '流量指数',
type: 'line',
data: leakArr,
smooth: true,
showSymbol: false,
lineStyle: {
normal: {
width: 1
}
}
}, {
name: '5日指数',
type: 'line',
data: dataLeakMA5,
smooth: true,
showSymbol: false,
lineStyle: {
normal: {
width: 1
}
}
}, {
name: '7日指数',
type: 'line',
data: dataLeakMA7,
smooth: true,
showSymbol: false,
lineStyle: {
normal: {
width: 1
}
}
}
]
});
}
//凌晨流量
function ShowDaybreakFlow(datas, echarts) {
var arrFlow = datas;
var devNames = new Array();
var dataArr = new Array();
var timeArray = new Array();
//console.log(arrFlow);
if (arrFlow != undefined) {
for (var i = 0; i < arrFlow.length; i++) {
var obj = new Object();
var tempname = arrFlow[i].devName;
obj.name = arrFlow[i].devName;
obj.type = arrFlow[i].lineType;
devNames.push(arrFlow[i].devName);
var datas = new Array();
for (var j = 0; j < arrFlow[i].devData.length; j++) {
if (i == 0) {
timeArray.push(arrFlow[i].devData[j].RTime);
if (i == 0 && j == 6) {
$('.LCRuKou').html(arrFlow[i].devData[j].Flow);
}
}
datas.push(arrFlow[i].devData[j].Flow);
}
obj.data = datas;
dataArr.push(obj);
}
}
flowDataArr =[];
if (arrFlow != undefined) {
if (arrFlow.length > 3) {
var dataLen = arrFlow[0].devData.length;
for (var i = 0; i < dataLen; i++) {
var dataMinArr =[];
for (var j = 0; j < arrFlow.length; j++) {
var obj = new Object();
obj.name = arrFlow[j].devName;
obj.data = arrFlow[j].devData[i].Flow;
obj.time = arrFlow[j].devData[i].RTime;
dataMinArr.push(obj);
}
var ob = new Object();
if (dataMinArr.length > 0) {
var per = dataMinArr[dataMinArr.length - 1].data / dataMinArr[dataMinArr.length - 3].data;
ob.name = "差率";
ob.data = (per * 100).toFixed(2) + "%";
ob.time = "";
} else {
ob.name = "差率";
ob.data = "";
ob.time = "";
}
dataMinArr.push(ob);
flowDataArr.push(dataMinArr);
}
//console.log(flowDataArr);
}
}
if (flowDataArr.length > 0) {
totalPage = flowDataArr.length;
currentPage = 0;
//console.log(flowDataArr);
if (totalPage >= 10) {
var lc = flowDataArr[6];
$('.LCRuKou').html(lc[0].data);
$('.LCChuKou').html(lc[lc.length -3].data);
$('.LCCL').html(lc[lc.length -2].data);
$('.LCRate').html(lc[lc.length -1].data);
}
var item = flowDataArr[currentPage];
fillTable(item);
} else {
$('#divMinFlow').hide();
}
var app = {
};
var minOption = null;
minOption = {
title: {
text: deviceName,
x: 'center',
align: 'right',
textStyle: {
color: titleColor
}
},
tooltip: {
trigger: 'axis',
formatter: function (params) {
if (params == undefined) {
return "";
} else {
var showInfo = "";
var size = params.length;
var per = params[size - 1].value / params[size - 3].value;
if (size > 0) {
showInfo = "时间:" +params[0].name + "
";
}
//for (var i = 0; i < size; i++) {
// //console.log(params[i]);
// showInfo += params[i].seriesName + " " + params[i].value + "
"
//}
//console.log(params);
if (size > 2) {
showInfo += "入口流量 " + params[size - 3].value + "
";
showInfo += "出口流量 " +params[size -2].value + "
";
showInfo += params[size -1].seriesName + " " +params[size -1].value + "
";
showInfo += "差率 " + (per * 100).toFixed(2) + "%";
} else {
showInfo += "瞬时流量 " +params[0].value;
}
return showInfo;
}
},
axisPointer: {
animation: false
}
},
legend: {
type: 'scroll',
bottom: 10,
data: devNames
},
toolbox: {
show: true,
feature: {
dataZoom: {
yAxisIndex: 'none'
},
dataView: { readOnly: false
},
magicType: { type: ['line', 'bar']
},
restore: {
},
saveAsImage: {}
}
},
xAxis: {
data: timeArray
},
yAxis: [
{
name: '单位:m³/h',
type: 'value'
}
],
series: dataArr
};
if (minOption && typeof minOption === "object") {
echarts.setOption(minOption, true);
}
}
function fillTable(item) {
var obj = item[0];
var date = obj.time;
if (date == undefined) {
date = "";
}
$("#minGrid").append("