|
@@ -6,6 +6,10 @@ import java.io.OutputStream;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.concurrent.CountDownLatch;
|
|
|
+import java.util.concurrent.ExecutorService;
|
|
|
+import java.util.concurrent.Executors;
|
|
|
+import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
@@ -158,7 +162,7 @@ public class TSpecdevYlgdController extends BaseController {
|
|
|
//部门查询
|
|
|
List<SysDept> dept = iSysDeptService.selectDeptList(new SysDept());
|
|
|
int rowNum = sheet.getPhysicalNumberOfRows();
|
|
|
- int failNumber = 0;
|
|
|
+ AtomicInteger failNumber = new AtomicInteger();
|
|
|
for (int i = 1; i < rowNum; i++) {
|
|
|
try {
|
|
|
logger.info("读取行数:" + i);
|
|
@@ -280,30 +284,45 @@ public class TSpecdevYlgdController extends BaseController {
|
|
|
logger.info("entity:" + entity);
|
|
|
list.add(entity);
|
|
|
} catch (Exception e) {
|
|
|
- failNumber++;
|
|
|
+ failNumber.getAndIncrement();
|
|
|
logger.info("e:" + JSON.toJSONString(e));
|
|
|
failRow.add(i + 1);
|
|
|
}
|
|
|
}
|
|
|
- int successNumber = 0;
|
|
|
- int failNum = 0;
|
|
|
+ AtomicInteger successNumber = new AtomicInteger();
|
|
|
+ AtomicInteger failNum = new AtomicInteger();
|
|
|
+ //线程池
|
|
|
+ ExecutorService executorService = Executors.newFixedThreadPool(30);
|
|
|
+ final CountDownLatch latch = new CountDownLatch(list.size()); //相同线程数量的计数
|
|
|
+
|
|
|
for (TSpecdevYlgd t : list
|
|
|
) {
|
|
|
- failNum++;
|
|
|
- try {
|
|
|
- tSpecdevYlgdService.insertTSpecdevYlgd(t);
|
|
|
- successNumber++;
|
|
|
- } catch (Exception e) {
|
|
|
- failNumber++;
|
|
|
- logger.info("e:" + e);
|
|
|
- failRow.add(failNum + 1);
|
|
|
- }
|
|
|
+ executorService.execute(() -> {
|
|
|
+ //续票列表 -- 业务模块
|
|
|
+ failNum.getAndIncrement();
|
|
|
+ try {
|
|
|
+ tSpecdevYlgdService.insertTSpecdevYlgd(t);
|
|
|
+ successNumber.getAndIncrement();
|
|
|
+ } catch (Exception e) {
|
|
|
+ failNumber.getAndIncrement();
|
|
|
+ logger.info("e:" + e);
|
|
|
+ failRow.add(failNum.get() + 1);
|
|
|
+ }finally {
|
|
|
+ latch.countDown(); //线程计数
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
+ try {
|
|
|
+ latch.await(); //线程计数完毕后继续执行
|
|
|
+ } catch (InterruptedException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ executorService.shutdown();
|
|
|
logger.info("list:" + JSON.toJSONString(list));
|
|
|
- logger.info("successNumber:" + String.valueOf(successNumber));
|
|
|
- logger.info("failNumber:" + String.valueOf(failNumber));
|
|
|
+ logger.info("successNumber:" + String.valueOf(successNumber.get()));
|
|
|
+ logger.info("failNumber:" + String.valueOf(failNumber.get()));
|
|
|
logger.info("failRow:" + String.valueOf(failRow));
|
|
|
- return AjaxResult.success(String.valueOf(successNumber), failRow);
|
|
|
+ return AjaxResult.success(String.valueOf(successNumber.get()), failRow);
|
|
|
}
|
|
|
|
|
|
/**
|