<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
|
<%
|
String path = request.getContextPath();
|
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
|
%>
|
|
<!DOCTYPE HTML>
|
<html>
|
<head>
|
<base href="<%=basePath%>">
|
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE10" />
|
<meta charset="utf-8">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<title>机房信息</title>
|
<meta http-equiv="pragma" content="no-cache">
|
<meta http-equiv="cache-control" content="no-cache">
|
<meta http-equiv="expires" content="0">
|
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
|
<meta http-equiv="description" content="This is my page">
|
<link rel="stylesheet" type="text/css" href="css/page-layout.css">
|
<link rel="stylesheet" type="text/css" href="css/loading.css">
|
<link rel="stylesheet" type="text/css" href="css/panel.css">
|
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
|
<script type="text/javascript" src="js/jquery.mousewheel.js"></script>
|
<script type="text/javascript" src="js/echarts.js"></script>
|
<script type="text/javascript" src="js/loading.js"></script>
|
<script type="text/javascript" src="js/base.js"></script>
|
</head>
|
<body>
|
<div class="container">
|
<div class="header">
|
<div class="left"><a href="index.jsp" class="btn">返回首页</a></div>
|
<!-- <div class="right"><a href="javascript:;" class="btn">更多机房</a></div> -->
|
<div class="text-center"><h2>机房信息内容</h2></div>
|
</div>
|
<div class="content">
|
<div class="left network">
|
<div class="network-content">
|
<div class="img-list"><img src="image/yidong.gif" alt="移动"></div>
|
<div class="img-list"><img src="image/liantong.gif" alt="联通"></div>
|
<div class="img-list"><img src="image/dianxin.gif" alt="电信"></div>
|
<div class="clear"></div>
|
<div class="graph-container">
|
<div class="actual-line"></div>
|
</div>
|
</div>
|
</div>
|
<div class="left line">
|
<img src="image/break-line.gif" alt="折线">
|
</div>
|
<div class="left master-control">
|
<div class="panel position-right" style="top: 44px;background-color:#F7F7F7">
|
<div class="panel-header">电池组单体信息</div>
|
<div class="panel-div-list">
|
<span>单体编号:<font id="mon_num">1</font></span>
|
</div>
|
<div class="panel-div-list">
|
<span>单体电压:</span>
|
<input type="text" id="mon_vol" readonly="readonly">
|
</div>
|
<div class="panel-div-list">
|
<span>标称容量:</span>
|
<input type="text" id="mon_capstd" readonly="readonly">
|
</div>
|
<div class="panel-div-list">
|
<span>实际容量:</span>
|
<input type="text" id="real_cap" readonly="readonly">
|
</div>
|
<div class="panel-div-list">
|
<span>剩余容量:</span>
|
<input type="text" id="rest_cap" readonly="readonly">
|
</div>
|
<!-- <div class="panel-div-list">
|
<span>告警原因:</span>
|
<input type="text" readonly="readonly">
|
</div>
|
<div class="panel-div-list">
|
<span>落后原因:</span>
|
<input type="text" readonly="readonly">
|
</div> -->
|
</div>
|
<div class="tab">
|
<ul>
|
<li style="width: 50%;"><a href="javascript:;" style="margin-left: 20%" class="main-control">主控监测</a></li>
|
<li style="width: 50%;"><a href="javascript:;" style="margin-left: 20%">系统参数</a></li>
|
</ul>
|
</div>
|
<div class="ele-group-cont">
|
<div class="ele-group"></div>
|
</div>
|
|
</div>
|
</div>
|
</div>
|
<!-- 定义主控界面 -->
|
<div class="page master">
|
<div class="page-close"><a href="javascript:;">X</a></div>
|
<div class="tab">
|
<ul>
|
<li style="width: 33.33333%" class="active"><a href="javascript:;" style="margin-left: 10%">运营商电量监测</a></li>
|
<li style="width: 33.33333%"><a href="javascript:;" style="margin-left: 10%">电池组续航能力</a></li>
|
<li style="width: 33.33333%"><a href="javascript:;" style="margin-left: 10%">电池组寿命管理</a></li>
|
<!-- <li style="width: 25%"><a href="javascript:;" style="margin-left: 10%">智能远程充放电管理</a></li> -->
|
</ul>
|
</div>
|
<div class="tab-list active thr-line">
|
<div class="time-change">
|
<a href="javascript:;">2017-05-10~2017-05-11</a>
|
</div>
|
<div class="panel position-right" style="border: 1px solid #ddd">
|
<div class="panel-header">日期选择</div>
|
<div class="panel-div-list">
|
<span>开始时间:</span>
|
<input type="text" name="startTime" id="startTime" value="2000-01-01" readonly="readonly" onclick="showCalendar(this)">
|
</div>
|
<div class="panel-div-list">
|
<span>结束时间:</span>
|
<input type="text" name="endTime" id="endTime" readonly="readonly" onclick="showCalendar(this)">
|
</div>
|
<div class="panel-bottom">
|
<input type="button" name="panelEn" class="panel-en" value="确定">
|
<input type="button" name="panelOut" class="panel-out" value="取消">
|
</div>
|
</div>
|
<div class="break-line">
|
<div class="echarts"></div>
|
</div>
|
</div>
|
<div class="tab-list ele-time">
|
<div class="left" style="width: 20%; height: 100%;">
|
<div class="listview">
|
<ul>
|
<li><a href="javascript:;">电池组1</a></li>
|
<li><a href="javascript:;">电池组2</a></li>
|
<li><a href="javascript:;">电池组3</a></li>
|
</ul>
|
</div>
|
</div>
|
<div class="right" style="width: 80%; height: 100%;">
|
<div class="left" style="width: 45%; height: 100%;">
|
<div class="dash-board">
|
<div class="echarts"></div>
|
</div>
|
</div>
|
<div class="right" style="width: 55%; height: 100%;">
|
<div class="break-line">
|
<div class="echarts"></div>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="tab-list ele-life">
|
<div class="tbl"></div>
|
</div>
|
<div class="tab-list">4</div>
|
|
</div>
|
<script type="text/javascript" src="js/panel.js"></script>
|
<script type="text/javascript" src="js/createTab.js"></script>
|
<script type="text/javascript">
|
var StataionId;
|
var opt = new Object();
|
var cap_flag = 0; // 判断电池续航能力图是否是第一次创建
|
var $dashBoard = $('.ele-time .dash-board .echarts').get(0);
|
dashBoard = echarts.init($dashBoard);
|
$(function() {
|
$('#endTime').val(new Date().format("yyyy-MM-dd"));
|
StataionId = getQueryString('stationId');
|
searchBattInfo(StataionId); //查询电池组信息
|
searchCurr(StataionId); //查询运营商实时电流
|
searchBattlife(StataionId); //查询当前电池组的使用寿命情况
|
searchElect(); //查询三种运营商的用电量使用情况
|
searchBattByStationId(StataionId); //查询机房中的电池组
|
|
setInterval("searchDevCurr(StataionId)", 4000);
|
});
|
|
var master; // 定义page对象
|
var panel; // 定义panel对象
|
master = new Page($('.master').eq(0));
|
panel = new Panel($('.thr-line .panel'));
|
// 显示和隐藏page界面
|
$(function() {
|
// 点击主控监测显示主控界面
|
$('.main-control').click(function() {
|
master.showPage();
|
});
|
// 点击关闭主控界面
|
$('.master .page-close a').click(function() {
|
master.hidePage();
|
});
|
});
|
|
var eleBreakLine; // 三大运营商电量
|
var dashBoard; // 电池容量百分比仪表图
|
var current; // 电池组电流折线统计图
|
|
// 定义page内tab-list的高度和内容
|
$(function() {
|
master.init();
|
initTabList();
|
|
var $eleBreakline = $('.page .thr-line .echarts').get(0);
|
eleBreakLine = echarts.init($eleBreakline);
|
var xdata = new Array();
|
xdata.push(new Date().format("yyyy-MM-dd HH:mm:ss"));
|
var lname = ['移动', '电信', '联通'];
|
var sData = [
|
'',
|
'',
|
''
|
];
|
creatLineGraph(eleBreakLine, '三大运营商用电量:', lname, xdata, sData, 'kw*h');
|
|
var $dashBoard = $('.ele-time .dash-board .echarts').get(0);
|
dashBoard = echarts.init($dashBoard);
|
createDashBoard(dashBoard, '0天0小时0分',0, 0, 0);
|
|
var $current = $('.ele-time .break-line .echarts').get(0);
|
current = echarts.init($current);
|
var lname = [];
|
var xData = [1, 2, 3, 4, 5, 6, 7];
|
var sData = [
|
[],
|
];
|
//creatLineGraph(current, '实时电流:', lname, xData, sData, 'A');
|
|
// 点击master页面下的选项卡的切换效果
|
$('.master .tab li').click(function() {
|
var index = $(this).index();
|
$('.master .tab li').removeClass('active');
|
$(this).addClass('active');
|
$('.master .tab-list').removeClass('active');
|
$('.master .tab-list').eq(index).addClass('active');
|
if(index == 1) {
|
dashBoard.resize();
|
current.resize();
|
}
|
|
});
|
|
|
// 改变窗口大小时更改内容
|
$(window).resize(function() {
|
master.init();
|
initTabList();
|
eleBreakLine.resize();
|
});
|
});
|
|
|
|
|
|
|
//点击日期选择显示面板信息
|
$(function() {
|
$('.time-change a').click(function() {
|
panel.showPanel();
|
});
|
// 点击空白地方隐藏面板
|
$('.thr-line').on('click', '.panel-mask', function() {
|
panel.hidePanel();
|
});
|
// 点击面板的确定和取消隐藏面板
|
$('.panel .panel-bottom .panel-out').click(function() {
|
|
});
|
|
// 点击面板的确定按钮
|
$('.panel .panel-bottom .panel-en').click(function() {
|
var startTime = $('#startTime').val().trim();
|
var endTime = $('#endTime').val().trim();
|
var timeStatus = testData(startTime, endTime);
|
console.info(timeStatus);
|
if(timeStatus == -1) {
|
alert('日期不能为空!!!');
|
}
|
|
if(timeStatus == 0) {
|
alert('开始日期不能超过结束日期!!!');
|
}
|
|
if(timeStatus == 1) {
|
$('.time-change a').text(startTime+'~'+endTime);
|
searchElect();
|
panel.hidePanel();
|
}
|
});
|
});
|
|
// 生成电池列表
|
$(function() {
|
var eleinfor = new Panel($('.master-control .panel'));
|
// 点击电池列表的
|
$('.ele-group').on('click', '.group-list img', function() {
|
var groupContent = $(this).parents('.group-content');
|
var battNum = $(this).parent().attr('batterynum');
|
//console.info(groupContent.html());
|
var groupId = groupContent.siblings('.group-header').find('a').attr('battgroupid');
|
console.info(groupId);
|
console.info(battNum);
|
searchBatt_data(groupId,battNum);
|
|
});
|
|
$('.master-control').on('click', '.panel-mask', function() {
|
eleinfor.hidePanel();
|
});
|
});
|
|
/**
|
创建折线图
|
@param obj breakline echarts对象
|
@param string tle 折线图的主标题
|
@param array lname 折线的名称
|
@param array xdata 折线图的x轴坐标
|
@param array*2 sdata 折线统计图的y轴数据
|
@param string unit y轴的单位
|
*/
|
function creatLineGraph(breakLine, tle, lname, xdata, sdata, unit) {
|
var option={
|
title: {
|
text: tle,
|
x: 'left',
|
y: 0
|
},
|
tooltip:{
|
//show:true,
|
trigger:'axis'
|
},
|
toolbox:{
|
show : true
|
},
|
legend: {
|
data: lname
|
},
|
dataZoom: [
|
{
|
show: true,
|
realtime: true,
|
start: 0,
|
end: 100,
|
},
|
{
|
type: 'inside',
|
realtime: true,
|
start: 0,
|
end: 100,
|
}
|
],
|
//calculable : true,
|
xAxis:{
|
data:xdata
|
},
|
grid: {
|
left: '3%',
|
right: '4%',
|
bottom: '10%',
|
containLabel: true
|
},
|
yAxis:[{
|
type:'value',
|
axisLabel:{
|
formatter:function(value){
|
// 解决原点处带符号问题
|
if(value==0)
|
{
|
return value;
|
}else{
|
return value + unit;
|
}
|
}
|
}
|
}],
|
series:function(){
|
var serie=[];
|
for( var i=0;i<sdata.length;i++){
|
var oItem={
|
type:'line',
|
symbol:'pin',
|
name:lname[i],
|
tooltip:{
|
show:true,
|
trigger:'axis',
|
showContent:true
|
},
|
data:sdata[i]
|
};
|
serie.push(oItem);
|
}
|
return serie;
|
}()
|
};
|
// 使用刚指定的配置项和数据显示图表。
|
breakLine.setOption(option);
|
}
|
|
|
/**
|
创建仪表盘
|
@param obj dashBoard echarts对象
|
@param obj opt 生成仪表的对象
|
@param int num 百分比(去除%)
|
*/
|
function createDashBoard(dashBoard, time, norminal, real, num) {
|
opt = {
|
title: {
|
text:'预计剩余时间:'+ time,
|
subtext:'标称容量:'+norminal+'\n\n实际容量:'+real,
|
x: 'center',
|
y: 0
|
},
|
tooltip : {
|
formatter: "{a} <br/>{b} : {c}%"
|
},
|
toolbox: {
|
feature: {
|
restore: {},
|
saveAsImage: {}
|
}
|
},
|
series: [
|
{
|
name: '电池容量',
|
type: 'gauge',
|
detail: {formatter:'{value}%'},
|
data: [
|
{
|
value: num,
|
name: '剩余容量百分比'
|
}
|
]
|
}
|
]
|
};
|
// 使用刚指定的配置项和数据显示图表。
|
dashBoard.setOption(opt);
|
}
|
|
// 定义Page类
|
function Page(page) {
|
this.page = page;
|
}
|
Page.prototype.init = function() {
|
var winHt = $(window).height();
|
this.page.css('height', winHt+'px');
|
};
|
Page.prototype.showPage = function() {
|
this.page.animate({top: 0});
|
};
|
Page.prototype.hidePage = function() {
|
this.page.animate({top: -3000+'px'});
|
};
|
|
// 定义页面内tab-list的高度
|
function initTabList() {
|
var pageHt = $('.page').height();
|
var pageClose = $('.page .page-close').height();
|
var pageTab = $('.page .tab').height();
|
var shiftHt = pageHt - pageClose - pageTab;
|
$('.page .tab-list').height(shiftHt);
|
}
|
|
/**
|
生成电池组列表
|
@param obj element 列表的容器
|
@param array liTxt 列表的文本值
|
@param array liId 列表的id值
|
*/
|
function createListview(element, liTxt, liId) {
|
// 清空容器内的内容
|
element.text('');
|
|
// 创建列表
|
var ul = $('<ul></ul>');
|
for(var i = 0; i < liTxt.length; i++) {
|
var li = $('<li></li>');
|
var a = $('<a href="javascript:;" eleid="'+liId[i]+'">'+liTxt[i]+'</a>');
|
li.append(a);
|
ul.append(li);
|
}
|
|
element.append(ul);
|
}
|
|
/**
|
验证日期(开始日期要小于结束日期)
|
开始或者结束日期为空返回-1
|
开始日期大于结束日期返回0
|
开始日期小于结束日期返回1
|
*/
|
function testData(startDate, endDate) {
|
if(startDate.length == 0 || endDate.length == 0) {
|
return -1;
|
}
|
|
var startArr = startDate.split('-');
|
var endArr = endDate.split('-');
|
// 如果开始日期的年份小于结束日期的年份返回1
|
if(startArr[0] < endArr[0]) {
|
return 1;
|
}
|
|
// 如果开始日期年份等于结束日期年份
|
if(startArr[0] == endArr[0]) {
|
// 如果开始日期月份小于结束日期月份返回1
|
if(startArr[1] < endArr[1]) {
|
return 1;
|
}
|
|
// 如果开始日期月份等于结束日期月份
|
if(startArr[1] == endArr[1]) {
|
if (startArr[2] < endArr[2] || startArr[2] == endArr[2]) {
|
return 1;
|
}
|
}
|
}
|
return 0;
|
}
|
|
/*
|
生成电池组列表
|
@param obj element jquery对象电池组列表所在的容器
|
@param obj groupList 电池组的文本
|
*/
|
function createBatteryGroup (element, groupList) {
|
for(var i = 0; i < groupList.length; i++) {
|
var divList = $('<div class="group-list"></div>');
|
var listHeader = $('<div class="group-header"></div>');
|
var headerA = $('<a href="javascript:;" battgroupid="'+groupList[i].battgroupid+'">'+groupList[i].battgroupname+'</a>');
|
|
listHeader.append(headerA);
|
divList.append(listHeader);
|
|
var groupContent = $('<div class="group-content"></div>');
|
var batteryNumList = groupList[i].mon_nums;
|
var batteryStatus = groupList[i].mon_status;
|
createBattery (groupContent, batteryNumList, batteryStatus);
|
|
divList.append(groupContent);
|
element.append(divList);
|
}
|
imiScroll();
|
}
|
/**
|
定义生成电池单体
|
@param obj element jquery对象电池单体所在的容器
|
@param array num 电池单体编号
|
@param array status 电池的状态(-1告警,0 落后,1正常)
|
*/
|
function createBattery (element, batteryNum, status) {
|
|
var ul = $('<ul></ul>');
|
for(var i = 0; i < batteryNum.length; i++) {
|
var li = $('<li batterynum="'+batteryNum[i]+'"></li>');
|
|
var txt = $('<div class="batt-txt" style="text-align:center; white-space:nowrap">编号:'+batteryNum[i]+'</div>');
|
li.append(txt);
|
// 添加告警
|
if(status[i] < 0) {
|
var warningImg = $('<img src="image/battery-warning.gif" alt="告警图">');
|
li.append(warningImg); // 告警
|
}else if(status[i] == 0) {
|
var behindImg = $('<img src="image/battery-behind.gif" alt="落后图">');
|
li.append(behindImg); // 落后
|
}else {
|
var commonImg = $('<img src="image/battery-common.gif" alt="正常图">');
|
li.append(commonImg); // 正常
|
}
|
|
ul.append(li);
|
}
|
|
element.append(ul);
|
|
}
|
|
// 电池列表模拟滚动
|
function imiScroll() {
|
var top;
|
$('.ele-group-cont .ele-group').offset(function(n,c) {
|
top = c.top;
|
return c;
|
});
|
|
var eleGroupCon =$('.ele-group-cont').height();
|
var eleGroup = $('.ele-group-cont .ele-group').height();
|
|
var shiftHt = eleGroup - eleGroupCon;
|
|
var sTop = 0;
|
if(shiftHt > 0) {
|
$('.ele-group-cont').bind('mousewheel', function(e, delta) {
|
//console.info(delta);
|
if(delta < 0) {
|
$('.ele-group-cont .ele-group').offset(function(n, c) {
|
//console.info(c.top);
|
var newPos = new Object();
|
newPos.left = c.left;
|
if(sTop > shiftHt || sTop == shiftHt) {
|
newPos.top = c.top;
|
}else {
|
newPos.top = c.top - 10;
|
sTop+=10;
|
}
|
return newPos;
|
});
|
}else {
|
$('.ele-group-cont .ele-group').offset(function(n, c) {
|
//console.info(c.top);
|
var newPos = new Object();
|
newPos.left = c.left;
|
if(c.top > top || c.top == top) {
|
newPos.top = top;
|
}else {
|
newPos.top = c.top+10;
|
sTop-=10;
|
}
|
return newPos;
|
});
|
}
|
});
|
}
|
}
|
|
|
|
//var batt_infomation_list = new Array();
|
//根据机房id查询电池组信息
|
function searchBattInfo(stationid){
|
loading.showLoading($('.ele-group-cont'));
|
//batt_infomation_list = new Array();
|
var json = JSON.stringify({StationId:stationid,});
|
$.ajax({
|
type: "post",
|
url: "BattMap_informationAction!serchMonNum",
|
async:true,
|
dataType:'text',
|
data:"json="+json,
|
success: function(data){
|
data = eval("("+data+")");
|
var list = eval("("+data.result+")");
|
//console.info(list);
|
var battgroups = new Array();
|
for(var i=0;i<list.length;i++){
|
var batt = {
|
battgroupid:list[i].newsum,
|
battgroupname:list[i].msg,
|
};
|
|
if(list[i].code>0){
|
var alarm_str = list[i].msgO; //所有告警单体编号
|
var low_str = list[i].msgN; //所有落后单体编号
|
var mon_num_list = new Array();
|
var mon_status_list = new Array();
|
for(var j=0;j<list[i].code;j++){
|
mon_num_list.push((j+1));
|
mon_status_list.push(low_str.indexOf(j+1)>0?0:alarm_str.indexOf(j+1)>0?-1:1); //(-1告警,0 落后,1正常)
|
|
}
|
batt.mon_nums = mon_num_list;
|
batt.mon_status = mon_status_list;
|
}
|
battgroups.push(batt);
|
}
|
//console.info(battgroups);
|
|
var batteryList = $('.ele-group');
|
batteryList.text('');
|
createBatteryGroup(batteryList, battgroups);
|
loading.hideLoading($('.ele-group-cont'));
|
},
|
error:function(){
|
loading.hideLoading($('.ele-group-cont'));
|
}
|
});
|
}
|
|
var $line = $('.actual-line').get(0);
|
var line = echarts.init($line);
|
var isExit_currEchart = false;
|
//根据电池组id查询实时电流
|
function searchCurr(stationid){
|
//console.info("查询实时电流");
|
var temp = {
|
StationId:stationid,
|
BattProductDate:"2000-01-01 00:00:00",
|
BattProductDate1:new Date().format("yyyy-MM-dd")+" 23:59:59",
|
};
|
var json = JSON.stringify(temp);
|
//console.info(json);
|
var xdata = new Array();
|
var ydata = new Array();
|
$.ajax({
|
type: "post",
|
url: "Batt_DevdischargeAction!serchByCondition",
|
async:true,
|
dataType:'text',
|
data:"json="+json,
|
success: function(data){
|
data = eval('('+data+')');
|
var model = eval('('+data.result+')');
|
//console.info(model);
|
if(model.code > 0){
|
var yidong = new Array();
|
var liantong = new Array();
|
var dianxin = new Array();
|
for(var i=0;i<model.data.length;i++){
|
|
xdata.push(model.data[i].bd_CM.dev_recordtime);
|
|
//电流
|
var CM_value = parseFloat(model.data[i].bd_CM.dev_curr == undefined?0:model.data[i].bd_CM.dev_curr).toFixed(1);
|
var CT_value = parseFloat(model.data[i].bd_CT.dev_curr == undefined?0:model.data[i].bd_CT.dev_curr).toFixed(1);
|
var CU_value = parseFloat(model.data[i].bd_CU.dev_curr == undefined?0:model.data[i].bd_CU.dev_curr).toFixed(1);
|
|
yidong.push(CM_value);
|
dianxin.push(CT_value);
|
liantong.push(CU_value);
|
}
|
ydata.push(yidong);
|
ydata.push(dianxin);
|
ydata.push(liantong);
|
}
|
|
// 清除折线图
|
line.clear();
|
var lname = ['移动', '电信', '联通'];
|
creatLineGraph(line, '实时电流:', lname, xdata, ydata, 'A');
|
setTimeout("searchCurr('"+stationid+"')", 10*1000);
|
},
|
error:function(){
|
setTimeout("searchCurr('"+stationid+"')", 10*1000);
|
}
|
});
|
}
|
|
//根据电池组id和单体编号查询单体信息
|
function searchBatt_data(battgroupid,mon_num){
|
var temp = {
|
BattGroupId:battgroupid,
|
MonNum:mon_num
|
};
|
$.ajax({
|
type: "post",
|
url: "Batt_rtstateAction!serchByMons",
|
async:true,
|
dataType:'text',
|
data:"json="+JSON.stringify(temp),
|
success: function(data){
|
data = eval("("+data+")");
|
var model = eval("("+data.result+")");
|
if(model.code == 1){
|
var eleinfor = new Panel($('.master-control .panel'));
|
//console.info(model);
|
$('#mon_num').text(model.data[0].bdata.mon_num); //单体编号
|
$('#mon_vol').attr('value',model.data[0].bdata.mon_vol); //单体电压
|
$('#mon_capstd').attr('value',model.data[0].binf.MonCapStd); //标称容量
|
var actionvalue = GetMonomerCap(model.data[0].binf.MonCapStd,GetHourRate(model.data[0].binf.MonCapStd,model.data[0].bstate.group_curr),model.data[0].bstate.batt_test_cap,model.data[0].binf.MonVolLowToAvg,model.data[0].bdata.mon_vol,model.data[0].binf.MonVolStd,CapType_Real);
|
var restcap = GetMonomerCap(model.data[0].binf.MonCapStd,GetHourRate(model.data[0].binf.MonCapStd,model.data[0].bstate.group_curr),model.data[0].bstate.batt_test_cap,model.data[0].binf.MonVolLowToAvg,model.data[0].bdata.mon_vol,model.data[0].binf.MonVolStd,CapType_Rest);
|
$('#real_cap').attr('value',actionvalue.toFixed(0));
|
//console.info(restcap);
|
$('#rest_cap').attr('value',(model.data[0].bstate.batt_rest_cap).toFixed(0)); //剩余容量
|
|
eleinfor.showPanel();
|
|
}
|
},
|
error:function(){
|
setTimeout("searchCurr('"+stationid+"')", 10*1000);
|
}
|
});
|
}
|
|
//查询指定机房的用电量信息
|
function searchElect(){
|
var temp = {
|
StationId:StataionId,
|
BattProductDate:$('#startTime').val()+" 00:00:00",
|
BattProductDate1:$('#endTime').val()+" 23:59:59"
|
};
|
console.info(JSON.stringify(temp));
|
var xdata = new Array();
|
|
$.ajax({
|
type: "post",
|
url: "Batt_electricityAction!serchByInfo",
|
async:true,
|
dataType:'text',
|
data:"json="+JSON.stringify(temp),
|
success: function(data){
|
data = eval("("+data+")");
|
var model = eval("("+data.result+")");
|
console.info(model);
|
if(model.code == 1){
|
var yidong = new Array(); //移动
|
var dianxin = new Array(); //电信
|
var liantong = new Array(); //联通
|
for(var i=0;i<model.data.length;i++){
|
xdata.push(model.data[i].dev_recordtime);
|
yidong.push(model.data[i].dev_electricity_CM);
|
dianxin.push(model.data[i].dev_electricity_CT);
|
liantong.push(model.data[i].dev_electricity_CU);
|
}
|
}
|
|
var lname = ['移动', '电信', '联通'];
|
var sData = [
|
yidong,
|
dianxin,
|
liantong ,
|
];
|
creatLineGraph(eleBreakLine, '三大运营商用电量:', lname, xdata, sData, 'kw*h');
|
},
|
error:function(){
|
|
}
|
});
|
}
|
|
// 生成电池寿命管理表格
|
var arrTh = ['电池组名称', '电池品牌', '电池型号', '电池类型', '开始使用时间', '已使用时长(/月)'];
|
var arrTd ;
|
|
|
//根据机房查询电池组的寿命情况
|
function searchBattlife(stationid){
|
arrTd = new Array();
|
var temp = {
|
StationId:stationid,
|
};
|
$.ajax({
|
type: "post",
|
url: "BattMap_informationAction!serchByStationid",
|
async:true,
|
dataType:'text',
|
data:"json="+JSON.stringify(temp),
|
success: function(data){
|
data = eval("("+data+")");
|
var model = eval("("+data.result+")");
|
if(model.code==1){
|
console.info(model);
|
for(var i = 0;i < model.data.length;i++){
|
arrTd.push(model.data[i].BattGroupName); //电池组名称
|
arrTd.push(model.data[i].BattProducer); //电池品牌
|
arrTd.push(model.data[i].BattModel); //电池型号
|
arrTd.push(model.data[i].MonVolStd); //电池类型
|
arrTd.push(model.data[i].BattInUseDate.substring(0,10)); //使用时间
|
arrTd.push(model.data[i].num); //已使用时长
|
}
|
}
|
var tbl = $('.ele-life .tbl');
|
createTablenew(tbl, arrTh, arrTd);
|
},
|
error:function(){
|
//searchBattlife(stationid); //出错则重新查询一次
|
}
|
});
|
}
|
|
|
var batt_list;
|
function searchBattByStationId(stationid){
|
batt_list = new Array();
|
var temp = {
|
StationId:stationid,
|
};
|
$.ajax({
|
type: "post",
|
url: "BattInfAction!searchBattByStationId",
|
async:true,
|
dataType:'text',
|
data:"json="+JSON.stringify(temp),
|
success: function(data){
|
data = eval("("+data+")");
|
var model = eval("("+data.result+")");
|
//console.info(model);
|
var liTxtList = new Array();
|
var liIdList = new Array();
|
if(model.code==1){
|
batt_list = model.data;
|
for(var i=0;i<model.data.length;i++){
|
liTxtList.push(model.data[i].BattGroupName);
|
liIdList.push(model.data[i].BattGroupId);
|
}
|
}
|
|
// 生成电池组列表
|
var listview = $('.ele-time .listview');
|
createListview(listview, liTxtList, liIdList);
|
},
|
error:function(){
|
//searchBattByStationId(stationid); //出错则重新查询一次
|
}
|
});
|
}
|
|
$(function() {
|
//点击电池组列表时查询
|
var inter;
|
$('.ele-time .listview').on('click', 'a', function() {
|
cap_flag = 0;
|
clearInterval(inter);
|
var battgroupid = $(this).attr("eleid");
|
searchBattRestCap(battgroupid);
|
$('.ele-time .listview a').removeClass('active');
|
$(this).addClass('active');
|
inter = setInterval(function() {
|
cap_flag = 1;
|
searchBattRestCap(battgroupid);
|
}, 6000);
|
});
|
});
|
|
//电池组续航能力查询
|
function searchBattRestCap(battgroupid){
|
var temp = {
|
BattGroupId:battgroupid,
|
};
|
$.ajax({
|
type: "post",
|
url: "Batt_rtstateAction!serchByInfo",
|
async:true,
|
dataType:'text',
|
data:"json="+JSON.stringify(temp),
|
success: function(data){
|
data = eval("("+data+")");
|
var model = eval("("+data.result+")");
|
//console.info(model);
|
if(model.code == 1){
|
var moncapstd = model.data[0].binf.MonCapStd;
|
var monvolstd = model.data[0].binf.MonVolStd;
|
var maxvol = model.data[0].bdata.mon_vol;
|
var minvol = model.data[0].bdata.mon_tmp;
|
var test_cap = model.data[0].bstate.batt_test_cap;
|
var test_curr = model.data[0].bstate.group_curr;
|
var actionvalue = (GetMonomerCap(moncapstd,GetHourRate(moncapstd,test_curr),test_cap,maxvol,minvol,monvolstd,CapType_Real)).toFixed(0);
|
var restvalue = (GetMonomerCap(moncapstd,GetHourRate(moncapstd,test_curr),test_cap,maxvol,minvol,monvolstd,CapType_Rest)).toFixed(0);
|
|
console.info(moncapstd+"==="+actionvalue+"==="+restvalue);
|
var percent = (restvalue*100/moncapstd).toFixed(1);
|
|
var restTime = test_curr==0?formartTime(0):formartTime(restvalue*60/test_curr);
|
|
if(cap_flag == 0) {
|
createDashBoard(dashBoard, restTime,moncapstd, actionvalue, percent);
|
}else {
|
opt.title.text = '预计剩余时间:' +restTime;
|
opt.title.subtext = '标称容量:' +moncapstd+'\n\n实际容量:'+actionvalue;
|
//console.info(restvalue*100/moncapstd);
|
opt.series[0].data[0].value = percent;
|
dashBoard.setOption(opt);
|
}
|
}
|
},
|
error:function(){
|
//searchBattRestCap(battgroupid); //出错则重新查询一次
|
}
|
});
|
}
|
|
//格式化时间
|
function formartTime(value){
|
value = Math.abs(parseInt(value));
|
console.info(value);
|
var day_num = 0;
|
var hour_num = 0;
|
var min_num = 0;
|
if(value>=24*60){
|
day_num = Math.floor(value/(24*60));
|
value = value%(24*60);
|
}
|
if(value>=60){
|
hour_num = Math.floor(value/60);
|
value = value%60;
|
}
|
min_num = value;
|
return day_num+"天"+hour_num+"小时"+min_num+"分";
|
}
|
|
var $current = $('.ele-time .break-line .echarts').get(0);
|
var xArray = ['移动','电信','联通'];
|
var yArray = new Array();
|
var msg = "最大值";
|
var isnotshowvalue = false;
|
//CreateEchart($current,"实时电流","电流",xArray,yArray,msg);
|
function searchDevCurr(stationid){
|
yArray = new Array();
|
var temp = {
|
StationId:stationid
|
};
|
$.ajax({type: "post",
|
url: "Cmcc_Power_DataAction!serchByCondition",
|
async:true,
|
dataType:'text',
|
data:"json="+JSON.stringify(temp),
|
success: function(data){
|
data = eval('('+data+')');
|
var model = eval('('+data.result+')');
|
console.info(model);
|
var sum = 0;
|
if(model.code == 1){
|
yArray.push(model.data[0].curr1);
|
yArray.push(model.data[0].curr2);
|
yArray.push(model.data[0].curr3);
|
sum = (model.data[0].curr1+model.data[0].curr2+model.data[0].curr3).toFixed(1);
|
}
|
var max = Math.max.apply( Math, yArray );
|
var min = Math.min.apply( Math, yArray );
|
var avg = (sum/yArray.length).toFixed(1);
|
var tname = "总电流="+sum+"A;最大值="+max+"A;最小值="+min+"A;平均值="+avg+"A";
|
if(myChart != undefined){
|
reflush(yArray,xArray,tname);
|
}else{
|
CreateEchart($current,"电流",xArray,yArray,tname);
|
}
|
},
|
error:function(e){
|
console.info(e);
|
}
|
});
|
|
}
|
|
|
var myChart;
|
function CreateEchart(ele,lname,xdata,sdata,tname){
|
//mychart=undefined;
|
myChart=echarts.init(ele);
|
myChart.clear();
|
var option={
|
tooltip:{
|
show:true,
|
trigger: 'axis',
|
axisPointer : { // 坐标轴指示器,坐标轴触发有效
|
type : 'line', // 默认为直线,可选为:'line' | 'shadow'
|
color:"white"
|
}
|
},
|
title : {
|
text:tname,
|
x: "center", //标题水平方向位置
|
textStyle: {
|
fontSize:13
|
}
|
},
|
xAxis:{
|
data:xdata
|
},
|
grid: {
|
top:'6%',
|
left: '1%',
|
right: '5%',
|
bottom: '2%',
|
containLabel: true
|
},
|
yAxis:{
|
min:(Math.min.apply( Math, sdata )*0.8).toFixed(3),
|
max:(Math.max.apply( Math, sdata )*1.05).toFixed(3)
|
},
|
series:[{
|
type:'bar',
|
name:lname,
|
data:sdata,
|
|
//显示柱状的数值
|
itemStyle:{
|
emphasis:{
|
color:'#54d3e6'
|
},
|
normal:{
|
label:{
|
show: isnotshowvalue,
|
position: 'top',
|
fontSize:11
|
},
|
|
color: function setcolor(value) {
|
|
var option = myChart.getOption();
|
var max=option.series[0].data[0];
|
var min=option.series[0].data[0];
|
for(var i=0;i<sdata.length;i++)
|
{
|
if(option.series[0].data[i]>max)
|
{
|
max=option.series[0].data[i];
|
}
|
if(min>option.series[0].data[i])
|
{
|
min=option.series[0].data[i];
|
}
|
}
|
|
|
if(value.value==max)
|
{
|
maxflag=false;
|
return 'green';
|
}
|
else if(value.value==min)
|
{
|
minflag=false;
|
return 'red';
|
}else
|
{
|
//console.info(title.getClow());
|
return '#b4d3fa'; //设置为普通的颜色
|
}
|
|
}
|
}
|
},
|
//显示平均值
|
markLine:{
|
data:[
|
{
|
type:'average',
|
name:'平均值',
|
itemStyle:{
|
normal:{
|
color:'blue'
|
}
|
}
|
},
|
]
|
}
|
}]
|
};
|
var lastcolor="";
|
// 使用刚指定的配置项和数据显示图表。
|
myChart.setOption(option);
|
}
|
|
|
//更新图中的
|
function reflush(ydata,xdata,tname){
|
if(!myChart){
|
return;
|
}
|
//更新数据
|
var option = myChart.getOption();
|
option.series[0].data = ydata;
|
option.title[0].text=tname;
|
option.xAxis.data = xdata;
|
var data=option.series[0].markLine.data;
|
option.series[0].markLine.data=data;
|
//console.info("更新柱状图");
|
//console.info(option);
|
option.yAxis[0].max = (Math.max.apply( Math, ydata )*1.05).toFixed(3);
|
option.yAxis[0].min = (Math.min.apply( Math, ydata )*0.8).toFixed(3);
|
myChart.setOption(option);
|
}
|
</script>
|
</body>
|
</html>
|