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("<span>" + wendu + "</span>℃");
|
|
var shidu = weatherInfo.humidity.replace("%", "");
|
$("#weather_shidu").html("<span>" + shidu + "</span>%");
|
|
var tianqi = weatherInfo.weather;
|
$("#weather_tianqi").html("<em>" + tianqi + "</em>");
|
|
var pm25 = weatherInfo.pm25.replace("μg/m3", "");
|
$("#weather_pm25").html("<span>" + pm25 + "</span>");
|
|
var fengxiang = weatherInfo.windDirection;
|
$("#weather_fengxiang").html("<em>" + fengxiang + "</em>");
|
|
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 = "<div class=\"i-tab-item show\">" + "<ul class=\"i-tab-list\">";
|
var curDepot;
|
for (var i = 1; i <= listDepot.length; i++) {
|
curDepot = listDepot[i - 1];
|
html += "<li>"
|
+ "<a href=\"#\">"
|
+ "<div class=\"i-tab-top\">"
|
+ "<h3>"
|
+ (curDepot.name == null ? "" : curDepot.name)
|
+ "</h3>"
|
+ "<p>仓储性质: "
|
+ (curDepot.foodTypeName == null ? "" : curDepot.foodTypeName)
|
+ "</p>"
|
+ "<p>保 管 员: "
|
+ (curDepot.storeKeeperName == null ? ""
|
: curDepot.storeKeeperName) + "</p>" + "</div>"
|
+ "<div class=\"i-tab-bottom\">";
|
|
// 仓库状态
|
if (curDepot.depotStatus == DepotStatus.S_01) {
|
html += "<i><img src=\"../../static/img/databoard/icon-kong.png\"/></i>";
|
html += "<h4>空仓</h4>" + "<p>空置中</p>" + "</div>" + "</a>" + "</li>";
|
} else if (curDepot.depotStatus == DepotStatus.S_02) {
|
html += "<i><img src=\"../../static/img/databoard/icon-man.png\"/></i>";
|
html += "<h4>满仓</h4>" + "<p>正常状态</p>" + "</div>" + "</a>" + "</li>";
|
} else if (curDepot.depotStatus == DepotStatus.S_03) {
|
html += "<i><img src=\"../../static/img/databoard/icon-ruku-big.png\"/></i>";
|
html += "<h4>入库</h4>" + "<p>入库执行中</p>" + "</div>" + "</a>"
|
+ "</li>";
|
} else if (curDepot.depotStatus == DepotStatus.S_04) {
|
html += "<i><img src=\"../../static/img/databoard/icon-chuku-big.png\"/></i>";
|
html += "<h4>出库</h4>" + "<p>出库执行中</p>" + "</div>" + "</a>"
|
+ "</li>";
|
} else if (curDepot.depotStatus == DepotStatus.S_05) {
|
html += "<i><img src=\"../../static/img/databoard/icon-qidiao.png\"/></i>";
|
html += "<h4>气调</h4>" + "<p>不可执行通风等操作</p>" + "</div>" + "</a>"
|
+ "</li>";
|
} else if (curDepot.depotStatus == DepotStatus.S_06) {
|
html += "<i><img src=\"../../static/img/databoard/icon-zhengxun.png\"/></i>";
|
html += "<h4>熏蒸</h4>" + "<p>请注意安全</p>" + "</div>" + "</a>"
|
+ "</li>";
|
} else if (curDepot.depotStatus == DepotStatus.S_07) {
|
html += "<i><img src=\"../../static/img/databoard/icon-tongfeng.png\"/></i>";
|
html += "<h4>通风</h4>" + "<p>请注意雨水天气</p>" + "</div>" + "</a>"
|
+ "</li>";
|
} else if (curDepot.depotStatus == DepotStatus.S_08) {
|
html += "<i><img src=\"../../static/img/databoard/icon-weixiu.png\"/></i>";
|
html += "<h4>维修</h4>" + "<p>仓库维修中</p>" + "</div>" + "</a>"
|
+ "</li>";
|
} else {
|
html += "<i><img src=\"../../static/img/databoard/icon-man.png\"/></i>";
|
html += "<h4>满仓</h4>" + "<p>正常状态</p>" + "</div>" + "</a>" + "</li>";
|
}
|
|
if ((i % 4) == 0) {
|
html += "</ul></div>";
|
pageNo++;
|
if (pageNo <= total) {
|
html += "<div class=\"i-tab-item\"><ul class=\"i-tab-list\">";
|
}
|
}
|
if (i == listDepot.length) {
|
html += "</ul></div>";
|
}
|
}
|
$("#depotShowDiv").html(html);
|
var tabHtml = "";
|
for (var k = 0; k < total; k++) {
|
if (k == 0) {
|
tabHtml += "<span class=\"active\"></span>";
|
} else {
|
tabHtml += "<span ></span>";
|
}
|
}
|
$("#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 += "<dl class=\"i-m1-dl\">" + "<dt><a href=\"#\">"
|
+ (listDepot[grainIndex].name == null ? "" : listDepot[grainIndex].name)
|
+ "</a></dt>";
|
dateStr = grain.receiveDate;
|
if (dateStr) {
|
var d = new Date(dateStr);
|
dateStr = (d.getMonth() + 1) + "-" + d.getDate();
|
} else {
|
dateStr = "";
|
}
|
html += "<dd>" + grain.tempMax.toFixed(1) + "</dd>" + "<dd>"
|
+ grain.tempMin.toFixed(1) + "</dd>" + "<dd>"
|
+ grain.tempAve.toFixed(1) + "</dd>" + "<dd>"
|
+ grain.tempIn.toFixed(1) + "</dd>" + "<dd>"
|
+ grain.humidityIn.toFixed(1) + "</dd>" + "<dd>"
|
+ dateStr + "</dd>" + "</dl>";
|
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;
|
}
|