From b5130c2e6d60c7f23e37f7c620375bc4e253caa3 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 18 十月 2022 14:52:20 +0800
Subject: [PATCH] #

---
 src/main/webapp/static/js/order/out.js                  |  153 ++++++++++++++++++++++++++++++++++++--
 src/main/webapp/views/order/out.html                    |   15 +++
 src/main/java/com/zy/asrs/controller/OutController.java |   39 +++++++++
 3 files changed, 199 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index d9617b6..1e8569f 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -8,6 +8,7 @@
 import com.zy.asrs.service.*;
 import com.zy.common.model.LocDto;
 import com.zy.common.model.OrderDto;
+import com.zy.common.model.OrderMergeVo;
 import com.zy.common.model.TaskDto;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -167,4 +168,42 @@
         return R.ok().add(orderService.mergePreview(orderIds));
     }
 
+    @PostMapping("/out/pakout/preview/merge/auth")
+    @ManagerAuth
+    public R pakoutPreviewMerge(@RequestBody List<OrderMergeVo> list) {
+        if (Cools.isEmpty(list)) {
+            return R.parse(BaseRes.PARAM);
+        }
+        List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids);
+        List<LocDto> locDtos = new ArrayList<>();
+
+        Set<String> exist = new HashSet<>();
+
+        for (OrderDetl orderDetl : orderDetls) {
+            double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
+            if (issued <= 0.0D) { continue; }
+            List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist);
+            for (LocDetl locDetl : locDetls) {
+                if (issued > 0) {
+                    LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
+                            issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
+                    List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
+                    locDto.setStaNos(staNos);
+                    locDtos.add(locDto);
+                    exist.add(locDetl.getLocNo());
+                    // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+                    issued = issued - locDetl.getAnfme();
+                } else {
+                    break;
+                }
+            }
+            if (issued > 0) {
+                LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+                locDto.setLack(Boolean.TRUE);
+                locDtos.add(locDto);
+            }
+        }
+        return R.ok().add(locDtos);
+    }
+
 }
diff --git a/src/main/webapp/static/js/order/out.js b/src/main/webapp/static/js/order/out.js
index 9143422..c397e8b 100644
--- a/src/main/webapp/static/js/order/out.js
+++ b/src/main/webapp/static/js/order/out.js
@@ -362,7 +362,6 @@
             },
             success: function (res) {
                 layer.close(loadIndex);
-                var mergeTabCache;
                 if (res.code === 200){
                     layer.open({
                         type: 1
@@ -394,7 +393,6 @@
                                 ]],
                                 done: function (res) {
                                     $('.layui-table-body.layui-table-main').css("overflow", "auto");
-                                    mergeTabCache = tableData = table.cache.orderMergeTab;
                                 }
                             });
                         }
@@ -405,12 +403,25 @@
                                 layer.msg("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�", {icon: 7});
                                 return false;
                             }
-                            console.log(checkStatus);
-                            console.log(checkStatus.map(function (d) {
-                                return d.matnr;
-                            }));
-
-                            // pakoutPreviewDialog(data)
+                            let loadIndex = layer.load(2);
+                            $.ajax({
+                                url: baseUrl + "/out/pakout/preview/merge/auth",
+                                headers: {'token': localStorage.getItem('token')},
+                                contentType: 'application/json;charset=UTF-8',
+                                data: JSON.stringify(checkStatus),
+                                method: 'POST',
+                                success: function (res) {
+                                    layer.close(loadIndex);
+                                    if (res.code === 200){
+                                        console.log(res.data)
+                                        // pakoutPreviewMergeDialog(res.data)
+                                    } else if (res.code === 403){
+                                        top.location.href = baseUrl+"/";
+                                    } else {
+                                        layer.msg(res.msg, {icon: 2})
+                                    }
+                                }
+                            })
                         }
                         , btn2: function (index, layero) {
                             //鎸夐挳銆愬彇娑堛�戠殑鍥炶皟
@@ -427,6 +438,132 @@
         })
     }
 
+    function pakoutPreviewMergeDialog(data) {
+        var mergeTabCache;
+        layer.open({
+            type: 1
+            ,title: false
+            ,closeBtn: false
+            ,offset: '50px'
+            ,area: ['1200px', '700px']
+            ,shade: 0.5
+            ,shadeClose: false
+            ,btn: ['绔嬪嵆鍑哄簱', '绋嶅悗澶勭悊']
+            ,btnAlign: 'c'
+            ,moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1
+            ,content: $('#pakoutPreviewMergeBox').html()
+            ,success: function(layero, index){
+                stoPreTabIdx = table.render({
+                    elem: '#stoPreTabMerge',
+                    data: data,
+                    height: 520,
+                    page: false,
+                    limit: Number.MAX_VALUE,
+                    cellMinWidth: 100,
+                    cols: [[
+                        // {type: 'checkbox', merge: ['orderNo']},
+                        {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, 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: 'locNo', title: '璐т綅', align: 'center', width: 100, templet: '#locNoTpl'},
+                        {field: 'staNos', align: 'center', title: '鍑哄簱绔�', merge: ['locNo'], templet: '#tbBasicTbStaNos'},
+                        // {type: 'checkbox', merge: ['locNo']},
+                    ]],
+                    done: function (res) {
+                        tableMerge.render(this);
+                        $('.layui-table-body.layui-table-main').css("overflow", "auto");
+                        mergeTabCache = table.cache.stoPreTabMerge;
+                    }
+                });
+                // 淇敼鍑哄簱绔�
+                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 () {
+                    modifySta();
+                });
+                // 鎵归噺淇敼鍑哄簱绔� - 绔欑偣閫夋嫨
+                function modifySta() {
+                    // 鍑哄簱绔欏彇浜ら泦
+                    let staBatchSelectVal = [];
+                    for(let i = 0; i<tableCache.length; i++) {
+                        let staNos = tableCache[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 i = 0; i<tableCache.length; i++) {
+                                    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){
+                //鎸夐挳銆愮珛鍗冲嚭搴撱�戠殑鍥炶皟
+                pakout(tableCache, index);
+            }
+            ,btn2: function(index, layero){
+                //鎸夐挳銆愮◢鍚庡鐞嗐�戠殑鍥炶皟
+                layer.close(index)
+                //return false 寮�鍚浠g爜鍙姝㈢偣鍑昏鎸夐挳鍏抽棴
+            }
+        });
+    }
+
 
 });
 
diff --git a/src/main/webapp/views/order/out.html b/src/main/webapp/views/order/out.html
index ba96968..c3687e3 100644
--- a/src/main/webapp/views/order/out.html
+++ b/src/main/webapp/views/order/out.html
@@ -180,6 +180,21 @@
     </div>
 </script>
 
+<!-- 鍑哄簱棰勮 銆愬悎骞躲�� -->
+<script type="text/html" id="pakoutPreviewMergeBox" style="display: none">
+    <div style="padding: 25px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">
+        <span style="font-size: large; font-weight: bold">鍑哄簱棰勮</span>
+    </div>
+    <div class="layui-card">
+        <div class="layui-card-body" style="padding: 10px">
+            <table id="stoPreTabMerge" lay-filter="stoPreTabMerge"></table>
+        </div>
+        <button class="layui-btn layui-btn-primary layui-border-black layui-btn-sm" lay-filter="batchModifySta" lay-submit style="display: block;float: right;margin-right: 1rem">
+            鎵归噺淇敼
+        </button>
+    </div>
+</script>
+
 <script type="text/html" id="tbBasicTbStaNos">
     <div class="ew-select-fixed">
         <select class="order-sta-select" lay-filter="tbBasicTbStaNos">

--
Gitblit v1.9.1