杜洪波
2025-07-02 7f132dd94c6ae3e5801d0885d905bcc9e1ed5ebf
src/main/java/com/product/system/backup/service/SystemBackupService.java
@@ -71,22 +71,15 @@
      // 获取系统时间
      Date finalTime = new Date();
      Date startTime = null;
      // 获取系统备份周期(分钟)
      int backupCycle = Integer.valueOf(Global.getSystemConfig("SYSTEM_BACK_CYCLE", "1440"));
      // 获取系统最大备份时间
      StringBuilder sbSql = new StringBuilder();
      sbSql.append("SELECT TIMESTAMPDIFF(MINUTE, end_time, ?) AS diff_minutes,end_time \n");
      sbSql.append("SELECT end_time \n");
      sbSql.append("FROM product_sys_backup_log \n");
      sbSql.append("WHERE backup_status = 1 \n");
      sbSql.append("ORDER BY end_time DESC \n");
      sbSql.append("LIMIT 1 \n");
      FieldSetEntity fseMaxLogTime = baseDao.getFieldSetEntityBySQL(sbSql.toString(), new Object[] {standardTimeFormat.format(finalTime)}, false);
      if(fseMaxLogTime != null && !StringUtils.isEmpty(fseMaxLogTime.getString("diff_minutes"))) {
         Integer diffMinutes = fseMaxLogTime.getInteger("diff_minutes");
         if (diffMinutes < backupCycle) {
            // 小于备份周期,不备份
            return ;
         }
      FieldSetEntity fseMaxLogTime = baseDao.getFieldSetEntityBySQL(sbSql.toString(), new Object[] {}, false);
      if(fseMaxLogTime != null && !StringUtils.isEmpty(fseMaxLogTime.getString("end_time"))) {
         startTime = fseMaxLogTime.getDate("end_time");
      }
      // 初始备份日志数据
@@ -104,7 +97,6 @@
      // 保存日志
      baseDao.saveFieldSetEntity(fseBackLog);
   }
   /**
    *    数据备份进程
@@ -180,6 +172,7 @@
      try (InputStream  reader = getClass().getClassLoader().getResourceAsStream(CONFIG_FILE_PATH)) {
         if (reader == null) {
            log.writeInfo("【初始配置文件】初始系统配置文件失败:" + CONFIG_FILE_PATH + "配置文件不存在", BackupLogger.ERROR_TYPE);
            return false;
         }
         // 读取备份配置文件
         config = new Properties();
@@ -274,12 +267,13 @@
            } else {
                log.writeInfo("【备份数据库】数据库备份失败,退出码: " + exitCode, BackupLogger.ERROR_TYPE);
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            log.writeInfo("【备份数据库】数据库备份失败:" + e.getMessage(), BackupLogger.ERROR_TYPE);
            backupFile.delete();
            return false;
        }
        return true;
      }
   }
   /**