diff --git a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs index 68514ca..6cdb3d0 100644 --- a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs +++ b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs @@ -26,13 +26,13 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports { get { return "收购综合报表"; } } - protected override string QueryOptionsTabName - { - get - { - return "显示字段"; - } - } +// protected override string QueryOptionsTabName +// { +// get +// { +// return "显示字段"; +// } +// } protected override string AccessRoleName { get { return "B3QingDaoWanFu.报表.收购综合报表"; } @@ -68,6 +68,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports { base.InitQueryPanel(queryPanel); var panel = queryPanel.CreateTab("显示字段"); + _checkbox = new CheckBoxListWithReverseSelect { RepeatColumns = 6, RepeatDirection = RepeatDirection.Horizontal }; _checkbox.Items.Add(new ListItem("收购日期", "WeighTime")); _checkbox.Items.Add(new ListItem("收购类型", "PurchaseType")); @@ -84,18 +85,17 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports _checkbox.Items.Add(new ListItem("应付金额", "Money")); _checkbox.Items.Add(new ListItem("毛重单价", "RawPrice")); _checkbox.Items.Add(new ListItem("宰前扣款", "ExceptionMoney")); - _checkbox.Items.Add(new ListItem("头数重量", "头数重量")); - - + _checkbox.Items.Add(new ListItem("烫褪头数", "烫褪头数")); - _checkbox.Items.Add(new ListItem("毛猪等级", ""));//todo + _checkbox.Items.Add(new ListItem("头数重量", "头数重量")); + _checkbox.Items.Add(new ListItem("皮重", "皮重")); + _checkbox.Items.Add(new ListItem("皮肉重量", "皮肉重量")); + _checkbox.Items.Add(new ListItem("皮肉比", "皮肉比")); + _checkbox.Items.Add(new ListItem("一二级比", "一二级比")); - _checkbox.Items.Add(new ListItem("烫褪头数", "烫褪头数")); _checkbox.Items.Add(new ListItem("单价金额", "单价金额")); - - - _checkbox.Items.Add(new ListItem("合并单元格") { Selected = false }); + panel.EAdd(_checkbox); mQueryControls.Add("显示字段", _checkbox); mQueryControls.EnableHoldLastControlNames.Add("显示字段"); @@ -113,10 +113,12 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports var unionAlias = new JoinAlias("tempUnionDom", typeof(tempUnionDom)); query.From.AddJoin(JoinType.Left, new DQDmoSource(unionAlias), DQCondition.EQ(bill, "ID", unionAlias, "StatPay_ID")); + query.GroupBy.Expressions.Add(DQExpression.Field(bill,"Date")); + var 榜前重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "ShackWeight"))); var 收购重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "RealWeight"))); var 损耗 = DQExpression.Subtract(榜前重量, 收购重量); - + var 皮肉重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "TotalWeight"))); foreach (ListItem field in _checkbox.Items) { @@ -154,6 +156,54 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports var 损耗比 = DQExpression.Multiply(损耗.ESafeDivide(榜前重量), DQExpression.Value(100)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(损耗比, "损耗比")); break; + + case "皮重": + var 毛剥头数 = DQExpression.Add( + DQExpression.Add( + DQExpression.Add( + DQExpression.Add( + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Bo1Number"))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Bo2Number")))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Bo3Number")))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Bo4Number")))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Bo5Number")))); + + var 当天总皮重= DQExpression.SubQuery(Get当天总皮重(bill)); + var 当天总毛剥头数 = DQExpression.SubQuery(Get当天总毛剥头数(bill)); + var 皮均重 = DQExpression.Multiply(毛剥头数, 当天总皮重.ESafeDivide(当天总毛剥头数)); + + query.Columns.Add(DQSelectColumn.Create(皮均重, "皮重")); + // + break; + case "皮肉重量": + query.Columns.Add(DQSelectColumn.Create(皮肉重量, "皮肉重量")); + break; + case "皮肉比": + var 皮肉比 =DQExpression.Multiply( 皮肉重量.ESafeDivide(榜前重量),DQExpression.Value(100)); + query.Columns.Add(DQSelectColumn.Create(皮肉比, "皮肉比")); + break; + case "一二级比": + var 一二级重量= DQExpression.Add( + DQExpression.Add( + DQExpression.Add( + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Bo1Weight"))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Bo2Weight")))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Tang1Weight")))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Tang2Weight"))) + ); + var 一二级比 = DQExpression.Multiply(一二级重量.ESafeDivide(皮肉重量), DQExpression.Value(100)).ECastType>(); + query.Columns.Add(DQSelectColumn.Create(一二级比, "一二级比")); + break; + case "烫褪头数": var 烫褪头数 = DQExpression.Add( DQExpression.Add( @@ -172,8 +222,9 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports query.Columns.Add(DQSelectColumn.Create(烫褪头数, "烫褪头数")); break; - case "头数重量": + #region 头数重量 + case "头数重量": var 剥皮总重量 = DQExpression.Add( DQExpression.Add( DQExpression.Add( @@ -272,6 +323,10 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports query.Columns.Add(DQSelectColumn.Create(烫褪五级占比, "烫褪|五级|占比")); break; + + #endregion + + #region 单价金额 case "单价金额": query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Price1"))), "单价|一级")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Price2"))), "单价|二级")); @@ -290,10 +345,12 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang3Money"))), "金额|烫褪|三级")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang4Money"))), "金额|烫褪|四级")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang5Money"))), "金额|烫褪|五级")); - + + break; + case "合计金额": query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "TotalMoney"))), "合计金额")); break; - + #endregion default: break; } @@ -307,6 +364,38 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports return query; } + private DQueryDom Get当天总毛剥头数(JoinAlias bill) + { + var stat=new JoinAlias("bonumber",typeof(StatPay)); + var statdetail=new JoinAlias("bonumberdetail",typeof(StatPay_Butcher)); + var query=new DQueryDom(stat); + query.From.AddJoin(JoinType.Inner,new DQDmoSource(statdetail),DQCondition.EQ(stat,"ID",statdetail, "StatPay_ID") ); + +// query.Where.Conditions.Add(DQCondition.EQ(DQExpression.Snippet("CAST(CONVERT(varchar(10), [bill].[Date], 120 )as smalldatetime)"),DQExpression.Snippet("CAST(CONVERT(varchar(10), [bonumber].[Date], 120 )as smalldatetime)"))); + + query.Where.Conditions.Add(DQCondition.EQ(bill, "Date", stat, "Date")); + query.Where.Conditions.Add(DQCondition.EQ(statdetail, "Technics",工艺.毛剥)); + query.Where.Conditions.Add(DQCondition.GreaterThan(stat,"BillState",单据状态.已审核)); + + query.Columns.Add(DQSelectColumn.Sum(statdetail, "Number")); + return query; + } + + private DQueryDom Get当天总皮重(JoinAlias bill) + { + var main = new JoinAlias("byproduct", typeof(ByProductRecord)); + var detail = new JoinAlias("byproductdetail", typeof(ByProductDetailed)); + var query = new DQueryDom(main); + query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "ByProduct_ID")); + + query.Where.Conditions.Add(DQCondition.EQ(bill, "Date", main, "ButcherDate")); + query.Where.Conditions.Add(DQCondition.GreaterThan(main, "BillState", 单据状态.已审核)); + + // query.Where.Conditions.Add(DQCondition.EQ(DQExpression.Snippet("CAST(CONVERT(varchar(10), [bill].[Date], 120 )as smalldatetime)"), DQExpression.Snippet("CAST(CONVERT(varchar(10), [byproduct].[ButcherDate], 120 )as smalldatetime)"))); + + query.Columns.Add(DQSelectColumn.Sum(detail, "Weight")); + return query; + } class tempUnionDom @@ -359,6 +448,8 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports public decimal? Tang4Money { get; set; } public decimal? Tang5Money { get; set; } public decimal? TotalMoney { get; set; } + public decimal? TotalWeight { get; set; } + static DQueryDom GetUnionDom() { var billDom = GetBillDom(); @@ -370,10 +461,9 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports static DQueryDom GetBillDom() { var query = new DQueryDom(new JoinAlias("statpay", typeof(StatPay))); - query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "UnionType")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "UnionType")); query.Columns.Add(DQSelectColumn.Field("ID", "StatPay_ID")); - query.Columns.Add(DQSelectColumn.Field("RealNumber", "RealNumber")); query.Columns.Add(DQSelectColumn.Field("ShackWeight", "ShackWeight")); query.Columns.Add(DQSelectColumn.Field("RealWeight", "RealWeight")); @@ -382,7 +472,6 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports query.Columns.Add(DQSelectColumn.Field("RawPrice", "RawPrice")); query.Columns.Add(DQSelectColumn.Field("ExceptionMoney", "ExceptionMoney")); - query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo1Number")); query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo1Weight")); query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo2Number")); @@ -420,9 +509,11 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang4Money")); query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang5Money")); query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "TotalMoney")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "TotalWeight")); - //query.Where.Conditions.Add(DQCondition.EQ("ID", 445)); +// query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "ByProductWeight")); + return query; } @@ -516,11 +607,11 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("Money")), "TotalMoney")); - + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("Weight")), "TotalWeight")); #endregion - +// query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "ByProductWeight")); //query.Where.Conditions.Add(DQCondition.EQ(bill, "ID", 445)); @@ -528,12 +619,11 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports } - public static void Register(DQueryDom root) { var butcherQuery = GetUnionDom(); - root.RegisterQueryTable(typeof(tempUnionDom), new string[] { "UnionType", "StatPay_ID", "RealNumber", "ShackWeight", "RealWeight", "ActualMoney", "Money", "RawPrice", "ExceptionMoney","Bo1Number", "Bo1Weight", "Bo2Number", "Bo2Weight", "Bo3Number", "Bo3Weight", "Bo4Number", "Bo4Weight", "Bo5Number", "Bo5Weight", "Tang1Number", "Tang1Weight", "Tang2Number", "Tang2Weight", "Tang3Number", "Tang3Weight", "Tang4Number", "Tang4Weight", "Tang5Number", "Tang5Weight", "Price1", "Price2", "Price3", "Price4", "Price5", "Bo1Money", "Bo2Money", "Bo3Money", "Bo4Money", "Bo5Money", "Tang1Money", "Tang2Money", "Tang3Money", "Tang4Money", "Tang5Money", "TotalMoney" }, butcherQuery); + root.RegisterQueryTable(typeof(tempUnionDom), new string[] { "UnionType", "StatPay_ID", "RealNumber", "ShackWeight", "RealWeight", "ActualMoney", "Money", "RawPrice", "ExceptionMoney","Bo1Number", "Bo1Weight", "Bo2Number", "Bo2Weight", "Bo3Number", "Bo3Weight", "Bo4Number", "Bo4Weight", "Bo5Number", "Bo5Weight", "Tang1Number", "Tang1Weight", "Tang2Number", "Tang2Weight", "Tang3Number", "Tang3Weight", "Tang4Number", "Tang4Weight", "Tang5Number", "Tang5Weight", "Price1", "Price2", "Price3", "Price4", "Price5", "Bo1Money", "Bo2Money", "Bo3Money", "Bo4Money", "Bo5Money", "Tang1Money", "Tang2Money", "Tang3Money", "Tang4Money", "Tang5Money", "TotalMoney", "TotalWeight" }, butcherQuery); } }