diff --git a/B3SheepButcherManage/BL/Bill/HurryButcherBL/HurryButcherBL.cs b/B3SheepButcherManage/BL/Bill/HurryButcherBL/HurryButcherBL.cs index a995b5d..96634e0 100644 --- a/B3SheepButcherManage/BL/Bill/HurryButcherBL/HurryButcherBL.cs +++ b/B3SheepButcherManage/BL/Bill/HurryButcherBL/HurryButcherBL.cs @@ -27,10 +27,10 @@ namespace BWP.B3SheepButcherManage.BL UpdateWeightRecordPlanNumber(tags); } - protected override void afterUpdate(HurryButcher dmo) + protected override void doUpdate(HurryButcher dmo) { - base.afterUpdate(dmo); - var deleted = (dmo.Details as IDmoContainer).GetDeletedObjects().Cast().Where(x => x.Weigh_Detail_ID > 0).Select(x => x.Weigh_Detail_ID.Value); + var deleted = (dmo.Details as IDmoContainer).GetDeletedObjects().Cast().Where(x => x.Weigh_Detail_ID > 0).Select(x => x.Weigh_Detail_ID.Value).ToList(); + base.doUpdate(dmo); var simple = dmo.Details.Where(x => x.Weigh_Detail_ID > 0).Select(x => x.Weigh_Detail_ID.Value); var tags = simple.Union(deleted); UpdateWeightRecordPlanNumber(tags); diff --git a/B3SheepButcherManage/BL/Bill/WeightBillBL/WeightBillBL.cs b/B3SheepButcherManage/BL/Bill/WeightBillBL/WeightBillBL.cs index a9c2e83..bf24e22 100644 --- a/B3SheepButcherManage/BL/Bill/WeightBillBL/WeightBillBL.cs +++ b/B3SheepButcherManage/BL/Bill/WeightBillBL/WeightBillBL.cs @@ -142,13 +142,13 @@ namespace BWP.B3SheepButcherManage.BL var main = new JoinAlias(typeof(Summary)); var detail = new JoinAlias(typeof(WeightBill_Record)); - var query = new DQueryDom(main); + var query = new DQueryDom(detail); Summary.Register(query, exp); - query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "ID")); - query.Columns.Add(DQSelectColumn.Field("ID", main)); + query.From.AddJoin(JoinType.Left, new DQDmoSource(main), DQCondition.EQ(main, "ID", detail, "ID")); + query.Columns.Add(DQSelectColumn.Field("ID", detail)); query.Columns.Add(DQSelectColumn.Sum(main, "Number")); query.Columns.Add(DQSelectColumn.Max(detail, "Number")); - query.GroupBy.Expressions.Add(DQExpression.Field(main, "ID")); + query.GroupBy.Expressions.Add(DQExpression.Field(detail, "ID")); var list = new List>(); using (var reader = Session.ExecuteReader(query)) @@ -166,6 +166,7 @@ namespace BWP.B3SheepButcherManage.BL } foreach (var item in list) UpdateReocrdPlanNumber(item); + AfterUpdateRecord(weightDetailIDs); } private void UpdateReocrdPlanNumber(Tuple item) @@ -177,6 +178,12 @@ namespace BWP.B3SheepButcherManage.BL Session.ExecuteNonQuery(update); } + private void AfterUpdateRecord(IEnumerable detailIDs) + { + var sql = string.Format("with detail(id) as( select WeightBill_ID from B3SheepButcherManage_WeightBill_Record where id in ({0}) group by WeightBill_ID) update main set main.[RowVersion] = main.[RowVersion]+1 from B3SheepButcherManage_WeightBill main join detail on main.id=detail.id", string.Join(",", detailIDs)); + Session.ExecuteSqlNonQuery(sql); + } + class Summary { public long ID { get; set; }