<!DOCTYPE HTML> <html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> <meta charset="utf-8"> <head th:include="include :: header"></head> <style> .table-striped-left{ width: 41%; /*margin-right: 4px;*/ } .table-striped-right{ /*right: -10px;*/ width: 58%; float: right; } .info_text{ float: right; } .info_text li{ font-size: 16px; } .info_text li span{ font-size: 20px; font-weight: bold; color: rgb(28,132,198); } </style> <body class="gray-bg"> <div class="container-div"> <div class="row"> <div class="col-sm-12 select-info"> <form id="dept-form"> <div class="select-list"> <ul> <li> 收货单号:<input type="text" id="code" name="deptName"/> </li> <li> <a class="btn btn-primary btn-rounded btn-sm" id="list-btn"><i class="fa fa-search"></i> 搜索</a> </li> </ul> <ul class="info_text"> <li>物料总数:<span id="material_length"></span></li> <li>总单据数量:<span id="qty_length"></span></li> <li>已收货数量:<span id="qtyCompleted_length"></span></li> </ul> </div> </form> </div> <div class="col-sm-12 select-info table-striped-left" style="padding-top: 20px;"> <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover text-nowrap"></table> </div> <div class="col-sm-12 select-info table-striped-right"> <ul class="select-list"> <li style="display: none">id:<input type="text" id="detailId"/></li> <li>收货数量:<input type="text" id="receiveNum"/></li> <li>容器编号:<input type="text" id="containerCode"/></li> <li> <button class="btn btn-sm btn-success" onclick="receipt()">组盘</button> </li> </ul> <div class="btn-group hidden-xs" id="toolbar1" role="group"> <a class="btn btn-outline btn-success btn-rounded" onclick="positioning()" shiro:hasPermission="receipt:receiptDetail:add"> <i class="fa fa-map-pin"></i> 定位 </a> <a class="btn btn-outline btn-info btn-rounded" onclick="cancelPositioning()" shiro:hasPermission="receipt:receiptDetail:remove"> <i class="fa fa-times"></i> 取消定位 </a> <a class="btn btn-outline btn-danger btn-rounded" onclick="batRemove()" shiro:hasPermission="receipt:receiptDetail:remove"> <i class="fa fa-trash-o"></i> 取消收货 </a> <a class="btn btn-outline btn-warning btn-rounded" onclick="createTask()" shiro:hasPermission="receipt:receiptContainer:add"> <i class="fa fa-edit"></i> 生成任务 </a> </div> <table id="bootstrap-table1" data-mobile-responsive="true" class="table table-bordered table-hover text-nowrap"></table> <ul class="select-list top_text"> <li><span class="table-title">本物料库存</span></li> </ul> <table id="bootstrap-table2" data-mobile-responsive="true" class="table table-bordered table-hover text-nowrap"></table> <ul class="select-list top_text"> <li>空容器类型:<select name="type" id="containerType" th:with="typeList=${@containerType.getCode()}"> <option value="">所有</option> <option th:each="c:${typeList}" th:text="${c['name']}" th:value="${c['code']}"></option> </select></li> <li> <button class="btn btn-sm btn-success" onclick="containerTypeSearch()">搜索</button> </li> </ul> <table id="bootstrap-table3" data-mobile-responsive="true" class="table table-bordered table-hover text-nowrap"></table> </div> </div> </div> <div th:include="include :: footer"></div> <script th:inline="javascript"> var addFlag = [[${@permission.hasPermi('receipt:receiving:add')}]]; var removeFlag = [[${@permission.hasPermi('receipt:receiving:remove')}]]; var prefix = ctx + "receipt/receiving"; var Types = [[${@dict.getType('taskType')}]]; var Status=[[${@dict.getType('receiptContainerHeaderStatus')}]]; var inventoryStatus =[[${@dict.getType('inventoryStatus')}]]; $(function () { $("#bootstrap-table3").bootstrapTable({ url: ctx+'config/container/emptyContainer', iconSize: "outline", modalName: "空盒", pagination: true, // 是否显示分页(*) pageNumber: 1,// 初始化加载第一页,默认第一页 method: 'post', pageSize: 5, // 每页的记录行数(*) showRefresh: true, pageList: [10, 25, 50], contentType: "application/x-www-form-urlencoded", columns: [{ field : 'code', title : '容器编号' },{ field : 'locationCode', title : '库位编号' }] }); }); function list_select(code) { $.ajax({ url: prefix + "/scanBill", type: 'post', datatype: 'json', data: { code: code }, error:function (response) { console.log(response); }, success: function (value) { var qty_show=0; var qtyCompleted_show=0; $("#bootstrap-table").bootstrapTable('removeAll'); if(value.data){ for (var i = 0; i < value.data.length; i++) { if (value.data[i].totalQty > value.data[i].openQty) { $("#bootstrap-table").bootstrapTable('insertRow', { index: 0, row: { projectNo:value.data[i].project, id: value.data[i].id, materialName: value.data[i].materialName, receiptId: value.data[i].receiptId, receiptCode: value.data[i].receiptCode, materialCode: value.data[i].materialCode, totalQty: value.data[i].totalQty, openQty: value.data[i].openQty, inventorySts: value.data[i].inventorySts, materialUnit: value.data[i].materialUnit } }); } qty_show=value.data[i].totalQty + qty_show; qtyCompleted_show=value.data[i].openQty + qtyCompleted_show; } $("#material_length").text(value.data.length); $("#qty_length").text(qty_show); $("#qtyCompleted_length").text(qtyCompleted_show); } else { console.log("收货单不存在!") } } }) } function list_receiptInfo(code) { $.ajax({ url: prefix + "/getReceiptInfoByBill", type: 'post', datatype: 'json', data: { code: code }, error:function (response) { console.log(response); }, success: function (value) { $("#bootstrap-table1").bootstrapTable('removeAll'); if(value.data){ for (var i = 0; i < value.data.length; i++) { $("#bootstrap-table1").bootstrapTable('insertRow', { index: 0, row: { projectNo :value.data[i].projectNo, id: value.data[i].id, receiptContainerId:value.data[i].receiptContainerId, receiptDetailId:value.data[i].receiptDetailId, containerCode: value.data[i].containerCode, locationCode: value.data[i].locationCode, materialCode: value.data[i].materialCode, materialName: value.data[i].materialName, materialSpec: value.data[i].materialSpec, taskType:value.data[i].taskType, qty: value.data[i].qty, status: value.data[i].status, created: value.data[i].created, createdBy: value.data[i].createdBy } }); } } else { console.log("没有查找到入库容器!") } } }) } $("#list-btn").click(initTable); $("body").bind("keypress",function(e){ // 兼容FF和IE和Opera var theEvent = e || window.event; var code = theEvent.keyCode || theEvent.which || theEvent.charCode; if (code == 13) { e.preventDefault(); //回车执行查询 initTable(); // list_select($("#code").val()); } }); function initTable(){ var receiptCode=$("#code").val(); list_select(receiptCode); list_receiptInfo(receiptCode); $("#bootstrap-table1").bootstrapTable('removeAll'); $("#bootstrap-table2").bootstrapTable('removeAll'); } $("#bootstrap-table").bootstrapTable({ // url: prefix + "/list", createUrl: prefix + "/add", updateUrl: prefix + "/edit/{id}", removeUrl: prefix + "/remove", contentType: "application/x-www-form-urlencoded", clickToSelect: true, modalName: "收货", onRefresh: function(){ }, onClickRow:function(row,ele,field){ let code=$("#code").val(); $("#detailId").val(row.id); $("#receiveNum").val(row.totalQty-row.openQty); $.ajax({ url:prefix+'/getInventoryInfo', type:'post', data:{ code:code, id:row.id }, success:res=>{ // $("#bootstrap-table1").bootstrapTable('load',res.data.list); $("#bootstrap-table2").bootstrapTable('load',res.data.inventoryList); // $("#bootstrap-table3").bootstrapTable('load',res.data.containerList); } }) }, columns: [ // { // field : 'id', // title : 'id号' // }, // { // field : 'receiptCode', // title : '收货单编码' // }, { field : 'id', title : '明细id' }, { field : 'materialCode', title : '物料编码' }, { field: "materialName", title: "名称" }, { field : 'totalQty', title : '单据数量' }, { field : 'openQty', title : '已入数量' }, { field : 'inventorySts', title : '库存状态' }, { field : 'projectNo', title : '项目号' }, { field : 'materialUnit', title : '单位' }, ] }); $("#bootstrap-table1").bootstrapTable({ removeUrl: ctx + "receipt/receiptContainerDetail/remove", // search: true, //搜索 showRefresh: true, //刷新 showToggle:true, //视图切换 clickToSelect: true, showColumns:true, //列选择 // detailView:true, toolbar: "#toolbar1", showExport: true, //导出 exportDataType: "all", //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据 modalName: "入库组盘", iconSize: "outline", toolbar: "#toolbar1", contentType: "application/x-www-form-urlencoded", onRefresh: function(){ list_receiptInfo($("#code").val()); }, columns: [ { checkbox: true }, { field : 'id', title : '组盘明细id', visible: false }, { field : 'receiptContainerId', title : '组盘头id', visible: false }, { field : 'containerCode', title : '容器编号' }, { field : 'locationCode', title : '库位编号' }, { field : 'materialCode', title : '物料编码' }, { field:"materialName", title:"物料名称" }, { field:"materialSpec", title:"物料规格" }, { field : 'qty', title : '数量' }, { field : 'project', title : '项目号', visible: false }, { field : 'status', title : '组盘状态', align: 'center', formatter: function(value, row, index) { return $.table.selectDictLabel(Status, value); } }, { field : 'receiptDetailId', title : '入库单明细id' }, { field : 'created', title : '创建时间' }, { field : 'createdBy', title : '创建人' }, { title: '操作', align: 'center', events:'operateEvents', formatter: function(value, row, index) { var actions = []; if (row.status == 0) { actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>取消</a>'); } return actions.join(''); } }] }); $("#bootstrap-table2").bootstrapTable({ removeUrl: ctx + "receipt/receiptContainerDetail/remove", clickToSelect: true, showColumns:true, //列选择 showExport: true, //导出 iconSize: "outline", toolbar: "#toolbar", exportDataType: "all", //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据 modalName: "入库组盘", pagination: true, // 是否显示分页(*) pageNumber: 1, // 初始化加载第一页,默认第一页 pageSize: 5, // 每页的记录行数(*) pageList: [10, 25, 50], contentType: "application/x-www-form-urlencoded", columns: [ { field : 'containerCode', title : '容器编号' }, { field : 'materialCode', title : '存货编码' }, { field : 'materialName', title : '物料名称' }, { field : 'materialSpec', title : '物料规格' }, { field : 'qty', title : '数量' }, { field : 'companyName', title : '货主' }, { field : 'locationCode', title : '库位编号' }, { field : 'status', title : '库存状态' , align: 'center', formatter: function(value, row, index) { return $.table.selectDictLabel(inventoryStatus, value); } }, ] }); window.operateEvents = { 'click #qty': function (e, value, row, index) { var url = prefix + '/add?'; jQuery.each(row, function(key, val) { url = url + key + "=" + encodeURI(val) + "&"; }); var modalName="入库组盘"; $.modal.open("添加"+modalName,url); } }; function receiving_refresh() { var receiving_code = localStorage.getItem("receiving_code"); $("#code").val(receiving_code); if (receiving_code) { initTable(); } localStorage.removeItem("receiving_code"); } receiving_refresh(); function remove(id) { $.modal.confirm("确定删除该组盘?", function() { var url = ctx + "receipt/receiptContainerDetail/remove"; var data = { "ids": id }; $.operate.submitAndCallback(url, "post", "json", data, initTable); }); } function positioning() { let rows = $("#bootstrap-table1").bootstrapTable('getSelections'); if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } var url = ctx+"receipt/receiptContainerHeader/position"; var ids = ""; for (var i = 0; i<rows.length; i++){ ids += rows[i].receiptContainerId; ids += ","; } var data = { "ids": ids }; $.modal.loading("正在处理中,请稍后..."); var config = { url: url, type: "post", dataType: "json", data: data, success: function(result) { $.operate.ajaxSuccess(result); list_receiptInfo($("#code").val()); } }; $.ajax(config) $.table.refresh("bootstrap-table1"); } function refresh() { var receiptCode=$("#code").val(); list_select(receiptCode); list_receiptInfo(receiptCode); $("#bootstrap-table1").bootstrapTable('removeAll'); $("#bootstrap-table2").bootstrapTable('removeAll'); } function cancelPositioning() { let rows = $("#bootstrap-table1").bootstrapTable('getSelections'); if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } var url = ctx+"receipt/receiptContainerHeader/cancelPosition"; var ids = ""; for (var i = 0; i<rows.length; i++){ ids += rows[i].receiptContainerId; ids += ","; } var data = { "ids": ids }; $.modal.loading("正在处理中,请稍后..."); var config = { url: url, type: "post", dataType: "json", data: data, success: function(result) { $.operate.ajaxSuccess(result); list_receiptInfo($("#code").val()); } }; $.ajax(config) $.table.refresh("bootstrap-table1"); } function batRemove() { let rows = $("#bootstrap-table1").bootstrapTable('getSelections'); if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } var url = ctx+"receipt/receiptContainerDetail/remove"; var ids = ""; for (var i = 0; i<rows.length; i++){ ids += rows[i].id; ids += ","; } var data = { "ids": ids }; var config = { url: url, type: "post", dataType: "json", data: data, success: function(result) { $.operate.ajaxSuccess(result); list_receiptInfo($("#code").val()); list_select($("#code").val()); } }; $.ajax(config); $.table.refresh("bootstrap-table1"); } function receipt() { let containerCode = $("#containerCode").val(); let locationCode = ''; Receiving(locationCode, containerCode); } /** * 组盘 * @param locationCode * @param containerCode */ function Receiving(locationCode,containerCode) { let receiptCode=$("#code").val(); let num=$("#receiveNum").val(); let receiptDetailId=$("#detailId").val(); $.ajax({ url:ctx + "receipt/receiving/save", type:'post', data:{ receiptCode:receiptCode, qty: num, receiptDetailId:receiptDetailId, locationCode:locationCode, containerCode:containerCode }, success:function (data) { if(data.code===200){ $.modal.msgSuccess('成功'); initTable(); } else{ $.modal.msg(data.msg); } } }) } function chooseStation(id) { var url = ctx + "receipt/receiptContainerHeader/chooseStation" + "/" + id; $.modal.open("选择站台", url); } function createTask() { let rows=$("#bootstrap-table1").bootstrapTable('getSelections'); if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } if(rows[0].taskType == 200) { let ids = ""; for(let i=0; i<rows.length; i++) { if(ids == "") { ids = rows[i].receiptContainerId; } else { ids = ids + "," + rows[i].receiptContainerId } } chooseStation(ids); } else { let url = ctx + "receipt/receiptContainerHeader/createTask"; let ids = ""; for(let i=0; i<rows.length; i++) { ids = ids + rows[i].receiptContainerId + "," } let data = { "ids": ids.substring(0, ids.length-1) }; $.modal.loading("正在处理中,请稍后..."); var config = { url: url, type: "post", dataType: "json", data: data, success: function(result) { if (result.code == web_status.SUCCESS) { $.modal.msgSuccess(result.msg); $.table.refresh("bootstrap-table1"); } else { $.modal.alertError(result.msg); } $.modal.closeLoading(); } }; $.ajax(config) } } function containerTypeSearch() { var params = { query:{containerType:$("#containerType").val()} } $("#bootstrap-table3").bootstrapTable('refresh',params); } </script> </body> </html>