From 07bd010b2bbd939ade44c7b1a299fa911f8742e8 Mon Sep 17 00:00:00 2001
From: cheng <1821349743@qq.com>
Date: 星期三, 25 十月 2023 09:30:11 +0800
Subject: [PATCH] commit

---
 product-server-data-center/src/main/java/com/product/data/center/service/MesExternalService.java | 1958 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 985 insertions(+), 973 deletions(-)

diff --git a/product-server-data-center/src/main/java/com/product/data/center/service/MesExternalService.java b/product-server-data-center/src/main/java/com/product/data/center/service/MesExternalService.java
index 19092a8..f6f9462 100644
--- a/product-server-data-center/src/main/java/com/product/data/center/service/MesExternalService.java
+++ b/product-server-data-center/src/main/java/com/product/data/center/service/MesExternalService.java
@@ -54,1046 +54,1058 @@
 @Service
 public class MesExternalService extends AbstractBaseService implements IMesExternalService, IRemoteService, com.product.data.service.impl.IRemoteService {
 
-	@Value("${data.system.name}")
-	private String dataSystemName;
+    @Value("${data.system.name}")
+    private String dataSystemName;
 
-	private CommonService commonService = null;
+    private CommonService commonService = null;
 
-	private FieldSetEntity collectLogCache = null;
+    private FieldSetEntity collectLogCache = null;
 
-	public CommonService getCommonService() {
-		if (this.commonService == null) {
-			this.commonService = SpringBeanUtil.getBean(CommonService.class);
-		}
-		return commonService;
-	}
+    public CommonService getCommonService() {
+        if (this.commonService == null) {
+            this.commonService = SpringBeanUtil.getBean(CommonService.class);
+        }
+        return commonService;
+    }
 
-	public static void main(String[] args) {
-		Date parse = DateUtil.parse("2023-10-23 18:22:50", "yyyy-MM-dd HH:mm:ss");
-		Date parse1 = DateUtil.parse("2023-10-23 18:24:11", "yyyy-MM-dd HH:mm:ss");
-		Date parse2 = DateUtil.parse("2023-10-23 18:24:21", "yyyy-MM-dd HH:mm:ss");
+    public static void main(String[] args) {
+        Date parse = DateUtil.parse("2023-10-23 18:22:50", "yyyy-MM-dd HH:mm:ss");
+        Date parse1 = DateUtil.parse("2023-10-23 18:24:11", "yyyy-MM-dd HH:mm:ss");
+        Date parse2 = DateUtil.parse("2023-10-23 18:24:21", "yyyy-MM-dd HH:mm:ss");
 
-		Set<Date> set = Sets.newHashSet(parse, parse1, parse2);
+        Set<Date> set = Sets.newHashSet(parse, parse1, parse2);
 
-		List<Date> sets = CollectionUtil.toList(set.toArray(new Date[0]));
+        List<Date> sets = CollectionUtil.toList(set.toArray(new Date[0]));
 
-		Optional<Date> max = sets.stream().max(Comparator.comparing((a) -> a.getTime()));
-		System.out.println(max.get());
+        Optional<Date> max = sets.stream().max(Comparator.comparing((a) -> a.getTime()));
+        System.out.println(max.get());
 
-	}
+    }
 
 
-	public void splitTableData() {
-		FieldSetEntity reportDbConfig = getBaseDao().getFieldSetByFilter(CmnConst.PRODUCT_SYS_DATA_SYNC_MANAGER, "SYNC_NAME=?", new Object[]{"鎶ヨ〃鏁版嵁搴�"}, false);
-		if (FieldSetEntity.isEmpty(reportDbConfig)) {
-			throw new BaseException(ErrorCode.REPORT_DB_CONFIG_FAIL);
-		}
-		DataBaseEntity dbe = new DataBaseEntity(reportDbConfig);
-		Dao reportDao = dbe.getDao();
-		Set<String> trackingTableSet = QuerySqlParseUtil.getAllTableName(reportDao, dbe.getDbName(), "da_t_wip_tracking");
+    public void splitTableData() {
+//        FieldSetEntity reportDbConfig = getBaseDao().getFieldSetByFilter(CmnConst.PRODUCT_SYS_DATA_SYNC_MANAGER, "SYNC_NAME=?", new Object[]{"鎶ヨ〃鏁版嵁搴�"}, false);
+//        if (FieldSetEntity.isEmpty(reportDbConfig)) {
+//            throw new BaseException(ErrorCode.REPORT_DB_CONFIG_FAIL);
+//        }
+//        DataBaseEntity dbe = new DataBaseEntity(reportDbConfig);
+//        Dao reportDao = dbe.getDao();
+//        Set<String> trackingTableSet = QuerySqlParseUtil.getAllTableName(reportDao, dbe.getDbName(), "da_t_wip_tracking");
+//
+//        for (String tableName : trackingTableSet) {
+//            //鑾峰彇骞翠唤浠庤〃鍚嶆渶鍚庝竴涓� 涓嬪垝绾垮紑濮嬫埅鍙�
+//            String year = tableName.substring(tableName.lastIndexOf("_") + 1);
+//            if (!StringUtils.equalsAny(year, "2023") || year.length() > 4) {
+//                continue;
+//            }
+//            //鑾峰彇琛ㄥ墠缂�
+//            String tablePrefix = tableName.substring(0, tableName.lastIndexOf("_"));
+//            ExecutorService executorService = Executors.newFixedThreadPool(12);
+//            for (int i = 1; i <= 12; i++) {
+//                final int finalI = i;
+//                executorService.submit(() -> {
+//                    Dao currentDao = dbe.newDao();
+//                    //鑾峰彇褰撳墠鏈堜唤 浠M鏍煎紡鍖�
+//                    String month = String.format("%02d", finalI);
+//                    //妫�鏌ユ湀浠藉搴旂殑琛ㄦ槸鍚﹀瓨鍦�
+//                    String monthTableName = tablePrefix + "_" + year + month;
+//                    Set<String> allTableName = QuerySqlParseUtil.getAllTableName(reportDao, dbe.getDbName(), tablePrefix + "_" + year + month);
+//                    if (allTableName.size() == 0 || !allTableName.contains(monthTableName)) {
+//                        //鏍规嵁鍘熷琛ㄧ粨鏋勫垱寤烘柊琛�
+//                        String sql = "create table " + monthTableName + " like " + tableName;
+//                        currentDao.executeSql(sql);
+//                        SpringMVCContextHolder.getSystemLogger().info("鍒涘缓琛細" + monthTableName);
+//                    }
+//                    String sql = "INSERT INTO " + monthTableName + " SELECT * FROM " + tableName + " WHERE MONTH(update_date)=" + finalI;
+//                    currentDao.executeSql(sql);
+//                    currentDao.closeConnection();
+//                });
+//
+//            }
+//            executorService.shutdown();
+//            while (true) {
+//                try {
+//                    if (executorService.awaitTermination(5, TimeUnit.SECONDS)) break;
+//                    Thread.sleep(5000);
+//                    SpringMVCContextHolder.getSystemLogger().info("绾跨▼绛夊緟涓�...");
+//                } catch (InterruptedException e) {
+//                    e.printStackTrace();
+//                }
+//
+//            }
+//        }
+//        reportDao.closeConnection();
+    }
 
-		for (String tableName : trackingTableSet) {
-			//鑾峰彇骞翠唤浠庤〃鍚嶆渶鍚庝竴涓� 涓嬪垝绾垮紑濮嬫埅鍙�
-			String year = tableName.substring(tableName.lastIndexOf("_") + 1);
-			if (StringUtils.equalsAny(year, "2017", "2018") || year.length() > 4) {
-				continue;
-			}
-			//鑾峰彇琛ㄥ墠缂�
-			String tablePrefix = tableName.substring(0, tableName.lastIndexOf("_"));
-			ExecutorService executorService = Executors.newFixedThreadPool(12);
-			for (int i = 1; i <= 12; i++) {
-				if ("2023".equals(year) && i > 9) {
-					break;
-				}
-				final int finalI = i;
-				executorService.submit(() -> {
-					Dao currentDao = dbe.newDao();
-					//鑾峰彇褰撳墠鏈堜唤 浠M鏍煎紡鍖�
-					String month = String.format("%02d", finalI);
-					//妫�鏌ユ湀浠藉搴旂殑琛ㄦ槸鍚﹀瓨鍦�
-					String monthTableName = tablePrefix + "_" + year + month;
-					Set<String> allTableName = QuerySqlParseUtil.getAllTableName(reportDao, dbe.getDbName(), tablePrefix + "_" + year + month);
-					if (allTableName.size() == 0 || !allTableName.contains(monthTableName)) {
-						//鏍规嵁鍘熷琛ㄧ粨鏋勫垱寤烘柊琛�
-						String sql = "create table " + monthTableName + " like " + tableName;
-						currentDao.executeSql(sql);
-						SpringMVCContextHolder.getSystemLogger().info("鍒涘缓琛細" + monthTableName);
-					}
-					String sql = "INSERT INTO " + monthTableName + " SELECT * FROM " + tableName + " WHERE MONTH(update_date)=" + finalI;
-					currentDao.executeSql(sql);
-					currentDao.closeConnection();
-				});
+    /**
+     * 鑾峰彇鍘嗗彶鏁版嵁
+     */
+    public void getHistoryData(FieldSetEntity fse) throws BaseException, ExecutionException, InterruptedException {
 
-			}
-			executorService.shutdown();
-			while (true) {
-				try {
-					if (executorService.awaitTermination(5, TimeUnit.SECONDS)) break;
-					Thread.sleep(5000);
-					SpringMVCContextHolder.getSystemLogger().info("绾跨▼绛夊緟涓�...");
-				} catch (InterruptedException e) {
-					e.printStackTrace();
-				}
+        //鏈哄彿
+        String serialNumber = fse.getString("serial_number");
+        SpringMVCContextHolder.getSystemLogger().info("鍑嗗鍥炲啓鏈哄彿鏁版嵁锛�" + serialNumber);
+        if (StringUtils.isEmpty(serialNumber)) {
+            throw new BaseException(ErrorCode.SERIAL_NUMBER_IS_NULL);
+        }
 
-			}
-		}
-		reportDao.closeConnection();
-	}
+        FieldSetEntity fs = getBaseDao().getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_DATA_SYNC_MES, "LENGTH(data_source)>1  limit 1", null, false);
+        if (FieldSetEntity.isEmpty(fs)) {
+            throw new BaseException(ErrorCode.MO_NUMBER_SYNC_DATASOURCE_ERROR);
+        }
+        FieldSetEntity reportDbConfig = getBaseDao().getFieldSetByFilter(CmnConst.PRODUCT_SYS_DATA_SYNC_MANAGER, "SYNC_NAME=?", new Object[]{"鎶ヨ〃鏁版嵁搴�"}, false);
+        if (FieldSetEntity.isEmpty(reportDbConfig)) {
+            throw new BaseException(ErrorCode.REPORT_DB_CONFIG_FAIL);
+        }
+        DataTableEntity dt = getBaseDao().listTable(CmnConst.PRODUCT_SYS_DATA_COLLECT, "upper(source_table) in ('T_WIP_TRACKING','T_WIP_PRODUCT_KEYP','T_WIP_DETAIL','T_PM_PRODUCT_SN') and data_source in (select  uuid from product_sys_data_sync_manager)", new Object[]{}, new Object[]{"uuid,id,data_source,source_table"});
 
-	/**
-	 * 鑾峰彇鍘嗗彶鏁版嵁
-	 */
-	public void getHistoryData(FieldSetEntity fse) throws BaseException, ExecutionException, InterruptedException {
+        Map<String, List<FieldSetEntity>> groupByCollectId = dt.getData().stream().collect(Collectors.groupingBy(item -> item.getString("id")));
+        Map<String, List<FieldSetEntity>> groupBySourceTable = dt.getData().stream().collect(Collectors.groupingBy(item -> item.getString("source_table")));
 
-		//鏈哄彿
-		String serialNumber = fse.getString("serial_number");
-		SpringMVCContextHolder.getSystemLogger().info("鍑嗗鍥炲啓鏈哄彿鏁版嵁锛�" + serialNumber);
-		if (StringUtils.isEmpty(serialNumber)) {
-			throw new BaseException(ErrorCode.SERIAL_NUMBER_IS_NULL);
-		}
+        DataBaseEntity dbe = new DataBaseEntity(reportDbConfig);
+        Dao reportDao = dbe.getDao();
+        String reportDbName = dbe.getDbName();
+        Set<String> trackingTableSet = QuerySqlParseUtil.getAllTableName(reportDao, reportDbName, "da_t_wip_tracking");
+        HistoryEntity trackingData = historyBeforeDispose(getData(reportDao, trackingTableSet, "serial_number",
+                serialNumber, new ErrorCode[]{ErrorCode.TRACKING_TABLE_NOT_EXISTS, ErrorCode.NOT_FOUND_SERIAL_NUMBER}), CmnConst.T_WIP_TRACKING);
 
-		FieldSetEntity fs = getBaseDao().getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_DATA_SYNC_MES, "LENGTH(data_source)>1  limit 1", null, false);
-		if (FieldSetEntity.isEmpty(fs)) {
-			throw new BaseException(ErrorCode.MO_NUMBER_SYNC_DATASOURCE_ERROR);
-		}
-		FieldSetEntity reportDbConfig = getBaseDao().getFieldSetByFilter(CmnConst.PRODUCT_SYS_DATA_SYNC_MANAGER, "SYNC_NAME=?", new Object[]{"鎶ヨ〃鏁版嵁搴�"}, false);
-		if (FieldSetEntity.isEmpty(reportDbConfig)) {
-			throw new BaseException(ErrorCode.REPORT_DB_CONFIG_FAIL);
-		}
-		DataTableEntity dt = getBaseDao().listTable(CmnConst.PRODUCT_SYS_DATA_COLLECT, "upper(source_table) in ('T_WIP_TRACKING','T_WIP_PRODUCT_KEYP','T_WIP_DETAIL','T_PM_PRODUCT_SN') and data_source in (select  uuid from product_sys_data_sync_manager)", new Object[]{}, new Object[]{"uuid,id,data_source,source_table"});
+        Set<String> keypTableSet = QuerySqlParseUtil.getAllTableName(reportDao, reportDbName, "da_t_wip_product_keyp");
+        HistoryEntity keypData = historyBeforeDispose(getData(reportDao, keypTableSet, "pk_product_sn", serialNumber, new ErrorCode[]{ErrorCode.KEYP_TABLE_NOT_EXISTS, ErrorCode.KEYP_DATA_NOT_FOUND}), CmnConst.T_WIP_PRODUCT_KEYP);
 
-		Map<String, List<FieldSetEntity>> groupByCollectId = dt.getData().stream().collect(Collectors.groupingBy(item -> item.getString("id")));
-		Map<String, List<FieldSetEntity>> groupBySourceTable = dt.getData().stream().collect(Collectors.groupingBy(item -> item.getString("source_table")));
-
-		DataBaseEntity dbe = new DataBaseEntity(reportDbConfig);
-		Dao reportDao = dbe.getDao();
-		String reportDbName = dbe.getDbName();
-		Set<String> trackingTableSet = QuerySqlParseUtil.getAllTableName(reportDao, reportDbName, "da_t_wip_tracking");
-		HistoryEntity trackingData = historyBeforeDispose(getData(reportDao, trackingTableSet, "serial_number",
-				serialNumber, new ErrorCode[]{ErrorCode.TRACKING_TABLE_NOT_EXISTS, ErrorCode.NOT_FOUND_SERIAL_NUMBER}), CmnConst.T_WIP_TRACKING);
-
-		Set<String> keypTableSet = QuerySqlParseUtil.getAllTableName(reportDao, reportDbName, "da_t_wip_product_keyp");
-		HistoryEntity keypData = historyBeforeDispose(getData(reportDao, keypTableSet, "pk_product_sn", serialNumber, new ErrorCode[]{ErrorCode.KEYP_TABLE_NOT_EXISTS, ErrorCode.KEYP_DATA_NOT_FOUND}), CmnConst.T_WIP_PRODUCT_KEYP);
-
-		Set<String> detailTableSet = QuerySqlParseUtil.getAllTableName(reportDao, reportDbName, "da_t_wip_detail");
-		HistoryEntity detailData = historyBeforeDispose(getData(reportDao, detailTableSet, "serial_number", serialNumber, new ErrorCode[]{ErrorCode.DETAIL_TABLE_NOT_EXISTS, ErrorCode.DETAIL_DATA_NOT_FOUND}), CmnConst.T_WIP_DETAIL);
+        Set<String> detailTableSet = QuerySqlParseUtil.getAllTableName(reportDao, reportDbName, "da_t_wip_detail");
+        HistoryEntity detailData = historyBeforeDispose(getData(reportDao, detailTableSet, "serial_number", serialNumber, new ErrorCode[]{ErrorCode.DETAIL_TABLE_NOT_EXISTS, ErrorCode.DETAIL_DATA_NOT_FOUND}), CmnConst.T_WIP_DETAIL);
 
 //		Set<String> productSnTableSet = QuerySqlParseUtil.getAllTableName(reportDao, reportDbName, "da_t_pm_product_sn");
 //		HistoryEntity productSnData = historyBeforeDispose(getData(reportDao, productSnTableSet, "product_sn", serialNumber, new ErrorCode[]{ErrorCode.PRODUCT_SN_TABLE_NOT_EXISTS, ErrorCode.PRODUCT_SN_DATA_NOT_FOUND}), CmnConst.T_PM_PRODUCT_SN);
 
 
-		//涓诲簱鏁版嵁婧愰厤缃�
-		String masterDataSource = fs.getString("data_source");
-		dbe = new DataBaseEntity(masterDataSource);
-		Map<String, Dao> groupDao = new HashMap<>();
-		Dao dao = dbe.getDao();
-		boolean success = false;
-		try {
-			Connection connection = dao.getConnection();
-			connection.setAutoCommit(false);
-			HistoryEntity[] historyEntities = {trackingData, keypData, detailData};
-			insertMasterTableData(dao, historyEntities);
-			insertSubTableData(groupDao, groupByCollectId, groupBySourceTable, historyEntities);
-			connection.commit();
-			batchCommit(groupDao);
-			success = true;
-			SpringMVCContextHolder.getSystemLogger().info("鍥炲啓鏈哄彿锛�" + serialNumber + "鎴愬姛");
-		} catch (Exception e) {
-			e.printStackTrace();
-			SpringMVCContextHolder.getSystemLogger().error("鍥炲啓鏈哄彿锛�" + serialNumber + "澶辫触");
-			SpringMVCContextHolder.getSystemLogger().error(e);
-			throw new BaseException(ErrorCode.INSERT_DATA_FAIL);
-		} finally {
-			try {
-				if (!success && !dao.getConnection().getAutoCommit()) {
-					dao.getConnection().rollback();
-				}
-				dao.closeConnection();
-				for (Dao value : groupDao.values()) {
-					try (Connection connection = value.getConnection()) {
-						if (!connection.getAutoCommit()) {
-							connection.rollback();
-						}
-					}
-					value.closeConnection();
+        //涓诲簱鏁版嵁婧愰厤缃�
+        String masterDataSource = fs.getString("data_source");
+        dbe = new DataBaseEntity(masterDataSource);
+        Map<String, Dao> groupDao = new HashMap<>();
+        Dao dao = dbe.getDao();
+        boolean success = false;
+        try {
+            Connection connection = dao.getConnection();
+            connection.setAutoCommit(false);
+            HistoryEntity[] historyEntities = {trackingData, keypData, detailData};
+            insertMasterTableData(dao, historyEntities);
+            insertSubTableData(groupDao, groupByCollectId, groupBySourceTable, historyEntities);
+            connection.commit();
+            batchCommit(groupDao);
+            success = true;
+            SpringMVCContextHolder.getSystemLogger().info("鍥炲啓鏈哄彿锛�" + serialNumber + "鎴愬姛");
+        } catch (Exception e) {
+            e.printStackTrace();
+            SpringMVCContextHolder.getSystemLogger().error("鍥炲啓鏈哄彿锛�" + serialNumber + "澶辫触");
+            SpringMVCContextHolder.getSystemLogger().error(e);
+            throw new BaseException(ErrorCode.INSERT_DATA_FAIL);
+        } finally {
+            try {
+                if (!success && !dao.getConnection().getAutoCommit()) {
+                    dao.getConnection().rollback();
+                }
+                dao.closeConnection();
+                for (Dao value : groupDao.values()) {
+                    try (Connection connection = value.getConnection()) {
+                        if (!connection.getAutoCommit()) {
+                            connection.rollback();
+                        }
+                    }
+                    value.closeConnection();
 
-				}
-			} catch (Exception e) {
-				e.printStackTrace();
-				SpringMVCContextHolder.getSystemLogger().error(e);
-			}
-		}
-	}
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+                SpringMVCContextHolder.getSystemLogger().error(e);
+            }
+        }
+    }
 
-	public void batchCommit(Map<String, Dao> groupDao) throws SQLException {
-		for (Dao value : groupDao.values()) {
-			value.getConnection().commit();
-		}
-	}
+    public void batchCommit(Map<String, Dao> groupDao) throws SQLException {
+        for (Dao value : groupDao.values()) {
+            value.getConnection().commit();
+        }
+    }
 
 
-	/**
-	 * 鎻掑叆鏁版嵁鍒颁富搴�
-	 *
-	 * @param dao
-	 * @param historyEntities
-	 */
-	public void insertMasterTableData(Dao dao, HistoryEntity[] historyEntities) {
-		for (HistoryEntity historyEntity : historyEntities) {
-			if (historyEntity == null) {
-				continue;
-			}
-			DataTableEntity masterDataTable = historyEntity.getMasterDataTable();
-			if (DataTableEntity.isEmpty(masterDataTable)) {
-				continue;
-			}
-			Object[] objects = masterDataTable.getData().stream().map(item -> {
-				String primaryValue = item.getString(historyEntity.getPrimaryField());
-				//鍒ゆ柇鏄惁涓烘暟鍊间笖鍖呭惈灏忔暟鐐� 灏忔暟鐐瑰悗闈㈡槸鍚﹀叏鏄�0
-				if (NumberUtil.isNumber(primaryValue) && primaryValue.contains(".") && primaryValue.substring(primaryValue.
-						indexOf(".") + 1).matches("^0*$")) {
-					//杩斿洖鏁存暟瀛楃涓�
-					return primaryValue.substring(0, primaryValue.indexOf("."));
-				}
-				return primaryValue;
-			}).toArray();
-			//鏌ヨ涓诲簱鏁版嵁鏄惁瀛樺湪
-			DataTableEntity list = dao.getList(historyEntity.getTableName(),
-					BaseUtil.buildQuestionMarkFilter(historyEntity.getPrimaryField(), objects.length, true),
-					new String[]{historyEntity.getPrimaryField()}, objects);
-			List<String> existsPrimaryValues = null;
-			if (!DataTableEntity.isEmpty(list)) {
-				existsPrimaryValues = list.getData().stream().map(item -> item.getString(historyEntity.getPrimaryField())).collect(Collectors.toList());
-			}
-			for (int i = 0; i < masterDataTable.getRows(); i++) {
-				String primaryValue = masterDataTable.getString(i, historyEntity.getPrimaryField());
-				if (existsPrimaryValues != null && existsPrimaryValues.contains(primaryValue)) {
-					//鏁版嵁瀛樺湪璺宠繃璇ユ暟鎹�
-					continue;
-				}
-				FieldSetEntity fieldSetEntity = masterDataTable.getFieldSetEntity(i);
-				fieldSetEntity.getMeta().setTableName(new Object[]{historyEntity.getTableName()});
-				fieldSetEntity.remove("~table_name~");
-				dao.add(fieldSetEntity);
-			}
-		}
-	}
+    /**
+     * 鎻掑叆鏁版嵁鍒颁富搴�
+     *
+     * @param dao
+     * @param historyEntities
+     */
+    public void insertMasterTableData(Dao dao, HistoryEntity[] historyEntities) {
+        for (HistoryEntity historyEntity : historyEntities) {
+            if (historyEntity == null) {
+                continue;
+            }
+            DataTableEntity masterDataTable = historyEntity.getMasterDataTable();
+            if (DataTableEntity.isEmpty(masterDataTable)) {
+                continue;
+            }
+            Object[] objects = masterDataTable.getData().stream().map(item -> {
+                String primaryValue = item.getString(historyEntity.getPrimaryField());
+                //鍒ゆ柇鏄惁涓烘暟鍊间笖鍖呭惈灏忔暟鐐� 灏忔暟鐐瑰悗闈㈡槸鍚﹀叏鏄�0
+                if (NumberUtil.isNumber(primaryValue) && primaryValue.contains(".") && primaryValue.substring(primaryValue.
+                        indexOf(".") + 1).matches("^0*$")) {
+                    //杩斿洖鏁存暟瀛楃涓�
+                    return primaryValue.substring(0, primaryValue.indexOf("."));
+                }
+                return primaryValue;
+            }).toArray();
+            //鏌ヨ涓诲簱鏁版嵁鏄惁瀛樺湪
+            DataTableEntity list = dao.getList(historyEntity.getTableName(),
+                    BaseUtil.buildQuestionMarkFilter(historyEntity.getPrimaryField(), objects.length, true),
+                    new String[]{historyEntity.getPrimaryField()}, objects);
+            List<String> existsPrimaryValues = null;
+            if (!DataTableEntity.isEmpty(list)) {
+                existsPrimaryValues = list.getData().stream().map(item -> item.getString(historyEntity.getPrimaryField())).collect(Collectors.toList());
+            }
+            for (int i = 0; i < masterDataTable.getRows(); i++) {
+                String primaryValue = masterDataTable.getString(i, historyEntity.getPrimaryField());
+                if (existsPrimaryValues != null && existsPrimaryValues.contains(primaryValue)) {
+                    //鏁版嵁瀛樺湪璺宠繃璇ユ暟鎹�
+                    continue;
+                }
+                FieldSetEntity fieldSetEntity = masterDataTable.getFieldSetEntity(i);
+                fieldSetEntity.getMeta().setTableName(new Object[]{historyEntity.getTableName()});
+                fieldSetEntity.remove("~table_name~");
+                dao.add(fieldSetEntity);
+            }
+        }
+    }
 
 
-	/**
-	 * 鎻掑叆瀛愬簱琛ㄦ暟鎹�
-	 *
-	 * @param groupDao           瀛愬簱dao
-	 * @param groupByCollectId   閲囬泦閰嶇疆鎸夐噰闆唅d鍒嗙粍
-	 * @param groupBySourceTable 閲囬泦閰嶇疆鎸夎〃鍚嶅垎缁�
-	 * @param historyEntities    鍘嗗彶鏁版嵁
-	 */
-	public void insertSubTableData(Map<String, Dao> groupDao, Map<String, List<FieldSetEntity>> groupByCollectId,
-								   Map<String, List<FieldSetEntity>> groupBySourceTable, HistoryEntity[] historyEntities) throws Exception {
-		for (HistoryEntity historyEntity : historyEntities) {
-			if (historyEntity == null) {
-				continue;
-			}
-			Map<String, List<FieldSetEntity>> groupData = historyEntity.getGroupData();
-			if (groupData == null || groupData.isEmpty()) {
-				continue;
-			}
-			for (Map.Entry<String, List<FieldSetEntity>> entry : groupData.entrySet()) {
-				List<Dao> daoList = new ArrayList<>();
-				if ("ch-kt".equals(entry.getKey())) {
-					List<FieldSetEntity> fieldSetEntityList = groupBySourceTable.get(historyEntity.getTableName().toLowerCase());
-					Set<String> dataSourceSet = fieldSetEntityList.stream().map(item -> item.getString("data_source")).collect(Collectors.toSet());
-					for (String sourceUuid : dataSourceSet) {
-						daoList.add(getDao(groupDao, sourceUuid));
-					}
-				} else {
-					daoList.add(getDao(groupDao, groupByCollectId.get(entry.getKey()).get(0).getString("data_source")));
-				}
-				for (Dao dao : daoList) {
-					List<FieldSetEntity> value = entry.getValue();
-					//鏌ヨ宸插瓨鍦ㄧ殑鏁版嵁
-					DataTableEntity list = dao.getList(historyEntity.getTableName(),
-							BaseUtil.buildQuestionMarkFilter(historyEntity.getPrimaryField(), value.size(), true),
-							value.stream().map(item -> {
-								String primaryValue = item.getString(historyEntity.getPrimaryField());
-								//鍒ゆ柇鏄惁涓烘暟鍊间笖鍖呭惈灏忔暟鐐� 灏忔暟鐐瑰悗闈㈡槸鍚﹀叏鏄�0
-								if (NumberUtil.isNumber(primaryValue) && primaryValue.contains(".") && primaryValue.substring(primaryValue.
-										indexOf(".") + 1).matches("^0*$")) {
-									//杩斿洖鏁存暟瀛楃涓�
-									return primaryValue.substring(0, primaryValue.indexOf("."));
-								}
-								return primaryValue;
-							}).toArray());
-					List<String> existIds = DataTableEntity.isEmpty(list) ? null : list.getData().stream().map(item -> item.getString(historyEntity.getPrimaryField())).collect(Collectors.toList());
-					for (FieldSetEntity fieldSetEntity : value) {
-						String primaryValue = fieldSetEntity.getString(historyEntity.getPrimaryField());
-						if (existIds != null && existIds.contains(NumberUtil.parseNumber(primaryValue).toString())) {
-							continue;
-						}
-						fieldSetEntity.getMeta().setTableName(new Object[]{historyEntity.getTableName()});
-						fieldSetEntity.remove("~table_name~");
-						dao.add(fieldSetEntity);
-					}
-				}
-			}
-		}
-	}
+    /**
+     * 鎻掑叆瀛愬簱琛ㄦ暟鎹�
+     *
+     * @param groupDao           瀛愬簱dao
+     * @param groupByCollectId   閲囬泦閰嶇疆鎸夐噰闆唅d鍒嗙粍
+     * @param groupBySourceTable 閲囬泦閰嶇疆鎸夎〃鍚嶅垎缁�
+     * @param historyEntities    鍘嗗彶鏁版嵁
+     */
+    public void insertSubTableData(Map<String, Dao> groupDao, Map<String, List<FieldSetEntity>> groupByCollectId,
+                                   Map<String, List<FieldSetEntity>> groupBySourceTable, HistoryEntity[] historyEntities) throws Exception {
+        for (HistoryEntity historyEntity : historyEntities) {
+            if (historyEntity == null) {
+                continue;
+            }
+            Map<String, List<FieldSetEntity>> groupData = historyEntity.getGroupData();
+            if (groupData == null || groupData.isEmpty()) {
+                continue;
+            }
+            for (Map.Entry<String, List<FieldSetEntity>> entry : groupData.entrySet()) {
+                List<Dao> daoList = new ArrayList<>();
+                if ("ch-kt".equals(entry.getKey())) {
+                    List<FieldSetEntity> fieldSetEntityList = groupBySourceTable.get(historyEntity.getTableName().toLowerCase());
+                    Set<String> dataSourceSet = fieldSetEntityList.stream().map(item -> item.getString("data_source")).collect(Collectors.toSet());
+                    for (String sourceUuid : dataSourceSet) {
+                        daoList.add(getDao(groupDao, sourceUuid));
+                    }
+                } else {
+                    daoList.add(getDao(groupDao, groupByCollectId.get(entry.getKey()).get(0).getString("data_source")));
+                }
+                for (Dao dao : daoList) {
+                    List<FieldSetEntity> value = entry.getValue();
+                    //鏌ヨ宸插瓨鍦ㄧ殑鏁版嵁
+                    DataTableEntity list = dao.getList(historyEntity.getTableName(),
+                            BaseUtil.buildQuestionMarkFilter(historyEntity.getPrimaryField(), value.size(), true),
+                            value.stream().map(item -> {
+                                String primaryValue = item.getString(historyEntity.getPrimaryField());
+                                //鍒ゆ柇鏄惁涓烘暟鍊间笖鍖呭惈灏忔暟鐐� 灏忔暟鐐瑰悗闈㈡槸鍚﹀叏鏄�0
+                                if (NumberUtil.isNumber(primaryValue) && primaryValue.contains(".") && primaryValue.substring(primaryValue.
+                                        indexOf(".") + 1).matches("^0*$")) {
+                                    //杩斿洖鏁存暟瀛楃涓�
+                                    return primaryValue.substring(0, primaryValue.indexOf("."));
+                                }
+                                return primaryValue;
+                            }).toArray());
+                    List<String> existIds = DataTableEntity.isEmpty(list) ? null : list.getData().stream().map(item -> item.getString(historyEntity.getPrimaryField())).collect(Collectors.toList());
+                    for (FieldSetEntity fieldSetEntity : value) {
+                        String primaryValue = fieldSetEntity.getString(historyEntity.getPrimaryField());
+                        if (existIds != null && existIds.contains(NumberUtil.parseNumber(primaryValue).toString())) {
+                            continue;
+                        }
+                        fieldSetEntity.getMeta().setTableName(new Object[]{historyEntity.getTableName()});
+                        fieldSetEntity.remove("~table_name~");
+                        dao.add(fieldSetEntity);
+                    }
+                }
+            }
+        }
+    }
 
-	public Dao getDao(Map<String, Dao> groupDao, String sourceUuid) throws Exception {
-		Dao dao = groupDao.get(sourceUuid);
-		if (null == dao) {
-			DataBaseEntity dbe = new DataBaseEntity(sourceUuid);
-			dao = dbe.getDao();
-			dao.getConnection().setAutoCommit(false);
-			groupDao.put(sourceUuid, dao);
-		}
-		return dao;
-	}
+    public Dao getDao(Map<String, Dao> groupDao, String sourceUuid) throws Exception {
+        Dao dao = groupDao.get(sourceUuid);
+        if (null == dao) {
+            DataBaseEntity dbe = new DataBaseEntity(sourceUuid);
+            dao = dbe.getDao();
+            dao.getConnection().setAutoCommit(false);
+            groupDao.put(sourceUuid, dao);
+        }
+        return dao;
+    }
 
-	public HistoryEntity historyBeforeDispose(DataTableEntity dt, String targetTableName) {
-		if (DataTableEntity.isEmpty(dt)) {
-			return null;
-		}
-		HistoryEntity historyEntity = new HistoryEntity();
-		historyEntity.setMoNumberField("mo_number");
-		if (CmnConst.T_WIP_TRACKING.equalsIgnoreCase(targetTableName)) {
-			historyEntity.setPrimaryField("wip_id");
-			historyEntity.setTimeField("update_date");
-		} else if (CmnConst.T_WIP_PRODUCT_KEYP.equalsIgnoreCase(targetTableName)) {
-			historyEntity.setPrimaryField("pk_id");
-			historyEntity.setTimeField("pk_loadtime");
+    public HistoryEntity historyBeforeDispose(DataTableEntity dt, String targetTableName) {
+        if (DataTableEntity.isEmpty(dt)) {
+            return null;
+        }
+        HistoryEntity historyEntity = new HistoryEntity();
+        historyEntity.setMoNumberField("mo_number");
+        if (CmnConst.T_WIP_TRACKING.equalsIgnoreCase(targetTableName)) {
+            historyEntity.setPrimaryField("wip_id");
+            historyEntity.setTimeField("update_date");
+        } else if (CmnConst.T_WIP_PRODUCT_KEYP.equalsIgnoreCase(targetTableName)) {
+            historyEntity.setPrimaryField("pk_id");
+            historyEntity.setTimeField("pk_loadtime");
 
-			historyEntity.setMoNumberField("pk_mo");
-		} else if (CmnConst.T_WIP_DETAIL.equalsIgnoreCase(targetTableName)) {
-			historyEntity.setPrimaryField("wip_detail_id");
-			historyEntity.setTimeField("update_date");
-		} else if (CmnConst.T_PM_PRODUCT_SN.equalsIgnoreCase(targetTableName)) {
-			historyEntity.setPrimaryField("row_id");
-			historyEntity.setTimeField("update_date");
-		} else {
-			return null;
-		}
-		historyEntity.setTableName(targetTableName.toUpperCase());
-		Date now = new Date();
-		for (int i = 0; i < dt.getRows(); i++) {
-			Map<Object, Object> values = dt.getFieldSetEntity(i).getValues();
-			//閬嶅巻map涓殑value鏄惁涓烘暟瀛楋紝濡傛灉鏄暟瀛楀垽鏂皬鏁扮偣鍚庨潰鏄惁鏈夊�硷紝濡傛灉娌℃湁鍊煎垯杞崲涓烘暣鏁�
-			for (Map.Entry<Object, Object> entry : values.entrySet()) {
-				if (entry.getValue() instanceof Number) {
-					Number number = (Number) entry.getValue();
-					if (number.doubleValue() == number.intValue()) {
-						entry.setValue(number.intValue());
-					}
-				}
-			}
-		}
-		if (CmnConst.T_WIP_TRACKING.equalsIgnoreCase(targetTableName) && dt.getRows() > 1) {
-			List<FieldSetEntity> data = dt.getData();
-			FieldSetEntity newData = null;
-			for (int i = 0; i < data.size(); i++) {
-				FieldSetEntity fieldSetEntity = data.get(i);
-				if ("ch-kt".equals(fieldSetEntity.getValue("pre_master_key"))) {
-					data.remove(i);
-					dt.removeFieldSetEntity(i);
-					break;
-				} else if (newData == null) {
-					newData = fieldSetEntity;
-					continue;
-				}
+            historyEntity.setMoNumberField("pk_mo");
+        } else if (CmnConst.T_WIP_DETAIL.equalsIgnoreCase(targetTableName)) {
+            historyEntity.setPrimaryField("wip_detail_id");
+            historyEntity.setTimeField("update_date");
+        } else if (CmnConst.T_PM_PRODUCT_SN.equalsIgnoreCase(targetTableName)) {
+            historyEntity.setPrimaryField("row_id");
+            historyEntity.setTimeField("update_date");
+        } else {
+            return null;
+        }
+        historyEntity.setTableName(targetTableName.toUpperCase());
+        Date now = new Date();
+        for (int i = 0; i < dt.getRows(); i++) {
+            Map<Object, Object> values = dt.getFieldSetEntity(i).getValues();
+            //閬嶅巻map涓殑value鏄惁涓烘暟瀛楋紝濡傛灉鏄暟瀛楀垽鏂皬鏁扮偣鍚庨潰鏄惁鏈夊�硷紝濡傛灉娌℃湁鍊煎垯杞崲涓烘暣鏁�
+            for (Map.Entry<Object, Object> entry : values.entrySet()) {
+                if (entry.getValue() instanceof Number) {
+                    Number number = (Number) entry.getValue();
+                    if (number.doubleValue() == number.intValue()) {
+                        entry.setValue(number.intValue());
+                    }
+                }
+            }
+        }
+        if (CmnConst.T_WIP_TRACKING.equalsIgnoreCase(targetTableName) && dt.getRows() > 1) {
+            List<FieldSetEntity> data = dt.getData();
+            FieldSetEntity newData = null;
+            for (int i = 0; i < data.size(); i++) {
+                FieldSetEntity fieldSetEntity = data.get(i);
+                if ("ch-kt".equals(fieldSetEntity.getValue("pre_master_key"))) {
+                    data.remove(i);
+                    dt.removeFieldSetEntity(i);
+                    break;
+                } else if (newData == null) {
+                    newData = fieldSetEntity;
+                    continue;
+                }
 
-				Date date = fieldSetEntity.getDate(historyEntity.getTimeField());
-				if (date.getTime() > newData.getDate(historyEntity.getTimeField()).getTime()) {
-					newData = fieldSetEntity;
-				}
-			}
-			if (newData != null) {
-				dt = new DataTableEntity();
-				dt.addFieldSetEntity(newData);
-			}
-			//鍦╨ist涓彇鍑烘椂闂存渶杩戠殑鏁版嵁
-			Optional<FieldSetEntity> max = data.stream().max(Comparator.comparing((a) -> a.getDate(historyEntity.getTimeField()).getTime()));
+                Date date = fieldSetEntity.getDate(historyEntity.getTimeField());
+                if (date.getTime() > newData.getDate(historyEntity.getTimeField()).getTime()) {
+                    newData = fieldSetEntity;
+                }
+            }
+            if (newData != null) {
+                dt = new DataTableEntity();
+                dt.addFieldSetEntity(newData);
+            }
+        }
+        DataTableEntity subData = dt.clones();
+        DataTableEntity masterData = dt.clones();
+        for (int i = 0; i < subData.getRows(); i++) {
+            FieldSetEntity fs = subData.getFieldSetEntity(i);
+            String preMasterKey = fs.getString("pre_master_key");
+            if (historyEntity.getPrimaryField().equals(preMasterKey)) {
+                preMasterKey = null;
 
-		}
-		DataTableEntity subData = dt.clones();
-		DataTableEntity masterData = dt.clones();
-		for (int i = 0; i < subData.getRows(); i++) {
-			FieldSetEntity fs = subData.getFieldSetEntity(i);
-			String preMasterKey = fs.getString("pre_master_key");
-			if (historyEntity.getPrimaryField().equals(preMasterKey)) {
-				preMasterKey = null;
-			}
-			if ("ch-kt".equals(fs.getString("source_info")) && StringUtils.isEmpty(preMasterKey)) {
-				preMasterKey = fs.getString(historyEntity.getPrimaryField());
-			}
-			fs.setValue(historyEntity.getPrimaryField(), preMasterKey);
-			fs.setValue("pre_master_key", preMasterKey);
-			masterData.setFieldValue(i, historyEntity.getTimeField(), now);
-			fs.setValue(historyEntity.getTimeField(), now);
-			fs.remove("~table_name~");
-			masterData.getFieldSetEntity(i).remove("~table_name~");
-			masterData.setFieldValue(i, "pre_master_key", null);
-			if (StringUtils.isEmpty(historyEntity.getPrimaryField())) {
-				subData.removeFieldSetEntity(i);
-				masterData.removeFieldSetEntity(i);
-				i--;
-			}
-		}
-		historyEntity.setArchivedDataTable(dt);
-		historyEntity.setMasterDataTable(masterData);
-		historyEntity.setSubDataTable(subData);
-		return historyEntity;
-	}
+            }
+            if ("ch-kt".equals(fs.getString("source_info")) && StringUtils.isEmpty(preMasterKey)) {
+                preMasterKey = fs.getString(historyEntity.getPrimaryField());
+                masterData.setFieldValue(i, "pre_master_key", masterData.getObject(i, historyEntity.getPrimaryField()));
+            }
+            fs.setValue(historyEntity.getPrimaryField(), preMasterKey);
+            fs.setValue("pre_master_key", null);
+            masterData.setFieldValue(i, historyEntity.getTimeField(), now);
+            fs.setValue(historyEntity.getTimeField(), now);
+            fs.remove("~table_name~");
+            masterData.getFieldSetEntity(i).remove("~table_name~");
+            if (StringUtils.isEmpty(preMasterKey)) {
+                masterData.setFieldValue(i, "pre_master_key", masterData.getObject(i, historyEntity.getPrimaryField()));
+            }
+            if (StringUtils.isEmpty(historyEntity.getPrimaryField())) {
+                subData.removeFieldSetEntity(i);
+                masterData.removeFieldSetEntity(i);
+                i--;
+            }
+        }
+        historyEntity.setArchivedDataTable(dt);
+        historyEntity.setMasterDataTable(masterData);
+        historyEntity.setSubDataTable(subData);
+        return historyEntity;
+    }
 
-	public DataTableEntity getData(Dao dao, Set<String> tableSet, String filterFieldName, String
-			serialNumber, ErrorCode[] errorCodes) throws InterruptedException, ExecutionException {
-		if (CollectionUtil.isEmpty(tableSet)) {
-			throw new BaseException(errorCodes[0]);
-		}
-		String[] tableArray = tableSet.toArray(new String[]{});
-		CompletionService<DataTableEntity> objectCompletionService = ThreadUtil.newCompletionService();
-		//澶氱嚎绋嬫煡璇㈠崟寮犺〃锛岀瓑寰呮墍鏈夌嚎绋嬫煡璇㈠畬姣�
-		for (String tableName : tableArray) {
-			objectCompletionService.submit(() -> dao.getList("select a.*,'" + tableName + "' as '~table_name~'  from " + tableName + " a where " + filterFieldName + " = ?", new Object[]{serialNumber}));
-		}
-		DataTableEntity data = new DataTableEntity();
-		for (int i = 0; i < tableArray.length; i++) {
-			DataTableEntity dataTableEntity = objectCompletionService.take().get();
-			BaseUtil.dataTableMerge(data, dataTableEntity);
-		}
-		return data;
-	}
+    public DataTableEntity getData(Dao dao, Set<String> tableSet, String filterFieldName, String
+            serialNumber, ErrorCode[] errorCodes) throws InterruptedException, ExecutionException {
+        if (CollectionUtil.isEmpty(tableSet)) {
+            throw new BaseException(errorCodes[0]);
+        }
+        String[] tableArray = tableSet.toArray(new String[]{});
+        StringBuilder sql = new StringBuilder();
+        for (String tableName : tableArray) {
+            if (sql.length() > 0) {
+                sql.append(" union all ");
+            }
+            sql.append("select a.*,'" + tableName + "' as '~table_name~'  from " + tableName + " a where " + filterFieldName + " = ?");
+        }
+        DataTableEntity data = dao.getList(sql.toString(), Arrays.stream(tableArray).map((t) -> serialNumber).toArray());
+//        CompletionService<DataTableEntity> objectCompletionService = ThreadUtil.newCompletionService();
+//        //澶氱嚎绋嬫煡璇㈠崟寮犺〃锛岀瓑寰呮墍鏈夌嚎绋嬫煡璇㈠畬姣�
+//        for (String tableName : tableArray) {
+//            objectCompletionService.submit(() -> {
+//                DataTableEntity list = dao.getList("select a.*,'" + tableName + "' as '~table_name~'  from " + tableName + " a where " + filterFieldName + " = ?", new Object[]{serialNumber});
+//                return list;
+//            });
+//        }
+//        DataTableEntity data = new DataTableEntity();
+//        for (int i = 0; i < tableArray.length; i++) {
+//            DataTableEntity dataTableEntity = objectCompletionService.take().get();
+//            BaseUtil.dataTableMerge(data, dataTableEntity);
+//        }
+        if (DataTableEntity.isEmpty(data) && !"product_sn".equals(filterFieldName)) {
+            throw new BaseException(errorCodes[1]);
+        }
+        return data;
+    }
 
 
-	/**
-	 * 鍒濆鍖栧埗浠ゅ崟
-	 *
-	 * @param moNumbers
-	 * @throws BaseException
-	 */
-	public void initMoBase(String[] moNumbers) throws BaseException {
-		FieldSetEntity fs = getBaseDao().getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_DATA_SYNC_MES, "LENGTH(data_source)>1  limit 1", null, false);
-		if (FieldSetEntity.isEmpty(fs)) {
-			throw new BaseException(ErrorCode.MO_NUMBER_SYNC_DATASOURCE_ERROR);
-		}
+    /**
+     * 鍒濆鍖栧埗浠ゅ崟
+     *
+     * @param moNumbers
+     * @throws BaseException
+     */
+    public void initMoBase(String[] moNumbers) throws BaseException {
+        FieldSetEntity fs = getBaseDao().getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_DATA_SYNC_MES, "LENGTH(data_source)>1  limit 1", null, false);
+        if (FieldSetEntity.isEmpty(fs)) {
+            throw new BaseException(ErrorCode.MO_NUMBER_SYNC_DATASOURCE_ERROR);
+        }
 
-		String[] targetDataSource = fs.getString("target_data_source").split(",");
+        String[] targetDataSource = fs.getString("target_data_source").split(",");
 
-		Dao[] targetDao = Arrays.stream(targetDataSource).map(item -> new DataBaseEntity(item).getDao()).toArray(Dao[]::new);
-		StringBuilder errorMsg = new StringBuilder();
-		for (Dao dao : targetDao) {
-			for (String moNumber : moNumbers) {
-				synchronized (moNumber.intern()) {
-					try (Connection connection = dao.getConnection();
-						 CallableStatement callableStatement = connection.prepareCall(
-								 "{CALL SMT_T_PM_MO_BASE(?,?,?,?,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,?,null,null" +
-										 ",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null)}")) {
-						callableStatement.setInt(1, 5);
-						callableStatement.registerOutParameter(2, OracleTypes.SMALLINT);
-						callableStatement.registerOutParameter(3, OracleTypes.VARCHAR);
-						callableStatement.setString(4, moNumber);
-						callableStatement.setString(5, "1");
-						callableStatement.execute();
-						//鎵ц鍚庤繑鍥炵殑閿欒鐮�
-						int errorCode = callableStatement.getInt(2);
-						//鎵ц鍚庤繑鍥炵殑閿欒淇℃伅
-						String errorText = callableStatement.getString(3);
-						if (errorCode != 0) {
-							//閿欒鐨�
-							errorMsg.append("鍒朵护鍗曞彿:").append(moNumber);
-							errorMsg.append("\nerrorCode锛�").append(errorCode);
-							errorMsg.append("\nerrorText:").append(errorText);
-						}
-					} catch (Exception e) {
-						SpringMVCContextHolder.getSystemLogger().error(e);
-						e.printStackTrace();
-						errorMsg.append("鍒朵护鍗曞彿:").append(moNumber);
-						errorMsg.append("\n鎵ц鏃舵湭鐭ラ敊璇細").append(e.getMessage());
-					}
-				}
-			}
-		}
-		if (errorMsg.length() > 0) {
-			throw new BaseException(ErrorCode.SUB_MO_BASE_INI_FAIL.getValue(), ErrorCode.SUB_MO_BASE_INI_FAIL.getText() + "銆俓n" + errorMsg);
-		}
-	}
+        Dao[] targetDao = Arrays.stream(targetDataSource).map(item -> new DataBaseEntity(item).getDao()).toArray(Dao[]::new);
+        StringBuilder errorMsg = new StringBuilder();
+        for (Dao dao : targetDao) {
+            for (String moNumber : moNumbers) {
+                synchronized (moNumber.intern()) {
+                    try (Connection connection = dao.getConnection();
+                         CallableStatement callableStatement = connection.prepareCall(
+                                 "{CALL SMT_T_PM_MO_BASE(?,?,?,?,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,?,null,null" +
+                                         ",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null)}")) {
+                        callableStatement.setInt(1, 5);
+                        callableStatement.registerOutParameter(2, OracleTypes.SMALLINT);
+                        callableStatement.registerOutParameter(3, OracleTypes.VARCHAR);
+                        callableStatement.setString(4, moNumber);
+                        callableStatement.setString(5, "1");
+                        callableStatement.execute();
+                        //鎵ц鍚庤繑鍥炵殑閿欒鐮�
+                        int errorCode = callableStatement.getInt(2);
+                        //鎵ц鍚庤繑鍥炵殑閿欒淇℃伅
+                        String errorText = callableStatement.getString(3);
+                        if (errorCode != 0) {
+                            //閿欒鐨�
+                            errorMsg.append("鍒朵护鍗曞彿:").append(moNumber);
+                            errorMsg.append("\nerrorCode锛�").append(errorCode);
+                            errorMsg.append("\nerrorText:").append(errorText);
+                        }
+                    } catch (Exception e) {
+                        SpringMVCContextHolder.getSystemLogger().error(e);
+                        e.printStackTrace();
+                        errorMsg.append("鍒朵护鍗曞彿:").append(moNumber);
+                        errorMsg.append("\n鎵ц鏃舵湭鐭ラ敊璇細").append(e.getMessage());
+                    }
+                }
+            }
+        }
+        if (errorMsg.length() > 0) {
+            throw new BaseException(ErrorCode.SUB_MO_BASE_INI_FAIL.getValue(), ErrorCode.SUB_MO_BASE_INI_FAIL.getText() + "銆俓n" + errorMsg);
+        }
+    }
 
-	/**
-	 * @param moNumbers 鍒朵护鍗曞彿,澶氫釜閫楀彿鍒嗛殧
-	 * @param type      鎿嶄綔绫诲瀷 1 鍒涘缓鍒朵护鍗� 2 鏇存柊鍒朵护鍗曚腑鐨勬寚瀹氬瓧娈�
-	 * @throws BaseException
-	 */
-	public void updateMoBase(String[] moNumbers, int type) throws BaseException {
-		FieldSetEntity fs = getBaseDao().getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_DATA_SYNC_MES, "LENGTH(data_source)>1  limit 1", null, false);
-		if (FieldSetEntity.isEmpty(fs)) {
-			throw new BaseException(ErrorCode.MO_NUMBER_SYNC_DATASOURCE_ERROR);
-		}
-		String dataSource = fs.getString("data_source");
-		String[] targetDataSource = fs.getString("target_data_source").split(",");
-		StringBuilder errorMessage = new StringBuilder();
-		DataBaseEntity dbe = new DataBaseEntity(dataSource);
-		for (int i = 0; i < moNumbers.length; i++) {
-			String moNumber = moNumbers[i];
-			try {
-				synchronized (moNumber.intern()) {
-					Dao dao = dbe.getDao();
-					FieldSetEntity one = dao.getOne("T_PM_MO_BASE", "MO_NUMBER=?", new Object[]{moNumber});
-					if (FieldSetEntity.isEmpty(one)) {
-						throw new BaseException(ErrorCode.MO_NUMBER_RECORD_SELECT_EMPTY);
-					}
-					one.setTableName("T_PM_MO_BASE");
-					dao.closeConnection();
-					Dao[] targetDao = Arrays.stream(targetDataSource).map(item -> new DataBaseEntity(item).getDao()).toArray(Dao[]::new);
-					StringBuilder errorMsg = new StringBuilder();
-					try {
-						if (1 == type) {
-							createMoBase(errorMsg, one, targetDao);
-						} else if (2 == type) {
-							updateMoBase(errorMsg, one, targetDao);
-						}
-						if (errorMsg.length() > 0) {
-							//鏈夐敊璇�
-							throw new BaseException(ErrorCode.SUB_MO_BASE_CREATE_OR_UPDATE_FAIL.getValue(), ErrorCode.SUB_MO_BASE_CREATE_OR_UPDATE_FAIL.getText() + "銆俓n" + errorMsg);
-						}
-					} finally {
-						for (Dao dao1 : targetDao) {
-							dao1.closeConnection();
-						}
-					}
-				}
-			} catch (Exception e) {
-				e.printStackTrace();
-				SpringMVCContextHolder.getSystemLogger().error(e);
-				errorMessage.append(e.getMessage()).append("\n");
-			}
+    /**
+     * @param moNumbers 鍒朵护鍗曞彿,澶氫釜閫楀彿鍒嗛殧
+     * @param type      鎿嶄綔绫诲瀷 1 鍒涘缓鍒朵护鍗� 2 鏇存柊鍒朵护鍗曚腑鐨勬寚瀹氬瓧娈�
+     * @throws BaseException
+     */
+    public void updateMoBase(String[] moNumbers, int type) throws BaseException {
+        FieldSetEntity fs = getBaseDao().getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_DATA_SYNC_MES, "LENGTH(data_source)>1  limit 1", null, false);
+        if (FieldSetEntity.isEmpty(fs)) {
+            throw new BaseException(ErrorCode.MO_NUMBER_SYNC_DATASOURCE_ERROR);
+        }
+        String dataSource = fs.getString("data_source");
+        String[] targetDataSource = fs.getString("target_data_source").split(",");
+        StringBuilder errorMessage = new StringBuilder();
+        DataBaseEntity dbe = new DataBaseEntity(dataSource);
+        for (int i = 0; i < moNumbers.length; i++) {
+            String moNumber = moNumbers[i];
+            try {
+                synchronized (moNumber.intern()) {
+                    Dao dao = dbe.getDao();
+                    FieldSetEntity one = dao.getOne("T_PM_MO_BASE", "MO_NUMBER=?", new Object[]{moNumber});
+                    if (FieldSetEntity.isEmpty(one)) {
+                        throw new BaseException(ErrorCode.MO_NUMBER_RECORD_SELECT_EMPTY);
+                    }
+                    one.setTableName("T_PM_MO_BASE");
+                    dao.closeConnection();
+                    Dao[] targetDao = Arrays.stream(targetDataSource).map(item -> new DataBaseEntity(item).getDao()).toArray(Dao[]::new);
+                    StringBuilder errorMsg = new StringBuilder();
+                    try {
+                        if (1 == type) {
+                            createMoBase(errorMsg, one, targetDao);
+                        } else if (2 == type) {
+                            updateMoBase(errorMsg, one, targetDao);
+                        }
+                        if (errorMsg.length() > 0) {
+                            //鏈夐敊璇�
+                            throw new BaseException(ErrorCode.SUB_MO_BASE_CREATE_OR_UPDATE_FAIL.getValue(), ErrorCode.SUB_MO_BASE_CREATE_OR_UPDATE_FAIL.getText() + "銆俓n" + errorMsg);
+                        }
+                    } finally {
+                        for (Dao dao1 : targetDao) {
+                            dao1.closeConnection();
+                        }
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+                SpringMVCContextHolder.getSystemLogger().error(e);
+                errorMessage.append(e.getMessage()).append("\n");
+            }
 
-		}
-		if (errorMessage.length() > 0) {
-			throw new BaseException(ErrorCode.SUB_MO_BASE_CREATE_OR_UPDATE_FAIL.getValue(), ErrorCode.SUB_MO_BASE_CREATE_OR_UPDATE_FAIL.getText() + "銆俓n" + errorMessage);
-		}
-	}
+        }
+        if (errorMessage.length() > 0) {
+            throw new BaseException(ErrorCode.SUB_MO_BASE_CREATE_OR_UPDATE_FAIL.getValue(), ErrorCode.SUB_MO_BASE_CREATE_OR_UPDATE_FAIL.getText() + "銆俓n" + errorMessage);
+        }
+    }
 
-	/**
-	 * 鍒涘缓鍒朵护鍗�
-	 *
-	 * @param errorMsg
-	 * @param moBase
-	 * @param subDao
-	 */
-	private void createMoBase(StringBuilder errorMsg, FieldSetEntity moBase, Dao[] subDao) {
-		String moNumber = moBase.getString("mo_number");
-		for (int i = 0; i < subDao.length; i++) {
-			Dao dao = subDao[i];
-			try {
-				//妫�鏌ュ伐鍗曡〃鏄惁瀛樺湪
-				FieldSetEntity projectBase = dao.getOne("T_PM_PROJECT_BASE", "PROJECT_ID = ? ", new Object[]{moNumber});
-				if (FieldSetEntity.isEmpty(projectBase)) {
-					throw new BaseException(ErrorCode.SUB_PROJECT_BASE_CAN_NOT_EMPTY);
-				}
-				//妫�鏌ュ埗浠ゅ崟琛ㄦ槸鍚﹀凡瀛樺湪
-				FieldSetEntity fs = dao.getOne(moBase.getTableName(), "mo_number = ? ", new Object[]{moNumber});
-				if (!FieldSetEntity.isEmpty(fs)) {
-					//杩涜鏇存柊鎿嶄綔
-					updateMoBase(errorMsg, moBase, new Dao[]{dao});
-					continue;
-				}
-				//灏� T_PM_MO_BASE.PROJECT_ID 鏇存敼涓哄瓙搴撲腑瀵瑰簲 T_PM_PROJECT_BASE.PROJECT_BASE_ID
-				moBase.setValue("project_id", projectBase.getString("project_base_id"));
+    /**
+     * 鍒涘缓鍒朵护鍗�
+     *
+     * @param errorMsg
+     * @param moBase
+     * @param subDao
+     */
+    private void createMoBase(StringBuilder errorMsg, FieldSetEntity moBase, Dao[] subDao) {
+        String moNumber = moBase.getString("mo_number");
+        for (int i = 0; i < subDao.length; i++) {
+            Dao dao = subDao[i];
+            try {
+                //妫�鏌ュ伐鍗曡〃鏄惁瀛樺湪
+                FieldSetEntity projectBase = dao.getOne("T_PM_PROJECT_BASE", "PROJECT_ID = ? ", new Object[]{moNumber});
+                if (FieldSetEntity.isEmpty(projectBase)) {
+                    throw new BaseException(ErrorCode.SUB_PROJECT_BASE_CAN_NOT_EMPTY);
+                }
+                //妫�鏌ュ埗浠ゅ崟琛ㄦ槸鍚﹀凡瀛樺湪
+                FieldSetEntity fs = dao.getOne(moBase.getTableName(), "mo_number = ? ", new Object[]{moNumber});
+                if (!FieldSetEntity.isEmpty(fs)) {
+                    //杩涜鏇存柊鎿嶄綔
+                    updateMoBase(errorMsg, moBase, new Dao[]{dao});
+                    continue;
+                }
+                //灏� T_PM_MO_BASE.PROJECT_ID 鏇存敼涓哄瓙搴撲腑瀵瑰簲 T_PM_PROJECT_BASE.PROJECT_BASE_ID
+                moBase.setValue("project_id", projectBase.getString("project_base_id"));
 //                moBase.setValue("row_id", -1);
-				dao.add(moBase);
-			} catch (BaseException e) {
-				errorMsg.append("鍒朵护鍗曞彿锛歔 " + moNumber + " ]IP:[").append(getIp(dao)).
-						append("]").append(e.getMessageInfo());
-				e.printStackTrace();
-				SpringMVCContextHolder.getSystemLogger().error(e);
-			} catch (Exception e) {
-				errorMsg.append("鍒朵护鍗曞彿锛歔 " + moNumber + " ]IP:[").append(getIp(dao)).append("]").append("鍒涘缓鍒朵护鍗曞け璐ワ紝鏈煡鐨勯敊璇�");
-				e.printStackTrace();
-				SpringMVCContextHolder.getSystemLogger().error(e);
-			}
-		}
-	}
+                dao.add(moBase);
+            } catch (BaseException e) {
+                errorMsg.append("鍒朵护鍗曞彿锛歔 " + moNumber + " ]IP:[").append(getIp(dao)).
+                        append("]").append(e.getMessageInfo());
+                e.printStackTrace();
+                SpringMVCContextHolder.getSystemLogger().error(e);
+            } catch (Exception e) {
+                errorMsg.append("鍒朵护鍗曞彿锛歔 " + moNumber + " ]IP:[").append(getIp(dao)).append("]").append("鍒涘缓鍒朵护鍗曞け璐ワ紝鏈煡鐨勯敊璇�");
+                e.printStackTrace();
+                SpringMVCContextHolder.getSystemLogger().error(e);
+            }
+        }
+    }
 
-	/**
-	 * 鏇存柊鍒朵护鍗�
-	 *
-	 * @param errorMsg
-	 * @param moBase
-	 * @param subDao
-	 */
-	private void updateMoBase(StringBuilder errorMsg, FieldSetEntity moBase, Dao[] subDao) {
-		String moNumber = moBase.getString("mo_number");
-		for (int i = 0; i < subDao.length; i++) {
-			Dao dao = subDao[i];
-			try {
-				//妫�鏌ュ埗浠ゅ崟琛ㄦ槸鍚﹀凡瀛樺湪
-				FieldSetEntity fs = dao.getOne(moBase.getTableName(), "mo_number = ? ", new Object[]{moNumber});
-				if (FieldSetEntity.isEmpty(fs)) {
-					//杩涜鍒涘缓鎿嶄綔
-					createMoBase(errorMsg, moBase, new Dao[]{dao});
-					continue;
-				}
-				// 褰撳瓙搴撲腑鍒朵护鍗� input_qty 瀛楁涓� 0 鎴栬�� 涓� null 鏃� 鏇存柊澶氫釜瀛楁锛屽惁鍒欏彧鏇存柊target_qty 瀛楁
-				String[] updateField = StringUtils.isEmpty(fs.getString("input_qty")) || "0".equals(fs.getString("input_qty")) ?
-						new String[]{"target_qty", "owner", "mo_create_date", "mo_schedule_date", "mo_due_date", "areaid", "technicsid", "close_flag", "default_group", "end_group"}
-						: new String[]{"target_qty"};
-				StringBuilder sql = new StringBuilder();
-				sql.append(" UPDATE T_PM_MO_BASE SET ");
-				Object[] params = new Object[updateField.length + 1];
-				for (int k = 0; k < updateField.length; k++) {
-					if (k > 0) {
-						sql.append(",");
-					}
-					params[k] = moBase.getObject(updateField[k]);
-					sql.append(updateField[k].toUpperCase()).append(" = ? ");
-				}
-				params[updateField.length] = moNumber;
-				sql.append(" WHERE MO_NUMBER = ?  ");
-				dao.executeSql(sql.toString(), params);
-			} catch (BaseException e) {
-				errorMsg.append("鍒朵护鍗曞彿锛歔 " + moNumber + " ]IP:[").append(getIp(dao)).
-						append("]").append(e.getMessageInfo());
-				e.printStackTrace();
-				SpringMVCContextHolder.getSystemLogger().error(e);
-			} catch (Exception e) {
-				errorMsg.append("鍒朵护鍗曞彿锛歔 " + moNumber + " ]IP:[").append(getIp(dao)).append("]").append("鏇存柊鍒朵护鍗曞け璐ワ紝鏈煡鐨勯敊璇�");
-				e.printStackTrace();
-				SpringMVCContextHolder.getSystemLogger().error(e);
-			}
-		}
-	}
+    /**
+     * 鏇存柊鍒朵护鍗�
+     *
+     * @param errorMsg
+     * @param moBase
+     * @param subDao
+     */
+    private void updateMoBase(StringBuilder errorMsg, FieldSetEntity moBase, Dao[] subDao) {
+        String moNumber = moBase.getString("mo_number");
+        for (int i = 0; i < subDao.length; i++) {
+            Dao dao = subDao[i];
+            try {
+                //妫�鏌ュ埗浠ゅ崟琛ㄦ槸鍚﹀凡瀛樺湪
+                FieldSetEntity fs = dao.getOne(moBase.getTableName(), "mo_number = ? ", new Object[]{moNumber});
+                if (FieldSetEntity.isEmpty(fs)) {
+                    //杩涜鍒涘缓鎿嶄綔
+                    createMoBase(errorMsg, moBase, new Dao[]{dao});
+                    continue;
+                }
+                // 褰撳瓙搴撲腑鍒朵护鍗� input_qty 瀛楁涓� 0 鎴栬�� 涓� null 鏃� 鏇存柊澶氫釜瀛楁锛屽惁鍒欏彧鏇存柊target_qty 瀛楁
+                String[] updateField = StringUtils.isEmpty(fs.getString("input_qty")) || "0".equals(fs.getString("input_qty")) ?
+                        new String[]{"target_qty", "owner", "mo_create_date", "mo_schedule_date", "mo_due_date", "areaid", "technicsid", "close_flag", "default_group", "end_group"}
+                        : new String[]{"target_qty"};
+                StringBuilder sql = new StringBuilder();
+                sql.append(" UPDATE T_PM_MO_BASE SET ");
+                Object[] params = new Object[updateField.length + 1];
+                for (int k = 0; k < updateField.length; k++) {
+                    if (k > 0) {
+                        sql.append(",");
+                    }
+                    params[k] = moBase.getObject(updateField[k]);
+                    sql.append(updateField[k].toUpperCase()).append(" = ? ");
+                }
+                params[updateField.length] = moNumber;
+                sql.append(" WHERE MO_NUMBER = ?  ");
+                dao.executeSql(sql.toString(), params);
+            } catch (BaseException e) {
+                errorMsg.append("鍒朵护鍗曞彿锛歔 " + moNumber + " ]IP:[").append(getIp(dao)).
+                        append("]").append(e.getMessageInfo());
+                e.printStackTrace();
+                SpringMVCContextHolder.getSystemLogger().error(e);
+            } catch (Exception e) {
+                errorMsg.append("鍒朵护鍗曞彿锛歔 " + moNumber + " ]IP:[").append(getIp(dao)).append("]").append("鏇存柊鍒朵护鍗曞け璐ワ紝鏈煡鐨勯敊璇�");
+                e.printStackTrace();
+                SpringMVCContextHolder.getSystemLogger().error(e);
+            }
+        }
+    }
 
-	private String getIp(Dao dao) {
-		return ((OracleDaoImpl) dao).getDataBaseEntity().getIp();
-	}
+    private String getIp(Dao dao) {
+        return ((OracleDaoImpl) dao).getDataBaseEntity().getIp();
+    }
 
-	/**
-	 * 閲囬泦閰嶇疆淇濆瓨
-	 *
-	 * @param request
-	 * @throws BaseException
-	 */
-	@Override
-	@Transactional
-	public void saveCollectConfig(HttpServletRequest request) throws BaseException {
-		//鏈嶅姟鍚嶇О
-		String serverName = request.getHeader("server-name");
-		if (StringUtils.isEmpty(serverName)) {
-			throw new BaseException(ErrorCode.SERVER_NAME_CAN_NOT_EMPTY);
-		}
-		FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_SYS_DATA_COLLECT);
-		//閲囬泦鏉ユ簮
-		String sourceInfo = fse.getString("id");
-		if (StringUtils.isEmpty(sourceInfo) || StringUtils.contains(sourceInfo, dataSystemName)) {
-			throw new BaseException(ErrorCode.COLLECT_SOURCE_VALUE);
-		}
-		commonSave(fse);
-	}
+    /**
+     * 閲囬泦閰嶇疆淇濆瓨
+     *
+     * @param request
+     * @throws BaseException
+     */
+    @Override
+    @Transactional
+    public void saveCollectConfig(HttpServletRequest request) throws BaseException {
+        //鏈嶅姟鍚嶇О
+        String serverName = request.getHeader("server-name");
+        if (StringUtils.isEmpty(serverName)) {
+            throw new BaseException(ErrorCode.SERVER_NAME_CAN_NOT_EMPTY);
+        }
+        FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_SYS_DATA_COLLECT);
+        //閲囬泦鏉ユ簮
+        String sourceInfo = fse.getString("id");
+        if (StringUtils.isEmpty(sourceInfo) || StringUtils.contains(sourceInfo, dataSystemName)) {
+            throw new BaseException(ErrorCode.COLLECT_SOURCE_VALUE);
+        }
+        commonSave(fse);
+    }
 
-	/**
-	 * 鎻愬彇閰嶇疆淇濆瓨
-	 *
-	 * @param fse
-	 * @throws BaseException
-	 */
-	@Override
-	@Transactional
-	public void saveExtractConfig(FieldSetEntity fse) throws BaseException {
-		String dataSource = fse.getString(CmnConst.TABLE_SYNC_MANAGER);
-		if (!StringUtils.isEmpty(dataSource)) {
-			FieldSetEntity fs = JsonUtil.pareseJsonToFieldSetEntity(dataSource);
-			if (!FieldSetEntity.isEmpty(fs)) {
-				commonSave(fs);
-			}
-		}
-		commonSave(fse);
-		getCommonService().saveDelRecordConfig(2, fse.getUUID());
-	}
+    /**
+     * 鎻愬彇閰嶇疆淇濆瓨
+     *
+     * @param fse
+     * @throws BaseException
+     */
+    @Override
+    @Transactional
+    public void saveExtractConfig(FieldSetEntity fse) throws BaseException {
+        String dataSource = fse.getString(CmnConst.TABLE_SYNC_MANAGER);
+        if (!StringUtils.isEmpty(dataSource)) {
+            FieldSetEntity fs = JsonUtil.pareseJsonToFieldSetEntity(dataSource);
+            if (!FieldSetEntity.isEmpty(fs)) {
+                commonSave(fs);
+            }
+        }
+        commonSave(fse);
+        getCommonService().saveDelRecordConfig(2, fse.getUUID());
+    }
 
-	/**
-	 * 褰掓。閰嶇疆淇濆瓨
-	 *
-	 * @param fse
-	 * @throws BaseException
-	 */
-	@Override
-	@Transactional
-	public void saveArchiveConfig(FieldSetEntity fse) throws BaseException {
-		commonSave(fse);
-	}
+    /**
+     * 褰掓。閰嶇疆淇濆瓨
+     *
+     * @param fse
+     * @throws BaseException
+     */
+    @Override
+    @Transactional
+    public void saveArchiveConfig(FieldSetEntity fse) throws BaseException {
+        commonSave(fse);
+    }
 
-	/**
-	 * @param fse
-	 * @throws BaseException
-	 */
-	@Override
-	public void saveCollectLog(FieldSetEntity fse) throws BaseException {
-		this.commonSave(fse);
-	}
+    /**
+     * @param fse
+     * @throws BaseException
+     */
+    @Override
+    public void saveCollectLog(FieldSetEntity fse) throws BaseException {
+        this.commonSave(fse);
+    }
 
-	/**
-	 * @param fse
-	 * @throws BaseException
-	 */
-	@Override
-	public void saveExtractLog(FieldSetEntity fse) throws BaseException {
-		this.commonSave(fse);
-	}
+    /**
+     * @param fse
+     * @throws BaseException
+     */
+    @Override
+    public void saveExtractLog(FieldSetEntity fse) throws BaseException {
+        this.commonSave(fse);
+    }
 
-	/**
-	 * 鏁版嵁婧愪繚瀛樹細璋冪敤璇ユ柟娉�
-	 *
-	 * @param fse
-	 * @throws BaseException
-	 */
-	@Override
-	public void saveSyncConnectionConfig(FieldSetEntity fse) throws BaseException {
-		//瀛愭湇鍔′繚瀛樻暟鎹簱杩炴帴閰嶇疆鍚庤皟鐢ㄨ鏂规硶锛屼紶杈撴暟鎹埌涓绘湇鍔�
-		//TODO
-	}
+    /**
+     * 鏁版嵁婧愪繚瀛樹細璋冪敤璇ユ柟娉�
+     *
+     * @param fse
+     * @throws BaseException
+     */
+    @Override
+    public void saveSyncConnectionConfig(FieldSetEntity fse) throws BaseException {
+        //瀛愭湇鍔′繚瀛樻暟鎹簱杩炴帴閰嶇疆鍚庤皟鐢ㄨ鏂规硶锛屼紶杈撴暟鎹埌涓绘湇鍔�
+        //TODO
+    }
 
-	/**
-	 * 瀹氭椂浠诲姟鐢熸垚鏃ュ織浼氳皟鐢ㄨ鏂规硶
-	 *
-	 * @param fse
-	 * @throws BaseException
-	 */
-	@Override
-	public void saveTimeLog(FieldSetEntity fse) throws BaseException {
-		//涓绘湇鍔℃彁鍙栨棩蹇椾繚瀛樺悗璋冪敤璇ユ柟娉曚紶杈撳埌瀛愭湇鍔�
-		//TODO
+    /**
+     * 瀹氭椂浠诲姟鐢熸垚鏃ュ織浼氳皟鐢ㄨ鏂规硶
+     *
+     * @param fse
+     * @throws BaseException
+     */
+    @Override
+    public void saveTimeLog(FieldSetEntity fse) throws BaseException {
+        //涓绘湇鍔℃彁鍙栨棩蹇椾繚瀛樺悗璋冪敤璇ユ柟娉曚紶杈撳埌瀛愭湇鍔�
+        //TODO
 
-	}
+    }
 
-	private void commonSave(FieldSetEntity fse) throws BaseException {
-		String uuid = fse.getUUID();
-		FieldSetEntity fs = getBaseDao().getFieldSetEntity(fse.getTableName(), new String[]{CmnConst.UUID}, uuid, false);
-		Map<String, DataTableEntity> subData = fse.getSubData();
-		if (!CollectionUtil.isEmpty(subData)) {
-			DataTableEntity addDt = new DataTableEntity();
-			DataTableEntity updateDt = new DataTableEntity();
-			for (Map.Entry<String, DataTableEntity> entry : subData.entrySet()) {
-				String tableName = entry.getKey();
-				DataTableEntity value = entry.getValue();
-				if (DataTableEntity.isEmpty(value)) {
-					continue;
-				}
-				Object[] uuids = value.getUuids();
-				DataTableEntity dt = getBaseDao().listTable(tableName, BaseUtil.buildQuestionMarkFilter(CmnConst.UUID, uuids.length, true), uuids, new String[]{CmnConst.UUID});
-				for (int i = 0; i < value.getRows(); i++) {
-					uuid = value.getString(i, CmnConst.UUID);
-					List<FieldSetEntity> fieldSetEntity = dt.getFieldSetEntity(uuid);
-					if (CollectionUtil.isEmpty(fieldSetEntity)) {
-						addDt.addFieldSetEntity(value.getFieldSetEntity(i));
-						value.setFieldValue(i, CoreConst.SYSTEM_DATA_OPERATE_TYPE, "add");
-					} else {
-						addDt.addFieldSetEntity(updateDt.getFieldSetEntity(i));
-						value.setFieldValue(i, CoreConst.SYSTEM_DATA_OPERATE_TYPE, "update");
-					}
-				}
-				if (!DataTableEntity.isEmpty(addDt)) {
-					getBaseDao().add(addDt);
-				}
-				if (!DataTableEntity.isEmpty(updateDt)) {
-					getBaseDao().update(updateDt);
-				}
-			}
-		}
-		if (FieldSetEntity.isEmpty(fs)) {
-			getBaseDao().add(fse, false);
-		} else {
-			getBaseDao().update(fse, false);
-		}
-	}
+    private void commonSave(FieldSetEntity fse) throws BaseException {
+        String uuid = fse.getUUID();
+        FieldSetEntity fs = getBaseDao().getFieldSetEntity(fse.getTableName(), new String[]{CmnConst.UUID}, uuid, false);
+        Map<String, DataTableEntity> subData = fse.getSubData();
+        if (!CollectionUtil.isEmpty(subData)) {
+            DataTableEntity addDt = new DataTableEntity();
+            DataTableEntity updateDt = new DataTableEntity();
+            for (Map.Entry<String, DataTableEntity> entry : subData.entrySet()) {
+                String tableName = entry.getKey();
+                DataTableEntity value = entry.getValue();
+                if (DataTableEntity.isEmpty(value)) {
+                    continue;
+                }
+                Object[] uuids = value.getUuids();
+                DataTableEntity dt = getBaseDao().listTable(tableName, BaseUtil.buildQuestionMarkFilter(CmnConst.UUID, uuids.length, true), uuids, new String[]{CmnConst.UUID});
+                for (int i = 0; i < value.getRows(); i++) {
+                    uuid = value.getString(i, CmnConst.UUID);
+                    List<FieldSetEntity> fieldSetEntity = dt.getFieldSetEntity(uuid);
+                    if (CollectionUtil.isEmpty(fieldSetEntity)) {
+                        addDt.addFieldSetEntity(value.getFieldSetEntity(i));
+                        value.setFieldValue(i, CoreConst.SYSTEM_DATA_OPERATE_TYPE, "add");
+                    } else {
+                        addDt.addFieldSetEntity(updateDt.getFieldSetEntity(i));
+                        value.setFieldValue(i, CoreConst.SYSTEM_DATA_OPERATE_TYPE, "update");
+                    }
+                }
+                if (!DataTableEntity.isEmpty(addDt)) {
+                    getBaseDao().add(addDt);
+                }
+                if (!DataTableEntity.isEmpty(updateDt)) {
+                    getBaseDao().update(updateDt);
+                }
+            }
+        }
+        if (FieldSetEntity.isEmpty(fs)) {
+            getBaseDao().add(fse, false);
+        } else {
+            getBaseDao().update(fse, false);
+        }
+    }
 
-	/**
-	 * 璋冪敤杩滅▼涓绘湇鍔″櫒閲囬泦淇濆瓨
-	 *
-	 * @param fse
-	 * @return
-	 * @throws BaseException
-	 */
-	public FieldSetEntity remoteSaveCollectConfig(FieldSetEntity fse) throws BaseException {
-		if ("ch-kt".equals(dataSystemName)) {
-			return fse;
-		}
-		FieldSetEntity fs = getBaseDao().getFieldSetByFilter(CmnConst.PRODUCT_MES_SERVER, "server_type=0", null, false);
-		if (FieldSetEntity.isEmpty(fs)) {
-			throw new BaseException(ErrorCode.REMOTE_SERVER_CONFIG_EMPTY);
-		}
-		//鏈嶅姟鍩熷悕鐨勭鍙�
-		String ipPort = fs.getString("server_url");
-		String serverName = fs.getString("server_name");
-		String serverUrl = ipPort + CmnConst.SAVE_COLLECT_URL;
-		FieldSetEntity res = doPost(serverUrl, serverName, fse);
-		return res;
-	}
+    /**
+     * 璋冪敤杩滅▼涓绘湇鍔″櫒閲囬泦淇濆瓨
+     *
+     * @param fse
+     * @return
+     * @throws BaseException
+     */
+    public FieldSetEntity remoteSaveCollectConfig(FieldSetEntity fse) throws BaseException {
+        if ("ch-kt".equals(dataSystemName)) {
+            return fse;
+        }
+        FieldSetEntity fs = getBaseDao().getFieldSetByFilter(CmnConst.PRODUCT_MES_SERVER, "server_type=0", null, false);
+        if (FieldSetEntity.isEmpty(fs)) {
+            throw new BaseException(ErrorCode.REMOTE_SERVER_CONFIG_EMPTY);
+        }
+        //鏈嶅姟鍩熷悕鐨勭鍙�
+        String ipPort = fs.getString("server_url");
+        String serverName = fs.getString("server_name");
+        String serverUrl = ipPort + CmnConst.SAVE_COLLECT_URL;
+        FieldSetEntity res = doPost(serverUrl, serverName, fse);
+        return res;
+    }
 
-	/**
-	 * 涓绘湇鍔℃彁鍙栦繚瀛樻棩蹇楀悗璋冪敤璇ユ柟娉曚紶鍏ュ埌瀛愭湇鍔′繚瀛�
-	 *
-	 * @param fse
-	 * @return
-	 * @throws BaseException
-	 */
-	public void remoteSaveExtractLog(FieldSetEntity fse) throws BaseException {
-		try {
-			if ("ch-kt".equals(dataSystemName)) {
-				//涓绘湇鍔¢噰闆嗘棩蹇梪uid
-				String preStepUuid = fse.getString(CmnConst.PRE_STEP_UUID);
-				StringBuilder sql = new StringBuilder();
-				sql.append("\nSELECT ");
-				sql.append("\nserver.* ");
-				sql.append("\nFROM ").append(CmnConst.PRODUCT_SYS_DATA_COLLECT).append(" collect ");
-				sql.append("\nJOIN ").append(CmnConst.PRODUCT_SYS_DATA_CENTER_LOG).append(" log ");
-				sql.append("\nON log.config_uuid=collect.uuid and log.type=1 ");
-				sql.append("\nJOIN ").append(CmnConst.PRODUCT_MES_SERVER).append(" server ");
-				sql.append("\nON collect.id like concat(server.server_name,'%') ");
-				sql.append("\nWHERE log.uuid=? and collect.id not like concat(?,'%')  limit 1");
-				FieldSetEntity fs = getBaseDao().getFieldSetBySQL(sql.toString(), new Object[]{preStepUuid, dataSystemName}, false);
-				if (FieldSetEntity.isEmpty(fs)) {
-					return;
-				}
-				String ipPort = fs.getString("server_url");
-				String serverName = fs.getString("server_name");
-				String serverUrl = ipPort + CmnConst.SAVE_EXTRACT_LOG_URL;
-				doPostAsync(serverUrl, serverName, fse);
-			}
-		} catch (Exception e) {
-			//鎹曡幏寮傚父涓轰簡浣块噰闆嗗畾鏃朵换鍔℃甯歌繍琛�
-			SpringMVCContextHolder.getSystemLogger().error(e);
-			e.printStackTrace();
-		}
-	}
+    /**
+     * 涓绘湇鍔℃彁鍙栦繚瀛樻棩蹇楀悗璋冪敤璇ユ柟娉曚紶鍏ュ埌瀛愭湇鍔′繚瀛�
+     *
+     * @param fse
+     * @return
+     * @throws BaseException
+     */
+    public void remoteSaveExtractLog(FieldSetEntity fse) throws BaseException {
+        try {
+            if ("ch-kt".equals(dataSystemName)) {
+                //涓绘湇鍔¢噰闆嗘棩蹇梪uid
+                String preStepUuid = fse.getString(CmnConst.PRE_STEP_UUID);
+                StringBuilder sql = new StringBuilder();
+                sql.append("\nSELECT ");
+                sql.append("\nserver.* ");
+                sql.append("\nFROM ").append(CmnConst.PRODUCT_SYS_DATA_COLLECT).append(" collect ");
+                sql.append("\nJOIN ").append(CmnConst.PRODUCT_SYS_DATA_CENTER_LOG).append(" log ");
+                sql.append("\nON log.config_uuid=collect.uuid and log.type=1 ");
+                sql.append("\nJOIN ").append(CmnConst.PRODUCT_MES_SERVER).append(" server ");
+                sql.append("\nON collect.id like concat(server.server_name,'%') ");
+                sql.append("\nWHERE log.uuid=? and collect.id not like concat(?,'%')  limit 1");
+                FieldSetEntity fs = getBaseDao().getFieldSetBySQL(sql.toString(), new Object[]{preStepUuid, dataSystemName}, false);
+                if (FieldSetEntity.isEmpty(fs)) {
+                    return;
+                }
+                String ipPort = fs.getString("server_url");
+                String serverName = fs.getString("server_name");
+                String serverUrl = ipPort + CmnConst.SAVE_EXTRACT_LOG_URL;
+                doPostAsync(serverUrl, serverName, fse);
+            }
+        } catch (Exception e) {
+            //鎹曡幏寮傚父涓轰簡浣块噰闆嗗畾鏃朵换鍔℃甯歌繍琛�
+            SpringMVCContextHolder.getSystemLogger().error(e);
+            e.printStackTrace();
+        }
+    }
 
-	/**
-	 * 璋冪敤杩滅▼涓绘湇鍔″櫒淇濆瓨
-	 *
-	 * @param fse
-	 * @return
-	 * @throws BaseException
-	 */
-	public void remoteSaveExtractConfig(FieldSetEntity fse) throws BaseException {
-		DataTableEntity dt = getRemoteSubServer();
-		if (DataTableEntity.isEmpty(dt)) {
-			return;
-		}
-		FieldSetEntity extractTargetSource = getBaseDao().getFieldSetEntity(CmnConst.TABLE_SYNC_MANAGER, fse.getString("extract_target_source"), false);
-		if (!FieldSetEntity.isEmpty(extractTargetSource)) {
-			extractTargetSource.setValue(CoreConst.SYSTEM_TABLE_NAME_LABEL, CmnConst.TABLE_SYNC_MANAGER);
-			fse.setValue(CmnConst.TABLE_SYNC_MANAGER, BaseUtil.fieldSetEntityToJson(extractTargetSource));
-		}
-		for (int i = 0; i < dt.getRows(); i++) {
-			FieldSetEntity fs = dt.getFieldSetEntity(i);
-			//鏈嶅姟鍩熷悕鐨勭鍙�
-			String ipPort = fs.getString("server_url");
-			String serverName = fs.getString("server_name");
-			String serverUrl = ipPort + CmnConst.SAVE_EXTRACT_URL;
-			doPost(serverUrl, serverName, fse);
-		}
-	}
+    /**
+     * 璋冪敤杩滅▼涓绘湇鍔″櫒淇濆瓨
+     *
+     * @param fse
+     * @return
+     * @throws BaseException
+     */
+    public void remoteSaveExtractConfig(FieldSetEntity fse) throws BaseException {
+        DataTableEntity dt = getRemoteSubServer();
+        if (DataTableEntity.isEmpty(dt)) {
+            return;
+        }
+        FieldSetEntity extractTargetSource = getBaseDao().getFieldSetEntity(CmnConst.TABLE_SYNC_MANAGER, fse.getString("extract_target_source"), false);
+        if (!FieldSetEntity.isEmpty(extractTargetSource)) {
+            extractTargetSource.setValue(CoreConst.SYSTEM_TABLE_NAME_LABEL, CmnConst.TABLE_SYNC_MANAGER);
+            fse.setValue(CmnConst.TABLE_SYNC_MANAGER, BaseUtil.fieldSetEntityToJson(extractTargetSource));
+        }
+        for (int i = 0; i < dt.getRows(); i++) {
+            FieldSetEntity fs = dt.getFieldSetEntity(i);
+            //鏈嶅姟鍩熷悕鐨勭鍙�
+            String ipPort = fs.getString("server_url");
+            String serverName = fs.getString("server_name");
+            String serverUrl = ipPort + CmnConst.SAVE_EXTRACT_URL;
+            doPost(serverUrl, serverName, fse);
+        }
+    }
 
-	/**
-	 * 璋冪敤杩滅▼涓绘湇鍔″櫒淇濆瓨
-	 *
-	 * @param fse
-	 * @return
-	 * @throws BaseException
-	 */
-	public void remoteSaveArchiveConfig(FieldSetEntity fse) throws BaseException {
-		DataTableEntity dt = getRemoteSubServer();
-		if (DataTableEntity.isEmpty(dt)) {
-			return;
-		}
-		for (int i = 0; i < dt.getRows(); i++) {
-			FieldSetEntity fs = dt.getFieldSetEntity(i);
-			//鏈嶅姟鍩熷悕鐨勭鍙�
-			String ipPort = fs.getString("server_url");
-			String serverName = fs.getString("server_name");
-			String serverUrl = ipPort + CmnConst.SAVE_ARCHIVE_URL;
-			doPost(serverUrl, serverName, fse);
-		}
-	}
+    /**
+     * 璋冪敤杩滅▼涓绘湇鍔″櫒淇濆瓨
+     *
+     * @param fse
+     * @return
+     * @throws BaseException
+     */
+    public void remoteSaveArchiveConfig(FieldSetEntity fse) throws BaseException {
+        DataTableEntity dt = getRemoteSubServer();
+        if (DataTableEntity.isEmpty(dt)) {
+            return;
+        }
+        for (int i = 0; i < dt.getRows(); i++) {
+            FieldSetEntity fs = dt.getFieldSetEntity(i);
+            //鏈嶅姟鍩熷悕鐨勭鍙�
+            String ipPort = fs.getString("server_url");
+            String serverName = fs.getString("server_name");
+            String serverUrl = ipPort + CmnConst.SAVE_ARCHIVE_URL;
+            doPost(serverUrl, serverName, fse);
+        }
+    }
 
-	/**
-	 * 璋冪敤杩滅▼涓绘湇鍔″櫒淇濆瓨
-	 *
-	 * @param fse
-	 * @return
-	 * @throws BaseException
-	 */
-	public void remoteSaveCollectLog(FieldSetEntity fse) throws BaseException {
-		if ("ch-kt".equals(dataSystemName) || FieldSetEntity.isEmpty(fse)) {
-			return;
-		}
-		FieldSetEntity fs = getBaseDao().getFieldSetByFilter(CmnConst.PRODUCT_MES_SERVER, "server_type=0", null, false);
-		if (FieldSetEntity.isEmpty(fs)) {
-			throw new BaseException(ErrorCode.REMOTE_SERVER_CONFIG_EMPTY);
-		}
-		//鏈嶅姟鍩熷悕鐨勭鍙�
-		String ipPort = fs.getString("server_url");
-		String serverName = fs.getString("server_name");
-		String serverUrl = ipPort + CmnConst.SAVE_COLLECT_LOG_URL;
-		doPost(serverUrl, serverName, fse);
-	}
+    /**
+     * 璋冪敤杩滅▼涓绘湇鍔″櫒淇濆瓨
+     *
+     * @param fse
+     * @return
+     * @throws BaseException
+     */
+    public void remoteSaveCollectLog(FieldSetEntity fse) throws BaseException {
+        if ("ch-kt".equals(dataSystemName) || FieldSetEntity.isEmpty(fse)) {
+            return;
+        }
+        FieldSetEntity fs = getBaseDao().getFieldSetByFilter(CmnConst.PRODUCT_MES_SERVER, "server_type=0", null, false);
+        if (FieldSetEntity.isEmpty(fs)) {
+            throw new BaseException(ErrorCode.REMOTE_SERVER_CONFIG_EMPTY);
+        }
+        //鏈嶅姟鍩熷悕鐨勭鍙�
+        String ipPort = fs.getString("server_url");
+        String serverName = fs.getString("server_name");
+        String serverUrl = ipPort + CmnConst.SAVE_COLLECT_LOG_URL;
+        doPost(serverUrl, serverName, fse);
+    }
 
 
-	/**
-	 * 鑾峰彇瀛愭湇鍔¢厤缃�
-	 *
-	 * @return
-	 * @throws BaseException
-	 */
-	private DataTableEntity getRemoteSubServer() throws BaseException {
-		return getBaseDao().listTable(CmnConst.PRODUCT_MES_SERVER, "server_type!=0");
-	}
+    /**
+     * 鑾峰彇瀛愭湇鍔¢厤缃�
+     *
+     * @return
+     * @throws BaseException
+     */
+    private DataTableEntity getRemoteSubServer() throws BaseException {
+        return getBaseDao().listTable(CmnConst.PRODUCT_MES_SERVER, "server_type!=0");
+    }
 
-	//    @Async
-	void doPostAsync(String url, String serverName, FieldSetEntity fse) throws BaseException {
-		doPost(url, serverName, fse);
-	}
+    //    @Async
+    void doPostAsync(String url, String serverName, FieldSetEntity fse) throws BaseException {
+        doPost(url, serverName, fse);
+    }
 
-	public String getDataSystemName() {
-		return dataSystemName;
-	}
+    public String getDataSystemName() {
+        return dataSystemName;
+    }
 
-	public boolean remoteRehandle(FieldSetEntity fse) {
-		String type = fse.getString(CmnConst.TYPE);//绫诲瀷
-		String logUuid;
-		if ("2".equals(type)) {
-			logUuid = fse.getString(CmnConst.PRE_STEP_UUID);
-		} else if ("1".equals(type)) {
-			logUuid = fse.getUUID();
-		} else {
-			return false;
-		}
-		FieldSetEntity fs = getBaseDao().getFieldSetByFilter(CmnConst.PRODUCT_SYS_DATA_COLLECT, "uuid =(select config_uuid FROM product_sys_data_center_log where uuid=?)", new Object[]{logUuid}, false);
-		if (!FieldSetEntity.isEmpty(fs)) {
-			//閲囬泦id
-			String collectId = fs.getString(CmnConst.ID);
-			if (collectId.indexOf(dataSystemName) == -1) {
-				fs = getBaseDao().getFieldSetByFilter(CmnConst.PRODUCT_MES_SERVER, "server_type=1 and ? like concat(server_name,'%')", new Object[]{collectId}, false);
-				if (!FieldSetEntity.isEmpty(fs)) {
-					//鏈嶅姟鍩熷悕鐨勭鍙�
-					String ipPort = fs.getString("server_url");
-					String serverName = fs.getString("server_name");
-					String serverUrl = ipPort + CmnConst.REHANDLE_ERROR_URL;
-					doPost(serverUrl, serverName, fse);
-					//鏍囪鏃ュ織鎴愬姛
-					JournalManagerService journalManagerService = SpringUtils.getBean(JournalManagerService.class);
-					journalManagerService.writeBackReDealResult(fse, true);
-				}
-				return true;
-			}
-		}
-		return false;
-	}
+    public boolean remoteRehandle(FieldSetEntity fse) {
+        String type = fse.getString(CmnConst.TYPE);//绫诲瀷
+        String logUuid;
+        if ("2".equals(type)) {
+            logUuid = fse.getString(CmnConst.PRE_STEP_UUID);
+        } else if ("1".equals(type)) {
+            logUuid = fse.getUUID();
+        } else {
+            return false;
+        }
+        FieldSetEntity fs = getBaseDao().getFieldSetByFilter(CmnConst.PRODUCT_SYS_DATA_COLLECT, "uuid =(select config_uuid FROM product_sys_data_center_log where uuid=?)", new Object[]{logUuid}, false);
+        if (!FieldSetEntity.isEmpty(fs)) {
+            //閲囬泦id
+            String collectId = fs.getString(CmnConst.ID);
+            if (collectId.indexOf(dataSystemName) == -1) {
+                fs = getBaseDao().getFieldSetByFilter(CmnConst.PRODUCT_MES_SERVER, "server_type=1 and ? like concat(server_name,'%')", new Object[]{collectId}, false);
+                if (!FieldSetEntity.isEmpty(fs)) {
+                    //鏈嶅姟鍩熷悕鐨勭鍙�
+                    String ipPort = fs.getString("server_url");
+                    String serverName = fs.getString("server_name");
+                    String serverUrl = ipPort + CmnConst.REHANDLE_ERROR_URL;
+                    doPost(serverUrl, serverName, fse);
+                    //鏍囪鏃ュ織鎴愬姛
+                    JournalManagerService journalManagerService = SpringUtils.getBean(JournalManagerService.class);
+                    journalManagerService.writeBackReDealResult(fse, true);
+                }
+                return true;
+            }
+        }
+        return false;
+    }
 
-	/**
-	 * post 璇锋眰
-	 *
-	 * @param url
-	 * @param serverName
-	 * @param fse
-	 * @throws BaseException
-	 */
-	private FieldSetEntity doPost(String url, String serverName, FieldSetEntity fse) throws BaseException {
-		fse.setValue(CoreConst.SYSTEM_TABLE_NAME_LABEL, fse.getTableName());
-		JSONObject requestBody = BaseUtil.fieldSetEntityToJson(fse);
-		String requestData = requestBody.toJSONString();
-		//绛惧悕
-		String signature = SignUtil.getHmacSHA1(requestData, Global.getSystemConfig("signature.key", ""));
-		try (HttpResponse response = HttpRequest.post(url)
-				.contentType("application/x-www-form-urlencoded")
-				.header(CoreConst.SYSTEM_LANGUAGE_CODE_, "zh-CN") //璇█缂栫爜
-				.header(CoreConst.SYSTEM_CLIENT_TYPE_, "Web") //瀹㈡埛绔被鍨�
-				.header(CoreConst.SYSTEM_CLIENT_VERSION_, "1.0.0") //瀹㈡埛绔増鏈�
-				.header("server-name", serverName) //绯荤粺鍚嶇О
-				.header("signature", signature) //绛惧悕
-				.body("formData=" + requestData).execute()) {
-			if (response.getStatus() == 200) {
-				//璇锋眰鎴愬姛
-				String res = response.body();
-				if (!StringUtils.isEmpty(res)) {
-					JSONObject resBody = JSON.parseObject(res);
-					if (resBody != null) {
-						String code = resBody.getString(CoreConst.API_RETURN_KEY_CODE);
-						if (!CoreConst.API_RETURN_VALUE_CODE_200.equals(code)) {
-							//鏈嶅姟鍐呴儴鎶涘嚭鐨勯敊璇�
-							throw new BaseException("璋冪敤鎺ュ彛澶辫触锛�", resBody.getString(CoreConst.API_RETURN_KEY_MSG));
-						}
-						String formData = resBody.getString(CoreConst.API_RETURN_KEY_DATA);
-						if (StringUtils.isEmpty(formData)) {
-							return null;
-						}
-						FieldSetEntity result = JsonUtil.pareseJsonToFieldSetEntity(formData);
-						return result;
-					}
-				}
-			}
-			throw new BaseException(ErrorCode.OPEN_API_REQUEST_FAIL);
-		}
+    /**
+     * post 璇锋眰
+     *
+     * @param url
+     * @param serverName
+     * @param fse
+     * @throws BaseException
+     */
+    private FieldSetEntity doPost(String url, String serverName, FieldSetEntity fse) throws BaseException {
+        fse.setValue(CoreConst.SYSTEM_TABLE_NAME_LABEL, fse.getTableName());
+        JSONObject requestBody = BaseUtil.fieldSetEntityToJson(fse);
+        String requestData = requestBody.toJSONString();
+        //绛惧悕
+        String signature = SignUtil.getHmacSHA1(requestData, Global.getSystemConfig("signature.key", ""));
+        try (HttpResponse response = HttpRequest.post(url)
+                .contentType("application/x-www-form-urlencoded")
+                .header(CoreConst.SYSTEM_LANGUAGE_CODE_, "zh-CN") //璇█缂栫爜
+                .header(CoreConst.SYSTEM_CLIENT_TYPE_, "Web") //瀹㈡埛绔被鍨�
+                .header(CoreConst.SYSTEM_CLIENT_VERSION_, "1.0.0") //瀹㈡埛绔増鏈�
+                .header("server-name", serverName) //绯荤粺鍚嶇О
+                .header("signature", signature) //绛惧悕
+                .body("formData=" + requestData).execute()) {
+            if (response.getStatus() == 200) {
+                //璇锋眰鎴愬姛
+                String res = response.body();
+                if (!StringUtils.isEmpty(res)) {
+                    JSONObject resBody = JSON.parseObject(res);
+                    if (resBody != null) {
+                        String code = resBody.getString(CoreConst.API_RETURN_KEY_CODE);
+                        if (!CoreConst.API_RETURN_VALUE_CODE_200.equals(code)) {
+                            //鏈嶅姟鍐呴儴鎶涘嚭鐨勯敊璇�
+                            throw new BaseException("璋冪敤鎺ュ彛澶辫触锛�", resBody.getString(CoreConst.API_RETURN_KEY_MSG));
+                        }
+                        String formData = resBody.getString(CoreConst.API_RETURN_KEY_DATA);
+                        if (StringUtils.isEmpty(formData)) {
+                            return null;
+                        }
+                        FieldSetEntity result = JsonUtil.pareseJsonToFieldSetEntity(formData);
+                        return result;
+                    }
+                }
+            }
+            throw new BaseException(ErrorCode.OPEN_API_REQUEST_FAIL);
+        }
 
-	}
+    }
 
-	/**
-	 * 鑾峰彇閲囬泦鏃ュ織
-	 *
-	 * @return
-	 */
-	public FieldSetEntity getCollectLog() {
-		collectLogCache = null;
-		if (collectLogCache == null) {
-			loadCollectLogCache();
-		}
+    /**
+     * 鑾峰彇閲囬泦鏃ュ織
+     *
+     * @return
+     */
+    public FieldSetEntity getCollectLog() {
+        collectLogCache = null;
+        if (collectLogCache == null) {
+            loadCollectLogCache();
+        }
 
-		return collectLogCache;
-	}
+        return collectLogCache;
+    }
 
-	public void loadCollectLogCache() {
-		StringBuilder sql = new StringBuilder();
-		sql.append("\n with no_extract as ( ");
-		sql.append("\n 	SELECT ");
-		sql.append("\n 		a.*  ");
-		sql.append("\n 	FROM ");
-		sql.append("\n 		product_sys_data_center_log A ");
-		sql.append("\n 		LEFT JOIN product_sys_data_center_log b ON a.uuid = b.pre_step_uuid  ");
-		sql.append("\n 	WHERE ");
-		sql.append("\n 		a.type = 1  ");
-		sql.append("\n 		and a.result=1 and (a.deal_flag is null or a.deal_flag =0) ");
-		sql.append("\n 		AND ( ");
-		sql.append("\n 					b.pre_step_uuid IS NULL  ");
-		sql.append("\n 					OR  ");
-		sql.append("\n 					( ");
-		sql.append("\n 						b.pre_step_uuid=a.uuid  ");
-		sql.append("\n 						AND  ");
-		sql.append("\n 						(b.result=0 and (b.deal_result = 0 or b.deal_flag is null)) ");
-		sql.append("\n 					) ");
-		sql.append("\n 		) ");
-		sql.append("\n ), ");
-		sql.append("\n last_run_log as ( ");
-		sql.append("\n select max(created_utc_datetime) last_time,config_uuid from product_sys_data_center_log where type=1 and result=1 and deal_flag=0 GROUP BY config_uuid ");
-		sql.append("\n ) ");
-		sql.append("\n 	 ");
-		sql.append("\n SELECT ifnull(COUNT(no_extract.uuid),0) unextracted_batch ,ifnull(sum(no_extract.count),0) unextracted_total_count,b.`name`,(select last_time from last_run_log where b.uuid=last_run_log.config_uuid) last_success_time FROM  product_sys_data_collect b  ");
-		sql.append("\n 	left join no_extract on no_extract.config_uuid=b.uuid ");
-		sql.append("\n  GROUP BY b.uuid ");
-		sql.append("\n 	order by b.`name` ");
+    public void loadCollectLogCache() {
+        StringBuilder sql = new StringBuilder();
+        sql.append("\n with no_extract as ( ");
+        sql.append("\n 	SELECT ");
+        sql.append("\n 		a.*  ");
+        sql.append("\n 	FROM ");
+        sql.append("\n 		product_sys_data_center_log A ");
+        sql.append("\n 		LEFT JOIN product_sys_data_center_log b ON a.uuid = b.pre_step_uuid  ");
+        sql.append("\n 	WHERE ");
+        sql.append("\n 		a.type = 1  ");
+        sql.append("\n 		and a.result=1 and (a.deal_flag is null or a.deal_flag =0) ");
+        sql.append("\n 		AND ( ");
+        sql.append("\n 					b.pre_step_uuid IS NULL  ");
+        sql.append("\n 					OR  ");
+        sql.append("\n 					( ");
+        sql.append("\n 						b.pre_step_uuid=a.uuid  ");
+        sql.append("\n 						AND  ");
+        sql.append("\n 						(b.result=0 and (b.deal_result = 0 or b.deal_flag is null)) ");
+        sql.append("\n 					) ");
+        sql.append("\n 		) ");
+        sql.append("\n ), ");
+        sql.append("\n last_run_log as ( ");
+        sql.append("\n select max(created_utc_datetime) last_time,config_uuid from product_sys_data_center_log where type=1 and result=1 and deal_flag=0 GROUP BY config_uuid ");
+        sql.append("\n ) ");
+        sql.append("\n 	 ");
+        sql.append("\n SELECT ifnull(COUNT(no_extract.uuid),0) unextracted_batch ,ifnull(sum(no_extract.count),0) unextracted_total_count,b.`name`,(select last_time from last_run_log where b.uuid=last_run_log.config_uuid) last_success_time FROM  product_sys_data_collect b  ");
+        sql.append("\n 	left join no_extract on no_extract.config_uuid=b.uuid ");
+        sql.append("\n  GROUP BY b.uuid ");
+        sql.append("\n 	order by b.`name` ");
 
-		FieldSetEntity fse = new FieldSetEntity();
-		fse.setTableName("temp");
-		fse.setValue("load_log_time", DateTime.now().toString());
-		DataTableEntity dataTableEntity = getBaseDao().listTable(sql.toString(), new Object[]{});
-		if (!DataTableEntity.isEmpty(dataTableEntity)) {
-			fse.setValue("list", BaseUtil.dataTableEntityToJson(dataTableEntity, f -> {
-				JSONObject jsonObject = f[0];
-				Date lastSuccessTime = jsonObject.getDate("last_success_time");
-				if (lastSuccessTime != null) {
-					jsonObject.put("last_success_time", DateUtil.format(lastSuccessTime, "yyyy-MM-dd HH:mm:ss"));
-				}
-			}));
-		} else {
-			fse.setValue("list", "[]");
-		}
-		this.collectLogCache = fse;
-	}
+        FieldSetEntity fse = new FieldSetEntity();
+        fse.setTableName("temp");
+        fse.setValue("load_log_time", DateTime.now().toString());
+        DataTableEntity dataTableEntity = getBaseDao().listTable(sql.toString(), new Object[]{});
+        if (!DataTableEntity.isEmpty(dataTableEntity)) {
+            fse.setValue("list", BaseUtil.dataTableEntityToJson(dataTableEntity, f -> {
+                JSONObject jsonObject = f[0];
+                Date lastSuccessTime = jsonObject.getDate("last_success_time");
+                if (lastSuccessTime != null) {
+                    jsonObject.put("last_success_time", DateUtil.format(lastSuccessTime, "yyyy-MM-dd HH:mm:ss"));
+                }
+            }));
+        } else {
+            fse.setValue("list", "[]");
+        }
+        this.collectLogCache = fse;
+    }
 }

--
Gitblit v1.9.2