From 2998faf8dceff0189854742d78455762fffb95e3 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期一, 15 十二月 2025 12:06:21 +0800
Subject: [PATCH] #订单导入
---
src/main/webapp/static/js/order/order.js | 281 +++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 208 insertions(+), 73 deletions(-)
diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index 528f193..cd9ed08 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -14,19 +14,19 @@
// 娓叉煋鎼滅储妯℃澘
$.ajax({
- url: baseUrl+"/docType/list/auth",
+ url: baseUrl + "/docType/list/auth",
headers: {'token': localStorage.getItem('token')},
data: {
limit: 9999
},
method: 'POST',
success: function (res) {
- if (res.code === 200){
+ if (res.code === 200) {
let template = Handlebars.compile($('#docTypeTpl').html());
$('#docType-query').html(template(res.data));
layui.form.render('select');
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
} else {
layer.msg(res.msg, {icon: 2})
}
@@ -36,7 +36,7 @@
// 娓叉煋琛ㄦ牸
var insTb = table.render({
elem: '#order',
- url: baseUrl+'/order/head/page/auth',
+ url: baseUrl + '/order/head/page/auth',
headers: {token: localStorage.getItem('token')},
page: true,
cellMinWidth: 100,
@@ -44,12 +44,12 @@
{type: 'numbers'},
{field: 'orderNo', title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl'},
// {field: 'itemName', align: 'center', title: '瀹㈡埛po', minWidth: 160, width: 160},
- {field: 'docType$', align: 'center', title: '绫诲瀷', minWidth: 160, width: 160},
- {field: 'cstmrName', align: 'center', title: '璐т富', minWidth: 160, width: 160},
+ {field: 'docType$', align: 'center', title: '绫诲瀷', minWidth: 160, width: 160},
+ {field: 'cstmrName', align: 'center', title: '璐т富', minWidth: 160, width: 160},
{align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160},
{field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, width: 200},
- {field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 160, width: 160},
- {field: 'memo', align: 'center',title: '澶囨敞', hide: true},
+ {field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 160, width: 160},
+ {field: 'memo', align: 'center', title: '澶囨敞', hide: true},
{align: 'center', title: '鎿嶄綔', toolbar: '#operate', width: 180}
]],
request: {
@@ -70,7 +70,7 @@
done: function (res, curr, count) {
limit();
if (res.code === 403) {
- top.location.href = baseUrl+"/";
+ top.location.href = baseUrl + "/";
}
insTbCount = count;
}
@@ -118,7 +118,7 @@
table.render({
elem: '#lookSSXMTable',
headers: {token: localStorage.getItem('token')},
- url: baseUrl+'/orderDetl/list/auth',
+ url: baseUrl + '/orderDetl/list/auth',
where: {
order_id: data.id
},
@@ -186,18 +186,18 @@
}
let nList = admin.util.deepClone(xxDataList);
for (let xi = 0; xi < nList.length; xi++) {
- if (nList[xi].anfme <= 0){
+ if (nList[xi].anfme <= 0) {
layer.msg('鏄庣粏淇敼鏁伴噺涓嶅悎娉�', {icon: 2});
return false;
}
- if (nList[xi].anfme < nList[xi].workQty){
+ if (nList[xi].anfme < nList[xi].workQty) {
layer.msg('鏁伴噺涓嶈兘灏忎簬宸蹭綔涓氭暟閲�', {icon: 2});
return false;
}
}
layer.load(2);
$.ajax({
- url: baseUrl+"/order/form/" + (isExpAdd?"add":"modify") + "/auth",
+ url: baseUrl + "/order/form/" + (isExpAdd ? "add" : "modify") + "/auth",
headers: {'token': localStorage.getItem('token')},
data: JSON.stringify({
orderId: Number(data.field.id),
@@ -207,17 +207,17 @@
ownerId: Number(data.field.owner),
orderDetlList: nList
}),
- contentType:'application/json;charset=UTF-8',
+ contentType: 'application/json;charset=UTF-8',
method: 'POST',
success: function (res) {
layer.closeAll('loading');
- if (res.code === 200){
+ if (res.code === 200) {
layer.close(dIndex);
$(".layui-laypage-btn")[0].click();
layer.msg(res.msg, {icon: 1});
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
layer.msg(res.msg, {icon: 2});
}
}
@@ -239,17 +239,31 @@
{field: 'maktx', title: '鍚嶇О', width: 80},
// {field: 'batch', title: '鎵瑰彿', edit: true},
// {field: 'specs', title: '瑙勬牸'},
- {field: 'standby1', title: 'po',edit: true},
- {field: 'standby2', title: 'upc',edit: true},
- {field: 'standby3', title: '瀹㈡埛SKU',edit: true},
- {field: 'boxType1', title: '璐т富鍚嶇О',edit: true},
- {field: 'boxType2', title: '璐т富缂栧彿',edit: true},
- {field: 'boxType3', title: '閲囪喘鍗曞彿',edit: true},
- {field: 'anfme', title: '鏁伴噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
- {field: 'workQty', title: '浣滀笟鏁伴噺', minWidth: 100, width: 100},
+ {field: 'standby1', title: 'po', edit: true},
+ {field: 'standby2', title: 'upc', edit: true},
+ {field: 'standby3', title: '瀹㈡埛SKU', edit: true},
+ {field: 'boxType1', title: '璐т富鍚嶇О', edit: true},
+ {field: 'boxType2', title: '璐т富缂栧彿', edit: true},
+ {field: 'boxType3', title: '閲囪喘鍗曞彿', edit: true},
+ {
+ field: 'anfme',
+ title: '鏁伴噺(淇敼)',
+ style: 'color: blue;font-weight: bold',
+ edit: true,
+ minWidth: 110,
+ width: 110
+ },
+ {field: 'workQty', title: '浣滀笟鏁伴噺', minWidth: 100, width: 100},
// {field: 'unit', title: '鍗曚綅', width: 80},
- {field: 'memo', title: '澶囨敞' , edit: true},
- {align: 'center', title: '鎿嶄綔', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80, fixed: 'right'}
+ {field: 'memo', title: '澶囨敞', edit: true},
+ {
+ align: 'center',
+ title: '鎿嶄綔',
+ toolbar: '#formSSXMTableBar',
+ minWidth: 80,
+ width: 80,
+ fixed: 'right'
+ }
]],
done: function (res) {
$(layero).find('.layui-table-view').css('margin', '0');
@@ -258,17 +272,17 @@
};
if (!isExpAdd) {
$.ajax({
- url: baseUrl+"/order/detl/all/auth?orderId=" + expTpe.id,
+ url: baseUrl + "/order/detl/all/auth?orderId=" + expTpe.id,
headers: {'token': localStorage.getItem('token')},
method: 'GET',
async: false,
success: function (res) {
- if (res.code === 200){
+ if (res.code === 200) {
xxDataList = res.data;
tbOptions.data = xxDataList;
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
layer.msg(res.msg, {icon: 2})
}
}
@@ -282,7 +296,7 @@
if (layEvent === 'edit') {
showEditModel2(data);
} else if (layEvent === 'del') {
- if(data.workQty > 0){
+ if (data.workQty > 0) {
layer.msg("宸插瓨鍦ㄤ綔涓氭暟閲忥紝涓嶈兘鍒犻櫎", {icon: 2});
return;
}
@@ -305,7 +319,7 @@
table.on('edit(formSSXMTable)', function (obj) {
let index = obj.tr.attr("data-index");
let data = xxDataList[index];
- if (obj.field === 'anfme'){
+ if (obj.field === 'anfme') {
let vle = Number(obj.value);
if (isNaN(vle)) {
layer.msg("璇疯緭鍏ユ暟瀛�", {icon: 2});
@@ -317,7 +331,7 @@
// insTbSSXM.reload({data: xxDataList});
return false;
}
- if(obj.value < data.workQty){
+ if (obj.value < data.workQty) {
layer.msg("杈撳叆鏁伴噺涓嶈兘灏忎簬浣滀笟涓暟閲�", {icon: 2});
// data[obj.field] = 0;
// insTbSSXM.reload({data: xxDataList});
@@ -331,6 +345,119 @@
$('#matAddBtnComment').click(function () {
showEditModel2();
+ });
+ // 瀵煎叆Excel鎸夐挳鐐瑰嚮
+ $('#importExcelBtn').on('click', function () {
+ admin.open({
+ type: 1,
+ title: '瀵煎叆鏄庣粏Excel',
+ area: '500px',
+ content: $('#importExcelDialog').html(),
+ success: function (layero, dIndex) {
+ // 涓嬭浇妯℃澘
+ $('#downloadExcelTemplate').on('click', function () {
+ var data = [
+ ['鐗╂枡缂栫爜', '瀹㈡埛PO', '鏉$爜UPC', '瀹㈡埛SKU', '閲囪喘鍗曞彿', '鍑哄簱鏁伴噺'],
+ ['', '', '', '', '', 0] // 绀轰緥琛�
+ ];
+ var ws = XLSX.utils.aoa_to_sheet(data);
+ var wb = XLSX.utils.book_new();
+ XLSX.utils.book_append_sheet(wb, ws, "鏄庣粏");
+ XLSX.writeFile(wb, "鍑哄簱鏄庣粏瀵煎叆妯℃澘.xlsx");
+ });
+
+ // 寮�濮嬪鍏�
+ $('#doImportExcel').on('click', function () {
+ var fileInput = $('#excelFileInput')[0];
+ if (!fileInput.files || !fileInput.files[0]) {
+ layer.msg('璇峰厛閫夋嫨Excel鏂囦欢', {icon: 2});
+ return;
+ }
+ var file = fileInput.files[0];
+ var reader = new FileReader();
+ reader.onload = function (e) {
+ try {
+ var data = new Uint8Array(e.target.result);
+ var workbook = XLSX.read(data, {type: 'array'});
+ var firstSheet = workbook.Sheets[workbook.SheetNames[0]];
+ var jsonData = XLSX.utils.sheet_to_json(firstSheet, {
+ header: ['matnr', 'standby1', 'standby2', 'standby3', 'boxType3', 'anfme'],
+ range: 1
+ }); // 浠庣2琛屽紑濮�
+
+ if (jsonData.length === 0) {
+ layer.msg('Excel涓病鏈夋暟鎹�', {icon: 2});
+ return;
+ }
+
+ var successCount = 0;
+ var errorMsgs = [];
+
+ jsonData.forEach(function (row, idx) {
+ if (!row.matnr) {
+ errorMsgs.push('绗�' + (idx + 2) + '琛岋細鐗╂枡缂栫爜涓嶈兘涓虹┖');
+ return;
+ }
+ var anfme = Number(row.anfme);
+ if (isNaN(anfme) || anfme <= 0) {
+ errorMsgs.push('绗�' + (idx + 2) + '琛岋細鏁伴噺蹇呴』涓哄ぇ浜�0鐨勬暟瀛�');
+ return;
+ }
+
+ // 閫氳繃鐗╂枡缂栫爜鏌ヨ瀹屾暣鐗╂枡淇℃伅锛堜笌鍘熸湁娣诲姞鏂瑰紡涓�鑷达級
+ $.ajax({
+ url: baseUrl + "/mat/covert/" + row.matnr + "/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ async: false,
+ success: function (res) {
+ if (res.code === 200) {
+ var item = res.data;
+ // 瑕嗙洊瀵煎叆鐨勫瓧娈�
+ item.standby1 = row.standby1 || item.standby1 || '';
+ item.standby2 = row.standby2 || item.standby2 || '';
+ item.standby3 = row.standby3 || item.standby3 || '';
+ item.boxType3 = row.boxType3 || item.boxType3 || '';
+ item.anfme = anfme;
+ item.workQty = item.workQty || 0;
+
+ if (anfme < item.workQty) {
+ errorMsgs.push('绗�' + (idx + 2) + '琛岋細鏁伴噺涓嶈兘灏忎簬宸蹭綔涓氭暟閲�(' + item.workQty + ')');
+ return;
+ }
+
+ xxDataList.push(item);
+ successCount++;
+ } else {
+ errorMsgs.push('绗�' + (idx + 2) + '琛岋細鐗╂枡缂栫爜 ' + row.matnr + ' 鏌ヨ澶辫触 - ' + res.msg);
+ }
+ },
+ error: function () {
+ errorMsgs.push('绗�' + (idx + 2) + '琛岋細鐗╂枡缂栫爜 ' + row.matnr + ' 鏌ヨ澶辫触');
+ }
+ });
+ });
+
+ insTbSSXM.reload({data: xxDataList});
+
+ if (errorMsgs.length > 0) {
+ layer.msg('瀵煎叆瀹屾垚锛屾垚鍔�' + successCount + '鏉★紝澶辫触淇℃伅锛�<br>' + errorMsgs.slice(0, 10).join('<br>') + (errorMsgs.length > 10 ? '<br>...绛�' : ''), {
+ icon: 2,
+ time: 8000
+ });
+ } else {
+ layer.msg('鎴愬姛瀵煎叆 ' + successCount + ' 鏉℃槑缁�', {icon: 1});
+ }
+
+ layer.close(dIndex);
+ } catch (err) {
+ layer.msg('瑙f瀽Excel澶辫触锛�' + err.message, {icon: 2});
+ }
+ };
+ reader.readAsArrayBuffer(file);
+ });
+ }
+ });
});
// 鏄剧ず娣诲姞鏄庣粏琛ㄥ崟寮圭獥
@@ -347,21 +474,21 @@
// 琛ㄥ崟鎻愪氦浜嬩欢
form.on('submit(matEditSubmit)', function (data) {
let selectList = matXmSelect.getValue();
- for (let i = 0; i<selectList.length; i++) {
+ for (let i = 0; i < selectList.length; i++) {
let item = selectList[i];
// 鏌ヨ鐗╂枡璇︽儏
$.ajax({
- url: baseUrl+"/mat/covert/"+item.value+"/auth",
+ url: baseUrl + "/mat/covert/" + item.value + "/auth",
headers: {'token': localStorage.getItem('token')},
method: 'GET',
async: false,
success: function (res) {
- if (res.code === 200){
+ if (res.code === 200) {
xxDataList.push(res.data);
insTbSSXM.reload({data: xxDataList, page: {curr: 1}});
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
layer.msg(res.msg, {icon: 2})
}
}
@@ -377,19 +504,19 @@
width: '340px',
},
autoRow: true,
- toolbar: { show: true },
+ toolbar: {show: true},
filterable: true,
remoteSearch: true,
- remoteMethod: function(val, cb, show){
+ remoteMethod: function (val, cb, show) {
$.ajax({
- url: baseUrl+"/mat/all/get/kv",
+ url: baseUrl + "/mat/all/get/kv",
headers: {'token': localStorage.getItem('token')},
data: {
condition: val
},
method: 'POST',
success: function (res) {
- if (res.code === 200){
+ if (res.code === 200) {
cb(res.data)
} else {
cb([]);
@@ -419,7 +546,7 @@
layer.close(i);
layer.load(2);
$.ajax({
- url: baseUrl+"/order/delete/auth",
+ url: baseUrl + "/order/delete/auth",
headers: {'token': localStorage.getItem('token')},
data: {
orderId: orderId
@@ -427,16 +554,16 @@
method: 'POST',
success: function (res) {
layer.closeAll('loading');
- if (res.code === 200){
+ if (res.code === 200) {
if (insTbCount === 0) {
insTb.reload({page: {curr: 1}});
} else {
$(".layui-laypage-btn")[0].click();
}
layer.msg(res.msg, {icon: 1});
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
layer.msg(res.msg, {icon: 2});
}
}
@@ -455,7 +582,7 @@
console.log(orderId);
console.log(settle);
$.ajax({
- url: baseUrl+"/order/update/auth",
+ url: baseUrl + "/order/update/auth",
headers: {'token': localStorage.getItem('token')},
data: {
id: orderId,
@@ -465,16 +592,16 @@
method: 'POST',
success: function (res) {
layer.closeAll('loading');
- if (res.code === 200){
+ if (res.code === 200) {
if (insTbCount === 0) {
insTb.reload({page: {curr: 1}});
} else {
$(".layui-laypage-btn")[0].click();
}
layer.msg(res.msg, {icon: 1});
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
layer.msg(res.msg, {icon: 2});
}
}
@@ -493,7 +620,7 @@
console.log(orderId);
console.log(settle);
$.ajax({
- url: baseUrl+"/order/update/auth",
+ url: baseUrl + "/order/update/auth",
headers: {'token': localStorage.getItem('token')},
data: {
id: orderId,
@@ -503,16 +630,16 @@
method: 'POST',
success: function (res) {
layer.closeAll('loading');
- if (res.code === 200){
+ if (res.code === 200) {
if (insTbCount === 0) {
insTb.reload({page: {curr: 1}});
} else {
$(".layui-laypage-btn")[0].click();
}
layer.msg(res.msg, {icon: 1});
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
layer.msg(res.msg, {icon: 2});
}
}
@@ -524,7 +651,7 @@
function showWrkTrace(orderId) {
let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false});
$.ajax({
- url: baseUrl+"/order/wrk/trace/auth",
+ url: baseUrl + "/order/wrk/trace/auth",
headers: {'token': localStorage.getItem('token')},
data: {
orderId: orderId
@@ -532,7 +659,7 @@
method: 'POST',
success: function (res) {
layer.close(loadIndex);
- if (res.code === 200){
+ if (res.code === 200) {
laytpl(wrkTraceDialog.innerHTML).render(res.data, function (html) {
admin.open({
type: 1,
@@ -553,19 +680,27 @@
},
color: ['#10B4E8', '#E0E0E0', '#FF0000'],
tooltip: {trigger: 'item'},
- series: [{name: '鏁伴噺', type: 'pie', radius: ['75%', '80%'], label: {normal: {show: false}}}]
+ series: [{
+ name: '鏁伴噺',
+ type: 'pie',
+ radius: ['75%', '80%'],
+ label: {normal: {show: false}}
+ }]
};
traceCharts.setOption(traceOptions);
// 璧嬪��
traceCharts.setOption({
title: {
- subtext: res.data.totalQty+"/"+res.data.endQty+"/"+res.data.wrkQty
+ subtext: res.data.totalQty + "/" + res.data.endQty + "/" + res.data.wrkQty
},
series: [
{
data: [
- {name: '宸蹭綔涓�', value: res.data.wrkQty+res.data.endQty},
- {name: '鏈綔涓�', value: res.data.totalQty-res.data.wrkQty-res.data.endQty-res.data.lackQty},
+ {name: '宸蹭綔涓�', value: res.data.wrkQty + res.data.endQty},
+ {
+ name: '鏈綔涓�',
+ value: res.data.totalQty - res.data.wrkQty - res.data.endQty - res.data.lackQty
+ },
{name: '搴撳瓨涓嶈冻', value: res.data.lackQty},
]
}
@@ -574,9 +709,9 @@
}
});
});
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
layer.msg(res.msg, {icon: 2});
}
}
@@ -585,7 +720,7 @@
layDate.render({
elem: '.layui-laydate-range'
- ,type: 'datetime'
- ,range: true
+ , type: 'datetime'
+ , range: true
});
});
--
Gitblit v1.9.1