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¶m="+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