From 62654cb7d3e23074278c7c061bef8f6cbee90d73 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 10 十一月 2023 09:48:21 +0800
Subject: [PATCH] 修改历史数据导入时限制单次导入通过配置做限制,开启多线程分批并行执行insert,注解开启事务回滚失效,对象方式开启事务实现手动提交事务,异常回滚事务

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
index e594481..886df4a 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -69,7 +69,11 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cache.Cache;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.TransactionStatus;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.support.DefaultTransactionDefinition;
+import org.springframework.transaction.support.TransactionTemplate;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
@@ -101,7 +105,7 @@
 	/**
 	 * 鍗曟sql鐨勬渶澶氬鍏ユ暟閲�
 	 */
-	@Value("${import.maxNum}")
+	@Value("${batchadd.single_maxnum:500}")
 	private Integer MAX_IMPORT_NUM;
 
     /**
@@ -153,13 +157,11 @@
     @Autowired
     private FormulaServiceImpl formulaService;
 
-
     /**
      * 瀵筼md涓彁渚涚殑feign鎺ュ彛杩涜璋冪敤锛屼互鍙婂鐞嗙浉鍏抽�昏緫
      */
     @Autowired
     ICodeReferBtmTypeService codeReferBtmTypeService;
-
 
     /**
      * 鐩镐技椤规煡璇㈣鍒�
@@ -3573,6 +3575,7 @@
 	void bactchExecuteInsert(String tableName, List<Map<String, String>> maps) throws ServiceException{
 		ExecutorService executor = Executors.newFixedThreadPool(10); // 鍒涘缓涓�涓浐瀹氬ぇ灏忕殑绾跨▼姹�
 		List<Map<String, String>> threadSafeMaps = new CopyOnWriteArrayList<>(maps);
+
 		for (int i = 0; i < threadSafeMaps.size(); i += MAX_IMPORT_NUM) {
 			final int startIndex = i;
 			final int endIndex = Math.min(i + MAX_IMPORT_NUM, maps.size());
@@ -3583,6 +3586,7 @@
 				commonsMapper.insertByBaseModel(tableName, threadSafeMaps.get(0), subList);
 			});
 		}
+
 		// 鍏抽棴绾跨▼姹�
 		executor.shutdown();
 		try {

--
Gitblit v1.9.3