From 867d87f1033e16a8b2aaf3db28849aaf77a09cd4 Mon Sep 17 00:00:00 2001 From: yibo <361071264@qq.com> Date: Sat, 23 Sep 2017 23:09:46 +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 | 4 + .../GradeAndWeight/GradeAndWeight_Detail.cs | 7 +- .../GradeAndWeight/OrderGradeFinishRelate.cs | 9 +- .../BO/Bill/WeightBill/WeightBill.cs | 70 +-- .../BO/Bill/WeightBill/WeightBill_Detail.cs | 4 - .../WeightBill/WeightBill_FarmerDetail.cs | 4 - .../Bill/WeightBill/WeightBill_HouseDetail.cs | 5 - .../WeightBill/WeightBill_SanctionDetail.cs | 4 - B3ClientService/BO/SyncBase.cs | 5 - B3ClientService/BO/SyncBill.cs | 5 + .../WeightBill/HouseAndSanctionEdit.cs | 32 ++ .../WeightBill/HouseAndSanctionList.cs | 22 + .../WeightBill/WeightBillList.cs | 34 ++ .../Bill/GradeAndWeight/GradeAndWeight.cs | 4 +- B3ClientService/Rpcs/BackRpcObj.cs | 3 +- .../Rpcs/BillRpc/GradeAndWeightRpc.cs | 108 ++-- .../Rpcs/BillRpc/HouseAndSanctionRpc.cs | 227 ++++++++ B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs | 491 +++++------------- .../Tasks/UpdateLoad/UpLoadWeightBill.cs | 316 +++++------ .../Tasks/UpdateLoad/UploadTest.cs | 2 +- 20 files changed, 731 insertions(+), 625 deletions(-) create mode 100644 B3ClientService/ClientSerializerBo/WeightBill/HouseAndSanctionEdit.cs create mode 100644 B3ClientService/ClientSerializerBo/WeightBill/HouseAndSanctionList.cs create mode 100644 B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs create mode 100644 B3ClientService/Rpcs/BillRpc/HouseAndSanctionRpc.cs diff --git a/B3ClientService/B3ClientService.csproj b/B3ClientService/B3ClientService.csproj index 481a678..cd58868 100644 --- a/B3ClientService/B3ClientService.csproj +++ b/B3ClientService/B3ClientService.csproj @@ -94,6 +94,9 @@ + + + @@ -108,6 +111,7 @@ + diff --git a/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs index 93a2cc7..759acd7 100644 --- a/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs +++ b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs @@ -11,14 +11,9 @@ namespace BWP.B3ClientService.BO { public int Index { get; set; } + [NonDmoProperty] public long OrderDetail_ID { get; set; } - [ReferenceTo(typeof(OrderDetail), "Order")] - [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; } diff --git a/B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs b/B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs index 4600a7a..996669a 100644 --- a/B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs +++ b/B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs @@ -1,4 +1,5 @@ -using System; +using Forks.EnterpriseServices.DomainObjects2; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -8,11 +9,17 @@ namespace BWP.B3ClientService.BO { [BOClass] [Serializable] + [KeyField("OrderDetail_ID", KeyGenType.assigned)] + [KeyField("Technics", KeyGenType.assigned)] public class OrderGradeFinishRelate { public long OrderDetail_ID { get; set; } public short Technics { get; set; } + public bool Finish { get; set; } + + public int Already { get; set; } + } } diff --git a/B3ClientService/BO/Bill/WeightBill/WeightBill.cs b/B3ClientService/BO/Bill/WeightBill/WeightBill.cs index f752ddb..2e9a0fe 100644 --- a/B3ClientService/BO/Bill/WeightBill/WeightBill.cs +++ b/B3ClientService/BO/Bill/WeightBill/WeightBill.cs @@ -11,6 +11,7 @@ namespace BWP.B3ClientService.BO [Serializable] public class WeightBill : SyncBill { + #region BasicFile public long? AccountingUnit_ID { get; set; } public long? Department_ID { get; set; } @@ -37,30 +38,10 @@ namespace BWP.B3ClientService.BO public string Car_Name { get; set; } - public long? LiveVarieties_ID { get; set; } - - public string LiveVarieties_Name { get; set; } - - public long? HogGrade_ID { get; set; } - - public string HogGrade_Name { get; set; } - public decimal? ShackWeight { get; set; } public decimal? ShackPrice { get; set; } - [NonDmoProperty] - public decimal? ShackMoney - { - get - { - var v = ShackPrice * ShackWeight; - if (v.HasValue) - return decimal.Round(v.Value, 2); - return null; - } - } - public decimal? JingJianFee { get; set; } public decimal? DiscontMoney { get; set; } @@ -71,38 +52,39 @@ namespace BWP.B3ClientService.BO public string AnimalTestMan { get; set; } - public long? Inspector_ID { get; set; } + public string Remark { get; set; } + #endregion - public string Inspector_Name { get; set; } + #region Special + //品种 打算默认 B3 过磅明细上用 其他地方不维护 + public long? LiveVarieties_ID { get; set; } - public string Remark { get; set; } + public string LiveVarieties_Name { get; set; } - [DbColumn(DefaultValue = 0)] - public bool AlreadyHouse { get; set; } + //毛猪等级 验质员会填写。 B3过磅单明细上用 + public long? HogGrade_ID { get; set; } + + public string HogGrade_Name { get; set; } + #endregion - //[NonDmoProperty] - public int? FirstWeightNumber { get; set; } + #region 无需自身维护 便于查看 + public string HouseNames { get; set; } - private WeightBill_DetailCollection mDetails = new WeightBill_DetailCollection(); - [OneToMany(typeof(WeightBill_Detail), "ID")] - [Join("ID", "WeightBill_ID")] - public WeightBill_DetailCollection Details { get { return mDetails; } set { mDetails = value; } } + public int? SanctionNumber { get; set; } - private WeightBill_FarmerDetailCollection mFarmerDetails = new WeightBill_FarmerDetailCollection(); - [OneToMany(typeof(WeightBill_FarmerDetail), "ID")] - [Join("ID", "WeightBill_ID")] - public WeightBill_FarmerDetailCollection FarmerDetails { get { return mFarmerDetails; } set { mFarmerDetails = value; } } + public long? Inspector_ID { get; set; } - private readonly WeightBill_HouseDetailCollection mHouseDetails = new WeightBill_HouseDetailCollection(); - [OneToMany(typeof(WeightBill_HouseDetail), "ID")] - [Join("ID", "WeightBill_ID")] - public WeightBill_HouseDetailCollection HouseDetails { get { return mHouseDetails; } } + public string Inspector_Name { get; set; } + #endregion - private readonly WeightBill_SanctionDetailCollection mSanctionDetails = new WeightBill_SanctionDetailCollection(); - [OneToMany(typeof(WeightBill_SanctionDetail), "ID")] - [Join("ID", "WeightBill_ID")] - public WeightBill_SanctionDetailCollection SanctionDetails { get { return mSanctionDetails; } } + #region 明细 + private List _details = new List(); + [NonDmoProperty] + public List Details { get { return _details; } set { _details = value; } } - public string HouseNames { get; set; } + private List _farmerDetails = new List(); + [NonDmoProperty] + public List FarmerDetails { get { return _farmerDetails; } set { _farmerDetails = value; } } + #endregion } } diff --git a/B3ClientService/BO/Bill/WeightBill/WeightBill_Detail.cs b/B3ClientService/BO/Bill/WeightBill/WeightBill_Detail.cs index 61c88d6..ea40708 100644 --- a/B3ClientService/BO/Bill/WeightBill/WeightBill_Detail.cs +++ b/B3ClientService/BO/Bill/WeightBill/WeightBill_Detail.cs @@ -22,8 +22,4 @@ namespace BWP.B3ClientService.BO public decimal? Weight { get; set; } } - - [Serializable] - public class WeightBill_DetailCollection : DmoCollection - { } } diff --git a/B3ClientService/BO/Bill/WeightBill/WeightBill_FarmerDetail.cs b/B3ClientService/BO/Bill/WeightBill/WeightBill_FarmerDetail.cs index 6062509..b3f251b 100644 --- a/B3ClientService/BO/Bill/WeightBill/WeightBill_FarmerDetail.cs +++ b/B3ClientService/BO/Bill/WeightBill/WeightBill_FarmerDetail.cs @@ -22,8 +22,4 @@ namespace BWP.B3ClientService.BO public decimal? Weight { get; set; } } - - [Serializable] - public class WeightBill_FarmerDetailCollection : DmoCollection - { } } diff --git a/B3ClientService/BO/Bill/WeightBill/WeightBill_HouseDetail.cs b/B3ClientService/BO/Bill/WeightBill/WeightBill_HouseDetail.cs index ef432aa..539508f 100644 --- a/B3ClientService/BO/Bill/WeightBill/WeightBill_HouseDetail.cs +++ b/B3ClientService/BO/Bill/WeightBill/WeightBill_HouseDetail.cs @@ -20,9 +20,4 @@ namespace BWP.B3ClientService.BO public int? Number { get; set; } } - - - [Serializable] - public class WeightBill_HouseDetailCollection : DmoCollection - { } } diff --git a/B3ClientService/BO/Bill/WeightBill/WeightBill_SanctionDetail.cs b/B3ClientService/BO/Bill/WeightBill/WeightBill_SanctionDetail.cs index 774cf96..73acf46 100644 --- a/B3ClientService/BO/Bill/WeightBill/WeightBill_SanctionDetail.cs +++ b/B3ClientService/BO/Bill/WeightBill/WeightBill_SanctionDetail.cs @@ -31,8 +31,4 @@ namespace BWP.B3ClientService.BO public int? Number { get; set; } } - - [Serializable] - public class WeightBill_SanctionDetailCollection : DmoCollection - { } } diff --git a/B3ClientService/BO/SyncBase.cs b/B3ClientService/BO/SyncBase.cs index 22a24c1..9fecf73 100644 --- a/B3ClientService/BO/SyncBase.cs +++ b/B3ClientService/BO/SyncBase.cs @@ -10,11 +10,6 @@ namespace BWP.B3ClientService.BO [Serializable] public abstract class SyncBase : Base { - /// - /// 对应B3ID - /// - public long? B3ID { get; set; } - /// /// 删除状态 /// diff --git a/B3ClientService/BO/SyncBill.cs b/B3ClientService/BO/SyncBill.cs index 2156c96..1491e4c 100644 --- a/B3ClientService/BO/SyncBill.cs +++ b/B3ClientService/BO/SyncBill.cs @@ -10,6 +10,11 @@ namespace BWP.B3ClientService.BO [Serializable] public abstract class SyncBill : SyncBase { + /// + /// 对应B3ID + /// + public long? B3ID { get; set; } + /// /// 单据创建人用户名 /// diff --git a/B3ClientService/ClientSerializerBo/WeightBill/HouseAndSanctionEdit.cs b/B3ClientService/ClientSerializerBo/WeightBill/HouseAndSanctionEdit.cs new file mode 100644 index 0000000..1bc0a07 --- /dev/null +++ b/B3ClientService/ClientSerializerBo/WeightBill/HouseAndSanctionEdit.cs @@ -0,0 +1,32 @@ +using BWP.B3ClientService.BO; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace BWP.B3ClientService +{ + public class HouseAndSanctionEdit + { + public long ID { get; set; } + + public int? Number { get; set; } + + public long? HogGrade_ID { get; set; } + + #region 获取的时候不赋值,只负责接收 + public string HogGrade_Name { get; set; } + + public long? Inspector_ID { get; set; } + + public string Inspector_Name { get; set; } + #endregion + + + private List _houseDetails = new List(); + public List HouseDetails { get { return _houseDetails; } set { _houseDetails = value; } } + + private List _sanctionDetails = new List(); + public List SanctionDetails { get { return _sanctionDetails; } set { _sanctionDetails = value; } } + } +} diff --git a/B3ClientService/ClientSerializerBo/WeightBill/HouseAndSanctionList.cs b/B3ClientService/ClientSerializerBo/WeightBill/HouseAndSanctionList.cs new file mode 100644 index 0000000..fc01f71 --- /dev/null +++ b/B3ClientService/ClientSerializerBo/WeightBill/HouseAndSanctionList.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace BWP.B3ClientService +{ + public class HouseAndSanctionList + { + public long ID { get; set; } + + public long? B3ID { get; set; } + + public string Employee_Name { get; set; } + + public string Supplier_Name { get; set; } + + public int? Number { get; set; } + + public string HouseNames { get; set; } + } +} diff --git a/B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs b/B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs new file mode 100644 index 0000000..bd783b7 --- /dev/null +++ b/B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace BWP.B3ClientService +{ + public class WeightBillList + { + public long ID { get; set; } + + public long? B3ID { get; set; } + + public string Car_Name { get; set; } + + public string Supplier_Name { get; set; } + + public string Employee_Name { get; set; } + + public string PurchaseType_Name { get; set; } + + public int? Number { get; set; } + + public decimal? Weight { get; set; } + + public string HouseNames { get; set; } + + public int? SanctionNumber { get; set; } + + public string Remark { get; set; } + + public bool FinishWeight { get; set; } + } +} diff --git a/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs b/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs index ee244fc..77d79ce 100644 --- a/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs +++ b/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs @@ -7,12 +7,12 @@ namespace BWP.B3ClientService.RpcBO { public class GradeAndWeight { - public long ID { get; set; } - public long OrderDetail_ID { get; set; } public int Order { get; set; } + public short Technics { get; set; } + public string Technics_Name { get; set; } public int Number { get; set; } diff --git a/B3ClientService/Rpcs/BackRpcObj.cs b/B3ClientService/Rpcs/BackRpcObj.cs index 36e487b..d4576c5 100644 --- a/B3ClientService/Rpcs/BackRpcObj.cs +++ b/B3ClientService/Rpcs/BackRpcObj.cs @@ -7,7 +7,6 @@ using System.Threading.Tasks; namespace BWP.B3ClientService.Rpcs { - [RpcObject] public class BackRpcObj { public long ID { get; set; } @@ -16,6 +15,6 @@ namespace BWP.B3ClientService.Rpcs private List _detailBack = new List(); - public List DetailBack { get { return _detailBack; } } + public List DetailBack { get { return _detailBack; } set { _detailBack = value; } } } } diff --git a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs index 579a31e..6afb589 100644 --- a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs +++ b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs @@ -23,29 +23,19 @@ namespace BWP.B3ClientService.Rpcs.BillRpc { 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.RegisterQueryTable(typeof(GradeTemp), new string[] { "OrdreID", "Tang", "TangAlready", "Mao", "MaoAlready" }, 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));//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("Order", order));//1 + query.Columns.Add(DQSelectColumn.Field("PlanNumber", order)); + query.Columns.Add(DQSelectColumn.Field("HotFadeNumber"));//3 + query.Columns.Add(DQSelectColumn.Field("TangAlready", relate)); + query.Columns.Add(DQSelectColumn.Field("MaoAlready", relate));//5 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.Columns.Add(DQSelectColumn.Field("Mao", relate));//7 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) @@ -58,30 +48,30 @@ namespace BWP.B3ClientService.Rpcs.BillRpc while (reader.Read()) { var tang = new GradeAndWeight(); - 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]); + tang.OrderDetail_ID = (long)reader[0]; + tang.Order = (int)reader[1]; + tang.Number = (int)reader[3]; + tang.Finish = Convert.ToBoolean(reader[6]); if (tang.Number != 0) { + tang.Technics = 0; tang.Technics_Name = "烫褪"; - tang.Already = Convert.ToInt32(reader[5]); + tang.Already = Convert.ToInt32(reader[4]); list.Add(tang); } - var lastNumber = (int)reader[3] - tang.Number; + var lastNumber = (int)reader[2] - 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 = 1; mb.Technics_Name = "毛剥"; - mb.Already = Convert.ToInt32(reader[6]); - mb.Finish = Convert.ToBoolean(reader[8]); + mb.Already = Convert.ToInt32(reader[5]); + mb.Finish = Convert.ToBoolean(reader[7]); } } } @@ -95,8 +85,12 @@ namespace BWP.B3ClientService.Rpcs.BillRpc public bool Tang { get; set; } + public int TangAlready { get; set; } + public bool Mao { get; set; } + public int MaoAlready { get; set; } + public static DQueryDom Register(DateTime date, long? maxID) { var main = new JoinAlias("_S2", typeof(SecondOrder)); @@ -106,8 +100,10 @@ namespace BWP.B3ClientService.Rpcs.BillRpc 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.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 0), DQExpression.Field(relate, "Finish"), DQExpression.Value(0))), "Tang")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 0), DQExpression.Field(relate, "Already"), DQExpression.Value(0))), "TangAlready")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 1), DQExpression.Field(relate, "Finish"), DQExpression.Value(0))), "Mao")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 1), DQExpression.Field(relate, "Already"), DQExpression.Value(0))), "MaoAlready")); 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)))); @@ -118,20 +114,17 @@ namespace BWP.B3ClientService.Rpcs.BillRpc } [Rpc] - public static string GetDetailsList(DateTime start, DateTime end, int? order, int type) + public static string GetDetailsList(DateTime date, int top) { var query = new DmoQuery(typeof(GradeAndWeight_Detail)); - 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) - query.Where.Conditions.Add(DQCondition.EQ("Order", order)); + query.Where.Conditions.Add(DQCondition.EQ("Date", date)); query.OrderBy.Expressions.Add(DQOrderByExpression.Create("Index", true)); + query.Range = SelectRange.Top(top); return serializer.Serialize(query.EExecuteList()); } [Rpc] - public static long InsertOrInsertDetail(string json) + public static long UpdateOrInsertDetail(string json, bool fillTechnics) { json = json.ESerializeDateTime(); var entity = serializer.Deserialize(json); @@ -141,6 +134,8 @@ namespace BWP.B3ClientService.Rpcs.BillRpc session.Insert(entity); else session.Update(entity); + if (fillTechnics) + AddAlready(session, entity.OrderDetail_ID, entity.Technics); session.Commit(); return entity.ID; } @@ -166,14 +161,49 @@ namespace BWP.B3ClientService.Rpcs.BillRpc { using (var session = Dmo.NewSession()) { - var entity = new OrderGradeFinishRelate(); + var entity = GetRelate(orderDetailID, technics); + if (entity == null) + { + entity = new OrderGradeFinishRelate(); + entity.OrderDetail_ID = orderDetailID; + entity.Technics = technics; + entity.Finish = true; + session.Insert(entity); + } + else + { + entity.Finish = true; + session.Update(entity); + } + session.Commit(); + } + + return 1; + } + + static void AddAlready(IDmoSession session, long orderDetailID, short technics) + { + var entity = GetRelate(orderDetailID, technics); + if (entity == null) + { + entity = new OrderGradeFinishRelate(); entity.OrderDetail_ID = orderDetailID; entity.Technics = technics; + entity.Already = 1; session.Insert(entity); - session.Commit(); } + else + { + entity.Already += 1; + session.Update(entity); + } + } - return 1; + static OrderGradeFinishRelate GetRelate(long orderDetailID, short technics) + { + var query = new DmoQuery(typeof(OrderGradeFinishRelate)); + query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("OrderDetail_ID", orderDetailID), DQCondition.EQ("Technics", technics))); + return query.EExecuteScalar(); } } } diff --git a/B3ClientService/Rpcs/BillRpc/HouseAndSanctionRpc.cs b/B3ClientService/Rpcs/BillRpc/HouseAndSanctionRpc.cs new file mode 100644 index 0000000..272ab77 --- /dev/null +++ b/B3ClientService/Rpcs/BillRpc/HouseAndSanctionRpc.cs @@ -0,0 +1,227 @@ +using BWP.B3ClientService.BO; +using BWP.B3Frameworks.Utils; +using Forks.EnterpriseServices.DomainObjects2; +using Forks.EnterpriseServices.DomainObjects2.DQuery; +using Forks.EnterpriseServices.JsonRpc; +using Forks.EnterpriseServices.SqlDoms; +using Forks.JsonRpc.Client.Data; +using System; +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.BillRpc +{ + [Rpc] + public static class HouseAndSanctionRpc + { + static JavaScriptSerializer serializer = new JavaScriptSerializer(); + + [Rpc] + public static string GetHouseAndSanctionList(DateTime date) + { + var main = new JoinAlias(typeof(WeightBill)); + var detail = new JoinAlias(typeof(WeightBill_Detail)); + var query = new DQueryDom(main); + query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.And(DQCondition.EQ(detail, "DeleteState", false), DQCondition.EQ(main, "ID", detail, "WeightBill_ID"))); + query.Columns.Add(DQSelectColumn.Field("ID")); + query.Columns.Add(DQSelectColumn.Field("B3ID")); + query.Columns.Add(DQSelectColumn.Field("Employee_Name")); + query.Columns.Add(DQSelectColumn.Field("Supplier_Name")); + query.Columns.Add(DQSelectColumn.Field("HouseNames")); + query.Columns.Add(DQSelectColumn.Field("Number", detail)); + query.Where.Conditions.Add(DQCondition.And(DQCondition.Between("WeighTime", date, date + new TimeSpan(23, 59, 29)), DQCondition.EQ("DeleteState", false))); + var list = new List(); + using (var session = Dmo.NewSession()) + { + using (var reader = session.ExecuteReader(query)) + { + while (reader.Read()) + { + var entity = new HouseAndSanctionList(); + entity.ID = (long)reader[0]; + entity.B3ID = (long?)reader[1]; + entity.Employee_Name = (string)reader[2]; + entity.Supplier_Name = (string)reader[3]; + entity.HouseNames = (string)reader[4]; + entity.Number = (int?)reader[5]; + list.Add(entity); + } + } + } + return serializer.Serialize(list); + } + + [Rpc] + public static int GetDetailTotalNumber(DateTime date) + { + var main = new JoinAlias(typeof(WeightBill)); + var detail = new JoinAlias(typeof(WeightBill_Detail)); + var query = new DQueryDom(main); + query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "WeightBill_ID")); + query.Where.Conditions.Add(DQCondition.And(DQCondition.And(DQCondition.EQ(detail, "DeleteState", false), DQCondition.EQ("DeleteState", false), DQCondition.Between("WeighTime", date.Date, date.Date + new TimeSpan(23, 59, 29))))); + query.Columns.Add(DQSelectColumn.Sum(detail, "Number")); + var result = query.EExecuteScalar(); + + if (result == null) + return 0; + return Convert.ToInt32(result); + } + + [Rpc] + public static string GetHouseAndSanctionDetail(long id) + { + var result = new HouseAndSanctionEdit(); + using (var session = Dmo.NewSession()) + { + result.ID = id; + result.HogGrade_ID = InnerBLUtil.GetDmoPropertyByID(session, typeof(WeightBill), "HogGrade_ID", id); + result.Number = InnerBLUtil.GetDmoProperty(session, typeof(WeightBill_Detail), "Number", new Tuple("WeightBill_ID", id), new Tuple("DeleteState", false)); + result.HouseDetails = InnerBLUtil.GetPartialFieldsDmoList(session, (query) => + { + query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", id), DQCondition.EQ("DeleteState", false))); + }, "ID", "LiveColonyHouse_ID").ToList(); + + result.SanctionDetails = InnerBLUtil.GetPartialFieldsDmoList(session, (query) => + { + query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", id), DQCondition.EQ("DeleteState", false))); + }, "ID", "AbnormalItem_ID", "Number").ToList(); + } + return serializer.Serialize(result); + } + + [Rpc] + public static int UpdateInsertHouseAndSanction(string json) + { + var entity = serializer.Deserialize(json); + using (var session = Dmo.NewSession()) + { + //为了节省ID,把传过来的通过栋舍匹配,并到原有明细里。然后从新的集合里把上传的集合里不存在的剔除掉 + var houseDetail = GetList(entity.ID); + foreach (var item in entity.HouseDetails) + { + var first = houseDetail.FirstOrDefault(x => x.LiveColonyHouse_ID == item.LiveColonyHouse_ID); + if (first == null) + houseDetail.Add(item); + else + first.Index = item.Index; + } + var delete = new List(); + var houseNames = new List(); + foreach (var item in houseDetail) + { + if (entity.HouseDetails.Any(x => x.LiveColonyHouse_ID == item.LiveColonyHouse_ID)) + { + UpdateOrInsertHouseDetail(session, item); + houseNames.Add(item.LiveColonyHouse_Name); + } + else + delete.Add(item.LiveColonyHouse_ID ?? 0); + } + + if (delete.Any()) + { + Delete(session, entity.ID, (dom) => + { + dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("LiveColonyHouse_ID"), delete.Select(x => DQExpression.Value(x)).ToArray())); + }); + } + + delete.Clear(); + var sanctionDetail = GetList(entity.ID); + foreach (var item in entity.SanctionDetails) + { + var first = sanctionDetail.FirstOrDefault(x => x.AbnormalItem_ID == item.AbnormalItem_ID); + if (first == null) + sanctionDetail.Add(item); + else + { + first.Index = item.Index; + first.Number = item.Number; + } + } + foreach (var item in sanctionDetail) + { + if (entity.SanctionDetails.Any(x => x.AbnormalItem_ID == item.AbnormalItem_ID)) + UpdateOrInsertSanctionDetail(session, item); + else + delete.Add(item.AbnormalItem_ID ?? 0); + } + + if (delete.Any()) + { + Delete(session, entity.ID, (dom) => + { + dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("AbnormalItem_ID"), delete.Select(x => DQExpression.Value(x)).ToArray())); + }); + } + + var dUpdate = new DQUpdateDom(typeof(WeightBill_Detail)); + dUpdate.Columns.Add(new DQUpdateColumn("Number", entity.Number)); + dUpdate.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", entity.ID), DQCondition.EQ("DeleteState", false))); + session.ExecuteNonQuery(dUpdate); + + var update = new DQUpdateDom(typeof(WeightBill)); + update.Columns.Add(new DQUpdateColumn("HogGrade_ID", entity.HogGrade_ID)); + update.Columns.Add(new DQUpdateColumn("HogGrade_Name", entity.HogGrade_Name)); + update.Columns.Add(new DQUpdateColumn("Inspector_ID", entity.Inspector_ID)); + update.Columns.Add(new DQUpdateColumn("Inspector_Name", entity.Inspector_Name)); + update.Columns.Add(new DQUpdateColumn("HouseNames", string.Join(",", houseNames))); + update.Columns.Add(new DQUpdateColumn("Sync", false)); + update.Columns.Add(new DQUpdateColumn("ModifyTime", DateTime.Now)); + update.Where.Conditions.Add(DQCondition.EQ("ID", entity.ID)); + session.ExecuteNonQuery(update); + session.Commit(); + } + return 1; + } + + static List GetList(long billID) + { + var query = new DmoQuery(typeof(T)); + query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", billID))); + return query.EExecuteList().Cast().ToList(); + } + + static void Delete(IDmoSession session, long billID, Action conditions) + where T : SyncBase + { + var delete = new DQUpdateDom(typeof(T)); + delete.Columns.Add(new DQUpdateColumn("DeleteState", true)); + delete.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", billID))); + conditions(delete); + session.ExecuteNonQuery(delete); + } + + static void UpdateOrInsertHouseDetail(IDmoSession session, WeightBill_HouseDetail detail) + { + if (detail.ID == 0) + { + session.Insert(detail); + return; + } + var update = new DQUpdateDom(typeof(WeightBill_HouseDetail)); + update.Columns.Add(new DQUpdateColumn("Index", detail.Index)); + update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("LiveColonyHouse_ID", detail.LiveColonyHouse_ID))); + session.ExecuteNonQuery(update); + } + + static void UpdateOrInsertSanctionDetail(IDmoSession session, WeightBill_SanctionDetail detail) + { + if (detail.ID == 0) + { + session.Insert(detail); + return; + } + var update = new DQUpdateDom(typeof(WeightBill_SanctionDetail)); + update.Columns.Add(new DQUpdateColumn("Index", detail.Index)); + update.Columns.Add(new DQUpdateColumn("Number", detail.Number)); + update.Columns.Add(new DQUpdateColumn("Sanction_ID", detail.Sanction_ID)); + update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("AbnormalItem_ID", detail.AbnormalItem_ID))); + session.ExecuteNonQuery(update); + } + } +} diff --git a/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs b/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs index 7321fa9..b6e312b 100644 --- a/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs +++ b/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs @@ -21,419 +21,210 @@ namespace BWP.B3ClientService.Rpcs.BillRpc static JavaScriptSerializer serializer = new JavaScriptSerializer(); [Rpc] - public static BackRpcObj UploadBill(WeightBill dmo, string recordDetail) + public static string GetWeightBillList(DateTime date, long? carID, long? supplierID) { - recordDetail = recordDetail.ESerializeDateTime(); - var records = serializer.Deserialize>(recordDetail); - var weightDetails = dmo.Details.ToList(); - dmo.Details = new WeightBill_DetailCollection(); - + var main = new JoinAlias(typeof(WeightBill)); + var detail = new JoinAlias(typeof(WeightBill_Detail)); + var query = new DQueryDom(main); + query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.And(DQCondition.EQ(detail, "DeleteState", false), DQCondition.EQ(main, "ID", detail, "WeightBill_ID"))); + query.Columns.Add(DQSelectColumn.Field("ID")); + query.Columns.Add(DQSelectColumn.Field("B3ID")); + query.Columns.Add(DQSelectColumn.Field("Car_Name")); + query.Columns.Add(DQSelectColumn.Field("Supplier_Name")); + query.Columns.Add(DQSelectColumn.Field("Employee_Name")); + query.Columns.Add(DQSelectColumn.Field("PurchaseType_Name"));//5 + query.Columns.Add(DQSelectColumn.Field("HouseNames")); + query.Columns.Add(DQSelectColumn.Field("SanctionNumber")); + query.Columns.Add(DQSelectColumn.Field("Remark")); + query.Columns.Add(DQSelectColumn.Field("Number", detail)); + query.Columns.Add(DQSelectColumn.Field("Weight", detail)); + query.Columns.Add(DQSelectColumn.Create(DQExpression.LogicCase(DQCondition.And(DQCondition.IsNotNull(DQExpression.Field(detail, "PiWeight")), DQCondition.IsNotNull(DQExpression.Field(detail, "MaoWeight"))), DQExpression.Value(1), DQExpression.Value(0)), "FinishWeight")); + query.Where.Conditions.Add(DQCondition.And(DQCondition.Between("WeighTime", date, date + new TimeSpan(23, 59, 29)), DQCondition.EQ("DeleteState", false))); + if (carID.HasValue) + query.Where.Conditions.Add(DQCondition.EQ("Car_ID", carID)); + if (supplierID.HasValue) + query.Where.Conditions.Add(DQCondition.EQ("Supplier_ID", supplierID)); + var list = new List(); using (var session = Dmo.NewSession()) { - if (dmo.ID == 0) - session.Insert(dmo); - else - { - foreach (var item in dmo.FarmerDetails) - { - if (item.ID == 0) - session.Insert(item); - else - session.Update(item); - } - dmo.FarmerDetails = new WeightBill_FarmerDetailCollection(); - FillServerUpdateFields(session, dmo); - session.Update(dmo); - } - InsertWeightDetails(dmo.ID, weightDetails, records, session); - session.Commit(); - } - var result = new BackRpcObj(); - result.ID = dmo.ID; - var details = new BackRpcObj() { Flag = "Details" }; - foreach (var d in weightDetails) - details.DetailBack.Add(new BackRpcObj() { Flag = d.Index.ToString(), ID = d.ID }); - result.DetailBack.Add(details); - var farmerDetails = new BackRpcObj() { Flag = "FarmerDetails" }; - foreach (var d in dmo.FarmerDetails) - farmerDetails.DetailBack.Add(new BackRpcObj() { Flag = d.Index.ToString(), ID = d.ID }); - result.DetailBack.Add(farmerDetails); - return result; - } - - static void InsertWeightDetails(long id, List details, List records, IDmoSession session) - { - foreach (var item in details) - { - if (item.ID == 0) - { - item.WeightBill_ID = id; - session.Insert(item); - } - else - session.Update(item); - foreach (var r in records) + using (var reader = session.ExecuteReader(query)) { - if (r.Delete) - session.Delete(r); - else + while (reader.Read()) { - r.WeightBill_Detail_ID = item.ID; - session.Insert(r); + var entity = new WeightBillList(); + entity.ID = (long)reader[0]; + entity.B3ID = (long?)reader[1]; + entity.Car_Name = (string)reader[2]; + entity.Supplier_Name = (string)reader[3]; + entity.Employee_Name = (string)reader[4]; + entity.PurchaseType_Name = (string)reader[5]; + entity.HouseNames = (string)reader[6]; + entity.SanctionNumber = (int?)reader[7]; + entity.Remark = (string)reader[8]; + entity.Number = (int?)reader[9]; + entity.Weight = (decimal?)reader[10]; + entity.FinishWeight = Convert.ToBoolean(reader[11]); + list.Add(entity); } } } - } - - static void FillServerUpdateFields(IDmoSession session, WeightBill dmo) - { - var min = InnerBLUtil.GetSingleDmo(session, "ID", dmo.ID, "B3ID", "DeleteState", "AlreadyHouse", "Inspector_ID", "Inspector_Name", "HouseNames"); - dmo.B3ID = min.B3ID; - dmo.DeleteState = min.DeleteState; - dmo.AlreadyHouse = min.AlreadyHouse; - dmo.Inspector_ID = min.Inspector_ID; - dmo.Inspector_Name = min.Inspector_Name; - dmo.HouseNames = min.HouseNames; - dmo.Sync = false; - dmo.ModifyTime = DateTime.Now; + return serializer.Serialize(list); } [Rpc] - public static bool DeleteBill(long id) - { - using (var session = Dmo.NewSession()) - { - DeleteEntity(session, "ID", id); - DeleteEntity(session, "WeightBill_ID", id); - DeleteEntity(session, "WeightBill_ID", id); - DeleteEntity(session, "WeightBill_ID", id); - DeleteEntity(session, "WeightBill_ID", id); - session.Commit(); - } - return true; - } - - static void DeleteEntity(IDmoSession session, string property, object value) - where T : SyncBase - { - var update = new DQUpdateDom(typeof(T)); - update.Columns.Add(new DQUpdateColumn("DeleteState", true)); - update.Where.Conditions.Add(DQCondition.EQ(property, value)); - session.ExecuteNonQuery(update); - } - - [Rpc] - public static List GetWeightBillList(DateTime date, long? carID, long? supplierID) + public static string Load(long id) { var query = new DmoQuery(typeof(WeightBill)); - query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.Between("WeighTime", date.Date, date.Date + new TimeSpan(23, 59, 29)))); - if (carID.HasValue) - query.Where.Conditions.Add(DQCondition.EQ("Car_ID", carID)); - if (supplierID.HasValue) - query.Where.Conditions.Add(DQCondition.EQ("Supplier_ID", supplierID)); - return query.EExecuteList().Cast().ToList(); - } + query.Where.Conditions.Add(DQCondition.EQ("ID", id)); + var entity = query.EExecuteScalar(); - [Rpc] - public static List> SyncBillB3Ids(List ids) - { - return GetSyncBaseB3Ids(ids); - } + var dQuery = new DmoQuery(typeof(WeightBill_Detail)); + dQuery.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", id))); + entity.Details = dQuery.EExecuteList().Cast().ToList(); - [Rpc] - public static List> SyncWeightDetailB3Ids(List ids) - { - return GetSyncBaseB3Ids(ids); + var fQuery = new DmoQuery(typeof(WeightBill_FarmerDetail)); + fQuery.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", id))); + entity.FarmerDetails = fQuery.EExecuteList().Cast().ToList(); + return serializer.Serialize(entity); } [Rpc] - public static List> SyncFarmerDetailB3Ids(List ids) - { - return GetSyncBaseB3Ids(ids); - } - - static List> GetSyncBaseB3Ids(List ids) - where T : SyncBase - { - var query = new DQueryDom(new JoinAlias(typeof(T))); - query.Columns.Add(DQSelectColumn.Field("ID")); - query.Columns.Add(DQSelectColumn.Field("B3ID")); - query.Where.Conditions.Add(DQCondition.And(DQCondition.IsNotNull(DQExpression.Field("B3ID")), DQCondition.InList(DQExpression.Field("ID"), ids.Select(x => DQExpression.Value(x)).ToArray()))); - return query.EExecuteList(); - } - - [Rpc] - public static List> SyncWeightDetailFirstNumber(List detailIds) - { - var query = new DQueryDom(new JoinAlias(typeof(WeightBill_Detail))); - query.Columns.Add(DQSelectColumn.Field("WeightBill_ID")); - query.Columns.Add(DQSelectColumn.Field("ID")); - query.Columns.Add(DQSelectColumn.Field("Number")); - query.Where.Conditions.Add(DQCondition.And(DQCondition.IsNotNull(DQExpression.Field("Number")), DQCondition.InList(DQExpression.Field("ID"), detailIds.Select(x => DQExpression.Value(x)).ToArray()))); - return query.EExecuteList(); - } - - [Rpc] - public static List GetNoHouseInfoWeightBills(DateTime date) - { - var query = new DQueryDom(new JoinAlias(typeof(WeightBill))); - query.Where.Conditions.Add(DQCondition.And(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.Between("WeighTime", date.Date, date.Date + new TimeSpan(23, 59, 29))))); - query.Columns.Add(DQSelectColumn.Field("ID")); - query.Columns.Add(DQSelectColumn.Field("B3ID")); - query.Columns.Add(DQSelectColumn.Field("Employee_Name")); - query.Columns.Add(DQSelectColumn.Field("Supplier_Name")); - query.Columns.Add(DQSelectColumn.Field("AlreadyHouse")); - var result = query.EExecuteList(); - var list = new List(); - foreach (var item in result) - { - var bill = new WeightWithHouseDetail(); - var entity = new WeightBill(); - bill.Bill = entity; - list.Add(bill); - entity.ID = item.Item1; - entity.B3ID = item.Item2; - entity.Employee_Name = item.Item3; - entity.Supplier_Name = item.Item4; - entity.AlreadyHouse = item.Item5; - entity.FirstWeightNumber = GetWeightDetailFirstNumber(entity.ID); - } - var details = GetWeightHouseDetail(list.Select(x => x.Bill.ID)); - foreach (var item in list) - { - var tags = details.Where(x => x.WeightBill_ID == item.Bill.ID); - if (tags.Any()) - item.Detail = tags.ToArray(); - } - return list; - } - - static int? GetWeightDetailFirstNumber(long id) - { - var query = new DQueryDom(new JoinAlias(typeof(WeightBill_Detail))); - query.Columns.Add(DQSelectColumn.Field("Number")); - query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", id))); - query.Range = SelectRange.Top(1); - query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID")); - return query.EExecuteScalar(); - } - - static IEnumerable GetWeightHouseDetail(IEnumerable billIDs) - { - var query = new DmoQuery(typeof(WeightBill_HouseDetail)); - query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.InList(DQExpression.Field("WeightBill_ID"), billIDs.Select(x => DQExpression.Value(x)).ToArray()))); - return query.EExecuteList().Cast(); - } - - [Rpc] - public static int UpdateInsertWeightBillHouseDetail(WeightBill bo) + public static string UpdateOrInsert(string json, string recordDetail) { + json = json.ESerializeDateTime(); + var dmo = serializer.Deserialize(json); + recordDetail = recordDetail.ESerializeDateTime(); + var records = serializer.Deserialize>(recordDetail); + var result = new BackRpcObj(); using (var session = Dmo.NewSession()) { - //因为传过来的明细是不带ID的。 - var houseDetail = GetList(new Tuple("WeightBill_ID", bo.ID), new Tuple("DeleteState", false)); - - foreach (var item in bo.HouseDetails) + if (dmo.ID != 0) { - var first = houseDetail.FirstOrDefault(x => x.LiveColonyHouse_ID == item.LiveColonyHouse_ID); - if (first == null) - houseDetail.Add(item); - else - first.Index = item.Index; + FillServerUpdateFields(session, dmo); + session.Update(dmo); } - var delete = new List(); - var houseNames = new List(); - foreach (var item in houseDetail) + else { - if (bo.HouseDetails.Any(x => x.LiveColonyHouse_ID == item.LiveColonyHouse_ID)) - { - UpdateOrInsertHouseDetail(session, item); - houseNames.Add(item.LiveColonyHouse_Name); - } - else - delete.Add(item.LiveColonyHouse_ID ?? 0); + dmo.ModifyTime = DateTime.Now; + session.Insert(dmo); } - if (delete.Any()) + var detailBack = InsertWeightDetails(dmo.ID, dmo.Details, records, session); + if (detailBack.Any()) { - Delete(session, (dom) => - { - dom.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", bo.ID))); - dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("LiveColonyHouse_ID"), delete.Select(x => DQExpression.Value(x)).ToArray())); - }); + var details = new BackRpcObj() { Flag = "Details" }; + details.DetailBack.AddRange(detailBack); + result.DetailBack.Add(details); } - var sanctionDetail = GetList(new Tuple("WeightBill_ID", bo.ID), new Tuple("DeleteState", false)); - - foreach (var item in bo.SanctionDetails) + var farmerDetails = new BackRpcObj() { Flag = "FarmerDetails" }; + foreach (var detail in dmo.FarmerDetails) { - var first = sanctionDetail.FirstOrDefault(x => x.AbnormalItem_ID == item.AbnormalItem_ID); - if (first == null) - sanctionDetail.Add(item); - else + if (detail.ID == 0) { - first.Index = item.Index; - first.Number = item.Number; + detail.WeightBill_ID = dmo.ID; + session.Insert(detail); + farmerDetails.DetailBack.Add(new BackRpcObj() { Flag = detail.Index.ToString(), ID = detail.ID }); } - } - delete.Clear(); - foreach (var item in sanctionDetail) - { - if (bo.SanctionDetails.Any(x => x.AbnormalItem_ID == item.AbnormalItem_ID)) - UpdateOrInsertSanctionDetail(session, item); else - delete.Add(item.AbnormalItem_ID ?? 0); - } - - if (delete.Any()) - { - Delete(session, (dom) => - { - dom.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", bo.ID))); - dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("AbnormalItem_ID"), delete.Select(x => DQExpression.Value(x)).ToArray())); - }); + session.Update(detail); } - - - - var firstID = GetWeightDetailFirstID(bo.ID); - if (firstID.HasValue) - { - var dUpdate = new DQUpdateDom(typeof(WeightBill_Detail)); - dUpdate.Columns.Add(new DQUpdateColumn("Number", bo.FirstWeightNumber)); - dUpdate.Where.Conditions.Add(DQCondition.EQ("ID", firstID)); - session.ExecuteNonQuery(dUpdate); - } - var update = new DQUpdateDom(typeof(WeightBill)); - update.Columns.Add(new DQUpdateColumn("HogGrade_ID", bo.HogGrade_ID)); - update.Columns.Add(new DQUpdateColumn("HogGrade_Name", bo.HogGrade_Name)); - update.Columns.Add(new DQUpdateColumn("Inspector_ID", bo.Inspector_ID)); - update.Columns.Add(new DQUpdateColumn("Inspector_Name", bo.Inspector_Name)); - update.Columns.Add(new DQUpdateColumn("HouseNames", string.Join(",", houseNames))); - update.Columns.Add(new DQUpdateColumn("AlreadyHouse", true)); - update.Columns.Add(new DQUpdateColumn("Sync", false)); - update.Columns.Add(new DQUpdateColumn("ModifyTime", DateTime.Now)); - update.Where.Conditions.Add(DQCondition.EQ("ID", bo.ID)); - session.ExecuteNonQuery(update); + if (farmerDetails.DetailBack.Any()) + result.DetailBack.Add(farmerDetails); session.Commit(); } - return 1; - } - - static List GetList(params Tuple[] condition) - { - var query = new DmoQuery(typeof(T)); - if (condition.Any()) - query.Where.Conditions.Add(DQCondition.And(condition.Select(x => DQCondition.EQ(x.Item1, x.Item2)))); - return query.EExecuteList().Cast().ToList(); - } - - static void Delete(IDmoSession session, Action conditions) - where T : SyncBase - { - var delete = new DQUpdateDom(typeof(T)); - delete.Columns.Add(new DQUpdateColumn("DeleteState", true)); - conditions(delete); - session.ExecuteNonQuery(delete); + result.ID = dmo.ID; + return serializer.Serialize(result); } - static void UpdateOrInsertHouseDetail(IDmoSession session, WeightBill_HouseDetail detail) + static void FillServerUpdateFields(IDmoSession session, WeightBill dmo) { - if (detail.ID == 0) - { - session.Insert(detail); - return; - } - var update = new DQUpdateDom(typeof(WeightBill_HouseDetail)); - update.Columns.Add(new DQUpdateColumn("Index", detail.Index)); - update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("LiveColonyHouse_ID", detail.LiveColonyHouse_ID))); - session.ExecuteNonQuery(update); + var min = InnerBLUtil.GetSingleDmo(session, "ID", dmo.ID, "B3ID", "Inspector_ID", "Inspector_Name", "HouseNames", "SanctionNumber"); + dmo.B3ID = min.B3ID; + dmo.Inspector_ID = min.Inspector_ID; + dmo.Inspector_Name = min.Inspector_Name; + dmo.HouseNames = min.HouseNames; + dmo.SanctionNumber = min.SanctionNumber; + dmo.Sync = false; + dmo.ModifyTime = DateTime.Now; } - static void UpdateOrInsertSanctionDetail(IDmoSession session, WeightBill_SanctionDetail detail) + static List InsertWeightDetails(long id, List details, List records, IDmoSession session) { - if (detail.ID == 0) + var result = new List(); + foreach (var item in details) { - session.Insert(detail); - return; + if (item.ID == 0) + { + item.WeightBill_ID = id; + session.Insert(item); + result.Add(new BackRpcObj() { Flag = item.Index.ToString(), ID = item.ID }); + } + else + session.Update(item); + if (item.DeleteState) + DeleteWeightDetail(session, item.ID); + else + { + foreach (var r in records) + { + if (r.Delete) + session.Delete(r); + else + { + r.WeightBill_Detail_ID = item.ID; + session.Insert(r); + } + } + } } - var update = new DQUpdateDom(typeof(WeightBill_SanctionDetail)); - update.Columns.Add(new DQUpdateColumn("Index", detail.Index)); - update.Columns.Add(new DQUpdateColumn("Number", detail.Number)); - update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("AbnormalItem_ID", detail.AbnormalItem_ID))); - session.ExecuteNonQuery(update); + return result; } - static long? GetWeightDetailFirstID(long id) + static void DeleteWeightDetail(IDmoSession session, long detailID) { - var query = new DQueryDom(new JoinAlias(typeof(WeightBill_Detail))); - query.Columns.Add(DQSelectColumn.Field("ID")); - query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", id))); - query.Range = SelectRange.Top(1); - query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID")); - return query.EExecuteScalar(); + var delete = new DQDeleteDom(typeof(WeightDetail)); + delete.Where.Conditions.Add(DQCondition.EQ("WeightBill_Detail_ID", detailID)); + session.ExecuteNonQuery(delete); } [Rpc] - public static int GetDetailTotalNumber(DateTime date) + public static string GetWeightRecord(long id) { - var main = new JoinAlias(typeof(WeightBill)); - var detail = new JoinAlias(typeof(WeightBill_Detail)); - var query = new DQueryDom(main); - query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "WeightBill_ID")); - query.Where.Conditions.Add(DQCondition.And(DQCondition.And(DQCondition.EQ(detail, "DeleteState", false), DQCondition.EQ("DeleteState", false), DQCondition.Between("WeighTime", date.Date, date.Date + new TimeSpan(23, 59, 29))))); - query.Columns.Add(DQSelectColumn.Sum(detail, "Number")); - var result = query.EExecuteScalar(); - - if (result == null) - return 0; - return Convert.ToInt32(result); + var query = new DmoQuery(typeof(WeightDetail)); + query.Where.Conditions.Add(DQCondition.EQ("WeightBill_Detail_ID", id)); + var result = query.EExecuteList(); + return serializer.Serialize(result); } [Rpc] - public static WeightWithHouseAndSanction GetWeightBillOnHousePage(long id) + public static bool DeleteBill(long id) { - var result = new WeightWithHouseAndSanction(); using (var session = Dmo.NewSession()) { - var entity = new WeightBill(); - entity.HogGrade_ID = InnerBLUtil.GetDmoPropertyByID(session, typeof(WeightBill), "HogGrade_ID", id); - entity.FirstWeightNumber = GetWeightDetailFirstNumber(id); - result.Bill = entity; - result.Detail = InnerBLUtil.GetPartialFieldsDmoList(session, (query) => - { - query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", id), DQCondition.EQ("DeleteState", false))); - }, "ID", "LiveColonyHouse_ID").ToArray(); + var update = new DQUpdateDom(typeof(WeightBill)); + update.Columns.Add(new DQUpdateColumn("DeleteState", true)); + update.Columns.Add(new DQUpdateColumn("Sync", false)); + update.Where.Conditions.Add(DQCondition.EQ("ID", id)); - result.SanctionDetail = InnerBLUtil.GetPartialFieldsDmoList(session, (query) => - { - query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", id), DQCondition.EQ("DeleteState", false))); - }, "ID", "AbnormalItem_ID", "Number").ToArray(); + var detailID = InnerBLUtil.GetDmoProperty(session, typeof(WeightBill_Detail), "ID", new Tuple("WeightBill_ID", id), new Tuple("DeleteState", false)); + if (detailID.HasValue) + DeleteWeightDetail(session, detailID.Value); + session.Commit(); } - return result; + + return true; } [Rpc] - public static string GetWeightRecord(long id) + public static string SyncBillB3Ids(List ids) { - var query = new DmoQuery(typeof(WeightDetail)); - query.Where.Conditions.Add(DQCondition.EQ("WeightBill_Detail_ID", id)); - var result = query.EExecuteList(); - return serializer.Serialize(result); + var query = new DQueryDom(new JoinAlias(typeof(WeightBill))); + query.Columns.Add(DQSelectColumn.Field("ID")); + query.Columns.Add(DQSelectColumn.Field("B3ID")); + query.Where.Conditions.Add(DQCondition.And(DQCondition.IsNotNull(DQExpression.Field("B3ID")), DQCondition.InList(DQExpression.Field("ID"), ids.Select(x => DQExpression.Value(x)).ToArray()))); + var result = query.EExecuteList().Select(x => new CTuple(x.Item1, x.Item2)); + return serializer.Serialize(result.ToList()); } } - - [RpcObject] - public class WeightWithHouseDetail - { - public WeightBill Bill { get; set; } - - public WeightBill_HouseDetail[] Detail { get; set; } - } - - [RpcObject] - public class WeightWithHouseAndSanction : WeightWithHouseDetail - { - public WeightBill_SanctionDetail[] SanctionDetail { get; set; } - } } diff --git a/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs b/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs index b583d96..9d8b909 100644 --- a/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs +++ b/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs @@ -18,163 +18,163 @@ namespace BWP.B3ClientService.Tasks.UpdateLoad { public static class UpLoadWeightBill { - public static void Execute(string uri) - { - var serializer = new JavaScriptSerializer(); - //获取所有未上传的数据 - var allBill = GetAllNeedSyncBill(); - - foreach (var item in allBill) - { - var bwpClient = new BWPClient(uri, item.Creator); - using (var context = new TransactionContext()) - { - #region 删除 - if (item.DeleteState) - { - if (item.B3ID.HasValue) - bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/Delete", item.B3ID.Value); - context.Session.Delete(item); - context.Commit(); - continue; - } - #endregion - - var sync = serializer.Serialize(CreateRpcWeightBill(item)); - var back = bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/UpdateOrInsert", sync); - - #region 同步完了要清理掉删除的明细(当前实体和数据库) - ClearDetails(item, context.Session); - - #endregion - - #region 反填信息 - item.B3ID = back.ID; - SetBillAsSynced(item.ID, item.B3ID.Value, context.Session); - - foreach (var bItem in back.DetailBack) - { - switch (bItem.Flag) - { - case "Details": - ExecuteSimpleDetail(bItem, context.Session); - break; - case "FarmerDetails": - ExecuteSimpleDetail(bItem, context.Session); - break; - case "SanctionDetails": - ExecuteSimpleDetail(bItem, context.Session); - break; - default: - break; - } - } - //栋舍明细在B3系统不存在,所以无返回信息 - ExecuteHouseDetial(item.ID, context.Session); - #endregion - - context.Commit(); - } - } - } - - static IEnumerable GetAllNeedSyncBill() - { - var query = new DmoQuery(typeof(WeightBill)); - query.Where.Conditions.Add(DQCondition.EQ("Sync", false)); - query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true)); - return query.EExecuteList().Cast(); - } - - static RpcWeightBill CreateRpcWeightBill(WeightBill bill) - { - var result = new RpcWeightBill(); - result.Bill = new SWeightBill(); - DmoUtil.CopyDmoFields(bill, result.Bill); - - var d = bill.Details.Where(x => !x.DeleteState); - result.Details = d.Select(x => { var y = new SWeightBill_Detail(); DmoUtil.CopyDmoFields(x, y); return y; }).ToArray(); - if (result.Details.Any()) - { - result.Details.OrderBy(x => x.ID).First().LiveColonyHouse_Name = string.Join(",", bill.HouseDetails.Where(x => !x.DeleteState).Select(x => x.LiveColonyHouse_Name)); - } - - result.D_Details = bill.Details.Where(x => x.DeleteState && x.B3ID.HasValue).Select(x => x.B3ID.Value).ToArray(); - - - var fd = bill.FarmerDetails.Where(x => !x.DeleteState); - result.FarmerDetails = fd.Select(x => { var y = new SWeightBill_FarmerDetail(); DmoUtil.CopyDmoFields(x, y); return y; }).ToArray(); - - result.D_FarmerDetails = bill.FarmerDetails.Where(x => x.DeleteState && x.B3ID.HasValue).Select(x => x.B3ID.Value).ToArray(); - - - var sd = bill.SanctionDetails.Where(x => !x.DeleteState); - result.SanctionDetails = sd.Select(x => { var y = new SWeightBill_SanctionDetail(); DmoUtil.CopyDmoFields(x, y); return y; }).ToArray(); - - result.D_SanctionDetails = bill.SanctionDetails.Where(x => x.DeleteState && x.B3ID.HasValue).Select(x => x.B3ID.Value).ToArray(); - - return result; - } - - private static void ClearDetails(WeightBill bill, IDmoSession session) - { - var d = bill.Details.Where(x => x.DeleteState).ToArray(); - foreach (var dd in d) - bill.Details.Remove(dd); - DeleteDetail(bill.ID, session); - - var f = bill.FarmerDetails.Where(x => x.DeleteState).ToArray(); - foreach (var fd in f) - bill.FarmerDetails.Remove(fd); - DeleteDetail(bill.ID, session); - - var h = bill.HouseDetails.Where(x => x.DeleteState).ToArray(); - foreach (var hd in h) - bill.HouseDetails.Remove(hd); - DeleteDetail(bill.ID, session); - - var s = bill.SanctionDetails.Where(x => x.DeleteState).ToArray(); - foreach (var sd in s) - bill.SanctionDetails.Remove(sd); - DeleteDetail(bill.ID, session); - - } - - static void DeleteDetail(long mainID, IDmoSession session) - where T : SyncBase - { - var delete = new DQDeleteDom(typeof(T)); - delete.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", mainID), DQCondition.EQ("DeleteState", true))); - session.ExecuteNonQuery(delete); - } - - static void ExecuteHouseDetial(long mainID, IDmoSession session) - { - var update = new DQUpdateDom(typeof(WeightBill_HouseDetail)); - update.Columns.Add(new DQUpdateColumn("B3ID", -1)); - update.Where.Conditions.Add(DQCondition.EQ("WeightBill_ID", mainID)); - session.ExecuteNonQuery(update); - } - - static void ExecuteSimpleDetail(BackRpcObj details, IDmoSession session) - where T : SyncBase - { - foreach (var item in details.DetailBack) - { - var update = new DQUpdateDom(typeof(T)); - update.Columns.Add(new DQUpdateColumn("B3ID", item.ID)); - update.Where.Conditions.Add(DQCondition.EQ("ID", long.Parse(item.Flag))); - session.ExecuteNonQuery(update); - } - } - - static void SetBillAsSynced(long id, long B3ID, IDmoSession session) - { - var update = new DQUpdateDom(typeof(WeightBill)); - update.Columns.Add(new DQUpdateColumn("Sync", true)); - update.Columns.Add(new DQUpdateColumn("B3ID", B3ID)); - update.Where.Conditions.Add(DQCondition.EQ("ID", id)); - session.ExecuteNonQuery(update); - } + //public static void Execute(string uri) + //{ + // var serializer = new JavaScriptSerializer(); + // //获取所有未上传的数据 + // var allBill = GetAllNeedSyncBill(); + + // foreach (var item in allBill) + // { + // var bwpClient = new BWPClient(uri, item.Creator); + // using (var context = new TransactionContext()) + // { + // #region 删除 + // if (item.DeleteState) + // { + // if (item.B3ID.HasValue) + // bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/Delete", item.B3ID.Value); + // context.Session.Delete(item); + // context.Commit(); + // continue; + // } + // #endregion + + // var sync = serializer.Serialize(CreateRpcWeightBill(item)); + // var back = bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/UpdateOrInsert", sync); + + // #region 同步完了要清理掉删除的明细(当前实体和数据库) + // ClearDetails(item, context.Session); + + // #endregion + + // #region 反填信息 + // item.B3ID = back.ID; + // SetBillAsSynced(item.ID, item.B3ID.Value, context.Session); + + // foreach (var bItem in back.DetailBack) + // { + // switch (bItem.Flag) + // { + // case "Details": + // ExecuteSimpleDetail(bItem, context.Session); + // break; + // case "FarmerDetails": + // ExecuteSimpleDetail(bItem, context.Session); + // break; + // case "SanctionDetails": + // ExecuteSimpleDetail(bItem, context.Session); + // break; + // default: + // break; + // } + // } + // //栋舍明细在B3系统不存在,所以无返回信息 + // ExecuteHouseDetial(item.ID, context.Session); + // #endregion + + // context.Commit(); + // } + // } + //} + + //static IEnumerable GetAllNeedSyncBill() + //{ + // var query = new DmoQuery(typeof(WeightBill)); + // query.Where.Conditions.Add(DQCondition.EQ("Sync", false)); + // query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID")); + // return query.EExecuteList().Cast(); + //} + + //static RpcWeightBill CreateRpcWeightBill(WeightBill bill) + //{ + // var result = new RpcWeightBill(); + // result.Bill = new SWeightBill(); + // DmoUtil.CopyDmoFields(bill, result.Bill); + + // var d = bill.Details.Where(x => !x.DeleteState); + // result.Details = d.Select(x => { var y = new SWeightBill_Detail(); DmoUtil.CopyDmoFields(x, y); return y; }).ToArray(); + // if (result.Details.Any()) + // { + // result.Details.OrderBy(x => x.ID).First().LiveColonyHouse_Name = string.Join(",", bill.HouseDetails.Where(x => !x.DeleteState).Select(x => x.LiveColonyHouse_Name)); + // } + + // result.D_Details = bill.Details.Where(x => x.DeleteState && x.B3ID.HasValue).Select(x => x.B3ID.Value).ToArray(); + + + // var fd = bill.FarmerDetails.Where(x => !x.DeleteState); + // result.FarmerDetails = fd.Select(x => { var y = new SWeightBill_FarmerDetail(); DmoUtil.CopyDmoFields(x, y); return y; }).ToArray(); + + // result.D_FarmerDetails = bill.FarmerDetails.Where(x => x.DeleteState && x.B3ID.HasValue).Select(x => x.B3ID.Value).ToArray(); + + + // var sd = bill.SanctionDetails.Where(x => !x.DeleteState); + // result.SanctionDetails = sd.Select(x => { var y = new SWeightBill_SanctionDetail(); DmoUtil.CopyDmoFields(x, y); return y; }).ToArray(); + + // result.D_SanctionDetails = bill.SanctionDetails.Where(x => x.DeleteState && x.B3ID.HasValue).Select(x => x.B3ID.Value).ToArray(); + + // return result; + //} + + //private static void ClearDetails(WeightBill bill, IDmoSession session) + //{ + // var d = bill.Details.Where(x => x.DeleteState).ToArray(); + // foreach (var dd in d) + // bill.Details.Remove(dd); + // DeleteDetail(bill.ID, session); + + // var f = bill.FarmerDetails.Where(x => x.DeleteState).ToArray(); + // foreach (var fd in f) + // bill.FarmerDetails.Remove(fd); + // DeleteDetail(bill.ID, session); + + // var h = bill.HouseDetails.Where(x => x.DeleteState).ToArray(); + // foreach (var hd in h) + // bill.HouseDetails.Remove(hd); + // DeleteDetail(bill.ID, session); + + // var s = bill.SanctionDetails.Where(x => x.DeleteState).ToArray(); + // foreach (var sd in s) + // bill.SanctionDetails.Remove(sd); + // DeleteDetail(bill.ID, session); + + //} + + //static void DeleteDetail(long mainID, IDmoSession session) + // where T : SyncBase + //{ + // var delete = new DQDeleteDom(typeof(T)); + // delete.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", mainID), DQCondition.EQ("DeleteState", true))); + // session.ExecuteNonQuery(delete); + //} + + //static void ExecuteHouseDetial(long mainID, IDmoSession session) + //{ + // var update = new DQUpdateDom(typeof(WeightBill_HouseDetail)); + // update.Columns.Add(new DQUpdateColumn("B3ID", -1)); + // update.Where.Conditions.Add(DQCondition.EQ("WeightBill_ID", mainID)); + // session.ExecuteNonQuery(update); + //} + + //static void ExecuteSimpleDetail(BackRpcObj details, IDmoSession session) + // where T : SyncBase + //{ + // foreach (var item in details.DetailBack) + // { + // var update = new DQUpdateDom(typeof(T)); + // update.Columns.Add(new DQUpdateColumn("B3ID", item.ID)); + // update.Where.Conditions.Add(DQCondition.EQ("ID", long.Parse(item.Flag))); + // session.ExecuteNonQuery(update); + // } + //} + + //static void SetBillAsSynced(long id, long B3ID, IDmoSession session) + //{ + // var update = new DQUpdateDom(typeof(WeightBill)); + // update.Columns.Add(new DQUpdateColumn("Sync", true)); + // update.Columns.Add(new DQUpdateColumn("B3ID", B3ID)); + // update.Where.Conditions.Add(DQCondition.EQ("ID", id)); + // session.ExecuteNonQuery(update); + //} } } diff --git a/B3ClientService/Tasks/UpdateLoad/UploadTest.cs b/B3ClientService/Tasks/UpdateLoad/UploadTest.cs index 82e9010..ac22d25 100644 --- a/B3ClientService/Tasks/UpdateLoad/UploadTest.cs +++ b/B3ClientService/Tasks/UpdateLoad/UploadTest.cs @@ -22,7 +22,7 @@ namespace BWP.B3ClientService.Tasks var serverUri = ServerHost.GetServerUrl(); if (string.IsNullOrEmpty(serverUri)) throw new Exception("请配置服务器地址"); - UpLoadWeightBill.Execute(serverUri); + //UpLoadWeightBill.Execute(serverUri); UploadOrderDetail.Execute(serverUri); UploadSecondOrder.Execute(serverUri); }