using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; using WIDESEA_ITaskInfoService; using WIDESEA_Model.Models; namespace WIDESEA_TaskInfoService; public class Task_HtyService : ServiceBase>, ITask_HtyService { public Task_HtyService(IRepository BaseDal) : base(BaseDal) { } /// /// 删除指定日期之前的历史任务数据 /// /// 保留的月数,默认为3个月(本月+后两个月) /// 删除的记录数 public int DeleteOldTaskHistory(int keepMonths = 3) { try { // 计算保留日期:当前日期减去keepMonths个月 DateTime keepDate = DateTime.Now.AddMonths(-keepMonths); // 先查询出要删除的数据 List 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; } } /// /// 定时任务调用的历史任务删除方法 /// public void Task_Hty_Job() { // 删除3个月之前的历史任务数据,保留本月和后两个月的数据 DeleteOldTaskHistory(3); } }