| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 
							- using DBHelper;
 
- using Microsoft.EntityFrameworkCore;
 
- using System;
 
- using System.ComponentModel;
 
- using WCS.Core;
 
- using WCS.Entity;
 
- namespace WCS.Service
 
- {
 
-     [Description("数据清理")]
 
-     internal class DataClearHandler : LogicHandler
 
-     {
 
-         public override void Start()
 
-         {
 
-         }
 
-         private DateTime last = DateTime.MinValue;
 
-         public override void Update(double milliseconds)
 
-         {
 
-             if ((DateTime.Now - last).TotalMilliseconds < 1000 * 60 * 60 * 24)
 
-                 return;
 
-             last = DateTime.Now;
 
-             DB.Do(db =>
 
-             {
 
-                 db.Default.Database.ExecuteSqlRaw("delete WCS_EXCEPTION where datediff(dd,UPDATETIME,getdate())>7");
 
-                 var ps = db.Default.GetType().GetProperties();
 
-                 foreach (var p in ps)
 
-                 {
 
-                     if (!p.PropertyType.IsGenericType)
 
-                         continue;
 
-                     var tType = p.PropertyType.GenericTypeArguments[0];
 
-                     if (!tType.IsSubclassOf(typeof(WCS_PROTOCOLDATA)))
 
-                         continue;
 
-                     var sSql = $"Delete {tType.Name} where datediff(dd,Frame,getdate())>7";
 
-                     db.Default.Database.ExecuteSqlRaw(sSql);
 
-                     DBHelper.DbLog.DB_CLEAN(sSql);
 
-                 }
 
-                 var copySql = "INSERT INTO WCS_TASK_OLD (ID,BARCODE,TYPE,STATUS,ADDRFROM,ADDRTO,ADDRNEXT,TUNNEL,FLOOR,DEVICE,SRMSTATION,CREATETIME,STARTTIME,ENDTIME,DOCID,PALLETTYPE,PRODLINE,FULLQTY,HEIGHT,WMSTASK,TaskGroupKey,UPLOADED,AgvTask,Priority,ManualRemarks,ENABLED,UPDATEUSER,UPDATETIME,Length) SELECT ID,BARCODE,TYPE,STATUS,ADDRFROM,ADDRTO,ADDRNEXT,TUNNEL,FLOOR,DEVICE,SRMSTATION,CREATETIME,STARTTIME,ENDTIME,DOCID,PALLETTYPE,PRODLINE,FULLQTY,HEIGHT,WMSTASK,TaskGroupKey,UPLOADED,AgvTask,Priority,ManualRemarks,ENABLED,UPDATEUSER,UPDATETIME,Length FROM WCS_TASK WHERE STATUS >=99 AND UPDATETIME < DATEADD(DAY, -3, GETDATE())";
 
-                 db.Default.Database.ExecuteSqlRaw(copySql);
 
-                 var clearSql = "DELETE FROM WCS_TASK WHERE STATUS >=99 AND UPDATETIME < DATEADD(DAY, -3, GETDATE())";
 
-                 db.Default.Database.ExecuteSqlRaw(clearSql);
 
-             });
 
-         }
 
-     }
 
- }
 
 
  |