许鹏程
2024-01-15 36dc14af5a78be3b3eb941ddc13a22d3aaf1fe3a
product-server-data-center/src/main/java/com/product/data/center/service/DataArchivingService.java
@@ -2,6 +2,7 @@
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.TimeInterval;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson.JSONObject;
@@ -158,10 +159,16 @@
                        dao.closeConnection();
                    }
                    dao = new DataBaseEntity(deleteDataSourceArray[j]).getDao();
                    Connection connection = dao.getConnection();
                    connection.setAutoCommit(false);
                    do {
                        list = dao.getList(deleteDataTable, configFse.getString("delete_select_filter"), new Object[]{}, 1, pageSize);
//                  String sql = "SELECT  * FROM (SELECT * from " + deleteDataTable + " where " + configFse.getString("delete_select_filter") + " order by " + deleteUniqueField + " ) A  ";
//                  if (!Objects.isNull(minID) && !Objects.isNull(maxID)) {
//                     sql += " where " + deleteUniqueField + " > " + maxID;
//                  }
                  String filter = configFse.getString("delete_select_filter");
                  if (!Objects.isNull(minID) && !Objects.isNull(maxID)) {
                     filter += "  and ( " + deleteUniqueField + " > " + maxID + ")";
                  }
                  list = dao.getList(deleteDataTable, filter, new Object[]{}, deleteUniqueField, 1, pageSize);
                        WriteUtil.append("DA-删除子库数据-表名:" + deleteDataTable);
                        if (DataTableEntity.isEmpty(list)) {
                            break;
@@ -177,7 +184,6 @@
                        Map<String, Map> collectMap = validationData.getData().stream().collect(Collectors.toMap(
                                (item) -> item.getString(validationUniqueField),
                                item -> item.getValues()));
                        validationData = null;
                        List<String> deleteUniqueValueList = new ArrayList<>();
                        for (int i = 0; i < list.getRows(); i++) {
                            FieldSetEntity fs = list.getFieldSetEntity(i);
@@ -207,9 +213,9 @@
                            deleteSuccessCount += dao.deleteRInt(configFse.getString("delete_data_table"),
                                    BaseUtil.buildQuestionMarkFilter(deleteUniqueField, deleteUniqueValueList.size(), true), deleteUniqueValueList.toArray());
                            WriteUtil.append("DA-删除子库数据-已经删除条数:" + deleteSuccessCount);
                        }
                    } while (currentCount == pageSize);
                    connection.commit();
                }
                journalEntity.setResult(1);
                journalEntity.setMin_id(minID);
@@ -275,11 +281,19 @@
            String sourceTable = configFse.getString("source_table");
            boolean canExecuteClearFlag = canExecuteClear(sourceTable);
            String deleteSubLogUUID = null;
            if (canExecuteClearFlag) {
                WriteUtil.append("DA-删除扫码库》》》");
                //删除扫码库已提取到mes主库且根据配置条件过滤的数据 KT特有
                deleteSubLogUUID = this.sweepCodeLibrary(configFse);
                WriteUtil.append("DA-删除扫码库耗时:" + tempTestTimer.intervalMs());
//            deleteSubLogUUID = this.sweepCodeLibrary(configFse);
            //更改为异步执行
            ThreadUtil.execAsync(() -> {
               try {
                  sweepCodeLibrary(configFse);
               } catch (SQLException e) {
                  e.printStackTrace();
               }
            });
            }
            //来源数据源
@@ -576,6 +590,7 @@
    /**
     * 清理归档重复数据
    *
     * @param sourceTable
     * @param targetTableSet
     * @param uniqueField
@@ -600,6 +615,7 @@
    /**
     * 清理判定,每天切换的时候可以执行一次
    *
     * @param tableName
     * @return
     */