Files
system-jibei/pqs9000/src/main/webapp/jspJS/area/dataIntegrality.js
xy 500b6c66bb 1.pqs9000-》区域-》终端状态统计,添加监测性质条件(电网侧||非电网侧)
2.pqs9000-》区域-》数据完整性统计,添加监测性质条件(电网侧||非电网侧)
3.pqs9000-》详细分析-》区域稳态超标分类,添加监测性质条件(电网侧||非电网侧)
4.电压偏差限制判断
2024-07-22 18:46:21 +08:00

719 lines
23 KiB
JavaScript

var picHeight;
var tabs;
var $area = $("#area");
var $startTime = $("#startTime");
var $endTime = $("#endTime");
$("#interval").val("月份");
var tiggleValue;
var allData;
var type=0;
var buttonname;
var companyname;
// 新增tab页
function addTab(url, label) {
tabs.add({url: url, label: label});
}
$("#datatype").on("change",function() {
var startTime = $startTime.eq(0).val();
var endTime = $endTime.eq(0).val();
if($("option:selected",this).val() == 0){
$.ajax({
type: "POST",
url: "/pqs9000/user/getAreasInfo",
dataType: 'json',
async:false,
success: function (data) {
$("#area").val(data[0].name);
$("#area").attr("index", data[0].id);
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
}
})
$("#area").attr("disabled",true);
$("#scale").attr("disabled",false);
$("#manc").attr("disabled",false);
$("#loadtype").attr("disabled",false);
$("#monitorNature").attr("disabled",false);
type = 0;
var area = $area.eq(0).attr("index");
var scale = $("#scale").val();
var manc = $("#manc").val();
var loadtype = $("#loadtype").val();
var monitorNature = $("#monitorNature").val();
refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature)
}else if($("option:selected",this).val() == 1){
loadselect("电压等级","scale");
$("#area").attr("disabled",false);
$("#scale").attr("disabled",true);
$("#manc").attr("disabled",false);
$("#loadtype").attr("disabled",false);
$("#monitorNature").attr("disabled",false);
$("#area").css("background-color","#fff");
type = 1;
var area = $area.eq(0).attr("index");
var scale = $("#scale").val();
var manc = $("#manc").val();
var loadtype = $("#loadtype").val();
var monitorNature = $("#monitorNature").val();
refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature);
}else if($("option:selected",this).val() == 2){
loadselect("制造厂商","manc");
$("#area").attr("disabled",false);
$("#scale").attr("disabled",false);
$("#manc").attr("disabled",true);
$("#loadtype").attr("disabled",false);
$("#monitorNature").attr("disabled",false);
$("#area").css("background-color","#fff");
type = 2;
var area = $area.eq(0).attr("index");
var scale = $("#scale").val();
var manc = $("#manc").val();
var loadtype = $("#loadtype").val();
var monitorNature = $("#monitorNature").val();
refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature);
}else if($("option:selected",this).val() == 3){
loadselect("干扰源类型","loadtype");
$("#area").attr("disabled",false);
$("#scale").attr("disabled",false);
$("#manc").attr("disabled",false);
$("#loadtype").attr("disabled",true);
$("#monitorNature").attr("disabled",false);
$("#area").css("background-color","#fff");
type = 3;
var area = $area.eq(0).attr("index");
var scale = $("#scale").val();
var manc = $("#manc").val();
var loadtype = $("#loadtype").val();
var monitorNature = $("#monitorNature").val();
refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature);
}
})
$(function () {
var start = $startTime.eq(0).val();
var end = $endTime.eq(0).val();
loadselect("电压等级","scale");
loadselect("制造厂商","manc");
loadselect("干扰源类型","loadtype");
$.ajax({
type: "POST",
data:{
start: start,
end: end
},
async:false,
url: "/pqs9000/device/getMsgInfo",
dataType: 'json',
success: function (data) {
buttonname = data.body.name;
tiggleValue = data.body.name;
}
})
$.ajax({
type: "POST",
url: "/pqs9000/theme/getThemeInfo",
async: false,
dataType: 'json',
success: function (data) {
companyname = data.body.name;
}
})
$(".checkbox").bootstrapSwitch({
onText: buttonname, // 设置ON文本
offText: companyname, // 设置OFF文本
onColor: "primary",// 设置ON文本颜色 (info/success/warning/danger/primary)
offColor: "primary", // 设置OFF文本颜色 (info/success/warning/danger/primary)
size: "small", // 设置控件大小,从小到大 (mini/small/normal/large)
handleWidth: "60",//设置控件宽度
// 当开关状态改变时触发
onSwitchChange: function (event, state) {
if (state == true) {
tiggleValue = buttonname;
} else {
tiggleValue = companyname;
}
//重新画图
reDrawAllPic();
}
});
$('#rightContent').width(document.body.clientWidth - 290).height(document.body.offsetHeight - 115);
tabs = $('#tabs').cleverTabs();
picHeight = ($(window).height() - 78);
$.ajax({
type: "POST",
url: "/pqs9000/user/getAreasInfo",
dataType: 'json',
success: function (data) {
$("#area").val(data[0].name);
$("#area").attr("index", data[0].id);
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
$("#area").attr("disabled",true);
$("#scale").attr("disabled",false);
$("#manc").attr("disabled",false);
$("#loadtype").attr("disabled",false);
$("#monitorNature").attr("disabled",false);
//初始化页面内容
var area = $area.eq(0).attr("index");
var startTime = $startTime.eq(0).val();
var endTime = $endTime.eq(0).val();
refresh(startTime, endTime, area);
}
})
})
//点击查询按钮
$("#query").click(function () {
var area = $area.eq(0).attr("index");
var startTime = $startTime.eq(0).val();
var endTime = $endTime.eq(0).val();
var scale = $("#scale").val();
var manc = $("#manc").val();
var loadtype = $("#loadtype").val();
var monitorNature = $("#monitorNature").val();
console.log(loadtype)
console.log(monitorNature)
refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature);
});
//请求后台刷新页面数据
function refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature) {
var i;
$.ajax({
url: '/pqs9000/area/dataIntegrality',
data: {
startTime: startTime,
endTime: endTime,
area: area,
scale:scale,
manc:manc,
loadtype:loadtype,
monitorNature: monitorNature
},
type: 'post',
dataType: 'json',
beforeSend: function () {
i = ityzl_SHOW_LOAD_LAYER();
},
success: function (data) {
if (data.code === 500 | data.body === null) {
allData = null;
if(type == 0){
drawAreaPic(null);
}else if(type == 1){
drawVoltagePic(null);
}else if(type == 2){
drawCompanyPic(null);
}else if(type == 3){
drawLoadTypePic(null);
}
} else {
allData = data.body;
if(type == 0){
drawAreaPic(data.body.area);
}else if(type == 1){
drawVoltagePic(data.body.vol);
}else if(type == 2){
drawCompanyPic(data.body.interval);
}else if(type == 3){
drawLoadTypePic(data.body.loadtype);
}
}
//***********关闭loading
ityzl_CLOSE_LOAD_LAYER(i);
}
})
}
//开关触发图片更新
function reDrawAllPic() {
if (allData === null) {
drawAreaPic(null);
} else {
if($("#datatype").val() == "0"){
drawAreaPic(allData.area);
}else if($("#datatype").val() == "1"){
drawVoltagePic(allData.vol)
}else if($("#datatype").val() == "2"){
drawCompanyPic(allData.interval)
}else if($("#datatype").val() == "3"){
drawLoadTypePic(allData.loadtype)
}
}
}
//绘画区域数据
function drawAreaPic(area) {
var $area = $("#areaChart");
$area.css("height", picHeight);
var width = $area.width();
if (width <= 120) {
$area.css("width", $(window).width() - 30);
}
var areaOption = echarts.init($("#areaChart")[0]);
var inte = [];
var areas = [];
var route;
var lineFeedBar;
if (null != area) {
if(area.length>barUpperLimit12){
route=barRouteIncline;
lineFeedBar=noLineFeed;
}else{
route=barRouteZero;
lineFeedBar=lineFeed;
}
for (var i = 0; i < area.length; i++) {
var integralityRate;
if (tiggleValue == buttonname) {
areas[i] = area[i].name + lineFeedBar+"(" + area[i].amounts + ")";
integralityRate = Number(area[i].dataIntegrity);
} else {
areas[i] = area[i].name + lineFeedBar+"(" + area[i].gwamounts + ")";
integralityRate = Number(area[i].gwdataIntegrity);
}
var singleData = {};
var item = {};
item.color = getColor(integralityRate);
if (integralityRate < 3.1414) {
singleData.value = 3.1415;
item.actual = integralityRate;
} else {
singleData.value = integralityRate;
}
singleData.itemStyle = item;
singleData.areaIndex = area[i].deptsIndex;
inte[i] = singleData;
}
}
var option = {
backgroundColor: canvasBG,//背景色
title: {
text: '区域',
x: 'center'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
},
formatter: function (params) {
var color = params[0].color;
var tips = "";
tips += params[0].name;
if (color === noMonitor) {
tips += '<br/>' + params[0].seriesName + ' : /';
} else if (color === noData) {
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
} else {
if (params[0].data.itemStyle.actual !== undefined) {
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
} else {
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
}
}
return tips;
}
},
//控制图标在dataroom中的位置大小
grid: {
left: '1%',
right: '7%',
bottom: '3%',
containLabel: true
},
xAxis: [{
type: 'category',
data: areas,
name: '地区\n(监测点数)\n',
axisLabel: {
interval: 0,
show: true,
rotate:route,
fontSize:10
}
}],
yAxis: [{
type: 'value',
name: '%',
min: '0',
max: '100'
}],
series: [{
name: '完整性',
type: 'bar',
barMaxWidth: barMax,
data: inte
}]
};
areaOption.setOption(option);
areaOption.on('click', function (params) {
if(type == 0){
var city = params.data.areaIndex;
var startTime = $startTime.eq(0).val();
var endTime = $endTime.eq(0).val();
var interval = $("#interval").val();
var gwType= tiggleValue=="冀北省"?"0":"1";
if (getRole("/pqs9000/area/integralitytable")) {
window.top.addTab('/pqs9000/area/integralitytable?startTime=' + startTime + '&endTime=' + endTime + '&area=' + city + '&interval=' + interval+'&gwtype='+ gwType, '数据完整性列表')
}
}
});
}
//绘制电压等级
function drawVoltagePic(vol) {
var $voltage = $("#areaChart");
$voltage.css("height", picHeight);
var width = $voltage.width();
if (width <= 120) {
$voltage.css("width", ($(window).width() - 30) * 0.5);
}
var volOption = echarts.init($("#areaChart")[0]);
var inte = [];
var areas = [];
if (null != vol) {
for (var i = 0; i < vol.length; i++) {
var integralityRate;
if (tiggleValue === buttonname) {
areas[i] = vol[i].name + "\n(" + vol[i].amounts + ")";
integralityRate = Number(vol[i].dataIntegrity);
} else {
areas[i] = vol[i].name + "\n(" + vol[i].gwamounts + ")";
integralityRate = Number(vol[i].gwdataIntegrity);
}
var singleData = {};
var item = {};
item.color = getColor(integralityRate);
if (integralityRate < 3.1414) {
singleData.value = 3.1415;
item.actual = integralityRate;
} else {
singleData.value = integralityRate;
}
singleData.itemStyle = item;
inte[i] = singleData;
}
}
var option = {
backgroundColor: canvasBG,//背景色
title: {
text: '电压等级',
x: 'center'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
},
formatter: function (params) {
var color = params[0].color;
var tips = "";
tips += params[0].name;
if (color === noMonitor) {
tips += '<br/>' + params[0].seriesName + ' : /';
} else if (color === noData) {
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
} else {
if (params[0].data.itemStyle.actual !== undefined) {
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
} else {
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
}
}
return tips;
}
},
//控制图标在dataroom中的位置大小
grid: {
left: '3%',
right: '13%',
bottom: '3%',
containLabel: true
},
xAxis: [{
type: 'category',
data: areas,
name: '电压等级\n(监测点数)\n',
}],
yAxis: [{
type: 'value',
name: '%',
min: '0',
max: '100'
}],
series: [{
name: '完整性',
type: 'bar',
barMaxWidth: barMax,
data: inte
}]
};
volOption.setOption(option);
volOption.on('click', function (params) {
if(type == 1){
var startTime = $startTime.eq(0).val();
var endTime = $endTime.eq(0).val();
var interval = $("#interval").val();
if (getRole("/pqs9000/area/integralitytable")) {
window.top.addTab('/pqs9000/area/integralitytable?startTime=' + startTime + '&endTime=' + endTime + '&area=' + $area.eq(0).attr("index") + '&interval=' + interval + '&type=' + statisticalType, '数据完整性列表')
}
}
});
}
//绘制设备厂家
function drawCompanyPic(company) {
var $company = $("#areaChart");
$company.css("height", picHeight);
var width = $company.width();
if (width <= 120) {
$company.css("width", ($(window).width() - 30) * 0.5);
}
var comOption = echarts.init($("#areaChart")[0]);
var inte = [];
var areas = [];
if (null != company) {
for (var i = 0; i < company.length; i++) {
var integralityRate;
if (tiggleValue === buttonname) {
areas[i] = company[i].name + "\n(" + company[i].amounts + ")";
integralityRate = Number(company[i].dataIntegrity);
} else {
areas[i] = company[i].name + "\n(" + company[i].gwamounts + ")";
integralityRate = Number(company[i].gwdataIntegrity);
}
var singleData = {};
var item = {};
item.color = getColor(integralityRate);
if (integralityRate < 3.1414) {
singleData.value = 3.1415;
item.actual = integralityRate;
} else {
singleData.value = integralityRate;
}
singleData.itemStyle = item;
inte[i] = singleData;
}
}
var option = {
backgroundColor: canvasBG,//背景色
title: {
text: '终端厂家',
x: 'center'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
},
formatter: function (params) {
var color = params[0].color;
var tips = "";
tips += params[0].name;
if (color === noMonitor) {
tips += '<br/>' + params[0].seriesName + ' : /';
} else if (color === noData) {
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
} else {
if (params[0].data.itemStyle.actual !== undefined) {
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
} else {
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
}
}
return tips;
}
},
//控制图标在dataroom中的位置大小
grid: {
left: '3%',
right: '13%',
bottom: '3%',
containLabel: true
},
xAxis: [{
type: 'category',
data: areas,
name: '终端厂家\n(监测点数)\n',
}],
yAxis: [{
type: 'value',
name: '%',
min: '0',
max: '100'
}],
series: [{
name: '完整性',
type: 'bar',
barMaxWidth: barMax,
data: inte
}]
};
comOption.setOption(option);
comOption.on('click', function (params) {
if(type == 2){
var startTime = $startTime.eq(0).val();
var endTime = $endTime.eq(0).val();
var interval = $("#interval").val();
if (getRole("/pqs9000/area/integralitytable")) {
window.top.addTab('/pqs9000/area/integralitytable?startTime=' + startTime + '&endTime=' + endTime + '&area=' + $area.eq(0).attr("index") + '&interval=' + interval + '&type=' + statisticalType, '数据完整性列表')
}
}
});
}
//绘制干扰源类型
function drawLoadTypePic(vol) {
var $voltage = $("#areaChart");
$voltage.css("height", picHeight);
var width = $voltage.width();
if (width <= 120) {
$voltage.css("width", ($(window).width() - 30) * 0.5);
}
var volOption = echarts.init($("#areaChart")[0]);
var inte = [];
var areas = [];
if (null != vol) {
for (var i = 0; i < vol.length; i++) {
var integralityRate;
if (tiggleValue === buttonname) {
areas[i] = vol[i].name + "\n(" + vol[i].amounts + ")";
integralityRate = Number(vol[i].dataIntegrity);
} else {
areas[i] = vol[i].name + "\n(" + vol[i].gwamounts + ")";
integralityRate = Number(vol[i].gwdataIntegrity);
}
var singleData = {};
var item = {};
item.color = getColor(integralityRate);
if (integralityRate < 3.1414) {
singleData.value = 3.1415;
item.actual = integralityRate;
} else {
singleData.value = integralityRate;
}
singleData.itemStyle = item;
inte[i] = singleData;
}
}
var option = {
backgroundColor: canvasBG,//背景色
title: {
text: '干扰源类型',
x: 'center'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
},
formatter: function (params) {
var color = params[0].color;
var tips = "";
tips += params[0].name;
if (color === noMonitor) {
tips += '<br/>' + params[0].seriesName + ' : /';
} else if (color === noData) {
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
} else {
if (params[0].data.itemStyle.actual !== undefined) {
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
} else {
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
}
}
return tips;
}
},
//控制图标在dataroom中的位置大小
grid: {
left: '3%',
right: '13%',
bottom: '3%',
containLabel: true
},
xAxis: [{
type: 'category',
data: areas,
name: '干扰源类型\n(监测点数)\n',
}],
yAxis: [{
type: 'value',
name: '%',
min: '0',
max: '100'
}],
series: [{
name: '完整性',
type: 'bar',
barMaxWidth: barMax,
data: inte
}]
};
volOption.setOption(option);
volOption.on('click', function (params) {
if(type == 3){
var startTime = $startTime.eq(0).val();
var endTime = $endTime.eq(0).val();
var interval = $("#interval").val();
if (getRole("/pqs9000/area/integralitytable")) {
window.top.addTab('/pqs9000/area/integralitytable?startTime=' + startTime + '&endTime=' + endTime + '&area=' + $area.eq(0).attr("index") + '&interval=' + interval + '&type=' + statisticalType, '数据完整性列表')
}
}
});
}
//根据数据完整性获取颜色
function getColor(data) {
if (data >= 90) {
return green;
} else if (data === 3.1415) {
return noMonitor;
} else if (data === 3.14159) {
return noData;
} else if (data < 60) {
return red;
} else {
return yellow;
}
}
function loadselect(dictypeName,div){
var part='#'+div;
$(part).find("option").remove();
$.ajax({
method : "post",
url : "/pqs9000/device/getselect",
data : {
dictypeName:dictypeName
},
async:false,
success : function(data) {
if(data == null){
var message = dictypeName + '信息加载失败';
layer.msg(message,{icon:1,time:1000});
}else{
var option0 = $("<option selected value='"
+ null + "'>"
+ "全部" + "</option>");
$(part).append(option0);
$.each(data, function(i, item) {
var option = $("<option value='"
+ item.dicIndex + "'>"
+ item.dicName + "</option>");
$(part).append(option);
})
}
}
})
}