<!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; } .time3 label, .time3 span, .time3 input { float: left; } .time3 label { margin-top: 5px; } .time3 span { display: block; margin: 5px 5px; } </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> 到货单号:<input type="text" name="userDef2"/> </li> <li> 物料编码:<input type="text" name="materialCode"/> </li> <li> 生产批号:<input type="text" name="productionBatch"/> </li> <li class="time3" style="height: 30px"> <label>创建时间: </label> <input type="text" class="time-input" id="startTime" placeholder="开始时间" name="createdBegin"/> <span>-</span> <input type="text" class="time-input" id="endTime" placeholder="结束时间" name="createdEnd"/> </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 id="submit2" class="btn btn-outline btn-success btn-rounded" onclick="getBatchReceipt()" shiro:hasPermission="srm:srmDetail:confirm"> <i class="fa fa-paper-plane"></i> 获取ERP到货单(可多选) </a> <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: 10, 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); layui.use('laydate', function () { var laydate = layui.laydate; var day1 = new Date(); day1.setTime(day1.getTime() - 24 * 60 * 60 * 1000 * 180); var endDay = new Date(); endDay.setTime(endDay.getTime() + 24 * 60 * 60 * 1000); laydate.render({ elem: '#startTime', theme: 'molv', format: 'yyyy-MM-dd HH:mm:ss', type: 'datetime', value: new Date(day1), isInitValue: true }); laydate.render({ elem: '#endTime', theme: 'molv', format: 'yyyy-MM-dd HH:mm:ss', type: 'datetime', value: new Date(endDay), isInitValue: true }); }); }); $("#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.enable == 1) { if (row.uploadStatus4 == 1) { 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); } }, { field: 'enable', title: 'enable', visible: false } ] }); $("#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 = []; 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"]) { 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() { if (new Date().getTime() - resubmit > 2000) { resubmit = new Date().getTime(); 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 getBatchReceipt() { var rows = $("#bootstrap-table1").bootstrapTable('getSelections') if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return; } $.modal.confirm("确认执行选中的" + rows.length + "条数据吗?", function () { var url = prefixx + '/getBatchReceipt'; 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 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:3000/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() { if (new Date().getTime() - resubmit > 2000) { resubmit = new Date().getTime() 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>