Przeglądaj źródła

打印功能增加重新打印的功能

xian 6 lat temu
rodzic
commit
7b27e779ae

+ 1 - 3
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AwaitSendController.java

@@ -176,7 +176,6 @@ public class AwaitSendController {
                                    @RequestParam("salesId") Integer salesId,
                                    HttpServletRequest request) {
         SalesOrder salesOrderInfo = salesOrderService.getSalesOrderById(salesId);
-
         StoreShip storeShip = null;
         if(salesOrderInfo.getSalesStoreId() != null){
             storeShip = storeShipService.getStoreShipByStoreId(salesOrderInfo.getSalesStoreId());
@@ -185,7 +184,6 @@ public class AwaitSendController {
             LOGGER.error("{} 获取电子面单失败,原因:{}", orderId, "该订单没有绑定店铺或店铺没有发货人信息");
             return ResponseJson.getFAILURE().addResponseKeyValue("error","该订单没有绑定店铺或店铺没有发货人信息");
         }
-
         /*
          * 组装数据
          */
@@ -294,7 +292,7 @@ public class AwaitSendController {
                 String code = jsonObject.getJSONObject("Order").getString("LogisticCode");
                 // 订单发货
                 SalesOrder salesOrder = new SalesOrder();
-                salesOrder.setSalesPostFirm(post);
+                salesOrder.setSalesPostFirm(eOrderRequestData.ShipperCode);
                 salesOrder.setSalesPostNum(code);
                 salesOrder.setSalesShippingStatus(1);
                 salesOrder.setSalesSendTime(new Date());

+ 2 - 0
watero-rst-web/src/main/java/com/iamberry/rst/utils/OrderUtils.java

@@ -40,6 +40,8 @@ public class OrderUtils {
      * @throws Exception
      */
     public static String orderOnlineByJson(EOrderRequestData orderRequestData) throws Exception {
+        // 第三方接口对时效性有要求,并发数不超过多少,此处Sleep 100ms
+        Thread.sleep(100);
         // 生成电子面单的请求数据
         String requestData = JSONObject.toJSONString(orderRequestData);
         // 生成系统级请求数据

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

@@ -51,7 +51,7 @@
                             <tr class="text-c"><td colspan="12">暂无数据</td></tr>
                             <#else>
                                 <#list value as o>
-                                <tr class="text-c ${x}-wait-print-order" printState="1">
+                                <tr class="text-c ${x}-wait-print-order" printState="1" printNum="0">
                                     <td>待处理</td>
                                     <td salesId="${o.salesId}" post="${(o.salesPostFirm)!}">${(o.salesOrderId)!}</td>
                                     <td>${(o.salesAddressName)!}</td>
@@ -93,9 +93,7 @@
     var LODOP=getLodop();
     $(function () {
         $.Huitab("#tab_demo .tabBar span","#tab_demo .tabCon","current","click","0");
-
-
-    // 获取系统的打印机
+         // 获取系统的打印机
         //setPrintMachine();
         function setPrintMachine() {
             var count = LODOP.GET_PRINTER_COUNT() - 1;
@@ -121,9 +119,11 @@
             var index = getCurrTab();
             var orders = $("." + index + "-wait-print-order");
             for(var i = 0; i < orders.length; i++) {
-                if ($(orders[i]).attr("printState") == "1") {
+                var temp = $(orders[i]);
+                var printNum = parseInt(temp.attr("printNum"));
+                if (temp.attr("printState") == "1" && printNum < 3) {
                     // 待打印
-                    return $(orders[i]);
+                    return temp;
                 }
             }
         }
@@ -154,15 +154,17 @@
                     $(order.find("td")[0]).html("<span style='color: rgba(243, 123, 29, 1);'>处理中</span>");
                 },
                 success: function(data){
-                    if (data.error) {
+                    var tempObject = data;
+                    if ('string' == typeof(data)) {
+                        tempObject = $.parseJSON(data);
+                    }
+                    if (tempObject.hasOwnProperty("error")) {
                         // 捕获系统级的错误(比如因为空指针抛出的Exception)
-                        $(order.find("td")[0]).html("<span style='color: red;'>失败(" + data.error_msg + ")</span>");
-                        startPrint();
+                        re_print(order, tempObject.error_msg);
                     } else {
                         if (data && data.returnCode && data.returnCode != 200) {
                             // 捕获业务级的操作(如订单的店铺没有绑定发货人信息)
-                            $(order.find("td")[0]).html("<span style='color: red;'>失败(" + data.returnMsg.error + ")</span>");
-                            startPrint();
+                            re_print(order, data.returnMsg.error);
                         } else {
                             var res = $.parseJSON(data.returnMsg.json);
                             if (data.resultMsg && res.Success) {
@@ -177,24 +179,42 @@
                                 }
                             } else {
                                 // 第三方接口错误
-                                $(order.find("td")[0]).html("<span style='color: red;'>失败(" + res.Reason + ")</span>");
-                                startPrint();
+                                re_print(order, res.Reason);
                             }
                         }
                     }
                 }
             });
         }
-    });
 
-    function getCurrTab() {
-        var spans = $(".tabBar").find("span");
-        for (var i = 0 ; i < spans.length; i++) {
-            if ($(spans[i]).attr("class").indexOf("current") != -1) {
-                return i;
+        /* 打印失败后,重新打印 */
+        function re_print(order, errorMsg) {
+            // 设置当前被打印的内容为“未打印”
+            var printNum = parseInt(order.attr("printNum"));
+            if(printNum >= 2) {
+                // 已重试两次,不允许重试
+                order.attr("printState", "2");
+                $(order.find("td")[0]).html("<span style='color: red;'>失败(" + errorMsg + ")</span>");
+            } else {
+                order.attr("printState", "1");
+                order.attr("printNum", (printNum + 1));
+                $(order.find("td")[0]).html("<span style='color: blue;'>正在重试(" + errorMsg + ")</span>");
             }
+            startPrint();
         }
-    }
+
+        function getCurrTab() {
+            var spans = $(".tabBar").find("span");
+            for (var i = 0 ; i < spans.length; i++) {
+                var temp = $(spans[i]).attr("class");
+                if (temp == null || "" === temp || undefined === typeof(temp)) {
+
+                }else if ($(spans[i]).attr("class").indexOf("current") !== -1) {
+                    return i;
+                }
+            }
+        }
+    });
 </script>
 </body>
 </html>