Преглед изворни кода

兼容不同快递的打印功能

xian пре 6 година
родитељ
комит
d24f487a45

+ 37 - 12
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AwaitSendController.java

@@ -9,6 +9,8 @@ import com.iamberry.rst.core.tools.LogisticsInfo;
 import com.iamberry.rst.faces.cm.SalesOrderService;
 import com.iamberry.rst.utils.OrderUtils;
 import com.iamberry.rst.utils.StitchAttrUtil;
+import com.iamberry.wechat.tools.AddrUtil;
+import com.iamberry.wechat.tools.HttpClient431Util;
 import com.iamberry.wechat.tools.ResponseJson;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.slf4j.Logger;
@@ -115,27 +117,50 @@ public class AwaitSendController {
         eOrderRequestData.setExpType("1");
         eOrderRequestData.setCost(0.00);
         eOrderRequestData.setOtherCost(0.0);
-//        if (post.equalsIgnoreCase("DBL")) {
-//            eOrderRequestData.setCustomerName("testdbl");
-//        }
-//        if(post.equalsIgnoreCase("sto")){ //申通
-//            eOrderRequestData.setCustomerName("2868442074");
-//        }else if(post.equalsIgnoreCase("sf")){ //顺丰
-//            eOrderRequestData.setCustomerName("7690035114");
-//        }else if(post.equalsIgnoreCase("ems")){ //EMS
-//            eOrderRequestData.setCustomerName("90000009971400");
-//        }
+
+        // 不同的快递公司需要做不同的处理
+        if (post.equalsIgnoreCase("EMS")) {
+            // 省内EMS
+            eOrderRequestData.setCustomerName("90000009971400");
+            eOrderRequestData.setCustomerPwd("90000009971400");
+        } else if (post.equalsIgnoreCase("SF")) {
+            // 顺丰
+            eOrderRequestData.setMonthCode("7690035114");
+        } else if (post.equalsIgnoreCase("YZBK")) {
+            // 省外EMS (无需操作)
+        } else if (post.equalsIgnoreCase("STO")) {
+            // 申通快递
+            eOrderRequestData.setCustomerName("爱贝源母婴直销店");
+            eOrderRequestData.setCustomerPwd("客户密码");
+            eOrderRequestData.setSendSite("广东东莞公司");
+        } else if (post.equalsIgnoreCase("DBL")) {
+            eOrderRequestData.setCustomerName("月结编码");
+        }
+
+
         // 收件人信息
         String[] addrs = salesOrderInfo.getSalesAddressInfo().split("-");
         if (addrs.length <= 3) {
             addrs = salesOrderInfo.getSalesAddressInfo().split(" ");
         }
+
+        // 获取收件人邮编
+        String PostCode = AddrUtil.getPostCode(addrs[2]);
+        if (PostCode == null) {
+            PostCode = AddrUtil.getPostCode(addrs[1]);
+        }
+        if (PostCode == null) {
+            PostCode = AddrUtil.getPostCode(addrs[0]);
+        }
+
         Map<String, Object> Receiver = new HashMap<String, Object>();
         Receiver.put("Name", salesOrderInfo.getSalesAddressName());
         Receiver.put("Tel", salesOrderInfo.getSalesAddressTel());
-        Receiver.put("ProvinceName", addrs[0]);
+        Receiver.put("ProvinceName", AddrUtil.dealProvince(addrs[0]));
         Receiver.put("CityName", addrs[1]);
+        Receiver.put("ExpAreaName", addrs[2]);
         Receiver.put("Address", salesOrderInfo.getSalesAddressInfo());
+        Receiver.put("PostCode", PostCode);
         eOrderRequestData.setReceiver(Receiver);
         // 发件人信息
         Map<String, Object> Sender = new HashMap<String, Object>();
@@ -143,7 +168,7 @@ public class AwaitSendController {
         Sender.put("Tel", "13112639663");
         Sender.put("ProvinceName", "广东省");
         Sender.put("CityName", "东莞市");
-        Sender.put("Address", "东莞清溪三中金龙工业区徐福记对面优尼雅电子科技");
+        Sender.put("Address", "东莞清溪三中金龙工业区优尼雅电子科技");
         eOrderRequestData.setSender(Sender);
         // 产品信息
         List<Map<String, Object>> Commodity = new ArrayList<>();

+ 23 - 27
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/list_wait_send_order.ftl

@@ -128,35 +128,31 @@
     });
 
     function re_print_order(orderId) {
-        layer.confirm('请确认您已经设置好默认打印机?', {
-            btn: ['确认','取消打印'] //按钮
-        }, function(){
-            $.ajax({
-                type: "POST",
-                data: {
-                    "orderId":orderId
-                },
-                async: true,
-                url: "${path}/admin/await_send/rePrintOrder",
-                success: function(data){
-                    // 请求成功
-                    var res = $.parseJSON(data.returnMsg.json);
-                    if (data.resultMsg && res.Success) {
-                        var html = res.PrintTemplate;
-                        LODOP.PRINT_INIT('打印订单');
-                        LODOP.SET_PRINT_PAGESIZE(0, 0, 0,"");
-                        LODOP.ADD_PRINT_HTM("2mm","2mm","100%","100%", html);
-                        var flag = LODOP.PRINT();
-                        if (flag) {
-                            layer.msg("打印成功",{icon: 6,time:3000});
-                        }
-                    } else {
-                        layer.msg(res.Reason,{icon: 2,time:3000});
+        LODOP.SELECT_PRINTER();
+
+        $.ajax({
+            type: "POST",
+            data: {
+                "orderId":orderId
+            },
+            async: true,
+            url: "${path}/admin/await_send/rePrintOrder",
+            success: function(data){
+                // 请求成功
+                var res = $.parseJSON(data.returnMsg.json);
+                if (data.resultMsg && res.Success) {
+                    var html = res.PrintTemplate;
+                    LODOP.PRINT_INIT('打印订单');
+                    LODOP.SET_PRINT_PAGESIZE(0, 0, 0,"");
+                    LODOP.ADD_PRINT_HTM("2mm","2mm","100%","100%", html);
+                    var flag = LODOP.PRINT();
+                    if (flag) {
+                        layer.msg("打印成功",{icon: 6,time:3000});
                     }
+                } else {
+                    layer.msg(res.Reason,{icon: 2,time:3000});
                 }
-            });
-        }, function(){
-
+            }
         });
 
 

+ 7 - 4
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/print_order.ftl

@@ -9,7 +9,7 @@
     <link rel="Bookmark" href="/favicon.ico" >
     <link rel="Shortcut Icon" href="/favicon.ico" />
     <#include "/base/add_base.ftl">
-    <script type="text/javascript" src="//s.iamberry.com/js/LodopFuncs.js"></script>
+    <script type="text/javascript" src="https://s.iamberry.com/js/LodopFuncs.js"></script>
     <title>打单发货</title>
 
 </head>
@@ -19,6 +19,7 @@
 
         <div>
             本次共 <span style="color: red;">${(page.dataList?size)!"0"}</span> 个订单
+            <p style="margin-top: 5px;color: blue;">请设置好默认打印机:Windows开始菜单 >> 设备和打印机 >> 寻找到要打印的机器,将其设置为默认打印机</p>
         </div>
         <div class="mt-20" style="height: 330px;overflow: auto;overflow-x: hidden;margin-bottom: 12px;border: 1px solid #ddd;">
             <table class="table table-border table-bordered table-bg table-hover table-sort">
@@ -63,7 +64,7 @@
                     <option value="${(d.logisticsRstCode)!}">${(d.logisticsName)!}</option>
                 </#list>
             </select>
-            <select class="select" id="print-machine" style="height: 31px;width: 150px">
+            <select class="select" id="print-machine" style="height: 31px;width: 150px;display: none">
             </select>
             <button type="button" class="btn btn-primary" style="background: #32a3d8;color: #fff;" id="sub-post">开始打印</button>
         </div>
@@ -85,18 +86,20 @@
             var count = LODOP.GET_PRINTER_COUNT() - 1;
             for (var i = 0; i <= count; i++) {
                 var text = LODOP.GET_PRINTER_NAME(i+":PrinterName");
-                $("#print-machine").append("<option value='" + text + "'>" + text + "</option>")
+                $("#print-machine").append("<option value='" + i + "'>" + text + "</option>")
             }
         }
         // 开始打印
         $("#sub-post").click(function() {
+            LODOP.SELECT_PRINTER();
+
             var orders = $(".wait-print-order");
             if (orders == null || orders.length <= 0) {
                 layer.msg("未选中订单",{icon: 2,time:3000});
                 return;
             }
             // 指定打印设备
-            LODOP.SET_PRINTER_INDEX($("#print-machine").val());
+            //LODOP.SET_PRINTER_INDEX($("#print-machine").val());
             // 启动打印
             startPrint();
         });