//当前节点 入库质检
var layer;
var form;
var table;
var page = 1;
var limit = 10;
var curCheckData = null;// 当前编辑数据
var curCheckItems = null;// 当前数据的检查项信息
$(function () {
layui.use(['layer', 'laydate', 'form', 'table'], function () {
layer = layui.layer;
form = layui.form;
table = layui.table;
var laydate = layui.laydate;
laydate.render({
elem: '#start',
theme: '#7b8e9f',
value: startTime
});
laydate.render({
elem: '#end',
theme: '#7b8e9f',
value: endTime
});
laydate.render({
elem: '#foodYear',
theme: '#7b8e9f',
type: 'year',
});
// 初始化表单数据
renderTable();
// 监听行工具事件
table.on('tool(tableData)', function (obj) {
if (obj.event === 'edit') {
//更新仓库下拉列表
updateSelect(obj);
//展示数据
showDetail(obj);
}
});
//监听仓库选择
layui.form.on('select(depotId)', function (data) {
updateFoodVariety(data.value);
});
//监听化验结果单填写数据,并给出提示结果
table.on('edit(tableCheckItem)', function (obj) {
getResult(obj);
});
});
//显示入库流程
showProgress();
// 初始化WebSocket
initInoutWS(deptId, bizType, progress, userId);
});
//控制流程环节显示
function showProgress() {
if (!inoutProgress) {
return;
}
if (inoutProgress.indexOf("REGISTER") == -1) {
$("#progress-register").css("display", "none");
}
if (inoutProgress.indexOf("CHECK") == -1) {
$("#progress-check").css("display", "none");
}
if (inoutProgress.indexOf("WEIGHT_FULL") == -1) {
$("#progress-fullWeight").css("display", "none");
}
if (inoutProgress.indexOf("HANDLE") == -1) {
$("#progress-hand").css("display", "none");
}
if (inoutProgress.indexOf("WEIGHT_EMPTY") == -1) {
$("#progress-emptyWeight").css("display", "none");
}
if (inoutProgress.indexOf("CARD_BACK") == -1) {
$("#progress-cardBack").css("display", "none");
}
}
//根据填写化验数据,给出提醒是否合格
function getResult(obj) {
var data = obj.data;
//填写的数据值
var setValue = data.value;
//标准值 >= 合格
var lower = data.lowerLimit;
if (0 != lower) {
if (setValue > lower) {
data.remarks = "合格";
} else {
data.remarks = "不合格";
}
}
//标准值 <= 合格
var upper = data.upperLimit;
if (0 != upper) {
if (setValue <= upper) {
data.remarks = "合格";
} else {
data.remarks = "不合格";
}
}
obj.update(data);
//根据化验结果提醒是否合格
updateCheckResultTip();
}
//动态更换仓库下拉列表
function updateSelect(obj) {
$('#depotId option').remove();
var dat = obj.data;
if (dat.progress === "RECORD") {
for (var i = 0; i < depot.length; i++) {
$('#depotId').append('');
}
} else {
for (var j = 0; j < listInDepot.length; j++) {
$('#depotId').append('');
}
}
//重新渲染
form.render('select');
}
//根据选择仓库显示粮食品种
function updateFoodVariety(depotId) {
var selectDepot;
$.each(depot, function (index, data) {
if (data.id === depotId) {
selectDepot = data;
return false;
}
});
if (selectDepot) {
var nowYear = dateFormatStr();
form.val("form-detail", {
foodVariety: selectDepot.foodVariety,
foodLocation: selectDepot.foodLocation,
foodYear: nowYear
});
form.render();
//仓库变化,检验重新获取
flushCheckItem(selectDepot.foodVariety);
}
}
function dateFormatStr() {
var d = new Date();
return dateFtt("yyyy", d);
}
// socket信息返回處理
function socketOnMessage(packet) {
layer.alert(packet.data);
window.parent.sysNotify(packet.data);
};
// 查询
function flushData() {
var index = layer.load();
var param = form.val("form-param");
table.reload('tableData', {
url: "../../basic/inout/page-check-data",
where: param,
});
$("thead tr").css({
"border-bottom": "2px solid #53adce",
"background": "#eff4f6"
});
layer.close(index);
};
// 导出数据-- 跳转新页面处理
function exportData() {
var url = "com.ld.igds.inout.ReportInoutCheck.d";
window.parent.openTab(url, "化验结果导出", "checkDataExport");
};
// 根据模式启动开始扦样
function checkExe(type) {
checkDto.type = type;
var param = JSON.stringify(checkDto);
var index = layer.load();
$.ajax({
type: "POST",
url: "../../api/check/check-exe",
dataType: "json",
contentType: "application/json;charset=UTF-8",
data: param,
success: function (result) {
layer.close(index);
if (result.code != "0000") {
layer.alert(result.msg);
} else {
layer.msg("操作命令发送成功!");
}
},
error: function () {
layer.close(index);
layer.alert("后台异常,操作命令发送失败!");
}
});
};
// 关闭扦样机器
function checkStop() {
var param = JSON.stringify(checkDto);
var index = layer.load();
$.ajax({
type: "POST",
url: "../../api/check/stop",
dataType: "json",
contentType: "application/json;charset=UTF-8",
data: param,
success: function (result) {
layer.close(index);
if (result.code != "0000") {
layer.alert(result.msg);
} else {
layer.msg("操作命令发送成功!");
}
},
error: function () {
layer.close(index);
layer.alert("后台异常,操作命令发送失败!");
}
});
};
// 扦样机复位
function checkReset() {
var param = JSON.stringify(checkDto);
var index = layer.load();
$.ajax({
type: "POST",
url: "../../api/check/reset",
dataType: "json",
contentType: "application/json;charset=UTF-8",
data: param,
success: function (result) {
layer.close(index);
if (result.code != "0000") {
layer.alert(result.msg);
} else {
layer.msg("操作命令发送成功!");
}
},
error: function () {
layer.close(index);
layer.alert("后台异常,操作命令发送失败!");
}
});
};
function showDetail(obj) {
curCheckData = obj.data;
curCheckData.foodYear = dateFormatStr();
curCheckData.checkUser = checkUser;
// 赋值
form.val("form-detail", curCheckData);
form.render();
layer.open({
type: 1,
title: "化验单明细",
area: ['1400px', '600px'],
shade: 0,
content: $('#checkDetail'),
btnAlign: 'c',
btn: ['保存提交', '关闭取消'],
yes: function () {
// 更新到页面
var data = form.val("form-detail");
obj.update(data);
// 合并更新當前编辑数据
Object.assign(curCheckData, data);
submit();
}, btn2: function () {
layer.closeAll();
},
closeBtn: 0
});
// 获取化验项信息
flushCheckItem(null);
};
/**
* 获取化验结果,结果查询后直接覆盖现有的结果信息
*/
function getCheckResult() {
// 调整参数
checkDto.checkId = curCheckData.checkId;
checkDto.recordId = curCheckData.id;
checkDto.progress = curCheckData.progress;
var param = JSON.stringify(checkDto);
var index = layer.load();
$.ajax({
type: "POST",
url: "../../api/check/get-check-result",
dataType: "json",
contentType: "application/json;charset=UTF-8",
data: param,
success: function (result) {
layer.close(index);
if (result.code != "0000") {
layer.msg(result.msg);
} else {
curCheckItems = result.data;
renderTableCheckItem();
}
},
error: function () {
layer.close(index);
layer.msg("后台异常,请重试或者联系管理员!!");
}
});
};
/**
* 刷新化验结果项
*/
function flushCheckItem(foodVariety) {
curCheckItems = null;
$("#check-result-tip").text("");
if (foodVariety) curCheckData.foodVariety = foodVariety;
var index = layer.load();
$.ajax({
type: "POST",
url: "../../basic/inout/get-check-item",
dataType: "json",
contentType: "application/json;charset=UTF-8",
data: JSON.stringify(curCheckData),
success: function (result) {
if (result.code != "0000") {
layer.msg(result.msg);
} else {
curCheckItems = result.data;
// 根据化验结果提醒是否合格
updateCheckResultTip();
// 页面渲染检测项
renderTableCheckItem();
layer.close(index);
}
},
error: function () {
layer.close(index);
layer.msg("后台异常,请重试或者联系管理员!!");
}
});
};
// 更新化验结果提醒,只做提醒,不做自动判断
function updateCheckResultTip() {
if (!curCheckItems || curCheckItems.length == 0) {
return;
}
if (curCheckData.checkStatus != "NONE") {
return;
}
var msg;
$.each(curCheckItems, function (index, data) {
if (!data.remarks) {
return true;
}
if (data.remarks == "不合格") {
msg = "不合格";
return false;
}
if (data.remarks == "合格") {
msg = "合格";
}
});
if (msg) {
$("#check-result-tip").text("系统判断:" + msg);
} else {
$("#check-result-tip").text("系统判断:");
}
};
/**
* 渲染表格
*/
function renderTableCheckItem() {
// 清空数据
$("#tableCheckItem").empty();
table.render({
elem: '#tableCheckItem',
data: curCheckItems,
page: false,
// skin: 'line',
even: true,
cols: [[{
field: 'standardName',
title: '化验项',
align: 'center',
width: '20%'
}, {
field: 'value',
title: '化验值',
align: 'center',
width: '20%',
edit: 'text'
}, {
field: 'upperLimit',
title: '标准上限',
align: 'center',
width: '16%'
}, {
field: 'lowerLimit',
title: '标准下限',
align: 'center',
width: '16%'
}, {
field: 'unit',
title: '单位',
align: 'center',
width: '10%'
}, {
field: 'remarks',
title: '说明',
align: 'center'
}]]
});
$("thead tr").css({
"border-bottom": "2px solid #53adce",
"background": "#eff4f6"
});
};
// 当前完成
function submit() {
if (curCheckData.checkStatus == "NONE" || curCheckData.checkStatus == "NONE2") {
layer.alert("请填写化验结果!!!");
return;
}
if (!curCheckData.depotId) {
layer.alert("请填写仓库信息!!");
return;
}
if (!curCheckData.foodVariety) {
layer.alert("请填写粮食品种信息!!");
return;
}
if (!curCheckData.foodYear) {
layer.alert("请填写粮食年份信息!!");
return;
}
curCheckData.checkItems = curCheckItems;
var index = layer.load();
$.ajax({
type: "POST",
url: "../../basic/inout/update-check",
dataType: "json",
contentType: "application/json;charset=UTF-8",
data: JSON.stringify(curCheckData),
success: function (result) {
if (result.code != "0000") {
layer.close(index);
//layer.alert(result.msg);
notify(result.msg, result.data);
} else {
layer.closeAll();
curCheckData = null;
//layer.alert("数据提交成功!");
notify("数据提交成功", result.data);
flushData();
}
},
error: function () {
layer.close(index);
layer.alert("提交失败,请重新尝试!");
}
});
};
// 渲染表单数据
function renderTable() {
var param = form.val("form-param");
// 清空数据
$("#tableData").empty();
table.render({
elem: '#tableData',
url: '../../basic/inout/page-check-data',
page: true,
limit: limit,
even: true,
method: 'POST',
contentType: "application/json;charset=UTF-8",
cols: [[{
field: 'checkId',
title: '单据号',
width: '13%',
style: 'color: #f67d06;font-weight: bold'
}, {
field: 'plateNum',
title: '车船号',
width: '11%',
style: 'font-weight: bold'
}, {
field: 'customerName',
title: '往来单位',
}, {
field: 'foodVariety',
title: '品种',
width: '10%',
templet: function (item) {
var result = item.foodVariety;
$.each(listFoodVariety, function (index, data) {
if (item.foodVariety == data.code) {
result = data.name;
return true;
}
});
return result == null ? "" : result;
}
}, {
field: 'depotId',
title: '装卸仓库',
width: '10%',
templet: function (item) {
var result = item.depotId;
$.each(listDepot, function (index, data) {
if (item.depotId == data.id) {
result = data.name;
return true;
}
});
return result == null ? "" : result;
}
}, {
field: 'checkStatus',
title: '是否合格',
width: '10%',
style: 'font-weight: bold',
templet: function (item) {
if (item.checkStatus == 'NONE') {
return "未化验";
}
if (item.checkStatus == 'PASS') {
return "合格";
}
if (item.checkStatus == 'UNPASS') {
return "不合格";
}
return item.checkStatus == null ? "" : item.checkStatus;
}
}, {
field: 'registerTime',
title: '登记时间',
width: '14%'
}, {
field: '',
title: '操作',
width: '9%',
toolbar: "#barControl"
}]],
where: param,
parseData: function (res) {
if ("0000" == res.code) {
return {
"code": "0",
"msg": res.msg,
"count": res.data.total,
"data": res.data.records
}
} else {
return {
"code": "1",
"msg": res.msg
}
}
}
});
$("thead tr").css({
"border-bottom": "2px solid #53adce",
"background": "#eff4f6"
});
};
// 表单清空
function resetForm() {
$("#form-param")[0].reset();
form.render();
};
/**
* 弹出提醒框
* @param msg 提醒信息
* @param data 数据信息,可能为空
*/
function notify(msg, data) {
if (data) {
//赋值
$("#resultMsg").text(msg);
$("#resultUserName").text(data.userName);
$("#resultPlateNum").text(data.plateNum);
if ("IN" == data.type) {
$("#resultType").text("入库-" + INOUT_PROGRESS_MSG(data.progress));
} else {
$("#resultType").text("出库-" + INOUT_PROGRESS_MSG(data.progress));
}
$("#resultIntelCard").text(data.intelCard);
layer.open({
type: 1,
offset: ['150px', '200px'],
area: '450px;',
shade: 0.8,
id: 'dialog_notify_info',
btn: ['确定'],
content: $('#dialog-from-notify'),
yes: function (index) {
layer.closeAll();
}
});
} else {
layer.alert(msg, {offset: ['300px', '300px']});
}
};
// ---------------------------往来人员操作-开始 -------------------//
// 弹出往来单位下拉框
function showCustomer() {
var index = layer.load();
// 渲染往来单位列表
table.render({
elem: '#tableCustomer',
url: '../../basic/inout/list-in-customer',
page: false,
// skin : "nob",
// size : 'sm',
toolbar: '#toolbarCustomer',
even: true,
method: 'POST',
contentType: "application/json;charset=UTF-8",
cols: [[{
field: 'id',
title: '编码'
}, {
field: 'name',
title: '名称',
width: '75%'
}]],
// where : param,
parseData: function (res) {
if ("0000" == res.code) {
return {
"code": "0",
"msg": res.msg,
"data": res.data
}
} else {
return {
"code": "1",
"msg": res.msg
}
}
},
done: function (res) {
layer.close(index);
}
});
//双击显示选中数据
table.on('rowDouble(tableCustomer)', function (obj) {
var data = obj.data;
// 赋值
form.val("form-detail", {
customerId: data.id,
customerName: data.name,
noticeId: data.noticeId
});
// 关闭
layer.close(index2);
});
// 弹出对话框
var index2 = layer.open({
type: 1,
title: "选择往来单位",
area: ['600px', '600px'],
shade: 0,
content: $('#listCustomer'),
btn: 0,
btn: ['取消'],
yes: function () {
// 关闭
layer.close(index2);
},
closeBtn: 0
});
};
// 刷新往来单位数据
function flushCustomer() {
var key = $("#key").val();
table.reload('tableCustomer', {
url: "../../basic/inout/list-in-customer",
where: {
key: key
},
done: function (res) {
if (key) {
$("#key").val(key);
}
}
});
};
// ---------------------------往来人员操作 -结束 -------------------//
// ---------------------------粮食产地 -开始 -------------------//
// 弹出粮食产地下拉框
function showFoodLocation() {
var index = layer.load();
// 渲染往来单位列表
table.render({
elem: '#tableFoodLoaction',
url: '../../basic/common/page-food-location',
page: false,
toolbar: '#toolbarFoodLocaton',
even: true,
method: 'POST',
contentType: "application/json;charset=UTF-8",
cols: [[{
field: 'code',
title: '编码',
}, {
field: 'simple',
title: '简拼',
}, {
field: 'name',
title: '名称',
width: '60%'
}]],
where: {
"page": 1,
"limit": 100
},
parseData: function (res) {
if ("0000" == res.code) {
return {
"code": "0",
"msg": res.msg,
"count": res.data.total,
"data": res.data.records
}
} else {
return {
"code": "1",
"msg": res.msg
}
}
},
done: function (res) {
layer.close(index);
}
});
//双击显示选中数据
table.on('rowDouble(tableFoodLoaction)', function (obj) {
var data = obj.data;
// 赋值
form.val("form-detail", {
foodLocation: data.name,
});
// 关闭
layer.close(index2);
});
// 弹出对话框
var index2 = layer.open({
type: 1,
title: "选择粮产地",
area: ['600px', '600px'],
shade: 0,
content: $('#listFoodLocation'),
btn: 0,
btn: ['取消'],
yes: function () {
// 关闭
layer.close(index2);
},
closeBtn: 0
});
};
// 刷新
function flushFoodLocation() {
var key = $("#key2").val();
table.reload('tableFoodLoaction', {
url: "../../basic/common/page-food-location",
where: {
key: key
},
done: function (res) {
if (key) {
$("#key2").val(key);
}
}
});
};
// ---------------------------粮食产地 -结束 -------------------//