<update>[important]更新添加反射获取数据库信息,清除指定天数前的记录
This commit is contained in:
parent
a36b6451fb
commit
89efbfca22
|
|
@ -59,6 +59,8 @@ public class StartCirculation
|
|||
break;
|
||||
}
|
||||
}
|
||||
/* 执行按时执行的任务 ---- 方法内判断,若没有此类方法则不会执行 */
|
||||
StartTimeTask();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -104,8 +106,6 @@ public class StartCirculation
|
|||
|
||||
}
|
||||
}
|
||||
/* 执行按时执行的任务 ---- 方法内判断,若没有此类方法则不会执行 */
|
||||
StartTimeTask();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -14,43 +14,17 @@ public class DataClear(ClearData clearData)
|
|||
/// 定时清理无用数据, ---- 每隔10分钟清理一次
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[CirculationTime(["10:11","10:12"], "数据清理")]
|
||||
[CirculationTime(["14:34"], "数据清理")]
|
||||
public void ClearDataCirculate()
|
||||
{
|
||||
try
|
||||
{
|
||||
// 清理接口接收记录表 -- 保留多少天
|
||||
int apiAcceptCount = clearData.ClearApiAcceptData(30);
|
||||
ConsoleLog.Tip(apiAcceptCount > 0, $"[数据清理]接口接收记录:{apiAcceptCount}");
|
||||
|
||||
// 清理日志文件 -- 清理多少天之前
|
||||
int logCount = clearData.ClearLogFile(60);
|
||||
int logCount = clearData.ClearLogFile(100);
|
||||
ConsoleLog.Tip(logCount > 0, $"[数据清理]日志文件:{logCount}");
|
||||
|
||||
// 清理接口请求记录表 -- 保留多少天
|
||||
int apiRequestCount = clearData.ClearApiRequestData(30);
|
||||
ConsoleLog.Tip(apiRequestCount > 0, $"[数据清理]接口请求记录:{apiRequestCount}");
|
||||
|
||||
// 清理WCS任务备份表 -- 保留多少天
|
||||
int apiWcsTaskCount = clearData.ClearWcsTaskData(30);
|
||||
ConsoleLog.Tip(apiWcsTaskCount > 0, $"[数据清理]WCS任务备份记录:{apiWcsTaskCount}");
|
||||
|
||||
// 清理WMS任务表 -- 保留多少天
|
||||
int apiWmsTaskCount = clearData.ClearWmsTaskData(30);
|
||||
ConsoleLog.Tip(apiWmsTaskCount > 0, $"[数据清理]WMS任务记录:{apiWmsTaskCount}");
|
||||
|
||||
// 清理电子标签任务
|
||||
int clearElTagCount = clearData.ClearElTagTaskData(30);
|
||||
ConsoleLog.Tip(clearElTagCount > 0, $"[数据清理]电子标签任务记录:{apiWmsTaskCount}");
|
||||
|
||||
/// 清理箱式线任务
|
||||
int clearConveyTaskCount = clearData.ClearConveyTaskData(30);
|
||||
ConsoleLog.Tip(clearConveyTaskCount > 0, $"[数据清理]箱式线任务记录:{apiWmsTaskCount}");
|
||||
|
||||
// 清理扫码记录表 -- 保留多少天
|
||||
int clearScanRecord = clearData.ClearScanRecordData(15);
|
||||
ConsoleLog.Tip(clearScanRecord > 0, $"[数据清理]清理扫码记录:{clearScanRecord}");
|
||||
|
||||
// 清理数据库
|
||||
clearData.ClearDataBase();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
using WcsMain.ExtendMethod;
|
||||
using WcsMain.DataBase.Dao;
|
||||
using WcsMain.WcsAttribute.AutoFacAttribute;
|
||||
using System.Reflection;
|
||||
using SqlSugar;
|
||||
using WcsMain.WcsAttribute.Clear;
|
||||
using WcsMain.Common;
|
||||
|
||||
namespace WcsMain.Business.CommonAction;
|
||||
|
||||
|
|
@ -11,6 +15,37 @@ namespace WcsMain.Business.CommonAction;
|
|||
public class ClearData(AppWmsTaskDao wmsTaskDao, AppWcsTaskDao wcsTaskDao, AppApiRequestDao apiRequestDao,
|
||||
AppApiAcceptDao apiAcceptDao, AppElTagTaskDao elTagTaskDao, AppConveyTaskDao conveyTaskDao, AppScanRecordDao scanRecordDao)
|
||||
{
|
||||
/// <summary>
|
||||
/// 扫描清理数据库
|
||||
/// </summary>
|
||||
public void ClearDataBase()
|
||||
{
|
||||
var assembly = Assembly.GetExecutingAssembly();
|
||||
var types = assembly.GetTypes();
|
||||
if (types.Length == 0) return;
|
||||
foreach (Type type in types)
|
||||
{
|
||||
var sqlSuagarTableAttribute = type.GetCustomAttribute<SugarTable>();
|
||||
if (sqlSuagarTableAttribute == null) continue;
|
||||
var clearTableAttribute = type.GetCustomAttribute<ClearTableAttribute>();
|
||||
if(clearTableAttribute == null) continue;
|
||||
var tableName = sqlSuagarTableAttribute.TableName; // 表名
|
||||
var timeColumn = clearTableAttribute.TimeColumn; // 时间字段
|
||||
var saveDays = clearTableAttribute.SaveDays; // 需要保存的天数
|
||||
try
|
||||
{
|
||||
int deleteCount = CommonTool.DbServe.Deleteable<object>().AS($"{tableName}").Where($"{timeColumn} < '{DateTime.Now.AddDays(-saveDays)}'").ExecuteCommand(); // 删除超过一定天数的记录
|
||||
ConsoleLog.Info(deleteCount > 0, $"清除表:{tableName},保留:{saveDays} 天,清除记录数目:{deleteCount}");
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
ConsoleLog.Exception($"【异常】尝试清除指定表的记录失败,表名:{tableName},异常信息:{e.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* 定时清除 WMS 任务表 */
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
using System.Text;
|
||||
using System.Text.Json.Serialization;
|
||||
using SqlSugar;
|
||||
using WcsMain.WcsAttribute.Clear;
|
||||
|
||||
namespace WcsMain.DataBase.TableEntity;
|
||||
|
||||
|
|
@ -8,6 +9,7 @@ namespace WcsMain.DataBase.TableEntity;
|
|||
/// 接口接收记录表
|
||||
/// </summary>
|
||||
[SugarTable("tbl_app_api_accept")]
|
||||
[ClearTable("request_time", 30)]
|
||||
public class AppApiAccept
|
||||
{
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System.Text.Json.Serialization;
|
||||
using SqlSugar;
|
||||
using WcsMain.WcsAttribute.Clear;
|
||||
|
||||
namespace WcsMain.DataBase.TableEntity;
|
||||
|
||||
|
|
@ -7,6 +8,7 @@ namespace WcsMain.DataBase.TableEntity;
|
|||
/// 接口请求类,存放请求的信息
|
||||
/// </summary>
|
||||
[SugarTable("tbl_app_api_request")]
|
||||
[ClearTable("request_time", 30)]
|
||||
public class AppApiRequest
|
||||
{
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using SqlSugar;
|
||||
using System.Text.Json.Serialization;
|
||||
using WcsMain.WcsAttribute.Clear;
|
||||
|
||||
namespace WcsMain.DataBase.TableEntity;
|
||||
|
||||
|
|
@ -7,6 +8,7 @@ namespace WcsMain.DataBase.TableEntity;
|
|||
/// 输送线任务表
|
||||
/// </summary>
|
||||
[SugarTable("tbl_app_convey_task")]
|
||||
[ClearTable("create_time", 30)]
|
||||
public class AppConveyTask
|
||||
{
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
using SqlSugar;
|
||||
using System.Text.Json.Serialization;
|
||||
using WcsMain.WcsAttribute.Clear;
|
||||
|
||||
namespace WcsMain.DataBase.TableEntity;
|
||||
|
||||
[SugarTable("tbl_app_eltag_task")]
|
||||
[ClearTable("create_time", 30)]
|
||||
public class AppElTagTask
|
||||
{
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using SqlSugar;
|
||||
using System.Text.Json.Serialization;
|
||||
using WcsMain.WcsAttribute.Clear;
|
||||
|
||||
namespace WcsMain.DataBase.TableEntity;
|
||||
|
||||
|
|
@ -7,6 +8,7 @@ namespace WcsMain.DataBase.TableEntity;
|
|||
/// 扫码记录
|
||||
/// </summary>
|
||||
[SugarTable("tbl_app_scan_record")]
|
||||
[ClearTable("scan_time", 15)]
|
||||
public class AppScanRecord
|
||||
{
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System.Text.Json.Serialization;
|
||||
using SqlSugar;
|
||||
using WcsMain.WcsAttribute.Clear;
|
||||
|
||||
namespace WcsMain.DataBase.TableEntity;
|
||||
|
||||
|
|
@ -8,6 +9,7 @@ namespace WcsMain.DataBase.TableEntity;
|
|||
/// Wcs任务表
|
||||
/// </summary>
|
||||
[SugarTable("tbl_app_wcs_task")]
|
||||
[ClearTable("create_time", 30)]
|
||||
public class AppWcsTask
|
||||
{
|
||||
|
||||
|
|
|
|||
170
WcsMain/DataBase/TableEntity/AppWcsTaskBak.cs
Normal file
170
WcsMain/DataBase/TableEntity/AppWcsTaskBak.cs
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
using SqlSugar;
|
||||
using System.Text.Json.Serialization;
|
||||
using WcsMain.WcsAttribute.Clear;
|
||||
|
||||
namespace WcsMain.DataBase.TableEntity;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// tbl_app_wcs_task_bak
|
||||
/// Wcs任务表 ---- 备份表
|
||||
/// </summary>
|
||||
[SugarTable("tbl_app_wcs_task_bak")]
|
||||
[ClearTable("create_time", 30)]
|
||||
public class AppWcsTaskBak
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Plc任务号
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true, ColumnName = "plc_id")]
|
||||
[JsonPropertyName("plcId")]
|
||||
public int? PlcId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 下一个任务号,若没有下一个任务则此处是默认值
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "next_plc_id")]
|
||||
[JsonPropertyName("nextPlcId")]
|
||||
public int? NextPlcId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务号
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "task_id")]
|
||||
[JsonPropertyName("taskId")]
|
||||
public string? TaskId { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 任务类别
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "task_category")]
|
||||
[JsonPropertyName("taskCategory")]
|
||||
public int? TaskCategory { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 任务类型
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "task_type")]
|
||||
[JsonPropertyName("taskType")]
|
||||
public int? TaskType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务排序
|
||||
/// 999表示最后一个任务
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "task_sort")]
|
||||
[JsonPropertyName("taskSort")]
|
||||
public int? TaskSort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务状态
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "task_status")]
|
||||
[JsonPropertyName("taskStatus")]
|
||||
public int? TaskStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务优先级
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "priority")]
|
||||
[JsonPropertyName("priority")]
|
||||
public int? Priority { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务起点
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "origin")]
|
||||
[JsonPropertyName("origin")]
|
||||
public string? Origin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务终点
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "destination")]
|
||||
[JsonPropertyName("destination")]
|
||||
public string? Destination { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Wms创建时间
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "wms_time")]
|
||||
[JsonPropertyName("wmsTime")]
|
||||
public DateTime? WmsTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "create_time")]
|
||||
[JsonPropertyName("createTime")]
|
||||
public DateTime? CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 写入PLC的载具编号
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "plc_vehicle_no")]
|
||||
[JsonPropertyName("plcVehicleNo")]
|
||||
public int? PlcVehicleNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 载具编号
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "vehicle_no")]
|
||||
[JsonPropertyName("vehicleNo")]
|
||||
public string? VehicleNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 载具尺寸
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "vehicle_size")]
|
||||
[JsonPropertyName("vehicleSize")]
|
||||
public int? VehicleSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 重量
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "weight")]
|
||||
[JsonPropertyName("weight")]
|
||||
public decimal? Weight { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 任务创建人
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "create_person")]
|
||||
[JsonPropertyName("createPerson")]
|
||||
public string? CreatePerson { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 开始时间
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "start_time")]
|
||||
[JsonPropertyName("startTime")]
|
||||
public DateTime? StartTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 完成时间
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "complete_time")]
|
||||
[JsonPropertyName("completeTime")]
|
||||
public DateTime? CompleteTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注信息
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "remark")]
|
||||
[JsonPropertyName("remark")]
|
||||
public string? Remark { get; set; }
|
||||
|
||||
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"任务号:{TaskId},Plc任务号:{PlcId}";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
using System.Text.Json.Serialization;
|
||||
using SqlSugar;
|
||||
using WcsMain.WcsAttribute.Clear;
|
||||
|
||||
namespace WcsMain.DataBase.TableEntity;
|
||||
|
||||
|
|
@ -8,6 +9,7 @@ namespace WcsMain.DataBase.TableEntity;
|
|||
/// wms任务表
|
||||
/// </summary>
|
||||
[SugarTable("tbl_app_wms_task")]
|
||||
[ClearTable("create_time", 30)]
|
||||
public class AppWmsTask
|
||||
{
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -51,8 +51,6 @@ public class WcsCirculation(IComponentContext componentContext) : StartCirculati
|
|||
/* END */
|
||||
}
|
||||
}
|
||||
/* 执行按时执行的任务 ---- 方法内判断,若没有此类方法则不会执行 */
|
||||
StartTimeTask();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
22
WcsMain/WcsAttribute/Clear/ClearTableAttribute.cs
Normal file
22
WcsMain/WcsAttribute/Clear/ClearTableAttribute.cs
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
namespace WcsMain.WcsAttribute.Clear;
|
||||
|
||||
/// <summary>
|
||||
/// 加上此特性用于标记自动清除的数据库表
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
public class ClearTableAttribute(string timeColumn, int saveDays) : Attribute
|
||||
{
|
||||
/// <summary>
|
||||
/// 时间列名
|
||||
/// </summary>
|
||||
public string TimeColumn { get; set; } = timeColumn;
|
||||
|
||||
/// <summary>
|
||||
/// 保存天数
|
||||
/// </summary>
|
||||
public int SaveDays { get; set; } = saveDays;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user