From 7bf357d027ac86309d81ce213143a230a04ac1e6 Mon Sep 17 00:00:00 2001 From: yibo <361071264@qq.com> Date: Wed, 7 Feb 2018 16:57:02 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=BF=E4=B8=8B=E5=B7=A5=E8=89=BA=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BO/Bill/OrderDetail/OrderDetail.cs | 4 + .../Rpcs/BillRpc/GradeAndWeightRpc.cs | 39 +++--- .../Rpcs/BillRpc/OrderDetailRpc.cs | 24 +++- .../Rpcs/BillRpc/SecondOrderRpc.cs | 18 +++ .../Rpcs/BillRpc/TrunksIousOutInStoreRpc.cs | 129 ------------------ 5 files changed, 61 insertions(+), 153 deletions(-) delete mode 100644 B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRpc.cs diff --git a/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs b/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs index e30bf26..7597e26 100644 --- a/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs +++ b/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs @@ -50,5 +50,9 @@ namespace BWP.B3ClientService.BO [DbColumn(DefaultValue = 0)] public int RowVersion { get; set; } + + public short? Technics { get; set; } + + public string Technics_Name { get; set; } } } diff --git a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs index bba757e..ad3d2d5 100644 --- a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs +++ b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs @@ -60,34 +60,30 @@ namespace BWP.B3ClientService.Rpcs.BillRpc return serializer.Serialize(list); } + static object _lock = new object(); [Rpc] public static long UpdateOrInsertDetailOrDelete(string json) { - json = json.ESerializeDateTime(); - var entity = serializer.Deserialize(json); - using (var session = Dmo.NewSession()) + lock (_lock) { - if (entity.IsDeleted) - session.Delete(new DmoIdentity(typeof(GradeAndWeight_Detail), entity.ID)); - else + json = json.ESerializeDateTime(); + var entity = serializer.Deserialize(json); + using (var session = Dmo.NewSession()) { - if (entity.ID == 0) + if (entity.IsDeleted) + session.Delete(new DmoIdentity(typeof(GradeAndWeight_Detail), entity.ID)); + else { - var existID = GetIDIfExist(session, entity.SID); - if (existID.HasValue) - { - entity.ID = existID.Value; - session.Update(entity); - } - else + entity.ID = GetIDIfExist(session, entity.SID) ?? 0; + if (entity.ID == 0) session.Insert(entity); + else + session.Update(entity); } - else - session.Update(entity); + session.Commit(); } - session.Commit(); + return entity.ID; } - return entity.ID; } static long? GetIDIfExist(IDmoSession session, long sid) @@ -99,6 +95,13 @@ namespace BWP.B3ClientService.Rpcs.BillRpc return query.EExecuteScalar(session); } + static void Delete(IDmoSession session, long sid) + { + var delete = new DQDeleteDom(typeof(GradeAndWeight_Detail)); + delete.Where.Conditions.Add(DQCondition.EQ("SID", sid)); + session.ExecuteNonQuery(delete); + } + [Rpc] public static string GetBodyDiscontItemSetting() { diff --git a/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs b/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs index 7b2c8f7..6fcb5fd 100644 --- a/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs +++ b/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs @@ -171,6 +171,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc query.Columns.Add(DQSelectColumn.Field("SecondarySplit")); query.Columns.Add(DQSelectColumn.Field("Supplier_Name")); query.Columns.Add(DQSelectColumn.Field("OrderState")); + query.Columns.Add(DQSelectColumn.Field("Technics")); query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false), DQCondition.EQ("IsDrop", false))); var list = new List(); @@ -191,6 +192,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc entity.SecondarySplit = (bool)reader[7]; entity.Supplier_Name = (string)reader[8]; entity.OrderState = (int)reader[9]; + entity.Technics = (short?)reader[10]; entity.Date = date; list.Add(entity); } @@ -251,7 +253,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "c")); query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false), DQCondition.GreaterThanOrEqual("OrderState", 10), DQCondition.GreaterThanOrEqual("Order", order), DQCondition.EQ("IsDrop", false))); if (query.EExecuteScalar(session) != null) - throw new Exception("不允许插入到已进行烫毛计数顺序之前"); + throw new Exception("不允许插入到已进行顺序确认之前"); } public static void UpdateOrderDetailPartial(IDmoSession session, long id, string property, object value) @@ -290,7 +292,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc session.ExecuteNonQuery(update); } - + [Rpc] public static int Delete(long id) @@ -502,10 +504,20 @@ namespace BWP.B3ClientService.Rpcs.BillRpc { if (!(state == 0 || state == 10 || state == 20)) throw new Exception(string.Format("错误的状态输入 {0}", state)); - var update = new DQUpdateDom(typeof(OrderDetail)); - update.Columns.Add(new DQUpdateColumn("OrderState", state)); - update.Where.Conditions.Add(DQCondition.EQ("ID", id)); - update.EExecute(); + using (var session = Dmo.NewSession()) + { + var update = new DQUpdateDom(typeof(OrderDetail)); + update.Columns.Add(new DQUpdateColumn("OrderState", state)); + update.Where.Conditions.Add(DQCondition.EQ("ID", id)); + session.ExecuteNonQuery(update); + if (state == 20) + { + var orderInfo = InnerBLUtil.GetSingleDmo(session, "ID", id, "Technics", "PlanNumber"); + orderInfo.ID = id; + SecondOrderRpc.OffLineCreateSecondOrder(session, orderInfo); + } + session.Commit(); + } return 1; } diff --git a/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs b/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs index e8ebd77..3db4229 100644 --- a/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs +++ b/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs @@ -150,6 +150,24 @@ namespace BWP.B3ClientService.Rpcs.BillRpc return id; } + public static void OffLineCreateSecondOrder(IDmoSession session, OrderDetail detail) + { + var second = new SecondOrder(); + second.ModifyTime = DateTime.Now; + second.IsOk = true; + second.Finish = true; + second.OrderDetail_ID = detail.ID; + second.HotFadeNumber = detail.Technics == 0 ? detail.PlanNumber : 0; + session.Insert(second); + if (second.HotFadeNumber != 0) + return; + var sDetail = new SecondOrder_Detail(); + sDetail.Number = second.HotFadeNumber; + sDetail.SecondOrder_ID = second.ID; + sDetail.Time = DateTime.Now; + session.Insert(sDetail); + } + [Rpc] public static string GetSecondOrderDetails(long id) { diff --git a/B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRpc.cs b/B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRpc.cs deleted file mode 100644 index 503959a..0000000 --- a/B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRpc.cs +++ /dev/null @@ -1,129 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Web.Script.Serialization; -using BWP.B3ClientService.BO; -using BWP.B3ClientService.NamedValueTemplate; -using Forks.EnterpriseServices.DomainObjects2; -using Forks.EnterpriseServices.DomainObjects2.DQuery; -using Forks.EnterpriseServices.JsonRpc; - -namespace BWP.B3ClientService.Rpcs.BillRpc -{ - [Rpc] - public static class TrunksIousOutInStoreRpc - { - - [Rpc] - public static void UpdateCarcassStateWeight1(string code,decimal weight) - { - using (var session=Dmo.NewSession()) - { - var id = GetCarcassStateWeightId(session, code); - var updateDom=new DQUpdateDom(typeof(CarcassStateWeight)); - updateDom.Where.Conditions.Add(DQCondition.EQ("ID",id)); - updateDom.Columns.Add(new DQUpdateColumn("State1Weight",weight)); - updateDom.Columns.Add(new DQUpdateColumn("State1WeightTime", DateTime.Now)); - updateDom.Columns.Add(new DQUpdateColumn("CurrentState", 胴体状态.胴体称重)); - updateDom.Columns.Add(new DQUpdateColumn("CurrentWeight", weight)); - - session.ExecuteNonQuery(updateDom); - session.Commit(); - } - } - [Rpc] - public static void UpdateCarcassStateWeight2(string code, decimal weight) - { - using (var session = Dmo.NewSession()) - { - var id = GetCarcassStateWeightId(session, code); - var updateDom = new DQUpdateDom(typeof(CarcassStateWeight)); - updateDom.Where.Conditions.Add(DQCondition.EQ("ID", id)); - updateDom.Columns.Add(new DQUpdateColumn("State2Weight", weight)); - updateDom.Columns.Add(new DQUpdateColumn("State2WeightTime", DateTime.Now)); - updateDom.Columns.Add(new DQUpdateColumn("CurrentState", 胴体状态.入预冷库)); - updateDom.Columns.Add(new DQUpdateColumn("CurrentWeight", weight)); - - session.ExecuteNonQuery(updateDom); - session.Commit(); - } - } - [Rpc] - public static void UpdateCarcassStateWeight3(string code, decimal weight) - { - using (var session = Dmo.NewSession()) - { - var id = GetCarcassStateWeightId(session, code); - var updateDom = new DQUpdateDom(typeof(CarcassStateWeight)); - updateDom.Where.Conditions.Add(DQCondition.EQ("ID", id)); - updateDom.Columns.Add(new DQUpdateColumn("State3Weight", weight)); - updateDom.Columns.Add(new DQUpdateColumn("State3WeightTime", DateTime.Now)); - updateDom.Columns.Add(new DQUpdateColumn("CurrentState", 胴体状态.分割领用)); - updateDom.Columns.Add(new DQUpdateColumn("CurrentWeight", weight)); - - session.ExecuteNonQuery(updateDom); - session.Commit(); - } - } - [Rpc] - public static void UpdateCarcassStateWeight4(string code, decimal weight) - { - using (var session = Dmo.NewSession()) - { - var id = GetCarcassStateWeightId(session, code); - var updateDom = new DQUpdateDom(typeof(CarcassStateWeight)); - updateDom.Where.Conditions.Add(DQCondition.EQ("ID", id)); - updateDom.Columns.Add(new DQUpdateColumn("State4Weight", weight)); - updateDom.Columns.Add(new DQUpdateColumn("State4WeightTime", DateTime.Now)); - updateDom.Columns.Add(new DQUpdateColumn("CurrentState", 胴体状态.入销售库)); - updateDom.Columns.Add(new DQUpdateColumn("CurrentWeight", weight)); - - session.ExecuteNonQuery(updateDom); - session.Commit(); - } - } - [Rpc] - public static void UpdateCarcassStateWeight5(string code, decimal weight) - { - using (var session = Dmo.NewSession()) - { - var id = GetCarcassStateWeightId(session, code); - var updateDom = new DQUpdateDom(typeof(CarcassStateWeight)); - updateDom.Where.Conditions.Add(DQCondition.EQ("ID", id)); - updateDom.Columns.Add(new DQUpdateColumn("State5Weight", weight)); - updateDom.Columns.Add(new DQUpdateColumn("State5WeightTime", DateTime.Now)); - updateDom.Columns.Add(new DQUpdateColumn("CurrentState", 胴体状态.销售出库)); - updateDom.Columns.Add(new DQUpdateColumn("CurrentWeight", weight)); - - session.ExecuteNonQuery(updateDom); - session.Commit(); - } - } - - static long? GetCarcassStateWeightId(IDmoSession session, string code) - { - var list=new List(); - var query = new DQueryDom(new JoinAlias(typeof(CarcassStateWeight))); - query.Where.Conditions.Add(DQCondition.EQ("Code", code)); - query.Columns.Add(DQSelectColumn.Field("ID")); - using (var reader=session.ExecuteReader(query)) - { - while (reader.Read()) - { - var id = (long) reader[0]; - list.Add(id); - } - } - if (list.Count == 0) - { - throw new Exception("没有找到条码:"+code+" 对应的记录"); - } - if(list.Count>1) - { - throw new Exception("找到条码:" + code + " 对应的多条记录"); - } - return list[0]; - } - } -}