diff --git a/B3ClientService/BO/Bill/WeightBill/WeightBill.cs b/B3ClientService/BO/Bill/WeightBill/WeightBill.cs index efbd527..a66159d 100644 --- a/B3ClientService/BO/Bill/WeightBill/WeightBill.cs +++ b/B3ClientService/BO/Bill/WeightBill/WeightBill.cs @@ -73,7 +73,7 @@ namespace BWP.B3ClientService.BO #region 无需自身维护 便于查看 public string HouseNames { get; set; } - public int? SanctionNumber { get; set; } + public decimal? SanctionMoney { get; set; } public long? Inspector_ID { get; set; } diff --git a/B3ClientService/BO/Bill/WeightBill/WeightBill_SanctionDetail.cs b/B3ClientService/BO/Bill/WeightBill/WeightBill_SanctionDetail.cs index 73acf46..b5ccae7 100644 --- a/B3ClientService/BO/Bill/WeightBill/WeightBill_SanctionDetail.cs +++ b/B3ClientService/BO/Bill/WeightBill/WeightBill_SanctionDetail.cs @@ -30,5 +30,7 @@ namespace BWP.B3ClientService.BO public string AbnormalItem_Name { get; set; } public int? Number { get; set; } + + public decimal? Money { get; set; } } } diff --git a/B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs b/B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs index bd783b7..d920f62 100644 --- a/B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs +++ b/B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs @@ -25,7 +25,7 @@ namespace BWP.B3ClientService public string HouseNames { get; set; } - public int? SanctionNumber { get; set; } + public decimal? SanctionMoney { get; set; } public string Remark { get; set; } diff --git a/B3ClientService/Rpcs/BillRpc/HouseAndSanctionRpc.cs b/B3ClientService/Rpcs/BillRpc/HouseAndSanctionRpc.cs index e6388cd..1d17769 100644 --- a/B3ClientService/Rpcs/BillRpc/HouseAndSanctionRpc.cs +++ b/B3ClientService/Rpcs/BillRpc/HouseAndSanctionRpc.cs @@ -143,7 +143,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc var sanctionDetail = GetList(entity.ID); foreach (var item in entity.SanctionDetails) { - var first = sanctionDetail.FirstOrDefault(x => x.AbnormalItem_ID == item.AbnormalItem_ID); + var first = sanctionDetail.FirstOrDefault(x => x.Sanction_ID == item.Sanction_ID); if (first == null) sanctionDetail.Add(item); else @@ -154,17 +154,17 @@ namespace BWP.B3ClientService.Rpcs.BillRpc } foreach (var item in sanctionDetail) { - if (entity.SanctionDetails.Any(x => x.AbnormalItem_ID == item.AbnormalItem_ID)) + if (entity.SanctionDetails.Any(x => x.Sanction_ID == item.Sanction_ID)) UpdateOrInsertSanctionDetail(session, item); else - delete.Add(item.AbnormalItem_ID ?? 0); + delete.Add(item.Sanction_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())); + dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("Sanction_ID"), delete.Select(x => DQExpression.Value(x)).ToArray())); }); } @@ -179,7 +179,6 @@ namespace BWP.B3ClientService.Rpcs.BillRpc 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("SanctionNumber", entity.SanctionDetails.Sum(x => x.Number ?? 0))); update.Columns.Add(new DQUpdateColumn("Sync", false)); update.Columns.Add(new DQUpdateColumn("RowVersion", DQExpression.Add(DQExpression.Field("RowVersion"), DQExpression.Value(1)))); update.Columns.Add(new DQUpdateColumn("ModifyTime", DateTime.Now)); @@ -216,7 +215,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc } 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))); + update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("LiveColonyHouse_ID", detail.LiveColonyHouse_ID), DQCondition.EQ("WeightBill_ID", detail.WeightBill_ID))); session.ExecuteNonQuery(update); } @@ -231,7 +230,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc 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))); + update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", detail.WeightBill_ID), 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 070c66b..a654dfd 100644 --- a/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs +++ b/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs @@ -35,7 +35,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc 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("SanctionMoney")); query.Columns.Add(DQSelectColumn.Field("Remark")); query.Columns.Add(DQSelectColumn.Field("Number", detail)); query.Columns.Add(DQSelectColumn.Field("Weight", detail)); @@ -60,7 +60,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc entity.Employee_Name = (string)reader[4]; entity.PurchaseType_Name = (string)reader[5]; entity.HouseNames = (string)reader[6]; - entity.SanctionNumber = (int?)reader[7]; + entity.SanctionMoney = (decimal?)reader[7]; entity.Remark = (string)reader[8]; entity.Number = (int?)reader[9]; entity.Weight = (decimal?)reader[10]; @@ -145,13 +145,13 @@ namespace BWP.B3ClientService.Rpcs.BillRpc static void FillServerUpdateFields(IDmoSession session, WeightBill dmo) { - var min = InnerBLUtil.GetSingleDmo(session, "ID", dmo.ID, "B3ID", "DeleteState", "Inspector_ID", "Inspector_Name", "HouseNames", "SanctionNumber"); + var min = InnerBLUtil.GetSingleDmo(session, "ID", dmo.ID, "B3ID", "DeleteState", "Inspector_ID", "Inspector_Name", "HouseNames", "SanctionMoney"); dmo.B3ID = min.B3ID; dmo.DeleteState = min.DeleteState; dmo.Inspector_ID = min.Inspector_ID; dmo.Inspector_Name = min.Inspector_Name; dmo.HouseNames = min.HouseNames; - dmo.SanctionNumber = min.SanctionNumber; + dmo.SanctionMoney = min.SanctionMoney; dmo.Sync = false; dmo.ModifyTime = DateTime.Now; } @@ -242,5 +242,17 @@ namespace BWP.B3ClientService.Rpcs.BillRpc var result = query.EExecuteList().Select(x => new CTuple(x.Item1, x.Item2)); return serializer.Serialize(result.ToList()); } + + [Rpc] + public static string SyncBillB3IdsAndSanctionMoney(DateTime date) + { + var query = new DQueryDom(new JoinAlias(typeof(WeightBill))); + query.Columns.Add(DQSelectColumn.Field("ID")); + query.Columns.Add(DQSelectColumn.Field("B3ID")); + query.Columns.Add(DQSelectColumn.Field("SanctionMoney")); + query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.Between("WeighTime", date, date + new TimeSpan(23, 59, 29)))); + var result = query.EExecuteList().Select(x => new CTuple(x.Item1, x.Item2, x.Item3)); + return serializer.Serialize(result.ToList()); + } } } diff --git a/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs b/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs index 6df9144..479ab2a 100644 --- a/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs +++ b/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs @@ -41,10 +41,11 @@ namespace BWP.B3ClientService.Tasks.UpdateLoad #endregion var sync = serializer.Serialize(CreateRpcWeightBill(item)); - item.B3ID = bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/UpdateOrInsert", sync); - + var json = bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/UpdateOrInsert", sync); + var back = serializer.Deserialize(json); ClearDetails(item.ID, context.Session); - + item.B3ID = back.ID; + FillSanctionMoney(context.Session, item.ID, back.SectionDetails); SetBillAsSynced(item.ID, item.B3ID.Value, context.Session); context.Commit(); @@ -52,6 +53,19 @@ namespace BWP.B3ClientService.Tasks.UpdateLoad } } + static void FillSanctionMoney(IDmoSession session, long billID, List> sanctions) + { + if (sanctions == null) + return; + foreach (var item in sanctions) + { + var update = new DQUpdateDom(typeof(WeightBill_SanctionDetail)); + update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", billID), DQCondition.EQ("DeleteState", false), DQCondition.EQ("Sanction_ID", item.Item1))); + update.Columns.Add(new DQUpdateColumn("Money", item.Item2)); + session.ExecuteNonQuery(update); + } + } + static IEnumerable GetAllNeedSyncBill() { var query = new DmoQuery(typeof(WeightBill)); @@ -131,4 +145,11 @@ namespace BWP.B3ClientService.Tasks.UpdateLoad return query.EExecuteList().Cast(); } } + + class BackInfo + { + public long ID { get; set; } + + public List> SectionDetails { get; set; } + } }