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: 'checkbox', fixed: 'left'},
{field: 'id', hide: true, title: 'ID'},
/* {field: 'workOrderNo', sort: true, title: '工单号', width: 150},*/
// {field: 'loadingCode', sort: true, title: '上料工位', width: 105},
{field: 'locationCode', sort: true, title: '工位编号', width: 100},
//{field: 'loadingCode', sort: true, title: '扫码工位编号', width: 105},
{field: 'materialCode', sort: true, title: '物料编码', width: 170},
{field: 'batch', sort: true, title: '物料批次',width: 120},
{field: 'quantity', sort: true, title: '上料数量',width: 120},
{field: 'residueQuantity', sort: true, title: '剩余数量',width: 120},
{field: 'unit', sort: true, title: '单位'},
{field: 'status', sort: true, title: '是否上料', width: 105,templet: '#stateTpl'},
// {field: 'orderStatus', sort: true, title: '状态',align:'center',width:80,templet: '#orderStatusTpl'},
]];
};
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,
toolbar: '#toolbarDemo',
cellMinWidth: 80,
where:queryData,
cols: MaterialShortage.initColumn()
});
}
// 工具栏事件
table.on('toolbar(materialShortageTable)', function(obj){
var id = obj.config.id;
var checkStatus = table.checkStatus(id);
switch(obj.event){
case 'getCheckData':
var data = checkStatus.data;
console.log(data.length)
console.log(data)
if(data.length!==1){
Feng.error("请正确选择一条数据")
return
}
resetting(data[0].id)
break;
};
});
function resetting(data){
var resetting = new $ax(Feng.ctxPath + "/productionOrderBatchInfo/resetting?id=" + data);
var resettingResult = resetting.start();
initMaterialShortage()
Feng.success("重置成功")
}
// 生产工单设置按钮点击事件
$('#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 (){
clean()
});
function clean(){
$('#barCode').val("");
$('#number').val("");
}
$('#confirm').click(function (){
inputMethod($('#barCode').val());
// let barCode = $('#barCode').val();
// let batch = barCode.substring(14,25);
// let number = $('#number').val();
// if(barCode === '' || number === ''){
// Feng.error("请输入条码和数量的完整信息");
// return
// }else if(barCode.length!==25){
// Feng.error("请输入完整长度信息");
// return
// }
// var checkLocationCode = new $ax(Feng.ctxPath + "/productionOrderBatchInfo/checkLocationCode?materialCode=" + barCode.substring(0, 14) + "&workOrderNo="+ $('#workOrderNo').val());
// var checkLocationCodeResult = checkLocationCode.start();
// if(checkLocationCodeResult.data === 0){
// Feng.error("条码信息异常")
// return
// }
// var updateOrderBatchInfo = new $ax(Feng.ctxPath + "/productionOrderBatchInfo/updateOrderBatchInfo?materialCode=" + barCode.substring(0, 14) + "&workOrderNo="+ $('#workOrderNo').val()+ "&spareField1="+ number + "&loadingCode="+ batch);
// var updateOrderBatchInfoResult = updateOrderBatchInfo.start();
// Feng.success("录入成功")
// clean()
// initMaterialShortage()
});
function inputMethod(inBarCode){
let barCode = inBarCode;
let batch = barCode.substring(14,25);
let number = $('#number').val();
if(barCode === '' || number === ''){
Feng.error("请输入条码和数量的完整信息");
return
}else if(barCode.length!==25){
Feng.error("请输入完整长度信息");
return
}
// var checkLocationCode = new $ax(Feng.ctxPath + "/productionOrderBatchInfo/checkLocationCode?materialCode=" + barCode.substring(0, 14) + "&workOrderNo="+ $('#workOrderNo').val());
// var checkLocationCodeResult = checkLocationCode.start();
// if(checkLocationCodeResult.data === 0){
// Feng.error("条码信息异常")
// return
// }
var updateOrderBatchInfo = new $ax(Feng.ctxPath + "/productionOrderBatchInfo/updateOrderBatchInfo?materialCode=" + barCode.substring(0, 14) + "&workOrderNo="+ $('#workOrderNo').val()+ "&quantity="+ number + "&batch="+ batch+ "&residueQuantity="+ number);
var updateOrderBatchInfoResult = updateOrderBatchInfo.start();
if(updateOrderBatchInfoResult.data === "0"){
Feng.error("批次不同无法录入");
return;
}
Feng.success("录入成功")
clean()
initMaterialShortage()
}
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) {
inputMethod(event.data);
// 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();
}
});