From ad0b70bc490c95ff4a196b475946ce1989aa44de Mon Sep 17 00:00:00 2001 From: luanhui <1029149336@qq.com> Date: Thu, 23 Nov 2017 14:36:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reports/ComprehensiveReport.cs | 147 ++++++++++++++++-- B3QingDaoWanFu/TypeIOCs/StatPayBLTypeIoc.cs | 14 ++ 2 files changed, 147 insertions(+), 14 deletions(-) diff --git a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs index 6cdb3d0..a9a07a4 100644 --- a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs +++ b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs @@ -14,6 +14,7 @@ using System.Linq; using System.Text; using System.Web.UI.WebControls; using BWP.B3Frameworks.BO.MoneyTemplate; +using BWP.B3ProduceUnitedInfos.BO; using Forks.EnterpriseServices.SqlDoms; using TSingSoft.WebControls2; using TSingSoft.WebPluginFramework; @@ -73,18 +74,29 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports _checkbox.Items.Add(new ListItem("收购日期", "WeighTime")); _checkbox.Items.Add(new ListItem("收购类型", "PurchaseType")); _checkbox.Items.Add(new ListItem("供应商", "Supplier_Name")); - _checkbox.Items.Add(new ListItem("来源地", "Supplier_Address")); + _checkbox.Items.Add(new ListItem("来源地", "来源地")); _checkbox.Items.Add(new ListItem("过磅单号", "Weigh_ID")); + _checkbox.Items.Add(new ListItem("业务员", "Employee_Name")); _checkbox.Items.Add(new ListItem("收购头数", "RealNumber")); - _checkbox.Items.Add(new ListItem("榜前重量", "ShackWeight")); - _checkbox.Items.Add(new ListItem("收购重量", "RealWeight")); + _checkbox.Items.Add(new ListItem("原发毛重", "ShackWeight")); + _checkbox.Items.Add(new ListItem("到厂毛重", "RealWeight")); + _checkbox.Items.Add(new ListItem("均重", "均重")); + _checkbox.Items.Add(new ListItem("毛猪等级", "HogGrade_Name")); + _checkbox.Items.Add(new ListItem("损耗", "损耗")); _checkbox.Items.Add(new ListItem("损耗比", "损耗比")); + _checkbox.Items.Add(new ListItem("实付金额", "ActualMoney")); _checkbox.Items.Add(new ListItem("应付金额", "Money")); + _checkbox.Items.Add(new ListItem("盈亏", "盈亏")); + _checkbox.Items.Add(new ListItem("单头盈亏", "单头盈亏")); + _checkbox.Items.Add(new ListItem("毛重单价", "RawPrice")); + _checkbox.Items.Add(new ListItem("实付单价", "ActualPrice")); _checkbox.Items.Add(new ListItem("宰前扣款", "ExceptionMoney")); + _checkbox.Items.Add(new ListItem("宰后扣款", "宰后扣款")); + _checkbox.Items.Add(new ListItem("死猪扣款", "DeadPigRewardMoney")); _checkbox.Items.Add(new ListItem("烫褪头数", "烫褪头数")); _checkbox.Items.Add(new ListItem("头数重量", "头数重量")); @@ -104,11 +116,12 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports protected override DQueryDom GetQueryDom() { var query = base.GetQueryDom(); + var bill = JoinAlias.Create("bill"); + var weight=new JoinAlias("mainweight",typeof(WeighBill)); + query.From.AddJoin(JoinType.Left,new DQDmoSource(weight),DQCondition.EQ(bill, "Weigh_ID",weight,"ID") ); - //query.Where.Conditions.Add(DQCondition.EQ("ID", 445)); - var bill = JoinAlias.Create("bill"); tempUnionDom.Register(query); var unionAlias = new JoinAlias("tempUnionDom", typeof(tempUnionDom)); query.From.AddJoin(JoinType.Left, new DQDmoSource(unionAlias), DQCondition.EQ(bill, "ID", unionAlias, "StatPay_ID")); @@ -119,19 +132,24 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports 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"))); - + var 盈亏 = DQExpression.Subtract(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "Money"))), DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "ActualMoney")))); + foreach (ListItem field in _checkbox.Items) { if (field.Selected) { switch (field.Text) { + case "来源地": + query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(weight, "Zone_Name"), field.Text)); + query.GroupBy.Expressions.Add(DQExpression.Field(weight, "Zone_Name")); + break; case "收购日期": case "收购类型": - case "来源地": case "供应商": case "业务员": case "过磅单号": + case "毛猪等级": query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(field.Value), field.Text)); query.GroupBy.Expressions.Add(DQExpression.Field( field.Value)); break; @@ -147,10 +165,36 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports case "应付金额": case "毛重单价": case "宰前扣款": + case "死猪扣款": query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, field.Value))), field.Text)); + SumColumnIndexs.Add(query.Columns.Count-1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); + break; + case "盈亏": + query.Columns.Add(DQSelectColumn.Create(盈亏, "盈亏")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); + break; + case "单头盈亏": + var 收购头数 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1),DQExpression.Field(unionAlias, "RealNumber"))); + var 单头盈亏 = 盈亏.ESafeDivide(收购头数).ECastType>(); + query.Columns.Add(DQSelectColumn.Create(单头盈亏, "单头盈亏")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); + break; + + case "宰后扣款": + var 宰后扣款 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1),DQExpression.Field(unionAlias, "OtherRewardMoney"))); + var 死猪扣款 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "DeadPigRewardMoney"))); + var 宰后不算死猪扣款 = DQExpression.Subtract(宰后扣款, DQExpression.IfNull(死猪扣款, DQExpression.Value(0))); + query.Columns.Add(DQSelectColumn.Create(宰后不算死猪扣款, "宰后扣款")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); break; case "损耗": query.Columns.Add(DQSelectColumn.Create(损耗, "损耗")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); break; case "损耗比": var 损耗比 = DQExpression.Multiply(损耗.ESafeDivide(榜前重量), DQExpression.Value(100)).ECastType>(); @@ -175,16 +219,16 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports var 当天总皮重= DQExpression.SubQuery(Get当天总皮重(bill)); var 当天总毛剥头数 = DQExpression.SubQuery(Get当天总毛剥头数(bill)); - var 皮均重 = DQExpression.Multiply(毛剥头数, 当天总皮重.ESafeDivide(当天总毛剥头数)); - + var 皮均重 = DQExpression.Multiply(毛剥头数, 当天总皮重.ESafeDivide(当天总毛剥头数)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(皮均重, "皮重")); - // break; case "皮肉重量": query.Columns.Add(DQSelectColumn.Create(皮肉重量, "皮肉重量")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); break; case "皮肉比": - var 皮肉比 =DQExpression.Multiply( 皮肉重量.ESafeDivide(榜前重量),DQExpression.Value(100)); + var 皮肉比 =DQExpression.Multiply( 皮肉重量.ESafeDivide(榜前重量),DQExpression.Value(100)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(皮肉比, "皮肉比")); break; case "一二级比": @@ -220,7 +264,8 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang5Number")))); query.Columns.Add(DQSelectColumn.Create(烫褪头数, "烫褪头数")); - + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); break; #region 头数重量 @@ -261,64 +306,104 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports var 剥皮一级头数 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo1Number"))); var 剥皮一级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo1Weight"))); query.Columns.Add(DQSelectColumn.Create(剥皮一级头数, "剥皮|一级|头数")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); query.Columns.Add(DQSelectColumn.Create(剥皮一级重量, "剥皮|一级|重量")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 剥皮一级占比 = DQExpression.Multiply(剥皮一级重量.ESafeDivide(总重量), DQExpression.Value(100)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(剥皮一级占比, "剥皮|一级|占比")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo2Number"))), "剥皮|二级|头数")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 剥皮二级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo2Weight"))); query.Columns.Add(DQSelectColumn.Create(剥皮二级重量, "剥皮|二级|重量")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 剥皮二级占比 = DQExpression.Multiply(剥皮二级重量.ESafeDivide(总重量), DQExpression.Value(100)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(剥皮二级占比, "剥皮|二级|占比")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo3Number"))), "剥皮|三级|头数")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 剥皮三级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo3Weight"))); query.Columns.Add(DQSelectColumn.Create(剥皮三级重量, "剥皮|三级|重量")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 剥皮三级占比 = DQExpression.Multiply(剥皮三级重量.ESafeDivide(总重量), DQExpression.Value(100)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(剥皮三级占比, "剥皮|三级|占比")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo4Number"))), "剥皮|四级|头数")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 剥皮四级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo4Weight"))); query.Columns.Add(DQSelectColumn.Create(剥皮四级重量, "剥皮|四级|重量")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 剥皮四级占比 = DQExpression.Multiply(剥皮四级重量.ESafeDivide(总重量), DQExpression.Value(100)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(剥皮四级占比, "剥皮|四级|占比")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo5Number"))), "剥皮|五级|头数")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 剥皮五级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo5Weight"))); query.Columns.Add(DQSelectColumn.Create(剥皮五级重量, "剥皮|五级|重量")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 剥皮五级占比 = DQExpression.Multiply(剥皮五级重量.ESafeDivide(总重量), DQExpression.Value(100)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(剥皮五级占比, "剥皮|五级|占比")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang1Number"))), "烫褪|一级|头数")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 烫褪一级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang1Weight"))); query.Columns.Add(DQSelectColumn.Create(烫褪一级重量, "烫褪|一级|重量")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 烫褪一级占比 = DQExpression.Multiply(烫褪一级重量.ESafeDivide(总重量), DQExpression.Value(100)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(烫褪一级占比, "烫褪|一级|占比")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang2Number"))), "烫褪|二级|头数")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 烫褪二级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang2Weight"))); query.Columns.Add(DQSelectColumn.Create(烫褪二级重量, "烫褪|二级|重量")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 烫褪二级占比 = DQExpression.Multiply(烫褪二级重量.ESafeDivide(总重量), DQExpression.Value(100)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(烫褪二级占比, "烫褪|二级|占比")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang3Number"))), "烫褪|三级|头数")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 烫褪三级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang3Weight"))); query.Columns.Add(DQSelectColumn.Create(烫褪三级重量, "烫褪|三级|重量")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 烫褪三级占比 = DQExpression.Multiply(烫褪三级重量.ESafeDivide(总重量), DQExpression.Value(100)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(烫褪三级占比, "烫褪|三级|占比")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang4Number"))), "烫褪|四级|头数")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 烫褪四级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang4Weight"))); query.Columns.Add(DQSelectColumn.Create(烫褪四级重量, "烫褪|四级|重量")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 烫褪四级占比 = DQExpression.Multiply(烫褪四级重量.ESafeDivide(总重量), DQExpression.Value(100)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(烫褪四级占比, "烫褪|四级|占比")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang5Number"))), "烫褪|五级|头数")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 烫褪五级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang5Weight"))); query.Columns.Add(DQSelectColumn.Create(烫褪五级重量, "烫褪|五级|重量")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); var 烫褪五级占比 = DQExpression.Multiply(烫褪五级重量.ESafeDivide(总重量), DQExpression.Value(100)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(烫褪五级占比, "烫褪|五级|占比")); @@ -335,20 +420,42 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Price5"))), "单价|五级")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo1Money"))), "金额|剥皮|一级")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo2Money"))), "金额|剥皮|二级")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo3Money"))), "金额|剥皮|三级")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo4Money"))), "金额|剥皮|四级")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo5Money"))), "金额|剥皮|五级")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang1Money"))), "金额|烫褪|一级")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang2Money"))), "金额|烫褪|二级")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang3Money"))), "金额|烫褪|三级")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang4Money"))), "金额|烫褪|四级")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang5Money"))), "金额|烫褪|五级")); - + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); + break; case "合计金额": query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "TotalMoney"))), "合计金额")); + SumColumnIndexs.Add(query.Columns.Count - 1); + GroupSumColumnIndexs.Add(query.Columns.Count - 1); break; #endregion default: @@ -400,6 +507,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports class tempUnionDom { + #region prop public int UnionType { get; set; } public long StatPay_ID { get; set; } @@ -409,7 +517,10 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports public decimal? ActualMoney { get; set; } public decimal? Money { get; set; } public decimal? RawPrice { get; set; } + public decimal? ActualPrice { get; set; } public decimal? ExceptionMoney { get; set; } + public decimal? OtherRewardMoney { get; set; } + public decimal? DeadPigRewardMoney { get; set; } public decimal? Bo1Number { get; set; } @@ -450,6 +561,8 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports public decimal? TotalMoney { get; set; } public decimal? TotalWeight { get; set; } + #endregion + static DQueryDom GetUnionDom() { var billDom = GetBillDom(); @@ -470,7 +583,10 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports query.Columns.Add(DQSelectColumn.Field("ActualMoney", "ActualMoney")); query.Columns.Add(DQSelectColumn.Field("Money", "Money")); query.Columns.Add(DQSelectColumn.Field("RawPrice", "RawPrice")); + query.Columns.Add(DQSelectColumn.Field("ActualPrice", "ActualPrice")); query.Columns.Add(DQSelectColumn.Field("ExceptionMoney", "ExceptionMoney")); + query.Columns.Add(DQSelectColumn.Field("OtherRewardMoney", "OtherRewardMoney")); + query.Columns.Add(DQSelectColumn.Field("DeadPigRewardMoney", "DeadPigRewardMoney")); query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo1Number")); query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo1Weight")); @@ -535,7 +651,10 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "ActualMoney")); query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "Money")); query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "RawPrice")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "ActualPrice")); query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "ExceptionMoney")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "OtherRewardMoney")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "DeadPigRewardMoney")); var bo1 = 6; @@ -623,7 +742,7 @@ 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", "TotalWeight" }, butcherQuery); + root.RegisterQueryTable(typeof(tempUnionDom), new string[] { "UnionType", "StatPay_ID", "RealNumber", "ShackWeight", "RealWeight", "ActualMoney", "Money", "RawPrice","ActualPrice", "ExceptionMoney", "OtherRewardMoney", "DeadPigRewardMoney", "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); } } diff --git a/B3QingDaoWanFu/TypeIOCs/StatPayBLTypeIoc.cs b/B3QingDaoWanFu/TypeIOCs/StatPayBLTypeIoc.cs index d9170cd..9f01c17 100644 --- a/B3QingDaoWanFu/TypeIOCs/StatPayBLTypeIoc.cs +++ b/B3QingDaoWanFu/TypeIOCs/StatPayBLTypeIoc.cs @@ -14,6 +14,20 @@ using TSingSoft.WebPluginFramework; namespace BWP.B3QingDaoWanFu.TypeIOCs { + [TypeIOC(typeof(StatPayBL), typeof(StatPayBL.BaseBLIOCs.BeforeSave))] + public class StatPayBeforeSaveTypeIoc : StatPayBL.BaseBLIOCs.BeforeSave + { + public void Invoke(IDmoContext context, StatPay dmo) + { + var 死猪奖罚设置ID = 36; + dmo.DeadPigRewardMoney = dmo.OtherRewardDetails.Where(x=>x.Sanction_ID== 死猪奖罚设置ID).Sum(x => (x.Money ?? 0).Value); + var butcherdetail = dmo.Details.FirstOrDefault(x => x.HogGrade_ID.HasValue); + if (butcherdetail != null) + { + dmo.HogGrade_ID = butcherdetail.HogGrade_ID; + } + } + } [TypeIOC(typeof(StatPayBL), typeof(StatPayBL.BaseBLIOCs.AfterSave))]