From 7d6e151757c0b2664a41f0340c5f3d3cd7e3735c Mon Sep 17 00:00:00 2001 From: yibo <361071264@qq.com> Date: Tue, 12 Jun 2018 10:48:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=A1=A3=E6=A1=88=E6=8C=89?= =?UTF-8?q?=E7=85=A7=E9=A2=91=E7=8E=87=E5=BD=92=E7=B1=BB=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- B3ClientService/Tasks/SyncInfoFromServer.cs | 274 +++++++++++++------- 1 file changed, 182 insertions(+), 92 deletions(-) diff --git a/B3ClientService/Tasks/SyncInfoFromServer.cs b/B3ClientService/Tasks/SyncInfoFromServer.cs index 0f05416..b799ea5 100644 --- a/B3ClientService/Tasks/SyncInfoFromServer.cs +++ b/B3ClientService/Tasks/SyncInfoFromServer.cs @@ -39,21 +39,21 @@ namespace BWP.B3ClientService.Tasks if (ex.Message != "Can only start once") throw; } - SyncWpfUser(); - SyncUserEmployee(); - SyncEmployee(); - SyncEmpInfoTable(); + //SyncWpfUser(); + //SyncUserEmployee(); + //SyncEmployee(); + //SyncEmpInfoTable(); SyncCar(); - SyncLivestock(); - SyncPurchaseType(); + //SyncLivestock(); + //SyncPurchaseType(); SyncSupplier(); SyncZone(); SyncFarmer(); - SyncHogGrade(); - SyncLiveColonyHouse(); - SyncSanction(); - SyncLiveVarieties(); - SyncBodyDiscontItem(); + //SyncHogGrade(); + //SyncLiveColonyHouse(); + //SyncSanction(); + //SyncLiveVarieties(); + //SyncBodyDiscontItem(); //SyncClientGoodsSet(); //SyncCustomer(); //SyncDeliverGoodsLine(); @@ -184,6 +184,150 @@ namespace BWP.B3ClientService.Tasks // } //} + void SyncCar() + { + SyncBaseInfo("GetCar"); + } + + void SyncBaseInfoFromString(string rpcMethodName, string rpcClassName = null) + where T : BWP.B3ClientService.BO.BaseInfo, new() + { + if (rpcClassName == null) + rpcClassName = "TouchScreenRpcs"; + var result = RpcFacade.Call(string.Format("/MainSystem/B3ButcherManage/Rpcs/{0}/{1}", rpcClassName, rpcMethodName)); + var list = serializer.Deserialize>>(result); + var dmoInfo = DmoInfo.Get(typeof(T)); + using (var context = new TransactionContext()) + { + var sql1 = string.Format(@"truncate table [{0}];", dmoInfo.MappedDBObject); + context.Session.ExecuteSqlNonQuery(sql1); + foreach (var item in list) + { + var entity = new T(); + entity.ID = item.Item1; + entity.Name = item.Item2; + entity.Spell = item.Item3; + context.Session.Insert(entity); + } + context.Commit(); + } + } + + void SyncSupplier() + { + var list = RpcFacade.Call>("/MainSystem/B3ButcherManage/Rpcs/TouchScreenRpcs/GetSupplier"); + using (var context = new TransactionContext()) + { + var sql1 = @"truncate table [B3ClientService_Supplier];"; + context.Session.ExecuteSqlNonQuery(sql1); + foreach (RpcObject o in list) + { + var entity = new Supplier(); + entity.ID = o.Get("ID"); + entity.Name = o.Get("Name"); + entity.Spell = o.Get("Spell"); + entity.IDCardNumber = o.Get("Card_ID"); + entity.BankAccount = o.Get("BankAccount"); + context.Session.Insert(entity); + } + context.Commit(); + } + } + + void SyncZone() + { + SyncBaseInfo("GetZone"); + } + + void SyncFarmer() + { + var list = RpcFacade.Call>("/MainSystem/B3ButcherManage/Rpcs/TouchScreenRpcs/GetFarmer"); + using (var context = new TransactionContext()) + { + var sql1 = @"truncate table [B3ClientService_Farmer];"; + context.Session.ExecuteSqlNonQuery(sql1); + foreach (RpcObject o in list) + { + var entity = new Farmer(); + entity.ID = o.Get("ID"); + entity.Name = o.Get("Name"); + entity.Spell = o.Get("Spell"); + entity.Tel = o.Get("Tel"); + entity.Address = o.Get("Address"); + entity.IDCard = o.Get("IDCard"); + entity.BankAccount = o.Get("BankAccount"); + context.Session.Insert(entity); + } + context.Commit(); + } + } + + void SyncBaseInfo(string rpcMethodName, string rpcClassName = null) + where T : BWP.B3ClientService.BO.BaseInfo, new() + { + if (rpcClassName == null) + rpcClassName = "TouchScreenRpcs"; + var list = RpcFacade.Call>(string.Format("/MainSystem/B3ButcherManage/Rpcs/{0}/{1}", rpcClassName, rpcMethodName)); + var dmoInfo = DmoInfo.Get(typeof(T)); + using (var context = new TransactionContext()) + { + var sql1 = string.Format(@"truncate table [{0}];", dmoInfo.MappedDBObject); + context.Session.ExecuteSqlNonQuery(sql1); + foreach (RpcObject o in list) + { + var entity = new T(); + entity.ID = o.Get("ID"); + entity.Name = o.Get("Name"); + entity.Spell = o.Get("Spell"); + if (entity is Car) + { + var car = entity as Car; + car.Driver_IDCard = o.Get("Driver_IDCard"); + context.Session.Insert(car); + } + else + context.Session.Insert(entity); + } + context.Commit(); + } + } + + public string Name + { + get { return "从B3同步基础信息到Server服务器"; } + } + } + + public class SyncInfoLowRate : ITimerTask + { + public void Execute() + { + var serverUri = ServerHost.GetServerUrl(); + if (string.IsNullOrEmpty(serverUri)) + { + try + { + RpcFacade.Init(serverUri, "B3ClientServer"); + } + catch (Exception ex) + { + if (ex.Message != "Can only start once") + throw; + } + SyncWpfUser(); + SyncUserEmployee(); + SyncEmployee(); + SyncEmpInfoTable(); + SyncLivestock(); + SyncPurchaseType(); + SyncHogGrade(); + SyncLiveColonyHouse(); + SyncSanction(); + SyncLiveVarieties(); + SyncBodyDiscontItem(); + } + } + static void SyncWpfUser() { var list = RpcFacade.Call>("/MainSystem/B3ButcherManage/Rpcs/TouchScreenRpcs/GetWpfUser"); @@ -280,15 +424,10 @@ namespace BWP.B3ClientService.Tasks } } - void SyncCar() - { - SyncBaseInfo("GetCar"); - } - void SyncLivestock() { var result = RpcFacade.Call("/MainSystem/B3ButcherManage/Rpcs/TouchScreenRpcs/GetLivestock"); - var list = serializer.Deserialize>>(result); + var list = JsonConvert.DeserializeObject>>(result); using (var context = new TransactionContext()) { var sql1 = @"truncate table [B3ClientService_Livestock];"; @@ -312,84 +451,11 @@ namespace BWP.B3ClientService.Tasks SyncBaseInfoFromString("GetBodyDiscontItem"); } - void SyncBaseInfoFromString(string rpcMethodName, string rpcClassName = null) - where T : BWP.B3ClientService.BO.BaseInfo, new() - { - if (rpcClassName == null) - rpcClassName = "TouchScreenRpcs"; - var result = RpcFacade.Call(string.Format("/MainSystem/B3ButcherManage/Rpcs/{0}/{1}", rpcClassName, rpcMethodName)); - var list = serializer.Deserialize>>(result); - var dmoInfo = DmoInfo.Get(typeof(T)); - using (var context = new TransactionContext()) - { - var sql1 = string.Format(@"truncate table [{0}];", dmoInfo.MappedDBObject); - context.Session.ExecuteSqlNonQuery(sql1); - foreach (var item in list) - { - var entity = new T(); - entity.ID = item.Item1; - entity.Name = item.Item2; - entity.Spell = item.Item3; - context.Session.Insert(entity); - } - context.Commit(); - } - } - void SyncPurchaseType() { SyncBaseInfo("GetPurchaseType"); } - void SyncSupplier() - { - var list = RpcFacade.Call>("/MainSystem/B3ButcherManage/Rpcs/TouchScreenRpcs/GetSupplier"); - using (var context = new TransactionContext()) - { - var sql1 = @"truncate table [B3ClientService_Supplier];"; - context.Session.ExecuteSqlNonQuery(sql1); - foreach (RpcObject o in list) - { - var entity = new Supplier(); - entity.ID = o.Get("ID"); - entity.Name = o.Get("Name"); - entity.Spell = o.Get("Spell"); - entity.IDCardNumber = o.Get("Card_ID"); - entity.BankAccount = o.Get("BankAccount"); - context.Session.Insert(entity); - } - context.Commit(); - } - } - - void SyncZone() - { - SyncBaseInfo("GetZone"); - } - - void SyncFarmer() - { - var list = RpcFacade.Call>("/MainSystem/B3ButcherManage/Rpcs/TouchScreenRpcs/GetFarmer"); - using (var context = new TransactionContext()) - { - var sql1 = @"truncate table [B3ClientService_Farmer];"; - context.Session.ExecuteSqlNonQuery(sql1); - foreach (RpcObject o in list) - { - var entity = new Farmer(); - entity.ID = o.Get("ID"); - entity.Name = o.Get("Name"); - entity.Spell = o.Get("Spell"); - entity.Tel = o.Get("Tel"); - entity.Address = o.Get("Address"); - entity.IDCard = o.Get("IDCard"); - entity.BankAccount = o.Get("BankAccount"); - context.Session.Insert(entity); - } - context.Commit(); - } - } - void SyncHogGrade() { SyncBaseInfo("GetHogGrade"); @@ -424,8 +490,32 @@ namespace BWP.B3ClientService.Tasks SyncBaseInfo("GetLiveVarieties"); } + void SyncBaseInfoFromString(string rpcMethodName, string rpcClassName = null) + where T : BWP.B3ClientService.BO.BaseInfo, new() + { + if (rpcClassName == null) + rpcClassName = "TouchScreenRpcs"; + var result = RpcFacade.Call(string.Format("/MainSystem/B3ButcherManage/Rpcs/{0}/{1}", rpcClassName, rpcMethodName)); + var list = JsonConvert.DeserializeObject>>(result); + var dmoInfo = DmoInfo.Get(typeof(T)); + using (var context = new TransactionContext()) + { + var sql1 = string.Format(@"truncate table [{0}];", dmoInfo.MappedDBObject); + context.Session.ExecuteSqlNonQuery(sql1); + foreach (var item in list) + { + var entity = new T(); + entity.ID = item.Item1; + entity.Name = item.Item2; + entity.Spell = item.Item3; + context.Session.Insert(entity); + } + context.Commit(); + } + } + void SyncBaseInfo(string rpcMethodName, string rpcClassName = null) - where T : BWP.B3ClientService.BO.BaseInfo, new() + where T : BWP.B3ClientService.BO.BaseInfo, new() { if (rpcClassName == null) rpcClassName = "TouchScreenRpcs"; @@ -456,7 +546,7 @@ namespace BWP.B3ClientService.Tasks public string Name { - get { return "从B3同步基础信息到Server服务器"; } + get { return "基础信息同步_低频率"; } } } }