var layer;
|
var form;
|
var deviceList;// 当前仓库的所有设备列表
|
var depotId;
|
var deviceType = DeviceType.TYPE_01;// 被选中的设备类型,默认是通风窗
|
var viewTargetStatus;// 目标状态,根据设备类型和当前值调用动效
|
var domSelectDevice;// 被选中的设备dom对象
|
|
$(function () {
|
layui.use(['layer', 'form'], function () {
|
form = layui.form;
|
layer = layui.layer;
|
form.render();
|
|
// 监听仓库选择
|
form.on('select(select_depotId)', function (obj) {
|
return onDepotChange(obj);
|
});
|
|
//初始化刷新数据
|
initData();
|
});
|
|
// 添加切换动作
|
$(".js-tf-btn").click(
|
function () {
|
$(this).addClass("active").siblings(".js-tf-btn").removeClass(
|
"active");
|
});
|
|
$(".js-xg115-arrow").click(function () {
|
$(this).siblings(".xg115-btnhide").toggle();
|
$(this).toggleClass("active");
|
});
|
|
// 初始化ws
|
initWS(deptId, bizType,null, userId);
|
|
});
|
|
// socket信息返回處理
|
function socketOnMessage(pocket) {
|
window.parent.sysNotify(pocket.data);
|
if (pocket.orderResp == "MSG_SUCCESS") {
|
addLog(pocket.data);
|
//刷新信息
|
query(false, true, false);
|
} else if (pocket.orderResp == "ORDER_INPROGRESS") {
|
addLog(pocket.data);
|
} else {
|
addRedLog(pocket.data);
|
}
|
};
|
|
function initData() {
|
if (depotId) {
|
$("#depotId").val(depotId);
|
query(true, true, true);
|
form.render();
|
}
|
}
|
|
/**
|
* 检测仓库类型是否发生改变,如果发生改变,重新切换页面
|
*/
|
function onDepotChange(obj) {
|
var depotType = obj.elem[obj.elem.selectedIndex].getAttribute('type');
|
if (depotType == DEPOT_TYPE) {
|
updateDepotInfo();
|
query(true, true, true);
|
} else {
|
changeView(depotType);
|
}
|
}
|
|
function changeView(depotType) {
|
//类型改变,自动切换页面
|
if (socket) {
|
socket.close();
|
}
|
depotId = $("#depotId").val();
|
window.location.href = "./gateway?depotId=" + depotId + "&depotType=" + depotType;
|
return true;
|
}
|
|
/** 视频查看直接跳转到视频概览页面**/
|
function showVideo() {
|
window.parent.openTab("./basic/security/aerial-video?t=1", "视频鸟瞰", "aerial-video");
|
};
|
|
function closeAll() {
|
layer.msg("终端不支持当前功能……");
|
};
|
|
// 状态查询
|
function queryStatus() {
|
depotId = $("#depotId").val();
|
if (!depotId) {
|
layer.msg("请先选择仓库!");
|
return;
|
}
|
//把当前页面的设备传递到后台
|
var data = {
|
deptId: deptId,
|
depotId: depotId,
|
deviceList: []
|
};
|
var tips = $(".device");
|
$.each(tips, function (index, item) {
|
data.deviceList.push({
|
id: item.id,
|
depotId: item.getAttribute("depotid"),
|
passCode: item.getAttribute("passcode"),
|
name: item.getAttribute("name"),
|
serId: item.getAttribute("serid"),
|
link: item.getAttribute("link"),
|
type: item.getAttribute("type"),
|
companyId: companyId
|
});
|
});
|
|
$.ajax({
|
type: "POST",
|
url: "../../basic/temp/query-status",
|
dataType: "json",
|
contentType: "application/json;charset=UTF-8",
|
data: JSON.stringify(data),
|
success: function (result) {
|
if ("ORDER_SUCCESS" != result.code) {
|
layer.msg(result.msg);
|
}
|
},
|
error: function (result) {
|
layer.msg("获取数据失败,请重新尝试!");
|
}
|
});
|
};
|
|
/**
|
* @param isNew 是否新库跟新仓库信息并执行状态刷新
|
* @param isCut 是否切换页面
|
* @param isQueryStatus 是否更新状态
|
*/
|
function query(isNew, isCut, isQueryStatus) {
|
depotId = $("#depotId").val();
|
if (!depotId) {
|
layer.msg("请先选择仓库!");
|
return;
|
}
|
|
$.ajax({
|
type: "POST",
|
url: "../../basic/temp/list-device-manual",
|
dataType: "json",
|
contentType: "application/json;charset=UTF-8",
|
data: JSON.stringify({
|
depotId: depotId,
|
depotType: DEPOT_TYPE
|
}),
|
success: function (result) {
|
if (result.code != "0000") {
|
layer.msg(result.msg);
|
return;
|
}
|
deviceList = result.data;
|
|
if (isNew) {
|
updateGrainInfo();
|
}
|
|
if(isCut){
|
toCutExe(viewAB,true);
|
}
|
|
if (isQueryStatus) {
|
queryStatus();
|
}
|
},
|
error: function (result) {
|
layer.msg("获取数据失败,请重新尝试!");
|
}
|
});
|
};
|
|
// 获取当前仓库的最新粮情数据信息
|
function updateGrainInfo() {
|
$.ajax({
|
type: "POST",
|
url: "../../basic/common/grain-data",
|
dataType: "json",
|
contentType: "application/json;charset=UTF-8",
|
data: JSON.stringify({
|
depotId: depotId
|
}),
|
success: function (result) {
|
if (result.code != "0000") {
|
addRedLog(result.msg)
|
return;
|
}
|
var grainData = result.data;
|
// 更新信息
|
$("#tempIn").text(grainData.tempIn);
|
$("#humidityIn").text(grainData.humidityIn);
|
$("#tempAve").text((grainData.tempAve).toFixed(1));
|
$("#tempOut").text(grainData.tempOut);
|
$("#updateTime").text(grainData.receiveDate);
|
},
|
error: function (result) {
|
layer.msg("当前仓库的粮情数据信息获取失败!");
|
}
|
});
|
};
|
|
/**
|
* 切换效果
|
* @param target 正反面
|
* @param isCutImg 是否执行切图
|
*/
|
function toCutExe(target, isCutImg) {
|
// 获取当前仓库效果图
|
viewAB = target;
|
if (isCutImg) {
|
cutImg(depotId, viewAB);
|
}
|
// 根据设备列表添加原型信息
|
addDevice(deviceList, viewAB);
|
};
|
|
// 手动执行,同时更新状态
|
function toCut(target) {
|
toCutExe(target, true);
|
};
|
|
// 添加操作日志
|
function addLog(htmlStr) {
|
var info = $("#areationInfo").html();
|
$("#areationInfo").html(htmlStr + "</br>" + info);
|
};
|
|
function addRedLog(htmlStr) {
|
var info = $("#areationInfo").html();
|
$("#areationInfo").html(
|
"<span class='font-red'>" + htmlStr + "</span></br>" + info);
|
};
|
|
/**
|
* 弹出操作框
|
*/
|
function showControl(id) {
|
domSelectDevice = $("#" + id);
|
var curDepotId = domSelectDevice.attr("depotid");
|
// 如果点击的设备不是选择仓库的,不执行
|
if (curDepotId != depotId) {
|
addRedLog("当前所选设备:" + domSelectDevice.attr("name") + "【非所选仓库】");
|
return;
|
} else {
|
addLog("当前所选设备:" + domSelectDevice.attr("name"));
|
}
|
|
// 更新所选择的设备类型
|
deviceType = domSelectDevice.attr("type");
|
if (1 == deviceType)
|
deviceType = "01";
|
if (2 == deviceType)
|
deviceType = "02";
|
if (3 == deviceType)
|
deviceType = "03";
|
if (4 == deviceType)
|
deviceType = "04";
|
|
//气调只操作 - 加压风机、环流风机、阀门
|
if (DeviceType.TYPE_01 == deviceType || DeviceType.TYPE_02 == deviceType || DeviceType.TYPE_0B == deviceType) {
|
layer.alert("通风设备请到通风管理执行……");
|
return false;
|
}
|
|
if(DeviceType.TYPE_03 == deviceType){
|
layer.alert("离心风机不支持远程操作,请到现场执行控制……");
|
return false;
|
}
|
|
// 根据设备类型弹出不一样的弹出框
|
if (DeviceType.TYPE_04 == deviceType) {// 环流风机
|
layer.open({
|
type : 1,
|
title : '设备操作-' + domSelectDevice.attr("name"),
|
area : [ '450px', '200px' ],
|
shade : 0,
|
content : $('#control-HL2'),
|
btn : 0,
|
closeBtn : 2
|
});
|
} else {
|
layer.open({
|
type : 1,
|
title : '空调控制-' + domSelectDevice.attr("name"),
|
area: ['420px', '280px'],
|
shade : 0,
|
content : $('#tempControl'),
|
btn: ['确定执行', '取消操作'],
|
yes: function () {
|
toExecute();
|
layer.closeAll();
|
layer.msg("开始执行……");
|
},
|
btn2: function () {
|
layer.closeAll();
|
},
|
closeBtn: 0
|
});
|
}
|
};
|
function toExecute(targetStatus) {
|
if (deviceType == "04"){
|
toExecute04(targetStatus)
|
}
|
if (deviceType == "05"){
|
toExecute05()
|
}
|
};
|
|
// 操作空调
|
function toExecute05() {
|
var targetStatus = $('input[name="targetStatus"]:checked').val();
|
var targetTemp = $("#targetTemp").val();
|
var targetModel = $('input[name="targetModel"]:checked').val();
|
|
if (!targetTemp)
|
targetTemp = 16;
|
if (targetTemp < 16)
|
targetTemp = 16;
|
if (targetTemp > 24)
|
targetTemp = 24;
|
|
if ("on" == targetStatus) {
|
targetStatus = "OPEN";
|
} else {
|
targetStatus = "CLOSE";
|
}
|
var exeDevice = null;
|
$.each(deviceList, function (index, item) {
|
if (item.id == domSelectDevice.attr("id")) {
|
exeDevice = item;
|
return true;
|
}
|
});
|
|
var data = {
|
companyId: companyId,
|
deptId: deptId,
|
depotId: depotId,
|
targetStatus: targetStatus,
|
targetTemp: targetTemp,
|
targetModel: targetModel,
|
deviceList: [exeDevice]
|
};
|
$.ajax({
|
type: "POST",
|
url: "../../basic/temp/control",
|
data: JSON.stringify(data),
|
dataType: "json",
|
contentType: "application/json;charset=UTF-8",
|
success: function (result) {
|
if ("ORDER_SUCCESS" == result.code) {
|
layer.msg("温控命令发送成功,请请等待执行结果……");
|
} else {
|
layer.msg("执行失败,信息:" + result.msg);
|
}
|
},
|
error: function () {
|
layer.msg("温控执行失败,后台出现错误!");
|
}
|
});
|
};
|
|
// 根据操作目标状态和选择的设备进行执行-目标状态
|
function toExecute04(targetStatus) {
|
var batchTag = false;
|
if ("W_OPEN_ALL" == targetStatus) {
|
batchTag = true;
|
targetStatus = DeviceStatus.OPEN;
|
}
|
if ("W_CLOSE_ALL" == targetStatus) {
|
batchTag = true;
|
targetStatus = DeviceStatus.CLOSE;
|
}
|
|
// 根据设备类型进行调整,针对风机类
|
if (targetStatus == DeviceStatus.OPEN) {
|
if (deviceType == DeviceType.TYPE_02)
|
targetStatus = DeviceStatus.W_OPEN;
|
if (deviceType == DeviceType.TYPE_0C)
|
targetStatus = DeviceStatus.W_OPEN;
|
}
|
|
if (targetStatus == DeviceStatus.CLOSE) {
|
if (deviceType == DeviceType.TYPE_02)
|
targetStatus = DeviceStatus.W_CLOSE;
|
if (deviceType == DeviceType.TYPE_0C)
|
targetStatus = DeviceStatus.W_CLOSE;
|
}
|
|
viewTargetStatus = targetStatus;
|
|
var data = {
|
deptId: deptId,
|
depotId: depotId,
|
deviceList: []
|
};
|
|
// 批量设备操作,只处理相同的设备类型
|
if (batchTag) {
|
// 获取设备信息
|
var tips = $(".device");
|
$.each(tips,
|
function (index, item) {
|
if (deviceType == item.getAttribute("type")
|
&& depotId == item.getAttribute("depotid")) {
|
|
// 风机类设备支持批量时候,跳过风机开的设备
|
if (DeviceStatus.F_OPEN == item.getAttribute("status")
|
|| DeviceStatus.F_OPEN_F == item.getAttribute("status")) {
|
|
addRedLog("设备:" + item.getAttribute("name")
|
+ "风机运行中,风口不执行关闭");
|
return true;
|
}
|
data.deviceList.push({
|
id: item.id,
|
depotId: item.getAttribute("depotid"),
|
passCode: item.getAttribute("passcode"),
|
name: item.getAttribute("name"),
|
serId: item.getAttribute("serid"),
|
link: item.getAttribute("link"),
|
type: item.getAttribute("type"),
|
targetStatus: targetStatus,
|
companyId: companyId
|
});
|
}
|
});
|
} else {
|
data.deviceList.push({
|
id: domSelectDevice.id,
|
depotId: domSelectDevice.attr("depotid"),
|
passCode: domSelectDevice.attr("passcode"),
|
name: domSelectDevice.attr("name"),
|
serId: domSelectDevice.attr("serid"),
|
link: domSelectDevice.attr("link"),
|
type: domSelectDevice.attr("type"),
|
targetStatus: targetStatus
|
});
|
}
|
|
// 开始调用后台执行
|
layer.load(1);
|
|
$.ajax({
|
type: 'POST',
|
url: "../../basic/verb/control-device",
|
dataType: 'JSON',
|
contentType: "application/json;charset=UTF-8",
|
data: JSON.stringify(data),
|
success: function (result) {
|
layer.closeAll();
|
if (result.code != "ORDER_SUCCESS") {
|
layer.msg("执行失败:" + result.msg);
|
} else {
|
layer.msg("操作指令发送成功,待终端响应……");
|
}
|
},
|
error: function (result) {
|
layer.closeAll();
|
layer.msg("操作发生异常,暂时无法解决!!");
|
}
|
});
|
};
|
|
/**
|
* 更新仓库信息
|
*/
|
function updateDepotInfo() {
|
$.each(listDepot, function (index, data) {
|
if (data.id == depotId) {
|
$("#depotTypeName").html(data.depotTypeName);
|
$("#storeDate").html(dateFtt2("yyyy-MM-dd", data.storeDate));
|
$("#storageReal").html(data.storageReal);
|
$("#foodVarietyName").html(data.foodVarietyName);
|
$("#foodYear").html(data.foodYear);
|
$("#foodLocation").html(data.foodLocation);
|
$("#perWet").html(data.perWet);
|
$("#perImpurity").html(data.perImpurity);
|
$("#storeKeeperName").html(data.storeKeeperName);
|
return;
|
}
|
});
|
};
|