From 5dac37cde0205be965c2b74dd1bddefc7f9cceda Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 26 三月 2025 08:56:57 +0800
Subject: [PATCH] Merge branch 'integrationWms' into mdqzasrs

---
 src/main/webapp/static/js/order/out.js |  262 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 161 insertions(+), 101 deletions(-)

diff --git a/src/main/webapp/static/js/order/out.js b/src/main/webapp/static/js/order/out.js
index d2aaeca..be85831 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,23 +15,26 @@
     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',
+        url: baseUrl+'/orderDetl/pakout/list/auth',
         page: true,
         limit: 15,
         limits: [15, 30, 50, 100, 200, 500],
         toolbar: '#orderDetToolbar',
         height: 'full-120',
+        where: {order_id: 9999999999},
         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: 'batch', align: 'center',title: '搴忓垪鐮�'}
             ,{field: 'specs', align: 'center',title: '瑙勬牸'}
             // ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
             // ,{field: 'qty', align: 'center',title: '浣滀笟鏁伴噺', style: 'font-weight: bold'}
@@ -76,6 +79,7 @@
             limit();
         }
     });
+
     /* 琛ㄦ牸2鎼滅储 */
     form.on('submit(sensorTbSearch)', function (data) {
         insTb2.reload({where: data.field, page: {curr: 1}});
@@ -84,6 +88,7 @@
 
     /* 琛ㄦ牸2澶村伐鍏锋爮鐐瑰嚮浜嬩欢 */
     table.on('toolbar(orderDetlTable)', function (obj) {
+
         var checkStatus = table.checkStatus(obj.config.id).data;
         if (obj.event === 'pakoutPreview') { // 娣诲姞
             if (checkStatus.length === 0) {
@@ -108,21 +113,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 +133,134 @@
             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: ['绔嬪嵆鍑哄簱', '绋嶅悗澶勭悊']
                         ,btnAlign: 'c'
                         ,moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1
-                        ,content: $('#pakoutPreviewBox')
+                        ,content: $('#pakoutPreviewBox').html()
                         ,success: function(layero, index){
-                            console.log(res.data)
-                            table.render({
+                            stoPreTabIdx = table.render({
                                 elem: '#stoPreTab',
                                 data: res.data,
+                                height: 520,
                                 page: false,
+                                limit: Number.MAX_VALUE,
                                 cellMinWidth: 100,
-                                height: 432,
                                 cols: [[
+                                    // {type: 'checkbox', merge: ['orderNo']},
                                     {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: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 350},
+                                    {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},
+                                    {field: 'locNo', title: '璐т綅', align: 'center', width: 100, templet: '#locNoTpl'},
+                                    {field: 'staNos', align: 'center', title: '鍑哄簱绔�', 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;
                                 }
                             });
+                            // 淇敼鍑哄簱绔�
+                            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("璇疯嚦灏戦�夋嫨涓�鏉′互涓婂悎骞舵暟鎹�", {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("鍑哄簱绔欐病鏈変氦闆嗭紝鏃犳硶鎵归噺淇敼", {icon: 2});
+                                    return;
+                                }
+                                admin.open({
+                                    type: 1,
+                                    area: '300px',
+                                    offset: 'auto',
+                                    title: '璇烽�夋嫨绔欑偣',
+                                    content: $('#staBatchSelectDialog').html(),
+                                    success: function (layero, ddIndex) {
+                                        // 娓叉煋涓嬫媺妗�
+                                        let template = Handlebars.compile($('#batchStaSelectTpl').html());
+                                        $('#batchSelectStaBox').html(template({list: staBatchSelectVal}));
+                                        // 纭
+                                        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,84 +277,31 @@
         })
     }
 
-
-    /* 鏄剧ず琛ㄥ崟寮圭獥 */
-    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('姝e湪鐢熸垚鍑哄簱浠诲姟......', {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(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(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');
             }
         });
     }
+
 
 
     /* 鍒犻櫎璁㈠崟 */
@@ -307,6 +343,8 @@
         })
     })
 
+    window.pakoutPreview = pakoutPreview;
+
 });
 
 function tableReload(child) {
@@ -322,3 +360,25 @@
     });
 }
 
+/**
+ * 涓�閿嚭搴�
+ */
+function autoOut(orderId) {
+    let loadIndex = layer.msg('璇锋眰涓�...', {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(res.msg, {icon: 2});
+            }
+        }
+    })
+}

--
Gitblit v1.9.1