自动化立体仓库 - WMS系统
zwl
昨天 b53e4ba7d0b3ea9006b7af20362f78c14bcc1c03
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;
                        // 这里不修改item.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) {
                                    //按钮【立即出库】的回调
                                    // 不再传递tableCache,pakout函数将使用window.selectedDataForPakout
                                    window.selectedDataForPakout = tableCache;
                                    pakout(index);
                                }
                                , btn2: function (index, layero) {
@@ -900,4 +915,4 @@
            window.autoSelectedData = null;
        })
</script>
</html>
</html>