From 3d04b112c510fd14617ab79dad1ecd51143eca2a Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 06 十一月 2024 16:17:51 +0800
Subject: [PATCH] 订单明细打印物料二维码

---
 src/main/resources/mapper/OrderDetlMapper.xml                 |   16 +++++
 src/main/java/com/zy/asrs/entity/param/PrintDataDto.java      |   48 ++++++++++++++++
 src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java         |    7 ++
 src/main/webapp/static/js/order/order.js                      |   39 ++++++++++++
 src/main/java/com/zy/asrs/controller/OrderDetlController.java |   15 ++++
 src/main/webapp/views/order/order.html                        |   33 +++++++++++
 6 files changed, 156 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OrderDetlController.java b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
index 6e35693..86b40f3 100644
--- a/src/main/java/com/zy/asrs/controller/OrderDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
@@ -9,13 +9,14 @@
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.R;
-import com.zy.asrs.entity.Order;
 import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.mapper.OrderDetlMapper;
 import com.zy.asrs.service.OrderDetlService;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -26,6 +27,9 @@
 
     @Autowired
     private OrderDetlService orderDetlService;
+
+    @Resource
+    private OrderDetlMapper orderDetlMapper;
 
     @PostMapping("/orderDetl/list/pda/auth")
     public R getPdaOrderDetl(@RequestBody Map<String,Object> map) {
@@ -142,4 +146,13 @@
         return R.ok();
     }
 
+    @RequestMapping(value = "/orderDetl/getPrintDetl/{id}")
+    @ManagerAuth
+    public R getPrintDetl(@PathVariable("id") Integer id) {
+        if (Cools.isEmpty(id)) {
+            return R.parse("id涓虹┖");
+        }
+        return R.ok(orderDetlMapper.selectPrintData(id));
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/entity/param/PrintDataDto.java b/src/main/java/com/zy/asrs/entity/param/PrintDataDto.java
new file mode 100644
index 0000000..307e7ec
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/PrintDataDto.java
@@ -0,0 +1,48 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+/**
+ * @author pang.jiabao
+ * @description 鎵撳嵃璁㈠崟鏄庣粏浜岀淮鐮佷俊鎭�
+ * @createDate 2024/11/5 16:51
+ */
+@Data
+public class PrintDataDto {
+
+    /**
+     * 鐗╂枡缂栫爜
+     */
+    private String matnr;
+
+    /**
+     * 鐗╂枡鍚嶇О
+     */
+    private String maktx;
+
+    /**
+     * 鎵规
+     */
+    private String batch;
+
+    /**
+     * 瑙勬牸
+     */
+    private String specs;
+
+    /**
+     * 鍗曚綅
+     */
+    private String unit;
+
+    /**
+     * 鏁伴噺
+     */
+    private Double anfme;
+
+    /**
+     * 瀹㈡埛鍚嶇О
+     */
+    private String cstmrName;
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
index 51c99ad..747e8fc 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.entity.param.PrintDataDto;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
@@ -34,4 +35,10 @@
     int increaseQtyByOrderNo(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty);
 
     int increaseWorkQty(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("workQty")Double workQty);
+
+    /**
+     * 鏌ヨ鎵撳嵃璁㈠崟鏄庣粏浜岀淮鐮佹暟鎹�
+     * @param id 璁㈠崟鏄庣粏id
+     */
+    PrintDataDto selectPrintData(Integer id);
 }
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index 74ebaf0..8c1dc4c 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -124,6 +124,22 @@
         and mdt.pakout = 1
         <include refid="pakOutPageCondition"></include>
     </select>
+    <select id="selectPrintData" resultType="com.zy.asrs.entity.param.PrintDataDto">
+        select
+            top 1 md.matnr ,
+                md.maktx ,
+            md.batch ,
+            md.specs ,
+            md.unit ,
+            md.anfme ,
+            mo.cstmr_name as cstmrName
+        from
+            man_order_detl md
+                inner join man_order mo on
+                md.order_id = mo.id
+        where
+            md.id = #{id}
+    </select>
 
     <update id="increase">
         update man_order_detl
diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index 7b6cbb3..7a4fab3 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -130,7 +130,8 @@
                             {field: 'batch', title: '鎵瑰彿'},
                             {field: 'anfme', title: '鏁伴噺'},
                             {field: 'workQty', title: '浣滀笟鏁伴噺'},
-                            {field: 'qty', title: '瀹屾垚鏁伴噺', style: 'font-weight: bold'}
+                            {field: 'qty', title: '瀹屾垚鏁伴噺', style: 'font-weight: bold'},
+                            {align: 'center', title: '鎵撳嵃', toolbar: '#printOperate', width: 80}
                             // {field: 'unit', title: '鍗曚綅'},
                             // {
                             //     field: 'createTime$', title: '鍒涘缓鏃堕棿', sort: true, templet: function (d) {
@@ -166,6 +167,42 @@
         }
     });
 
+    // 鐩戝惉琛屽伐鍏蜂簨浠�
+    table.on('tool(lookSSXMTable)', function(obj) {
+        $.ajax({
+            url: baseUrl+"/orderDetl/getPrintDetl/" + obj.data.id,
+            headers: {'token': localStorage.getItem('token'),'Content-Type' :'application/json'},
+            method: 'GET',
+            async: false,
+            success: function (res) {
+                if (res.code === 200){
+                    layer.closeAll();
+                    let data = res.data
+                        var templateDom = $("#templatePreview1");
+                        var className = templateDom.attr("class");
+                        var param = "缂栫爜:"+data.matnr+";鍚嶇О:"+data.maktx+";鎵规:"+data.batch+";瑙勬牸:"+data.specs
+                            +";鍗曚綅:"+data.unit+";鏁伴噺:"+data.anfme+";瀹㈡埛鍚嶇О:"+data.cstmrName;
+                        var encodeUrl = encodeURIComponent(param);
+                        data["barcodeUrl"]=baseUrl+"/mac/code/auth?type=2&param="+encodeUrl;
+                        console.log(data["barcodeUrl"]);
+                    let list = Array.isArray(res.data) ? res.data : [res.data];
+                    res.data = list;
+                    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 showEditModel(expTpe) {
         admin.open({
diff --git a/src/main/webapp/views/order/order.html b/src/main/webapp/views/order/order.html
index 3e88192..dda5489 100644
--- a/src/main/webapp/views/order/order.html
+++ b/src/main/webapp/views/order/order.html
@@ -94,6 +94,7 @@
         </div>
     </div>
 </div>
+<div id="box" style="display: block"></div>
 <!-- 琛ㄦ牸鎿嶄綔鍒� -->
 <script type="text/html" id="operate">
     {{# if (d.settle == 0 || d.settle == 1) { }}
@@ -111,6 +112,9 @@
             <i class="layui-icon" style="font-size: 12px;">&#xe61a;</i> 鏌ョ湅鍗曟嵁鏄庣粏
         </a>
     </span>
+</script>
+<script type="text/html" id="printOperate">
+    <button class="layui-btn layui-btn-xs btn-print" lay-event="btnPrint">鎵撳嵃</button>
 </script>
 <script type="text/html" id="orderNoTpl">
     {{d.orderNo}}
@@ -183,6 +187,34 @@
 <script type="text/html" id="formSSXMTableBar">
     <!--    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">淇敼</a>-->
     <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">鍒犻櫎</a>
+</script>
+<script type="text/template" id="templatePreview1" class="template-qrcode">
+    {{#each data}}
+    <div style="width: 150px;">
+        <div>
+            <img class="template-qrcode" src="{{this.barcodeUrl}}">
+            <div style="text-align: center;">{{matnr}}</div>
+        </div>
+        <div style="font-size: 12px;">
+            鍚嶇О锛歿{maktx}}
+        </div>
+        <div style="font-size: 12px;">
+            鎵规锛歿{batch}}
+        </div>
+        <div style="font-size: 12px;">
+            瑙勬牸锛歿{specs}}
+        </div>
+        <div style="font-size: 12px;">
+            鍗曚綅锛歿{unit}}
+        </div>
+        <div style="font-size: 12px;">
+            鏁伴噺锛歿{anfme}}
+        </div>
+        <div style="font-size: 12px;">
+            瀹㈡埛鍚嶇О锛歿{cstmrName}}
+        </div>
+    </div>
+    {{/each}}
 </script>
 <!-- 琛ㄥ崟寮圭獥 -->
 <script type="text/html" id="matEditDialog">
@@ -302,6 +334,7 @@
 
 </script>
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></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/layui/layui.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/echarts/echarts.min.js" charset="utf-8"></script>

--
Gitblit v1.9.1