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 ClearConveyTask(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;
}
}