using WcsMain.ExtendMethod; using WcsMain.DataBase.Dao; using WcsMain.WcsAttribute.AutoFacAttribute; namespace WcsMain.Business.CommonAction; /// /// 清理数据类 /// [Component] public class ClearData(AppWmsTaskDao wmsTaskDao, AppWcsTaskDao wcsTaskDao, AppApiRequestDao apiRequestDao, AppApiAcceptDao apiAcceptDao) { private readonly AppWmsTaskDao _wmsTaskDao = wmsTaskDao; private readonly AppWcsTaskDao _wcsTaskDao = wcsTaskDao; private readonly AppApiRequestDao _apiRequestDao = apiRequestDao; private readonly AppApiAcceptDao _apiAcceptDao = apiAcceptDao; /* 定时清除 WMS 任务表 */ /// /// 清理超过一定时间的 WMS 任务表数据 /// /// public int ClearWmsTaskData(int days) { return _wmsTaskDao.ClearData(days); } /* 定时清除 WCS 任务备份表 */ /// /// 清理超过一定天数的 WCS 任务备份表数据 /// /// public int ClearWcsTaskData(int days) { return _wcsTaskDao.ClearData(days); } /* 定时清除 日志文件 */ /// /// 清理日志文件 /// /// public int ClearLogFile(int days) { int clearCount = 0; string LogAddress = AppDomain.CurrentDomain.BaseDirectory + "\\Log"; DirectoryInfo di = new(LogAddress); if (!di.Exists) return clearCount; var directories = di.GetDirectories(); if (directories.Length <= 0) return clearCount; foreach (DirectoryInfo directory in directories) { var files = directory.GetFiles(); if (files.Length <= 0) continue; foreach (FileInfo fileInfo in files) { try { string fileName = fileInfo.Name; DateTime? time = fileName.ToDateTime(); if (time == default) continue; TimeSpan? ts = (DateTime.Now - time!); if (ts?.Days > days) // --------------------------------- 日志保存的天数 { fileInfo.Delete(); clearCount++; } } catch { } // 无论任何情况都放弃执行 } } return clearCount; } /* 定时清除接口请求表 */ /// /// 清理接口发送信息表 /// /// public int ClearApiRequestData(int days) { return _apiRequestDao.ClearData(days); } /* 定时清除接口接收表 */ /// /// 清理接口接收信息表 /// /// public int ClearApiAcceptData(int days) { return _apiAcceptDao.ClearData(days); } }