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