自动化立体仓库 - WMS系统
bug修复
1.四项库入库时找到在库库位
2.四项库订单出库时没有匹配容器码导致报错
3.四项库转历史档失败
12个文件已修改
409 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/NodeController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/Utils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/TaskDto.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/allLocDetl/locDetl.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/locDetl/locDetl.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/nodeLoc/nodeLoc.js 107 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/out.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/nodeLoc/nodeLoc.html 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/NodeController.java
@@ -76,7 +76,7 @@
                      @RequestParam(required = false)String orderByType,
                      @RequestParam Map<String, Object> param){
        EntityWrapper<Node> wrapper = new EntityWrapper<>();
        //wrapper.ne("type",3);
        wrapper.ne("type",3);
        excludeTrash(param);
        convert(param, wrapper);
        hostEq(wrapper);
src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -149,8 +149,8 @@
    public boolean updateAnfme(Double anfme, String locNo, String matnr, String batch, String csocode, String isocode) {
        EntityWrapper<AgvLocDetl> wrapper = new EntityWrapper<>();
        Utils.confirmOnlyMat(wrapper,matnr,batch,csocode,isocode);
        wrapper.eq("loc_no", locNo);
        Utils.confirmOnlyMat(wrapper,matnr,batch,csocode,isocode);
        if (anfme <= 0) {
            return this.baseMapper.deleteLocDetl(locNo,anfme,matnr,batch,csocode,isocode) > 0;
        } else {
@@ -165,7 +165,7 @@
        if(Cools.isEmpty(condition)){
            wrapper.andNew().eq(column,"").or().isNull(column);
        }else {
            wrapper.eq(column,condition);
            wrapper.andNew().eq(column,condition);
        }
    }
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -258,7 +258,7 @@
        if(Cools.isEmpty(condition)){
            wrapper.andNew().eq(column,"").or().isNull(column);
        }else {
            wrapper.eq(column,condition);
            wrapper.andNew().eq(column,condition);
        }
    }
src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
@@ -239,7 +239,7 @@
        if(Cools.isEmpty(condition)){
            wrapper.andNew().eq(column,"").or().isNull(column);
        }else {
            wrapper.eq(column,condition);
            wrapper.andNew().eq(column,condition);
        }
    }
src/main/java/com/zy/asrs/utils/Utils.java
@@ -441,7 +441,7 @@
        if(Cools.isEmpty(condition) || "null".equals(condition)){
            wrapper.andNew().eq(column,"").or().isNull(column);
        }else {
            wrapper.eq(column,condition);
            wrapper.andNew().eq(column,condition);
        }
    }
src/main/java/com/zy/common/model/TaskDto.java
@@ -110,22 +110,34 @@
                if (!dto.getMatnr().equals(locDetl.getMatnr())) {
                    continue;
                }
                if (Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(locDetl.getBatch())) {
                if(!Cools.eq(dto.getBatch(),locDetl.getBatch())){
                    continue;
                }
                if (!Cools.isEmpty(dto.getBatch()) && Cools.isEmpty(locDetl.getBatch())) {
                if(!Cools.eq(dto.getCsocode(),locDetl.getThreeCode())){
                    continue;
                }
                if (!Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(locDetl.getBatch())) {
                    if (!dto.getBatch().equals(locDetl.getBatch())) {
                        continue;
                    }
                if(!Cools.eq(dto.getIsoseq(),locDetl.getDeadTime())){
                    continue;
                }
                if (!Cools.isEmpty(dto.getContainerCode()) && !Cools.isEmpty(locDetl.getSuppCode())) {
                    if (!dto.getContainerCode().equals(locDetl.getSuppCode())) {
                        continue;
                    }
                if(!Cools.eq(dto.getContainerCode(),locDetl.getSuppCode())){
                    continue;
                }
//                if (Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(locDetl.getBatch())) {
//                    continue;
//                }
//                if (!Cools.isEmpty(dto.getBatch()) && Cools.isEmpty(locDetl.getBatch())) {
//                    continue;
//                }
//                if (!Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(locDetl.getBatch())) {
//                    if (!dto.getBatch().equals(locDetl.getBatch())) {
//                        continue;
//                    }
//                }
//                if (!Cools.isEmpty(dto.getContainerCode()) && !Cools.isEmpty(locDetl.getSuppCode())) {
//                    if (!dto.getContainerCode().equals(locDetl.getSuppCode())) {
//                        continue;
//                    }
//                }
                if (dto.getAnfme() > locDetl.getAnfme()) {
                    throw new CoolException("服务器内部错误");
                }
src/main/java/com/zy/common/service/CommonService.java
@@ -413,36 +413,45 @@
            if(!VersionUtils.checkLocType(locMast0,locTypeDto)){
                continue;
            }
            //单品物料
            if (matNos.size() == 1) {
                //单品物料
                //如果不是深浅,则直接返回当前库位
                if(Cools.isEmpty(Utils.getGroupDeepLoc(locMast0.getLocNo()))){
                    return locMast0;
                }else{
                    List<String> groupInnerLoc = Utils.getGroupInnerLoc(locMast0.getLocNo());
                    //如果是深浅库位,但是内测无库位的情况下,则直接返回当前库位
                    if (Cools.isEmpty(groupInnerLoc)) {
                        return locMast0;
                    }else {
                        //获取最深的库位
                        String loc = groupInnerLoc.get(groupInnerLoc.size() - 1);
                        LocMast locMast1 = locMastService.selectByLoc(loc);
                        //如果最深测库位为空库位,则直接返回最深库位
                        if("O".equals(locMast1.getLocSts())){
                            return locMast1;
                        }else {
                            //如果最深库位状态不为F或者O,则跳出当前的深浅库位查找
                            if(!"F".equals(locMast1.getLocSts())){
                                continue;
                            }
                            List<LocDetl> locDetls = locDetlService.selectByLocNo(loc);
                            //如果当前深库位物料与入库物料不相符,则跳出当前深浅库位查找
                            if(!Cools.eq(locDetls.get(0).getMatnr(),matNos.get(0))){
                                continue;
                            }
                            //从里往外依次遍历该组深浅库位
                            for (int i=groupInnerLoc.size()-1; i>=0 ;i--){
                                LocMast locMast2 = locMastService.selectByLoc(groupInnerLoc.get(i));
                                if("O".equals(locMast2.getLocSts())){
                                    //如果深库位中含有0状态的库位,则直接返回该库位
                                    return locMast2;
                                }else if("F".equals(locMast2.getLocSts())){
                                    //如果对于locaMast0最近的一个库位也为F状态,则返回locaMastO
                                    if(i==0){
                                        return locMast1;
                                        return locMast0;
                                    }else {
                                        //如果该组深浅库位中含有既不为F也不为O的库位,则跳出当前深浅库位查找
                                        continue;
                                    }
                                }else {
src/main/webapp/static/js/allLocDetl/locDetl.js
@@ -9,8 +9,8 @@
        ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false}
        ,{field: 'batch', align: 'center',title: '序列码', sort:true}
        ,{field: 'anfme', align: 'center',title: '数量'}
        ,{field: 'units', align: 'center',title: '销售订单号', hide: true}
        ,{field: 'units', align: 'center',title: '销售订单行号', hide: true}
        ,{field: 'threeCode', align: 'center',title: '销售订单号', hide: true}
        ,{field: 'deadTime', align: 'center',title: '销售订单行号', hide: true}
        ,{field: 'zpallet', align: 'center',title: '托盘条码'}
        ,{field: 'specs', align: 'center',title: '规格型号', hide: true}
        ,{field: 'model', align: 'center',title: '通用型号', hide: true}
src/main/webapp/static/js/locDetl/locDetl.js
@@ -9,8 +9,8 @@
        ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false}
        ,{field: 'batch', align: 'center',title: '序列码', sort:true}
        ,{field: 'anfme', align: 'center',title: '数量'}
        ,{field: 'units', align: 'center',title: '销售订单号', hide: true}
        ,{field: 'units', align: 'center',title: '销售订单行号', hide: true}
        ,{field: 'threeCode', align: 'center',title: '销售订单号', hide: true}
        ,{field: 'deadTime', align: 'center',title: '销售订单行号', hide: true}
        ,{field: 'zpallet', align: 'center',title: '托盘条码'}
        ,{field: 'specs', align: 'center',title: '规格型号', hide: true}
        ,{field: 'model', align: 'center',title: '通用型号', hide: true}
src/main/webapp/static/js/nodeLoc/nodeLoc.js
@@ -1,6 +1,9 @@
var pageCurr;
var printMatCodeNos = [];
var admin;
var printContent = [];
var insTb;
var tableIns;
function getCol() {
    var cols = [
        {type: 'checkbox'}
@@ -28,7 +31,7 @@
    var xmSelect = layui.xmSelect;
    // 商品分类数据
    var insTb = treeTable.render({
    insTb = treeTable.render({
        elem: '#tag',
        url: baseUrl+'/node/list/auth',
        headers: {token: localStorage.getItem('token')},
@@ -191,29 +194,38 @@
                });
                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 () {
                        }
                    });
            case "printBatch":
                var checkRows = checkStatus.data;
                printContent = [];
                if (checkRows.length === 0) {
                    layer.msg('请选择要打印的数据', {icon: 2});
                    return;
                }
                printContent = checkRows.map(function (d) {
                    if (!d.LAY_INDETERMINATE && d.type === 3) {
                        return d.name;
                    } else {
                        return null;
                    }
                });
                layer.open({
                    type: 1,
                    title: '批量打印 [数量'+ printContent.length +']',
                    area: ['500px'],
                    shadeClose: true,
                    content: $('#printDataDiv'),
                    success: function(layero, index){
                    },
                    end: function () {
                    }
                });
                break;
        }
    });
    // 模板选择
    form.on('radio(selectTemplateRadio)', function (data) {
        $('.template-preview').hide();
        $('#template-preview-'+data.value).show();
    });
    // 监听行工具事件
@@ -325,38 +337,31 @@
    // 开始打印
    form.on('submit(doPrint)', function (data) {
        var templateNo = data.field.selectTemplate;
        $.ajax({
            url: baseUrl+"/node/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)
        var data = [];
        var type = 1;
        for (var i = 0; i<printContent.length; i ++) {
            if (printContent[i] != null && printContent[i] !== '') {
                var barcodeUrl;
                if (type === 1) {
                    barcodeUrl = baseUrl+"/mac/code/auth?type="+type+"&param="+printContent[i]+"&width="+200+"&height="+70;
                } else {
                    barcodeUrl = baseUrl+"/mac/code/auth?type="+type+"&param="+printContent[i]+"&width="+400+"&height="+180;
                }
                data.push({
                    item: printContent[i],
                    barcodeUrl: barcodeUrl
                })
            }
        })
        }
        var templateDom = $("#templatePreview"+templateNo);
        var tpl = templateDom.html();
        var template = Handlebars.compile(tpl);
        var html = template({data: data});
        var box = $("#box");
        box.html(html);
        box.show();
        box.print({mediaPrint:true});
        box.hide();
    });
    // 搜索栏搜索事件
src/main/webapp/static/js/order/out.js
@@ -39,8 +39,8 @@
            // ,{field: 'anfme', align: 'center',title: '数量'}
            // ,{field: 'qty', align: 'center',title: '作业数量', style: 'font-weight: bold'}
            ,{field: 'enableQty', align: 'center',title: '待出数量', style: 'font-weight: bold'}
            ,{field: 'color', align: 'center',title: '销售订单号'}
            ,{field: 'origin', align: 'center',title: '销售订单行号'}
            ,{field: 'threeCode', align: 'center',title: '销售订单号'}
            ,{field: 'deadTime', align: 'center',title: '销售订单行号'}
            // ,{field: 'name', align: 'center',title: '名称'}
            // ,{field: 'model', align: 'center',title: '通用型号'}
            ,{field: 'unit', align: 'center',title: '单位', hide: true}
src/main/webapp/views/nodeLoc/nodeLoc.html
@@ -114,6 +114,7 @@
<script type="text/html" id="toolbar">
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">删除</button>
        <button class="layui-btn layui-btn-sm" id="btn-print-batch" lay-event="printBatch">批量打印</button>
        <!-- 商品/物料 数据中心 -->
<!--        <div class="dropdown-menu" style="float: right">-->
<!--            <button class="layui-btn layui-btn-primary layui-border-black icon-btn layui-btn-sm">&nbsp;数据同步 <i class="layui-icon layui-icon-drop"></i></button>-->
@@ -146,122 +147,14 @@
<script type="text/javascript" src="../../static/js/nodeLoc/nodeLoc.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/nodeLoc/nodeLocTree.js" charset="utf-8"></script>
<!-- 表单弹窗 -->
<script type="text/html" id="editDialog">
    <form id="detail" lay-filter="detail" class="layui-form admin-form">
        <input name="id" type="hidden">
        <input name="uuid" type="hidden">
        <input name="nodeId" type="hidden">
        <input name="tag_id" type="hidden">
        <input name="model" type="hidden">
        <input name="name" type="hidden">
        <input name="batch" type="hidden">
        <input name="docId" type="hidden">
        <input name="docNum" type="hidden">
        <input name="custName" type="hidden">
        <input name="itemNum" type="hidden">
        <input name="count" type="hidden">
        <input name="weight" type="hidden">
        <input name="status" type="hidden">
        <input name="createBy" type="hidden">
        <input name="updateTime$" type="hidden">
        <input name="updateBy" type="hidden">
        <div class="layui-row">
            <div class="layui-col-md6">
                <div class="layui-form-item">
                    <label class="layui-form-label">分类</label>
                    <div class="layui-input-block">
                        <div id="tagSel" class="ew-xmselect-tree"></div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">商品名称</label>
                    <div class="layui-input-block">
                        <input name="maktx" placeholder="请输入商品名称" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">配置</label>
                    <div class="layui-input-block">
                        <input name="specs" placeholder="请输入配置" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">单箱净重</label>
                    <div class="layui-input-block">
                        <input name="weight" placeholder="请输入单箱净重格" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">单箱体积</label>
                    <div class="layui-input-block">
                        <input name="volume" placeholder="请输入单箱体积" class="layui-input">
                    </div>
                </div>
            </div>
            <div class="layui-col-md6">
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">商品编号</label>
                    <div class="layui-input-block">
                        <input id="matnr" name="matnr" placeholder="请输入商品编号" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">规格</label>
                    <div class="layui-input-block">
                        <input name="specs" placeholder="请输入代码" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">备注</label>
                    <div class="layui-input-block">
                        <input name="memo" placeholder="请输入备注" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">单箱毛重</label>
                    <div class="layui-input-block">
                        <input name="length" placeholder="请输入单箱毛重" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">单箱体积</label>
                    <div class="layui-input-block">
                        <input name="threeCode" placeholder="请输入箱子尺寸" class="layui-input">
                    </div>
                </div>
            </div>
        </div>
        <hr class="layui-bg-gray">
        <div class="layui-form-item text-right">
            <button class="layui-btn" lay-filter="editSubmit" lay-submit="">保存</button>
            <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
        </div>
    </form>
</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="">
            <input type="radio" name="selectTemplate" value="1" title="模板一"  lay-filter="selectTemplateRadio" checked="checked">
            <input type="radio" name="selectTemplate" value="2" title="模板二" lay-filter="selectTemplateRadio">
            <input type="radio" name="selectTemplate" value="3" title="模板三" lay-filter="selectTemplateRadio">
        </div>
        <fieldset class="layui-elem-field site-demo-button" style="margin-top: 30px;text-align: left;">
            <legend>打印预览</legend>
@@ -270,62 +163,27 @@
                <!-- 预览图 1 -->
                <div id="template-preview-1" class="template-preview" style="display: inline-block">
                    <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
                        <tr style="height: 74px">
                            <td colspan="3" align="center" scope="col">商品编码</td>
                            <td class="barcode" colspan="9" align="center" scope="col">
                        <tr style="height: 74px; border: none">
                            <td class="barcode" colspan="12" align="center" scope="col" style=" border: none">
                                <img class="template-code template-barcode" src="" width="90%;">
                                <div style="letter-spacing: 2px;margin-top: 1px; text-align: center;">
                                    <span>xxxxxx</span>
                                </div>
                            </td>
                        </tr>
                        <tr style="height: 74px">
                            <td align="center" colspan="3">商品</td>
                            <td align="center" colspan="5">xxxxxx-xx/xx</td>
                            <td align="center" colspan="2">备注</td>
                            <td align="center" colspan="2">xx</td>
                        </tr>
                    </table>
                </div>
                <!-- 预览图 2 -->
                <div id="template-preview-2" class="template-preview" style="display: none">
                    <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
                        <tr style="height: 30px">
                            <td align="center" width="20%">商品</td>
                            <td align="center" width="80%" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">xxxxxxx</td>
                        </tr>
                        <tr style="height: 30px">
                            <td align="center" width="20%">备注</td>
                            <td align="center" width="80%">xxxxxxxx</td>
                        </tr>
                        <tr style="height: 75px;">
                            <td align="center" colspan="2" width="100%" style="border: none">
                                <img class="template-code template-barcode" src="" width="80%">
                                <div style="letter-spacing: 2px;margin-top: 1px; text-align: center">
                    <table class="contain" width="280" style="overflow: hidden;table-layout: fixed; border: none; font-size: xx-large">
                        <tr style="height: 74px">
                            <td class="barcode" colspan="9" align="center" scope="col" style="border: none">
                                <img class="template-code template-barcode" src="" width="90%;"> ↓
                                <div style="letter-spacing: 2px;margin-top: 1px; text-align: center; font-size: xx-small">
                                    <span>xxxxxx</span>
                                </div>
                            </td>
                        </tr>
                    </table>
                </div>
                <!-- 预览图 3 -->
                <div id="template-preview-3" class="template-preview" style="display: none">
                    <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>
                    </table>
                </div>
@@ -348,21 +206,14 @@
<!-- 模板1 -->
<script type="text/template" id="templatePreview1" class="template-barcode">
    {{#each data}}
    <table class="contain" width="280" style="overflow: hidden;font-size: small;table-layout: fixed;">
        <tr style="height: 74px">
            <td align="center" colspan="3" scope="col">商品编码</td>
            <td align="center" class="barcode" colspan="9" scope="col">
                <img class="template-code" src="{{this.barcodeUrl}}" width="90%">
                <div style="letter-spacing: 2px;margin-top: 1px; text-align: center">
                    <span>{{this.matnr}}</span>
    <table class="contain" width="400px" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
        <tr style="height: 150px; border: none">
            <td class="barcode" colspan="12" align="center" scope="col" style=" border: none">
                <img class="template-code template-barcode" src="{{this.barcodeUrl}}" width="90%;">
                <div style="letter-spacing: 2px;margin-top: 1px; text-align: center;">
                    <span>{{this.item}}</span>
                </div>
            </td>
        </tr>
        <tr style="height: 74px">
            <td align="center" colspan="3">商品</td>
            <td align="center" colspan="5" style="overflow: hidden; white-space: nowrap;text-overflow: ellipsis;">{{this.maktx}}</td>
            <td align="center" colspan="2">备注</td>
            <td align="center" colspan="2">{{this.memo}}</td>
        </tr>
    </table>
    {{/each}}
@@ -370,56 +221,14 @@
<!-- 模板2 -->
<script type="text/template" id="templatePreview2" class="template-barcode">
    {{#each data}}
    <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
        <tr style="height: 35px">
            <td align="center" width="20%">商品</td>
            <td align="center" width="80%" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">{{this.maktx}}</td>
        </tr>
        <tr style="height: 35px">
            <td align="center" width="20%">备注</td>
            <td align="center" width="80%">{{this.memo}}</td>
        </tr>
        <tr style="height: 79px;">
            <td align="center" colspan="2" width="100%" style="border: none">
                <img class="template-code" src="{{this.barcodeUrl}}" width="80%">
                <div style="letter-spacing: 2px;margin-top: 1px; text-align: center">
                    <span>{{this.matnr}}</span>
    <table class="contain" width="400px" style="overflow: hidden;table-layout: fixed; border: none; font-size: xx-large">
        <tr style="height: 150px">
            <td class="barcode" colspan="9" align="center" scope="col" style="border: none">
                <img class="template-code template-barcode" src="{{this.barcodeUrl}}" width="90%;"> ↓
                <div style="letter-spacing: 2px;margin-top: 1px; text-align: center; font-size: xx-small">
                    <span>{{this.item}}</span>
                </div>
            </td>
        </tr>
    </table>
    {{/each}}
</script>
<!-- 模板3 -->
<script type="text/template" id="templatePreview3" 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">商品</td>
            <td align="center" scope="col" colspan="1" style="
                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;
                    ">
                {{this.maktx}}
            </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>{{this.matnr}}</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;">{{this.memo}}</td>
        </tr>
    </table>
    {{/each}}