浏览代码

优化订单列表展示

xian 4 年之前
父节点
当前提交
c2ac24d923

+ 8 - 2
watero-rst-service/src/main/java/com/iamberry/rst/service/order/OrderSyncLogServiceImpl.java

@@ -29,6 +29,8 @@ import com.iamberry.rst.service.product.mapper.ProductMapper;
 import com.iamberry.rst.service.sys.mapper.SysConfigMapper;
 import com.iamberry.rst.util.GenerateKeyUtil;
 import com.iamberry.rst.util.PageUtil;
+import com.iamberry.wechat.tools.StrUtils;
+import com.iamberry.wechat.tools.payUtil.StringUtil;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpStatus;
 import org.apache.http.client.methods.HttpPost;
@@ -702,7 +704,8 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
     @Override
     public boolean syncXYTOrderShipInspec(Integer salesOrderId) {
         SalesOrder salesOrder = salesOrderService.getSalesOrderByIdConcise(salesOrderId);
-        if(!generateKeyUtil.isXytBatchId(salesOrder.getSalesBatchId())){    //不是小亚通第三方的订单,直接通过,不走该程序
+        if(!generateKeyUtil.isXytBatchId(salesOrder.getSalesBatchId())){
+            //不是小亚通第三方的订单,直接通过,不走该程序
             return true;
         }
         List<SalesOrderItem>  salesOrderItemList = salesOrderService.getOrderItemListBySalesId(salesOrderId);
@@ -715,9 +718,12 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
 
         //删除因为拆单增加的订单后缀
         String orderId  = salesOrder.getSalesDealCode();
-        if(orderId.indexOf("-")>-1){
+        if(orderId.contains("-")){
             orderId = orderId.substring(0,orderId.indexOf("-"));
         }
+        if (!StringUtil.isInteger(orderId)) {
+            return true;
+        }
 
         //判断orderMap中是否含有该订单
         boolean containsKey = orderJsonMap.containsKey(orderId);

+ 51 - 55
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AwaitSendController.java

@@ -433,7 +433,7 @@ public class AwaitSendController {
         //如果订单是字母件则按照子母件方式传值
        List<SalesOrder> orders = salesOrderService.listSublistCount(salesId);
         if(logisticsInfo.getLogisticsIsLashSingle() == 1 && orders != null && orders.size() > 0){
-            eOrderRequestData.Quantity = (orders.size() + 1);
+            eOrderRequestData.Quantity = orders.size()+1;
         }else{
             eOrderRequestData.Quantity = 1;
         }
@@ -451,7 +451,7 @@ public class AwaitSendController {
             boolean flag = jsonObject.getBoolean("Success");
             if (flag) {
 
-                // 订单发货 : 仅针对已经通知通知配货的订单(如果已发货,此处不修改对应的订单数据)
+                // 订单发货 : 仅针对已经通知通知配货的订单(如果已发货,此处不修改对应的订单数据)
                 SalesOrder salesOrder = new SalesOrder();
                 salesOrder.setSalesPostNum(jsonObject.getJSONObject("Order").getString("LogisticCode"));
                 salesOrder.setSalesShippingStatus(1);
@@ -463,75 +463,71 @@ public class AwaitSendController {
                     return ResponseJson.getFAILURE().addResponseKeyValue("error", "订单状态非通知配货,无法打印");
                 }
 
-                /*子母单设置 state*/
-                if(logisticsInfo.getLogisticsIsLashSingle() == 1 && orders != null && orders.size() > 0){
-                    //获取子单打印模板集合
-                    JSONArray subPrintTemplates = jsonObject.getJSONArray("SubPrintTemplates");
+                /*子母单 : 获取子单打印模板集合*/
+                JSONArray subPrintTemplates = jsonObject.getJSONArray("SubPrintTemplates");
+                if(logisticsInfo.getLogisticsIsLashSingle() == 1 && orders != null && orders.size() >= 1 && subPrintTemplates.size() >= 1){
                     //获取子单物流单号集合
                     JSONArray subOrders = jsonObject.getJSONArray("SubOrders");
                     //替换子单产品名称
                     JSONArray subTemplates = new JSONArray();
-                    if(orders.size() == subPrintTemplates.size() && subPrintTemplates.size() == subOrders.size()){
-                        // 整个产品的重量
-                        SalesOrderItem it = new SalesOrderItem();
-                        for(int i = 0 ;i < subPrintTemplates.size(); i++){
-                            String subTemplate = subPrintTemplates.getString(i);
-                            StringBuilder productName = new StringBuilder();
-                            it.setItemOrderId(orders.get(i).getSalesId());
-                            List<SalesOrderItem> its = salesOrderService.listSalesOrderItem(it);
-                            for (SalesOrderItem temp : its) {
-                                productName
-                                        .append(temp.getProductAbbreviation())
-                                        .append("(")
-                                        .append(temp.getColorAbbreviation())
-                                        .append(")*")
-                                        .append(temp.getItemNum())
-                                        .append(";");
-                            }
-                            //替换产品名
-                            //如果是京东订单则需直接根据订单id替换产品信息
-                            if(salesOrderInfo.getSalesPostFirm().equals("jd") || salesOrderInfo.getSalesPostFirm().equals("JD")){
-                                subTemplate = subTemplate.replace(salesId.toString(), "<font style=\"font-size:6px\">"+productName.toString()+"</font>");
-                            }else{
-                                subTemplate = subTemplate.replace(uuid, productName.toString());
-                            }
-
-
-                            //替换订单号
-                            subTemplate = subTemplate.replace(orderId, orders.get(i).getSalesOrderId());
-                            //替换备注
-                            subTemplate = subTemplate.replace(salesId.toString(), orders.get(i).getSalesId().toString());
-                            subTemplates.add(subTemplate);
-                            // 订单发货 : 仅针对已经通知通知配货的订单(如果已发货,此处不修改对应的订单数据)
-                            SalesOrder order = new SalesOrder();
-                            order.setSalesPostNum(subOrders.get(i).toString());
-                            order.setSalesShippingStatus(1);
-                            order.setSalesSendTime(new Date());
-                            order.setSalesId(orders.get(i).getSalesId());
-                            order.setSalesOldOrderStatus(11);
-                            Integer msg = salesOrderService.updateSalesOrder(order);
-                            salesIdsset.add(orders.get(i).getSalesId());
-                            salesCodeSet.add(orders.get(i).getSalesDealCode());
-                            if (msg == null || msg <= 0) {
-                                return ResponseJson.getFAILURE().addResponseKeyValue("error", "子订单状态非通知配货,无法打印");
-                            }
+                    // 整个产品的重量
+                    SalesOrderItem it = new SalesOrderItem();
+                    for(int i = 0 ;i < subPrintTemplates.size(); i++){
+                        String subTemplate = subPrintTemplates.getString(i);
+                        StringBuilder productName = new StringBuilder();
+                        it.setItemOrderId(orders.get(i).getSalesId());
+                        List<SalesOrderItem> its = salesOrderService.listSalesOrderItem(it);
+                        for (SalesOrderItem temp : its) {
+                            productName
+                                    .append(temp.getProductAbbreviation())
+                                    .append("(")
+                                    .append(temp.getColorAbbreviation())
+                                    .append(")*")
+                                    .append(temp.getItemNum())
+                                    .append(";");
+                        }
+                        //替换产品名
+                        //如果是京东订单则需直接根据订单id替换产品信息
+                        if("jd".equalsIgnoreCase(salesOrderInfo.getSalesPostFirm())){
+                            subTemplate = subTemplate.replace(salesId.toString(), "<font style=\"font-size:6px\">"+productName.toString()+"</font>");
+                        }else{
+                            subTemplate = subTemplate.replace(uuid, productName.toString());
                         }
 
-                        jsonObject.put("SubPrintTemplates",subTemplates);
 
-                    }else{
-                        // 获取电子面单失败
-                        LOGGER.error("{} 获取电子面单失败,原因:{}", orderId, "子订单数量异常");
+                        //替换订单号
+                        subTemplate = subTemplate.replace(orderId, orders.get(i).getSalesOrderId());
+                        //替换备注
+                        subTemplate = subTemplate.replace(salesId.toString(), orders.get(i).getSalesId().toString());
+                        subTemplates.add(subTemplate);
+                        // 订单发货 : 仅针对已经通知通知配货的订单(如果已发货,此处不修改对应的订单数据)
+                        SalesOrder order = new SalesOrder();
+                        order.setSalesPostNum(subOrders.get(i).toString());
+                        order.setSalesShippingStatus(1);
+                        order.setSalesSendTime(new Date());
+                        order.setSalesId(orders.get(i).getSalesId());
+                        order.setSalesOldOrderStatus(11);
+                        Integer msg = salesOrderService.updateSalesOrder(order);
+                        salesIdsset.add(orders.get(i).getSalesId());
+                        salesCodeSet.add(orders.get(i).getSalesDealCode());
+                        if (msg == null || msg <= 0) {
+                            return ResponseJson.getFAILURE().addResponseKeyValue("error", "子订单状态非通知配货,无法打印");
+                        }
                     }
+
+                    jsonObject.put("SubPrintTemplates",subTemplates);
                 }
                 /*子母单设置 end*/
 
 
                 // 替换母订单产品名称
                 //如果是京东订单则需直接根据订单id替换产品信息
-                if(salesOrderInfo.getSalesPostFirm().equals("jd") || salesOrderInfo.getSalesPostFirm().equals("JD")){
+                if("jd".equalsIgnoreCase(salesOrderInfo.getSalesPostFirm())){
                     jsonObject.put("PrintTemplate",jsonObject.get("PrintTemplate").toString().replace(salesId.toString(), "<font style=\"font-size:6px\">"+goodName.toString()+"</font>"));
                     json = jsonObject.toString();
+                } else if("sto".equalsIgnoreCase(salesOrderInfo.getSalesPostFirm())) {
+                    jsonObject.put("PrintTemplate",jsonObject.get("PrintTemplate").toString().replace(salesId.toString(), goodName.toString()));
+                    json = jsonObject.toString();
                 }else{
                     jsonObject.put("PrintTemplate",jsonObject.get("PrintTemplate").toString().replace(uuid, goodName.toString()));
                     json = jsonObject.toString();

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

@@ -205,7 +205,7 @@
                         <a title="重新打单" href="javascript:re_print_order('${(o.salesOrderId)!}','${o.salesId}')" class="ml-5" style="text-decoration:none;display:inline">重新打单</a><br>
                     </#if>
                     <#if o.salesShippingStatus == 11>
-                        <a class="ml-5" style="text-decoration:none;display:inline" href="javascript:void(0);" title="手动发货"onclick="distribution_postFirm('手动发货','${path}/admin/await_send/to_manual_delivery?salesId=${o.salesId}','570','450');">手动发货</a><br>
+                        <a class="ml-5" style="text-decoration:none;display:inline" href="javascript:void(0);" title="手动发货" onclick="distribution_postFirm('手动发货','${path}/admin/await_send/to_manual_delivery?salesId=${o.salesId}','570','450');">手动发货</a><br>
                     </#if>
 
                     <#if o.salesDeliver??>
@@ -345,30 +345,30 @@
                 success: function(data){
                     var res = $.parseJSON(data.returnMsg.json);
                     if (data.resultMsg && res.Success) {
-                            if(mains != null){
-                                var html = res.PrintTemplate;
-                                $("#temp-print-order").html(html);
-                                LODOP.PRINT_INIT('打印订单' + orderId);
-                                LODOP.SET_PRINT_PAGESIZE(0, 0, 0,"");
-                                LODOP.ADD_PRINT_HTM("0mm","0mm","100%","100%", $("#temp-print-order").html());
-                                LODOP.SELECT_PRINTER(true);
-                            }else{
-                                //打印子订单
-                                var SubPrintTemplates = res.SubPrintTemplates;
-                                var sus = new Array()
-                                for (var i = 0; i < subs.length; i++) {
-                                        sus[i] = SubPrintTemplates[subs[i]]
-                                }
-                                if(sus != null){
-                                    sus.map(function (item,index,ary ) {
-                                           $("#temp-print-order").html(item);
-                                            var subPrintTemplate = $("#temp-print-order").html();
-                                            suPrint(subPrintTemplate);
-                                    });
-                                }
-                                layer.msg("打印成功",{icon: 6,time:3000});
+                        if(mains != null){
+                            var html = res.PrintTemplate;
+                            $("#temp-print-order").html(html);
+                            LODOP.PRINT_INIT('打印订单' + $("#orderId").val());
+                            LODOP.SET_PRINT_PAGESIZE(0, 0, 0,"");
+                            LODOP.ADD_PRINT_HTM("0mm","0mm","100%","100%", $("#temp-print-order").html());
+                            LODOP.SELECT_PRINTER(true);
+                        }else{
+                            //打印子订单
+                            var SubPrintTemplates = res.SubPrintTemplates;
+                            var sus = new Array()
+                            for (var i = 0; i < subs.length; i++) {
+                                sus[i] = SubPrintTemplates[subs[i]]
                             }
-                            // 注意,选择打印机后,需要更改打印机事件,否则无法执行回调
+                            if(sus != null){
+                                sus.map(function (item,index,ary ) {
+                                   $("#temp-print-order").html(item);
+                                   var subPrintTemplate = $("#temp-print-order").html();
+                                   suPrint(subPrintTemplate);
+                                });
+                            }
+                            layer.msg("打印成功",{icon: 6,time:3000});
+                        }
+                        // 注意,选择打印机后,需要更改打印机事件,否则无法执行回调
                         var spans = $("span");
                         if(subs != null && subs.length > 0){
                             for (var i = 0; i < spans.length; i++) {
@@ -418,7 +418,7 @@
                             if (mains != null) {
                                 var html = res.PrintTemplate;
                                 $("#temp-print-order").html(html);
-                                LODOP.PRINT_INIT('打印订单' + orderId);
+                                LODOP.PRINT_INIT('打印订单' + $("#orderId").val());
                                 LODOP.SET_PRINT_PAGESIZE(0, 0, 0, "");
                                 LODOP.ADD_PRINT_HTM("0mm", "0mm", "100%", "100%", $("#temp-print-order").html());
                                 flag = LODOP.PRINT();
@@ -500,51 +500,79 @@
                 async: true,
                 url: "${path}/admin/await_send/rePrintOrder",
                 success: function(data){
-                    var res = $.parseJSON(data.returnMsg.json);
+                    let res = $.parseJSON(data.returnMsg.json);
                     if (data.resultMsg && res.Success) {
                     // 请求成功
                     if(data.returnMsg.isSub){
                         $("#subOrderUl").html('');
-                        var SubOrders = res.SubOrders;
-                        var LogisticCode = res.Order.LogisticCode;
+                        let SubOrders = res.SubOrders;
+                        let LogisticCode = res.Order.LogisticCode;
                         //查询主订单
-                        getSaleOrder(LogisticCode);
-                        if(salesOrder != null){
-                            for(var i=0;i<salesOrder.salesOrderItemList.length;i++){
-                                product += salesOrder.salesOrderItemList[i].itemProductName +"("+ salesOrder.salesOrderItemList[i].itemProductColor +"*"+ salesOrder.salesOrderItemList[i].itemNum+")<br>"
-                            }
-                            $("#subOrderUl").append(
-                                '<tr class="text-c order_tr">' +
-                                    '<td><input type="checkbox" class="main_index" value="0" ></td>' +
-                                    '<td>'+LogisticCode+'</td>' +
-                                    '<td><span class="label label-success radius">'+product+'</span></td>' +
-                                    '<td>'+salesOrder.salesAddressName +"/"+salesOrder.salesAddressTel+'</td>' +
-                                '</tr>'
-                            );
-                            product = "";
-                            salesOrder = null;
-                        }
-                        //查询子订单
-                        if(SubOrders != null){
-                            SubOrders.map(function (item,index,ary ) {
-                                console.log(item);
-                                //查询订单
-                                getSaleOrder(item);
+                        $.ajax({
+                            "type" : "post",
+                            data: {
+                                "salesPostNum":LogisticCode
+                            },
+                            "url" : "${path}/admin/salesOrder/getSalesOrderByPostNum",
+                            async:false,
+                            "success" : function(data) {
+                                if(data.returnCode != 200){
+                                    return;
+                                }
+                                let salesOrder = data.returnMsg.salesOrder;
                                 if(salesOrder != null){
                                     for(var i=0;i<salesOrder.salesOrderItemList.length;i++){
                                         product += salesOrder.salesOrderItemList[i].itemProductName +"("+ salesOrder.salesOrderItemList[i].itemProductColor +"*"+ salesOrder.salesOrderItemList[i].itemNum+")<br>"
                                     }
+                                    $("#subOrderUl").append(
+                                            '<tr class="text-c order_tr">' +
+                                            '<td><input type="checkbox" class="main_index" value="0" ></td>' +
+                                            '<td>'+LogisticCode+'</td>' +
+                                            '<td><span class="label label-success radius">'+product+'</span></td>' +
+                                            '<td>'+salesOrder.salesAddressName +"/"+salesOrder.salesAddressTel+'</td>' +
+                                            '</tr>'
+                                    );
+                                    product = "";
+                                    salesOrder = null;
                                 }
-                                $("#subOrderUl").append(
-                                    '<tr class="text-c order_tr">' +
-                                        '<td><input type="checkbox" class="sub_index" value="'+index+'" ></td>' +
-                                        '<td>'+item+'</td>' +
-                                        '<td><span class="label label-success radius">'+product+'</span></td>' +
-                                        '<td>'+salesOrder.salesAddressName +"/"+salesOrder.salesAddressTel+'</td>' +
-                                    '</tr>'
-                                );
-                                product = "";
-                                salesOrder = null;
+                            },
+                            "error":function(data){
+                            }
+                        });
+
+                        //查询子订单
+                        if(SubOrders != null && SubOrders.length >= 1){
+                            SubOrders.map(function (item,index,ary ) {
+                                $.ajax({
+                                    "type" : "post",
+                                    data: {
+                                        "salesPostNum":item
+                                    },
+                                    "url" : "${path}/admin/salesOrder/getSalesOrderByPostNum",
+                                    async:false,
+                                    "success" : function(data) {
+                                        if(data.returnCode != 200){
+                                            return;
+                                        }
+                                        let salesOrder = data.returnMsg.salesOrder;
+                                        let product = '';
+                                        if(salesOrder != null){
+                                            for(var i=0;i<salesOrder.salesOrderItemList.length;i++){
+                                                product += salesOrder.salesOrderItemList[i].itemProductName +"("+ salesOrder.salesOrderItemList[i].itemProductColor +"*"+ salesOrder.salesOrderItemList[i].itemNum+")<br>"
+                                            }
+                                        }
+                                        $("#subOrderUl").append(
+                                                '<tr class="text-c order_tr">' +
+                                                '<td><input type="checkbox" class="sub_index" value="'+index+'" ></td>' +
+                                                '<td>'+item+'</td>' +
+                                                '<td><span class="label label-success radius">'+product+'</span></td>' +
+                                                '<td>'+salesOrder.salesAddressName +"/"+salesOrder.salesAddressTel+'</td>' +
+                                                '</tr>'
+                                        );
+                                    },
+                                    "error":function(data){
+                                    }
+                                });
                             });
                         }
                         layer.closeAll();
@@ -596,43 +624,71 @@
                                     var SubOrders = res.SubOrders;
                                     var LogisticCode = res.Order.LogisticCode;
                                     //查询主订单
-                                    getSaleOrder(LogisticCode);
-                                    if(salesOrder != null){
-                                        for(var i=0;i<salesOrder.salesOrderItemList.length;i++){
-                                            product += salesOrder.salesOrderItemList[i].itemProductName +"("+ salesOrder.salesOrderItemList[i].itemProductColor +"*"+ salesOrder.salesOrderItemList[i].itemNum+")<br>"
-                                        }
-                                        $("#subOrderUl").append(
-                                            '<tr class="text-c order_tr">' +
-                                                '<td><input type="checkbox" class="main_index" value="0" ></td>' +
-                                                '<td>'+LogisticCode+'</td>' +
-                                                '<td>'+product+'</td>' +
-                                                '<td>'+salesOrder.salesAddressName +"/"+salesOrder.salesAddressTel+'</td>' +
-                                            '</tr>'
-                                        );
-                                        product = "";
-                                        salesOrder = null;
-                                    }
-                                    //查询子订单
-                                    if(SubOrders != null){
-                                        SubOrders.map(function (item,index,ary ) {
-                                            console.log(item);
-                                            //查询订单
-                                            getSaleOrder(item);
+                                    $.ajax({
+                                        "type" : "post",
+                                        data: {
+                                            "salesPostNum":LogisticCode
+                                        },
+                                        "url" : "${path}/admin/salesOrder/getSalesOrderByPostNum",
+                                        async:false,
+                                        "success" : function(data) {
+                                            if(data.returnCode != 200){
+                                                return;
+                                            }
+                                            let salesOrder = data.returnMsg.salesOrder;
                                             if(salesOrder != null){
                                                 for(var i=0;i<salesOrder.salesOrderItemList.length;i++){
                                                     product += salesOrder.salesOrderItemList[i].itemProductName +"("+ salesOrder.salesOrderItemList[i].itemProductColor +"*"+ salesOrder.salesOrderItemList[i].itemNum+")<br>"
                                                 }
+                                                $("#subOrderUl").append(
+                                                        '<tr class="text-c order_tr">' +
+                                                        '<td><input type="checkbox" class="main_index" value="0" ></td>' +
+                                                        '<td>'+LogisticCode+'</td>' +
+                                                        '<td><span class="label label-success radius">'+product+'</span></td>' +
+                                                        '<td>'+salesOrder.salesAddressName +"/"+salesOrder.salesAddressTel+'</td>' +
+                                                        '</tr>'
+                                                );
+                                                product = "";
+                                                salesOrder = null;
                                             }
-                                            $("#subOrderUl").append(
-                                                '<tr class="text-c order_tr">' +
-                                                    '<td><input type="checkbox" class="sub_index" value="'+index+'" ></td>' +
-                                                    '<td>'+item+'</td>' +
-                                                    '<td>'+product+'</td>' +
-                                                    '<td>'+salesOrder.salesAddressName +"/"+salesOrder.salesAddressTel+'</td>' +
-                                                '</tr>'
-                                            );
-                                            product = "";
-                                            salesOrder = null;
+                                        },
+                                        "error":function(data){
+                                        }
+                                    });
+
+                                    //查询子订单
+                                    if(SubOrders != null){
+                                        SubOrders.map(function (item,index,ary ) {
+                                            $.ajax({
+                                                "type" : "post",
+                                                data: {
+                                                    "salesPostNum":item
+                                                },
+                                                "url" : "${path}/admin/salesOrder/getSalesOrderByPostNum",
+                                                async:false,
+                                                "success" : function(data) {
+                                                    if(data.returnCode != 200){
+                                                        return;
+                                                    }
+                                                    let salesOrder = data.returnMsg.salesOrder;
+                                                    let product = '';
+                                                    if(salesOrder != null){
+                                                        for(var i=0;i<salesOrder.salesOrderItemList.length;i++){
+                                                            product += salesOrder.salesOrderItemList[i].itemProductName +"("+ salesOrder.salesOrderItemList[i].itemProductColor +"*"+ salesOrder.salesOrderItemList[i].itemNum+")<br>"
+                                                        }
+                                                    }
+                                                    $("#subOrderUl").append(
+                                                            '<tr class="text-c order_tr">' +
+                                                            '<td><input type="checkbox" class="sub_index" value="'+index+'" ></td>' +
+                                                            '<td>'+item+'</td>' +
+                                                            '<td><span class="label label-success radius">'+product+'</span></td>' +
+                                                            '<td>'+salesOrder.salesAddressName +"/"+salesOrder.salesAddressTel+'</td>' +
+                                                            '</tr>'
+                                                    );
+                                                },
+                                                "error":function(data){
+                                                }
+                                            });
                                         });
                                     }
                                     layer.closeAll();
@@ -668,7 +724,8 @@
     //子单打印调用
     function suPrint(subPrintTemplate) {
         var LODOP=getLodop();
-        console.log(subPrintTemplate);
+        LODOP.PRINT_INIT('打印订单');
+        LODOP.SET_PRINT_PAGESIZE(0, 0, 0,"");
         LODOP.ADD_PRINT_HTM("0mm", "0mm", "100%", "100%", subPrintTemplate);
         return LODOP.PRINT();
     }