From b53e4ba7d0b3ea9006b7af20362f78c14bcc1c03 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期四, 05 二月 2026 09:47:20 +0800
Subject: [PATCH] 修复订单出库选择出库站点后报错

---
 src/main/webapp/views/order/outLocDetlQuery.html |   89 ++++++++++++++++++++++++++------------------
 1 files changed, 52 insertions(+), 37 deletions(-)

diff --git a/src/main/webapp/views/order/outLocDetlQuery.html b/src/main/webapp/views/order/outLocDetlQuery.html
index aca1225..fc648ce 100644
--- a/src/main/webapp/views/order/outLocDetlQuery.html
+++ b/src/main/webapp/views/order/outLocDetlQuery.html
@@ -216,10 +216,8 @@
     <div class="ew-select-fixed">
         <select class="order-sta-select" lay-filter="tbBasicTbStaNos">
             {{#if (d.staNos!=null) {}}
-            {{# for(let i=0; i
-            <d.staNos.length
-                    ; i++) { }}
-            <option value="{{d.staNos[i]}}">{{d.staNos[i]}}</option>
+            {{# for(let i=0; i < d.staNos.length; i++) { }}
+            <option value="{{d.staNos[i]}}" {{d.staNos[i] == d.staNo ? 'selected' : ''}}>{{d.staNos[i]}}</option>
             {{# } }}
             {{# } }}
         </select>
@@ -432,47 +430,39 @@
                 var remaining = orderTotal;
                 var selectedCount = 0;
 
-                // 瀵瑰簱浣嶆暟鎹繘琛屾帓搴忥紝浼樺厛閫夋嫨鐩稿悓搴撲綅鐨勫簱瀛�
-                // allData.sort(function(a, b) {
-                //     // 鍏堟寜搴撲綅鍙锋帓搴�
-                //     if (a.locNo !== b.locNo) {
-                //         return a.locNo.localeCompare(b.locNo);
-                //     }
-                //     // 鍐嶆寜鎵规鎺掑簭
-                //     return a.batch.localeCompare(b.batch);
-                // });
+                // 浣跨敤鍘熷椤哄簭鐨勫壇鏈紝浠庣涓�椤电涓�涓紑濮嬪嬀閫�
+                var sortedData = allData.slice();
 
-                for (var i = 0; i < allData.length; i++) {
-                    var item = allData[i];
+                // 閫夋嫨闆嗗悎锛堜娇鐢ㄥ敮涓�閿伩鍏嶇储寮曢敊涔憋級
+                var selectionKeys = {};
+                for (var i = 0; i < sortedData.length; i++) {
+                    var item = sortedData[i];
                     var itemAnfme = parseFloat(item.anfme || 0);
-
-                    if (itemAnfme <= 0) {
-                        continue; // 璺宠繃鏁伴噺涓�0鐨勮褰�
-                    }
-
-                    // 濡傛灉鍓╀綑鏁伴噺澶т簬绛変簬褰撳墠椤圭殑鏁伴噺锛屽叏閮ㄥ嬀閫�
+                    if (itemAnfme <= 0) continue;
+                    var key = (item.locNo || '') + '|' + (item.batch || '') + '|' + (item.matnr || '') + '|' + (item.anfme || 0);
                     if (remaining >= itemAnfme) {
-                        allData[i].LAY_CHECKED = true;
-                        selectedTotal += itemAnfme;
+                        selectionKeys[key] = true;
                         remaining -= itemAnfme;
                         selectedCount++;
                         window.autoSelectedData.push(item);
-                    }
-                    // 鍚﹀垯鍙嬀閫夊墿浣欓儴鍒嗭紙瀹為檯鎿嶄綔涓紝鏁翠釜璁板綍閮戒細琚嬀閫夛紝浣嗕細鍦ㄦ彁浜ゆ椂澶勭悊鏁伴噺锛�
-                    else if (remaining > 0) {
-                        allData[i].LAY_CHECKED = true;
-                        selectedTotal += itemAnfme;
-                        // 杩欓噷涓嶄慨鏀筰tem.anfme锛屽洜涓鸿繖鏄〃鏍兼樉绀虹殑鏁版嵁
+                    } else if (remaining > 0) {
+                        selectionKeys[key] = true;
                         remaining = 0;
                         selectedCount++;
                         window.autoSelectedData.push(item);
-                    } else {
-                        break; // 宸叉弧瓒宠鍗曟暟閲忥紝鍋滄鍕鹃��
-                    }
-
-                    // 濡傛灉宸茬粡婊¤冻璁㈠崟鏁伴噺锛屽仠姝㈠嬀閫�
-                    if (remaining <= 0) {
                         break;
+                    } else {
+                        break;
+                    }
+                }
+
+                // 鏍规嵁閫夋嫨闆嗗悎鍚屾鍘熷鏁版嵁鐨勫嬀閫夋爣璁帮紝骞堕噸鏂拌绠楅�変腑鏁伴噺
+                selectedTotal = 0;
+                for (var i = 0; i < allData.length; i++) {
+                    var k = (allData[i].locNo || '') + '|' + (allData[i].batch || '') + '|' + (allData[i].matnr || '') + '|' + (allData[i].anfme || 0);
+                    allData[i].LAY_CHECKED = !!selectionKeys[k];
+                    if (allData[i].LAY_CHECKED) {
+                        selectedTotal += parseFloat(allData[i].anfme || 0);
                     }
                 }
 
@@ -538,6 +528,30 @@
                     {
                         name: '鐗归噰鏅鸿兘绔嬪簱',
                         value: '鐗归噰鏅鸿兘绔嬪簱'
+                    },
+                    {
+                        name: '鍗楅�氬欢閿嬬壒閲囩珛搴�',
+                        value: '鍗楅�氬欢閿嬬壒閲囩珛搴�'
+                    },
+                    {
+                        name: '鏄嗗北鍢夐┉鐗归噰绔嬪簱',
+                        value: '鏄嗗北鍢夐┉鐗归噰绔嬪簱'
+                    },
+                    {
+                        name: '瀹夊窘楦跨憺杈剧壒閲囩珛搴�',
+                        value: '瀹夊窘楦跨憺杈剧壒閲囩珛搴�'
+                    },
+                    {
+                        name: '涓婃捣閲戞櫤杈剧壒閲囩珛搴�',
+                        value: '涓婃捣閲戞櫤杈剧壒閲囩珛搴�'
+                    },
+                    {
+                        name: '娌堥槼缁у嘲鐗归噰绔嬪簱',
+                        value: '娌堥槼缁у嘲鐗归噰绔嬪簱'
+                    },
+                    {
+                        name: '娌堥槼寤跺嘲鐗归噰绔嬪簱',
+                        value: '娌堥槼寤跺嘲鐗归噰绔嬪簱'
                     }
                 ]
             })
@@ -655,7 +669,7 @@
                                         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);
+                                                tableCache[i]['staNo'] = obj.elem.value;
                                             }
                                         }
                                         obj.othis.children().find("input").css("color", "blue");
@@ -802,6 +816,7 @@
                                 , yes: function (index, layero) {
                                     //鎸夐挳銆愮珛鍗冲嚭搴撱�戠殑鍥炶皟
                                     // 涓嶅啀浼犻�抰ableCache锛宲akout鍑芥暟灏嗕娇鐢╳indow.selectedDataForPakout
+                                    window.selectedDataForPakout = tableCache;
                                     pakout(index);
                                 }
                                 , btn2: function (index, layero) {
@@ -900,4 +915,4 @@
             window.autoSelectedData = null;
         })
 </script>
-</html>
\ No newline at end of file
+</html>

--
Gitblit v1.9.1