From 0927dceed8e5504ec0b5eeaa446f5423ddc74ec3 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 26 十一月 2025 13:04:05 +0800
Subject: [PATCH] 1.完善验布组托 2.修复销售订单默认勾选数据对不上

---
 src/main/webapp/views/order/outLocDetlQuery.html              |  179 +++++++++++++++++++++++++++++++++-----------
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |    7 +
 src/main/java/com/zy/asrs/controller/MobileController.java    |    2 
 3 files changed, 139 insertions(+), 49 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 896b947..93b7a21 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -137,7 +137,7 @@
 
     @RequestMapping("/comb/auth")
     @ManagerAuth(memo = "缁勬墭")
-    public R comb(@RequestBody CombParam combParam) {
+    public synchronized R comb(@RequestBody CombParam combParam) {
         log.info("缁勬墭鏁版嵁锛歿}", combParam.toString());
         mobileService.comb(combParam, getUserId(), getUser().getEmail());
         return R.ok("缁勬墭鎴愬姛");
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index f31590c..3842a71 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -108,7 +108,7 @@
         }
         // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
         if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
-                eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
+                eq("zpallet", param.getBarcode())) > 0) {
             throw new CoolException(param.getBarcode() + "鏁版嵁缁勬墭妗d腑宸插瓨鍦�");
         }
 
@@ -206,7 +206,10 @@
                 }
                 ExdStock id = exdStockService.selectOne(new EntityWrapper<ExdStock>().eq("Fnumber", pid));
                 waitPakin.setBrand(id.getFname());//浠撳簱
-                waitPakin.setInspect(param.isType() ? 1 : 0);
+                if(param.isType()||Cools.isEmpty(param.getOrderNo())){
+                    waitPakin.setInspect(1);
+                }
+
                 if (i == 1) {
 //                0锛氫笉闇�瑕佽ˉ绌烘墭鐩�
 //                1锛氬皬鎵樼洏
diff --git a/src/main/webapp/views/order/outLocDetlQuery.html b/src/main/webapp/views/order/outLocDetlQuery.html
index be2bcba..aca1225 100644
--- a/src/main/webapp/views/order/outLocDetlQuery.html
+++ b/src/main/webapp/views/order/outLocDetlQuery.html
@@ -186,6 +186,32 @@
     </div>
 </script>
 
+<!-- 鎵归噺閫夋嫨鍑哄簱绔欏脊绐楁ā鏉� -->
+<script type="text/html" id="staBatchSelectDialog">
+    <div style="padding: 20px;">
+        <form class="layui-form" id="batchSelectStaBox">
+            <!-- 涓嬫媺妗嗗皢閫氳繃Handlebars妯℃澘鍔ㄦ�佹覆鏌� -->
+        </form>
+        <div style="text-align: center; margin-top: 20px;">
+            <button class="layui-btn layui-btn-sm" lay-submit lay-filter="staBatchSelectConfirm">纭</button>
+        </div>
+    </div>
+</script>
+
+<!-- 鎵归噺閫夋嫨鍑哄簱绔欎笅鎷夋妯℃澘 -->
+<script type="text/html" id="batchStaSelectTpl">
+    <div class="layui-form-item">
+        <label class="layui-form-label">鍑哄簱绔�</label>
+        <div class="layui-input-block">
+            <select name="batchSta" lay-filter="batchSta" lay-search>
+                {{#each list}}
+                <option value="{{this}}">{{this}}</option>
+                {{/each}}
+            </select>
+        </div>
+    </div>
+</script>
+
 <script type="text/html" id="tbBasicTbStaNos">
     <div class="ew-select-fixed">
         <select class="order-sta-select" lay-filter="tbBasicTbStaNos">
@@ -312,31 +338,30 @@
                 var data = obj.data;
                 var checked = obj.checked;
                 var type = obj.type;
-
-                // 纭繚window.autoSelectedData宸插垵濮嬪寲
-                if (!window.autoSelectedData) {
-                    window.autoSelectedData = [];
+                console.log("data"+data.batch)
+                if (type === 'one') {
+                    // 鍗曚釜閫夋嫨
+                    if (checked) {
+                        selectedTotal += parseFloat(data.anfme || 0);
+                    } else {
+                        selectedTotal -= parseFloat(data.anfme || 0);
+                    }
+                } else if (type === 'all') {
+                    // 鍏ㄩ��
+                    var checkStatus = table.checkStatus('stockOut');
+                    if (checked) {
+                        // 璁$畻褰撳墠椤垫墍鏈夋暟鎹殑鏁伴噺鎬诲拰
+                        checkStatus.data.forEach(function(item){
+                            selectedTotal += parseFloat(item.anfme || 0);
+                        });
+                    } else {
+                        // 鍙栨秷鍏ㄩ�夛紝鍑忓幓褰撳墠椤垫墍鏈夋暟鎹殑鏁伴噺鎬诲拰
+                        checkStatus.data.forEach(function(item){
+                            selectedTotal -= parseFloat(item.anfme || 0);
+                        });
+                    }
                 }
 
-                // 閲嶆柊璁$畻selectedTotal锛岀‘淇濅笌瀹為檯鍕鹃�夌姸鎬佷竴鑷�
-                var updateSelectedTotalFromCheckboxes = function() {
-                    var checkStatus = table.checkStatus('stockOut');
-                    selectedTotal = 0;
-
-                    // 鏇存柊window.autoSelectedData锛屽彧淇濈暀瀹為檯鍕鹃�夌殑鏁版嵁
-                    window.autoSelectedData = [];
-
-                    // 閲嶆柊璁$畻閫変腑鎬绘暟鍜屾洿鏂癮utoSelectedData
-                    checkStatus.data.forEach(function(item) {
-                        selectedTotal += parseFloat(item.anfme || 0);
-                        window.autoSelectedData.push(item);
-                    });
-                };
-
-                // 涓嶇鏄崟閫夎繕鏄叏閫夛紝閮介噸鏂拌绠楀疄闄呭嬀閫夌殑鏁版嵁鍜屾�绘暟
-                updateSelectedTotalFromCheckboxes();
-
-                // 鏇存柊鏄剧ず閫変腑鐨勬暟閲�
                 updateSelectedTotal();
 
                 // 濡傛灉閫変腑鐨勬暟閲忚秴杩囪鍗曟暟閲忥紝缁欏嚭鎻愮ず
@@ -408,14 +433,14 @@
                 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);
-                });
+                // allData.sort(function(a, b) {
+                //     // 鍏堟寜搴撲綅鍙锋帓搴�
+                //     if (a.locNo !== b.locNo) {
+                //         return a.locNo.localeCompare(b.locNo);
+                //     }
+                //     // 鍐嶆寜鎵规鎺掑簭
+                //     return a.batch.localeCompare(b.batch);
+                // });
 
                 for (var i = 0; i < allData.length; i++) {
                     var item = allData[i];
@@ -580,9 +605,6 @@
                                 , moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1
                                 , content: $('#pakoutPreviewBox').html()
                                 , success: function (layero, index) {
-                                    res.data.forEach((item, index) => {
-                                        console.log(`椤� ${index + 1}:`, item);
-                                    });
                                     stoPreTabIdx = table.render({
                                         elem: '#stoPreTab1',
                                         data: res.data,
@@ -590,8 +612,10 @@
                                         page: false,
                                         limit: Number.MAX_VALUE,
                                         cellMinWidth: 100,
+                                        // cols蹇呴』浣跨敤浜岀淮鏁扮粍鏍煎紡锛岃繖鏄痩ayui table鐨勬爣鍑嗛厤缃�
                                         cols: [[
-                                            // {type: 'checkbox', merge: ['orderNo']},
+                                            // 灏嗗閫夋鍒楁斁鍦ㄧ涓�鍒楋紝渚夸簬鐢ㄦ埛鎿嶄綔鍜宼ableMerge澶勭悊
+
                                             {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, align: 'center'},
                                             {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 350},
                                             {field: 'batch', title: '鎵瑰彿', align: 'center'},
@@ -607,6 +631,7 @@
                                                 title: '璐т綅',
                                                 align: 'center',
                                                 width: 100,
+                                                merge: ['locNo'],
                                                 templet: '#locNoTpl'
                                             },
                                             {
@@ -616,7 +641,7 @@
                                                 merge: ['locNo'],
                                                 templet: '#tbBasicTbStaNos'
                                             },
-                                            {type: 'checkbox', merge: ['locNo']},
+                                            {type: 'checkbox'}
                                         ]],
                                         done: function (res) {
                                             tableMerge.render(this);
@@ -638,7 +663,30 @@
                                     });
                                     // 鎵归噺淇敼鍑哄簱绔�
                                     form.on('submit(batchModifySta)', function () {
-                                        let stoPreTabData = layui.table.checkStatus('stoPreTab1').data;
+                                        // 鑾峰彇閫変腑鐨勬暟鎹紝鍏煎鍚堝苟琛岀殑鎯呭喌
+                                        let checkStatus = table.checkStatus('stoPreTab1');
+                                        let stoPreTabData = checkStatus.data;
+
+                                        // 濡傛灉checkStatus杩斿洖鐨勬暟鎹负绌猴紝灏濊瘯浠巘ableCache涓幏鍙�
+                                        if (stoPreTabData.length === 0) {
+                                            // 閬嶅巻tableCache锛屾壘鍑烘墍鏈夐�変腑鐨勮鍙婂叾鍚堝苟琛�
+                                            let checkedLocNos = [];
+                                            // 棣栧厛鎵惧嚭鎵�鏈夎閫変腑鐨勮鐨刲ocNo
+                                            tableCache.forEach(function(item) {
+                                                if (item.LAY_CHECKED === true) {
+                                                    checkedLocNos.push(item.locNo);
+                                                }
+                                            });
+
+                                            // 鍘婚噸
+                                            checkedLocNos = [...new Set(checkedLocNos)];
+
+                                            // 鏍规嵁locNo杩囨护鍑烘墍鏈夌浉鍏崇殑琛�
+                                            stoPreTabData = tableCache.filter(function(item) {
+                                                return checkedLocNos.includes(item.locNo);
+                                            });
+                                        }
+
                                         if (stoPreTabData.length < 1) {
                                             layer.msg("璇疯嚦灏戦�夋嫨涓�鏉′互涓婂悎骞舵暟鎹�", {icon: 7});
                                             return false;
@@ -663,6 +711,11 @@
                                                 }
                                             }
                                         }
+
+                                        // 娣诲姞璋冭瘯淇℃伅
+                                        console.log('staBatchSelectVal:', staBatchSelectVal);
+                                        console.log('staBatchSelectVal绫诲瀷:', Array.isArray(staBatchSelectVal) ? '鏁扮粍' : '闈炴暟缁�');
+                                        console.log('staBatchSelectVal闀垮害:', staBatchSelectVal.length);
                                         if (staBatchSelectVal.length === 0) {
                                             layer.msg("鍑哄簱绔欐病鏈変氦闆嗭紝鏃犳硶鎵归噺淇敼", {icon: 2});
                                             return;
@@ -674,21 +727,56 @@
                                             title: '璇烽�夋嫨绔欑偣',
                                             content: $('#staBatchSelectDialog').html(),
                                             success: function (layero, ddIndex) {
-                                                // 娓叉煋涓嬫媺妗�
-                                                let template = Handlebars.compile($('#batchStaSelectTpl').html());
-                                                $('#batchSelectStaBox').html(template({list: staBatchSelectVal}));
+                                                // 鐩存帴浣跨敤鍘熺敓鏂瑰紡鍒涘缓select鍏冪礌锛屼笉渚濊禆Handlebars妯℃澘
+                                                let selectHtml = '<div class="layui-form-item">';
+                                                selectHtml += '<label class="layui-form-label">鍑哄簱绔�</label>';
+                                                selectHtml += '<div class="layui-input-block">';
+                                                selectHtml += '<select name="batchSta" lay-filter="batchSta" lay-search>';
+
+                                                // 鎵嬪姩閬嶅巻鏁扮粍鍒涘缓option
+                                                staBatchSelectVal.forEach(function(staNo) {
+                                                    selectHtml += '<option value="' + staNo + '">' + staNo + '</option>';
+                                                });
+
+                                                selectHtml += '</select>';
+                                                selectHtml += '</div>';
+                                                selectHtml += '</div>';
+
+                                                // 鐩存帴鎻掑叆HTML
+                                                $(layero).find('#batchSelectStaBox').html(selectHtml);
+
+                                                // 娓叉煋琛ㄥ崟
+                                                layui.form.render('select');
+
                                                 // 纭
                                                 form.on('submit(staBatchSelectConfirm)', function (obj) {
                                                     let loadIdx = layer.load(2);
-                                                    let batchSta = Number(obj.field.batchSta);
+                                                    // 鐩存帴浠嶥OM涓幏鍙栭�変腑鐨勭珯鐐瑰�硷紝纭繚鑳芥纭幏鍙栧埌
+                                                    let batchSta = $(layero).find('select[name="batchSta"]').val();
+                                                    console.log('鎵归噺淇敼鐨勭珯鐐瑰��:', batchSta);
                                                     let arr = [];
-                                                    for (let j = 0; j < stoPreTabData.length; j++) {
+
+                                                    // 绠�鍖栨洿鏂伴�昏緫锛岀洿鎺ユ洿鏂版墍鏈夐�変腑鐨勬暟鎹�
+                                                    stoPreTabData.forEach(function(preItem) {
                                                         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) {
+                                                            // 鍙牴鎹甽ocNo杩涜鍖归厤锛屽洜涓鸿〃鏍间腑locNo鏄悎骞跺崟鍏冩牸鐨勫叧閿瓧娈�
+                                                            if (tableCache[i].locNo === preItem.locNo) {
                                                                 tableCache[i]['staNo'] = batchSta;
                                                                 arr.push(i);
+                                                                console.log('鏇存柊浜嗘暟鎹储寮�:', i, '绔欑偣鍊�:', batchSta);
+                                                            }
+                                                        }
+                                                    });
+
+                                                    // 濡傛灉娌℃湁鎵惧埌鍖归厤椤癸紝灏濊瘯鐩存帴鏇存柊閫変腑鐨勬暟鎹�
+                                                    if (arr.length === 0) {
+                                                        console.log('鏈壘鍒板尮閰嶉」锛屽皾璇曠洿鎺ユ洿鏂�');
+                                                        // 鐩存帴閬嶅巻tableCache锛屾洿鏂版墍鏈塋AY_CHECKED涓簍rue鐨勯」
+                                                        for (let i = 0; i < tableCache.length; i++) {
+                                                            if (tableCache[i].LAY_CHECKED === true) {
+                                                                tableCache[i]['staNo'] = batchSta;
+                                                                arr.push(i);
+                                                                console.log('鐩存帴鏇存柊浜嗛�変腑鐨勬暟鎹储寮�:', i);
                                                             }
                                                         }
                                                     }
@@ -706,7 +794,6 @@
                                                 });
                                                 // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯
                                                 $(layero).children('.layui-layer-content').css('overflow', 'visible');
-                                                layui.form.render('select');
                                             },
                                         })
                                     }

--
Gitblit v1.9.1