杜洪波
2025-06-19 5fea45398f0fa88fef4008e6ec9443eef3d515d2
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,6 +97,43 @@
      // 保存日志
      baseDao.saveFieldSetEntity(fseBackLog);
   }
//   public void systemBackupInit() {
//      // 获取系统时间
//      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("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 ;
//         }
//         startTime = fseMaxLogTime.getDate("end_time");
//      }
//      // 初始备份日志数据
//      FieldSetEntity fseBackLog = new FieldSetEntity("product_sys_backup_log");
//      fseBackLog.setValue("start_time", startTime);
//      fseBackLog.setValue("end_time", finalTime);
//
//      // 执行备份
//      boolean flag = backupProcess(startTime, finalTime);
//      if (flag) {
//         fseBackLog.setValue("backup_status", 1);
//      } else {
//         fseBackLog.setValue("backup_status", 0);
//      }
//      // 保存日志
//      baseDao.saveFieldSetEntity(fseBackLog);
//   }
   
   /**
@@ -274,12 +304,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;
      }
   }
   /**