Parcourir la source

7.23 启用多线程进行上传

Mechrevo il y a 1 an
Parent
commit
e40875ef93

+ 39 - 3
sp-service/level-one-server/src/main/java/com/pj/tb_enterprise/MethodEnterpriseService.java

@@ -9,7 +9,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 /**
  * @Author Mechrevo
@@ -22,6 +26,8 @@ public class MethodEnterpriseService {
     @Autowired
     private TbEnterpriseMapper tbEnterpriseMapper;
 
+    @Autowired
+    private TbEnterpriseService tbEnterpriseService;
     /**
      * 方法抽取  导入
      * @param row
@@ -31,6 +37,8 @@ public class MethodEnterpriseService {
      */
     public int importMethod(HSSFRow row, HSSFSheet sheet, int count){
 
+        List<TbEnterprise> list = new ArrayList<>();
+
         for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
             //封装数据到行对象
             row = sheet.getRow(i);
@@ -130,10 +138,38 @@ public class MethodEnterpriseService {
             //删除状态,默认可用
             tbEnterprise.setDeleteStatus(1);
 //			//添加到集合
-//			list.add(tbEnterprise);
-            int insert = tbEnterpriseMapper.insert(tbEnterprise);
-            count += insert;
+			list.add(tbEnterprise);
+//            int insert = tbEnterpriseMapper.insert(tbEnterprise);
+//            count += insert;
+        }
+
+        //创建多线程
+        ExecutorService executorService = Executors.newFixedThreadPool(6);
+
+        System.out.println("待处理数据量为: " + list.size() + " 条。");
+
+        //每次100条
+        int bai = 100;
+        //计算需要创建的线程数
+        int threads = (int) Math.ceil((double) list.size() / bai);
+        for (int i = 0; i < threads; i++) {
+            int start = i * bai;
+            int end = Math.min(start + bai,list.size());
+
+            //截取集合数量
+            List<TbEnterprise> enterpriseList = list.subList(start, end);
+
+            //多线程执行任务
+            executorService.submit(() -> {
+                tbEnterpriseService.saveBatch(enterpriseList);
+            });
+            //计数
+            count += enterpriseList.size();
+
         }
+        //关闭线程池
+        executorService.shutdown();
+
         return count;
     }
 }

+ 39 - 4
sp-service/level-one-server/src/main/java/com/pj/tb_goods/MethodGoodsService.java

@@ -1,5 +1,6 @@
 package com.pj.tb_goods;
 
+import com.pj.tb_enterprise.TbEnterprise;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
@@ -9,6 +10,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
 
 /**
  * @Author Mechrevo
@@ -19,7 +25,7 @@ import org.springframework.transaction.annotation.Transactional;
 public class MethodGoodsService {
 
     @Autowired
-    private TbGoodsMapper tbGoodsMapper;
+    private TbGoodsService tbGoodsService;
 
 
     /**
@@ -31,6 +37,9 @@ public class MethodGoodsService {
      */
     public int importMethod(HSSFRow row, HSSFSheet sheet, int count){
 
+        //创建接受集合
+        List<TbGoods> list = new ArrayList<>();
+
         for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
             //封装数据到行对象
             row = sheet.getRow(i);
@@ -91,10 +100,36 @@ public class MethodGoodsService {
             //删除状态,默认可用
             tbGoods.setDeleteStatus(1);
 //			//添加到集合
-//			list.add(tbGoods);
-            int insert = tbGoodsMapper.insert(tbGoods);
-            count += insert;
+			list.add(tbGoods);
+        }
+
+        System.out.println("待处理数据量为: " + list.size() + " 条。");
+
+        //创建多线程
+        ExecutorService executorService = Executors.newFixedThreadPool(6);
+
+        //每次100条
+        int bai = 100;
+        //计算需要创建的线程数
+        int threads = (int) Math.ceil((double) list.size() / bai);
+        for (int i = 0; i < threads; i++) {
+            int start = i * bai;
+            int end = Math.min(start + bai,list.size());
+
+            //截取集合数量
+            List<TbGoods> enterpriseList = list.subList(start, end);
+
+            //多线程执行任务
+            executorService.submit(() -> {
+                tbGoodsService.saveBatch(enterpriseList);
+            });
+            //计数
+            count += enterpriseList.size();
+
         }
+        //关闭线程池
+        executorService.shutdown();
+
         return count;
     }
 

+ 41 - 4
sp-service/level-one-server/src/main/java/com/pj/tb_goods_transit/MethodGoodsTransitService.java

@@ -1,5 +1,7 @@
 package com.pj.tb_goods_transit;
 
+import com.pj.tb_goods.TbGoods;
+import com.pj.tb_goods_type.TbGoodsTypeService;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
@@ -9,6 +11,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
 
 /**
  * @Author Mechrevo
@@ -19,7 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
 public class MethodGoodsTransitService {
     
     @Autowired
-    private TbGoodsTransitMapper tbGoodsTransitMapper;
+    private TbGoodsTransitService tbGoodsTransitService;
 
     /**
      * 方法抽取  导入
@@ -30,6 +37,9 @@ public class MethodGoodsTransitService {
      */
     public int importMethod(HSSFRow row, HSSFSheet sheet, int count){
 
+        //创建接受集合
+        List<TbGoodsTransit> list = new ArrayList<>();
+
         for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
             //封装数据到行对象
             row = sheet.getRow(i);
@@ -106,10 +116,37 @@ public class MethodGoodsTransitService {
             //删除状态,默认可用
             tbGoodsTransit.setDeleteStatus(1);
 //			//添加到集合
-//			list.add(tbGoodsTransit);
-            int insert = tbGoodsTransitMapper.insert(tbGoodsTransit);
-            count += insert;
+			list.add(tbGoodsTransit);
+
         }
+
+        System.out.println("待处理数据量为: " + list.size() + " 条。");
+
+        //创建多线程
+        ExecutorService executorService = Executors.newFixedThreadPool(6);
+
+        //每次100条
+        int bai = 100;
+        //计算需要创建的线程数
+        int threads = (int) Math.ceil((double) list.size() / bai);
+        for (int i = 0; i < threads; i++) {
+            int start = i * bai;
+            int end = Math.min(start + bai,list.size());
+
+            //截取集合数量
+            List<TbGoodsTransit> enterpriseList = list.subList(start, end);
+
+            //多线程执行任务
+            executorService.submit(() -> {
+                tbGoodsTransitService.saveBatch(enterpriseList);
+            });
+            //计数
+            count += enterpriseList.size();
+
+        }
+        //关闭线程池
+        executorService.shutdown();
+
         return count;
     }
     

+ 41 - 5
sp-service/level-one-server/src/main/java/com/pj/tb_goods_type/MethodGoodsTypeService.java

@@ -1,5 +1,6 @@
 package com.pj.tb_goods_type;
 
+import com.pj.tb_goods.TbGoods;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
@@ -9,6 +10,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
 /**
  * @Author Mechrevo
  * @Date 2023 07 21 17 16
@@ -19,7 +25,7 @@ public class MethodGoodsTypeService {
 
 
     @Autowired
-    private TbGoodsTypeMapper tbGoodsTypeMapper;
+    private TbGoodsTypeService tbGoodsTypeService;
 
     /**
      * 方法抽取  导入
@@ -30,6 +36,9 @@ public class MethodGoodsTypeService {
      */
     public int importMethod(HSSFRow row, HSSFSheet sheet, int count){
 
+        //创建接收集合
+        List<TbGoodsType> list = new ArrayList<>();
+
         for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
             //封装数据到行对象
             row = sheet.getRow(i);
@@ -70,11 +79,38 @@ public class MethodGoodsTypeService {
             }
             //删除状态,默认可用
             tbGoodsType.setDeleteStatus(1);
-//			//添加到集合
-//			list.add(tbGoodsType);
-            int insert = tbGoodsTypeMapper.insert(tbGoodsType);
-            count += insert;
+			//添加到集合
+			list.add(tbGoodsType);
+
         }
+
+        System.out.println("待处理数据量为: " + list.size() + " 条。");
+
+        //创建多线程
+        ExecutorService executorService = Executors.newFixedThreadPool(6);
+
+        //每次100条
+        int bai = 100;
+        //计算需要创建的线程数
+        int threads = (int) Math.ceil((double) list.size() / bai);
+        for (int i = 0; i < threads; i++) {
+            int start = i * bai;
+            int end = Math.min(start + bai,list.size());
+
+            //截取集合数量
+            List<TbGoodsType> enterpriseList = list.subList(start, end);
+
+            //多线程执行任务
+            executorService.submit(() -> {
+                tbGoodsTypeService.saveBatch(enterpriseList);
+            });
+            //计数
+            count += enterpriseList.size();
+
+        }
+        //关闭线程池
+        executorService.shutdown();
+
         return count;
     }
 }

+ 41 - 5
sp-service/level-one-server/src/main/java/com/pj/tb_goods_units/MethodGoodsUnitsService.java

@@ -1,11 +1,17 @@
 package com.pj.tb_goods_units;
 
+import com.pj.tb_goods.TbGoods;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
 /**
  * @Author Mechrevo
  * @Date 2023 07 21 17 30
@@ -15,7 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
 public class MethodGoodsUnitsService {
     
     @Autowired
-    private TbGoodsUnitsMapper tbGoodsUnitsMapper;
+    private TbGoodsUnitsService tbGoodsUnitsService;
 
     /**
      * 方法抽取  导入
@@ -26,6 +32,9 @@ public class MethodGoodsUnitsService {
      */
     public int importMethod(HSSFRow row, HSSFSheet sheet, int count){
 
+        //创建接收集合
+        List<TbGoodsUnits> list = new ArrayList<>();
+
         for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
             //封装数据到行对象
             row = sheet.getRow(i);
@@ -63,11 +72,38 @@ public class MethodGoodsUnitsService {
 //            }
 //            //删除状态,默认可用
 //            tbGoodsUnits.setDeleteStatus(1);
-//			//添加到集合
-//			list.add(tbGoodsUnits);
-            int insert = tbGoodsUnitsMapper.insert(tbGoodsUnits);
-            count += insert;
+			//添加到集合
+			list.add(tbGoodsUnits);
+
         }
+
+        System.out.println("待处理数据量为: " + list.size() + " 条。");
+
+        //创建多线程
+        ExecutorService executorService = Executors.newFixedThreadPool(6);
+
+        //每次100条
+        int bai = 100;
+        //计算需要创建的线程数
+        int threads = (int) Math.ceil((double) list.size() / bai);
+        for (int i = 0; i < threads; i++) {
+            int start = i * bai;
+            int end = Math.min(start + bai,list.size());
+
+            //截取集合数量
+            List<TbGoodsUnits> enterpriseList = list.subList(start, end);
+
+            //多线程执行任务
+            executorService.submit(() -> {
+                tbGoodsUnitsService.saveBatch(enterpriseList);
+            });
+            //计数
+            count += enterpriseList.size();
+
+        }
+        //关闭线程池
+        executorService.shutdown();
+
         return count;
     }
 }

+ 40 - 5
sp-service/level-one-server/src/main/java/com/pj/tb_group/MethodGroupService.java

@@ -1,5 +1,6 @@
 package com.pj.tb_group;
 
+
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
@@ -9,6 +10,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
 /**
  * @Author Mechrevo
  * @Date 2023 07 21 17 38
@@ -18,7 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
 public class MethodGroupService {
     
     @Autowired
-    private TbGroupMapper tbGroupMapper;
+    private TbGroupService tbGroupService;
 
 
 
@@ -31,6 +37,9 @@ public class MethodGroupService {
      */
     public int importMethod(HSSFRow row, HSSFSheet sheet, int count){
 
+        //创建接收集合
+        List<TbGroup> list = new ArrayList<>();
+
         for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
             //封装数据到行对象
             row = sheet.getRow(i);
@@ -92,11 +101,37 @@ public class MethodGroupService {
             }
             //删除状态,默认可用
             tbGroup.setDeleteStatus(1);
-//			//添加到集合
-//			list.add(tbGroup);
-            int insert = tbGroupMapper.insert(tbGroup);
-            count += insert;
+			//添加到集合
+			list.add(tbGroup);
+
         }
+        System.out.println("待处理数据量为: " + list.size() + " 条。");
+
+        //创建多线程
+        ExecutorService executorService = Executors.newFixedThreadPool(6);
+
+        //每次100条
+        int bai = 100;
+        //计算需要创建的线程数
+        int threads = (int) Math.ceil((double) list.size() / bai);
+        for (int i = 0; i < threads; i++) {
+            int start = i * bai;
+            int end = Math.min(start + bai,list.size());
+
+            //截取集合数量
+            List<TbGroup> enterpriseList = list.subList(start, end);
+
+            //多线程执行任务
+            executorService.submit(() -> {
+                tbGroupService.saveBatch(enterpriseList);
+            });
+            //计数
+            count += enterpriseList.size();
+
+        }
+        //关闭线程池
+        executorService.shutdown();
+
         return count;
     }
 }

+ 41 - 5
sp-service/level-one-server/src/main/java/com/pj/tb_people/MethodPeopleService.java

@@ -1,5 +1,6 @@
 package com.pj.tb_people;
 
+import com.pj.tb_goods.TbGoods;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
@@ -9,6 +10,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
 /**
  * @Author Mechrevo
  * @Date 2023 07 21 17 52
@@ -18,7 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
 public class MethodPeopleService {
     
     @Autowired
-    private TbPeopleMapper tbPeopleMapper;
+    private TbPeopleService tbPeopleService;
 
 
     /**
@@ -30,6 +36,9 @@ public class MethodPeopleService {
      */
     public int importMethod(HSSFRow row, HSSFSheet sheet, int count){
 
+        //创建接收集合
+        List<TbPeople> list = new ArrayList<>();
+
         for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
             //封装数据到行对象
             row = sheet.getRow(i);
@@ -160,11 +169,38 @@ public class MethodPeopleService {
             }
             //删除状态,默认可用
             tbPeople.setDeleteStatus(1);
-//			//添加到集合
-//			list.add(tbPeople);
-            int insert = tbPeopleMapper.insert(tbPeople);
-            count += insert;
+			//添加到集合
+			list.add(tbPeople);
+
         }
+
+        System.out.println("待处理数据量为: " + list.size() + " 条。");
+
+        //创建多线程
+        ExecutorService executorService = Executors.newFixedThreadPool(6);
+
+        //每次100条
+        int bai = 100;
+        //计算需要创建的线程数
+        int threads = (int) Math.ceil((double) list.size() / bai);
+        for (int i = 0; i < threads; i++) {
+            int start = i * bai;
+            int end = Math.min(start + bai,list.size());
+
+            //截取集合数量
+            List<TbPeople> enterpriseList = list.subList(start, end);
+
+            //多线程执行任务
+            executorService.submit(() -> {
+                tbPeopleService.saveBatch(enterpriseList);
+            });
+            //计数
+            count += enterpriseList.size();
+
+        }
+        //关闭线程池
+        executorService.shutdown();
+
         return count;
     }
     

+ 41 - 5
sp-service/level-one-server/src/main/java/com/pj/tb_shop/MethodShopService.java

@@ -1,5 +1,6 @@
 package com.pj.tb_shop;
 
+import com.pj.tb_goods.TbGoods;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
@@ -9,6 +10,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
 /**
  * @Author Mechrevo
  * @Date 2023 07 21 20 37
@@ -18,7 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
 public class MethodShopService {
     
     @Autowired
-    private TbShopMapper tbShopMapper;
+    private TbShopService tbShopService;
 
 
     /**
@@ -30,6 +36,9 @@ public class MethodShopService {
      */
     public int importMethod(HSSFRow row, HSSFSheet sheet, int count){
 
+        //创建接收集合
+        List<TbShop> list = new ArrayList<>();
+
         for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
             //封装数据到行对象
             row = sheet.getRow(i);
@@ -97,11 +106,38 @@ public class MethodShopService {
             }
             //删除状态,默认可用
             tbShop.setDeleteStatus(1);
-//			//添加到集合
-//			list.add(tbShop);
-            int insert = tbShopMapper.insert(tbShop);
-            count += insert;
+			//添加到集合
+			list.add(tbShop);
+
         }
+
+        System.out.println("待处理数据量为: " + list.size() + " 条。");
+
+        //创建多线程
+        ExecutorService executorService = Executors.newFixedThreadPool(6);
+
+        //每次100条
+        int bai = 100;
+        //计算需要创建的线程数
+        int threads = (int) Math.ceil((double) list.size() / bai);
+        for (int i = 0; i < threads; i++) {
+            int start = i * bai;
+            int end = Math.min(start + bai,list.size());
+
+            //截取集合数量
+            List<TbShop> enterpriseList = list.subList(start, end);
+
+            //多线程执行任务
+            executorService.submit(() -> {
+                tbShopService.saveBatch(enterpriseList);
+            });
+            //计数
+            count += enterpriseList.size();
+
+        }
+        //关闭线程池
+        executorService.shutdown();
+
         return count;
     }
     

+ 41 - 5
sp-service/level-one-server/src/main/java/com/pj/tb_trade_area/MethodTradeAreaService.java

@@ -1,5 +1,6 @@
 package com.pj.tb_trade_area;
 
+import com.pj.tb_goods.TbGoods;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
@@ -9,6 +10,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
 /**
  * @Author Mechrevo
  * @Date 2023 07 21 21 01
@@ -18,7 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
 public class MethodTradeAreaService {
     
     @Autowired
-    private TbTradeAreaMapper tbTradeAreaMapper;
+    private TbTradeAreaService tbTradeAreaService;
 
 
     /**
@@ -30,6 +36,9 @@ public class MethodTradeAreaService {
      */
     public int importMethod(HSSFRow row, HSSFSheet sheet, int count){
 
+        //创建接收集合
+        List<TbTradeArea> list = new ArrayList<>();
+
         for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
             //封装数据到行对象
             row = sheet.getRow(i);
@@ -72,11 +81,38 @@ public class MethodTradeAreaService {
             }
             //删除状态,默认可用
             tbTradeArea.setDeleteStatus(1);
-//			//添加到集合
-//			list.add(tbTradeArea);
-            int insert = tbTradeAreaMapper.insert(tbTradeArea);
-            count += insert;
+			//添加到集合
+			list.add(tbTradeArea);
+
         }
+
+        System.out.println("待处理数据量为: " + list.size() + " 条。");
+
+        //创建多线程
+        ExecutorService executorService = Executors.newFixedThreadPool(6);
+
+        //每次100条
+        int bai = 100;
+        //计算需要创建的线程数
+        int threads = (int) Math.ceil((double) list.size() / bai);
+        for (int i = 0; i < threads; i++) {
+            int start = i * bai;
+            int end = Math.min(start + bai,list.size());
+
+            //截取集合数量
+            List<TbTradeArea> enterpriseList = list.subList(start, end);
+
+            //多线程执行任务
+            executorService.submit(() -> {
+                tbTradeAreaService.saveBatch(enterpriseList);
+            });
+            //计数
+            count += enterpriseList.size();
+
+        }
+        //关闭线程池
+        executorService.shutdown();
+
         return count;
     }
     

+ 40 - 5
sp-service/level-two-server/src/main/java/com/pj/tb_purchaser/MethodPurchaserService.java

@@ -9,6 +9,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
 /**
  * @Author Mechrevo
  * @Date 2023 07 21 21 13
@@ -18,7 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
 public class MethodPurchaserService {
     
     @Autowired
-    private TbPurchaserMapper tbPurchaserMapper;
+    private TbPurchaserService tbPurchaserService;
 
     /**
      * 方法抽取  导入
@@ -29,6 +34,9 @@ public class MethodPurchaserService {
      */
     public int importMethod(HSSFRow row, HSSFSheet sheet, int count){
 
+        //创建接收集合
+        List<TbPurchaser> list = new ArrayList<>();
+
         for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
             //封装数据到行对象
             row = sheet.getRow(i);
@@ -115,11 +123,38 @@ public class MethodPurchaserService {
             }
             //删除状态,默认可用
             tbPurchaser.setDeleteStatus(1);
-//			//添加到集合
-//			list.add(tbPurchaser);
-            int insert = tbPurchaserMapper.insert(tbPurchaser);
-            count += insert;
+			//添加到集合
+			list.add(tbPurchaser);
+
         }
+
+        System.out.println("待处理数据量为: " + list.size() + " 条。");
+
+        //创建多线程
+        ExecutorService executorService = Executors.newFixedThreadPool(6);
+
+        //每次100条
+        int bai = 100;
+        //计算需要创建的线程数
+        int threads = (int) Math.ceil((double) list.size() / bai);
+        for (int i = 0; i < threads; i++) {
+            int start = i * bai;
+            int end = Math.min(start + bai,list.size());
+
+            //截取集合数量
+            List<TbPurchaser> enterpriseList = list.subList(start, end);
+
+            //多线程执行任务
+            executorService.submit(() -> {
+                tbPurchaserService.saveBatch(enterpriseList);
+            });
+            //计数
+            count += enterpriseList.size();
+
+        }
+        //关闭线程池
+        executorService.shutdown();
+
         return count;
     }
 }

+ 40 - 5
sp-service/transport-server/src/main/java/com/pj/project/tb_driver/MethodDriverService.java

@@ -9,6 +9,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
 /**
  * @Author Mechrevo
  * @Date 2023 07 22 12 08
@@ -18,7 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
 public class MethodDriverService {
     
     @Autowired
-    private TbDriverMapper tbDriverMapper;
+    private TbDriverService tbDriverService;
 
 
 
@@ -31,6 +36,9 @@ public class MethodDriverService {
      */
     public int importMethod(HSSFRow row, HSSFSheet sheet, int count){
 
+        //创建接收集合
+        List<TbDriver> list = new ArrayList<>();
+
         for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
             //封装数据到行对象
             row = sheet.getRow(i);
@@ -133,11 +141,38 @@ public class MethodDriverService {
             }
             //删除状态,默认可用
             tbDriver.setDeleteStatus(1);
-//			//添加到集合
-//			list.add(tbDriver);
-            int insert = tbDriverMapper.insert(tbDriver);
-            count += insert;
+			//添加到集合
+			list.add(tbDriver);
+
         }
+
+        System.out.println("待处理数据量为: " + list.size() + " 条。");
+
+        //创建多线程
+        ExecutorService executorService = Executors.newFixedThreadPool(6);
+
+        //每次100条
+        int bai = 100;
+        //计算需要创建的线程数
+        int threads = (int) Math.ceil((double) list.size() / bai);
+        for (int i = 0; i < threads; i++) {
+            int start = i * bai;
+            int end = Math.min(start + bai,list.size());
+
+            //截取集合数量
+            List<TbDriver> enterpriseList = list.subList(start, end);
+
+            //多线程执行任务
+            executorService.submit(() -> {
+                tbDriverService.saveBatch(enterpriseList);
+            });
+            //计数
+            count += enterpriseList.size();
+
+        }
+        //关闭线程池
+        executorService.shutdown();
+
         return count;
     }
     

+ 40 - 5
sp-service/transport-server/src/main/java/com/pj/project/tb_vehicle/MethodVehicleService.java

@@ -9,6 +9,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
 /**
  * @Author Mechrevo
  * @Date 2023 07 22 12 32
@@ -18,7 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
 public class MethodVehicleService {
 
     @Autowired
-    private TbVehicleMapper tbVehicleMapper;
+    private TbVehicleService tbVehicleService;
 
     /**
      * 方法抽取  导入
@@ -29,6 +34,9 @@ public class MethodVehicleService {
      */
     public int importMethod(HSSFRow row, HSSFSheet sheet, int count){
 
+        //创建接收集合
+        List<TbVehicle> list = new ArrayList<>();
+
         for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
             //封装数据到行对象
             row = sheet.getRow(i);
@@ -102,11 +110,38 @@ public class MethodVehicleService {
             }
             //删除状态,默认可用
             tbVehicle.setDeleteStatus(1);
-//			//添加到集合
-//			list.add(tbVehicle);
-            int insert = tbVehicleMapper.insert(tbVehicle);
-            count += insert;
+			//添加到集合
+			list.add(tbVehicle);
+
         }
+
+        System.out.println("待处理数据量为: " + list.size() + " 条。");
+
+        //创建多线程
+        ExecutorService executorService = Executors.newFixedThreadPool(6);
+
+        //每次100条
+        int bai = 100;
+        //计算需要创建的线程数
+        int threads = (int) Math.ceil((double) list.size() / bai);
+        for (int i = 0; i < threads; i++) {
+            int start = i * bai;
+            int end = Math.min(start + bai,list.size());
+
+            //截取集合数量
+            List<TbVehicle> enterpriseList = list.subList(start, end);
+
+            //多线程执行任务
+            executorService.submit(() -> {
+                tbVehicleService.saveBatch(enterpriseList);
+            });
+            //计数
+            count += enterpriseList.size();
+
+        }
+        //关闭线程池
+        executorService.shutdown();
+
         return count;
     }