From db91e03deeaac1bb3344d0b5cb9e1240f1f8caac Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期六, 16 八月 2025 10:39:15 +0800
Subject: [PATCH] #计划组货单下发上报

---
 src/main/java/com/zy/asrs/service/WorkService.java          |    6 
 src/main/webapp/static/js/order/outMes.js                   |  458 +++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/entity/param/PakoutRequest.java   |   12 +
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  126 +++++++++++
 src/main/webapp/static/js/wrkMast/wrkMast.js                |    2 
 5 files changed, 600 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/param/PakoutRequest.java b/src/main/java/com/zy/asrs/entity/param/PakoutRequest.java
new file mode 100644
index 0000000..09db6bd
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/PakoutRequest.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.entity.param;
+
+import com.zy.common.model.LocDto;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PakoutRequest {
+    private List<LocDto> tableCache;
+    private String optionValue;
+}
diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java
index 81b1438..5a9d859 100644
--- a/src/main/java/com/zy/asrs/service/WorkService.java
+++ b/src/main/java/com/zy/asrs/service/WorkService.java
@@ -11,6 +11,7 @@
 import com.zy.common.model.StartupDto;
 import com.zy.common.model.TaskDto;
 import com.zy.common.model.enums.IoWorkType;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -32,13 +33,16 @@
      */
     void startupFullTakeStoreOrder(StockOutParam param, Long userId);
 
+    @Transactional
+    void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId);
+
     /**
      * 鍑哄簱浣滀笟
      * @param staNo 鐩爣绔欑偣
      * @param locDetls 寰呭嚭搴撶墿鏂�
      * @param ioType 鍏ュ嚭搴撶被鍨�
      */
-    void stockOut(BasDevp staNo, List<LocDetlDto> locDetls, IoWorkType ioWorkType, Long userId);
+    void stockOut(BasDevp staNo, List<LocDetlDto> locDetls, IoWorkType ioWorkType, Long userId,String groupOrderNumber);
 
     void stockOut(BasDevp staNo, TaskDto taskDto, Long userId);
 
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index eaa13af..53da495 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -313,10 +313,8 @@
         }
 
     }
-
-
-    @Override
     @Transactional
+    @Override
     public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId) {
         Date now = new Date();
         // 鍚堝苟鍚岀被椤�
@@ -376,6 +374,128 @@
             wrkMast.setEmptyMk("N"); // 绌烘澘
             wrkMast.setLinkMis("N");
             wrkMast.setSheetNo("0");
+//            wrkMast.setMemo(groupOrderNumber);
+            if (staDesc.getStnNo()<118 || staDesc.getStnNo()>121){
+                wrkMast.setSheetNo("3");
+            }
+            wrkMast.setBarcode(locMast.getBarcode());
+            wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
+            wrkMast.setAppeTime(now);
+            wrkMast.setModiUser(userId);
+            wrkMast.setModiTime(now);
+            if (!wrkMastService.insert(wrkMast)) {
+                throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+dto.getLocNo());
+            }
+            // 鐢熸垚宸ヤ綔妗f槑缁�
+            for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
+                if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
+                WrkDetl wrkDetl = new WrkDetl();
+                List<OrderDetl> orderDetl = orderDetlService.selectByBrand(detlDto.getLocDetl().getBrand());
+                wrkDetl.sync(detlDto.getLocDetl());
+                for (OrderDetl orderDetlDto : orderDetl) {
+                    if(orderDetlDto.getSupp() != null){
+                        wrkDetl.setSupp(orderDetlDto.getSupp());
+                    }
+                    if(orderDetlDto.getMemo() != null){
+                        wrkDetl.setMemo(orderDetlDto.getMemo());
+                    }
+                }
+                wrkDetl.setOrderNo(detlDto.getOrderNo()); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙�
+                wrkDetl.setWrkNo(workNo);
+                wrkDetl.setIoTime(now);
+                Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
+                wrkDetl.setAnfme(anfme); // 鏁伴噺
+                wrkDetl.setAppeTime(now);
+                wrkDetl.setAppeUser(userId);
+                wrkDetl.setModiTime(now);
+                wrkDetl.setModiUser(userId);
+                if (!wrkDetlService.insert(wrkDetl)) {
+                    throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+                }
+                // 淇敼璁㈠崟鏄庣粏
+                orderDetlMapper.updateOrderDetlByGroupNo(detlDto.getOrderNo(), detlDto.getLocDetl().getBrand(), 1);
+                // 淇敼璁㈠崟鐘舵��
+                orderMapper.updateSettleByOrderNo(detlDto.getOrderNo(),2L, userId);
+            }
+
+            // 淇敼搴撲綅鐘舵��:   F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
+            locMast = locMastService.selectById(dto.getLocNo());
+            if (locMast.getLocSts().equals("F")) {
+                locMast.setLocSts(ioType==101?"R":"P");
+                locMast.setModiUser(userId);
+                locMast.setModiTime(now);
+                if (!locMastService.updateById(locMast)) {
+                    throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細"+dto.getLocNo());
+                }
+            } else {
+                throw new CoolException(dto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
+            }
+        }
+    }
+
+
+    @Override
+    @Transactional
+    public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId,String groupOrderNumber) {
+        Date now = new Date();
+        // 鍚堝苟鍚岀被椤�
+        Set<String> locNos = new HashSet<>();
+        List<OutLocDto> dtos = new ArrayList<>();
+        for (LocDetlDto locDetlDto : locDetlDtos) {
+            String locNo = locDetlDto.getLocDetl().getLocNo();
+            if (locNos.contains(locNo)) {
+                for (OutLocDto dto : dtos) {
+                    if (dto.getLocNo().equals(locNo)) {
+                        dto.getLocDetlDtos().add(locDetlDto);
+                        break;
+                    }
+                }
+            } else {
+                locNos.add(locNo);
+                dtos.add(new OutLocDto(locNo, locDetlDto));
+            }
+        }
+        Integer ioType = null;
+        // 鐢熸垚宸ヤ綔妗�
+        for (OutLocDto dto : dtos) {
+            // 鍒ゆ柇鍏ュ嚭搴撶被鍨嬶細101.鍏ㄦ澘鍑哄簱 or 103.鎷f枡鍑哄簱
+            if (ioWorkType == null) {
+                ioType = dto.isAll() ? 101 : 103;
+            } else if (ioWorkType.equals(IoWorkType.CHECK_OUT)) {
+                ioType = 107;
+            }
+            assert ioType != null;
+            // 鑾峰彇搴撲綅
+            LocMast locMast = locMastService.selectById(dto.getLocNo());
+
+            Integer outSta = staNo.getDevNo();
+//            //2鍙峰爢鍨涙満鍏ㄦ澘鍑哄簱绔欐寚瀹氫负204绔欙紝鎷f枡绔欐寚瀹氫负202
+//            if(locMast.getCrnNo()==2){
+//                outSta = ioType == 101 ? 204 : 202;
+//            }
+
+            // 鑾峰彇璺緞
+            StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
+            // 鐢熸垚宸ヤ綔鍙�
+            int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+            // 鐢熸垚宸ヤ綔妗�
+            WrkMast wrkMast = new WrkMast();
+            wrkMast.setWrkNo(workNo);
+            wrkMast.setIoTime(now);
+            wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+            wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
+            wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+            wrkMast.setCrnNo(locMast.getCrnNo());
+            wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
+            wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+            wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
+            wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+            wrkMast.setPicking("N"); // 鎷f枡
+            wrkMast.setExitMk("N"); // 閫�鍑�
+            wrkMast.setEmptyMk("N"); // 绌烘澘
+            wrkMast.setLinkMis("N");
+            wrkMast.setSheetNo("0");
+            wrkMast.setMemo(groupOrderNumber);
             if (staDesc.getStnNo()<118 || staDesc.getStnNo()>121){
                 wrkMast.setSheetNo("3");
             }
diff --git a/src/main/webapp/static/js/order/outMes.js b/src/main/webapp/static/js/order/outMes.js
new file mode 100644
index 0000000..48d87ef
--- /dev/null
+++ b/src/main/webapp/static/js/order/outMes.js
@@ -0,0 +1,458 @@
+var pageCurr;
+var insTb2;
+layui.config({
+    base: baseUrl + "/static/layui/lay/modules/"
+}).extend({
+    notice: 'notice/notice',
+}).use(['table','laydate', 'form', 'util', 'admin', 'notice', 'treeTable', 'xmSelect', 'tableMerge', 'tableX'], function(){
+    var table = layui.table;
+    var $ = layui.jquery;
+    var layer = layui.layer;
+    var layDate = layui.laydate;
+    var form = layui.form;
+    var admin = layui.admin;
+    var util = layui.util;
+    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/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: 'specs', align: 'center',title: '鎺ュご'}
+            // ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
+            ,{field: 'brand', align: 'center',title: '鍖呰缁勫彿'}
+            ,{field: 'model', align: 'center',title: '鍗峰彿'}
+
+            // ,{field: 'supp', align: 'center',title: '瀹㈡埛鍚嶇О', hide: false}
+            // ,{field: 'memo', align: 'center',title: '澶囨敞', hide: false}
+            // ,{field: 'qty', align: 'center',title: '浣滀笟鏁伴噺', style: 'font-weight: bold'}
+            // ,{field: 'enableQty', align: 'center',title: '寰呭嚭鏁伴噺', style: 'font-weight: bold'}
+            // ,{field: 'finishStatus', align: 'center', title: '鏄惁瀹屾垚', templet: function(d){
+            //         if (d.qty === 0 && d.enableQty === 0) {
+            //             return '<span style="color:green;font-weight:bold;">瀹屾垚</span>';
+            //         } else {
+            //             return '<span style="color:red;">鏈畬鎴�</span>';
+            //         }
+            //     }}
+
+
+            // ,{field: 'name', align: 'center',title: '鍚嶇О'}
+            // ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
+            // ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜', hide: true}
+            // ,{field: 'supplier', align: 'center',title: '渚涘簲鍟�'}
+            // ,{field: 'unitPrice', align: 'center',title: '鍗曚环'}
+            // ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�'}
+            // ,{field: 'count', align: 'center',title: '鏁伴噺'}
+            // ,{field: 'weight', align: 'center',title: '閲嶉噺'}
+            // ,{field: 'status$', align: 'center',title: '鐘舵��'}
+            // ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
+            // ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+            // ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+            // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+            // ,{field: 'memo', align: 'center',title: '澶囨敞'}
+            ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 160}
+        ]],
+        request: {
+            pageName: 'curr',
+            pageSize: 'limit'
+        },
+        parseData: function (res) {
+            return {
+                'code': res.code,
+                'msg': res.msg,
+                'count': res.data.total,
+                'data': res.data.records
+            }
+        },
+        response: {
+            statusCode: 200
+        },
+        done: function(res, curr, count) {
+            if (res.code === 403) {
+                top.location.href = baseUrl+"/";
+            }
+            pageCurr=curr;
+            limit();
+        }
+    });
+
+    /* 琛ㄦ牸2鎼滅储 */
+    form.on('submit(sensorTbSearch)', function (data) {
+        insTb2.reload({where: data.field, page: {curr: 1}});
+        return false;
+    });
+
+    /* 琛ㄦ牸2澶村伐鍏锋爮鐐瑰嚮浜嬩欢 */
+    table.on('toolbar(orderDetlTable)', function (obj) {
+
+        var checkStatus = table.checkStatus(obj.config.id).data;
+        if (obj.event === 'pakoutPreview') { // 娣诲姞
+            if (checkStatus.length === 0) {
+                layer.msg('璇烽�夋嫨鑷冲皯涓�鏉″嚭搴撴槑缁�', {icon: 2});
+                return;
+            }
+            pakoutPreview(checkStatus.map(function (d) {
+                return d.id;
+            }));
+        } else if (obj.event === 'del') { // 鍒犻櫎
+            var checkRows = table.checkStatus('sensorTable');
+            if (checkRows.data.length === 0) {
+                layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+                return;
+            }
+            var ids = checkRows.data.map(function (d) {
+                return d.id;
+            });
+            doDelSensor({ids: ids});
+        }
+    });
+
+    /* 琛ㄦ牸2宸ュ叿鏉$偣鍑讳簨浠� */
+    table.on('tool(orderDetlTable)', function (obj) {
+        console.log(obj);
+        var data = obj.data;
+        switch (obj.event) {
+            // 鍑哄簱
+            case 'pakoutPreview':
+                pakoutPreview([data.id])
+                break;
+        }
+    });
+
+    function pakoutPreview(ids) {
+        let loadIndex = layer.load(2);
+        $.ajax({
+            url: baseUrl + "/out/pakout/preview/auth",
+            headers: {'token': localStorage.getItem('token')},
+            contentType: 'application/json;charset=UTF-8',
+            data: JSON.stringify(ids),
+            method: 'POST',
+            success: function (res) {
+                layer.close(loadIndex);
+                var tableCache;
+                if (res.code === 200){
+                    layer.open({
+                        type: 1
+                        ,title: false
+                        ,closeBtn: false
+                        ,offset: '50px'
+                        ,area: ['1500px', '700px']
+                        ,shade: 0.5
+                        ,shadeClose: false
+                        ,btn: ['绔嬪嵆鍑哄簱', '绋嶅悗澶勭悊']
+                        ,btnAlign: 'c'
+                        ,moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1
+                        ,content: $('#pakoutPreviewBox').html()
+                        ,success: function(layero, index){
+                            stoPreTabIdx = table.render({
+                                elem: '#stoPreTab',
+                                data: res.data,
+                                height: 520,
+                                page: false,
+                                limit: Number.MAX_VALUE,
+                                cellMinWidth: 100,
+                                cols: [[
+                                    {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, align: 'center'},
+                                    // {type: 'checkbox', merge: ['brand'],width: 100},
+                                    // {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 350},
+                                    {field: 'unit', title: '绠卞彿', align: 'center',hide:false},
+                                    {field: 'model', title: '鍗峰彿', align: 'center', hide: false},
+                                    {
+                                        field: 'threeCode',
+                                        align: 'center',
+                                        title: '鍚堟牸鍚�',
+                                        hide: false,
+                                        templet: function(d) {
+                                            return d.threeCode ? d.threeCode : '寰呭垽';
+                                        }
+                                    },
+                                    // {field: 'specs', title: '鎺ュご', align: 'center'},
+                                    {field: 'brand', align: 'center',title: '鍖呰缁勫彿', merge: true, hide: false},
+                                    // {field: 'brand$', align: 'center',title: '鏈ㄧ绫诲瀷', hide: false},
+                                    // {field: 'zpallet', title: '鎵樼洏鐮�', align: 'center'},
+                                    // {field: 'anfme', title: '鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'},
+                                    // {field: 'count', 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");
+                                    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);
+                            });
+                            form.on('submit(checkModifySta)', function () {
+                                if (!tableCache || tableCache.length === 0) {
+                                    layer.msg("娌℃湁鍙鐞嗙殑鏁版嵁", {icon: 7});
+                                    return false;
+                                }
+
+                                let updatedRows = [];
+
+                                for (let i = 0; i < tableCache.length; i++) {
+                                    let row = tableCache[i];
+                                    let locNo = row.locNo;
+                                    if (!locNo || locNo.length < 2) continue;
+
+                                    let rowPrefix = parseInt(locNo.substring(0, 2), 10);
+                                    let newStaNo;
+
+                                    if (rowPrefix >= 17 && rowPrefix <= 24) {
+                                        newStaNo = 3092;
+                                    } else if (rowPrefix >= 9 && rowPrefix <= 16) {
+                                        newStaNo = 3102;
+                                    } else if (rowPrefix >= 1 && rowPrefix <= 8) {
+                                        newStaNo = 3095;
+                                    }
+
+                                    if (newStaNo) {
+                                        row.staNo = newStaNo;
+                                        updatedRows.push({index: i, staNo: newStaNo});
+                                    }
+                                }
+
+                                // 閲嶈浇琛ㄦ牸鏁版嵁
+                                stoPreTabIdx.reload({data: tableCache});
+
+                                // 鏇存柊涓嬫媺妗嗛鑹插拰鍊�
+                                updatedRows.forEach(item => {
+                                    $('div[lay-id=stoPreTab] tr[data-index="' + item.index + '"] .order-sta-select').val(item.staNo);
+                                });
+                                layui.form.render('select');
+                                updatedRows.forEach(item => {
+                                    $('div[lay-id=stoPreTab] tr[data-index="' + item.index + '"] .layui-select-title input').css("color", "blue");
+                                });
+
+                                layer.msg("鍑哄簱绔欑偣鍧囧垎宸插畬鎴�", {icon: 1});
+                                return false;
+                            });
+
+                            // 鎵归噺淇敼鍑哄簱绔� - 绔欑偣閫夋嫨
+                            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){
+                            //鎸夐挳銆愮珛鍗冲嚭搴撱�戠殑鍥炶皟
+                            pakout(tableCache, index);
+                        }
+                        ,btn2: function(index, layero){
+                            //鎸夐挳銆愮◢鍚庡鐞嗐�戠殑鍥炶皟
+                            layer.close(index)
+                            //return false 寮�鍚浠g爜鍙姝㈢偣鍑昏鎸夐挳鍏抽棴
+                        }
+                    });
+                } else if (res.code === 403){
+                    top.location.href = baseUrl+"/";
+                } else {
+                    layer.msg(res.msg, {icon: 2})
+                }
+            }
+        })
+    }
+
+    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})
+                }
+            }
+        });
+    }
+
+
+
+    /* 鍒犻櫎璁㈠崟 */
+    function doDelSensor(obj) {
+        layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+            skin: 'layui-layer-admin',
+            shade: .1
+        }, function (i) {
+            layer.close(i);
+            var loadIndex = layer.load(2);
+            $.ajax({
+                url: baseUrl+"/sensor/delete/auth",
+                headers: {'token': localStorage.getItem('token')},
+                data: {ids: obj.ids},
+                method: 'POST',
+                success: function (res) {
+                    layer.close(loadIndex);
+                    if (res.code === 200){
+                        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});
+                    }
+                }
+            })
+
+        });
+    }
+
+    // 淇敼鐘舵��
+    form.on('switch(statusSwitch)', function (obj) {
+        var index  = obj.othis.parents('tr').attr("data-index");
+        var data = tableData[index];
+        data[this.name] = obj.elem.checked?1:0;
+        http.post(baseUrl+"/sensor/edit/auth", {id: data.id, status: data[this.name]}, function (res) {
+            layer.msg(res.msg, {icon: 1});
+        })
+    })
+
+    window.pakoutPreview = pakoutPreview;
+
+});
+
+function tableReload(child) {
+    var searchData = {};
+    $.each($('#search-box [name]').serializeArray(), function() {
+        searchData[this.name] = this.value;
+    });
+    (child ? parent.tableIns : tableIns).reload({
+        where: searchData,
+        page: {
+            curr: pageCurr
+        }
+    });
+}
+
+/**
+ * 涓�閿嚭搴�
+ */
+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});
+            }
+        }
+    })
+}
diff --git a/src/main/webapp/static/js/wrkMast/wrkMast.js b/src/main/webapp/static/js/wrkMast/wrkMast.js
index f762f34..4a16ed4 100644
--- a/src/main/webapp/static/js/wrkMast/wrkMast.js
+++ b/src/main/webapp/static/js/wrkMast/wrkMast.js
@@ -31,6 +31,8 @@
             ,{field: 'sourceLocNo$', align: 'center',title: '婧愬簱浣�'}
             ,{field: 'locNo$', align: 'center',title: '鐩爣搴撲綅'}
             ,{field: 'barcode', align: 'center',title: '鏉$爜'}
+            ,{field: 'memo', align: 'center',title: '缁勮揣鍗曞彿'}
+
             // ,{field: 'sheetNo$', align: 'center',title: '鏈烘鑷�', hide: false}
             ,{field: 'preHave', align: 'center',title: '鍏堝叆鍝�', hide: true}
             ,{field: 'takeNone', align: 'center',title: '绌烘搷浣�', hide: true}

--
Gitblit v1.9.1