Преглед на файлове

下载订单功能优化

xian преди 4 години
родител
ревизия
1bb2f0c5ff
променени са 1 файла, в които са добавени 116 реда и са изтрити 112 реда
  1. 116 112
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AwaitSendController.java

+ 116 - 112
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AwaitSendController.java

@@ -1221,10 +1221,12 @@ public class AwaitSendController {
      */
     @RequestMapping("/download_order_statistics")
     @RequiresPermissions("salesOrder:order_statistics:deliver")
-    public ModelAndView downloadOrderExcel(HttpServletRequest request,SalesOrder so) throws Exception {
+    public ModelAndView downloadOrderExcel(HttpServletRequest request,SalesOrder so) {
+        // 不查询客诉添加的订单
         so.setIsCustmerAddOrder(2);
-        List<SalesOrder> temporarySalesOrderList = new ArrayList<>();
-
+        // 准备接受数据的对象
+        List<SalesOrder> temporarySalesOrderList = null;
+        // 根据用户权限判断能够下载的订单数据
         if(AdminUtils.getLoginAdmin().getAdminDept() == 2){
             Integer[] storeIds = orderDepartService.getDepartStoreIds(AdminUtils.getLoginAdminId());
             if(storeIds.length > 0){
@@ -1234,17 +1236,15 @@ public class AwaitSendController {
         }else{
             temporarySalesOrderList = postOrderNumService.listSalesOrderAndItem(so);
         }
-
-        if(temporarySalesOrderList.size() > 20000){
-            return new ModelAndView().addObject("下载出错,下载数量过大");
+        // 判断数据
+        if(temporarySalesOrderList == null || temporarySalesOrderList.isEmpty() || temporarySalesOrderList.size() > 20000){
+            throw new RuntimeException("下载出错,下载数量过大 或者 下载数据为空");
         }
-
         // 准备model
-        Map<String, Object> model = new HashMap<String, Object>();
-        model.put("fileName", "订单列表");	// 下载文件名称
-
+        Map<String, Object> model = new HashMap<String, Object>(3);
+        model.put("fileName", "订单列表");
         // 标题
-        List<String> titles = new ArrayList<String>();
+        List<String> titles = new ArrayList<String>(26);
         titles.add("订单创建日期");
         titles.add("订单编号");
         titles.add("交易号");
@@ -1269,124 +1269,128 @@ public class AwaitSendController {
         titles.add("打单日期");
         titles.add("是否出库");
         titles.add("出库日期");
+        titles.add("发货仓库");
         model.put("titles", titles);
-        PtsBatch ptsBatch = new PtsBatch();
-        List<List<Object>> countexts = new ArrayList<List<Object>>();
-        if(temporarySalesOrderList != null && temporarySalesOrderList.size() >0){
-            for (SalesOrder salesOrder : temporarySalesOrderList) {
-                List<Object> row = new ArrayList<Object>();
-                SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
-                row.add(salesOrder.getSalesCreateTime() == null ? null:formatter.format(salesOrder.getSalesCreateTime()));
-                row.add(salesOrder.getSalesOrderId() == null ? null:salesOrder.getSalesOrderId());
-                row.add(salesOrder.getSalesDealCode() == null ? null:salesOrder.getSalesDealCode());
-                row.add(salesOrder.getSalesExOrderId() == null ? null:salesOrder.getSalesExOrderId());
-                if(salesOrder.getSalesCustomerId() == null){
-                    row.add("正常订单");
-                }else{
-                    String typeName = salesOrder.getProcTypeName() == null ? "":salesOrder.getProcTypeName();
-                    row.add("售后订单("+  typeName +")");
-                }
-                row.add(salesOrder.getSalesAddressName() == null ? null:salesOrder.getSalesAddressName());
-                row.add(salesOrder.getSalesAddressTel() == null ? null:salesOrder.getSalesAddressTel());
-                String pro="",city="";
-                try{
-                    //分割省市
-                    if(salesOrder.getSalesAddressInfo() == null){
-                        pro = "";
-                        city = "";
+        List<List<Object>> countexts = new ArrayList<List<Object>>(temporarySalesOrderList.size());
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
+        temporarySalesOrderList.forEach((salesOrder -> {
+            List<Object> row = new ArrayList<Object>();
+            row.add(salesOrder.getSalesCreateTime() == null ? null:formatter.format(salesOrder.getSalesCreateTime()));
+            row.add(salesOrder.getSalesOrderId());
+            row.add(salesOrder.getSalesDealCode());
+            row.add(salesOrder.getSalesExOrderId());
+            if(salesOrder.getSalesCustomerId() == null){
+                row.add("正常订单");
+            }else{
+                String typeName = salesOrder.getProcTypeName() == null ? "":salesOrder.getProcTypeName();
+                row.add("售后订单("+  typeName +")");
+            }
+            row.add(salesOrder.getSalesAddressName());
+            row.add(salesOrder.getSalesAddressTel());
+            String pro="",city="";
+            try{
+                //分割省市
+                if(salesOrder.getSalesAddressInfo() != null){
+                    String[] strarray;
+                    strarray = salesOrder.getSalesAddressInfo().split(" ");
+                    if(strarray.length > 3){
+                        pro = strarray[0];
+                        city = strarray[1];
                     }else{
-                        String[] strarray;
-                        strarray = salesOrder.getSalesAddressInfo().split(" ");
-                        if(strarray != null && strarray.length > 3){
+                        strarray = salesOrder.getSalesAddressInfo().split("_");
+                        if(strarray.length > 3){
                             pro = strarray[0];
                             city = strarray[1];
                         }else{
-                            strarray = salesOrder.getSalesAddressInfo().split("_");
-                            if(strarray != null && strarray.length > 3){
+                            strarray = salesOrder.getSalesAddressInfo().split("-");
+                            if(strarray.length > 3){
                                 pro = strarray[0];
                                 city = strarray[1];
-                            }else{
-                                strarray = salesOrder.getSalesAddressInfo().split("-");
-                                if(strarray != null && strarray.length > 3){
-                                    pro = strarray[0];
-                                    city = strarray[1];
-                                }
                             }
                         }
                     }
-                }catch (Exception e){
-                    e.printStackTrace();
                 }
-                row.add(pro);
-                row.add(city);
-
-                row.add(salesOrder.getSalesAddressInfo() == null ? null:salesOrder.getSalesAddressInfo());
-                String frim = replace(salesOrder.getSalesPostFirm());
-                row.add(frim);
-                row.add(salesOrder.getSalesPostNum() == null ? null:salesOrder.getSalesPostNum());
-                row.add(salesOrder.getItemProductName() == null ? null:salesOrder.getItemProductName()+(salesOrder.getItemProductColor() == null ? null:"-"+salesOrder.getItemProductColor()));
-                row.add(salesOrder.getItemProductColor() == null ? null:salesOrder.getItemProductColor());
-                row.add(salesOrder.getItemNum() == null ? null:salesOrder.getItemNum());
-                row.add(salesOrder.getItemReturnNum() == null ? null:salesOrder.getItemReturnNum());
-                row.add(salesOrder.getItemTotal() == null ? null:salesOrder.getItemTotal()/100);
-                row.add(salesOrder.getCompanyName() == null ? null:salesOrder.getCompanyName());
-                row.add(salesOrder.getStoreName() == null ? null:salesOrder.getStoreName());
-
-
-                String salesShoppingStatus = "";
-                if(salesOrder.getSalesShippingStatus() == null){
-                    salesShoppingStatus = "未打单";
-                }else{
-                    // 0(未发货)1(已发货,即已扫描出库)3(备货中)4(收货) 11(已通知配货,后加)
-                    switch (salesOrder.getSalesShippingStatus()){
-                        case 0:
-                            salesShoppingStatus = "未打单";
-                            break;
-                        case 1:
-                            salesShoppingStatus = "已打单";
-                            break;
-                        case 11:
-                            salesShoppingStatus = "通知配货";
-                            break;
-                        default:
-                            salesShoppingStatus = "其他状态";
-                            break;
-                    }
-                }
-                row.add(salesShoppingStatus);
-                if(salesOrder.getSalesDistributionTime() != null && salesOrder.getSalesSendTime() != null){
-                    row.add(salesOrder.getSalesDistributionTime() == null ? formatter.format(salesOrder.getSalesSendTime()):formatter.format(salesOrder.getSalesDistributionTime()));  //salesDistributionTime
-                }else{
-                    row.add("未通知配货");
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+            row.add(pro);
+            row.add(city);
+            row.add(salesOrder.getSalesAddressInfo());
+            String frim = replace(salesOrder.getSalesPostFirm());
+            row.add(frim);
+            row.add(salesOrder.getSalesPostNum());
+            row.add(salesOrder.getItemProductName() == null ? null:salesOrder.getItemProductName()+(salesOrder.getItemProductColor() == null ? null:"-"+salesOrder.getItemProductColor()));
+            row.add(salesOrder.getItemProductColor());
+            row.add(salesOrder.getItemNum());
+            row.add(salesOrder.getItemReturnNum());
+            row.add(salesOrder.getItemTotal() == null ? null:salesOrder.getItemTotal()/100);
+            row.add(salesOrder.getCompanyName());
+            row.add(salesOrder.getStoreName());
+            String salesShoppingStatus = "";
+            if(salesOrder.getSalesShippingStatus() == null){
+                salesShoppingStatus = "未打单";
+            }else{
+                // 0(未发货)1(已发货,即已扫描出库)3(备货中)4(收货) 11(已通知配货,后加)
+                switch (salesOrder.getSalesShippingStatus()){
+                    case 0:
+                        salesShoppingStatus = "未打单";
+                        break;
+                    case 1:
+                        salesShoppingStatus = "已打单";
+                        break;
+                    case 11:
+                        salesShoppingStatus = "通知配货";
+                        break;
+                    default:
+                        salesShoppingStatus = "其他状态";
+                        break;
                 }
-                row.add(salesOrder.getSalesSendTime() == null ? "未发货":formatter.format(salesOrder.getSalesSendTime()));
+            }
+            row.add(salesShoppingStatus);
+            if(salesOrder.getSalesDistributionTime() != null && salesOrder.getSalesSendTime() != null){
+                row.add(salesOrder.getSalesDistributionTime() == null ? formatter.format(salesOrder.getSalesSendTime()):formatter.format(salesOrder.getSalesDistributionTime()));
+            }else{
+                row.add("未通知配货");
+            }
+            row.add(salesOrder.getSalesSendTime() == null ? "未发货":formatter.format(salesOrder.getSalesSendTime()));
 
-                String salesDeliver = "";
-                if(salesOrder.getSalesDeliver() == null){
-                    salesDeliver = "未出库";
-                }else{
-                    ///出库状态  1:未出库   2:已出库
-                    switch (salesOrder.getSalesDeliver()){
-                        case 1:
-                            salesDeliver = "未出库";
-                            break;
-                        case 2:
-                            salesDeliver = "已出库";
-                            break;
-                        default:
-                            salesDeliver = "未出库";
-                            break;
+            String salesDeliver = "";
+            if(salesOrder.getSalesDeliver() == null){
+                salesDeliver = "未出库";
+            }else{
+                ///出库状态  1:未出库   2:已出库
+                switch (salesOrder.getSalesDeliver()){
+                    case 1:
+                        salesDeliver = "未出库";
+                        break;
+                    case 2:
+                        salesDeliver = "已出库";
+                        break;
+                    default:
+                        salesDeliver = "未出库";
+                        break;
+                }
+            }
+            row.add(salesDeliver);
+            row.add(salesOrder.getSalesDeliverTime() == null ? null:formatter.format(salesOrder.getSalesDeliverTime()));
+            String temp = "京东仓";
+            if (salesOrder.getSalesSendType() != 3) {
+                // 方式sendType=3表示京东仓发货,不等于3表示自有仓库发货,需要根据warehouseId判断是哪个仓库发货
+                if (salesOrder.getSalesWarehouseId() == null) {
+                    temp = null;
+                } else {
+                    if (salesOrder.getSalesWarehouseId() == 1) {
+                        temp = "正常仓库";
+                    } else {
+                        temp = "维修仓库";
                     }
                 }
-                row.add(salesDeliver);
-                row.add(salesOrder.getSalesDeliverTime() == null ? null:formatter.format(salesOrder.getSalesDeliverTime()));
-                countexts.add(row);
             }
-        }
+            row.add(temp);
+            countexts.add(row);
+        }));
         model.put("varList", countexts);
-        ObjectExcelView erv = new ObjectExcelView();
-        ModelAndView mv = new ModelAndView(erv,model);
-        return mv;
+        return new ModelAndView(new ObjectExcelView(),model);
     }
 
     /**物流名称替换**/