From 9348a7c953e068731c58aa2b8eeae95f9b3c0e14 Mon Sep 17 00:00:00 2001 From: yibo <361071264@qq.com> Date: Tue, 19 Sep 2017 21:19:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- B3ClientService/B3ClientService.csproj | 6 +- B3ClientService/BO/BaseInfo/Livestock.cs | 16 ++- .../GradeAndWeight/GradeAndWeight_Detail.cs | 32 +++++ .../BO/ButcherOrder/ButcherOrder.cs | 29 ----- .../BO/ButcherOrder/ButcherOrder_Detail.cs | 19 --- B3ClientService/CTuple.cs | 20 +++ .../Bill/GradeAndWeight/GradeAndWeight.cs | 20 +++ B3ClientService/Rpcs/BaseInfoRpc.cs | 21 +++- .../Rpcs/BillRpc/GradeAndWeightRpc.cs | 117 ++++++++++++++++++ B3ClientService/Rpcs/ButcherOrderRpc.cs | 74 ----------- B3ClientService/Tasks/SyncInfoFromServer.cs | 21 +++- 11 files changed, 240 insertions(+), 135 deletions(-) create mode 100644 B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs delete mode 100644 B3ClientService/BO/ButcherOrder/ButcherOrder.cs delete mode 100644 B3ClientService/BO/ButcherOrder/ButcherOrder_Detail.cs create mode 100644 B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs create mode 100644 B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs delete mode 100644 B3ClientService/Rpcs/ButcherOrderRpc.cs diff --git a/B3ClientService/B3ClientService.csproj b/B3ClientService/B3ClientService.csproj index 62b6918..449aa3f 100644 --- a/B3ClientService/B3ClientService.csproj +++ b/B3ClientService/B3ClientService.csproj @@ -77,6 +77,7 @@ + @@ -85,8 +86,6 @@ - - @@ -94,6 +93,7 @@ + @@ -107,8 +107,8 @@ + - diff --git a/B3ClientService/BO/BaseInfo/Livestock.cs b/B3ClientService/BO/BaseInfo/Livestock.cs index 9f8a857..46f14ae 100644 --- a/B3ClientService/BO/BaseInfo/Livestock.cs +++ b/B3ClientService/BO/BaseInfo/Livestock.cs @@ -1,13 +1,23 @@ -using System; +using Forks.EnterpriseServices.DomainObjects2; +using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using TSingSoft.WebPluginFramework; namespace BWP.B3ClientService.BO { - [Serializable] - public class Livestock : BaseInfo + [Serializable, BOClass] + [KeyField("ID", KeyGenType.assigned)] + public class Livestock { + public long ID { get; set; } + + public string Name { get; set; } + + public short Technics { get; set; } + + public int? SortNum { get; set; } } } diff --git a/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs new file mode 100644 index 0000000..bdd09cb --- /dev/null +++ b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs @@ -0,0 +1,32 @@ +using BWP.B3Frameworks.BO; +using Forks.EnterpriseServices.DomainObjects2; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace BWP.B3ClientService.BO +{ + public class GradeAndWeight_Detail : Base + { + public int Index { get; set; } + + public long OrderDetail_ID { get; set; } + + [ReferenceTo(typeof(OrderDetail), "Order")] + [Join("OrderDetail_ID", "ID")] + public int? Order { get; set; } + + public short Technics { get; set; } + + public string Technics_Name { get; set; } + + public long Livestock_ID { get; set; } + + public string Livestock_Name { get; set; } + + public decimal? Weight { get; set; } + + public DateTime Time { get; set; } + } +} diff --git a/B3ClientService/BO/ButcherOrder/ButcherOrder.cs b/B3ClientService/BO/ButcherOrder/ButcherOrder.cs deleted file mode 100644 index e111426..0000000 --- a/B3ClientService/BO/ButcherOrder/ButcherOrder.cs +++ /dev/null @@ -1,29 +0,0 @@ -using BWP.B3Frameworks.BO; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace BWP.B3ClientService.BO -{ - [Serializable] - public class ButcherOrder : Base - { - public long BillID { get; set; } - - public long BillDetailID { get; set; } - - public int Order { get; set; } - - public int PlanNumber { get; set; } - - public DateTime Date { get; set; } - - public int HotFadeNumber { get; set; } - - public bool Sync { get; set; } - - public bool UpLoad { get; set; } - } -} diff --git a/B3ClientService/BO/ButcherOrder/ButcherOrder_Detail.cs b/B3ClientService/BO/ButcherOrder/ButcherOrder_Detail.cs deleted file mode 100644 index 5feabea..0000000 --- a/B3ClientService/BO/ButcherOrder/ButcherOrder_Detail.cs +++ /dev/null @@ -1,19 +0,0 @@ -using BWP.B3Frameworks.BO; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace BWP.B3ClientService.BO -{ - [Serializable] - public class ButcherOrder_Detail : Base - { - public long ButcherOrder_ID { get; set; } - - public DateTime Date { get; set; } - - public int Number { get; set; } - } -} diff --git a/B3ClientService/CTuple.cs b/B3ClientService/CTuple.cs index be1ce1a..cb2ec88 100644 --- a/B3ClientService/CTuple.cs +++ b/B3ClientService/CTuple.cs @@ -39,4 +39,24 @@ namespace BWP.B3ClientService Item3 = t3; } } + + public class CTuple + { + public T1 Item1 { get; set; } + + public T2 Item2 { get; set; } + + public T3 Item3 { get; set; } + public T4 Item4 { get; set; } + public CTuple() + { } + + public CTuple(T1 t1, T2 t2, T3 t3, T4 t4) + { + Item1 = t1; + Item2 = t2; + Item3 = t3; + Item4 = t4; + } + } } diff --git a/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs b/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs new file mode 100644 index 0000000..2918a21 --- /dev/null +++ b/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace BWP.B3ClientService.RpcBO +{ + public class GradeAndWeight + { + public long OrderDetail_ID { get; set; } + + public int Order { get; set; } + + public string Technics_Name { get; set; } + + public int Number { get; set; } + + public int Already { get; set; } + } +} diff --git a/B3ClientService/Rpcs/BaseInfoRpc.cs b/B3ClientService/Rpcs/BaseInfoRpc.cs index 4e1328c..e081f6e 100644 --- a/B3ClientService/Rpcs/BaseInfoRpc.cs +++ b/B3ClientService/Rpcs/BaseInfoRpc.cs @@ -9,6 +9,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Web.Script.Serialization; using TSingSoft.WebPluginFramework; namespace BWP.B3ClientService.Rpcs @@ -16,18 +17,14 @@ namespace BWP.B3ClientService.Rpcs [Rpc] public static class BaseInfoRpc { + static JavaScriptSerializer serializer = new JavaScriptSerializer(); + [Rpc] public static List GetCarList(string input, string args, int top) { return GetBaseInfoList(input, args, top); } - [Rpc] - public static List GetLivestockList(string input, string args, int top) - { - return GetBaseInfoList(input, args, top); - } - [Rpc] public static List GetSupplierList(string input, string args, int top) { @@ -134,6 +131,18 @@ namespace BWP.B3ClientService.Rpcs return dmo.EExecuteList().Cast().ToList(); } + [Rpc] + public static string GetLivestock() + { + var query = new DQueryDom(new JoinAlias(typeof(Livestock))); + query.Columns.Add(DQSelectColumn.Field("ID")); + query.Columns.Add(DQSelectColumn.Field("Name")); + query.Columns.Add(DQSelectColumn.Field("Technics")); + query.OrderBy.Expressions.Add(DQOrderByExpression.Create("SortNum", false)); + var list = query.EExecuteList().Select(x => new CTuple(x.Item1, x.Item2, x.Item3)).ToList(); + return serializer.Serialize(list); + } + [Rpc] public static List GetLiveVarietiesList(string input, string args, int top) { diff --git a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs new file mode 100644 index 0000000..adbaf2d --- /dev/null +++ b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs @@ -0,0 +1,117 @@ +using BWP.B3ClientService.BO; +using BWP.B3ClientService.RpcBO; +using Forks.EnterpriseServices.DomainObjects2; +using Forks.EnterpriseServices.DomainObjects2.DQuery; +using Forks.EnterpriseServices.JsonRpc; +using Forks.EnterpriseServices.SqlDoms; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Web.Script.Serialization; +using TSingSoft.WebPluginFramework; + +namespace BWP.B3ClientService.Rpcs.BillRpc +{ + [Rpc] + public static class GradeAndWeightRpc + { + static JavaScriptSerializer serializer = new JavaScriptSerializer(); + + [Rpc] + public static string GetGradeAndWeightList(DateTime date) + { + var main = new JoinAlias(typeof(SecondOrder)); + var order = new JoinAlias(typeof(OrderDetail)); + var detail = new JoinAlias(typeof(GradeAndWeight_Detail)); + var query = new DQueryDom(main); + query.From.AddJoin(JoinType.Left, new DQDmoSource(order), DQCondition.EQ(main, "OrderDetail_ID", order, "ID")); + query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(main, "OrderDetail_ID", detail, "OrderDetail_ID")); + query.Columns.Add(DQSelectColumn.Field("OrderDetail_ID")); + query.Columns.Add(DQSelectColumn.Field("Order", order)); + query.Columns.Add(DQSelectColumn.Field("PlanNumber", order)); + query.Columns.Add(DQSelectColumn.Field("HotFadeNumber")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(detail, "Technics", 0), DQExpression.Value(1), DQExpression.Value(0))), "Tang")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(detail, "Technics", 1), DQExpression.Value(1), DQExpression.Value(0))), "Mao")); + query.GroupBy.Expressions.Add(DQExpression.Field("OrderDetail_ID")); + query.GroupBy.Expressions.Add(DQExpression.Field(order, "Order")); + query.GroupBy.Expressions.Add(DQExpression.Field(order, "PlanNumber")); + query.GroupBy.Expressions.Add(DQExpression.Field("HotFadeNumber")); + + query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsOk", true), DQCondition.Between(DQExpression.Field(order, "Date"), date, date + new TimeSpan(23, 59, 29)))); + var list = new List(); + using (var session = Dmo.NewSession()) + { + using (var reader = session.ExecuteReader(query)) + { + while (reader.Read()) + { + var tang = new GradeAndWeight(); + tang.OrderDetail_ID = (long)reader[0]; + tang.Order = (int)reader[1]; + tang.Number = (int)reader[3]; + if (tang.Number != 0) + { + tang.Technics_Name = "烫褪"; + tang.Already = Convert.ToInt32(reader[4]); + list.Add(tang); + } + + var lastNumber = (int)reader[2] - tang.Number; + if (lastNumber == 0) + continue; + var mb = new GradeAndWeight(); + list.Add(mb); + mb.OrderDetail_ID = tang.OrderDetail_ID; + mb.Order = tang.Order; + mb.Number = lastNumber; + mb.Technics_Name = "毛剥"; + mb.Already = Convert.ToInt32(reader[5]); + } + } + } + + return serializer.Serialize(list); + } + + [Rpc] + public static string GetDetailsList(DateTime start, DateTime end, int? order, int type) + { + var query = new DmoQuery(typeof(GradeAndWeight_Detail)); + query.Where.Conditions.Add(DQCondition.Between("Time", start, end + new TimeSpan(23, 59, 29))); + if (type != -1) + query.Where.Conditions.Add(DQCondition.EQ("Technics", type)); + if (order.HasValue) + query.Where.Conditions.Add(DQCondition.EQ("Order", order)); + query.OrderBy.Expressions.Add(DQOrderByExpression.Create("Time")); + return serializer.Serialize(query.EExecuteList()); + } + + [Rpc] + public static long InsertDetail(string json) + { + json = json.ESerializeDateTime(); + var entity = serializer.Deserialize(json); + using (var session = Dmo.NewSession()) + { + session.Insert(entity); + session.Commit(); + return entity.ID; + } + } + + [Rpc] + public static int FillWeight(long id, decimal weight) + { + using (var session = Dmo.NewSession()) + { + var update = new DQUpdateDom(typeof(GradeAndWeight_Detail)); + update.Where.Conditions.Add(DQCondition.EQ("ID", id)); + update.Columns.Add(new DQUpdateColumn("Weight", weight)); + session.ExecuteNonQuery(update); + session.Commit(); + } + return 1; + } + } +} diff --git a/B3ClientService/Rpcs/ButcherOrderRpc.cs b/B3ClientService/Rpcs/ButcherOrderRpc.cs deleted file mode 100644 index 3fce921..0000000 --- a/B3ClientService/Rpcs/ButcherOrderRpc.cs +++ /dev/null @@ -1,74 +0,0 @@ -using BWP.B3ClientService.BO; -using BWP.B3Frameworks.Utils; -using Forks.EnterpriseServices.DomainObjects2; -using Forks.EnterpriseServices.DomainObjects2.DQuery; -using Forks.EnterpriseServices.JsonRpc; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using TSingSoft.WebPluginFramework; - -namespace BWP.B3ClientService.Rpcs -{ - [Rpc] - public static class ButcherOrderRpc - { - [Rpc] - public static List GetButcherOrder(DateTime date) - { - var query = new DmoQuery(typeof(ButcherOrder)); - query.Where.Conditions.Add(DQCondition.EQ("Date", date)); - return query.EExecuteList().Cast().ToList(); - } - - [Rpc] - public static List GetOrderDetail(long orderID) - { - var query = new DmoQuery(typeof(ButcherOrder_Detail)); - query.Where.Conditions.Add(DQCondition.EQ("ButcherOrder_ID", orderID)); - query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID")); - return query.EExecuteList().Cast().ToList(); - } - - static void UpdateButcherOrder(IDmoSession session, long id, int hotFadeNumber) - { - var order = InnerBLUtil.GetSingleDmo(session, "ID", id, "HotFadeNumber", "Sync"); - order.HotFadeNumber += hotFadeNumber; - if (hotFadeNumber < 0 && order.Sync) - order.Sync = false; - var update = new DQUpdateDom(typeof(ButcherOrder)); - update.Where.Conditions.Add(DQCondition.EQ("HotFadeNumber", order.HotFadeNumber)); - update.Where.Conditions.Add(DQCondition.EQ("Sync", order.Sync)); - update.Where.Conditions.Add(DQCondition.EQ("ID", id)); - session.ExecuteNonQuery(update); - } - - [Rpc] - public static void InsertOrderDetail(long orderID, int number) - { - using (var session = Dmo.NewSession()) - { - var detail = new ButcherOrder_Detail(); - detail.Number = number; - detail.Date = DateTime.Now; - detail.ButcherOrder_ID = orderID; - session.Insert(detail); - UpdateButcherOrder(session, orderID, detail.Number); - session.Commit(); - } - } - - [Rpc] - public static void DeleteOrderDetail(long id) - { - using (var session = Dmo.NewSession()) - { - var detail = InnerBLUtil.GetSingleDmo(session, "ID", id, "ButcherOrder_ID", "Number"); - UpdateButcherOrder(session, detail.ButcherOrder_ID, -detail.Number); - session.Commit(); - } - } - } -} diff --git a/B3ClientService/Tasks/SyncInfoFromServer.cs b/B3ClientService/Tasks/SyncInfoFromServer.cs index 6a345d9..ff0b361 100644 --- a/B3ClientService/Tasks/SyncInfoFromServer.cs +++ b/B3ClientService/Tasks/SyncInfoFromServer.cs @@ -12,6 +12,7 @@ using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Web.Script.Serialization; using TSingSoft.WebPluginFramework; using TSingSoft.WebPluginFramework.TimerTasks; @@ -19,6 +20,8 @@ namespace BWP.B3ClientService.Tasks { public class SyncInfoFromServer : ITimerTask { + static JavaScriptSerializer serializer = new JavaScriptSerializer(); + public void Execute() { var serverUri = ServerHost.GetServerUrl(); @@ -158,7 +161,23 @@ namespace BWP.B3ClientService.Tasks void SyncLivestock() { - SyncBaseInfo("GetLivestock"); + var result = RpcFacade.Call("/MainSystem/B3ButcherManage/Rpcs/TouchScreenRpcs/GetLivestock"); + var list = serializer.Deserialize>>(result); + using (var context = new TransactionContext()) + { + var sql1 = @"truncate table [B3ClientService_Livestock];"; + context.Session.ExecuteSqlNonQuery(sql1); + foreach (var item in list) + { + var entity = new Livestock(); + entity.ID = item.Item1; + entity.Name = item.Item2; + entity.Technics = item.Item3; + entity.SortNum = item.Item4; + context.Session.Insert(entity); + } + context.Commit(); + } } void SyncPurchaseType()