using WIDESEA_Core.BaseRepository;
|
using WIDESEA_Core.BaseServices;
|
using WIDESEA_ITaskInfoService;
|
using WIDESEA_Model.Models;
|
|
namespace WIDESEA_TaskInfoService;
|
|
public class Task_HtyService : ServiceBase<Dt_Task_Hty, IRepository<Dt_Task_Hty>>, ITask_HtyService
|
{
|
public Task_HtyService(IRepository<Dt_Task_Hty> BaseDal) : base(BaseDal)
|
{
|
}
|
|
/// <summary>
|
/// 删除指定日期之前的历史任务数据
|
/// </summary>
|
/// <param name="keepMonths">保留的月数,默认为3个月(本月+后两个月)</param>
|
/// <returns>删除的记录数</returns>
|
public int DeleteOldTaskHistory(int keepMonths = 3)
|
{
|
try
|
{
|
// 计算保留日期:当前日期减去keepMonths个月
|
DateTime keepDate = DateTime.Now.AddMonths(-keepMonths);
|
|
// 先查询出要删除的数据
|
List<Dt_Task_Hty> tasksToDelete = BaseDal.QueryData().Where(x => x.CreateDate < keepDate).ToList();
|
|
// 如果没有要删除的数据,直接返回0
|
if (tasksToDelete.Count == 0)
|
{
|
return 0;
|
}
|
|
// 删除查询出的历史记录
|
bool result = BaseDal.DeleteData(tasksToDelete);
|
return result ? tasksToDelete.Count : 0;
|
}
|
catch (Exception ex)
|
{
|
// 记录异常日志
|
//Console.WriteLine($"删除历史任务记录失败: {ex.Message}");
|
return 0;
|
}
|
}
|
|
/// <summary>
|
/// 定时任务调用的历史任务删除方法
|
/// </summary>
|
public void Task_Hty_Job()
|
{
|
// 删除3个月之前的历史任务数据,保留本月和后两个月的数据
|
DeleteOldTaskHistory(3);
|
}
|
}
|