From 8e943b7104561c3b14cf223016698709c5ade4b5 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期二, 03 二月 2026 15:37:26 +0800
Subject: [PATCH] #pda料箱组托和换码
---
src/main/webapp/static/js/order/out.js | 429 +++++++++++++++++++++++++++++++++--------------------
1 files changed, 267 insertions(+), 162 deletions(-)
diff --git a/src/main/webapp/static/js/order/out.js b/src/main/webapp/static/js/order/out.js
index d2aaeca..2e324ab 100644
--- a/src/main/webapp/static/js/order/out.js
+++ b/src/main/webapp/static/js/order/out.js
@@ -4,7 +4,7 @@
base: baseUrl + "/static/layui/lay/modules/"
}).extend({
notice: 'notice/notice',
-}).use(['table','laydate', 'form', 'util', 'admin', 'notice', 'treeTable', 'xmSelect'], function(){
+}).use(['table','laydate', 'form', 'util', 'admin', 'notice', 'treeTable', 'xmSelect', 'tableMerge', 'tableX'], function(){
var table = layui.table;
var $ = layui.jquery;
var layer = layui.layer;
@@ -15,67 +15,111 @@
var notice = layui.notice;
var treeTable = layui.treeTable;
var xmSelect = layui.xmSelect;
+ var tableMerge = layui.tableMerge;
+ var tableX = layui.tableX;
- insTb2 = table.render({
- elem: '#orderDetlTable',
- headers: {token: localStorage.getItem('token')},
- url: baseUrl+'/orderDetl/list/auth',
- page: true,
- limit: 15,
- limits: [15, 30, 50, 100, 200, 500],
- toolbar: '#orderDetToolbar',
- height: 'full-120',
- cols: [[
- {type: 'checkbox'}
- ,{type: 'numbers', title: '#'}
- ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl', width: 160}
- ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栫爜', width: 160}
- ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', width: 200}
- ,{field: 'batch', align: 'center',title: '鎵瑰彿'}
- ,{field: 'specs', align: 'center',title: '瑙勬牸'}
- // ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
- // ,{field: 'qty', align: 'center',title: '浣滀笟鏁伴噺', style: 'font-weight: bold'}
- ,{field: 'enableQty', align: 'center',title: '寰呭嚭鏁伴噺', style: 'font-weight: bold'}
- // ,{field: 'name', align: 'center',title: '鍚嶇О'}
- // ,{field: 'model', align: 'center',title: '鍨嬪彿'}
- ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
- ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜', hide: true}
- // ,{field: 'supplier', align: 'center',title: '渚涘簲鍟�'}
- // ,{field: 'unitPrice', align: 'center',title: '鍗曚环'}
- // ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�'}
- // ,{field: 'count', align: 'center',title: '鏁伴噺'}
- // ,{field: 'weight', align: 'center',title: '閲嶉噺'}
- // ,{field: 'status$', align: 'center',title: '鐘舵��'}
- // ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
- // ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
- // ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
- // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
- // ,{field: 'memo', align: 'center',title: '澶囨敞'}
- ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 160}
- ]],
- request: {
- pageName: 'curr',
- pageSize: 'limit'
- },
- parseData: function (res) {
- return {
- 'code': res.code,
- 'msg': res.msg,
- 'count': res.data.total,
- 'data': res.data.records
+ var initTable = function() {
+ insTb2 = table.render({
+ elem: '#orderDetlTable',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/orderDetl/pakout/list/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ toolbar: '#orderDetToolbar',
+ height: 'full-120',
+ text: {none: typeof I18n !== 'undefined' ? I18n.t('no_data') : '鏆傛棤鏁版嵁'},
+ where: {order_id: 9999999999},
+ cols: [[
+ {type: 'checkbox'}
+ ,{type: 'numbers', title: '#'}
+ ,{field: 'orderNo', align: 'center',title: typeof I18n !== 'undefined' ? I18n.t('order_no') : '鍗曟嵁缂栧彿', templet: '#orderNoTpl', width: 160}
+ ,{field: 'matnr', align: 'center',title: typeof I18n !== 'undefined' ? I18n.t('mat_code') : '鐗╂枡缂栫爜', width: 160}
+ ,{field: 'maktx', align: 'center',title: typeof I18n !== 'undefined' ? I18n.t('mat_name') : '鐗╂枡鍚嶇О', width: 200}
+ ,{field: 'batch', align: 'center',title: typeof I18n !== 'undefined' ? I18n.t('serial_code') : '鎵瑰彿'}
+ ,{field: 'specs', align: 'center',title: typeof I18n !== 'undefined' ? I18n.t('spec') : '瑙勬牸'}
+ // ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
+ // ,{field: 'qty', align: 'center',title: '浣滀笟鏁伴噺', style: 'font-weight: bold'}
+ ,{field: 'enableQty', align: 'center',title: typeof I18n !== 'undefined' ? I18n.t('outbound_pending_qty') : '寰呭嚭搴撴暟閲�', style: 'font-weight: bold'}
+ // ,{field: 'name', align: 'center',title: '鍚嶇О'}
+ // ,{field: 'model', align: 'center',title: '鍨嬪彿'}
+ ,{field: 'unit', align: 'center',title: typeof I18n !== 'undefined' ? I18n.t('unit') : '鍗曚綅', hide: true}
+ ,{field: 'barcode', align: 'center',title: typeof I18n !== 'undefined' ? I18n.t('barcode') : '鏉$爜', hide: true}
+ // ,{field: 'supplier', align: 'center',title: '渚涘簲鍟�'}
+ // ,{field: 'unitPrice', align: 'center',title: '鍗曚环'}
+ // ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�'}
+ // ,{field: 'count', align: 'center',title: '鏁伴噺'}
+ // ,{field: 'weight', align: 'center',title: '閲嶉噺'}
+ // ,{field: 'status$', align: 'center',title: '鐘舵��'}
+ // ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
+ // ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+ // ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+ // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+ // ,{field: 'memo', align: 'center',title: '澶囨敞'}
+ ,{fixed: 'right', title: typeof I18n !== 'undefined' ? I18n.t('operation') : '鎿嶄綔', align: 'center', toolbar: '#operate', width: 160}
+ ]],
+
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ if (typeof I18n !== 'undefined' && I18n.isReady()) {
+ I18n.updatePage();
+ I18n.updateLayuiPagination();
+ if (count === 0) {
+ $('#orderDetlTable+.layui-table-view .layui-table-empty').text(I18n.t('no_data'));
+ }
+ }
}
- },
- response: {
- statusCode: 200
- },
- done: function(res, curr, count) {
- if (res.code === 403) {
- top.location.href = baseUrl+"/";
- }
- pageCurr=curr;
- limit();
- }
+ });
+ }
+
+ if (typeof I18n !== 'undefined' && I18n.isReady()) {
+ initTable();
+ } else {
+ $(document).on('i18n:ready', function() {
+ initTable();
+ });
+ }
+
+ // 鐩戝惉璇█鍒囨崲
+ $(document).on('i18n:languageChanged', function () {
+ insTb2.reload({
+ text: {none: I18n.t('no_data')},
+ cols: [[
+ {type: 'checkbox'}
+ ,{type: 'numbers', title: '#'}
+ ,{field: 'orderNo', align: 'center',title: I18n.t('order_no'), templet: '#orderNoTpl', width: 160}
+ ,{field: 'matnr', align: 'center',title: I18n.t('mat_code'), width: 160}
+ ,{field: 'maktx', align: 'center',title: I18n.t('mat_name'), width: 200}
+ ,{field: 'batch', align: 'center',title: I18n.t('serial_code')}
+ ,{field: 'specs', align: 'center',title: I18n.t('spec')}
+ ,{field: 'enableQty', align: 'center',title: I18n.t('outbound_pending_qty'), style: 'font-weight: bold'}
+ ,{field: 'unit', align: 'center',title: I18n.t('unit'), hide: true}
+ ,{field: 'barcode', align: 'center',title: I18n.t('barcode'), hide: true}
+ ,{fixed: 'right', title: I18n.t('operation'), align: 'center', toolbar: '#operate', width: 160}
+ ]]
+ });
});
+
+
/* 琛ㄦ牸2鎼滅储 */
form.on('submit(sensorTbSearch)', function (data) {
insTb2.reload({where: data.field, page: {curr: 1}});
@@ -84,10 +128,11 @@
/* 琛ㄦ牸2澶村伐鍏锋爮鐐瑰嚮浜嬩欢 */
table.on('toolbar(orderDetlTable)', function (obj) {
+
var checkStatus = table.checkStatus(obj.config.id).data;
if (obj.event === 'pakoutPreview') { // 娣诲姞
if (checkStatus.length === 0) {
- layer.msg('璇烽�夋嫨鑷冲皯涓�鏉″嚭搴撴槑缁�', {icon: 2});
+ layer.msg(I18n.t('select_at_least_one_outbound_detail'), {icon: 2});
return;
}
pakoutPreview(checkStatus.map(function (d) {
@@ -96,7 +141,7 @@
} else if (obj.event === 'del') { // 鍒犻櫎
var checkRows = table.checkStatus('sensorTable');
if (checkRows.data.length === 0) {
- layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ layer.msg(I18n.t('please_select_data_to_delete'), {icon: 2});
return;
}
var ids = checkRows.data.map(function (d) {
@@ -108,21 +153,18 @@
/* 琛ㄦ牸2宸ュ叿鏉$偣鍑讳簨浠� */
table.on('tool(orderDetlTable)', function (obj) {
+ console.log(obj);
var data = obj.data;
switch (obj.event) {
// 鍑哄簱
case 'pakoutPreview':
pakoutPreview([data.id])
break;
- // 缂栬緫
- case 'edit':
- showEditModel(data);
- break;
}
});
function pakoutPreview(ids) {
- var loadIndex = layer.load(2);
+ let loadIndex = layer.load(2);
$.ajax({
url: baseUrl + "/out/pakout/preview/auth",
headers: {'token': localStorage.getItem('token')},
@@ -131,47 +173,139 @@
method: 'POST',
success: function (res) {
layer.close(loadIndex);
+ var tableCache;
if (res.code === 200){
layer.open({
type: 1
,title: false
,closeBtn: false
- ,offset: '100px'
- // ,area: ['1000px', '700px']
- ,area: '1000px'
+ ,offset: '50px'
+ ,area: ['1200px', '700px']
,shade: 0.5
- ,shadeClose: true
- ,btn: ['绔嬪嵆鐢熸垚', '绋嶅悗澶勭悊']
+ ,shadeClose: false
+ ,btn: [I18n.t('immediate_outbound'), I18n.t('process_later')]
,btnAlign: 'c'
,moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1
- ,content: $('#pakoutPreviewBox')
+ ,content: $('#pakoutPreviewBox').html()
,success: function(layero, index){
- console.log(res.data)
- table.render({
+ I18n.updatePage($(layero));
+ stoPreTabIdx = table.render({
elem: '#stoPreTab',
data: res.data,
+ height: 520,
page: false,
+ limit: Number.MAX_VALUE,
cellMinWidth: 100,
- height: 432,
cols: [[
- {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, align: 'center'},
- {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 300},
- // {field: 'anfme', title: '鎬绘暟閲�', merge: ['title'], align: 'center', style: 'font-weight: bold', width: 90},
- {field: 'locNo', title: '璐т綅', align: 'center', width: 90},
- {field: 'batch', title: '鎵瑰彿', align: 'center'},
- {field: 'anfme', title: '鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'},
- // {field: 'remQty', title: '浣欓噺', align: 'center', width: 80},
- // {field: 'total', title: '鎬婚噺', align: 'center', width: 90},
+ // {type: 'checkbox', merge: ['orderNo']},
+ {field: 'orderNo', title: I18n.t('order_no'), merge: true, align: 'center'},
+ {field: 'title', title: I18n.t('item'), merge: true, align: 'center', width: 350},
+ {field: 'batch', title: I18n.t('serial_code'), align: 'center'},
+ {field: 'anfme', title: I18n.t('quantity'), align: 'center', width: 90, style: 'font-weight: bold'},
+ {field: 'locNo', title: I18n.t('location'), align: 'center', width: 100, templet: '#locNoTpl'},
+ {field: 'staNos', align: 'center', title: I18n.t('station_outbound'), merge: ['locNo'], templet: '#tbBasicTbStaNos'},
+ {type: 'checkbox', merge: ['locNo']},
]],
- done: function () {
- $('.layui-table-body.layui-table-main').css("overflow", "auto")
+ done: function (res) {
+ tableMerge.render(this);
+ $('.layui-table-body.layui-table-main').css("overflow", "auto");
+ tableCache = tableData = table.cache.stoPreTab;
+ I18n.updatePage($('.layui-table-view[lay-id="stoPreTab"]'));
+ form.render('select');
}
});
+ // 淇敼鍑哄簱绔�
+ form.on('select(tbBasicTbStaNos)', function (obj) {
+ let index = obj.othis.parents('tr').attr("data-index");
+ let data = tableCache[index];
+ for (let i = 0; i<tableCache.length; i++) {
+ if (tableCache[i].locNo === data.locNo) {
+ tableCache[i]['staNo'] = Number(obj.elem.value);
+ }
+ }
+ obj.othis.children().find("input").css("color", "blue");
+ return false;
+ });
+ // 鎵归噺淇敼鍑哄簱绔�
+ form.on('submit(batchModifySta)', function () {
+ let stoPreTabData = layui.table.checkStatus('stoPreTab').data;
+ if (stoPreTabData.length < 1) {
+ layer.msg(I18n.t('select_at_least_one_merge_data'), {icon: 7});
+ return false;
+ }
+ modifySta(stoPreTabData);
+ });
+ // 鎵归噺淇敼鍑哄簱绔� - 绔欑偣閫夋嫨
+ function modifySta(stoPreTabData) {
+ // 鍑哄簱绔欏彇浜ら泦
+ let staBatchSelectVal = [];
+ for(let i = 0; i<stoPreTabData.length; i++) {
+ let staNos = stoPreTabData[i].staNos;
+ if (staNos !== null) {
+ if (staBatchSelectVal.length === 0) {
+ staBatchSelectVal = staNos;
+ } else {
+ staBatchSelectVal = staBatchSelectVal.filter(val =>
+ {
+ return new Set(staNos).has(val)
+ }
+ )
+ }
+ }
+ }
+ if (staBatchSelectVal.length === 0) {
+ layer.msg(I18n.t('no_intersection_outbound_station'), {icon: 2});
+ return;
+ }
+ admin.open({
+ type: 1,
+ area: '300px',
+ offset: 'auto',
+ title: I18n.t('please_select_station'),
+ content: $('#staBatchSelectDialog').html(),
+ success: function (layero, ddIndex) {
+ I18n.updatePage($(layero));
+ // 娓叉煋涓嬫媺妗�
+ let template = Handlebars.compile($('#batchStaSelectTpl').html());
+ $('#batchSelectStaBox').html(template({list: staBatchSelectVal}));
+ I18n.updatePage($('#batchSelectStaBox'));
+ // 纭
+ form.on('submit(staBatchSelectConfirm)', function (obj) {
+ let loadIdx = layer.load(2);
+ let batchSta = Number(obj.field.batchSta);
+ let arr = [];
+ for (let j = 0; j<stoPreTabData.length; j++) {
+ for (let i = 0; i<tableCache.length; i++) {
+ if (tableCache[i].orderNo === stoPreTabData[j].orderNo
+ && tableCache[i].matnr === stoPreTabData[j].matnr
+ && tableCache[i].locNo === stoPreTabData[j].locNo) {
+ tableCache[i]['staNo'] = batchSta;
+ arr.push(i);
+ }
+ }
+ }
+ stoPreTabIdx.reload({data: tableCache});
+ arr.forEach(item => {
+ $('div[lay-id=stoPreTab] tr[data-index="' + item + '"] .order-sta-select').val(batchSta);
+ });
+ layui.form.render('select');
+ arr.forEach(item => {
+ $('div[lay-id=stoPreTab] tr[data-index="' + item + '"] .layui-select-title').find("input").css("color", "blue");
+ });
+ layer.close(loadIdx); layer.close(ddIndex);
+ return false;
+ });
+ // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ },
+ })
+ }
}
,yes: function(index, layero){
- //鎸夐挳銆愰┈涓婃嫞璐с�戠殑鍥炶皟
- stockOut(data.orderNo);
+ //鎸夐挳銆愮珛鍗冲嚭搴撱�戠殑鍥炶皟
+ pakout(tableCache, index);
}
,btn2: function(index, layero){
//鎸夐挳銆愮◢鍚庡鐞嗐�戠殑鍥炶皟
@@ -188,89 +322,36 @@
})
}
-
- /* 鏄剧ず琛ㄥ崟寮圭獥 */
- function showEditModel(mData) {
- admin.open({
- type: 1,
- area: '900px',
- title: (mData ? '淇敼' : '娣诲姞') + '璁惧',
- content: $('#editDialog').html(),
- success: function (layero, dIndex) {
- // 鍥炴樉琛ㄥ崟鏁版嵁
- form.val('detail', mData);
- // 鍦板浘瀹氫綅鍥炴樉
- if (mData) {
- setTimeout(function () {
- $("#mapIframe")[0].contentWindow.position(mData.lon, mData.lat);
- }, 500)
+ function pakout(tableCache, layerIndex) {
+ // let loadIndex = layer.load(2);
+ notice.msg(I18n.t('generating_outbound_task'), {icon: 4});
+ $.ajax({
+ url: baseUrl + "/out/pakout/auth",
+ headers: {'token': localStorage.getItem('token')},
+ contentType: 'application/json;charset=UTF-8',
+ data: JSON.stringify(tableCache),
+ method: 'POST',
+ success: function (res) {
+ notice.destroy();
+ if (res.code === 200) {
+ layer.close(layerIndex);
+ layer.msg(I18n.t(res.msg), {icon: 1});
+ insTb.reload({where: null});
+ insTb2.reload({where: null, page: {curr: 1}});
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(I18n.t(res.msg), {icon: 2})
}
- // 琛ㄥ崟鎻愪氦浜嬩欢
- form.on('submit(editSubmit)', function (data) {
- data.field.sensorModel = insXmSel.getValue('valueStr');
- if (isEmpty(data.field.hostId)) {
- layer.msg('璇烽�夋嫨鎵�灞為」鐩�', {icon: 2});
- return false;
- }
- data.field.lon = $("#mapIframe").contents().find("#lon").val();
- data.field.lat = $("#mapIframe").contents().find("#lat").val();
- data.field.city = $("#mapIframe").contents().find("#city").val();
- if (isEmpty(data.field.lon) || isEmpty(data.field.lat)) {
- layer.msg('璁惧涓嶅湪瀹氫綅', {icon: 2});
- return false;
- }
- var loadIndex = layer.load(2);
- $.ajax({
- url: baseUrl+"/sensor/"+(mData?'update':'add')+"/auth?sensorType="+sensorType,
- headers: {'token': localStorage.getItem('token')},
- data: data.field,
- method: 'POST',
- success: function (res) {
- layer.close(loadIndex);
- if (res.code === 200){
- layer.close(dIndex);
- layer.msg(res.msg, {icon: 1});
- $(".layui-laypage-btn")[0].click();
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
- layer.msg(res.msg, {icon: 2});
- }
- }
- })
- return false;
- });
- // 娓叉煋涓嬫媺鏍�
- var insXmSel = xmSelect.render({
- el: '#modelSel',
- height: '250px',
- data: modelTb.options.data,
- initValue: mData&&mData.sensorModel ? [mData.sensorModel] : [],
- model: {label: {type: 'text'}},
- prop: {
- name: 'name',
- value: 'id'
- },
- radio: true,
- clickClose: true,
- tree: {
- show: true,
- indent: 15,
- strict: false,
- expandedKeys: true
- }
- });
- // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯
- $(layero).children('.layui-layer-content').css('overflow', 'visible');
- layui.form.render('select');
}
});
}
+
/* 鍒犻櫎璁㈠崟 */
function doDelSensor(obj) {
- layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ layer.confirm(I18n.t('confirm_delete_data'), {
skin: 'layui-layer-admin',
shade: .1
}, function (i) {
@@ -307,6 +388,8 @@
})
})
+ window.pakoutPreview = pakoutPreview;
+
});
function tableReload(child) {
@@ -322,3 +405,25 @@
});
}
+/**
+ * 涓�閿嚭搴�
+ */
+function autoOut(orderId) {
+ let loadIndex = layer.msg(I18n.t('requesting'), {icon: 16, shade: 0.01, time: false});
+ $.ajax({
+ url: baseUrl + "/out/pakout/orderDetlIds/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: { orderId : orderId },
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ pakoutPreview(res.data);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(I18n.t(res.msg), {icon: 2});
+ }
+ }
+ })
+}
--
Gitblit v1.9.1