<!DOCTYPE HTML> <html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> <!--<meta charset="utf-8" http-equiv="refresh" content="200">--> <head th:include="include :: header"></head> <style> .btn-default { color: #333; background-color: #fff; border-color: #ccc } .isShow{ display: none; } .bg-orange{ background: #BEBEBE; } .bg-blue{ } </style> <body class="gray-bg"> <div class="container-div"> <div class="row"> <div class="col-sm-12 select-info"> <ul id="myTab" class="nav nav-tabs"> <li class="active"><a href="#tabHeader" data-toggle="tab">U8工单</a></li> <li><a href="#tabDetail" data-toggle="tab">U8库存</a></li> </ul> <div id="myTabContent" class="tab-content"> <div class="tab-pane fade in active" id="tabHeader"> <div class="col-sm-12 select-info"> <form id="receiptHeader-form"> <div class="select-list"> <ul> <li> 货主编码:<select name="companyCode" th:with="company=${@companyService.selectCompanyByCurrentUserId()}"> <option value="">所有</option> <option th:each="e : ${company}" th:text="${e['name']}" th:value="${e['code']}"></option></select> </li> <li> <select name="cCompanyCode"> <!-- <option th:each="e : ${warehouse}" th:text="${e['uWarehouseName']}" th:value="${e['uCompanyCode']}" th:name="${e['uWarehouseCode']}"></option>--> </select> </li> <li> 工单号:<input type="text" name="Mocode"/> </li> <li> 工单行号:<input type="text" name="Moseq"/> </li> <li> 母件编码:<input type="text" name="CInvcode"/> </li> <li> 子件编码:<input type="text" name="MaterialCode"/> </li> <li> <select name="ch"> <option selected="selected"></option> <option>外协</option> <option>外购</option> <option>电气</option> </select> </li> <li> <a class="btn btn-primary btn-rounded btn-sm" onclick="workOrderSearch(0)"> <i class="fa fa-search"></i> 搜索</a> <a class="btn btn-primary btn-rounded btn-sm" onclick="workOrderSearch(1)"> <i class="fa fa-search"></i> 搜索全部</a> <a class="btn btn-primary btn-rounded btn-sm" onclick="findStockAllClick()"> <i class="fa fa-search"></i> 批量查看库存</a> <a class="btn btn-outline btn-info btn-rounded" onclick="importExcel()"> <i class="fa fa-upload"></i> excel导入 </a> <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset('receiptHeader-form')"><i class="fa fa-refresh"></i> 重置</a> </li> </ul> </div> </form> </div> <div class="btn-group hidden-xs" id="toolbar" role="group"> </div> <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table> </div> <div class="tab-pane fade" id="tabDetail"> <div class="btn-group hidden-xs" id="toolbar-detail" role="group" style="padding:20px 0;"> <a class="btn btn-outline btn-success btn-rounded" onclick="outStockAll()" > <i class="fa fa-plus"></i> 出库 </a> </div> <table id="bootstrap-table-detail" data-row-style="rowStyle" data-mobile-responsive="true" class="table table-bordered table-hover"></table> </div> </div> </div> </div> </div> <div th:include="include :: footer"></div> <script th:inline="javascript"> var printFlag = [[${@permission.hasPermi('shipment:bill:report')}]]; //打印 var editFlag = [[${@permission.hasPermi('shipment:bill:edit')}]]; var removeFlag = [[${@permission.hasPermi('shipment:bill:remove')}]]; var prefix = ctx + "shipment/shipmentHeader"; var prefix1=ctx+"receipt/receiptHeader"; var prefix_detail = ctx + "shipment/shipmentDetail"; var datas = [[${@dict.getType('sys_normal_disable')}]]; var shipmentTypes=[[${@dict.getType('shipmentType')}]]; var shipmentHeaderStatus=[[${@dict.getType('shipmentHeaderStatus')}]]; var stations = [[${@dict.getType('station')}]]; var uploadStatus=[[${@dict.getType('uploadStatus')}]]; var inventoryStatus=[[${@dict.getType('inventoryStatus')}]]; var rossDoccking = [[${@permission.hasPermi('shipment:bill:rossDoccking')}]]; var shipmentId = ""; var shipmentCode=""; function findStockAllClick(){ var rows = $("#bootstrap-table").bootstrapTable('getSelections'); if (rows.length == 0){ $.modal.msg("请选择要查看的工单!"); return } var list = []; debugger var cCompanyCode = $("select[name='cCompanyCode']").val(); var cWHCode = $("select[name='cCompanyCode']").find("option:selected").attr("name"); if ((!cCompanyCode) || (!cWHCode)){ $.modal.msg("工单号不能为空!"); return; } for (const i in rows){ var materialCode = rows[i].materialCode; var needQuantity = rows[i].needQuantity; var receiveQuantity = rows[i].receiveQuantity; var workOrderId = rows[i].workOrderId; var workOrderSonId = rows[i].workOrderSonId; var data= { "cInvCode":materialCode, "cCompanyCode":cCompanyCode, "cWHCode":cWHCode, "needQuantity":needQuantity, "receiveQuantity":receiveQuantity, "modID":workOrderId, "AllocateId":workOrderSonId } list.push(data); } getU8StockDataAll(list); } function getU8StockDataAll(list){ var data = JSON.stringify(list); $.ajax({ url:ctx + 'shipment/shipmentU8ContainerHeader/getU8StockDataAll', type: 'post', datatype: "json", data:{ "json":data }, success : function (value) { debugger if (value.code == 200){ if (value.data.length == 0){ $.modal.msgError("WMS查询不到该物料!"); return } $("#myTab li").removeClass("active"); $("#tabHeader").removeClass("in active"); $("#myTab li:eq(1)").addClass("active"); $("#tabDetail").addClass("in active"); $("#bootstrap-table-detail").bootstrapTable('load',value.data); }else{ $.modal.msgError(value.msg); } } }); } function workOrderSearch(type){ var cCompanyCode = $("select[name='cCompanyCode']").val(); var option = $("select[name='ch']").val(); var Mocode = $("input[name='Mocode']").val(); var Moseq = $("input[name='Moseq']").val(); var CInvcode = $("input[name='CInvcode']").val(); var MaterialCode = $("input[name='MaterialCode']").val(); if (cCompanyCode){ if (!Mocode){ $.modal.msg("工单号不能为空!"); return; } $.ajax({ url:ctx + 'config/warehouseWu/queryWorkOrders', type: 'get', data:{ "cCompanyCode":cCompanyCode, "Mocode":Mocode, "Moseq":Moseq, "CInvcode":CInvcode, "MaterialCode":MaterialCode, "type":type, "option":option }, success:function (value) { debugger; if (value.code == 200){ if (value.data.length == 0){ $.modal.msg(value.msg); $("#bootstrap-table").bootstrapTable('removeAll'); } $("#bootstrap-table").bootstrapTable('load',value.data); }else { $.modal.msg(value.msg); $("#bootstrap-table").bootstrapTable('removeAll'); } } }); }else { $.modal.msg("仓库编码不能为空!"); } } $("#bootstrap-table").bootstrapTable({ modalName: "出库单", sortName: "created", sortOrder: "desc", search: false, pageSize: 10, pagination:true, columns: [ { checkbox:true, }, { title: '操作', align: 'center', formatter: function (value, row, index) { var actions = []; actions.push('<a id="table_edit" class="btn btn-success btn-xs ' + removeFlag + '" href="#" onclick="detail(\'' + row.materialCode + '\',\'' + row.needQuantity + '\',\'' + row.receiveQuantity + '\',\'' + row.workOrderId + '\',\'' + row.workOrderSonId + '\')"><i class="fa fa-print"></i>库存选择</a> '); return actions.join(''); } }, { field: 'materialCode', title: '存货编码', sortable:true }, { field: 'materialName', title: '材料名称', }, { field: 'specification', title: '材料规格', }, { field: 'needQuantity', title: '应领数量', }, { field: 'receiveQuantity', title: '已领数量', }, { field : 'orderBomCode', title : '订单物料编码', }, { field: 'name', title: '名称', }, { field : 'specification1', title : '规格', }, { field: 'lineNumber', title: '行号', }, { field : 'workOrderNumber', title : '工单号', visible: false }, { field : 'workOrderId', title : '工单id', }, { field : 'workOrderSonId', title : '工单子件id', }, { field: 'workOrderQuantity', title: '工单数量', visible: false }, { field : 'orderDate', title : '订单日期' }, ] }); $(function () { $.table.init($("#bootstrap-table")); // 绑定事件 $("select[name='cCompanyCode']").change(function (){ $("#bootstrap-table").bootstrapTable("removeAll"); }); $("select[name='companyCode']").change(function (){ $("#bootstrap-table").bootstrapTable("removeAll"); var companyCode = this.value; debugger $.ajax({ url:ctx + 'config/warehouseWu/getCompanyCodeList', type: 'get', data:{ "companyCode":companyCode, }, success : function (value) { debugger; $("select[name='cCompanyCode']").empty(); if (value.code == 200){ value.data.forEach(function (item){ $("select[name='cCompanyCode']").append("<option value='"+item.uCompanyCode+"' name='"+item.uWarehouseCode+"'>"+item.uWarehouseName+"</option>"); }); }else { $.modal.msgError(value.msg); } } }); }); }); $("#bootstrap-table-detail").bootstrapTable( { sortable: true, //排序 modalName: "U8库存明细", search: false, clickToSelect: true, sortName: "lastUpdated", sortOrder: "desc", pagination: true, // 是否显示分页(*) pageNumber: 1, // 初始化加载第一页,默认第一页 pageSize: 50, // 每页的记录行数(*) pageList: [10, 25, 50, 100], // 可供选择的每页的行数(*) columns: [{ checkbox: true }, { title: '操作', align: 'center', formatter: function (value, row, index) { var actions = []; actions.push('<a id="table_edit" class="btn btn-success btn-xs ' + printFlag + '" href="#" onclick="outStock(\'' + row.allocateId + '\',\'' + row.modID + '\',\'' + row.ccompanyCode + '\',\'' + row.cwhcode + '\',\'' + index + '\',\'' + row.cinvCode + '\',\'' + row.inventoryId + '\',\'' + row.qty + '\')"><i class="fa fa-print"></i>出库</a> '); return actions.join(''); } }, { field: 'SerialNumber', title: '序号', visible: false }, { field: 'ccompanyCode', title: '公司代码', visible: false }, { field: 'modID', title: '工单行ID', visible: false }, { field: 'allocateId', title: '工单子件行ID', visible: false }, { field: 'dosage', title: '出库数量', valign:'middle', align:"center", clear:false, formatter : function(value, row, index) { var needQuantity = row.needQuantity; var receiveQuantity = row.receiveQuantity; var qty = 0; if (needQuantity > receiveQuantity){ qty = needQuantity - receiveQuantity; } var html = '<input id="dosage'+index+'" onblur="numCheck('+index+')" value="'+qty+'" width="10" >'; return html; } }, { field: 'needQuantity', title: '应领数量' }, { field: 'receiveQuantity', title: '已领数量' }, { field : 'iQuantity', title : 'U8库存数量', sortable:true }, { field : 'qty', title : 'WMS库存数量', sortable:true }, { field: 'taskQty', title: '执行预定数量', visible: false }, { field: 'zoneCode', title: '库区编码', visible: false }, { field: 'inventoryId', title: '库存ID', visible: false }, { field : 'cComUnitName', title : '计量单位', sortable:true }, { field: 'cWHCode', title: '仓库编码', }, { field : 'cInvCode', title : '物料编码', sortable:true }, { field: 'cWHName', title: '仓库名称', sortable:true }, { field: 'cInvStd', title: '物料规格', visible: false }, { field: 'cInvName', title: '物料名称', visible:false }, ] } ); function createOutboundDocuments(){ debugger; var cCompanyCode = $("select[name='cCompanyCode']").val(); var cWHCode = $("select[name='cCompanyCode']").find("option:selected").attr("name"); if (cCompanyCode && cWHCode){ $.ajax({ url:ctx + 'shipment/shipmentU8ContainerHeader/getU8StockDataAll', type: 'get', data:{ "cCompanyCode":cCompanyCode, "cWHCode":cWHCode }, success : function (value) { debugger; if (value.code == 200){ }else { $.modal.msg(value.msg); } } }); }else { $.modal.msg("请先查询U8工单!"); } } function numCheck(index){ $('input[id=dosage'+index+']').val($('input[id=dosage'+index+']').val().replace(/[^0-9.]/g,'')); } /** * 批量出库 */ function outStockAll(){ var rows = $("#bootstrap-table-detail").bootstrapTable('getSelections'); if (rows.length == 0){ $.modal.msg("请选择库存数据!"); return } var list = []; for (const i in rows) { debugger var serialNumber = rows[i].serialNumber; var dosage = $('input[id=dosage'+serialNumber+']').val() if (dosage == 0){ $.modal.msg("请输入出库数量!"); return; } var allocateId = rows[i].allocateId; var modID = rows[i].modID; var companyCode = rows[i].cCompanyCode; var WHCode = rows[i].cWHCode; var itemCode = rows[i].cInvCode; var inventoryId = rows[i].inventoryId; if (allocateId && modID && companyCode && WHCode && itemCode){ var material = { "Qty":dosage, "itemcode":itemCode, "AllocateId":allocateId, "inventoryId":inventoryId }; list.push(material); } } var data = { "ModID":rows[0].allocateId, "Companycode":rows[0].cCmpanyCode, "WHCode":rows[0].cWHCode, "list":list }; workOrderOutAll(data); } function workOrderOutAll(data){ debugger data = JSON.stringify(data); $.ajax({ url:ctx + 'shipment/shipmentU8ContainerHeader/workOrderOut', type: 'get', datatype: "json", data:{ "u8OutParameters":data }, success : function (value) { debugger; if (value.code == web_status.SUCCESS){ $.modal.msgSuccess(value.msg); }else { $.modal.msgError(value.msg); } } }); } /** * 出库 */ function outStock(allocateId,modID,companyCode,WHCode,index,itemCode,inventoryId,kty){ debugger; var qty = $('input[id=dosage'+index+']').val(); if (!qty || qty == 0){ $.modal.msg("请输入出库数量!"); return } if (parseInt(qty) > parseInt(kty)){ $.modal.msg("出库数量不能大于库存数量!"); return } if (allocateId && modID && companyCode && WHCode && qty && itemCode){ var list = [] var material = { "Qty":qty, "itemcode":itemCode, "AllocateId":allocateId, "inventoryId":inventoryId }; list.push(material); var data = { "ModID":modID, "Companycode":companyCode, "WHCode":WHCode, "list":list } data = JSON.stringify(data); debugger; $.ajax({ url:ctx + 'shipment/shipmentU8ContainerHeader/workOrderOut', type: 'get', datatype: "json", data:{ "u8OutParameters":data }, success : function (value) { debugger; if (value.code == 200){ $.modal.msgSuccess(value.msg); }else { $.modal.msgError(value.msg); } } }); } } /*入库单列表-详细*/ function detail(cInvCode,needQuantity,receiveQuantity,modID,AllocateId) { if (!cInvCode){ $.modal.msg("请从U8工单界面进入!"); return } loadDetail(cInvCode,needQuantity,receiveQuantity,modID,AllocateId); } /** 载入明细 */ function loadDetail(cInvCode,needQuantity,receiveQuantity,modID,AllocateId) { var cCompanyCode = $("select[name='cCompanyCode']").val(); var cWHCode = $("select[name='cCompanyCode']").find("option:selected").attr("name"); debugger; $.ajax({ url:ctx + 'shipment/shipmentU8ContainerHeader/getU8StockData', type: 'post', data:{ "cInvCode":cInvCode, "cCompanyCode":cCompanyCode, "cWHCode":cWHCode, "needQuantity":needQuantity, "receiveQuantity":receiveQuantity, "modID":modID, "AllocateId":AllocateId }, success : function (value) { debugger if (value.code == 200){ if (value.data.length == 0){ $.modal.msgError("WMS查询不到该物料!"); return } $("#myTab li").removeClass("active"); $("#tabHeader").removeClass("in active"); $("#myTab li:eq(1)").addClass("active"); $("#tabDetail").addClass("in active"); $("#bootstrap-table-detail").bootstrapTable('load',value.data); }else{ $.modal.msgError(value.msg); } } }); } function importExcel() { var currentId = 'importTpl'; layer.open({ type: 1, area: ['400px', '230px'], fix: false, //不固定 maxmin: true, shade: 0.3, title: '导入数据', content: $('#' + currentId).html(), btn: ['<i class="fa fa-check"></i> 导入', '<i class="fa fa-remove"></i> 取消'], // 弹层外区域关闭 shadeClose: true, btn1: function(index, layero){ var file = layero.find('#file').val(); if (file == '' || (!$.common.endWith(file, '.xls') && !$.common.endWith(file, '.xlsx'))){ $.modal.msgWarning("请选择后缀为“xlsx”的文件。"); return false; } var index = layer.load(2, {shade: false}); // $.modal.disable(); var formData = new FormData(); formData.append("file", $('#file')[0].files[0]); formData.append("updateSupport", $("input[name='updateSupport']").is(':checked')); $.ajax({ url:ctx + 'shipment/shipmentU8ContainerHeader/importData', data: formData, cache: false, contentType: false, processData: false, type: 'POST', success: function (result) { if (result.code == web_status.SUCCESS) { $.modal.msgSuccess(result.msg); $.table.refresh(); $.modal.closeAll(); } else if (result.code == web_status.WARNING) { $.modal.enable(); $.modal.alertWarning(result.msg) } else { layer.close(index); $.modal.enable(); $.modal.alertError(result.msg); } } }); } }); } </script> <!-- 导入区域 --> <script id="importTpl" type="text/template"> <form enctype="multipart/form-data" class="mt20 mb10"> <div class="col-xs-offset-1"> <input type="file" id="file" name="file"/> <div class="mt10 pt5"> <a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i class="fa fa-file-excel-o"></i> 下载模板</a> </div> <font color="red" class="pull-left mt10"> 提示:仅允许导入“xls”或“xlsx”格式文件! </font> </div> </form> </script> </body> </html>