自动化立体仓库 - WMS系统
#
zyx
2024-01-27 5c63bc8e882563f4ac7fab61bdcb0c31109229ac
#
3个文件已修改
214 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/PlaController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/pla/plaDetl.js 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pla/plaDetl.html 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/PlaController.java
@@ -277,6 +277,29 @@
        return R.ok("成功同步"+listener.getTotal()+"条pla物料数据");
    }
//    // 打印
//    @RequestMapping(value = "/pla/print/auth")
//    @ManagerAuth(memo = "pla编码打印")
//    public R matCodePrint(@RequestParam(value = "param[]") String[] param) {
//        if(Cools.isEmpty(param)) {
//            return R.parse(CodeRes.EMPTY);
//        }
//        List<MatPrint> res = new ArrayList<>();
//        for (String matnr : param){
//            Mat mat = matService.selectByMatnr(matnr);
//            // 打印数据注入
//            MatPrint print = new MatPrint();
//            print.setMatnr(mat.getMatnr());
//            print.setBarcode(mat.getBarcode());
//            print.setMaktx(mat.getMaktx());
//            print.setSpecs(mat.getSpecs());
//            print.setUnit(mat.getUnit());
//            print.setMemo(mat.getMemo());
//            res.add(print);
//        }
//        return R.ok().add(res);
//    }
    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
        for (Map.Entry<String, Object> entry : map.entrySet()){
            String val = String.valueOf(entry.getValue());
src/main/webapp/static/js/pla/plaDetl.js
@@ -7,6 +7,7 @@
var checkStatus = [];
var dataCheck = [];
var admin;
var printData = [];
function getCol() {
    var cols = [
        {field: 'id', title: 'id', align: 'center',hide:true}
@@ -227,6 +228,7 @@
    // 监听头工具栏事件
    table.on('toolbar(plaDetl)', function (obj) {
        var checkStatus = table.checkStatus(obj.config.id)
        printData = checkStatus;
        switch(obj.event) {
            case 'updateData':
                var data = checkStatus.data;
@@ -365,9 +367,92 @@
                    });
                }
                break;
            // 批量打印
            case "btnPrintBatch":
                printMatCodeNos = [];
                var data = checkStatus.data;
                if (data.length === 0){
                    layer.msg('请选择打印数据');
                } else {
                    layer.open({
                        type: 1,
                        title: '批量打印 [数量'+ data.length +']',
                        area: ['500px'],
                        shadeClose: true,
                        content: $('#printDataDiv'),
                        success: function(layero, index){
                            for (var i = 0; i<data.length;i++) {
                                printMatCodeNos.push(data[i].matnr);
                            }
                        },
                        end: function () {
                        }
                    });
                }
                break;
        }
    })
    // 模板选择
    form.on('radio(selectTemplateRadio)', function (data) {
        $('.template-preview').hide();
        $('#template-preview-'+data.value).show();
    });
    // 开始打印
    form.on('submit(doPrint)', function (data) {
        var templateNo = data.field.selectTemplate;
        var templateDom = $("#templatePreview"+templateNo);
        var className = templateDom.attr("class");
        layer.closeAll();
        for (let i=0;i<printData.length;i++){
            if (className === 'template-barcode') {
                printData[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=1&param="+(printData[i].batch+";"+printData[i].packageNo)
            } else {
                res.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=2&param="+(printData[i].batch+";"+printData[i].packageNo)
            }
        }
        var tpl = templateDom.html();
        var template = Handlebars.compile(tpl);
        var html = template(printData);
        var box = $("#box");
        box.html(html);box.show();
        box.print({mediaPrint:true});
        box.hide();
        // $.ajax({
        //     url: baseUrl+"/pla/print/auth",
        //     headers: {'token': localStorage.getItem('token')},
        //     data: {param: printMatCodeNos},
        //     method: 'POST',
        //     async: false,
        //     success: function (res) {
        //         if (res.code === 200){
        //             layer.closeAll();
        //             for (let i=0;i<res.data.length;i++){
        //                 var templateDom = $("#templatePreview"+templateNo);
        //                 var className = templateDom.attr("class");
        //                 if (className === 'template-barcode') {
        //                     res.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=1&param="+res.data[i].matnr;
        //                 } else {
        //                     res.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=2&param="+res.data[i].matnr;
        //                 }
        //             }
        //             var tpl = templateDom.html();
        //             var template = Handlebars.compile(tpl);
        //             var html = template(res);
        //             var box = $("#box");
        //             box.html(html);box.show();
        //             box.print({mediaPrint:true});
        //             box.hide();
        //         } else if (res.code === 403){
        //             top.location.href = baseUrl+"/";
        //         }else {
        //             layer.msg(res.msg)
        //         }
        //     }
        // })
    });
    // 搜索栏搜索事件
    form.on('submit(search)', function (data) {
        pageCurr = 1;
src/main/webapp/views/pla/plaDetl.html
@@ -106,6 +106,17 @@
            position: fixed;
            z-index: 999;
        }
        /* ------------------------- 打印表格 -----------------------  */
        .template-preview {
            height: 200px;
            display: inline-block;
        }
        .contain td {
            border: 1px solid #000;
            /*font-family: 黑体;*/
            /*font-weight: bold;*/
            /*color: #000000;*/
        }
    </style>
</head>
<body style="padding-bottom: 30px">
@@ -223,6 +234,7 @@
        <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-viladate" lay-event="viladate" style="display: none">校验</button>
        <button class="layui-btn layui-btn-sm layui-btn-danger " id="btn-freeze" lay-event="freezeData" style="display: none">冻结</button>
        <button class="layui-btn layui-btn-sm layui-btn-checked " id="btn-disfreeze" lay-event="disFreezeData" style="display: none">解冻</button>
        <button class="layui-btn layui-btn-sm layui-btn-checked " id="btn-printBatch" lay-event="btnPrintBatch" >批量打印</button>
        <!-- 商品/物料 数据中心 -->
        <div class="dropdown-menu" style="float: right">
            <button id="syncData" style="display: none;" class="layui-btn layui-btn-primary layui-border-black icon-btn layui-btn-sm">&nbsp;数据同步 <i class="layui-icon layui-icon-drop"></i></button>
@@ -268,6 +280,100 @@
<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
<script type="text/javascript" src="../../static/js/pla/plaDetl.js" charset="utf-8"></script>
<!-- 打印操作弹窗 -->
<div id="printDataDiv" style="display: none;padding: 20px">
    <div class="layui-form" style="text-align: center">
        <hr>
        <!--单选框-->
        <div class="layui-form-item" style="display: inline-block; margin-bottom: 10px">
            <input type="radio" name="selectTemplate" value="1" title="模板一"  lay-filter="selectTemplateRadio" checked="">
        </div>
        <fieldset class="layui-elem-field site-demo-button" style="margin-top: 30px;text-align: center;">
            <legend>打印预览</legend>
            <div id="template-container" style="margin: 20px;text-align: center">
                <!-- 预览图 3 -->
                <div id="template-preview-1" class="template-preview" style="display: block">
                    <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
                        <tr style="height: 74px">
                            <td align="center" scope="col" colspan="1">牌号</td>
                            <td align="center" scope="col" colspan="1" style="">xxxxxx-xx/xx</td>
                            <td align="center" scope="col" colspan="2" rowspan="2">
                                <img class="template-code template-qrcode" src="" width="80%">
                                <div style="letter-spacing: 1px;margin-top: 1px; text-align: center">
                                    <span>xxxxxx</span>
                                </div>
                            </td>
                        </tr>
                        <tr style="height: 74px">
                            <td align="center" colspan="1">重量</td>
                            <td align="center" colspan="1" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">xxxxxxx</td>
                        </tr>
                        <tr style="height: 74px">
                            <td align="center" colspan="1">批号</td>
                            <td align="center" colspan="1" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">xxxxxxx</td>
                            <td align="center" colspan="1">包号</td>
                            <td align="center" colspan="1" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">xxxxxxx</td>
                        </tr>
                    </table>
                </div>
            </div>
        </fieldset>
        <button class="layui-btn" id="doPrint" lay-submit lay-filter="doPrint" style="margin-top: 20px">确定</button>
    </div>
</div>
<div id="box" style="display: block"></div>
<!-- 初始化打印模板的条形码 -->
<script type="text/javascript">
    $('.template-barcode').attr("src", baseUrl+"/mac/code/auth?type=1&param=123");
    $('.template-qrcode').attr("src", baseUrl+"/mac/code/auth?type=2&param=123");
</script>
<!-- 模板引擎 -->
<!-- 模板3 -->
<script type="text/template" id="templatePreview1" class="template-qrcode">
    {{#each data}}
    <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
        <tr style="height: 74px" >
            <td align="center" scope="col" colspan="1" style="font-weight: bold;"><strong style="font-weight: bold;color: black;">牌号</strong></td>
            <td align="center" scope="col" colspan="1" style="
                font-weight: bold;
                display: inline-block;
                line-height: 20px;
                vertical-align: middle;
                border: none;
                border-top: 1px solid #000;
                overflow: hidden;
                text-overflow: ellipsis;
                display: -webkit-box;
                -webkit-line-clamp: 3;
                -webkit-box-orient: vertical;
                    ">
                <strong style="font-weight: bold;color: black;">{{this.brand}}</strong>
            </td>
            <td align="center" scope="col" colspan="2" rowspan="2">
                <img class="template-code template-qrcode" src="{{this.barcodeUrl}}" width="80%">
                <div style="letter-spacing: 1px;margin-top: 1px; text-align: center">
                    <span style="font-weight: bold;color: black;"><strong style="font-weight: bold;color: black;">{{this.brand}}</strong></span>
                </div>
            </td>
        </tr>
        <tr style="height: 74px">
            <td align="center" colspan="1" style="font-weight: bold;color: black;"><strong style="font-weight: bold;color: black;">重量</strong></td>
            <td align="center" colspan="1" style="font-weight: bold;color: black;overflow:hidden; white-space:nowrap; text-overflow:ellipsis;"><strong style="font-weight: bold;color: black;">{{this.weightAnfme}}</strong></td>
        </tr>
        <tr style="height: 74px">
            <td align="center" colspan="1" style="font-weight: bold;color: black;"><strong style="font-weight: bold;color: black;">批号</strong></td>
            <td align="center" colspan="1" style="font-weight: bold;color: black;overflow:hidden; white-space:nowrap; text-overflow:ellipsis;"><strong style="font-weight: bold;color: black;">{{this.batch}}</strong></td>
            <td align="center" colspan="1" style="font-weight: bold;color: black;"><strong style="font-weight: bold;color: black;">包号</strong></td>
            <td align="center" colspan="1" style="font-weight: bold;color: black;overflow:hidden; white-space:nowrap; text-overflow:ellipsis;"><strong style="font-weight: bold;color: black;">{{this.packageNo}}</strong></td>
        </tr>
    </table>
    {{/each}}
</script>
</body>
</html>