DataClearHandler.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System;
  2. using System.ComponentModel;
  3. using WCS.Core;
  4. namespace WCS.Service
  5. {
  6. [Description("数据清理")]
  7. internal class DataClearHandler : LogicHandler
  8. {
  9. public override void Start()
  10. {
  11. }
  12. private DateTime last = DateTime.MinValue;
  13. public override void Update(double milliseconds)
  14. {
  15. //if ((DateTime.Now - last).TotalMilliseconds < 1000 * 60 * 60 * 24)
  16. // return;
  17. //last = DateTime.Now;
  18. //DB.Do(db =>
  19. //{
  20. // db.Default.Database.ExecuteSqlRaw("delete WCS_EXCEPTION where datediff(dd,UPDATETIME,getdate())>7");
  21. // db.Default.Database.ExecuteSqlRaw("delete WCS_StatusLog where datediff(dd,UPDATETIME,getdate())>15");
  22. // var ps = db.Default.GetType().GetProperties();
  23. // foreach (var p in ps)
  24. // {
  25. // if (!p.PropertyType.IsGenericType)
  26. // continue;
  27. // var tType = p.PropertyType.GenericTypeArguments[0];
  28. // if (!tType.IsSubclassOf(typeof(WCS_PROTOCOLDATA)))
  29. // continue;
  30. // var sSql = $"Delete {tType.Name} where datediff(dd,Frame,getdate())>7";
  31. // db.Default.Database.ExecuteSqlRaw(sSql);
  32. // DBHelper.DbLog.DB_CLEAN(sSql);
  33. // }
  34. // var copySql = @"INSERT INTO WCS_TASK_OLD (ID,BARCODE,TYPE,STATUS,ADDRFROM,ADDRTO,ADDRNEXT,TUNNEL,FLOOR,
  35. // DEVICE,SRMSTATION,CREATETIME,STARTTIME,ENDTIME,DOCID,PALLETTYPE,PRODLINE,FULLQTY,HEIGHT,
  36. // WMSTASK,TaskGroupKey,UPLOADED,AgvTask,Priority,ManualRemarks,ENABLED,UPDATEUSER,UPDATETIME,
  37. // Length,MaterialCode) SELECT
  38. // ID,BARCODE,TYPE,STATUS,ADDRFROM,ADDRTO,ADDRNEXT,TUNNEL,FLOOR,DEVICE,SRMSTATION,CREATETIME,
  39. // STARTTIME,ENDTIME,DOCID,PALLETTYPE,PRODLINE,FULLQTY,HEIGHT,WMSTASK,TaskGroupKey,UPLOADED,AgvTask,
  40. // Priority,ManualRemarks,ENABLED,UPDATEUSER,UPDATETIME,Length,MaterialCode FROM WCS_TASK WHERE STATUS >=99 AND UPDATETIME < DATEADD(DAY, -3, GETDATE())";
  41. // db.Default.Database.ExecuteSqlRaw(copySql);
  42. // var clearSql = "DELETE FROM WCS_TASK WHERE STATUS >=99 AND UPDATETIME < DATEADD(DAY, -3, GETDATE())";
  43. // db.Default.Database.ExecuteSqlRaw(clearSql);
  44. //});
  45. }
  46. }
  47. }