layui.use(['table', 'admin', 'ax', 'func'], function () { var $ = layui.$; var table = layui.table; var $ax = layui.ax; var admin = layui.admin; var func = layui.func; /** * 看板配置管理 */ var KanbanConf = { tableId: "kanbanConfTable" }; /** * bom信息管理 */ var BomInfo = { tableId: "bomInfoTable" }; /** * bom信息管理 */ var MaterialShortage = { tableId: "materialShortageTable" }; initPageInfo(); async function initPageInfo() { await initKanBanConfInfo();//初始化配置信息 await initOrderInfo(); initBomTable(); initMaterialShortage(); /* xR(); xa();*/ } function initKanBanConfInfo() { // 根据ip查询配置信息 var ajax = new $ax(Feng.ctxPath + "/materialRegistration/qryKBConflist?pageCode=" + 'KB_WLDJ_001'); var result = ajax.start(); if (result.data.length > 0) { let msg = result.data[0]; $('#id').val(msg.id); $('#ipAddress').val(msg.ipAddress); $('#pageCode').val(msg.pageCode); $('#workshopCode').val(msg.workshopCode); $('#lineCode').val(msg.lineCode); $('#locationCode').val(msg.locationCode); } } var ip = ""; $(document).ready(function () { console.log("111111111"); console.log($('#locationCode').val()); var ajax = new $ax(Feng.ctxPath + "/scannerConfig/getOneByLocationCode?locationCode=" + $('#locationCode').val()); var result = ajax.start(); console.log(result.data); ip = result.data.ipAddress; }); function initOrderInfo() { // 根据ip查询配置信息 var ajax = new $ax(Feng.ctxPath + "/productionOrdeInfo/list?orderStatus=" + '3'); var result = ajax.start(); if (result.data.length > 0) { let msg = result.data[0]; $('#orderId').val(msg.id); $('#workOrderNo').val(msg.workOrderNo); $('#materialCode').val(msg.materialCode); $('#materialName').val(msg.materialName); $('#planQty').val(msg.planQty); $('#custom').val(msg.custom); $('#createTime').val(msg.createTime); $('#actualQty').val(msg.actualQty); $('#planStartTime').val(msg.planStartTime); $('#planEndTime').val(msg.planEndTime); } } function initBomTable(){ var queryData = {}; queryData['loadingCode'] = $("#locationCode").val(); // queryData['workOrderNo'] = $("#workOrderNo").val(); // 渲染表格 var tableResult = table.render({ elem: '#' + BomInfo.tableId, url: Feng.ctxPath + '/bomInfo/kbListTable', // page: true, // height: 475, height: 435, cellMinWidth: 100, where:queryData, cols: BomInfo.initColumn() }); } /** * 物料Bom初始化表格的列 */ BomInfo.initColumn = function () { return [[ // {type: 'checkbox'}, /* {type:"numbers" ,title:'序号',width:40,fixed:'left'},*/ {field: 'id', hide: true, title: 'ID'}, {field: 'materialCode', sort: true, title: '物料编号'}, {field: 'materialName', sort: true, title: '物料名称'}, // {field: 'workorderNo', sort: true, title: '工单编号'}, // {field: 'productCode', sort: true, title: '产品编号'}, {field: 'locationCode', sort: true, title: '工位编号'}, {field: 'loadingCode', sort: true, title: '上料工位编号'}, // {field: 'state', sort: true, title: '是否扫码'}, // {field: 'batchCode', sort: true, title: '批次码'}, ]]; }; /** * 缺料报警初始化表格的列 */ MaterialShortage.initColumn = function () { return [[ {type: 'numbers'}, {field: 'id', hide: true, title: 'ID'}, {field: 'workOrderNo', sort: true, title: '工单号', width: 165}, // {field: 'loadingCode', sort: true, title: '上料工位', width: 105}, {field: 'locationCode', sort: true, title: '工位编号', width: 105}, {field: 'loadingCode', sort: true, title: '扫码工位编号', width: 105}, {field: 'materialCode', sort: true, title: '物料编码'}, {field: 'barCode', sort: true, title: '扫码编号'}, {field: 'state', sort: true, title: '是否扫码', width: 105}, ]]; }; function initMaterialShortage(){ var queryData = {}; queryData['workOrderNo'] = $("#workOrderNo").val(); queryData['loadingCode'] = $("#locationCode").val(); // 渲染表格 var tableResult = table.render({ elem: '#' + MaterialShortage.tableId, url: Feng.ctxPath + '/productionOrderBatchInfo/boardList', // page: true, height: 345, cellMinWidth: 80, where:queryData, cols: MaterialShortage.initColumn() }); } // 生产工单设置按钮点击事件 $('#orderBtnSet').click(function () { KanbanConf.openOrderEditPage(); }); // 设置按钮点击事件 $('#btnSet').click(function () { var id = $("#id").val(); if(id == "" || id == undefined){ KanbanConf.openAddDlg(); }else{ KanbanConf.openEditPage(id); } }); /** * 弹出添加页面设置对话框 */ KanbanConf.openAddDlg = function () { layer.open({ type: 2, area: ['1000px', '600px'], title: '添加看板配置', content: Feng.ctxPath + '/materialRegistration/add', success: function (layero, index) { let body = layer.getChildFrame('body', index); body.find('form').find('#testlineCode').val($('#lineCode').val()); body.find('form').find('#testlocationCode').val($('#locationCode').val()); }, end: function () { console.log("end") let lineCode = JSON.parse(window.localStorage.getItem('lineCode')); let locationCode = JSON.parse(window.localStorage.getItem('locationCode')); $('#lineCode').val(lineCode); $('#locationCode').val(locationCode); initKanBanConfInfo() } }); }; /** * 弹出编辑页面设置对话框 * * @param data 点击按钮时候的行数据 */ KanbanConf.openEditPage = function (data) { func.open({ title: '添加看板配置', content: Feng.ctxPath + '/materialRegistration/edit?id=' + data, //tableId: KanbanConf.tableId }); }; $('#revert').click(function () { window.location.href = Feng.ctxPath + '/badBoard/boardHome' }); KanbanConf.openOrderEditPage = function (data) { layer.open({ type: 2, area: ['1000px', '600px'], title: '工单配置', content: Feng.ctxPath + '/materialRegistration/orderEdit', success: function () { console.log($('#lineCode').val()); window.lineCode = $('#lineCode').val(); }, end: function () { let msg = JSON.parse(window.localStorage.getItem('message')); console.log("选择工单_id", msg.id) $('#orderId').val(msg.id); $('#workOrderNo').val(msg.workOrderNo); $('#materialCode').val(msg.materialCode); $('#materialName').val(msg.materialName); $('#planQty').val(msg.planQty); $('#createTime').val(msg.createTime); $('#actualQty').val(msg.actualQty); initMaterialShortage(); } }); }; $("#barCode").bind("keydown",function(e){ // 兼容FF和IE和Opera var theEvent = e || window.event; var code = theEvent.keyCode || theEvent.which || theEvent.charCode; if (code === 13) { var ajax1 = new $ax(Feng.ctxPath + "/bomInfo/bomCheck?materialCode=" +$('#barCode').val()+"&loadingCode="+$('#locationCode').val()); var result1 = ajax1.start(); console.log(result1.data); if(result1.data!==0) { //回车执行查询 var ajax = new $ax(Feng.ctxPath + "/productionOrderBatchInfo/barCodeCheck?materialCode=" + $('#barCode').val() + "&workOrderNo=" + $('#workOrderNo').val()); var result = ajax.start(); console.log(result.data); if (result.data === 0) { let ajax = new $ax(Feng.ctxPath + "/productionOrderBatchInfo/updateState", function (data) { }, function (data) { Feng.error("添加失败!" + data.responseJSON.message) }); ajax.set("materialCode", $('#barCode').val()); ajax.set("workOrderNo", $('#workOrderNo').val()); ajax.set("state", "是"); ajax.start(); // initBomTable(); initMaterialShortage(); } else { layer.open({ title: "操作提示", icon: 0, closeBtn: 2, area: ['450px', '160px'], time: 5000, content: '该标签已被扫描!!!' }); } }else { layer.open({ title: "操作提示", icon: 0, closeBtn: 2, area: ['450px', '160px'], time: 5000, content: 'BOM校验错误请重新扫码!!!' }); } } }); $('#btnClean').click(function (){ $('#barCode').val(""); }); var websocket = null; //判断当前浏览器是否支持WebSocket if('WebSocket' in window) { //改成你的地址 // websocket = new WebSocket('ws://'+ip+':8083/websocket/materialRegistration'); websocket = new WebSocket('ws://127.0.0.1:8083/websocket/materialRegistration'); } else { alert('当前浏览器 Not support websocket') } //接收到消息的回调方法 websocket.onmessage = function(event) { console.log(event); console.log(event.data) $('#barCode').val(event.data); var ajax1 = new $ax(Feng.ctxPath + "/bomInfo/bomCheck?materialCode=" +$('#barCode').val()+"&loadingCode="+$('#locationCode').val()); var result1 = ajax1.start(); console.log(result1.data); if(result1.data!==0) { //回车执行查询 var ajax = new $ax(Feng.ctxPath + "/productionOrderBatchInfo/barCodeCheck?materialCode=" + $('#barCode').val() + "&workOrderNo=" + $('#workOrderNo').val()); var result = ajax.start(); console.log(result.data); if (result.data === 0) { let ajax = new $ax(Feng.ctxPath + "/productionOrderBatchInfo/updateState", function (data) { }, function (data) { Feng.error("添加失败!" + data.responseJSON.message) }); ajax.set("materialCode", $('#barCode').val()); ajax.set("workOrderNo", $('#workOrderNo').val()); ajax.set("state", "是"); ajax.start(); // initBomTable(); initMaterialShortage(); } else { layer.open({ title: "操作提示", icon: 0, closeBtn: 2, area: ['450px', '160px'], time: 5000, content: '该标签已被扫描!!!' }); } }else { layer.open({ title: "操作提示", icon: 0, closeBtn: 2, area: ['450px', '160px'], time: 5000, content: 'BOM校验错误请重新扫码!!!' }); } } //连接成功建立的回调方法 websocket.onopen = function() { Feng.info("扫码枪连接建立成功") console.log("与weksoket地址"+'ws://'+ip+':8083/websocket/materialRegistration'+"连接成功") } //连接关闭的回调方法 websocket.onclose = function() { Feng.info("扫码枪连接已关闭") console.log("与weksoket地址"+'ws://'+ip+':8083/websocket/materialRegistration'+"连接失败不能发送消息") } window.onunload = function(){ websocket.close(); } });