| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- using Winsoft.GOV.Framework.Model;
- using Winsoft.GOV.Framework.Provider;
- using System.Configuration;
- namespace Winsoft.GOV.ConsoleSyncData
- {
- class Program
- {
- static Dictionary<County, PowerMattersDetail> countyOfLastUpdateTime = new Dictionary<County, PowerMattersDetail>();
- static void Main(string[] args)
- {
- foreach(County c in (County[])(Enum.GetValues(typeof(County)))){
- DateTime t = GetUpdateDate(c);
- PowerMattersDetail last = new PowerMattersDetail
- {
- UPDATE_DATE = t
- };
- countyOfLastUpdateTime.Add(c, last);
- }
-
- try
- {
- while (true)
- {
-
- if (pms != null && pms.Count() > 0)
- {
- t = pms.Last().UPDATE_DATE;
- continue;
- }
- else
- {
- SaveUpdateDate(t);
- Console.WriteLine("休眠1小时");
- Thread.Sleep(3600000);
- }
- }
- }
- catch(Exception e)
- {
- Console.WriteLine(e.Message);
- Console.ReadKey();
- }
- }
- static bool Update(County c)
- {
- do
- {
- DateTime t = countyOfLastUpdateTime[c].UPDATE_DATE;
- Console.WriteLine(c.ToString() + "最近更新时间:" + t.ToString());
- try
- {
- IEnumerable<PowerMattersDetail> pms = ProvidersFactory.GetQLSXProvider(c).Select(t);
- if (pms.Count() == 0)
- break;
- foreach (PowerMattersDetail pm in pms)
- {
- if (pm.QL_NAME.First<char>() == '$')
- {
- Console.WriteLine(String.Format("忽略--权力单位:{0}; 数据推送时间:{1}", pm.QL_DEP, pm.UPDATE_DATE.ToString()));
- continue;
- }
- Branch b = ProvidersFactory.GetBranchProvider(c).Find(pm.OUGUID);
- if (b == null)
- {
- b = new Branch()
- {
- ShortName = pm.QL_DEP,
- GUID = pm.OUGUID,
- Position = 999
- };
- ProvidersFactory.GetBranchProvider(c).Insert(b);
- }
- ProvidersFactory.GetPowerMettersDetailProvider(c).UpdateOrInsert(pm);
- PowerMattersBase p = new PowerMattersBase()
- {
- QL_NAME = pm.QL_NAME,
- QL_INNER_CODE = pm.QL_INNER_CODE,
- QL_DEP = b.ShortName,
- OUGUID = pm.OUGUID,
- QL_STATE = pm.QL_STATE
- };
- if (!ProvidersFactory.GetPowerMettersBaseProvider(c).IsExistByQL_INNER_CODE(pm.QL_INNER_CODE))
- {
- Console.WriteLine(String.Format("新增--权力单位:{0}; 数据推送时间:{1}", p.QL_DEP, pm.UPDATE_DATE.ToString()));
- ProvidersFactory.GetPowerMettersBaseProvider(c).Insert(p);
- }
- else
- {
- Console.WriteLine(String.Format("更新--权力单位:{0}; 数据推送时间:{1}", p.QL_DEP, pm.UPDATE_DATE.ToString()));
- ProvidersFactory.GetPowerMettersBaseProvider(c).Update(p);
- }
- }
- }
- catch(Exception e)
- {
- Console.WriteLine("更新" + c.ToString() + "权力数据库时,发生错误!");
- Console.WriteLine(e.Message);
- return false;
- }
- } while (true);
- return true;
- }
- private static DateTime GetUpdateDate(County c)
- {
- //获取Configuration对象
- DateTime t = DateTime.Now;
- Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
- if (config.AppSettings.Settings["UpdateDate"] == null)
- {
- t = ProvidersFactory.GetPowerMettersDetailProvider(c).FindLastUpdateDate();
- return t;
- }
- else
- {
-
- DateTime t2 = ProvidersFactory.GetPowerMettersDetailProvider(c).FindLastUpdateDate();
- if (DateTime.TryParse(config.AppSettings.Settings["UpdateDate"].Value, out t))
- {
- Console.WriteLine("是否指定开始时间?");
- if (Console.ReadKey().KeyChar == 'y')
- {
- return t;
- }
- return t > t2 ? t : t2;
- }
- else
- return t2;
- }
- }
-
- private static void SaveUpdateDate(DateTime t, County c)
- {
- Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
- if (config.AppSettings.Settings[c.ToString() + "UpdateDate"] == null)
- {
- config.AppSettings.Settings.Add(c.ToString() + "UpdateDate", t.ToString());
- }
- else
- {
- config.AppSettings.Settings[c.ToString() + "UpdateDate"].Value = t.ToString();
- }
- config.Save(ConfigurationSaveMode.Modified);
- ConfigurationManager.RefreshSection("appSettings");
- }
- }
- }
|