From e6720f333268682d11aedb3b3308fa2f2c3a40df Mon Sep 17 00:00:00 2001
From: 许鹏程 <1821349743@qq.com>
Date: 星期二, 28 五月 2024 16:09:05 +0800
Subject: [PATCH] commit

---
 product-server-data-sync/src/main/java/com/product/data/sync/service/SyFeDataService.java |   63 ++++++++++++++++++++++++-------
 1 files changed, 49 insertions(+), 14 deletions(-)

diff --git a/product-server-data-sync/src/main/java/com/product/data/sync/service/SyFeDataService.java b/product-server-data-sync/src/main/java/com/product/data/sync/service/SyFeDataService.java
index 1b806e4..4a62f39 100644
--- a/product-server-data-sync/src/main/java/com/product/data/sync/service/SyFeDataService.java
+++ b/product-server-data-sync/src/main/java/com/product/data/sync/service/SyFeDataService.java
@@ -23,6 +23,7 @@
 import com.product.data.sync.config.SystemCode;
 import com.product.data.sync.service.ide.ISyFeDataService;
 import com.product.data.sync.service.media.GdMediaUtil;
+import com.product.data.sync.util.BatchAddData;
 import com.product.data.sync.util.BusinessDataSync;
 import com.product.data.sync.util.DataManipulationUtils;
 import com.product.file.service.FileManagerService;
@@ -101,6 +102,8 @@
 
 	//宸插悓姝ヨ〃缁撴瀯
 	private JSONObject dataTableObject = new JSONObject();
+	@Autowired
+	private BatchAddData batchAddData;
 
 	public Boolean isStr(String str) {
 		boolean a = false;
@@ -112,22 +115,28 @@
 		return a;
 	}
 
+
+	private Set<String> clearTable = new HashSet<>();
+
 	//鍏憡绠$悊1  绯荤粺鍙傛暟  闂嵎绠$悊  鑰冨嫟绠$悊  杞﹁締绠$悊  鍗忓悓鍔炲叕
 	@Override
 	public String saveSyncFedata(FieldSetEntity fs) throws SQLException, ClassNotFoundException {
 		//鍚屾缁勭粐鏋舵瀯
 		DataTableEntity dataTableEntity = baseDao.listTable("product_sys_users");
-		String clientUUID = "remark";
-		if (dataTableEntity.getRows() < 10) {
+		String clientUUID = "4d4679ed-c4c3-41b8-abfe-451a66fd4043";
+//		if (dataTableEntity.getRows() < 10) {
 //			//杩佺Щ缁勭粐鏋舵瀯
-//			String uuid = feDataDSService.FEDataMigration();
-//			if (!BaseUtil.strIsNull(uuid)) {
-//				clientUUID = uuid;
-//			}
+		String uuid = feDataDSService.FEDataMigration();
+		if (!BaseUtil.strIsNull(uuid)) {
+			clientUUID = uuid;
 		}
+//		}
 		//灏佽涓よ竟浜哄憳鍏宠仈鍜岄儴闂ㄥ叧鑱�
-//        packageDepartmentPersonnel();
+		packageDepartmentPersonnel();
 		String tricode_fun = Global.getSystemConfig("data.synchronism.function", "").replaceAll(" ", "");
+		if (StringUtils.isEmpty(tricode_fun)) {
+			tricode_fun = fs.getString("function_code");
+		}
 		if (BaseUtil.strIsNull(tricode_fun)) {
 			return null;
 		}
@@ -227,8 +236,8 @@
 				//杩囨护arr涓殑null骞惰浆涓哄瓧绗︿覆鐢ㄩ�楀彿鍒嗛殧
 				defaultPosts = Arrays.stream(arr).filter(Objects::nonNull).collect(Collectors.joining(","));
 			}
-			if(!StringUtils.isEmpty(defaultUsers)){
-				arr=defaultUsers.split(",");
+			if (!StringUtils.isEmpty(defaultUsers)) {
+				arr = defaultUsers.split(",");
 				for (int j = 0; j < arr.length; j++) {
 					String uid = arr[j];
 					String uuid = userMapping.get(uid);
@@ -246,6 +255,7 @@
 			node.setValue("default_depts", defaultDepts);
 
 		}
+
 		baseDao.update(nodes);
 	}
 
@@ -254,18 +264,25 @@
 //        String[] tricode_funs = fs.getString("tricode_fun").split(",");
 		//灏佽鏈骇鍝侀渶璧嬫潈闄愮殑鎸夐挳uuid
 //        this.packageButton();
-//        Connection conn = functionSynchrService.getConnection(fs);
+//        ConnectionInterface conn = functionSynchrService.getConnection(fs);
 		//閫氳繃绾跨▼寰幆娣诲姞鍔熻兘淇℃伅
 		ExecutorService exec = Executors.newCachedThreadPool();
+		List<Set<String>> clearAttachmentSets = new ArrayList<>();
 		for (int i = 0; i < tricode_funs.length; i++) {
 			//鑾峰彇jdbc杩炴帴
 			BusinessDataSync async = new BusinessDataSync(tricode_funs[i]);
 			async.setBaseDao(baseDao);
+			async.setClearTable(clearTable);
 			async.setFileManagerService(fileManagerService);
 			async.setSystemMenusService(systemMenusService);
 			async.setFeDataDSService(feDataDSService);
 			async.setGdMediaUtil(gdMediaUtil);
 			async.setClientUUID(clientUUID);
+			async.setBatchAddData(batchAddData);
+			Set<String> clearAttachment = async.getClearAttachment();
+			if (clearAttachment != null) {
+				clearAttachmentSets.add(clearAttachment);
+			}
 			Thread t = new Thread(async);
 			//璋冪敤绾跨▼run鏂规硶
 			exec.submit(t);
@@ -310,6 +327,7 @@
 			}
 		}
 		systemMenusService.initSystemMenu();
+		//鍚屾
 		System.out.println("=================鍚屾鎴愬姛===============");
 
 		return "OK";
@@ -2424,7 +2442,7 @@
 			//鍚屾娑堟伅
 			try {
 				this.synchronizingProcessMessages(conn, tricode_funs, stateMap);
-			} catch (BaseException e) {
+			} catch (Exception e) {
 				e.printStackTrace();
 			}
 			//婧愭暟鎹甶d 涓� 鏈暟鎹畊uid 鍏宠仈
@@ -2779,7 +2797,7 @@
 	/**
 	 * 鍚屾娴佺▼娑堟伅琛�
 	 */
-	public void synchronizingProcessMessages(Connection conn, String tricode_funs, Map<String, String> stateMap) throws SQLException {
+	public void synchronizingProcessMessages(Connection conn, String tricode_funs, Map<String, String> stateMap) throws Exception {
 		DataTableEntity OrlDt = null;
 		try {
 			StringBuffer sql = new StringBuffer();
@@ -2795,6 +2813,8 @@
 		String id = null;
 		String message_uuid = null;
 		String state = null;
+		DataTableEntity dt = new DataTableEntity();
+		DataTableEntity dt1 = new DataTableEntity();
 		for (int i = 0; i < OrlDt.getRows(); i++) {
 			FieldSetEntity fs = OrlDt.getFieldSetEntity(i);
 			//娴佺▼鑺傜偣id
@@ -2853,7 +2873,10 @@
 				} else if ("2".equals(state)) {
 					message.setValue("url", "1621321824686868oKWL726?uuid=" + source_uuid);
 				}
-				message_uuid = baseDao.add(message);
+
+				message_uuid = UUID.randomUUID().toString();
+				message.setValue("uuid", message_uuid);
+				dt1.addFieldSetEntity(message);
 			}
 
 			FieldSetEntity message_user = new FieldSetEntity();
@@ -2884,8 +2907,20 @@
 				}
 			}
 			message_user.setValue("user_id", user_id);
-			baseDao.add(message_user);
+//			baseDao.add(message_user);
+			dt.addFieldSetEntity(message_user);
+
+			if (dt1.getRows() > 50000) {
+				batchAddData.add(dt1);
+				dt1 = new DataTableEntity();
+			}
+			if (dt.getRows() > 50000) {
+				batchAddData.add(dt);
+				dt = new DataTableEntity();
+			}
 		}
+		batchAddData.add(dt1);
+		batchAddData.add(dt);
 	}
 
 

--
Gitblit v1.9.2