diff --git a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassLossAnalyse_/CarcassLossAnalyse.cs b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassLossAnalyse_/CarcassLossAnalyse.cs index 37c860d..abf45e8 100644 --- a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassLossAnalyse_/CarcassLossAnalyse.cs +++ b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassLossAnalyse_/CarcassLossAnalyse.cs @@ -85,24 +85,30 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassLossAnalyse_ void StartQuery() { - var dtdj = new JoinAlias(typeof(GradeAndWeight_Detail)); - var btrk = new JoinAlias(typeof(TrunksIousOutInStoreRecord)); - var query = new DQueryDom(dtdj); - query.From.AddJoin(JoinType.Left, new DQDmoSource(btrk), DQCondition.EQ(dtdj, "ID", btrk, "UpID")); + var sumColumns = new List(); + + var main = new JoinAlias(typeof(CarcassFullInfo)); + var livestock = new JoinAlias(typeof(Livestock)); + var inGoods = new JoinAlias("iGoods", typeof(Goods)); + var query = new DQueryDom(main); + query.From.AddJoin(JoinType.Left, new DQDmoSource(livestock), DQCondition.EQ(main, "Livestock_ID", livestock, "ID")); + query.From.AddJoin(JoinType.Left, new DQDmoSource(inGoods), DQCondition.EQ(main, "InStoreGoods_ID", inGoods, "ID")); query.Columns.Add(DQSelectColumn.Field("BarCode", "条码")); - query.Columns.Add(DQSelectColumn.Field("Livestock_Name", "胴体级别")); + query.Columns.Add(DQSelectColumn.Field("Name", livestock, "胴体级别")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "头数")); - query.Columns.Add(DQSelectColumn.Field("Weight", dtdj, "胴体重量")); - query.Columns.Add(DQSelectColumn.Field("Goods_Name", btrk, "存货名称")); - query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(btrk, "Weight"), "入库重量")); - query.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(DQExpression.Field(dtdj, "Weight"), DQExpression.IfNull(DQExpression.Field(btrk, "Weight"), DQExpression.Value(0))), "损耗")); + sumColumns.Add(query.Columns.Count - 1); + query.Columns.Add(DQSelectColumn.Field("GradeWeight", "胴体重量")); + sumColumns.Add(query.Columns.Count - 1); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(inGoods, "Name") ,"存货名称")); + query.Columns.Add(DQSelectColumn.Field("InStoreWeight", "入库重量")); + sumColumns.Add(query.Columns.Count - 1); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(DQExpression.Field("GradeWeight"), DQExpression.IfNull(DQExpression.Field("InStoreWeight"), DQExpression.Value(0))), "损耗")); + sumColumns.Add(query.Columns.Count - 1); if (!batchSelect.IsEmpty) - query.Where.Conditions.Add(DQCondition.EQ(btrk, "ProductBatch_ID", long.Parse(batchSelect.Value))); + query.Where.Conditions.Add(DQCondition.EQ("ProductBatch_ID", long.Parse(batchSelect.Value))); var args = new LoadArguments(query); - args.SumColumns.Add(2); - args.SumColumns.Add(3); - args.SumColumns.Add(5); - args.SumColumns.Add(6); + foreach (var idx in sumColumns) + args.SumColumns.Add(idx); mBrowseGrid.LoadArguments = args; mBrowseGrid.DataBind(); } diff --git a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassStoreAnalyse_/CarcassStoreAnalyse.cs b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassStoreAnalyse_/CarcassStoreAnalyse.cs index 770479f..1010a8c 100644 --- a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassStoreAnalyse_/CarcassStoreAnalyse.cs +++ b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassStoreAnalyse_/CarcassStoreAnalyse.cs @@ -90,16 +90,15 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassStoreAnalyse_ List> GetBatchNameIDs() { - var btrk = new JoinAlias(typeof(TrunksIousOutInStoreRecord)); - var btly = new JoinAlias(typeof(MaterialRequisitionRecord)); - var query = new DQueryDom(btrk); - query.From.AddJoin(JoinType.Left, new DQDmoSource(btly), DQCondition.EQ(btrk, "ID", btly, "UpID")); - query.Columns.Add(DQSelectColumn.Field("ProductBatch")); + var main = new JoinAlias(typeof(CarcassFullInfo)); + var batch = new JoinAlias(typeof(ProductBatch)); + var query = new DQueryDom(main); + query.From.AddJoin(JoinType.Left, new DQDmoSource(batch), DQCondition.EQ(main, "ProductBatch_ID", batch, "ID")); + query.Columns.Add(DQSelectColumn.Field("Name", batch)); query.Columns.Add(DQSelectColumn.Field("ProductBatch_ID")); - query.GroupBy.Expressions.Add(DQExpression.Field("ProductBatch")); + query.GroupBy.Expressions.Add(DQExpression.Field(batch, "Name")); query.GroupBy.Expressions.Add(DQExpression.Field("ProductBatch_ID")); - query.Where.Conditions.Add(DQCondition.IsNull(DQExpression.Field(btly, "ID"))); - query.Where.Conditions.Add(DQCondition.IsNotNull(DQExpression.Field("ProductBatch_ID"))); + query.Where.Conditions.Add(DQCondition.And(DQCondition.IsNotNull(DQExpression.Field("ProductBatch_ID")), DQCondition.IsNull(DQExpression.Field("PickTime")))); query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ProductBatch_ID")); return query.EExecuteList(); } @@ -114,19 +113,18 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassStoreAnalyse_ void StartQuery() { - var btrk = new JoinAlias(typeof(TrunksIousOutInStoreRecord)); - var btly = new JoinAlias(typeof(MaterialRequisitionRecord)); - var query = new DQueryDom(btrk); - query.From.AddJoin(JoinType.Left, new DQDmoSource(btly), DQCondition.EQ(btrk, "ID", btly, "UpID")); - query.Columns.Add(DQSelectColumn.Field("ProductBatch", "生产批次")); + var main = new JoinAlias(typeof(CarcassFullInfo)); + var batch = new JoinAlias(typeof(ProductBatch)); + var inGoods = new JoinAlias("iGoods", typeof(Goods)); + var query = new DQueryDom(main); + query.From.AddJoin(JoinType.Left, new DQDmoSource(batch), DQCondition.EQ(main, "ProductBatch_ID", batch, "ID")); + query.From.AddJoin(JoinType.Left, new DQDmoSource(inGoods), DQCondition.EQ(main, "InStoreGoods_ID", inGoods, "ID")); + query.Columns.Add(DQSelectColumn.Field("Name", batch, "生产批次")); query.Columns.Add(DQSelectColumn.Field("BarCode", "条码")); - query.Columns.Add(DQSelectColumn.Field("Goods_Name", "存货名称")); - query.Columns.Add(DQSelectColumn.Field("Number", "头数")); - query.Columns.Add(DQSelectColumn.Field("Weight", "重量")); - //query.GroupBy.Expressions.Add(DQExpression.Field("ProductBatch")); - //query.GroupBy.Expressions.Add(DQExpression.Field("BarCode")); - //query.GroupBy.Expressions.Add(DQExpression.Field("Goods_Name")); - query.Where.Conditions.Add(DQCondition.IsNull(DQExpression.Field(btly, "ID"))); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(inGoods, "Name"), "存货名称")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "头数")); + query.Columns.Add(DQSelectColumn.Field("InStoreWeight", "重量")); + query.Where.Conditions.Add(DQCondition.IsNull(DQExpression.Field("PickTime"))); if (SelectBatch.HasValue) query.Where.Conditions.Add(DQCondition.EQ("ProductBatch_ID", SelectBatch)); var args = new LoadArguments(query); diff --git a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassTrendAnalyse_/CarcassTrendAnalyse.cs b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassTrendAnalyse_/CarcassTrendAnalyse.cs index ff5afc0..3e3f158 100644 --- a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassTrendAnalyse_/CarcassTrendAnalyse.cs +++ b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassTrendAnalyse_/CarcassTrendAnalyse.cs @@ -75,25 +75,22 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassTrendAnalyse_ void StartQuery() { - var query = new DQueryDom(new JoinAlias(typeof(UnionTemp))); - UnionTemp.Register(query, dateInput.Value); + var query = new DQueryDom(new JoinAlias(typeof(CarcassFullInfo))); - query.Columns.Add(DQSelectColumn.Field("OutType", "出库类型")); - query.Columns.Add(DQSelectColumn.Field("Date", "出库日期")); + query.Columns.Add(DQSelectColumn.Field("PickType", "出库类型")); + query.Columns.Add(DQSelectColumn.Field("PickTime", "出库日期")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Value(1)), "头数")); query.Columns.Add(DQSelectColumn.Sum("InStoreWeight", "入库重量")); - query.Columns.Add(DQSelectColumn.Sum("OutStoreWeight", "出库重量")); - query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Subtract(DQExpression.IfNull(DQExpression.Field("InStoreWeight"), DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Field("OutStoreWeight"), DQExpression.Value(0)))), "损耗")); - query.GroupBy.Expressions.Add(DQExpression.Field("OutType")); - query.GroupBy.Expressions.Add(DQExpression.Field("Date")); + query.Columns.Add(DQSelectColumn.Sum("PickWeight", "出库重量")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Subtract(DQExpression.IfNull(DQExpression.Field("InStoreWeight"), DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Field("PickWeight"), DQExpression.Value(0)))), "损耗")); + query.GroupBy.Expressions.Add(DQExpression.Field("PickType")); + query.GroupBy.Expressions.Add(DQExpression.Field("PickTime")); if (!dateInput.IsEmpty) - query.Where.Conditions.Add(DQCondition.EQ("Date", dateInput.Date)); + query.Where.Conditions.Add(DQCondition.EQ("PickTime", dateInput.Date)); var args = new LoadArguments(query); - args.SumColumns.Add(2); + for (var i = 2; i <= 5; i++) + args.SumColumns.Add(i); args.GroupSumColumns.Add(2); - args.SumColumns.Add(3); - args.SumColumns.Add(4); - args.SumColumns.Add(5); args.GroupSumColumns.Add(6); mBrowseGrid.LoadArguments = args; mBrowseGrid.DataBind(); @@ -106,36 +103,4 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassTrendAnalyse_ StartQuery(); } } - - class UnionTemp - { - public string OutType { get; set; } - - public DateTime? Date { get; set; } - - public decimal? InStoreWeight { get; set; } - - public decimal? OutStoreWeight { get; set; } - - public static void Register(DQueryDom root, DateTime? date) - { - root.RegisterQueryTable(typeof(UnionTemp), new string[] { "OutType", "Date", "InStoreWeight", "OutStoreWeight" }, GetLinYong(date)); - } - - static DQueryDom GetLinYong(DateTime? date) - { - var btly = new JoinAlias("_linyong", typeof(MaterialRequisitionRecord)); - var btrk = new JoinAlias(typeof(TrunksIousOutInStoreRecord)); - var query = new DQueryDom(btly); - var dateExp = DQExpression.Snippet("CAST([_linyong].[CreateTime] as date)"); - query.From.AddJoin(JoinType.Left, new DQDmoSource(btrk), DQCondition.EQ(btrk, "ID", btly, "UpID")); - query.Columns.Add(DQSelectColumn.Create(DQExpression.Value("分割领用"), "OutType")); - query.Columns.Add(DQSelectColumn.Create(dateExp, "Date")); - query.Columns.Add(DQSelectColumn.Field("Weight", btrk, "InStoreWeight")); - query.Columns.Add(DQSelectColumn.Field("Weight", btly, "OutStoreWeight")); - if (date.HasValue) - query.Where.Conditions.Add(DQCondition.EQ(dateExp, DQExpression.Value(date))); - return query; - } - } }