From f55ca1b61d2de728171165cfd6687a31760c9b40 Mon Sep 17 00:00:00 2001 From: yibo <361071264@qq.com> Date: Fri, 22 Sep 2017 19:29:38 +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 | 1 + .../GradeAndWeight/GradeAndWeight_Detail.cs | 4 + .../GradeAndWeight/OrderGradeFinishRelate.cs | 18 ++++ .../Bill/GradeAndWeight/GradeAndWeight.cs | 4 + .../Rpcs/BillRpc/GradeAndWeightRpc.cs | 86 ++++++++++++++++--- 5 files changed, 99 insertions(+), 14 deletions(-) create mode 100644 B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs diff --git a/B3ClientService/B3ClientService.csproj b/B3ClientService/B3ClientService.csproj index d5cf850..481a678 100644 --- a/B3ClientService/B3ClientService.csproj +++ b/B3ClientService/B3ClientService.csproj @@ -78,6 +78,7 @@ + diff --git a/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs index bdd09cb..93a2cc7 100644 --- a/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs +++ b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs @@ -17,6 +17,10 @@ namespace BWP.B3ClientService.BO [Join("OrderDetail_ID", "ID")] public int? Order { get; set; } + [ReferenceTo(typeof(OrderDetail), "Date")] + [Join("OrderDetail_ID", "ID")] + public DateTime? Date { get; set; } + public short Technics { get; set; } public string Technics_Name { get; set; } diff --git a/B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs b/B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs new file mode 100644 index 0000000..4600a7a --- /dev/null +++ b/B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using TSingSoft.WebPluginFramework; + +namespace BWP.B3ClientService.BO +{ + [BOClass] + [Serializable] + public class OrderGradeFinishRelate + { + public long OrderDetail_ID { get; set; } + + public short Technics { get; set; } + + } +} diff --git a/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs b/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs index 2918a21..ee244fc 100644 --- a/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs +++ b/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs @@ -7,6 +7,8 @@ namespace BWP.B3ClientService.RpcBO { public class GradeAndWeight { + public long ID { get; set; } + public long OrderDetail_ID { get; set; } public int Order { get; set; } @@ -16,5 +18,7 @@ namespace BWP.B3ClientService.RpcBO public int Number { get; set; } public int Already { get; set; } + + public bool Finish { get; set; } } } diff --git a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs index d2e09e5..579a31e 100644 --- a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs +++ b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs @@ -19,26 +19,37 @@ namespace BWP.B3ClientService.Rpcs.BillRpc static JavaScriptSerializer serializer = new JavaScriptSerializer(); [Rpc] - public static string GetGradeAndWeightList(DateTime date) + public static string GetGradeAndWeightList(DateTime date, long? maxID) { - var main = new JoinAlias(typeof(SecondOrder)); - var order = new JoinAlias(typeof(OrderDetail)); + var main = new JoinAlias("_S1", typeof(SecondOrder)); + var order = new JoinAlias("_O1", typeof(OrderDetail)); var detail = new JoinAlias(typeof(GradeAndWeight_Detail)); + var relate = new JoinAlias(typeof(GradeTemp)); var query = new DQueryDom(main); + query.RegisterQueryTable(typeof(GradeTemp), new string[] { "OrdreID", "Tang", "Mao" }, GradeTemp.Register(date, maxID)); 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.From.AddJoin(JoinType.Left, new DQDmoSource(relate), DQCondition.EQ(main, "OrderDetail_ID", relate, "OrdreID")); + query.Columns.Add(DQSelectColumn.Field("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.Columns.Add(DQSelectColumn.Field("PlanNumber", order));//3 + query.Columns.Add(DQSelectColumn.Field("HotFadeNumber"));//4 + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(detail, "Technics", 0), DQExpression.Value(1), DQExpression.Value(0))), "Tang"));//5 + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(detail, "Technics", 1), DQExpression.Value(1), DQExpression.Value(0))), "Mao"));//6 + query.Columns.Add(DQSelectColumn.Field("Tang", relate)); + query.Columns.Add(DQSelectColumn.Field("Mao", relate)); + query.GroupBy.Expressions.Add(DQExpression.Field("ID")); 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.GroupBy.Expressions.Add(DQExpression.Field(relate, "Tang")); + query.GroupBy.Expressions.Add(DQExpression.Field(relate, "Mao")); query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsOk", true), DQCondition.Between(DQExpression.Field(order, "Date"), date, date + new TimeSpan(23, 59, 29)))); + if (maxID.HasValue) + query.Where.Conditions.Add(DQCondition.GreaterThan("ID", maxID)); var list = new List(); using (var session = Dmo.NewSession()) { @@ -47,26 +58,30 @@ namespace BWP.B3ClientService.Rpcs.BillRpc while (reader.Read()) { var tang = new GradeAndWeight(); - tang.OrderDetail_ID = (long)reader[0]; - tang.Order = (int)reader[1]; - tang.Number = (int)reader[3]; + tang.ID = (long)reader[0]; + tang.OrderDetail_ID = (long)reader[1]; + tang.Order = (int)reader[2]; + tang.Number = (int)reader[4]; + tang.Finish = Convert.ToBoolean(reader[7]); if (tang.Number != 0) { tang.Technics_Name = "烫褪"; - tang.Already = Convert.ToInt32(reader[4]); + tang.Already = Convert.ToInt32(reader[5]); list.Add(tang); } - var lastNumber = (int)reader[2] - tang.Number; + var lastNumber = (int)reader[3] - tang.Number; if (lastNumber == 0) continue; var mb = new GradeAndWeight(); list.Add(mb); + mb.ID = tang.ID; mb.OrderDetail_ID = tang.OrderDetail_ID; mb.Order = tang.Order; mb.Number = lastNumber; mb.Technics_Name = "毛剥"; - mb.Already = Convert.ToInt32(reader[5]); + mb.Already = Convert.ToInt32(reader[6]); + mb.Finish = Convert.ToBoolean(reader[8]); } } } @@ -74,11 +89,39 @@ namespace BWP.B3ClientService.Rpcs.BillRpc return serializer.Serialize(list); } + class GradeTemp + { + public long OrdreID { get; set; } + + public bool Tang { get; set; } + + public bool Mao { get; set; } + + public static DQueryDom Register(DateTime date, long? maxID) + { + var main = new JoinAlias("_S2", typeof(SecondOrder)); + var order = new JoinAlias("_O2", typeof(OrderDetail)); + var relate = new JoinAlias(typeof(OrderGradeFinishRelate)); + 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(relate), DQCondition.EQ(main, "OrderDetail_ID", relate, "OrderDetail_ID")); + query.Columns.Add(DQSelectColumn.Field("OrderDetail_ID")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 0), DQExpression.Value(1), DQExpression.Value(0))), "Tang")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 1), DQExpression.Value(1), DQExpression.Value(0))), "Mao")); + query.GroupBy.Expressions.Add(DQExpression.Field("OrderDetail_ID")); + + query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsOk", true), DQCondition.Between(DQExpression.Field(order, "Date"), date, date + new TimeSpan(23, 59, 29)))); + if (maxID.HasValue) + query.Where.Conditions.Add(DQCondition.GreaterThan("ID", maxID)); + return query; + } + } + [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))); + query.Where.Conditions.Add(DQCondition.Between("Date", start, end + new TimeSpan(23, 59, 29))); if (type != -1) query.Where.Conditions.Add(DQCondition.EQ("Technics", type)); if (order.HasValue) @@ -117,5 +160,20 @@ namespace BWP.B3ClientService.Rpcs.BillRpc } return 1; } + + [Rpc] + public static int SetGradeFinish(long orderDetailID, short technics) + { + using (var session = Dmo.NewSession()) + { + var entity = new OrderGradeFinishRelate(); + entity.OrderDetail_ID = orderDetailID; + entity.Technics = technics; + session.Insert(entity); + session.Commit(); + } + + return 1; + } } }