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, AppElTagTaskDao elTagTaskDao, AppConveyTaskDao conveyTaskDao) { private readonly AppWmsTaskDao _wmsTaskDao = wmsTaskDao; private readonly AppWcsTaskDao _wcsTaskDao = wcsTaskDao; private readonly AppApiRequestDao _apiRequestDao = apiRequestDao; private readonly AppApiAcceptDao _apiAcceptDao = apiAcceptDao; private readonly AppElTagTaskDao _elTagTaskDao = elTagTaskDao; private readonly AppConveyTaskDao _conveyTaskDao = conveyTaskDao; /* 定时清除 WMS 任务表 */ /// /// 清理超过一定时间的 WMS 任务表数据 /// /// public int ClearWmsTaskData(int days) => _wmsTaskDao.ClearData(days); /* 定时清除 WCS 任务备份表 */ /// /// 清理超过一定天数的 WCS 任务备份表数据 /// /// public int ClearWcsTaskData(int days) => _wcsTaskDao.ClearData(days); /* 定时清除接口请求表 */ /// /// 清理接口发送信息表 /// /// public int ClearApiRequestData(int days) => _apiRequestDao.ClearData(days); /* 定时清除接口接收表 */ /// /// 清理接口接收信息表 /// /// public int ClearApiAcceptData(int days) => _apiAcceptDao.ClearData(days); /// /// 清理多少天之前的电子标签任务 /// /// /// public int ClearElTagTaskData(int days) => _elTagTaskDao.ClearData(days); /// /// 清理输送线任务 /// /// /// public int ClearConveyTaskData(int days) => _conveyTaskDao.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; } }