Browse Source

优化订单列表展示

xian 4 years ago
parent
commit
bcb7c2b4e6

+ 18 - 23
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminSalesOrderController.java

@@ -51,6 +51,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.*;
 
 /**
  * 订单信息
@@ -2228,11 +2229,11 @@ public class AdminSalesOrderController {
     @RequestMapping("/uploadPostageExcel")
     @ResponseBody
     public String uploadPostageExcel(HttpServletResponse response,HttpServletRequest request,@RequestParam("file") String file)throws IOException  {
-        Integer maxNumber = 1000;
+        Integer maxNumber = 5000;
         String path = request.getServletContext().getRealPath(file);
         boolean flag = ExcelUtil.readExcelNumber(path,maxNumber);
         if(!flag){
-            return "最大上传数量为1000条,请检查文档内的数据是否符合条件!";
+            return "最大上传数量为5000条,请检查文档内的数据是否符合条件!";
         }
         List<String> listString  = ExcelUtil.readExcelHead(path);
         if(listString == null){
@@ -2248,30 +2249,24 @@ public class AdminSalesOrderController {
         if( orderNumbers.size() != costs.size()){
             return "数据不合格,请检查文档内的数据是否正常!";
         }
-        SalesOrder salesOrder = new SalesOrder();
-        int success = 0,error = 0;
-        ArrayList<String> errorOrders = new ArrayList<>(costs.size());
-        for (int i = 0;i< orderNumbers.size();i++){
-            if( orderNumbers.get(i) != null &&  !"".equals(orderNumbers.get(i)) && costs.get(i) != null &&  !"".equals(costs.get(i))){
-                salesOrder.setSalesPostNum(orderNumbers.get(i));
-                Double co = Double.parseDouble(costs.get(i)) * 100;
-                Integer rentCount = co.intValue();
-                salesOrder.setSalesPostageCost(rentCount);
-                Integer msg = salesOrderService.updateSalesOrderBySalesPostNum(salesOrder);
-                if(msg > 0){
-                    success++;
-                }else{
-                    errorOrders.add(orderNumbers.get(i));
-                    error++;
+
+        THREAD_POOL.execute(() -> {
+            SalesOrder salesOrder = new SalesOrder();
+            for (int i = 0;i< orderNumbers.size();i++){
+                if( orderNumbers.get(i) != null &&  !"".equals(orderNumbers.get(i)) && costs.get(i) != null &&  !"".equals(costs.get(i))){
+                    salesOrder.setSalesPostNum(orderNumbers.get(i));
+                    Double co = Double.parseDouble(costs.get(i)) * 100;
+                    Integer rentCount = co.intValue();
+                    salesOrder.setSalesPostageCost(rentCount);
+                    salesOrderService.updateSalesOrderBySalesPostNum(salesOrder);
                 }
             }
-        }
-        String data = "上传完成,成功:"+success+"条,失败:"+error+"条";
-        if(error > 0){
-            data = data+errorOrders.toString();
-        }
-        return data;
+        });
+        return "上传完成,成功!";
     }
+
+    private static final ThreadPoolExecutor THREAD_POOL = new ThreadPoolExecutor(5, 10, 0L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(100), Executors.defaultThreadFactory(), new ThreadPoolExecutor.AbortPolicy());
+
     /**
      * 进入添加拉货数量
      * @param request