From d42e97dc442bdd59b033e10e85b4bfa4e04296cc Mon Sep 17 00:00:00 2001 From: yibo <361071264@qq.com> Date: Tue, 13 Nov 2018 20:14:28 +0800 Subject: [PATCH] . --- .../SaleSummaryReport_/SaleSummaryReport.cs | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/SaleSummaryReport_/SaleSummaryReport.cs b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/SaleSummaryReport_/SaleSummaryReport.cs index 53492c1..2690981 100644 --- a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/SaleSummaryReport_/SaleSummaryReport.cs +++ b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/SaleSummaryReport_/SaleSummaryReport.cs @@ -133,27 +133,28 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports.SaleSummaryReport_ } } - List> FirstDepts + List> FirstDepts { get { if (ViewState["FirstDepts"] == null) ViewState["FirstDepts"] = GetFirstDepts(); - return (List>)ViewState["FirstDepts"]; + return (List>)ViewState["FirstDepts"]; } set { ViewState["FirstDepts"] = value; } } - List> GetFirstDepts() + List> GetFirstDepts() { var dept = SaleDepartmentInfo; var query = new DQueryDom(new JoinAlias(typeof(Department))); query.Columns.Add(DQSelectColumn.Field("ID")); query.Columns.Add(DQSelectColumn.Field("Name")); + query.Columns.Add(DQSelectColumn.Field("Depth")); query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Domain_ID", DomainContext.Current.ID), DQCondition.EQ("Stopped", false), DQCondition.EQ("Depth", dept.Item2 + 1))); query.Where.Conditions.Add(DQCondition.EQ(string.Format("TreeDeep{0}ID", dept.Item2), dept.Item1)); query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID")); - return query.EExecuteList(); + return query.EExecuteList(); } Tuple SaleDepartmentInfo @@ -171,30 +172,31 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports.SaleSummaryReport_ } } - List> SecondDepts + List> SecondDepts { get { if (ViewState["SecondDepts"] == null) ViewState["SecondDepts"] = GetSecondDepts(); - return (List>)ViewState["SecondDepts"]; + return (List>)ViewState["SecondDepts"]; } set { ViewState["SecondDepts"] = value; } } - List> GetSecondDepts() + List> GetSecondDepts() { - var depth = SaleDepartmentInfo.Item2; var selectedItem = firstFilterTree.GetSelecteItem(); if (!selectedItem.Selected || string.IsNullOrEmpty(selectedItem.Value)) - return new List>(); + return new List>(); + var info = selectedItem.Tag as Tuple; var query = new DQueryDom(new JoinAlias(typeof(Department))); query.Columns.Add(DQSelectColumn.Field("ID")); query.Columns.Add(DQSelectColumn.Field("Name")); - query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Domain_ID", DomainContext.Current.ID), DQCondition.EQ("Stopped", false), DQCondition.EQ("Depth", depth + 2))); - query.Where.Conditions.Add(DQCondition.EQ(string.Format("TreeDeep{0}ID", depth + 1), long.Parse(firstFilterTree.GetSelecteItem().Value))); + query.Columns.Add(DQSelectColumn.Field("Depth")); + query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Domain_ID", DomainContext.Current.ID), DQCondition.EQ("Stopped", false), DQCondition.EQ("Depth", info.Item3 + 1))); + query.Where.Conditions.Add(DQCondition.EQ(string.Format("TreeDeep{0}ID", info.Item3), info.Item1)); query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID")); - return query.EExecuteList(); + return query.EExecuteList(); } static FilterTree firstFilterTree; @@ -210,6 +212,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports.SaleSummaryReport_ foreach (var item in FirstDepts) { var node = new FilterTreeNode(item.Item2, item.Item1.ToString()); + node.Tag = item; firstFilterTree.DataSource.Childs.Add(node); } } @@ -225,7 +228,8 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports.SaleSummaryReport_ { if (!string.IsNullOrEmpty(node.Value)) { - query.Where.Conditions.Add(DQCondition.EQ(JoinAlias.Create("dept"), "TreeDeep1ID", long.Parse(node.Value))); + var info = node.Tag as Tuple; + query.Where.Conditions.Add(DQCondition.EQ(JoinAlias.Create("dept"), string.Format("TreeDeep{0}ID", info.Item3), info.Item1)); } }; @@ -238,6 +242,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports.SaleSummaryReport_ foreach (var item in SecondDepts) { var node = new FilterTreeNode(item.Item2, item.Item1.ToString()); + node.Tag = item; secondFilterTree.DataSource.Childs.Add(node); } } @@ -258,7 +263,8 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports.SaleSummaryReport_ { if (!string.IsNullOrEmpty(node.Value)) { - query.Where.Conditions.Add(DQCondition.EQ(JoinAlias.Create("dept"), "TreeDeep2ID", long.Parse(node.Value))); + var info = node.Tag as Tuple; + query.Where.Conditions.Add(DQCondition.EQ(JoinAlias.Create("dept"), string.Format("TreeDeep{0}ID", info.Item3), info.Item1)); } }; @@ -269,6 +275,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports.SaleSummaryReport_ protected override DQueryDom GetQueryDom() { + var saleDepth = SaleDepartmentInfo.Item2; var main = new JoinAlias(typeof(TempClass)); var dept = new JoinAlias("dept", typeof(Department)); var _3Dept = new JoinAlias("_3Dept", typeof(Department)); @@ -277,7 +284,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports.SaleSummaryReport_ var query = new DQueryDom(main); TempClass.Register(query, SelectDate); query.From.AddJoin(JoinType.Left, new DQDmoSource(dept), DQCondition.EQ(main, "Department_ID", dept, "ID")); - query.From.AddJoin(JoinType.Left, new DQDmoSource(_3Dept), DQCondition.EQ(dept, string.Format("TreeDeep{0}ID", SaleDepartmentInfo.Item2 + 3), _3Dept, "ID")); + query.From.AddJoin(JoinType.Left, new DQDmoSource(_3Dept), DQCondition.EQ(DQExpression.LogicCase(DQCondition.GreaterThanOrEqual(dept, "Depth", saleDepth + 3), DQExpression.Field(dept, string.Format("TreeDeep{0}ID", SaleDepartmentInfo.Item2 + 3)), DQCondition.EQ(dept, "Depth", saleDepth + 2), DQExpression.Field(dept, string.Format("TreeDeep{0}ID", SaleDepartmentInfo.Item2 + 2)), DQExpression.Field(dept, string.Format("TreeDeep{0}ID", SaleDepartmentInfo.Item2 + 1))), DQExpression.Field(_3Dept, "ID"))); query.From.AddJoin(JoinType.Left, new DQDmoSource(customer), DQCondition.EQ(main, "Customer_ID", customer, "ID")); query.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(main, "Goods_ID", goods, "ID"));