<!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> #toolbar1{ display: inline-block; /*position: absolute;*/ margin: 10px auto; line-height: 34px; } #toolbar2{ display: inline-block; /*position: absolute;*/ margin: 10px auto; line-height: 34px; } </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">主表</a></li> <li><a href="#tabDetailNotArrive" data-toggle="tab">未到送货单明细</a></li> <li><a href="#tabDetail" data-toggle="tab">已到送货单明细</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="task-form"> <div class="select-list"> <ul> <li> 送货单号:<input type="text" name="code"/> </li> <li> 供 应 商:<input type="text" name="supplierCode"/> </li> <li> <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a> <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset('task-form')"><i class="fa fa-refresh"></i> 重置</a> </li> </ul> </div> </form> </div> <div class="btn-group hidden-xs" id="toolbar" role="group"> <!-- <a class="btn btn-outline btn-primary btn-rounded to-receive" onclick="getSrm()" shiro:hasPermission="srm:srmHeader:getReceipt">--> <!-- <i class="fa fa-paper-plane"></i> 扫描送货单--> <!-- </a>--> <a id="getERP" class="btn btn-outline btn-primary btn-rounded to-receive" onclick="getReceipt()" shiro:hasPermission="srm:srmHeader:list"> <i class="fa fa-paper-plane"></i> 获取ERP到货单 </a> </div> <input type="hidden" id="headerId" name="headerId" th:value="${headerId}"/> <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="toolbar1" role="group"> <a class="btn btn-outline btn-danger btn-rounded" onclick="batRemove()" shiro:hasPermission="srm:srmDetail:edit"> <i class="fa fa-trash-o"></i> 删除 </a> </div> <table id="bootstrap-table1" data-mobile-responsive="true" class="table table-bordered table-hover"></table> </div> <div class="tab-pane fade" id="tabDetailNotArrive"> <div class="select-list" id="toolbar2" role="group"> <ui> <li> <div class="btn-group hidden-xs" > <a class="btn btn-outline btn-success btn-rounded" onclick="checkWarehouse()" shiro:hasPermission="srm:srmDetail:checkWarehouse"> <i class="fa fa-plus"></i> 选择仓库 </a> <a id="submit" class="btn btn-outline btn-success btn-rounded" onclick="confirm()" shiro:hasPermission="srm:srmDetail:confirm"> <i class="fa fa-plus"></i> 提交 </a> <p id="currentSupplierName" style="width: 200px;"></p> </div> </li> <!-- <li>--> <!-- 账套:<input type="text" name="code"/>--> <!-- </li>--> </ui> <!-- <input type="hidden" id="headerId" name="headerId" th:value="${headerId}"/>--> <!-- <a class="btn btn-outline btn-success btn-rounded" onclick="confirmQty()" shiro:hasPermission="srm:srmDetail:confirmQty">--> <!-- <i class="fa fa-plus"></i> 默认数量--> <!-- </a>--> </div> <table id="bootstrap-table2" 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 checkFlag = [[${@permission.hasPermi('srm:srmDetail:check')}]]; var editFlag = [[${@permission.hasPermi('srm:srmDetail:edit')}]]; var supplier =[[${@SupplierService.getCode()}]]; var srmCheck = [[${@dict.getType('srmCheck')}]]; var companyCode = [[${@dict.getType('company_code')}]]; var uploadStatus = [[${@dict.getType('srmUpload')}]]; var prefix = ctx + "srm/srmHeader"; var prefixx = ctx + "srm/srmHeaderCheck"; var prefix1 = ctx + "srm/srmDetail"; var prefix2 = ctx + "srm/srmDetailNone"; var detailRemoveUrl=prefix1+"/remove"; var headerId = '' var warehouseWu = [[${@warehouseWu.getAllWarehouseWu()}]]; var confirmQtyFlag = [[${@permission.hasPermi('srm:srmDetail:confirmQty')}]]; var resubmit = new Date().getTime(); setInterval(refreshV,1000*60); function refreshV(){ $.table.refresh(); } $(function() { var options = { url: prefix + "/list", createUrl: prefix + "/add", updateUrl: prefix + "/edit/{id}", removeUrl: prefix + "/remove", modalName: "送货单", sortName: "created", sortOrder: "desc", search: false, pageSize:50, columns: [{ checkbox: true }, { field : 'id', title : 'id' , visible:false }, { title: '操作', align: 'center', formatter: function(value, row, index) { var actions = []; actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail(\'' + row.id + '\',\'' + row.supplierCode + '\')"><i class="fa fa-list-ul"></i>已到</a> '); actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail2(\'' + row.id + '\',\'' + row.supplierCode + '\')"><i class="fa fa-list-ul"></i>未到</a> '); // if (row.enable > 1){ // actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail(\'' + row.id + '\')"><i class="fa fa-list-ul"></i>明细</a> '); // }else{ // actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail2(\'' + row.id + '\')"><i class="fa fa-list-ul"></i>明细</a> '); // } return actions.join(''); } }, { field : 'operator', title : '操作人', sortable: true }, { title: '送货单类型', field: 'enable', formatter: function(value, row, index) { var actions = []; if (value >= 1) { actions.push("<span class='badge badge-info'> 已到送货单</span>"); }else{ actions.push("<span class='badge badge-danger'>未到送货单</span>"); } return actions.join(''); } }, { field : 'created', title : '生成时间', sortable: true }, { field : 'code', title : '送货单号', sortable: true }, { field : 'supplierCode', title : '供应商编码', sortable: true }, { field : 'supplierCode', title : '供应商名称', align: 'center', formatter: function(value, row, index) { var actions = []; $.each(supplier, function(index, dict) { if (dict.code == value) { actions.push("<span class='badge badge-info'>" + dict.name + "</span>"); return false; } }); return actions.join(''); } }, { field : 'userDef2', title : '采购到货单', sortable: true, align: 'center', formatter:function (value,row,index) { return $.table.tooltip(value, 10); } }, { field : 'userDef1', title : '返回信息', sortable: true, align: 'center', formatter:function (value,row,index) { return $.table.tooltip(value, 10); } }, { field : 'uploadStatus', title : '获取ERP采购单', align: 'center', formatter: function(value, row, index) { return $.table.selectDictLabel(uploadStatus, value); } }, { field : 'checkCode', title : '质检完成', align: 'center', formatter: function(value, row, index) { return $.table.selectDictLabel(srmCheck, value); } }, { field : 'mark', title : '唯一标识', sortable: false, visible:false }, { field : 'lastUpdatedBy', title : '更新用户', sortable: false, visible:false }, ] }; $.table.init(options); }); $("#bootstrap-table1").bootstrapTable({ sortable: true, //排序 showRefresh: true, //刷新 showToggle:true, //视图切换 clickToSelect: false, showColumns:true, //列选择 // detailView:true, showExport: true, //导出 exportDataType: "all", //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据 modalName: "任务明细", iconSize: "outline", toolbar: "#toolbar1", contentType: "application/x-www-form-urlencoded", sortName: "id", sortOrder: "desc", columns: [{ checkbox: true }, { field : 'id', title : 'id' , visible:false }, { title: '操作', align: 'center', formatter: function(value, row, index) { var actions = []; if(row.checkCode < 2 && row.uploadStatus4 > 0) { actions.push('<a class="btn btn-primary btn-xs ' + checkFlag + '" href="#" onclick="checkDetail(\'' + row.id + '\')"><i class="fa fa-check"></i>质检</a>'); } if(row.uploadStatus4 < 1 ) { actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="edit(\'' + row.id + '\')"><i class="fa fa-check"></i>编辑</a>'); } return actions.join(''); } }, { title : 'PLM图纸', formatter: function(value, row, index){ var actions = []; actions.push('<a class="btn btn-primary btn-xs ' + checkFlag + '" href="#" shiro:hasPermission="srm:srmDetail:selectDraw" onclick="queryDraw(\'' + row.materialCode + '\')" ><i class="fa fa-check"></i>查看图纸</a>'); return actions.join(''); } }, { field : 'companyCode', title : '账套', sortable: true, formatter: function(value, row, index) { return $.table.selectDictLabel(companyCode, value); } }, { field : 'uWarehouseName', title : '仓库', sortable: true }, { field : 'lineCode', title : '条码', sortable: true }, { field : 'productionBatch', title : '生产批号', sortable: true }, { field : 'batchNumberContent', title : '批号内容', sortable: true }, { field : 'materialCode', title : '存货编码', sortable: true }, { field : 'materialName', title : '物料名称', sortable:true }, { field : 'specification', title : '物料规格', sortable:true }, { field : 'qty', title : '数量' }, { field : 'confirmQty', title : '实到数量' }, { field : 'lastUpdate', title : '最后修改时间' , visible:false, sortable:true }, { field : 'lastUpdatedBy', title : '更新用户', visible:false }, { field : 'uploadStatus1', title : 'SRM到货上传', align: 'center', formatter: function(value, row, index) { return $.table.selectDictLabel(uploadStatus, value); } }, { field : 'uploadStatus4', title : 'ERP采购单上传', align: 'center', formatter: function(value, row, index) { return $.table.selectDictLabel(uploadStatus, value); } }, { field : 'checkCode', title : '质检完成', align: 'center', formatter: function(value, row, index) { return $.table.selectDictLabel(srmCheck, value); } }, ] }); $("#bootstrap-table2").bootstrapTable({ sortable: true, //排序 showRefresh: true, //刷新 showToggle:true, //视图切换 clickToSelect: false, showColumns:true, //列选择 // detailView:true, showExport: true, //导出 exportDataType: "all", //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据 modalName: "任务明细", iconSize: "outline", toolbar: "#toolbar2", contentType: "application/x-www-form-urlencoded", sortName: "id", sortOrder: "desc", columns: [{ checkbox: true }, { title: '操作', align: 'center', visible:false, formatter: function(value, row, index) { var actions = []; if(row.enable == 0) { actions.push('<a class="btn btn-primary btn-xs ' + confirmQtyFlag + '" href="#" onclick="confirmConfirQty(\'' + row.id + '\')"><i class="fa fa-check"></i>确认数量</a>'); } return actions.join(''); } }, { field : 'id', title : 'id', sortable: true }, { field : 'headerId', title : 'headerId', visible:false }, { field : 'uWarehouseName', title : '仓库', sortable: true, formatter: function(value, row, index) { var actions = []; debugger; if(row.enable == 0) { actions.push('<select id="select_'+row["id"]+'" onchange="selectListener(this,'+row["id"]+')">'); console.log(row["companyCode"] +" "+warehouseWu[row["companyCode"]]); if (warehouseWu[row["companyCode"]] !== undefined && warehouseWu[row["companyCode"]].length>0) { warehouseWu[row["companyCode"]].forEach(item => { if (row["uwarehouseCode"] === item["uwarehouseCode"]) {srmHeader/getwarehouse actions.push('<option value="' + item["uwarehouseCode"] + '" selected>' + item["uwarehouseName"] + '</option>'); } else { actions.push('<option value="' + item["uwarehouseCode"] + '">' + item["uwarehouseName"] + '</option>'); } }) actions.push('</select>'); } } return actions.join(''); } }, { field : 'companyCode', title : '账套', sortable: true, formatter: function(value, row, index) { return $.table.selectDictLabel(companyCode, value); } }, { field : 'materialCode', title : '存货编码', sortable: true }, { field : 'materialName', title : '物料名称', sortable:true }, { field : 'specification', title : '物料规格', sortable:true }, { field : 'qty', title : '数量' }, { field : 'unqualifiedQty', title : '不合格数量' }, { field : 'productionBatch', title : '生产批号', sortable: true }, { field : 'batchNumberContent', title : '批号内容', sortable: true }, { field : 'enable', title : '状态', visible:false }, { field : 'lineCode', title : '条码', sortable: true }, // { // field : 'lastUpdate', // title : '最后修改时间' , // visible:false, // sortable:true // }, // { // field : 'lastUpdatedBy', // title : '更新用户' // } ], onClickCell: function(field, value, row, $element) { if (field==="unqualifiedQty" && row.materialCode.charAt(0) == '1') { $element.attr('contenteditable', true); $element.blur(function () { let index = $element.parent().data('index'); let tdValue = $element.text(); if ((new Date().getTime()-resubmit)>1500) { resubmit = new Date().getTime() if(isNaN(tdValue)){ $.modal.alertWarning("请输入有效数字!"); return; } if(row.qty < tdValue){ $.modal.alertWarning("不合格数量不允许大于单据数量!"); return; } submitDelivery(row, tdValue); } }) } } }); /*默认数量*/ function confirmQty() { var rows=$("#bootstrap-table2").bootstrapTable('getSelections'); if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } $.modal.confirm("确认执行选中的" + rows.length + "条数据吗?", function() { var url = prefix2 + '/confirmQty'; var ids = ""; for(var i=0; i<rows.length; i++) { ids = ids + rows[i].id + "," } var data = { "ids": ids.substring(0, ids.length-1) }; localSubmit(url, "post", "json", data); }) } function selectListener(event,id){ console.log("选择了:",event.value) selectWarehouse(event.value,id) $('#select_'+ id).val = event.value; } /* 选择仓库*/ function checkWarehouse() { var rows=$("#bootstrap-table2").bootstrapTable('getSelections'); if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } var ids = ""; for(var i=0; i<rows.length; i++) { ids = ids + rows[i].id + "," } var url = prefix2 + "/checkWarehouse/" + ids; $.modal.open("选择仓库" , url); } /*提交*/ function confirm() { var rows=$("#bootstrap-table2").bootstrapTable('getSelections') if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } $.modal.confirm("确认执行选中的" + rows.length + "条数据吗?", function() { var url = prefix2 + '/confirm'; var ids = ""; for(var i=0; i<rows.length; i++) { ids = ids + rows[i].id + "," } var data = { "ids": ids.substring(0, ids.length-1)}; localSubmit(url, "post", "json", data); }) } function confirmConfirQty(id) { var url = prefix2 + "/confirmConfirQty?id="+id; $.modal.openFull("确认数量",url); } function submitDelivery(row,value){ if(row.unqualifiedQty == value){ return; } formData = {} formData["headId"] = row["headId"] formData["id"] = row["id"] formData["materialCode"] = row["materialCode"] formData["materialName"] = row["materialName"] formData["qty"] = row["qty"] formData["unqualifiedQty"] = value confirmAmount(formData) } function confirmAmount(form) { $.ajax({ cache : true, type : "POST", url : prefix2+"/updateQualifiedQty", data : form, async : false, error : function(request) { $.modal.alertError("请求失败!"); }, success : function(data) { // $.operate.saveSuccess(data); ajaxSuccess(data); } }); } function selectWarehouse(value,id) { $.ajax({ cache: true, type: "POST", url: prefix2 + "/checkWarehouse", data: { "ids":id, "uWarehouseCode":value, }, async : false, error : function(request) { $.modal.alertError("请求失败!"); }, success : function(data) { // $.operate.saveSuccess(data); ajaxSuccess(data); } }); } function ajaxSuccess(result) { if (result.code == web_status.SUCCESS) { $.modal.msgSuccess(result.msg); var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index); window.parent.$.table.search(); $(parent.$("#detail2")).click(); } else { $.modal.alertError(result.msg); } // $.modal.msgSuccess(result.msg); $.modal.closeLoading(); window.parent.detail2(headerId) } function createtable(url,headerId) { $("#myTab li").removeClass("active"); $(".tab-pane").removeClass("in active"); $("#myTab li:eq(1)").addClass("active"); $("#tabDetailNotArrive").addClass("in active"); $.ajax({ url:url, type: 'post', data:{ headerId:headerId }, success : function (value) { $("#bootstrap-table2").bootstrapTable('load', value.data); } }) } function queryDraw(code){ $.ajax({ url:ctx + 'draw/selectDraw', type: 'get', data:{ "no":code }, success : function (res) { debugger; if (res.code == 200){ var data = res.data; window.open("http://172.16.2.10:8087/sipmweb/web/search/detail?rid="+data.rid+"&id="+data.objId+"&t=DWGSW","_blank"); }else{ $.modal.alertError(res.msg) } } }); } let currentSupplierName; /*入库单列表-详细*/ function detail(id,code,enable,supplierCode) { debugger $.each(supplier, function(index, dict) { if (dict.code == supplierCode) { currentSupplierName = dict.name; $('#currentSupplierName').html(currentSupplierName); return false; } }); if (enable == 0){ detail2(id,supplierCode); return } headerId = id; $("#myTab li").removeClass("active"); $("#tabHeader").removeClass("in active"); $("#myTab li:eq(2)").addClass("active"); $("#tabDetail").addClass("in active"); loadDetail(); } /*入库单列表-详细*/ function detail2(headerId,supplierCode) { debugger $.each(supplier, function(index, dict) { if (dict.code == supplierCode) { currentSupplierName = dict.name; $('#currentSupplierName').html(currentSupplierName); return false; } }); var url = ctx + 'srm/srmDetailNone/list'; createtable(url,headerId); } /*入库单列表-详细*/ function loadDetail() { $.ajax({ url:ctx + 'srm/srmDetail/list', type: 'post', data:{ "headerId":headerId }, success : function (value) { $("#bootstrap-table1").bootstrapTable('load',value.data); } }); // var url = ctx + 'srm/srmDetail/list'; // headerId = headerId; // 主单Id 再试下 // createtable(url,headerId); } /* 检验 */ function checkDetail(id) { let url=prefix1 + "/check/"+ id; $.modal.open("检查" , url); } /* 检验 */ function edit(id) { let url=prefix1 + "/edit/"+ id; $.modal.open("检查" , url); } // setTimeout(function() { // $.table.refresh(); // },1000) function batRemove() { var rows=$("#bootstrap-table1").bootstrapTable('getSelections'); // var rows = $.common.isEmpty($.table._option.id) ? $.table.selectFirstColumns() : $.table.selectColumns($.table._option.id); if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } $.modal.confirm("确认要删除选中的" + rows.length + "条数据吗?", function() { var url = detailRemoveUrl; var data = { "ids": rows.map(function(v){return v.id;}).join(',') }; localSubmit(url, "post", "json", data); }); } function localSubmit (url, type, dataType, data) { $.modal.loading("正在处理中,请稍后..."); $('#getERP').attr("disabled","disabled"); var config = { url: url, type: type, dataType: dataType, data: data, success: function (result) { $('#getERP').removeAttr('disabled'); if (result.code == web_status.SUCCESS) { $.modal.msgSuccess(result.msg); loadDetail() } else { $.modal.alertError(result.msg) } $.modal.closeLoading() } }; $.ajax(config) } function getSrm() { $.modal.open("送货单扫描",prefix+"/getSrm") } /*获取ERP到货单*/ function getReceipt() { var rows=$("#bootstrap-table").bootstrapTable('getSelections'); if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } $.modal.confirm("确认执行选中的" + rows.length + "条数据吗?", function() { var url = prefixx + '/getReceipt'; var ids = ""; for(var i=0; i<rows.length; i++) { ids = ids + rows[i].id + "," } var data = { "ids": ids.substring(0, ids.length-1) }; $.operate.submit(url, "post", "json", data); }) } </script> </body> </html>