//当前节点 入库质检 var layer; var form; var table; var page = 1; var limit = 15; var recordData = null; var selectData = null; //单选的信息 var snapData;//系统抓拍对象信息 var timerWeight; var img1, img2, img3;// 页面中的图片上传名称 $(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' }); // 监听行工具事件 table.on('tool(tableData)', function (obj) { if (obj.event === 'edit') { //展示弹窗 afreshGetData(obj); } }); // 监听仓库选择,选择后自动调用仓库的粮品种和产地信息 form.on('select(select_depotId)', function (obj) { updateFoodVarietyByDepot(obj.value); }); // 初始化表单数据 renderTable(); }); //显示称重弹窗流程 showProgress(); // 监听比例值填写 $(".per").blur(function () { deAutoByPer(); }); // 监听比例值填写 $(".weight").blur(function () { deAutoByWeight(); }); //初始化WebSocket // initWS(deptId, bizType, progress, userId); }); window.onload = function () { //自动连接地磅信息,2.5秒获取一次地磅重量信息 clearInterval(timerWeight); timerWeight = setInterval(function () { flushWeight(); }, 2500); // 加载视频 initVideo(lprDto, snapDto1, snapDto2); //设置地磅 $("#scaleName").val(weightDto.sort); //监听地磅选择 $("#scaleName").change(function () { layer.confirm('调整地磅需重新加载页面,确定调整?', { btn: ['确定', '取消'] }, function () { updateWeight(); }); }); }; //根据条件查询数据 function flushData() { var index = layer.load(); var param = form.val("form-param"); table.reload('tableData', { url: "/basic/inout/page-inout-data", where: param }); $("thead tr").css({ "border-bottom": "2px solid #53adce", "background": "#eff4f6" }); layer.close(index); } // 渲染表单数据 function renderTable() { var param = form.val("form-param"); // 清空数据 $("#tableData").empty(); table.render({ elem: '#tableData', url: '/basic/inout/page-inout-data', page: true, limit: limit, even: true, method: 'POST', contentType: "application/json;charset=UTF-8", cols: [[{ type: 'numbers', title: '序号' }, { field: 'id', title: '单据号', width: '13%', style: 'color: #f67d06;font-weight: bold' }, { field: 'plateNum', title: '车牌', width: '11%', style: 'font-weight: bold' }, { field: 'type', title: '类型', templet: function (item) { var result = item.type; return result == "IN" ? "入库" : "出库"; } }, { field: 'customerName', title: '往来单位' }, { 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: '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: 'progress', title: '流程进度', width: '10%', style: 'font-weight: bold', templet: function (item) { return INOUT_PROGRESS_MSG(item.progress); } }, { 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 afreshGetData(obj) { var index = layer.load(); recordData = null; var data = obj.data; var param = { userId: data.userId, plateNum: data.plateNum, id: data.id }; $.ajax({ type: "POST", url: "/basic/inout/inout-query", dataType: "json", contentType: "application/json;charset=UTF-8", data: JSON.stringify(param), success: function (result) { if (result.code != "0000") { layer.alert("请刷新页面后,重新操作!!"); } else { recordData = result.data; showWindows(recordData.progress); } layer.close(index); }, error: function () { layer.close(index); layer.alert("请刷新页面后,重新操作!!"); } }); } //显示流程操作弹窗 function quickRegister() { //登记按钮放开 $("#btn_register").css("display", "block"); $("#text-info").removeClass("text-info"); //称重操作弹窗 var pro = '登记'; updateEditAndProgress(); flushPage(); layer.open({ type: 1, title: pro, area: ['1283px', '815px'], cancel: function (index, layero) { $("#weightDetail").css("display", "none"); }, shade: 0, scrollbar: 0, content: $('#weightDetail'), offset: ['16px', '16px'] }); } //显示流程操作弹窗 function showWindows(progress) { //登记按钮放开 $("#btn_register").css("display", "none"); $("#text-info").addClass("text-info"); //称重操作弹窗 var pro = '空车称重'; if (progress == 'WEIGHT_FULL') { pro = '满车称重'; } updateEditAndProgress(); flushPage(); layer.open({ type: 1, title: "称重" + pro + " - 单号:" + recordData.id, area: ['1283px', '815px'], cancel: function (index, layero) { $("#weightDetail").css("display", "none"); }, shade: 0, scrollbar: 0, content: $('#weightDetail'), offset: ['16px', '16px'] }); } //称重弹窗中流程环节显示 function showProgress() { if (!inoutProgress) { return; } if (inoutProgress.indexOf("REGISTER") == -1) { $("#progress-register").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 updateEditAndProgress() { if (recordData) { if (InoutProgress.WEIGHT_EMPTY == recordData.progress) { $("#emptyWeight").removeClass("rkbk-search-input"); $("#emptyWeight").attr("disabled", false); $("#progress-hand").removeClass("active"); $("#progress-fullWeight").removeClass("active"); $("#fullWeight").addClass("rkbk-search-input"); $("#fullWeight").attr("disabled", true); } if (InoutProgress.WEIGHT_FULL == recordData.progress) { $("#fullWeight").removeClass("rkbk-search-input"); $("#fullWeight").attr("disabled", false); $("#progress-hand").addClass("active"); $("#progress-fullWeight").addClass("active"); $("#emptyWeight").addClass("rkbk-search-input"); $("#emptyWeight").attr("disabled", true); } } else { $("#fullWeight").addClass("rkbk-search-input"); $("#fullWeight").attr("disabled", true); $("#emptyWeight").addClass("rkbk-search-input"); $("#emptyWeight").attr("disabled", true); $("#progress-hand").removeClass("active"); $("#progress-fullWeight").removeClass("active"); } } /*-----------------------弹窗显示渲染-结束------------------------------*/ /*-----------------------称重操作-开始------------------------------*/ //自动连接地磅信息,2.5秒获取一次地磅重量信息 function timerGetWeight() { clearInterval(timerWeight); timerWeight = setInterval(function () { flushWeight(); }, 2500); } //发送请求获取称重数据 function flushWeight() { var ip = "127.0.0.1"; if (weightDto.ip) { ip = weightDto.ip; } var port = "9111"; if (weightDto.port) { port = weightDto.port; } var sn = "WEIGHT"; if (weightDto.sn) { sn = weightDto.sn; } var url = "http://" + ip + ":" + port + "/" + sn; $.ajax({ type: "GET", async: true, timeout: 2000, url: url, data: {}, dataType: "json", success: function (json) { var data = json.content; if (!data) data = 0.0; weightDto.weight = data; $("#weightValue").text(data); $("#img_scale_statule").attr("src", "/img/web/inout/icon-gree.png"); }, error: function () { weightDto.weight = 0.0; $("#weightValue").text("0.0"); $("#img_scale_statule").attr("src", "/img/web/inout/icon-red.png"); } }); } //点击称重 function weight() { // 没有业务数据不可执行 if (!recordData) { layer.alert("没有查询到业务数据,执行被拒绝!!"); return; } // 如果是空车称重 if (InoutProgress.WEIGHT_EMPTY == recordData.progress) { form.val("form-weight", { emptyWeight: weightDto.weight }); } // 如果是满车称重 if (InoutProgress.WEIGHT_FULL == recordData.progress) { form.val("form-weight", { fullWeight: weightDto.weight }); } form.render(); snapData == null; //点击称重时候自动抓拍数据 layer.msg("系统自动抓拍保留记录……"); snapData = { companyId: companyId, deptId: deptId, bizTag: recordData.progress, bizType: bizType, plateNum: recordData.plateNum + "-" + recordData.carNum, id1: (null != lprDto) ? lprDto.id : null, id2: (null != snapDto1) ? snapDto1.id : null, id3: (null != snapDto2) ? snapDto2.id : null }; console.log(snapData); //当前AJAX服务为同步服务,返回数据包装照片信息 var index = layer.load(); $.ajax({ sync: false, type: "POST", url: "../../basic/inout/snap-img", dataType: "json", contentType: "application/json;charset=UTF-8", data: JSON.stringify(snapData), success: function (result) { layer.close(index); if (result.code != "0000") { layer.alert(result.msg); } else { snapData = result.data; } }, error: function () { layer.close(index); layer.msg("后台调用截图失败,请重新尝试!!"); } }); //二次称重后,自动调用下自动计算 if (InoutProgress.WEIGHT_EMPTY == recordData.progress) { deAutoByPer(); } flushBtn("btn-weight"); } // 自动计算,注意:出库水分是 +,入库水分需要 - function deAutoByPer() { var curData = form.val("form-weight"); var netWeight = 0, deImpurity = 0, deWet = 0, deSum = 0, settleWeight = 0; if (curData.fullWeight == 0 || curData.emptyWeight == 0) { return; } // 计算净重 netWeight = curData.fullWeight - curData.emptyWeight; if (netWeight <= 0) { layer.msg("净重小于等于0,当前计算不正确!"); return; } // 杂质扣重 if (curData.impurity > 0) { deImpurity = (netWeight * curData.impurity / 100.00).toFixed(0); } // 水分增重 if (curData.wet > 0) { deWet = (netWeight * curData.wet / 100.00).toFixed(0); } // 总扣重 deSum = Number(deImpurity) + Number(curData.deOther) + Number(curData.deHandle); deSum = deSum.toFixed(0); // 结算净重,把水分添加近来 settleWeight = Number(netWeight) - Number(deSum) + Number(deWet); settleWeight = settleWeight.toFixed(0); form.val("form-weight", { netWeight: netWeight, deImpurity: deImpurity, deWet: deWet, deSum: deSum, settleWeight: settleWeight }); form.render(); } // 自动计算 function deAutoByWeight() { var curData = form.val("form-weight"); var netWeight = 0, impurity = 0, wet = 0, deSum = 0, settleWeight = 0; if (curData.fullWeight == 0 || curData.emptyWeight == 0) { return; } // 净重 netWeight = curData.fullWeight - curData.emptyWeight; if (netWeight <= 0) { layer.msg("净重小于等于0,当前计算不正确!"); return; } // 杂质-百分比 if (curData.deImpurity > 0) { impurity = (curData.deImpurity / netWeight * 100).toFixed(2); } // 水分 -百分比 if (curData.deWet > 0) { wet = (curData.deWet / netWeight * 100).toFixed(2); } // 总扣重= 杂质扣重 + 不完善扣重 + 气体扣重 + 值仓扣重 + 包装扣重 deSum = Number(curData.deImpurity) + Number(curData.deOther) + Number(curData.deHandle); deSum = deSum.toFixed(0); // 结算净重,把水分添加近来 settleWeight = Number(netWeight) - Number(deSum) + Number(curData.deWet); settleWeight = settleWeight.toFixed(0); form.val("form-weight", { netWeight: netWeight, impurity: impurity, wet: wet, deSum: deSum, settleWeight: settleWeight }); form.render(); } //根据当前操作的按钮ID更新其他按钮状态 function flushBtn(btnId) { if ("btn-weight" == btnId) {// 称重后可以点击完成称重 $("#btn-submit").removeClass("layui-btn-disabled"); $("#btn-submit").attr("disabled", false); } if ("btn-submit" == btnId) { $("#btn-submit").addClass("layui-btn-disabled"); $("#btn-submit").attr("disabled", true); flushData(); if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {// 出库,如果是空车称重,完成收直接刷新页面 layer.closeAll(); } else { // 完成称重后控制按钮 $("#btn-weight").addClass("layui-btn-disabled"); $("#btn-weight").attr("disabled", true); $("#btn-printBill").removeClass("layui-btn-disabled"); $("#btn-printBill").attr("disabled", false); addDisabled(); } } if ("btn-printBill" == btnId) {// 打印过磅单,说明业务完成 $("#btn-weight").removeClass("layui-btn-disabled"); $("#btn-weight").attr("disabled", false); $("#btn-submit").addClass("layui-btn-disabled"); $("#btn-submit").attr("disabled", true); $("#btn-printBill").addClass("layui-btn-disabled"); $("#btn-printBill").attr("disabled", true); layer.closeAll(); flushData(); } } //更改扣重信息框不可编辑 function addDisabled() { //杂质 $("#impurity").attr("disabled", true); $("#deImpurity").attr("disabled", true); //水分 $("#wet").attr("disabled", true); $("#deWet").attr("disabled", true); //值仓 $("#deHandle").attr("disabled", true); //其他 $("#deOther").attr("disabled", true); } //恢复扣重信息框编辑状态 function delDisabled() { //杂质 $("#impurity").attr("disabled", false); $("#deImpurity").attr("disabled", false); //水分 $("#wet").attr("disabled", false); $("#deWet").attr("disabled", false); //值仓 $("#deHandle").attr("disabled", false); //其他 $("#deOther").attr("disabled", false); } // 点击打印,系统判断是否已经执行完成,如果已经完成,直接打印,如果未完成则先执行完成 function printBill() { if (!recordData) { layer.alert("没有获取到业务数据,不支持打印!"); return; } // 从后台获取模版并打印 var data = form.val("form-weight"); // 合并更新當前编辑数据 Object.assign(recordData, data); printBillStep2(); }; // 点击打印,先执行系统默认执行完成卡回收 function printBillStep2() { var index = layer.load(); $.ajax({ type: "POST", url: "../../basic/inout-report/inout-bill-weight", dataType: "json", contentType: "application/json;charset=UTF-8", data: JSON.stringify(recordData), success: function (result) { layer.close(index); if (result.code != "0000") { layer.msg(result.msg); } else { layer.msg("开始渲染打印单……"); printWeight(result.data); // 刷新按钮 flushBtn("btn-printBill"); } }, error: function () { layer.close(index); layer.msg("获取打印模版失败,请联系管理员查看原因!!"); } }); }; //完成称重 function submitWeight() { if (null == recordData) { notify("没有数据可以提交", null); return; } var data = form.val("form-weight"); if (!data.depotId) { notify("装卸仓库必须填写", null); return; } // 校验-出库空车 if (InoutProgress.WEIGHT_EMPTY == recordData.progress) { if (data.emptyWeight <= 0.0) { notify("空车称重信息必填", null); return; } if (!data.customerName) { notify("往来单位信息必填", null); return; } } else { if (data.fullWeight <= 0.0) { notify("满车称重信息必填", null); return; } if (!data.foodVariety) { notify("粮食品种必填", null); return; } if (!data.foodLocation) { notify("粮食产地必填", null); return; } if (!data.settleWeight || data.settleWeight <= 0.0) { notify("扣重后净信息不正确,请核实计算", null); return; } } // 合并更新當前编辑数据 Object.assign(recordData, data); // 获取照片 var files = [{ fileName: snapData.fileName1 }, { fileName: snapData.fileName2 }, { fileName: snapData.fileName3 }]; recordData.files = files; var index = layer.load(); $.ajax({ type: "POST", url: "../../basic/inout/inout-next-step", dataType: "json", contentType: "application/json;charset=UTF-8", data: JSON.stringify(recordData), success: function (result) { if (result.code != "0000") { layer.alert("数据提交失败,请重试!!"); } else { clearInterval(timerWeight); layer.alert("数据提交成功!!"); // 更新按钮显示 flushBtn("btn-submit"); } layer.close(index); }, error: function () { layer.close(index); layer.alert("提交失败,请重新尝试!!"); } }); } //重新称重时,表单不清空,按钮重置 function flushPage() { weightDto.weight = 0.0; $("#weightValue").text("0.0"); $("#img_scale_statule").attr("src", "/img/web/inout/icon-red.png"); timerGetWeight(); //扣重信息框恢复为可编辑 delDisabled(); //表单数据重置 form.val("form-weight", recordData); form.render(); } //根据选择的仓库信息,更新粮食品种 function updateFoodVarietyByDepot(selectId) { var selectDepot; $.each(listDepot, function (index, data) { if (data.id === selectId) { selectDepot = data; return false; } }); if (selectDepot) { form.val("form-weight", { foodVariety: selectDepot.foodVariety, foodLocation: selectDepot.foodLocation, foodLevel: selectDepot.foodLevel, noticeId: selectDepot.noticeId }); 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']}); } };