From d8f5476af7490d3faf40a7da332155cf06aec5e1 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 13 四月 2021 18:03:16 +0800
Subject: [PATCH] #

---
 src/main/java/zy/cloud/wms/manager/controller/OrderController.java   |   30 +++++++
 src/main/java/zy/cloud/wms/manager/controller/WorkController.java    |    2 
 src/main/webapp/static/js/order/order.js                             |   58 +++++++++++++
 src/main/java/zy/cloud/wms/manager/entity/param/StockOutParam.java   |    2 
 src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java |   40 +++++----
 src/main/java/zy/cloud/wms/manager/service/WorkService.java          |    6 
 src/main/java/zy/cloud/wms/manager/entity/result/StoPrintVo.java     |    2 
 src/main/webapp/views/order/order.html                               |   43 ++++++++++
 8 files changed, 155 insertions(+), 28 deletions(-)

diff --git a/src/main/java/zy/cloud/wms/manager/controller/OrderController.java b/src/main/java/zy/cloud/wms/manager/controller/OrderController.java
index 0a60840..e84f470 100644
--- a/src/main/java/zy/cloud/wms/manager/controller/OrderController.java
+++ b/src/main/java/zy/cloud/wms/manager/controller/OrderController.java
@@ -14,10 +14,17 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
+import zy.cloud.wms.common.config.AdminInterceptor;
+import zy.cloud.wms.common.utils.BarcodeUtils;
+import zy.cloud.wms.common.utils.QrCode;
 import zy.cloud.wms.common.web.BaseController;
 import zy.cloud.wms.manager.entity.Order;
 import zy.cloud.wms.manager.service.OrderService;
 
+import javax.imageio.ImageIO;
+import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -147,4 +154,27 @@
         return R.ok();
     }
 
+    @RequestMapping(value = "/order/code/auth")
+//    @ManagerAuth(memo = "鏉″舰鐮佽幏鍙�(type:1(鏉″舰鐮�);2(浜岀淮鐮�)")
+    public R barcode(@RequestParam(defaultValue = "1") Integer type
+                    ,@RequestParam String param
+                    ,HttpServletResponse response) throws Exception {
+        AdminInterceptor.cors(response);
+        if (Cools.isEmpty(param)){
+            return R.parse(BaseRes.EMPTY);
+        }
+        BufferedImage img;
+        if (type == 1) {
+            img = BarcodeUtils.encode(param);
+        } else {
+            img = QrCode.createImg(param);
+        }
+        if (!ImageIO.write(img, "jpg", response.getOutputStream())) {
+            throw new IOException("Could not write an image of format jpg");
+        }
+        response.getOutputStream().flush();
+        response.getOutputStream().close();
+        return R.ok();
+    }
+
 }
diff --git a/src/main/java/zy/cloud/wms/manager/controller/WorkController.java b/src/main/java/zy/cloud/wms/manager/controller/WorkController.java
index 501063d..33dd07f 100644
--- a/src/main/java/zy/cloud/wms/manager/controller/WorkController.java
+++ b/src/main/java/zy/cloud/wms/manager/controller/WorkController.java
@@ -65,7 +65,7 @@
     @RequestMapping("/stock/out/create")
     @ManagerAuth(memo = "鐢熸垚鎷h揣鍗�")
     public R stockOut(@RequestBody StockOutParam stockOutParam) {
-        return workService.stockOut(stockOutParam, getUserId());
+        return workService.stockOutCreate(stockOutParam, getUserId());
     }
 
     @RequestMapping("/stock/out/print")
diff --git a/src/main/java/zy/cloud/wms/manager/entity/param/StockOutParam.java b/src/main/java/zy/cloud/wms/manager/entity/param/StockOutParam.java
index 8b33406..9517183 100644
--- a/src/main/java/zy/cloud/wms/manager/entity/param/StockOutParam.java
+++ b/src/main/java/zy/cloud/wms/manager/entity/param/StockOutParam.java
@@ -8,7 +8,7 @@
 @Data
 public class StockOutParam {
 
-    // 璁㈠崟鍙�
+    // 鍗曟嵁缂栧彿
     private String orderNo;
 
 }
diff --git a/src/main/java/zy/cloud/wms/manager/entity/result/StoPrintVo.java b/src/main/java/zy/cloud/wms/manager/entity/result/StoPrintVo.java
index deaddc5..949b60b 100644
--- a/src/main/java/zy/cloud/wms/manager/entity/result/StoPrintVo.java
+++ b/src/main/java/zy/cloud/wms/manager/entity/result/StoPrintVo.java
@@ -17,7 +17,7 @@
 
     private Double total;
 
-    private String custName;
+    private String cstmrName;
 
     private String workerName;
 
diff --git a/src/main/java/zy/cloud/wms/manager/service/WorkService.java b/src/main/java/zy/cloud/wms/manager/service/WorkService.java
index eb8fefd..f261d36 100644
--- a/src/main/java/zy/cloud/wms/manager/service/WorkService.java
+++ b/src/main/java/zy/cloud/wms/manager/service/WorkService.java
@@ -13,11 +13,11 @@
 
     R stockOutCheck(String number, Long userId);
 
-    R stockOutPrint(StockOutParam param, Long userId);
-
     R stockOutPreview(StockOutParam param, Long userId);
 
-    R stockOut(StockOutParam param, Long userId);
+    R stockOutCreate(StockOutParam param, Long userId);
+
+    R stockOutPrint(StockOutParam param, Long userId);
 
     R stockOutComplete(StockConfirmParam param, Long userId);
 
diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
index c357fd3..97bb4bc 100644
--- a/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
@@ -212,24 +212,6 @@
     }
 
     @Override
-    public R stockOutPrint(StockOutParam param, Long userId) {
-        List<Pakout> pakouts = pakoutService.selectList(new EntityWrapper<Pakout>().eq("doc_num", param.getOrderNo()));
-        Double total = 0.0D;
-        String custName = "";
-        for (Pakout pakout : pakouts) {
-            total = pakout.getAnfme() + total;
-            custName = pakout.getCustName();
-        }
-        StoPrintVo vo = new StoPrintVo();
-        vo.setDocNum(param.getOrderNo());
-        vo.setList(pakouts);
-        vo.setTotal(total);
-        vo.setCustName("娴欐睙涓壃绔嬪簱鎶�鏈湁闄愬叕鍙�");
-        vo.setWorkerName("闄嗘檽娑�");
-        return R.ok().add(vo);
-    }
-
-    @Override
     public R stockOutPreview(StockOutParam param, Long userId) {
         Order order = orderService.selectByOrderNo(param.getOrderNo());
         if (order.getSettle() != 1) {
@@ -244,7 +226,7 @@
     }
 
     @Override
-    public R stockOut(StockOutParam param, Long userId) {
+    public R stockOutCreate(StockOutParam param, Long userId) {
         Order order = orderService.selectByOrderNo(param.getOrderNo());
         if (order.getSettle() != 1) {
             return R.error("姝ゅ崟鎹棤娉曠敓鎴愭嫞璐у崟");
@@ -260,6 +242,26 @@
     }
 
     @Override
+    public R stockOutPrint(StockOutParam param, Long userId) {
+        Order order = orderService.selectByOrderNo(param.getOrderNo());
+        if (order == null) {
+            return R.error("姝ゅ崟鎹凡澶辨晥");
+        }
+        List<Pakout> pakouts = pakoutService.selectList(new EntityWrapper<Pakout>().eq("doc_num", order.getOrderNo()));
+        Double total = 0.0D;
+        for (Pakout pakout : pakouts) {
+            total = pakout.getAnfme() + total;
+        }
+        StoPrintVo vo = new StoPrintVo();
+        vo.setDocNum(param.getOrderNo());
+        vo.setList(pakouts);
+        vo.setTotal(total);
+        vo.setCstmrName(order.getCstmrName());
+        vo.setWorkerName(order.getOperMemb());
+        return R.ok().add(vo);
+    }
+
+    @Override
     @Transactional
     public R stockOutComplete(StockConfirmParam param, Long userId) {
         List<Pakout> pakouts = pakoutService.selectList(new EntityWrapper<Pakout>()
diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index a295741..45e8b2b 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -291,7 +291,7 @@
             case 'print':
                 layer.confirm('寮�濮嬫墦鍗�' +data.number + ' 鎷h揣鍗曪紵', {shadeClose: true}, function(){
                     layer.closeAll();
-                    printPakouts(data.number);
+                    printPakouts(data.orderNo);
                 })
                 break;
             // 淇敼
@@ -404,7 +404,7 @@
                             , btn: ['鎵撳嵃鎷h揣鍗�']
                         }, function() {
                             layer.closeAll();
-                            printPakouts(number);
+                            printPakouts(orderNo);
                         }
                     )
                     // 缂烘枡
@@ -431,7 +431,59 @@
         // });
     }
 
-
+    // 鎵撳嵃鎷h揣鍗�
+    function printPakouts(orderNo) {
+        $.ajax({
+            url: baseUrl+"/work/stock/out/print",
+            headers: {'token': localStorage.getItem('token')},
+            data: JSON.stringify({
+                orderNo: orderNo
+            }),
+            contentType:'application/json;charset=UTF-8',
+            method: 'POST',
+            success: function (res) {
+                if (res.code === 200){
+                    res.data["barcodeUrl"]=baseUrl+"/order/code/auth?type=1&param="+res.data.docNum;
+                    var tpl = $('#pakoutPrintTpl').html();
+                    var template = Handlebars.compile(tpl);
+                    var html = template(res);
+                    var box = $("#pakoutPrintBox");
+                    box.html(html);box.show();
+                    box.print({
+                        mediaPrint:true,
+                        deferred: $.Deferred().done(function () {
+                            layer.confirm('[閲嶈] 鎵撳嵃鏄惁鎴愬姛锛�',  {btn: ['Yes', 'No']}, function(){
+                                $.ajax({
+                                    url: baseUrl+"/pakout/print/auth",
+                                    headers: {'token': localStorage.getItem('token')},
+                                    data: {
+                                        docNumber: docNumber
+                                    },
+                                    method: 'POST',
+                                    success: function (res) {
+                                        if (res.code === 200){
+                                            layer.closeAll();
+                                            $(".layui-laypage-btn")[0].click();
+                                            layer.msg(res.msg, {icon: 1})
+                                        } else if (res.code === 403){
+                                            top.location.href = baseUrl+"/";
+                                        } else {
+                                            layer.msg(res.msg, {icon: 2})
+                                        }
+                                    }
+                                })
+                            });
+                        })
+                    });
+                    box.hide();
+                } else if (res.code === 403){
+                    top.location.href = baseUrl+"/";
+                } else {
+                    layer.msg(res.msg, {icon: 2})
+                }
+            }
+        })
+    }
 
 
 
diff --git a/src/main/webapp/views/order/order.html b/src/main/webapp/views/order/order.html
index 98ef806..4b6e9a5 100644
--- a/src/main/webapp/views/order/order.html
+++ b/src/main/webapp/views/order/order.html
@@ -193,11 +193,54 @@
 </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/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/order/order.js" charset="utf-8"></script>
 
 </body>
+<script type="text/template" id="pakoutPrintTpl">
+    <!-- 澶� -->
+    <div id="print-header" style="margin: 20px 0">
+        <div style="text-align: center">
+            <div style="text-align: center;margin-bottom: 10px">
+                <span style="font-family: 瀹嬩綋"> 鎷h揣鍗� </span>
+            </div>
+
+            <img class="template-code template-qrcode" src="{{data.barcodeUrl}}" style="width: 80%">
+            <p style="letter-spacing: 2px;margin-top: 5px">{{data.docNum}}</p>
+        </div>
+        <div style="font-size: xx-small; text-align: left; margin-top: 10px">
+            <span style="font-family: 瀹嬩綋">瀹㈡埛锛歿{data.cstmrName}}</span>
+        </div>
+        <div style="margin-top: 10px">
+            <div style="float: left;width: 50%; text-align: left">
+                <span style="font-size: xx-small;font-family: 瀹嬩綋">鎷h揣鏁伴噺锛歿{data.total}}</span>
+            </div>
+            <div style="float: left; width: 50%; text-align: right">
+                <span style="font-size: xx-small;font-family: 瀹嬩綋">鎷h揣浜猴細{{data.workerName}}</span>
+            </div>
+            <div style="clear:both;"></div>
+        </div>
+    </div>
+
+    <!-- 涓讳綋 -->
+    <div style="margin-top: 10px">
+        {{#each data.list}}
+        <div class="pakout-item" style="padding: 10px 5px 10px 5px;border-top: 1px solid #525252">
+            <div class="item-header" style="margin-top: 10px;font-family: 瀹嬩綋; font-size: x-small">
+                {{maktx}}
+            </div>
+            <div class="item-content" style="margin: 10px 0 ">
+                <div style="float: left;font-family: 瀹嬩綋; font-size: xx-small">{{anfme}}{{unit}}</div>
+                <div style="float: right;font-family: 瀹嬩綋; font-size: xx-small">璐т綅锛歿{locNo}}</div>
+                <div style="clear: both;"></div>
+            </div>
+        </div>
+        {{/each}}
+    </div>
+</script>
 </html>
 

--
Gitblit v1.9.1