From 224533a77363a43f8f66fea27e66b8935f469d15 Mon Sep 17 00:00:00 2001 From: yibo <361071264@qq.com> Date: Tue, 17 Oct 2017 12:12:37 +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 | 3 + .../CarcassStateWeight/CarcassStateWeight.cs | 35 ++++++ .../BO/Bill/OrderDetail/HurryRecord.cs | 29 +++++ .../BO/Bill/OrderDetail/OrderDetail.cs | 7 ++ B3ClientService/NamedValueTemplate.cs | 17 +++ .../Rpcs/BillRpc/OrderDetailRpc.cs | 104 +++++++++++++++--- .../config/NamedValue/B3ClientService.xml | 10 ++ 7 files changed, 189 insertions(+), 16 deletions(-) create mode 100644 B3ClientService/BO/Bill/CarcassStateWeight/CarcassStateWeight.cs create mode 100644 B3ClientService/BO/Bill/OrderDetail/HurryRecord.cs create mode 100644 B3ClientService/NamedValueTemplate.cs create mode 100644 WebFolder/config/NamedValue/B3ClientService.xml diff --git a/B3ClientService/B3ClientService.csproj b/B3ClientService/B3ClientService.csproj index 5841870..40bffa7 100644 --- a/B3ClientService/B3ClientService.csproj +++ b/B3ClientService/B3ClientService.csproj @@ -80,8 +80,10 @@ + + @@ -103,6 +105,7 @@ + diff --git a/B3ClientService/BO/Bill/CarcassStateWeight/CarcassStateWeight.cs b/B3ClientService/BO/Bill/CarcassStateWeight/CarcassStateWeight.cs new file mode 100644 index 0000000..6c360de --- /dev/null +++ b/B3ClientService/BO/Bill/CarcassStateWeight/CarcassStateWeight.cs @@ -0,0 +1,35 @@ +using BWP.B3ClientService.NamedValueTemplate; +using Forks.EnterpriseServices.DomainObjects2; +using Forks.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using TSingSoft.WebPluginFramework; + +namespace BWP.B3ClientService.BO +{ + [Serializable] + [BOClass] + [KeyField("GradeAndWeight_ID", KeyGenType.assigned)] + public class CarcassStateWeight + { + public long GradeAndWeight_ID { get; set; } + + public string Code { get; set; } + + public decimal? State1Weight { get; set; } + + public decimal? State2Weight { get; set; } + + public decimal? State3Weight { get; set; } + + public decimal? State4Weight { get; set; } + + public decimal? State5Weight { get; set; } + + public NamedValue<胴体状态> CurrentState { get; set; } + + public decimal? CurrentWeight { get; set; } + } +} diff --git a/B3ClientService/BO/Bill/OrderDetail/HurryRecord.cs b/B3ClientService/BO/Bill/OrderDetail/HurryRecord.cs new file mode 100644 index 0000000..4ab0efc --- /dev/null +++ b/B3ClientService/BO/Bill/OrderDetail/HurryRecord.cs @@ -0,0 +1,29 @@ +using BWP.B3Frameworks.BO; +using Forks.EnterpriseServices.DomainObjects2; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace BWP.B3ClientService.BO +{ + [Serializable] + public class HurryRecord : Base + { + public long FromOrderDetail_ID { get; set; } + + [ReferenceTo(typeof(OrderDetail), "B3WeighBill_ID")] + [Join("FromOrderDetail_ID", "ID")] + public long? B3WeighBill_ID { get; set; } + + public long? ToOrderDetail_ID { get; set; } + + [ReferenceTo(typeof(OrderDetail), "Order")] + [Join("ToOrderDetail_ID", "ID")] + public int? Order { get; set; } + + public int HurryNumber { get; set; } + + public DateTime Time { get; set; } + } +} diff --git a/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs b/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs index 8403733..cc318e9 100644 --- a/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs +++ b/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs @@ -22,6 +22,10 @@ namespace BWP.B3ClientService.BO [Join("WeightBill_ID", "ID")] public long? B3WeighBill_ID { get; set; } + [ReferenceTo(typeof(WeightBill), "Supplier_Name")] + [Join("WeightBill_ID", "ID")] + public string Supplier_Name { get; set; } + public int Order { get; set; } public int PlanNumber { get; set; } @@ -38,5 +42,8 @@ namespace BWP.B3ClientService.BO [DbColumn(DefaultValue = 0)] public bool Confirmed { get; set; } + + [NonDmoProperty] + public int HurryNumber { get; set; } } } diff --git a/B3ClientService/NamedValueTemplate.cs b/B3ClientService/NamedValueTemplate.cs new file mode 100644 index 0000000..4c0df60 --- /dev/null +++ b/B3ClientService/NamedValueTemplate.cs @@ -0,0 +1,17 @@ +using Forks.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace BWP.B3ClientService.NamedValueTemplate +{ + public sealed class 胴体状态 + { + public static readonly NamedValue<胴体状态> 胴体称重 = new NamedValue<胴体状态>(0); + public static readonly NamedValue<胴体状态> 入预冷库 = new NamedValue<胴体状态>(1); + public static readonly NamedValue<胴体状态> 分割领用 = new NamedValue<胴体状态>(2); + public static readonly NamedValue<胴体状态> 入销售库 = new NamedValue<胴体状态>(3); + public static readonly NamedValue<胴体状态> 销售出库 = new NamedValue<胴体状态>(4); + } +} diff --git a/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs b/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs index f425782..94cda1c 100644 --- a/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs +++ b/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs @@ -143,20 +143,26 @@ namespace BWP.B3ClientService.Rpcs.BillRpc } [Rpc] - public static string GetOrderDetail(DateTime date, int? minOrder) + public static string GetOrderDetail(DateTime date, bool onlyNormal) { var query = new DQueryDom(new JoinAlias(typeof(OrderDetail))); query.Columns.Add(DQSelectColumn.Field("ID")); query.Columns.Add(DQSelectColumn.Field("WeightBill_ID")); query.Columns.Add(DQSelectColumn.Field("Order")); - query.Columns.Add(DQSelectColumn.Field("PlanNumber")); + query.Columns.Add(DQSelectColumn.Field("PlanNumber")); query.Columns.Add(DQSelectColumn.Field("LiveColonyHouse_Name")); query.Columns.Add(DQSelectColumn.Field("IsHurryButcher")); query.Columns.Add(DQSelectColumn.Field("B3WeighBill_ID")); query.Columns.Add(DQSelectColumn.Field("SecondarySplit")); + query.Columns.Add(DQSelectColumn.Field("Supplier_Name")); + query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false))); - if (minOrder.HasValue) - query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("Order", minOrder)); + if (onlyNormal) + { + var record = HurryRecordTemp.Register(query, query.From.RootSource.Alias); + query.Columns.Add(DQSelectColumn.Field("Number", record)); + query.Where.Conditions.Add(DQCondition.EQ("IsHurryButcher", false)); + } var list = new List(); using (var session = Dmo.NewSession()) { @@ -173,6 +179,12 @@ namespace BWP.B3ClientService.Rpcs.BillRpc entity.IsHurryButcher = (bool)reader[5]; entity.B3WeighBill_ID = (long?)reader[6]; entity.SecondarySplit = (bool)reader[7]; + entity.Supplier_Name = (string)reader[8]; + if (onlyNormal) + { + entity.HurryNumber = Convert.ToInt32(reader[9] ?? 0); + entity.PlanNumber += entity.HurryNumber; + } list.Add(entity); } } @@ -180,12 +192,32 @@ namespace BWP.B3ClientService.Rpcs.BillRpc return serializer.Serialize(list); } + class HurryRecordTemp + { + public long OrderDetail_ID { get; set; } + + public int? Number { get; set; } + + public static JoinAlias Register(DQueryDom rootQuery, JoinAlias rootAlias) + { + var query = new DQueryDom(new JoinAlias(typeof(HurryRecord))); + query.Columns.Add(DQSelectColumn.Field("FromOrderDetail_ID")); + query.Columns.Add(DQSelectColumn.Sum("HurryNumber")); + query.GroupBy.Expressions.Add(DQExpression.Field("FromOrderDetail_ID")); + rootQuery.RegisterQueryTable(typeof(HurryRecordTemp), new string[] { "OrderDetail_ID", "Number" }, query); + + var alias = new JoinAlias(typeof(HurryRecordTemp)); + rootQuery.From.AddJoin(JoinType.Left, new DQDmoSource(alias), DQCondition.EQ(rootAlias, "ID", alias, "OrderDetail_ID")); + return alias; + } + } + [Rpc] public static int GetMaxOrder(DateTime date) { var query = new DQueryDom(new JoinAlias(typeof(OrderDetail))); query.Columns.Add(DQSelectColumn.Max("Order")); - query.Where.Conditions.Add(DQCondition.And(DQCondition.Between("Date", date.Date, date.Date + new TimeSpan(23, 59, 29)), DQCondition.EQ("DeleteState", false))); + query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date.Date), DQCondition.EQ("DeleteState", false))); return query.EExecuteScalar() ?? 0; } @@ -248,17 +280,6 @@ namespace BWP.B3ClientService.Rpcs.BillRpc return 1; } - [Rpc] - public static int UpdateHurryFlag(long id, bool isHurryButcher) - { - using (var session = Dmo.NewSession()) - { - UpdateOrderDetailPartial(session, id, "IsHurryButcher", isHurryButcher); - session.Commit(); - } - return 1; - } - [Rpc] public static int Delete(long id) { @@ -297,5 +318,56 @@ namespace BWP.B3ClientService.Rpcs.BillRpc update.Where.Conditions.Add(DQCondition.And(DQCondition.GreaterThan("Order", greaterThanOrder), DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false))); session.ExecuteNonQuery(update); } + + [Rpc] + public static string GetHurryRecords(long orderId) + { + var query = new DmoQuery(typeof(HurryRecord)); + query.Where.Conditions.Add(DQCondition.EQ("FromOrderDetail_ID", orderId)); + return serializer.Serialize(query.EExecuteList().Cast().ToList()); + } + + [Rpc] + public static int DeleteHurryRecord(long id) + { + using (var session = Dmo.NewSession()) + { + var hurryNumber = InnerBLUtil.GetDmoPropertyByID(session, typeof(HurryRecord), "HurryNumber", id); + var delete = new DQDeleteDom(typeof(HurryRecord)); + delete.Where.Conditions.Add(DQCondition.EQ("ID", id)); + session.ExecuteNonQuery(delete); + AddOrderNumber(session, id, hurryNumber); + session.Commit(); + } + return 1; + } + + [Rpc] + public static int InsertHurryRecord(string detail) + { + detail = detail.ESerializeDateTime(); + var entity = serializer.Deserialize(detail); + using (var session = Dmo.NewSession()) + { + session.Insert(entity); + AddOrderNumber(session, entity.ID, -entity.HurryNumber); + + var query = new DQueryDom(new JoinAlias(typeof(HurryRecord))); + query.Columns.Add(DQSelectColumn.Sum("HurryNumber")); + query.Where.Conditions.Add(DQCondition.EQ("FromOrderDetail_ID", entity.FromOrderDetail_ID)); + var r= Convert.ToInt32(query.EExecuteScalar(session) ?? 0); + session.Commit(); + return r; + } + } + + static void AddOrderNumber(IDmoSession session, long ID, int subNumber) + { + var update = new DQUpdateDom(typeof(OrderDetail)); + update.Where.Conditions.Add(DQCondition.EQ("ID", ID)); + update.Columns.Add(new DQUpdateColumn("Sync", false)); + update.Columns.Add(new DQUpdateColumn("PlanNumber", DQExpression.Add(DQExpression.Field("PlanNumber"), DQExpression.Value(subNumber)))); + session.ExecuteNonQuery(update); + } } } diff --git a/WebFolder/config/NamedValue/B3ClientService.xml b/WebFolder/config/NamedValue/B3ClientService.xml new file mode 100644 index 0000000..12b66ce --- /dev/null +++ b/WebFolder/config/NamedValue/B3ClientService.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file