自动化立体仓库 - WMS系统
#
luxiaotao1123
2022-10-18 dd09d869994a4eca50a6df80b34c9d444a99fb2d
#
3个文件已修改
158 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/out.js 138 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/order/out.html 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -38,6 +38,8 @@
    private DocTypeService docTypeService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Autowired
    private MatService matService;
    @Override
    public Order selectByNo(String orderNo) {
@@ -190,6 +192,12 @@
            }
        }
        for (OrderMergeVo vo : result) {
            Mat mat = matService.selectByMatnr(vo.getMatnr());
            assert mat != null;
            vo.setMaktx(mat.getMaktx());
            vo.setSpecs(mat.getSpecs());
        }
        return result;
    }
src/main/webapp/static/js/order/out.js
@@ -147,6 +147,7 @@
                        ,moveType: 1 //拖拽模式,0或者1
                        ,content: $('#pakoutPreviewBox').html()
                        ,success: function(layero, index){
                            console.log(res.data)
                            stoPreTabIdx = table.render({
                                elem: '#stoPreTab',
                                data: res.data,
@@ -357,112 +358,53 @@
            },
            success: function (res) {
                layer.close(loadIndex);
                var mergeTabCache;
                if (res.code === 200){
                    admin.open({
                        type: 1,
                        title: '订单合并 【 数量:' + orderIds.length + " 】",
                        content: $('#mergeDialog').html(),
                        area: '900px',
                        success: function (layero, dIndex) {
                            $('#newOrderNo').val(res.data.newOrderNo);
                            // 渲染客户列表
                            let cstmrVal = xmSelect.render({
                                el: '#cstmrSelect',
                                radio: true,
                                clickClose: true,
                                filterable: true,
                                create: function(val, arr){
                                    if(arr.length === 0){
                                        return {
                                            name:  val,
                                            value: val
                                        }
                                    }
                                },
                                model: {
                                    icon: 'hidden',
                                    label: {
                                        type: 'text',
                                    }
                                },
                                data: res.data.cstmrs
                            })
                            // 渲染明细
                            let xxDataList = res.data.orderDetls;
                            let tbOptions = {
                                elem: '#mergeTable',
                                headers: {token: localStorage.getItem('token')},
                                data: xxDataList,
                                limit: 9999,
                                height: '350px;',
                    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: $('#mergeDialog').html()
                        , success: function (layero, index) {
                            console.log(res.data);
                            orderMergeTabIdx = table.render({
                                elem: '#orderMergeTab',
                                data: res.data,
                                height: 520,
                                page: false,
                                limit: Number.MAX_VALUE,
                                cellMinWidth: 100,
                                cols: [[
                                    {type: 'numbers', title: '#'},
                                    {field: 'matnr', title: '商品编码', minWidth: 170},
                                    {field: 'maktx', title: '商品名称'},
                                    {field: 'batch', title: '批号'},
                                    {field: 'anfme', title: '数量', minWidth: 80, width: 80},
                                    {field: 'unitPrice', title: '单价(修改)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 120, width: 120, fixed: 'right'},
                                    // {align: 'center', title: '操作', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80}
                                    {type: 'checkbox'},
                                    {field: 'matnr', title: '商品编码', align: 'center', width: 350},
                                    {field: 'maktx', title: '商品名称', align: 'center'},
                                    {field: 'specs', title: '规格', align: 'center'},
                                    {field: 'batch', title: '批号', align: 'center'},
                                    {field: 'anfme', title: '数量', align: 'center', width: 90, style: 'font-weight: bold'},
                                ]],
                                done: function (res) {
                                    $(layero).find('.layui-table-view').css('margin', '0');
                                    $('.layui-table-body.layui-table-main').css("overflow", "auto");
                                    mergeTabCache = tableData = table.cache.orderMergeTab;
                                }
                            };
                            let insMergeTb = table.render(tbOptions);
                            // 价格修改
                            table.on('edit(mergeTable)', function (obj) {
                                let unitPrice = Number(obj.value);
                                if (isNaN(unitPrice)) {
                                    layer.msg("请输入数字", {icon: 2});
                                } else {
                                    if (unitPrice > 0) {
                                        for (let i=0;i<xxDataList.length;i++){
                                            if (xxDataList[i]["matnr"] === obj.data.matnr && xxDataList[i]["batch"] === obj.data.batch){
                                                xxDataList[i]["unitPrice"] = unitPrice;
                                                break;
                                            }
                                        }
                                    } else {
                                        layer.msg("数量必须大于零", {icon: 2});
                                    }
                                }
                                insMergeTb.reload({data: xxDataList});
                            });
                            // 合并表单提交事件
                            form.on('submit(mergeSubmit)', function (data) {
                                let nList = admin.util.deepClone(xxDataList);
                                data.field.cstmr = cstmrVal.getValue()[0] ? cstmrVal.getValue()[0].name : null;
                                layer.load(2);
                                $.ajax({
                                    url: baseUrl+"/delivery/merge/auth",
                                    headers: {'token': localStorage.getItem('token')},
                                    data: JSON.stringify({
                                        oldOrderIds: orderIds,
                                        orderNo: data.field.newOrderNo,
                                        cstmr: data.field.cstmr,
                                        orderDetls: nList
                                    }),
                                    contentType:'application/json;charset=UTF-8',
                                    method: 'POST',
                                    success: function (res) {
                                        layer.closeAll('loading');
                                        if (res.code === 200){
                                            layer.close(dIndex);
                                            $(".layui-laypage-btn")[0].click();
                                            layer.msg(res.msg, {icon: 1});
                                        } else if (res.code === 403){
                                            top.location.href = baseUrl+"/";
                                        }else {
                                            layer.msg(res.msg, {icon: 2});
                                        }
                                    }
                                })
                                return false;
                            });
                            $(layero).children('.layui-layer-content').css('overflow', 'visible');
                        }
                    });
                        , yes: function (index, layero) {
                            //按钮【确定】的回调
                        }
                        , btn2: function (index, layero) {
                            //按钮【取消】的回调
                            layer.close(index)
                            //return false 开启该代码可禁止点击该按钮关闭
                        }
                    })
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                } else {
src/main/webapp/views/order/out.html
@@ -168,6 +168,18 @@
    </div>
</script>
<!-- 合并表单弹窗 -->
<script type="text/html" id="mergeDialog">
    <div style="padding: 25px; line-height: 22px; background-color: #1E9FFF; 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="orderMergeTab" lay-filter="orderMergeTab"></table>
        </div>
    </div>
</script>
<script type="text/html" id="tbBasicTbStaNos">
    <div class="ew-select-fixed">
        <select class="order-sta-select" lay-filter="tbBasicTbStaNos">