var layer;
var bizCharts = {};
var pageDepot = 0;
var totalDepot = 1;
var pageGas = 1;
var totalGas = 1;
var grainIndex = 0;
var gasIndex = 0;
var timer;
var screen = true;
$(function() {
layui.use([ 'layer', 'laydate', 'form' ], function() {
layer = layui.layer;
// 初始页面
init();
$("body").dblclick(function() {
if (screen) {
requestFullScreen();
} else {
exitFullscreen();
}
});
});
});
function init() {
// 初始背景效果
initBg();
initTime();
initDicSlogan();
initWeather();
// 初始化页面中7张echart图表
bizCharts = initCharts();
renderDepot();
renderGrain();
reloadChartGas()
reloadChartdepot();
renderEsChart();
clearInterval(timer);
timing();
// 初始化WebSocket
initWS(deptId, bizType, bizTag, userId);
initInoutData();
};
// socket信息返回處理
function socketOnMessage(pocket) {
//console.log(pocket);
if (pocket.bizId == "slogan") {
var data = pocket.data;
dicSlogan = data;
initDicSlogan();
}
if (pocket.bizId == "grain") {
var data = pocket.data;
mapGrain = data;
}
if (pocket.bizId == "gas") {
var data = pocket.data;
mapGas = data;
}
if (pocket.bizId == "weather") {
weatherInfo = pocket.data;
initWeather()
}
if (pocket.bizId == "depot") {
listDepot = pocket.data;
pageDepot = 0;
renderDepot();
reloadChartdepot();
}
if(pocket.bizId == "es"){//能耗信息推送
esChart = pocket.data;
renderEsChart();
}
if (pocket.bizId == "IN_OUT_SUMMARY") {
inoutData = pocket.data;
renderSumData(inoutData);
}
};
function timing() {
timer = setInterval(function() {
dong();
renderGrain();
reloadChartGas();
}, 15000);
}
function initCharts() {
var chartEnergy = initChartEnergy();
var chartGasCO2 = initChartGasCO2();
var chartGasPH3 = initChartGasPH3();
var chartGasO2 = initChartGasO2();
var chartFoodType = initChartFoodType();
var chartFoodVariety = initChartFoodVariety();
var chartFoodLevel = initChartFoodLevel();
return {
"chartEnergy" : chartEnergy,
"chartGasCO2" : chartGasCO2,
"chartGasPH3" : chartGasPH3,
"chartGasO2" : chartGasO2,
"chartFoodType" : chartFoodType,
"chartFoodVariety" : chartFoodVariety,
"chartFoodLevel" : chartFoodLevel
};
}
/**
* 初始标语数据
*/
function initDicSlogan() {
if (dicSlogan) {
if (dicSlogan.color == "red") {
$("#sloganText").css({
color : "#DE2910"
});
} else {
$("#sloganText").css({
color : "#7ddfff"
});
}
$("#sloganText").text(dicSlogan.content);
}
}
function initWeather() {
if (weatherInfo) {
// console.log(weatherInfo);
var wendu = weatherInfo.temp.replace("℃", "");
$("#weather_wendu").html("" + wendu + "℃");
var shidu = weatherInfo.humidity.replace("%", "");
$("#weather_shidu").html("" + shidu + "%");
var tianqi = weatherInfo.weather;
$("#weather_tianqi").html("" + tianqi + "");
var pm25 = weatherInfo.pm25.replace("μg/m3", "");
$("#weather_pm25").html("" + pm25 + "");
var fengxiang = weatherInfo.windDirection;
$("#weather_fengxiang").html("" + fengxiang + "");
var time = weatherInfo.updateTimeStr;
$("#weather_time").text("更新时间 : " + time);
}
}
/**
* 时间等
*/
function initTime() {
setInterval(function() {
var now = new Date();
var time = now.toLocaleString('chinese', {
hour12 : false
});
$(".time-info").text(time);
}, 1000);
}
/**
* 通知后台推送一次出入库数据
*/
function initInoutData(){
$.ajax({
type : "POST",
url : "../../basic/databoard/init-inout-data",
dataType : "json",
contentType : "application/json;charset=UTF-8",
data : JSON.stringify({
"companyId" : companyId
}),
success : function(result) {
console.log("初始成功!");
},
error : function(result) {
console.log("初始失败!");
}
});
}
/**
* 渲染出入库统计信息
* @param sumData
*/
function renderSumData(sumData){
if(sumData){
$("#inCarNum").text((sumData.inSumNum != null ? sumData.inSumNum : 0));
$("#inCompleteCarNum").text((sumData.inComplateNum != null ? sumData.inComplateNum : 0));
$("#outCarNum").text((sumData.outSumNum != null ? sumData.outSumNum : 0));
$("#outCompleteCarNum").text((sumData.outComplateNum != null ? sumData.outComplateNum : 0));
$("#inPerDiv").animate({width:(sumData.perInComplate != null ? sumData.perInComplate : 0) + "%"},"normal");
$("#inPerSpan").text((sumData.perInComplate != null ? sumData.perInComplate : 0) + "%");
$("#outPerDiv").animate({width:(sumData.perOutComplate != null ? sumData.perOutComplate : 0) + "%"},"normal");
$("#outPerSpan").text((sumData.perOutComplate != null ? sumData.perOutComplate : 0) + "%");
}
};
/**
* 渲染能耗信息
*/
function renderEsChart(){
if(!esChart) return;
var chartEnergy = bizCharts.chartEnergy;
chartEnergy.option.xAxis[0].data = esChart.xaxisData;
chartEnergy.option.series[0].data = esChart.series[0].data;
chartEnergy.chart.setOption(chartEnergy.option, true);
bizCharts.chartEnergy = chartEnergy;
};
/**
* 渲染仓库
*/
function renderDepot() {
if (listDepot == null || listDepot.length <= 0)
return;
// 先清空,在渲染
$("#depotShowDiv").html("");
$("#depotTabDiv").html("");
var pageNo = 1;
// 计算总页数
var total = listDepot.length / 4;
if (!(listDepot.length % 4 == 0)) {
total++;
}
var html = "
" + "" + "";
} else if (curDepot.depotStatus == DepotStatus.S_03) {
html += "
";
html += "入库
" + "入库执行中
" + "" + ""
+ "";
} else if (curDepot.depotStatus == DepotStatus.S_04) {
html += "
";
html += "出库
" + "出库执行中
" + "" + ""
+ "";
} else if (curDepot.depotStatus == DepotStatus.S_05) {
html += "
";
html += "气调
" + "不可执行通风等操作
" + "" + ""
+ "";
} else if (curDepot.depotStatus == DepotStatus.S_06) {
html += "
";
html += "熏蒸
" + "请注意安全
" + "" + ""
+ "";
} else if (curDepot.depotStatus == DepotStatus.S_07) {
html += "
";
html += "通风
" + "请注意雨水天气
" + "" + ""
+ "";
} else if (curDepot.depotStatus == DepotStatus.S_08) {
html += "
";
html += "维修
" + "仓库维修中
" + "" + ""
+ "";
} else {
html += "
";
html += "满仓
" + "正常状态
" + "" + "" + "";
}
if ((i % 4) == 0) {
html += "";
pageNo++;
if (pageNo <= total) {
html += "";
}
}
if (i == listDepot.length) {
html += "
";
}
}
$("#depotShowDiv").html(html);
var tabHtml = "";
for (var k = 0; k < total; k++) {
if (k == 0) {
tabHtml += "";
} else {
tabHtml += "";
}
}
$("#depotTabDiv").html(tabHtml);
// 绑定切换事件
totalDepot = $('.i-tab-hd span').length;
pageDepot = 0;
var $tabHd = $(".i-tab-hd span");
$tabHd.hover(function(a) {
clearInterval(timer);
var $index = $tabHd.index(this);
var $tabBd = $(".i-tab-bd .i-tab-item");
i = $index;
$(this).addClass("active").siblings().removeClass("active");
$tabBd.eq($index).addClass("show").siblings().removeClass("show");
}, function() {
timer = setInterval(dong, 15000);
});
}
function dong() {
pageDepot++;
if (pageDepot >= totalDepot) {
pageDepot = 0;
}
selectimg(pageDepot);
}
function selectimg(i) {
var $tabHd = $(".i-tab-hd span");
$tabHd.eq(i).addClass("active").siblings().removeClass("active");
$(".i-tab-bd .i-tab-item").eq(i).addClass("show").siblings(".i-tab-item")
.removeClass("show");
}
/**
* 渲染粮情,参数为页码
*
* @param pageNoGrain
*/
function renderGrain() {
if (listDepot == null || listDepot.length <= 0)
return;
// 先清空,在渲染
$("#grainShowDiv").html("");
var html = "";
var dateStr;
if (mapGrain) {
var count = 0 ;
for (var i = grainIndex; i < listDepot.length; i++,grainIndex++) {
var grain = mapGrain[listDepot[grainIndex].id];
if (grain) {
html += "" + "- "
+ (listDepot[grainIndex].name == null ? "" : listDepot[grainIndex].name)
+ "
";
dateStr = grain.receiveDate;
if (dateStr) {
var d = new Date(dateStr);
dateStr = (d.getMonth() + 1) + "-" + d.getDate();
} else {
dateStr = "";
}
html += "- " + grain.tempMax.toFixed(1) + "
" + "- "
+ grain.tempMin.toFixed(1) + "
" + "- "
+ grain.tempAve.toFixed(1) + "
" + "- "
+ grain.tempIn.toFixed(1) + "
" + "- "
+ grain.humidityIn.toFixed(1) + "
" + "- "
+ dateStr + "
" + "
";
count ++ ;
}
if (grainIndex == (listDepot.length-1)) {
grainIndex = 0;
break;
}
if (count == 10) {
grainIndex ++ ;
break;
}
}
}else{
console.log("粮情信息为空!");
}
$("#grainShowDiv").html(html);
}
/**
* 渲染气体图表
*
* @param index
*/
function reloadChartGas() {
var chartGasCO2 = bizCharts.chartGasCO2;
var chartGasPH3 = bizCharts.chartGasPH3;
var chartGasO2 = bizCharts.chartGasO2;
if (mapGas) {
if(gasIndex == (listDepot.length -1) ){
gasIndex = 0;
}
for (var i = gasIndex; i < listDepot.length; i++,gasIndex++) {
var depot = listDepot[gasIndex];
var gas = mapGas[listDepot[gasIndex].id];
if (gas) {
$("#gasDepotName").text((depot.name == null ? "" : depot.name));
var dateStr = gas.receiveDate;
if (dateStr) {
var d = new Date(dateStr);
dateStr = (d.getMonth() + 1) + "-" + d.getDate();
} else {
dateStr = "";
}
$("#gasCheckTime").text("检测时间: " + dateStr);
chartGasCO2.option.series[0].data[0].value = (gas.perCo2 == null ? 0
: gas.perCo2);
chartGasCO2.chart.setOption(chartGasCO2.option, true);
chartGasPH3.option.series[0].data[0].value = (gas.perPh3 == null ? 0
: gas.perPh3);
chartGasPH3.chart.setOption(chartGasPH3.option, true);
chartGasO2.option.series[0].data[0].value = (gas.perO2 == null ? 0
: gas.perO2);
chartGasO2.chart.setOption(chartGasO2.option, true);
gasIndex++;
break;
} else {
}
}
} else {
$("#gasDepotName").text("仓库");
$("#gasCheckTime").text("检测时间: 00-00");
chartGasCO2.option.series[0].data[0].value = 0;
chartGasCO2.chart.setOption(chartGasCO2.option, true);
chartGasPH3.option.series[0].data[0].value = 0;
chartGasPH3.chart.setOption(chartGasPH3.option, true);
chartGasO2.option.series[0].data[0].value = 0;
chartGasO2.chart.setOption(chartGasO2.option, true);
console.log("气体数据为空,显示默认数据")
}
bizCharts.chartGasCO2 = chartGasCO2;
bizCharts.chartGasPH3 = chartGasPH3;
bizCharts.chartGasO2 = chartGasO2;
}
/**
* 仓储统计
*/
function reloadChartdepot() {
if (listDepot == null || listDepot.length <= 0) {
return;
}
var foodTypeMap = new Map();
var foodType = null;
var foodVarietyMap = new Map();
var foodVariety = null;
var foodLevelMap = new Map();
var foodLevel = null;
var depot = null;
var value = 0.0;
for (var i = 1; i <= listDepot.length; i++) {
depot = listDepot[i - 1];
value = 0.0;
// 粮食性质
foodType = depot.foodType;
if (foodType) {
if (foodTypeMap.has(foodType)) {
value = foodTypeMap.get(foodType).value + depot.storageReal;
} else {
value = depot.storageReal;
}
foodTypeMap.set(foodType, {
"name" : depot.foodTypeName,
"value" : value
});
}
// 粮食等级
foodLevel = depot.foodLevel;
if (foodLevel) {
if (foodLevelMap.has(foodLevel)) {
value = foodLevelMap.get(foodLevel).value + depot.storageReal;
} else {
value = depot.storageReal;
}
foodLevelMap.set(foodLevel, {
"name" : depot.foodLevelName,
"value" : value
});
}
// 粮食品种
foodVariety = depot.foodVariety;
if (foodVariety) {
if (foodVarietyMap.has(foodVariety)) {
value = foodVarietyMap.get(foodVariety).value
+ depot.storageReal;
} else {
value = depot.storageReal;
}
foodVarietyMap.set(foodVariety, {
"name" : depot.foodVarietyName,
"value" : value
});
}
}
var chartFoodTypeData = new Array();
var chartFoodVarietyData = new Array();
var chartFoodLevelData = new Array();
foodVarietyMap.forEach(function(value, key) {
chartFoodVarietyData.push(value);
});
foodTypeMap.forEach(function(value, key) {
chartFoodTypeData.push(value);
});
foodLevelMap.forEach(function(value, key) {
chartFoodLevelData.push(value);
});
var chartFoodLevel = bizCharts.chartFoodLevel;
var chartFoodVariety = bizCharts.chartFoodVariety;
var chartFoodType = bizCharts.chartFoodType;
chartFoodLevel.option.series[0].data = chartFoodLevelData;
chartFoodLevel.chart.setOption(chartFoodLevel.option, true);
chartFoodType.option.series[0].data = chartFoodTypeData;
chartFoodType.chart.setOption(chartFoodType.option, true);
chartFoodVariety.option.series[0].data = chartFoodVarietyData;
chartFoodVariety.chart.setOption(chartFoodVariety.option, true);
bizCharts.chartFoodLevel = chartFoodLevel;
bizCharts.chartFoodType = chartFoodType;
bizCharts.chartFoodVariety = chartFoodVariety;
}
// 退出全屏
function exitFullscreen() {
var de = document;
if (de.exitFullscreen) {
de.exitFullscreen();
} else if (de.mozCancelFullScreen) {
de.mozCancelFullScreen();
} else if (de.webkitCancelFullScreen) {
de.webkitCancelFullScreen();
}
screen = true;
}
// 进入全屏
function requestFullScreen() {
var de = document.documentElement;
if (de.requestFullscreen) {
de.requestFullscreen();
} else if (de.mozRequestFullScreen) {
de.mozRequestFullScreen();
} else if (de.webkitRequestFullScreen) {
de.webkitRequestFullScreen();
}
screen = false;
}