Program.cs 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading;
  6. using System.Threading.Tasks;
  7. using Winsoft.GOV.Framework.Model;
  8. using Winsoft.GOV.Framework.Provider;
  9. using System.Configuration;
  10. namespace Winsoft.GOV.ConsoleSyncData
  11. {
  12. class Program
  13. {
  14. static void Main(string[] args)
  15. {
  16. DateTime t = GetUpdateDate();
  17. PowerMattersDetail last = new PowerMattersDetail {
  18. UPDATE_DATE = t
  19. };
  20. try
  21. {
  22. while (true)
  23. {
  24. Console.WriteLine("最近更新时间:" + t.ToString());
  25. IEnumerable<PowerMattersDetail> pms = QLSXProvider.Instance.Select(t);
  26. foreach (PowerMattersDetail pm in pms)
  27. {
  28. if (pm.QL_NAME.First<char>() == '$')
  29. {
  30. Console.WriteLine(String.Format("忽略--权力单位:{0}; 数据推送时间:{1}", pm.QL_DEP, pm.UPDATE_DATE.ToString()));
  31. continue;
  32. }
  33. Branch b = BranchProvider.Instance.Find(pm.OUGUID);
  34. if (b == null)
  35. {
  36. b = new Branch()
  37. {
  38. ShortName = pm.QL_DEP,
  39. GUID = pm.OUGUID,
  40. Position = 999
  41. };
  42. BranchProvider.Instance.Insert(b);
  43. }
  44. PowerMettersDetailProvider.Instance.UpdateOrInsert(pm);
  45. PowerMattersBase p = new PowerMattersBase()
  46. {
  47. QL_NAME = pm.QL_NAME,
  48. QL_INNER_CODE = pm.QL_INNER_CODE,
  49. QL_DEP = b.ShortName,
  50. OUGUID = pm.OUGUID,
  51. QL_STATE = pm.QL_STATE
  52. };
  53. if (!PowerMettersBaseProvider.Instance.IsExistByQL_INNER_CODE(pm.QL_INNER_CODE))
  54. {
  55. Console.WriteLine(String.Format("新增--权力单位:{0}; 数据推送时间:{1}", p.QL_DEP, pm.UPDATE_DATE.ToString()));
  56. PowerMettersBaseProvider.Instance.Insert(p);
  57. }
  58. else
  59. {
  60. Console.WriteLine(String.Format("更新--权力单位:{0}; 数据推送时间:{1}", p.QL_DEP, pm.UPDATE_DATE.ToString()));
  61. PowerMettersBaseProvider.Instance.Update(p);
  62. }
  63. }
  64. if (pms != null && pms.Count() > 0)
  65. {
  66. t = pms.Last().UPDATE_DATE;
  67. continue;
  68. }
  69. else
  70. {
  71. SaveUpdateDate(t);
  72. Console.WriteLine("休眠1小时");
  73. Thread.Sleep(3600000);
  74. }
  75. }
  76. }
  77. catch(Exception e)
  78. {
  79. Console.WriteLine(e.Message);
  80. Console.ReadKey();
  81. }
  82. }
  83. private static DateTime GetUpdateDate()
  84. {
  85. //获取Configuration对象
  86. DateTime t = DateTime.Now;
  87. Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
  88. if (config.AppSettings.Settings["UpdateDate"] == null)
  89. {
  90. t = PowerMettersDetailProvider.Instance.FindLastUpdateDate();
  91. return t;
  92. }
  93. else
  94. {
  95. DateTime t2 = PowerMettersDetailProvider.Instance.FindLastUpdateDate();
  96. if (DateTime.TryParse(config.AppSettings.Settings["UpdateDate"].Value, out t))
  97. {
  98. Console.WriteLine("是否指定开始时间?");
  99. if (Console.ReadKey().KeyChar == 'y')
  100. {
  101. return t;
  102. }
  103. return t > t2 ? t : t2;
  104. }
  105. else
  106. return t2;
  107. }
  108. }
  109. private static void SaveUpdateDate(DateTime t)
  110. {
  111. Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
  112. if (config.AppSettings.Settings["UpdateDate"] == null)
  113. {
  114. config.AppSettings.Settings.Add("UpdateDate", t.ToString());
  115. }
  116. else
  117. {
  118. config.AppSettings.Settings["UpdateDate"].Value = t.ToString();
  119. }
  120. config.Save(ConfigurationSaveMode.Modified);
  121. ConfigurationManager.RefreshSection("appSettings");
  122. }
  123. }
  124. }