//称重-包括空车和满车称重 var layer; var form; var table; var recordData = null;// 业务数据信息 var snapData;//系统抓拍对象信息 var timerWeight; $(function () { layui.use(['layer', 'laydate', 'form', 'table', 'util'], function () { var util = layui.util; layer = layui.layer; form = layui.form; table = layui.table; layui.laydate.render({ elem: '#test1', theme: '#7b8e9f' }); // 右下角添加固定信息 util.fixbar({ bar1: true, css: { right: 10, bottom: 20 }, bgcolor: '#53adce', click: function (type) { if (type === 'bar1') { layer.closeAll(); layer.open({ type: 2, title: false, shadeClose: true, shade: 0.3, closeBtn: 2, area: ['1000px', '640px'], content: '../../basic/inout/inout-progress?type=' + type + "&t=" + Math.random() }); } } }); //监听仓库选择,选择后自动调用仓库的粮食品种信息 form.on('select(select_depotId)', function (obj) { updateFoodVarietyByDepot(obj.value); }) }); //显示流程环节 showProgress(); // 监听比例值填写 $(".per").blur(function () { deAutoByPer(); }); // 监听重量变化 $(".weight").blur(function () { deAutoByWeight(); }); // 初始化WebSocket initInoutWS(companyId, bizType, progress, userId); }); window.onload = function () { //自动连接地磅信息,2.5秒获取一次地磅重量信息 // clearInterval(timerWeight); // timerWeight = setInterval(function () { // flushWeight(); // }, 2500); // 加载视频 initVideo(lprDto, snapDto1, snapDto2); }; // socket信息返回處理 function socketOnMessage(packet) { var packetData = packet.data; // 车牌识别-根据Sn进行匹配,车牌进行匹配,如果匹配失败则弹出提示信息 if (packet.bizId == "PLATE_NUM") { if (packetData.sn == lprDto.sn) { if (recordData.plateNum && packetData.plateNum != recordData.plateNum) { layer.alert("请注意:系统检测车牌为:" + packetData.plateNum + ",与当前卡片信息不符合,请核对!"); } img1 = packetData.imgName; window.parent.sysNotify("车牌识别结果:" + packetData.plateNum); } } } // 根据当前操作的按钮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); if (InoutProgress.WEIGHT_FULL == recordData.progress) {// 如果是满车称重,则直接当前节点完成 resetForm(); } 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); delDisabled(); resetForm(); } } //控制流程环节显示 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 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 weight() { // 没有业务数据不可执行 if (!recordData) { layer.alert("没有查询到业务数据,执行被拒绝!!"); return; } // 如果是空车称重 if (InoutProgress.WEIGHT_EMPTY == recordData.progress) { form.val("form-data", { emptyWeight: weightDto.weight }); } // 如果是满车称重 if (InoutProgress.WEIGHT_FULL == recordData.progress) { form.val("form-data", { fullWeight: weightDto.weight }); } form.render(); // 点击称重时候自动抓拍数据 layer.msg("系统自动抓拍保留记录……"); snapData = { companyId: companyId, deptId: deptId, bizTag: recordData.progress, bizType: bizType, plateNum: recordData.plateNum, 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-data"); 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; } //水分扣重和杂质扣重 var checkItems = recordData.checkItems; if (checkItems) { var deBase = 0, multiple = 0; $.each(checkItems, function (index, checkItem) { if (!checkItem.value) return;//跳出本次循环 if (null == checkItem.ruleNum) return;//没有配置规则 不处理 if (null == checkItem.ruleReduce) return;//跳出本次循环 //水分扣重 if (CHECK_ST.C01 == checkItem.standardId) { deBase = Number(curData.wet) - checkItem.upperLimit; if (deBase == 0) return; multiple = parseInt(deBase / checkItem.ruleNum);//倍数 if (deBase > 0) {//扣重正数 deWet = (netWeight * multiple * checkItem.ruleReduce / 100.00).toFixed(0); } } //杂质只扣不补 if (CHECK_ST.C02 == checkItem.standardId) { deBase = Number(curData.impurity) - checkItem.upperLimit; if (deBase == 0) return; multiple = parseInt(deBase / checkItem.ruleNum); if (deBase > 0) {//扣重 deImpurity = (netWeight * multiple * checkItem.ruleReduce / 100.00).toFixed(0); } } }); } // 总扣重,水分不计入 deSum = Number(deImpurity) + Number(curData.deOther) + Number(curData.deHandle) + Number(deWet); deSum = deSum.toFixed(0); // 结算净重 settleWeight = Number(netWeight) - Number(deSum); settleWeight = settleWeight.toFixed(0); form.val("form-data", { netWeight: netWeight, deImpurity: deImpurity, deWet: deWet, deSum: deSum, settleWeight: settleWeight }); form.render(); } // 根据重量信息变化自动计算,不在反向计算百分比 function deAutoByWeight() { var curData = form.val("form-data"); var netWeight = 0, deSum = 0, settleWeight = 0, deImpurity = 0, deWet = 0; if (curData.fullWeight == 0 || curData.emptyWeight == 0) { return; } // 净重 netWeight = curData.fullWeight - curData.emptyWeight; if (netWeight <= 0) { layer.msg("净重小于等于0,当前计算不正确!"); return; } //水分扣重和杂质扣重 var checkItems = recordData.checkItems; if (checkItems) { var deBase = 0, multiple = 0; $.each(checkItems, function (index, checkItem) { if (!checkItem.value) return;//跳出本次循环 if (null == checkItem.ruleNum) return;//没有配置规则 不处理 if (null == checkItem.ruleReduce) return;//跳出本次循环 //水分扣重 if (CHECK_ST.C01 == checkItem.standardId) { deBase = Number(curData.wet) - checkItem.upperLimit; if (deBase == 0) return; multiple = parseInt(deBase / checkItem.ruleNum);//倍数 if (deBase > 0) {//扣重正数 deWet = (netWeight * multiple * checkItem.ruleReduce / 100.00).toFixed(0); } } //杂质只扣不补 if (CHECK_ST.C02 == checkItem.standardId) { deBase = Number(curData.impurity) - checkItem.upperLimit; if (deBase == 0) return; multiple = parseInt(deBase / checkItem.ruleNum); if (deBase > 0) {//扣重 deImpurity = (netWeight * multiple * checkItem.ruleReduce / 100.00).toFixed(0); } } }); } // 总扣重 deSum = Number(deImpurity) + Number(curData.deOther) + Number(curData.deHandle) + Number(deWet); deSum = deSum.toFixed(0); // 结算净重 settleWeight = Number(netWeight) - Number(deSum); settleWeight = settleWeight.toFixed(0); form.val("form-data", { deImpurity: deImpurity, deWet: deWet, netWeight: netWeight, deSum: deSum, settleWeight: settleWeight }); form.render(); } //新的读卡方式 function flushICCard() { $("#intelCard").val(null); $("#form-data")[0].reset(); form.render(); recordData = null; $.ajax({ type: "GET", async: true, url: "http://127.0.0.1:9111/ICCARD", data: {}, dataType: "jsonp", jsonp: "callback", jsonpCallback: "jsonpCallback", success: function (json) { //console.log(json); var data = json.no; //console.log(data); if (data === "not found") { layer.alert("请重新读卡!", {offset: ['300px', '300px']}); } else { $("#intelCard").val(data); flushData(); } }, error: function () { layer.alert("IC卡读取出错!", {offset: ['300px', '300px']}); } }); } // 使用插件获取省份证 function flushIdCard() { var index = layer.load(); $.ajax({ type: "GET", async: true, url: "http://127.0.0.1:9111/IDCARD", data: {}, dataType: "jsonp", jsonp: "callback", jsonpCallback: "jsonpCallback", success: function (json) { layer.close(index); var data = json.content; if (data === "not found") { layer.alert("没有读取到身份证信息,请手动录入!", { offset: ['300px', '300px'] }); return; } $("#userId").val(data.idNum); flushData(); }, error: function () { layer.alert("身份证读取失败,请手动录入!", { offset: ['300px', '300px'] }); layer.close(index); } }); } function flushWeight() { $.ajax({ type: "GET", async: true, timeout: 2000, url: "http://127.0.0.1:9111/WEIGHT", data: {}, dataType: "jsonp", jsonp: "callback", jsonpCallback: "jsonpCallback", success: function (json) { var data = json.content; if (!data) data = 0.0; weightDto.weight = data; $("#weightValue").html(data + "KG"); $("#img_scale_statule").attr("src", "../../static/images/icon-gree.png"); }, error: function () { weightDto.weight = 0.0; $("#weightValue").html("0.0KG"); $("#img_scale_statule").attr("src", "../../static/images/icon-red.png"); } }); } // 点击打印,系统判断是否已经执行完成,如果已经完成,直接打印,如果未完成则先执行完成 function printBill() { if (!recordData) { layer.alert("没有获取到业务数据,不支持打印!"); return; } // 从后台获取模版并打印 var data = form.val("form-data"); // 合并更新當前编辑数据 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("开始渲染打印单……"); if(companyId && companyId == "5016"){ print5016Weight(result.data); console.log("5016"); }else { printWeight(result.data); } // 刷新按钮 flushBtn("btn-printBill"); } }, error: function () { layer.close(index); layer.msg("获取打印模版失败,请联系管理员查看原因!!"); } }); } // 打印抽样单 function showCheck() { if (!recordData) { layer.alert("没有获取到业务数据,无法查看!"); } } // 表单清空 function resetForm() { $("#form-data")[0].reset(); form.render(); recordData = null; weightDto.weight = 0.0; $("#weightValue").html("0.0KG"); $("#img_scale_statule").attr("src", "../../static/images/icon-red.png"); //称重可以复用 $("#btn-weight").removeClass("layui-btn-disabled"); $("#btn-weight").attr("disabled", false); //空车和满车被重置 updateEditAndProgress(); //扣重信息框恢复为可编辑 delDisabled(); } function flushPage() { layer.confirm('确定要刷新页面吗?', {icon: 3, title: '提示'}, function (index) { resetForm(); layer.msg("页面重置完成,请重新操作……"); layer.close(index); }); } // --查询方法,获取身份证号、卡号、车牌号,进行查询 function flushData() { var index = layer.load(); var userId2 = $("#userId").val(); var intelCard = $("#intelCard").val(); var plateNum = $("#plateNum").val(); var param = { type: type, progress: progress, intelCard: intelCard, userId: userId2, plateNum: plateNum }; $.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") { notify(result.msg, result.data); } else { recordData = result.data; // 返回的数据进行赋值 form.val("form-data", recordData); form.render(); updateEditAndProgress(); } layer.close(index); }, error: function () { layer.close(index); layer.alert("查询失败,请重新尝试!!"); } }); } /** * 跟新流程说明提心信息 */ function updateEditAndProgress() { if (recordData) { if (InoutProgress.WEIGHT_EMPTY == recordData.progress) { $("#emptyWeight").removeClass("rkbk-search-input"); $("#emptyWeight").attr("disabled", false); $("#progress-hand").addClass("active"); $("#progress-emptyWeight").addClass("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").removeClass("active"); $("#progress-emptyWeight").removeClass("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-emptyWeight").removeClass("active"); } //根据配置信息设置地磅是否可编辑 if(weightEditTag && weightEditTag == 'N'){ $("#fullWeight").addClass("rkbk-search-input"); $("#fullWeight").attr("disabled", true); $("#emptyWeight").addClass("rkbk-search-input"); $("#emptyWeight").attr("disabled", true); } } // 当前完成 function submit() { if (null == recordData) { notify("没有数据可以提交", null); return; } var data = form.val("form-data"); if (!data.depotId) { notify("装卸仓库必须填写", null); return; } // 校验-入库满车称重 if (InoutProgress.WEIGHT_FULL == recordData.progress) { if (data.fullWeight <= 0.0) { notify("满车称重信息必填", null); return; } if (!data.customerName) { notify("往来单位信息必填", null); return; } } else { if (data.emptyWeight <= 0.0) { notify("空车称重信息必填", null); return; } if (!data.foodVariety) { 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") { notify(result.msg, result.data); } else { notify("数据提交成功", result.data); // 更新按钮显示 flushBtn("btn-submit"); } layer.close(index); }, error: function () { layer.close(index); notify("提交失败,请重新尝试", null); } }); } //根据选择的仓库信息,更新粮食品种 function updateFoodVarietyByDepot(selectId) { var selectDepot; $.each(listDepot, function (index, data) { if (data.id === selectId) { selectDepot = data; return false; } }); if (selectDepot) { form.val("form-data", { foodVariety: selectDepot.foodVariety }); 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(); var param = { type: type, start: recordData == null ? null : recordData.registerTime }; // 渲染往来单位列表 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-data", { customerId: data.id, customerName: data.name, noticeId: data.noticeId }); // 关闭 layer.closeAll(); }); // 弹出对话框 layer.open({ type: 1, title: "选择往来单位", area: ['600px', '600px'], shade: 0, content: $('#listCustomer'), btn: 0, btn: ['取消'], yes: function () { layer.closeAll(); }, closeBtn: 0 }); } // 刷新往来单位数据 function flushCustomer() { var key = $("#key").val(); var param = { type: type, key: key, start: recordData == null ? null : recordData.registerTime }; table.reload('tableCustomer', { url: "../../basic/inout/list-in-customer", where: param, 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, // limit : limit, // skin : "nob", // size : 'sm', 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-data", { foodLocation: data.name, }); // 关闭 layer.closeAll(); }); // 弹出对话框 layer.open({ type: 1, title: "选择粮产地", area: ['600px', '600px'], shade: 0, content: $('#listFoodLocation'), btn: 0, btn: ['取消'], yes: function () { layer.closeAll(); }, 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); } } }); } // ---------------------------粮食产地 -结束 -------------------//