From 8145b109ec0e9bb73d3930acf73e8dc18844adc2 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期四, 05 九月 2024 13:10:07 +0800
Subject: [PATCH] #

---
 zy-asrs-wms/src/main/webapp/static/js/locInPrintMat/locInPrintMat.js                        |  167 ++++++++---
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/LocInPrintMatController.java |    6 
 zy-asrs-wms/src/main/webapp/views/locInPrintMat/locInPrintMat.html                          |  417 ++++++++++++++++++++++++-----
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/LocInPrintMat.java               |  151 ++++++++--
 zy-asrs-common/src/main/java/com/zy/asrs/common/domain/entity/MatPrint.java                 |   39 ++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TagController.java                     |   54 +++
 6 files changed, 673 insertions(+), 161 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/entity/MatPrint.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/entity/MatPrint.java
index 9e4ef18..6b88ce6 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/entity/MatPrint.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/entity/MatPrint.java
@@ -62,4 +62,43 @@
     //楂樺害
     private String height;
 
+
+    //-------------------------//
+
+    /**
+     * 鐗╂枡鎵规
+     */
+    private String batch;
+
+    /**
+     * 鏁伴噺
+     */
+    private Double anfme;
+
+
+    /**
+     * 搴撲綅鍙�
+     */
+    private String locNo;
+
+    /**
+     * 搴撲綅鍙�
+     */
+    private Long id;
+
+    /**
+     * 搴撲綅鍙�
+     */
+    private Long index;
+
+    /**
+     * 璐т富鍙�
+     */
+    private Long ownerId;
+
+    /**
+     * 璐т富
+     */
+    private String owner;
+
 }
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/LocInPrintMatController.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/LocInPrintMatController.java
index 5979f2a..625dcb8 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/LocInPrintMatController.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/controller/LocInPrintMatController.java
@@ -23,7 +23,7 @@
     @Autowired
     private LocInPrintMatService locInPrintMatService;
 
-    @RequestMapping(value = "/locInPrintMat/{id}/auth")
+    @RequestMapping(value = "/locInPrintMat/{id}/auth/v1")
     @ManagerAuth
     public R get(@PathVariable("id") String id) {
         return R.ok(locInPrintMatService.getById(String.valueOf(id)));
@@ -45,6 +45,8 @@
             wrapper.ge(LocInPrintMat::getCreateTime, DateUtils.convert(range[0]));
             wrapper.le(LocInPrintMat::getCreateTime, DateUtils.convert(range[1]));
         }
+        wrapper.orderBy("status".isEmpty(),true);
+        wrapper.orderBy("create_time".isEmpty(),false);
         return R.ok(locInPrintMatService.page(new Page<>(curr, limit), wrapper));
     }
 
@@ -69,7 +71,7 @@
     @RequestMapping(value = "/locInPrintMat/delete/auth")
     @ManagerAuth
     public R delete(@RequestParam(value="ids[]") Long[] ids){
-         for (Long id : ids){
+        for (Long id : ids){
             locInPrintMatService.removeById(id);
         }
         return R.ok();
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/LocInPrintMat.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/LocInPrintMat.java
index 9362b60..99d948b 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/LocInPrintMat.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/LocInPrintMat.java
@@ -29,53 +29,96 @@
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value= "")
+    /**
+     * ID
+     */
+    @ApiModelProperty(value= "ID")
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 缂栧彿
+     */
+    @ApiModelProperty(value= "缂栧彿")
     private String uuid;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 鎵撳嵃鎯呭喌 1: 鏈墦鍗�  2: 宸叉墦鍗�
+     */
+    @ApiModelProperty(value= "鎵撳嵃鎯呭喌 1: 鏈墦鍗�  2: 宸叉墦鍗�  ")
     private Integer status;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 娣诲姞鏃堕棿
+     */
+    @ApiModelProperty(value= "娣诲姞鏃堕棿")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 娣诲姞浜哄憳
+     */
+    @ApiModelProperty(value= "娣诲姞浜哄憳")
     private Long createBy;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 淇敼鏃堕棿
+     */
+    @ApiModelProperty(value= "淇敼鏃堕棿")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 淇敼浜哄憳
+     */
+    @ApiModelProperty(value= "淇敼浜哄憳")
     private Long updateBy;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty(value= "澶囨敞")
     private String memo;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 鐗╂枡缂栫爜
+     */
+    @ApiModelProperty(value= "鐗╂枡缂栫爜")
     private String matnr;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 鎵规
+     */
+    @ApiModelProperty(value= "鎵规")
     private String batch;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 閲嶉噺
+     */
+    @ApiModelProperty(value= "閲嶉噺")
     private Double anfme;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 搴撲綅鍙�
+     */
+    @ApiModelProperty(value= "搴撲綅鍙�")
     private String locNo;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 鍟嗗搧鍚嶇О
+     */
+    @ApiModelProperty(value= "鍟嗗搧鍚嶇О")
     private String maktx;
 
-    @ApiModelProperty(value= "")
+    /**
+     * 鍟嗗搧鍚嶇О
+     */
+    @ApiModelProperty(value= "鍟嗗搧鍚嶇О")
     private Long ownerId;
 
     public LocInPrintMat() {}
 
-    public LocInPrintMat(String uuid,Integer status,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo,String matnr,String batch,Double anfme,String locNo,String maktx,Long ownerId) {
+    public LocInPrintMat(String uuid,Integer status,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo,String matnr,String batch,Double anfme,String locNo,String maktx) {
         this.uuid = uuid;
         this.status = status;
         this.createTime = createTime;
@@ -88,24 +131,47 @@
         this.anfme = anfme;
         this.locNo = locNo;
         this.maktx = maktx;
-        this.ownerId = ownerId;
+    }
+
+    public LocInPrintMat(Date now,Long userId,String matnr,String batch,Double anfme,String locNo,String maktx) {
+        this.uuid = String.valueOf(now.getTime());
+        this.createTime = now;
+        this.createBy = userId;
+//        this.updateTime = now;
+//        this.updateBy = userId;
+        this.matnr = matnr;
+        this.batch = batch;
+        this.anfme = anfme;
+        this.locNo = locNo;
+        this.maktx = maktx;
     }
 
 //    LocInPrintMat locInPrintMat = new LocInPrintMat(
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null,    // 
-//            null    // 
+//            null,    // 缂栧彿
+//            null,    // 鎵撳嵃鎯呭喌
+//            null,    // 娣诲姞鏃堕棿
+//            null,    // 娣诲姞浜哄憳
+//            null,    // 淇敼鏃堕棿
+//            null,    // 淇敼浜哄憳
+//            null,    // 澶囨敞
+//            null,    // 鐗╂枡缂栫爜
+//            null,    // 鎵规
+//            null,    // 閲嶉噺
+//            null,    // 搴撲綅鍙�
+//            null    // 鍟嗗搧鍚嶇О
 //    );
+
+    public String getStatus$(){
+        if (null == this.status){ return null; }
+        switch (this.status){
+            case 1:
+                return "鏈墦鍗�";
+            case 2:
+                return "宸叉墦鍗�";
+            default:
+                return String.valueOf(this.status);
+        }
+    }
 
     public String getCreateTime$(){
         if (Cools.isEmpty(this.createTime)){
@@ -114,6 +180,24 @@
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
     }
 
+    public String getCreateBy$(){
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.getById(this.createBy);
+        if (!Cools.isEmpty(user)){
+            return String.valueOf(user.getUsername());
+        }
+        return null;
+    }
+
+//    public String getOwner$(){
+//        LocOwnerService locOwnerService = SpringUtils.getBean(LocOwnerService.class);
+//        LocOwner locOwner = locOwnerService.selectById(this.ownerId);
+//        if (!Cools.isEmpty(locOwner)){
+//            return String.valueOf(locOwner.getOwner());
+//        }
+//        return null;
+//    }
+
     public String getUpdateTime$(){
         if (Cools.isEmpty(this.updateTime)){
             return "";
@@ -121,5 +205,14 @@
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
     }
 
+    public String getUpdateBy$(){
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.getById(this.updateBy);
+        if (!Cools.isEmpty(user)){
+            return String.valueOf(user.getUsername());
+        }
+        return null;
+    }
+
 
 }
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TagController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TagController.java
index d1fbe84..ea9196f 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TagController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TagController.java
@@ -8,8 +8,10 @@
 import com.zy.asrs.common.domain.entity.MatExcel;
 import com.zy.asrs.common.domain.entity.MatPrint;
 import com.zy.asrs.common.utils.*;
+import com.zy.asrs.common.wms.entity.LocInPrintMat;
 import com.zy.asrs.common.wms.entity.Mat;
 import com.zy.asrs.common.wms.entity.Tag;
+import com.zy.asrs.common.wms.service.LocInPrintMatService;
 import com.zy.asrs.common.wms.service.MatService;
 import com.zy.asrs.common.wms.service.TagService;
 import com.zy.asrs.framework.annotations.ManagerAuth;
@@ -41,6 +43,8 @@
     private MatService matService;
     @Autowired
     private TreeUtils treeUtils;
+    @Autowired
+    private LocInPrintMatService locInPrintMatService;
 
 
     @RequestMapping(value = "/tag/list/pda/auth")
@@ -203,6 +207,56 @@
         return R.ok().add(res);
     }
 
+    // 鎵撳嵃
+    @RequestMapping(value = "/loc/in/mat/print/auth")
+    @ManagerAuth(memo = "鍟嗗搧缂栫爜鎵撳嵃")
+    public R locInMatCodePrint(@RequestParam(value = "param[]") Long[] ids) {
+        if(Cools.isEmpty(ids)) {
+            return R.parse(CodeRes.EMPTY);
+        }
+        List<MatPrint> res = new ArrayList<>();
+        for (Long id : ids){
+            LocInPrintMat locInPrintMat = locInPrintMatService.getById(id);
+            Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, locInPrintMat.getMatnr()));
+            if (Cools.isEmpty(mat)){
+                return R.error("鍝佸彿:"+locInPrintMat.getMatnr()+"涓嶅瓨鍦紝璇峰厛鏂板鍟嗗搧妗f锛侊紒锛�").add("鍝佸彿:"+locInPrintMat.getMatnr()+"涓嶅瓨鍦紝璇峰厛鏂板鍟嗗搧妗f锛侊紒锛�");
+            }
+            // 鎵撳嵃鏁版嵁娉ㄥ叆
+            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());
+
+            print.setMaterial(mat.getMaterial());
+            print.setDecrees(mat.getDecrees());
+            print.setImgNum(mat.getImgNum());
+            print.setWeight(String.valueOf(mat.getWeight()));
+            print.setModel(mat.getModel());
+            print.setLength(String.valueOf(mat.getLength()));
+            print.setWidth(mat.getWidth());
+            print.setHeight(mat.getHeight());
+//            // 鎵撳嵃鏁版嵁娉ㄥ叆
+//            MatPrint print = new MatPrint();
+//            print.setMatnr(locInPrintMat.getMatnr());
+//            print.setMaktx(locInPrintMat.getMaktx());
+//            print.setBatch(locInPrintMat.getBatch());
+//            print.setAnfme(locInPrintMat.getAnfme());
+//            print.setLocNo(locInPrintMat.getLocNo());
+//            print.setOwnerId(locInPrintMat.getOwnerId());
+//            print.setOwner(locInPrintMat.getOwner$());
+            print.setId(locInPrintMat.getId());
+            res.add(print);
+            locInPrintMat.setUpdateTime(new Date());
+            locInPrintMat.setUpdateBy(getUserId());
+            locInPrintMat.setStatus(2);
+            locInPrintMatService.updateById(locInPrintMat);
+        }
+        return R.ok().add(res);
+    }
+
 
     /*************************************** 鏁版嵁鐩稿叧 ***********************************************/
 
diff --git a/zy-asrs-wms/src/main/webapp/static/js/locInPrintMat/locInPrintMat.js b/zy-asrs-wms/src/main/webapp/static/js/locInPrintMat/locInPrintMat.js
index cbda7a6..7461fd9 100644
--- a/zy-asrs-wms/src/main/webapp/static/js/locInPrintMat/locInPrintMat.js
+++ b/zy-asrs-wms/src/main/webapp/static/js/locInPrintMat/locInPrintMat.js
@@ -24,20 +24,20 @@
         height: 'full-120',
         cols: [[
             {type: 'checkbox'}
-            ,{field: 'id', align: 'center',title: ''}
-            ,{field: 'uuid', align: 'center',title: ''}
-            ,{field: 'status', align: 'center',title: ''}
-            ,{field: 'createTime$', align: 'center',title: ''}
-            ,{field: 'createBy', align: 'center',title: ''}
-            ,{field: 'updateTime$', align: 'center',title: ''}
-            ,{field: 'updateBy', align: 'center',title: ''}
-            ,{field: 'memo', align: 'center',title: ''}
-            ,{field: 'matnr', align: 'center',title: ''}
-            ,{field: 'batch', align: 'center',title: ''}
-            ,{field: 'anfme', align: 'center',title: ''}
-            ,{field: 'locNo', align: 'center',title: ''}
-            ,{field: 'maktx', align: 'center',title: ''}
-            ,{field: 'ownerId', align: 'center',title: ''}
+            ,{field: 'id', align: 'center',title: 'ID',hide : true}
+            ,{field: 'uuid', align: 'center',title: '缂栧彿',hide: true}
+            ,{field: 'status$', align: 'center',title: '鎵撳嵃鎯呭喌', width:100,hide: false}
+            ,{field: 'matnr', align: 'center',title: '鍝佸彿', width:180,hide: false}
+            // ,{field: 'batch', align: 'center',title: '鎵规', width:100,hide: false}
+            // ,{field: 'anfme', align: 'center',title: '閲嶉噺(kg)', width:100,hide: false}
+            // ,{field: 'locNo', align: 'center',title: '搴撲綅鍙�', width:120,hide: false}
+            ,{field: 'maktx', align: 'center',title: '鍝佸悕',hide: false}
+            // ,{field: 'owner$', align: 'center',title: '璐т富',hide: false}
+            // ,{field: 'createTime$', align: 'center',title: '鍏ュ簱鏃堕棿', width:120,hide: false}
+            // ,{field: 'createBy$', align: 'center',title: '鍏ュ簱浜哄憳', width:100,hide: false}
+            ,{field: 'updateTime$', align: 'center',title: '鎵撳嵃鏃堕棿', width:180,hide: false}
+            ,{field: 'updateBy$', align: 'center',title: '鎵撳嵃浜哄憳',hide: false}
+            ,{field: 'memo', align: 'center',title: '澶囨敞',hide: false}
 
             ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
         ]],
@@ -60,7 +60,7 @@
             if (res.code === 403) {
                 top.location.href = baseUrl+"/";
             }
-            pageCurr=curr;pageCount=count;
+            pageCurr=curr;
             limit();
         }
     });
@@ -87,14 +87,14 @@
                 showEditModel();
                 break;
             case 'deleteData':
-               if (checkStatus.length === 0) {
-                   layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
-                   return;
-               }
-               del(checkStatus.map(function (d) {
-                   return d.id;
-               }));
-               break;
+                if (checkStatus.length === 0) {
+                    layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+                    return;
+                }
+                del(checkStatus.map(function (d) {
+                    return d.id;
+                }));
+                break;
             case 'exportData':
                 admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
                     var titles=[];
@@ -133,6 +133,29 @@
                     });
                 });
                 break;
+            // 鎵归噺鎵撳嵃
+            case "btnPrintBatch":
+                printMatCodeNos = [];
+                var data = checkStatus;
+                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].id);
+                            }
+                        },
+                        end: function () {
+                        }
+                    });
+                }
+                break;
         }
     });
 
@@ -140,6 +163,10 @@
     table.on('tool(locInPrintMat)', function(obj){
         var data = obj.data;
         switch (obj.event) {
+            case 'btnPrint':
+                layer.msg("搴熷純")
+                break;
+            // btnPrint(data.id, data.orderNo, 4);
             case 'edit':
                 showEditModel(data);
                 break;
@@ -154,11 +181,11 @@
         admin.open({
             type: 1,
             area: '600px',
-            title: (mData ? '淇敼' : '娣诲姞') + '',
+            title: (mData ? '淇敼' : '娣诲姞') + '璁㈠崟鐘舵��',
             content: $('#editDialog').html(),
             success: function (layero, dIndex) {
-                form.val('detail', mData);
                 layDateRender(mData);
+                form.val('detail', mData);
                 form.on('submit(editSubmit)', function (data) {
                     var loadIndex = layer.load(2);
                     $.ajax({
@@ -218,40 +245,84 @@
     // 鎼滅储
     form.on('submit(search)', function (data) {
         pageCurr = 1;
-        tableReload(true);
+        tableReload(false);
     });
 
     // 閲嶇疆
     form.on('submit(reset)', function (data) {
         pageCurr = 1;
         clearFormVal($('#search-box'));
-        tableReload(true);
+        tableReload(false);
+    });
+
+    // 妯℃澘閫夋嫨
+    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;
+        $.ajax({
+            url: baseUrl+"/loc/in/mat/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+";" +res.data[i].batch+";"
+                                +res.data[i].anfme+";" +res.data[i].locNo+";"
+                                +res.data[i].ownerId+";"+res.data[i].maktx+";"
+                                +res.data[i].id;
+                        } else {
+                            res.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=2&param="
+                                +res.data[i].matnr+";" +res.data[i].batch+";"
+                                +res.data[i].anfme+";" +res.data[i].locNo+";"
+                                +res.data[i].ownerId+";"+res.data[i].maktx+";"
+                                +res.data[i].id;
+                        }
+                    }
+                    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)
+                }
+            }
+        })
     });
 
     // 鏃堕棿閫夋嫨鍣�
     function layDateRender(data) {
         setTimeout(function () {
             layDate.render({
-                elem: '.layui-laydate-range'
-                ,type: 'datetime'
-                ,range: true
-            });
-            layDate.render({
                 elem: '#createTime\\$',
                 type: 'datetime',
-                value: data!==undefined?data['createTime$']:null
+                value: data!==undefined?data['createTime\\$']:null
             });
             layDate.render({
                 elem: '#updateTime\\$',
                 type: 'datetime',
-                value: data!==undefined?data['updateTime$']:null
+                value: data!==undefined?data['updateTime\\$']:null
             });
 
-        }, 100);
+        }, 300);
     }
     layDateRender();
-
-
 
 });
 
@@ -260,17 +331,13 @@
     parent.layer.closeAll();
 });
 
-function tableReload(search) {
-    if (pageCount === 0 || search) {
-        let searchData = {};
-        $.each($('#search-box [name]').serializeArray(), function() {
-            searchData[this.name] = this.value;
-        });
-        tableIns.reload({
-            where: searchData,
-            page: {curr: pageCurr}
-        });
-    } else {
-        $(".layui-laypage-btn")[0].click();
-    }
+function tableReload(child) {
+    var searchData = {};
+    $.each($('#search-box [name]').serializeArray(), function() {
+        searchData[this.name] = this.value;
+    });
+    tableIns.reload({
+        where: searchData,
+        page: {curr: pageCurr}
+    });
 }
diff --git a/zy-asrs-wms/src/main/webapp/views/locInPrintMat/locInPrintMat.html b/zy-asrs-wms/src/main/webapp/views/locInPrintMat/locInPrintMat.html
index d4cd67b..03569ff 100644
--- a/zy-asrs-wms/src/main/webapp/views/locInPrintMat/locInPrintMat.html
+++ b/zy-asrs-wms/src/main/webapp/views/locInPrintMat/locInPrintMat.html
@@ -9,6 +9,70 @@
     <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
     <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
     <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+
+    <style>
+        /* ------------------------- 鎵撳嵃琛ㄦ牸 -----------------------  */
+        .contain {
+            border-collapse: collapse;
+            width: 280px;
+            font-size: x-small;
+            table-layout: fixed;
+            color: black;
+        }
+        .contain img.template-qrcode {
+            width: 80%;
+        }
+        .contain td, .contain th {
+            border: 1px solid black;
+            text-align: center;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            white-space: nowrap;
+            padding: 5px;
+        }
+        .contain th {
+            font-weight: bold;
+            color: black;
+            background-color: #f2f2f2;
+        }
+        .contain tr:nth-child(even){background-color: #f9f9f9;}
+        .contain strong {
+            font-weight: bold;
+            line-height: 20px;
+            vertical-align: middle;
+            display: -webkit-box;
+            -webkit-line-clamp: 3;
+            -webkit-box-orient: vertical;
+        }
+        .barcode-section {
+            text-align: center;
+        }
+        .barcode-section span {
+            letter-spacing: 1px;
+            font-weight: bold;
+            color: black;
+        }
+
+        #templatePreview3 {
+            color: black;
+            border-color: black;
+            border-collapse: collapse; /* 鎶樺彔杈规 */
+        }
+
+        /* 灏嗘牱寮忓彧搴旂敤鍒板叿鏈夌壒瀹歩d鐨則able銆乼h銆乼d */
+        #templatePreview3, #myTable th, #myTable td {
+            color: black;
+            border: 2px solid black; /* 2鍍忕礌榛戣壊杈规 */
+        }
+
+        #templatePreview3 th, #myTable td {
+            color: black;
+            border-color: black;
+            text-align: left;
+            padding: 8px;
+        }
+
+    </style>
 </head>
 <body>
 
@@ -17,16 +81,27 @@
         <div class="layui-card-body">
             <div class="layui-form toolbar" id="search-box">
                 <div class="layui-form-item">
+                    <!--                    <div class="layui-inline">-->
+                    <!--                        <label class="layui-form-label">缂栧彿:</label>-->
+                    <!--                        <div class="layui-input-inline">-->
+                    <!--                            <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off">-->
+                    <!--                        </div>-->
+                    <!--                    </div>-->
                     <div class="layui-inline">
-                        <div class="layui-input-inline">
-                            <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+                        <label class="layui-form-label">鎵撳嵃鎯呭喌: </label>
+                        <div class="layui-input-block">
+                            <select name="status">
+                                <option value="">璇烽�夋嫨鎵撳嵃鎯呭喌</option>
+                                <option value="1">鏈墦鍗�</option>
+                                <option value="2">宸叉墦鍗�</option>
+                            </select>
                         </div>
                     </div>
-                    <div class="layui-inline" style="width: 300px">
-                        <div class="layui-input-inline">
-                            <input class="layui-input layui-laydate-range" name="timeRange" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
-                        </div>
-                    </div>
+                    <!--                    <div class="layui-inline">-->
+                    <!--                        <div class="layui-input-inline">-->
+                    <!--                            <input class="layui-input" type="text" name="ownerId" placeholder="璐т富" autocomplete="off">-->
+                    <!--                        </div>-->
+                    <!--                    </div>-->
                     <div class="layui-inline">&emsp;
                         <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
                             <i class="layui-icon">&#xe615;</i>鎼滅储
@@ -46,6 +121,8 @@
     <div class="layui-btn-container">
         <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
         <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="btnPrintBatch">鎵归噺鎵撳嵃</button>
+
         <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>
     </div>
 </script>
@@ -53,107 +130,287 @@
 <script type="text/html" id="operate">
     <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
     <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>
+    <!--    <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="btnPrint">鎵撳嵃</a>-->
+
 </script>
 
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/jquery/jQuery.print.js"></script>
+<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
 <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/locInPrintMat/locInPrintMat.js" charset="utf-8"></script>
 </body>
 <!-- 琛ㄥ崟寮圭獥 -->
 <script type="text/html" id="editDialog">
-    <div id="detail" lay-filter="detail" class="layui-form admin-form model-form">
+    <form id="detail" lay-filter="detail" class="layui-form admin-form model-form">
         <input name="id" type="hidden">
         <div class="layui-row">
             <div class="layui-col-md12">
                 <div class="layui-form-item">
-                    <label class="layui-form-label">: </label>
+                    <label class="layui-form-label">鎵撳嵃鎯呭喌: </label>
                     <div class="layui-input-block">
-                        <input class="layui-input" name="uuid" placeholder="璇疯緭鍏�">
+                        <select name="status">
+                            <option value="">璇烽�夋嫨鎵撳嵃鎯呭喌</option>
+                            <option value="1">鏈墦鍗�</option>
+                            <option value="2">宸叉墦鍗�</option>
+                        </select>
+                    </div>
+                </div>
+<!--                <div class="layui-form-item">-->
+<!--                    <label class="layui-form-label">璐т富缂栧彿: </label>-->
+<!--                    <div class="layui-input-block">-->
+<!--                        <input class="layui-input" name="owner" placeholder="璇疯緭鍏ヨ揣涓荤紪鍙�">-->
+<!--                    </div>-->
+<!--                </div>-->
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鐗╂枡缂栫爜: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="matnr" placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�">
+                    </div>
+                </div>
+<!--                <div class="layui-form-item">-->
+<!--                    <label class="layui-form-label">鎵规: </label>-->
+<!--                    <div class="layui-input-block">-->
+<!--                        <input class="layui-input" name="batch" placeholder="璇疯緭鍏ユ壒娆�">-->
+<!--                    </div>-->
+<!--                </div>-->
+<!--                <div class="layui-form-item">-->
+<!--                    <label class="layui-form-label">閲嶉噺: </label>-->
+<!--                    <div class="layui-input-block">-->
+<!--                        <input class="layui-input" name="anfme" placeholder="璇疯緭鍏ラ噸閲�">-->
+<!--                    </div>-->
+<!--                </div>-->
+<!--                <div class="layui-form-item">-->
+<!--                    <label class="layui-form-label">搴撲綅鍙�: </label>-->
+<!--                    <div class="layui-input-block">-->
+<!--                        <input class="layui-input" name="locNo" placeholder="璇疯緭鍏ュ簱浣嶅彿">-->
+<!--                    </div>-->
+<!--                </div>-->
+                <div class="layui-form-item">
+                    <label class="layui-form-label">鍟嗗搧鍚嶇О: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="maktx" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�">
                     </div>
                 </div>
                 <div class="layui-form-item">
-                    <label class="layui-form-label">: </label>
+                    <label class="layui-form-label">澶囨敞: </label>
                     <div class="layui-input-block">
-                        <input class="layui-input" name="status" placeholder="璇疯緭鍏�">
+                        <input class="layui-input" name="memo" placeholder="璇疯緭鍏ュ娉�">
                     </div>
                 </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="createTime" id="createTime$" placeholder="璇疯緭鍏�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="createBy" placeholder="璇疯緭鍏�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="updateTime" id="updateTime$" placeholder="璇疯緭鍏�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="updateBy" placeholder="璇疯緭鍏�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="memo" placeholder="璇疯緭鍏�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="matnr" placeholder="璇疯緭鍏�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="batch" placeholder="璇疯緭鍏�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="anfme" placeholder="璇疯緭鍏�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="locNo" placeholder="璇疯緭鍏�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="maktx" placeholder="璇疯緭鍏�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="ownerId" placeholder="璇疯緭鍏�">
-                    </div>
-                </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="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>
+            <div id="template-container" style="margin: 20px;text-align: center">
+
+                <!-- 棰勮鍥� 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">
+                                <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">
+                                    <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>
+            </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>
+
+<!-- 妯℃澘寮曟搸 -->
+<!-- 妯℃澘1 -->
+<script type="text/template" id="templatePreview1" class="template-qrcode">
+    {{#each data}}
+    <table class="contain" width="300"
+           style="overflow: hidden;font-size: xx-small;table-layout: fixed;margin-top: 20px;">
+        <tr style="height: 20px">
+            <td align="center" scope="col" colspan="1" style="font-size: 10px;">鍚嶇О</td>
+            <td align="center" scope="col" colspan="2" style="font-size: 10px;">{{this.maktx}}</td>
+            <td align="center" scope="col" colspan="3" rowspan="4">
+                <img class="template-code template-qrcode" src="{{this.barcodeUrl}}" width="50%">
+                <div style="letter-spacing: 1px;margin-top: 1px; text-align: center">
+                    <span>{{this.matnr}}</span>
+                </div>
+            </td>
+        </tr>
+        <tr style="height: 20px">
+            <td align="center" colspan="1" style="font-size: 10px;">鍒朵护</td>
+            <td align="center" colspan="2"
+                style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;font-size: 10px;">{{this.decrees}}
+            </td>
+        </tr>
+        <tr style="height: 20px">
+            <td align="center" colspan="1" style="font-size: 10px;">鏈哄瀷</td>
+            <td align="center" colspan="2"
+                style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;font-size: 10px;">{{this.model}}
+            </td>
+        </tr>
+        <tr style="height: 20px">
+            <td align="center" colspan="1" style="font-size: 10px;">鍥惧彿</td>
+            <td align="center" colspan="2"
+                style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;font-size: 10px;">{{this.imgNum}}
+            </td>
+        </tr>
+        <tr style="height: 20px">
+            <td align="center" colspan="1" style="font-size: 10px;">瑙勬牸</td>
+            <td align="center" colspan="2"
+                style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;font-size: 10px;">{{this.specs}}
+            </td>
+            <td align="center" colspan="1" style="font-size: 10px;">鏉愯川</td>
+            <td align="center" colspan="2"
+                style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;font-size: 10px;">{{this.material}}
+            </td>
+        </tr>
+        <tr style="height: 20px">
+            <td align="center" colspan="1" style="font-size: 10px;">閲嶉噺</td>
+            <td align="center" colspan="2"
+                style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;font-size: 10px;">{{this.weight}}
+            </td>
+            <td align="center" colspan="1" style="font-size: 10px;">闀垮楂�</td>
+            <td align="center" colspan="2" style="font-size: 10px;">{{this.length}}x{{this.width}}x{{this.height}}
+            </td>
+        </tr>
+    </table>
+    {{/each}}
+</script>
+<!-- 妯℃澘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>
+                </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>
+            <th>鍟嗗搧</th>
+            <td colspan="2"><strong>{{this.maktx}}</strong></td>
+            <td colspan="3" rowspan="4" class="barcode-section" style="white-space: normal; ">
+                <img class="template-code template-qrcode" src="{{this.barcodeUrl}}" alt="Barcode Image">
+                <div><span >{{this.owner}}</span></div>
+            </td>
+        </tr>
+        <tr>
+            <th>鎵规</th>
+            <td colspan="2"><strong>{{this.batch}}</strong></td>
+        </tr>
+        <tr>
+            <th>閲嶉噺</th>
+            <td colspan="2"><strong>{{this.anfme}}kg</strong></td>
+        </tr>
+        <tr>
+            <th>搴撲綅</th>
+            <td colspan="2"><strong>{{this.locNo}}</strong></td>
+        </tr>
+        <tr>
+            <th>鍝佸彿</th>
+            <td colspan="5"><strong>{{this.matnr}}</strong></td>
+        </tr>
+    </table>
+    {{/each}}
 </script>
 </html>
 

--
Gitblit v1.9.1