2272 lines
		
	
	
		
			135 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			2272 lines
		
	
	
		
			135 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using BLL;
							 | 
						|||
| 
								 | 
							
								using Newtonsoft.Json.Linq;
							 | 
						|||
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								using System.Web.UI.WebControls;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace FineUIPro.Web.JDGL.WBSPlan
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    public partial class WBSPlanSet : PageBase
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        #region 页面加载
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 页面加载
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void Page_Load(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (!IsPostBack)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                InitTreeMenu();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                if (GetRequestEventArgument() == "UPDATE_SUMMARY")
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    // 页面要求重新计算合计行的值
							 | 
						|||
| 
								 | 
							
								                    OutputSummaryData();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 计算合计
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 计算合计
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private void OutputSummaryData()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            decimal totalValue = 0, totalRate = 0, moneys = 0;
							 | 
						|||
| 
								 | 
							
								            int i = 0;
							 | 
						|||
| 
								 | 
							
								            JArray mergedData = Grid1.GetMergedData();
							 | 
						|||
| 
								 | 
							
								            if (mergedData.Count() > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                JObject firstValues = mergedData[0].Value<JObject>("values");
							 | 
						|||
| 
								 | 
							
								                if (!string.IsNullOrEmpty(firstValues.Value<string>("WeightsMoney")))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    moneys = Convert.ToDecimal(firstValues.Value<string>("WeightsMoney"));
							 | 
						|||
| 
								 | 
							
								                    moneys = decimal.Round(moneys, 2);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                foreach (JObject mergedRow in mergedData)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    JObject values = mergedRow.Value<JObject>("values");
							 | 
						|||
| 
								 | 
							
								                    if (!string.IsNullOrEmpty(values.Value<string>("PlanValue")))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        totalValue += Convert.ToDecimal(values.Value<string>("PlanValue"));
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        totalValue += 0;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (moneys != 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        totalRate = decimal.Round(totalValue / moneys * 100, 2);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        totalRate = 0;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    this.Grid1.Rows[i].Values[1] = values.Value<string>("PlanValue");
							 | 
						|||
| 
								 | 
							
								                    this.Grid1.Rows[i].Values[2] = totalValue;
							 | 
						|||
| 
								 | 
							
								                    this.Grid1.Rows[i].Values[3] = totalRate;
							 | 
						|||
| 
								 | 
							
								                    i++;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                JObject summary = new JObject();
							 | 
						|||
| 
								 | 
							
								                summary.Add("YearsMonthsStr", "未分配费用余额:");
							 | 
						|||
| 
								 | 
							
								                summary.Add("PlanValue", moneys - totalValue);
							 | 
						|||
| 
								 | 
							
								                Grid1.SummaryData = summary;               
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 加载树
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 加载树
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private void InitTreeMenu()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            this.trWBS.Nodes.Clear();
							 | 
						|||
| 
								 | 
							
								            this.trWBS.ShowBorder = false;
							 | 
						|||
| 
								 | 
							
								            this.trWBS.ShowHeader = false;
							 | 
						|||
| 
								 | 
							
								            this.trWBS.EnableIcons = true;
							 | 
						|||
| 
								 | 
							
								            this.trWBS.AutoScroll = true;
							 | 
						|||
| 
								 | 
							
								            this.trWBS.EnableSingleClickExpand = true;
							 | 
						|||
| 
								 | 
							
								            var installations = from x in Funs.DB.Project_Installation where x.ProjectId == this.CurrUser.LoginProjectId orderby x.InstallationCode select x;
							 | 
						|||
| 
								 | 
							
								            foreach (var installation in installations)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                TreeNode rootNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                rootNode.Text = installation.InstallationName;
							 | 
						|||
| 
								 | 
							
								                rootNode.NodeID = installation.InstallationId;
							 | 
						|||
| 
								 | 
							
								                rootNode.CommandName = "installation";
							 | 
						|||
| 
								 | 
							
								                rootNode.CommandArgument = installation.Weights == null ? null : installation.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                rootNode.ToolTip = installation.InstallationCode;
							 | 
						|||
| 
								 | 
							
								                rootNode.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                rootNode.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                this.trWBS.Nodes.Add(rootNode);
							 | 
						|||
| 
								 | 
							
								                if (string.IsNullOrEmpty(Request.Params["ToWbs"]))   //非计划调整弹出页面
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                    emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                    emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                    rootNode.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else   //导航弹出页面
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Model.Wbs_WbsSet wbsSetParm = BLL.WbsSetService.GetWbsSetByWbsSetId(Request.Params["ToWbs"]);
							 | 
						|||
| 
								 | 
							
								                    if (wbsSetParm != null)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        string wbsSetParentId1 = string.Empty;
							 | 
						|||
| 
								 | 
							
								                        string wbsSetParentId2 = string.Empty;
							 | 
						|||
| 
								 | 
							
								                        string wbsSetParentId3 = string.Empty;
							 | 
						|||
| 
								 | 
							
								                        if (!string.IsNullOrEmpty(wbsSetParm.SuperWbsSetId))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            wbsSetParentId1 = wbsSetParm.SuperWbsSetId;
							 | 
						|||
| 
								 | 
							
								                            Model.Wbs_WbsSet wbsSetParent1 = BLL.WbsSetService.GetWbsSetByWbsSetId(wbsSetParentId1);
							 | 
						|||
| 
								 | 
							
								                            if (wbsSetParent1 != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                if (!string.IsNullOrEmpty(wbsSetParent1.SuperWbsSetId))
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    wbsSetParentId2 = wbsSetParent1.SuperWbsSetId;
							 | 
						|||
| 
								 | 
							
								                                    Model.Wbs_WbsSet wbsSetParent2 = BLL.WbsSetService.GetWbsSetByWbsSetId(wbsSetParentId2);
							 | 
						|||
| 
								 | 
							
								                                    if (wbsSetParent2 != null)
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        if (!string.IsNullOrEmpty(wbsSetParent2.SuperWbsSetId))
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            wbsSetParentId3 = wbsSetParent2.SuperWbsSetId;
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        Model.Wbs_UnitProject unitProject1 = BLL.UnitProjectService.GetUnitProjectByUnitProjectId(wbsSetParm.UnitProjectId);
							 | 
						|||
| 
								 | 
							
								                        Model.WBS_CnProfession cnProfession1 = BLL.CnProfessionService.GetCnProfessionByCnProfessionId(wbsSetParm.CnProfessionId);
							 | 
						|||
| 
								 | 
							
								                        if (cnProfession1 != null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (cnProfession1.InstallationId == installation.InstallationId)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                rootNode.Expanded = true;
							 | 
						|||
| 
								 | 
							
								                                var cnProfessions = from x in Funs.DB.WBS_CnProfession where x.InstallationId == cnProfession1.InstallationId orderby x.OldId select x;
							 | 
						|||
| 
								 | 
							
								                                foreach (var cnProfession in cnProfessions)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    var unitProjects1 = from x in Funs.DB.Wbs_UnitProject where x.CnProfessionId == cnProfession.CnProfessionId && x.IsApprove == true select x;
							 | 
						|||
| 
								 | 
							
								                                    if (unitProjects1.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        TreeNode newCnProfessionNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                        newCnProfessionNode.Text = cnProfession.CnProfessionName;
							 | 
						|||
| 
								 | 
							
								                                        newCnProfessionNode.NodeID = cnProfession.CnProfessionId;
							 | 
						|||
| 
								 | 
							
								                                        newCnProfessionNode.CommandName = "cnProfession";
							 | 
						|||
| 
								 | 
							
								                                        newCnProfessionNode.CommandArgument = cnProfession.Weights == null ? null : cnProfession.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                                        newCnProfessionNode.ToolTip = cnProfession.CnProfessionCode;
							 | 
						|||
| 
								 | 
							
								                                        newCnProfessionNode.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                                        newCnProfessionNode.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                                        rootNode.Nodes.Add(newCnProfessionNode);
							 | 
						|||
| 
								 | 
							
								                                        if (cnProfession.CnProfessionId != cnProfession1.CnProfessionId)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                            emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                                            emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                                            newCnProfessionNode.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                        else
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            newCnProfessionNode.Expanded = true;
							 | 
						|||
| 
								 | 
							
								                                            var unitProjects = from x in Funs.DB.Wbs_UnitProject where x.CnProfessionId == cnProfession1.CnProfessionId && x.SuperUnitProjectId == null && x.IsApprove == true orderby x.UnitProjectCode select x;
							 | 
						|||
| 
								 | 
							
								                                            foreach (var unitProject in unitProjects)
							 | 
						|||
| 
								 | 
							
								                                            {
							 | 
						|||
| 
								 | 
							
								                                                TreeNode newUnitProjectNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                newUnitProjectNode.Text = unitProject.UnitProjectName;
							 | 
						|||
| 
								 | 
							
								                                                newUnitProjectNode.NodeID = unitProject.UnitProjectId;
							 | 
						|||
| 
								 | 
							
								                                                newUnitProjectNode.CommandName = "unitProject";
							 | 
						|||
| 
								 | 
							
								                                                newUnitProjectNode.CommandArgument = unitProject.Weights == null ? null : unitProject.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                                                newUnitProjectNode.ToolTip = unitProject.UnitProjectCode;
							 | 
						|||
| 
								 | 
							
								                                                newUnitProjectNode.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                newUnitProjectNode.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                newCnProfessionNode.Nodes.Add(newUnitProjectNode);
							 | 
						|||
| 
								 | 
							
								                                                if (unitProject1.SuperUnitProjectId == null)   //不存在子单位工程
							 | 
						|||
| 
								 | 
							
								                                                {
							 | 
						|||
| 
								 | 
							
								                                                    if (unitProject1.UnitProjectId != unitProject.UnitProjectId)
							 | 
						|||
| 
								 | 
							
								                                                    {
							 | 
						|||
| 
								 | 
							
								                                                        TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                        emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                                                        emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                                                        newUnitProjectNode.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                                                    }
							 | 
						|||
| 
								 | 
							
								                                                    else
							 | 
						|||
| 
								 | 
							
								                                                    {
							 | 
						|||
| 
								 | 
							
								                                                        newUnitProjectNode.Expanded = true;
							 | 
						|||
| 
								 | 
							
								                                                        var wbsSet1s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 1 && x.UnitProjectId == unitProject1.UnitProjectId && x.IsApprove == true orderby x.WbsSetCode select x;
							 | 
						|||
| 
								 | 
							
								                                                        if (wbsSet1s.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                                                        {
							 | 
						|||
| 
								 | 
							
								                                                            foreach (var wbsSet1 in wbsSet1s)
							 | 
						|||
| 
								 | 
							
								                                                            {
							 | 
						|||
| 
								 | 
							
								                                                                TreeNode newwbsSet1Node = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                newwbsSet1Node.Text = wbsSet1.WbsSetName;
							 | 
						|||
| 
								 | 
							
								                                                                newwbsSet1Node.NodeID = wbsSet1.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                                                                newwbsSet1Node.CommandName = "wbsSet";
							 | 
						|||
| 
								 | 
							
								                                                                newwbsSet1Node.CommandArgument = wbsSet1.Weights == null ? null : wbsSet1.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                                                                newwbsSet1Node.ToolTip = wbsSet1.WbsSetCode;
							 | 
						|||
| 
								 | 
							
								                                                                newwbsSet1Node.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                newwbsSet1Node.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                newUnitProjectNode.Nodes.Add(newwbsSet1Node);
							 | 
						|||
| 
								 | 
							
								                                                                var childWbsSets2 = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(newwbsSet1Node.NodeID);
							 | 
						|||
| 
								 | 
							
								                                                                if (childWbsSets2.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                                                                {
							 | 
						|||
| 
								 | 
							
								                                                                    if (BLL.WbsSetService.IsExitWbsSetById(wbsSet1.WbsSetId, wbsSetParm.WbsSetId))
							 | 
						|||
| 
								 | 
							
								                                                                    {
							 | 
						|||
| 
								 | 
							
								                                                                        newwbsSet1Node.Expanded = true;
							 | 
						|||
| 
								 | 
							
								                                                                        foreach (var wbsSet2 in childWbsSets2)
							 | 
						|||
| 
								 | 
							
								                                                                        {
							 | 
						|||
| 
								 | 
							
								                                                                            TreeNode newwbsSet2Node = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                            newwbsSet2Node.Text = wbsSet2.WbsSetName;
							 | 
						|||
| 
								 | 
							
								                                                                            newwbsSet2Node.NodeID = wbsSet2.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                                                                            newwbsSet2Node.CommandName = "wbsSet";
							 | 
						|||
| 
								 | 
							
								                                                                            newwbsSet2Node.CommandArgument = wbsSet2.Weights == null ? null : wbsSet2.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                                                                            newwbsSet2Node.ToolTip = wbsSet2.WbsSetCode;
							 | 
						|||
| 
								 | 
							
								                                                                            newwbsSet2Node.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                            newwbsSet2Node.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                            newwbsSet1Node.Nodes.Add(newwbsSet2Node);
							 | 
						|||
| 
								 | 
							
								                                                                            var childWbsSets3 = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(newwbsSet2Node.NodeID);
							 | 
						|||
| 
								 | 
							
								                                                                            if (BLL.WbsSetService.IsExitWbsSetById(wbsSet2.WbsSetId, wbsSetParm.WbsSetId))
							 | 
						|||
| 
								 | 
							
								                                                                            {
							 | 
						|||
| 
								 | 
							
								                                                                                newwbsSet2Node.Expanded = true;
							 | 
						|||
| 
								 | 
							
								                                                                                if (childWbsSets3.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                                                                                {
							 | 
						|||
| 
								 | 
							
								                                                                                    foreach (var wbsSet3 in childWbsSets3)
							 | 
						|||
| 
								 | 
							
								                                                                                    {
							 | 
						|||
| 
								 | 
							
								                                                                                        TreeNode newwbsSet3Node = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                                        newwbsSet3Node.Text = wbsSet3.WbsSetName;
							 | 
						|||
| 
								 | 
							
								                                                                                        newwbsSet3Node.NodeID = wbsSet3.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                                                                                        newwbsSet3Node.CommandName = "wbsSet";
							 | 
						|||
| 
								 | 
							
								                                                                                        newwbsSet3Node.CommandArgument = wbsSet3.Weights == null ? null : wbsSet3.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                                                                                        newwbsSet3Node.ToolTip = wbsSet3.WbsSetCode;
							 | 
						|||
| 
								 | 
							
								                                                                                        newwbsSet3Node.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                                        newwbsSet3Node.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                                        newwbsSet2Node.Nodes.Add(newwbsSet3Node);
							 | 
						|||
| 
								 | 
							
								                                                                                        var childWbsSets4 = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(newwbsSet3Node.NodeID);
							 | 
						|||
| 
								 | 
							
								                                                                                        if (BLL.WbsSetService.IsExitWbsSetById(wbsSet3.WbsSetId, wbsSetParm.WbsSetId))
							 | 
						|||
| 
								 | 
							
								                                                                                        {
							 | 
						|||
| 
								 | 
							
								                                                                                            newwbsSet3Node.Expanded = true;
							 | 
						|||
| 
								 | 
							
								                                                                                            if (childWbsSets4.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                                                                                            {
							 | 
						|||
| 
								 | 
							
								                                                                                                foreach (var wbsSet4 in childWbsSets4)
							 | 
						|||
| 
								 | 
							
								                                                                                                {
							 | 
						|||
| 
								 | 
							
								                                                                                                    TreeNode newwbsSet4Node = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                                                    newwbsSet4Node.Text = wbsSet4.WbsSetName;
							 | 
						|||
| 
								 | 
							
								                                                                                                    newwbsSet4Node.NodeID = wbsSet4.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                                                                                                    newwbsSet4Node.CommandName = "wbsSet";
							 | 
						|||
| 
								 | 
							
								                                                                                                    newwbsSet4Node.CommandArgument = wbsSet4.Weights == null ? null : wbsSet4.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                                                                                                    newwbsSet4Node.ToolTip = wbsSet4.WbsSetCode;
							 | 
						|||
| 
								 | 
							
								                                                                                                    newwbsSet4Node.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                                                    newwbsSet4Node.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                                                    newwbsSet3Node.Nodes.Add(newwbsSet4Node);
							 | 
						|||
| 
								 | 
							
								                                                                                                }
							 | 
						|||
| 
								 | 
							
								                                                                                            }
							 | 
						|||
| 
								 | 
							
								                                                                                        }
							 | 
						|||
| 
								 | 
							
								                                                                                        else
							 | 
						|||
| 
								 | 
							
								                                                                                        {
							 | 
						|||
| 
								 | 
							
								                                                                                            if (childWbsSets4.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                                                                                            {
							 | 
						|||
| 
								 | 
							
								                                                                                                TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                                                emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                                                                                                emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                                                                                                newwbsSet3Node.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                                                                                            }
							 | 
						|||
| 
								 | 
							
								                                                                                        }
							 | 
						|||
| 
								 | 
							
								                                                                                    }
							 | 
						|||
| 
								 | 
							
								                                                                                }
							 | 
						|||
| 
								 | 
							
								                                                                            }
							 | 
						|||
| 
								 | 
							
								                                                                            else
							 | 
						|||
| 
								 | 
							
								                                                                            {
							 | 
						|||
| 
								 | 
							
								                                                                                if (childWbsSets3.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                                                                                {
							 | 
						|||
| 
								 | 
							
								                                                                                    TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                                    emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                                                                                    emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                                                                                    newwbsSet2Node.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                                                                                }
							 | 
						|||
| 
								 | 
							
								                                                                            }
							 | 
						|||
| 
								 | 
							
								                                                                        }
							 | 
						|||
| 
								 | 
							
								                                                                    }
							 | 
						|||
| 
								 | 
							
								                                                                    else
							 | 
						|||
| 
								 | 
							
								                                                                    {
							 | 
						|||
| 
								 | 
							
								                                                                        TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                        emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                                                                        emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                                                                        newwbsSet1Node.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                                                                    }
							 | 
						|||
| 
								 | 
							
								                                                                }
							 | 
						|||
| 
								 | 
							
								                                                            }
							 | 
						|||
| 
								 | 
							
								                                                        }
							 | 
						|||
| 
								 | 
							
								                                                        else    //单位工程下直接是分项内容,如质量行为
							 | 
						|||
| 
								 | 
							
								                                                        {
							 | 
						|||
| 
								 | 
							
								                                                            var wbsSet3s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 3 && x.UnitProjectId == unitProject1.UnitProjectId && x.IsApprove == true orderby x.WbsSetCode select x;
							 | 
						|||
| 
								 | 
							
								                                                            if (wbsSet3s.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                                                            {
							 | 
						|||
| 
								 | 
							
								                                                                foreach (var wbsSet3 in wbsSet3s)
							 | 
						|||
| 
								 | 
							
								                                                                {
							 | 
						|||
| 
								 | 
							
								                                                                    TreeNode newwbsSet3Node = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                    newwbsSet3Node.Text = wbsSet3.WbsSetName;
							 | 
						|||
| 
								 | 
							
								                                                                    newwbsSet3Node.NodeID = wbsSet3.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                                                                    newwbsSet3Node.CommandName = "wbsSet";
							 | 
						|||
| 
								 | 
							
								                                                                    newwbsSet3Node.CommandArgument = wbsSet3.Weights == null ? null : wbsSet3.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                                                                    newwbsSet3Node.ToolTip = wbsSet3.WbsSetCode;
							 | 
						|||
| 
								 | 
							
								                                                                    newwbsSet3Node.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                    newwbsSet3Node.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                    newUnitProjectNode.Nodes.Add(newwbsSet3Node);
							 | 
						|||
| 
								 | 
							
								                                                                }
							 | 
						|||
| 
								 | 
							
								                                                            }
							 | 
						|||
| 
								 | 
							
								                                                        }
							 | 
						|||
| 
								 | 
							
								                                                    }
							 | 
						|||
| 
								 | 
							
								                                                }
							 | 
						|||
| 
								 | 
							
								                                                else   //存在子单位工程
							 | 
						|||
| 
								 | 
							
								                                                {
							 | 
						|||
| 
								 | 
							
								                                                    if (unitProject1.SuperUnitProjectId != unitProject.UnitProjectId)
							 | 
						|||
| 
								 | 
							
								                                                    {
							 | 
						|||
| 
								 | 
							
								                                                        TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                        emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                                                        emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                                                        newUnitProjectNode.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                                                    }
							 | 
						|||
| 
								 | 
							
								                                                    else
							 | 
						|||
| 
								 | 
							
								                                                    {
							 | 
						|||
| 
								 | 
							
								                                                        newUnitProjectNode.Expanded = true;
							 | 
						|||
| 
								 | 
							
								                                                        var childUnitProjects = BLL.UnitProjectService.GetUnitProjectsBySuperUnitProjectId(newUnitProjectNode.NodeID);
							 | 
						|||
| 
								 | 
							
								                                                        foreach (var childUnitProject in childUnitProjects)
							 | 
						|||
| 
								 | 
							
								                                                        {
							 | 
						|||
| 
								 | 
							
								                                                            TreeNode newChildUnitProjectNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                            newChildUnitProjectNode.Text = childUnitProject.UnitProjectName;
							 | 
						|||
| 
								 | 
							
								                                                            newChildUnitProjectNode.NodeID = childUnitProject.UnitProjectId;
							 | 
						|||
| 
								 | 
							
								                                                            newChildUnitProjectNode.CommandName = "childUnitProject";
							 | 
						|||
| 
								 | 
							
								                                                            newChildUnitProjectNode.CommandArgument = childUnitProject.Weights == null ? null : childUnitProject.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                                                            newChildUnitProjectNode.ToolTip = childUnitProject.UnitProjectCode;
							 | 
						|||
| 
								 | 
							
								                                                            newChildUnitProjectNode.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                            newChildUnitProjectNode.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                            newUnitProjectNode.Nodes.Add(newChildUnitProjectNode);
							 | 
						|||
| 
								 | 
							
								                                                            if (unitProject1.UnitProjectId != childUnitProject.UnitProjectId)
							 | 
						|||
| 
								 | 
							
								                                                            {
							 | 
						|||
| 
								 | 
							
								                                                                TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                                                                emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                                                                newChildUnitProjectNode.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                                                            }
							 | 
						|||
| 
								 | 
							
								                                                            else
							 | 
						|||
| 
								 | 
							
								                                                            {
							 | 
						|||
| 
								 | 
							
								                                                                newChildUnitProjectNode.Expanded = true;
							 | 
						|||
| 
								 | 
							
								                                                                var wbsSet1s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 1 && x.UnitProjectId == unitProject1.UnitProjectId && x.IsApprove == true orderby x.WbsSetCode select x;
							 | 
						|||
| 
								 | 
							
								                                                                foreach (var wbsSet1 in wbsSet1s)
							 | 
						|||
| 
								 | 
							
								                                                                {
							 | 
						|||
| 
								 | 
							
								                                                                    TreeNode newwbsSet1Node = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                    newwbsSet1Node.Text = wbsSet1.WbsSetName;
							 | 
						|||
| 
								 | 
							
								                                                                    newwbsSet1Node.NodeID = wbsSet1.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                                                                    newwbsSet1Node.CommandName = "wbsSet";
							 | 
						|||
| 
								 | 
							
								                                                                    newwbsSet1Node.CommandArgument = wbsSet1.Weights == null ? null : wbsSet1.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                                                                    newwbsSet1Node.ToolTip = wbsSet1.WbsSetCode;
							 | 
						|||
| 
								 | 
							
								                                                                    newwbsSet1Node.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                    newwbsSet1Node.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                    newChildUnitProjectNode.Nodes.Add(newwbsSet1Node);
							 | 
						|||
| 
								 | 
							
								                                                                    var childWbsSets2 = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(newwbsSet1Node.NodeID);
							 | 
						|||
| 
								 | 
							
								                                                                    if (childWbsSets2.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                                                                    {
							 | 
						|||
| 
								 | 
							
								                                                                        if (BLL.WbsSetService.IsExitWbsSetById(wbsSet1.WbsSetId, wbsSetParm.WbsSetId))
							 | 
						|||
| 
								 | 
							
								                                                                        {
							 | 
						|||
| 
								 | 
							
								                                                                            newwbsSet1Node.Expanded = true;
							 | 
						|||
| 
								 | 
							
								                                                                            foreach (var wbsSet2 in childWbsSets2)
							 | 
						|||
| 
								 | 
							
								                                                                            {
							 | 
						|||
| 
								 | 
							
								                                                                                TreeNode newwbsSet2Node = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                                newwbsSet2Node.Text = wbsSet2.WbsSetName;
							 | 
						|||
| 
								 | 
							
								                                                                                newwbsSet2Node.NodeID = wbsSet2.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                                                                                newwbsSet2Node.CommandName = "wbsSet";
							 | 
						|||
| 
								 | 
							
								                                                                                newwbsSet2Node.CommandArgument = wbsSet2.Weights == null ? null : wbsSet2.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                                                                                newwbsSet2Node.ToolTip = wbsSet2.WbsSetCode;
							 | 
						|||
| 
								 | 
							
								                                                                                newwbsSet2Node.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                                newwbsSet2Node.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                                newwbsSet1Node.Nodes.Add(newwbsSet2Node);
							 | 
						|||
| 
								 | 
							
								                                                                                var childWbsSets3 = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(newwbsSet2Node.NodeID);
							 | 
						|||
| 
								 | 
							
								                                                                                if (BLL.WbsSetService.IsExitWbsSetById(wbsSet2.WbsSetId, wbsSetParm.WbsSetId))
							 | 
						|||
| 
								 | 
							
								                                                                                {
							 | 
						|||
| 
								 | 
							
								                                                                                    newwbsSet2Node.Expanded = true;
							 | 
						|||
| 
								 | 
							
								                                                                                    if (childWbsSets3.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                                                                                    {
							 | 
						|||
| 
								 | 
							
								                                                                                        foreach (var wbsSet3 in childWbsSets3)
							 | 
						|||
| 
								 | 
							
								                                                                                        {
							 | 
						|||
| 
								 | 
							
								                                                                                            TreeNode newwbsSet3Node = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                                            newwbsSet3Node.Text = wbsSet3.WbsSetName;
							 | 
						|||
| 
								 | 
							
								                                                                                            newwbsSet3Node.NodeID = wbsSet3.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                                                                                            newwbsSet3Node.CommandName = "wbsSet";
							 | 
						|||
| 
								 | 
							
								                                                                                            newwbsSet3Node.CommandArgument = wbsSet3.Weights == null ? null : wbsSet3.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                                                                                            newwbsSet3Node.ToolTip = wbsSet3.WbsSetCode;
							 | 
						|||
| 
								 | 
							
								                                                                                            newwbsSet3Node.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                                            newwbsSet3Node.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                                            newwbsSet2Node.Nodes.Add(newwbsSet3Node);
							 | 
						|||
| 
								 | 
							
								                                                                                            var childWbsSets4 = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(newwbsSet3Node.NodeID);
							 | 
						|||
| 
								 | 
							
								                                                                                            if (BLL.WbsSetService.IsExitWbsSetById(wbsSet3.WbsSetId, wbsSetParm.WbsSetId))
							 | 
						|||
| 
								 | 
							
								                                                                                            {
							 | 
						|||
| 
								 | 
							
								                                                                                                newwbsSet3Node.Expanded = true;
							 | 
						|||
| 
								 | 
							
								                                                                                                if (childWbsSets4.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                                                                                                {
							 | 
						|||
| 
								 | 
							
								                                                                                                    foreach (var wbsSet4 in childWbsSets4)
							 | 
						|||
| 
								 | 
							
								                                                                                                    {
							 | 
						|||
| 
								 | 
							
								                                                                                                        TreeNode newwbsSet4Node = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                                                        newwbsSet4Node.Text = wbsSet4.WbsSetName;
							 | 
						|||
| 
								 | 
							
								                                                                                                        newwbsSet4Node.NodeID = wbsSet4.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                                                                                                        newwbsSet4Node.CommandName = "wbsSet";
							 | 
						|||
| 
								 | 
							
								                                                                                                        newwbsSet4Node.CommandArgument = wbsSet4.Weights == null ? null : wbsSet4.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                                                                                                        newwbsSet4Node.ToolTip = wbsSet4.WbsSetCode;
							 | 
						|||
| 
								 | 
							
								                                                                                                        newwbsSet4Node.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                                                        newwbsSet4Node.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                                                                                                        newwbsSet3Node.Nodes.Add(newwbsSet4Node);
							 | 
						|||
| 
								 | 
							
								                                                                                                    }
							 | 
						|||
| 
								 | 
							
								                                                                                                }
							 | 
						|||
| 
								 | 
							
								                                                                                            }
							 | 
						|||
| 
								 | 
							
								                                                                                            else
							 | 
						|||
| 
								 | 
							
								                                                                                            {
							 | 
						|||
| 
								 | 
							
								                                                                                                if (childWbsSets4.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                                                                                                {
							 | 
						|||
| 
								 | 
							
								                                                                                                    TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                                                    emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                                                                                                    emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                                                                                                    newwbsSet3Node.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                                                                                                }
							 | 
						|||
| 
								 | 
							
								                                                                                            }
							 | 
						|||
| 
								 | 
							
								                                                                                        }
							 | 
						|||
| 
								 | 
							
								                                                                                    }
							 | 
						|||
| 
								 | 
							
								                                                                                }
							 | 
						|||
| 
								 | 
							
								                                                                                else
							 | 
						|||
| 
								 | 
							
								                                                                                {
							 | 
						|||
| 
								 | 
							
								                                                                                    if (childWbsSets3.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                                                                                    {
							 | 
						|||
| 
								 | 
							
								                                                                                        TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                                        emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                                                                                        emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                                                                                        newwbsSet2Node.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                                                                                    }
							 | 
						|||
| 
								 | 
							
								                                                                                }
							 | 
						|||
| 
								 | 
							
								                                                                            }
							 | 
						|||
| 
								 | 
							
								                                                                        }
							 | 
						|||
| 
								 | 
							
								                                                                        else
							 | 
						|||
| 
								 | 
							
								                                                                        {
							 | 
						|||
| 
								 | 
							
								                                                                            TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                                                            emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                                                                            emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                                                                            newwbsSet1Node.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                                                                        }
							 | 
						|||
| 
								 | 
							
								                                                                    }
							 | 
						|||
| 
								 | 
							
								                                                                }
							 | 
						|||
| 
								 | 
							
								                                                            }
							 | 
						|||
| 
								 | 
							
								                                                        }
							 | 
						|||
| 
								 | 
							
								                                                    }
							 | 
						|||
| 
								 | 
							
								                                                }
							 | 
						|||
| 
								 | 
							
								                                            }
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        this.trWBS.SelectedNodeID = wbsSetParm.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                        this.GetGridTitle();
							 | 
						|||
| 
								 | 
							
								                        BindGrid();
							 | 
						|||
| 
								 | 
							
								                        OutputSummaryData();
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 展开树
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 展开树
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void trWBS_NodeExpand(object sender, TreeNodeEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            e.Node.Nodes.Clear();
							 | 
						|||
| 
								 | 
							
								            if (e.Node.CommandName == "installation")  //展开装置/单元节点
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var cnProfessions = from x in Funs.DB.WBS_CnProfession where x.InstallationId == e.Node.NodeID orderby x.OldId select x;
							 | 
						|||
| 
								 | 
							
								                foreach (var cnProfession in cnProfessions)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var unitProjects = from x in Funs.DB.Wbs_UnitProject where x.CnProfessionId == cnProfession.CnProfessionId && x.IsApprove == true select x;
							 | 
						|||
| 
								 | 
							
								                    if (unitProjects.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        TreeNode newNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                        newNode.Text = cnProfession.CnProfessionName;
							 | 
						|||
| 
								 | 
							
								                        newNode.NodeID = cnProfession.CnProfessionId;
							 | 
						|||
| 
								 | 
							
								                        newNode.CommandName = "cnProfession";
							 | 
						|||
| 
								 | 
							
								                        newNode.CommandArgument = cnProfession.Weights == null ? null : cnProfession.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                        newNode.ToolTip = cnProfession.CnProfessionCode;
							 | 
						|||
| 
								 | 
							
								                        newNode.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                        newNode.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                        e.Node.Nodes.Add(newNode);
							 | 
						|||
| 
								 | 
							
								                        TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                        emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                        emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                        newNode.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else if (e.Node.CommandName == "cnProfession")   //展开专业节点
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var unitProjects = from x in Funs.DB.Wbs_UnitProject where x.CnProfessionId == e.Node.NodeID && x.SuperUnitProjectId == null && x.IsApprove == true orderby x.SortIndex, x.UnitProjectCode select x;
							 | 
						|||
| 
								 | 
							
								                foreach (var unitProject in unitProjects)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    TreeNode newNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                    newNode.Text = unitProject.UnitProjectName;
							 | 
						|||
| 
								 | 
							
								                    newNode.NodeID = unitProject.UnitProjectId;
							 | 
						|||
| 
								 | 
							
								                    newNode.CommandName = "unitProject";
							 | 
						|||
| 
								 | 
							
								                    newNode.CommandArgument = unitProject.Weights == null ? null : unitProject.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                    newNode.ToolTip = unitProject.UnitProjectCode;
							 | 
						|||
| 
								 | 
							
								                    newNode.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                    newNode.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                    e.Node.Nodes.Add(newNode);
							 | 
						|||
| 
								 | 
							
								                    TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                    emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                    emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                    newNode.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else if (e.Node.CommandName == "unitProject")   //展开单位工程节点
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var childUnitProjects = from x in Funs.DB.Wbs_UnitProject where x.SuperUnitProjectId == e.Node.NodeID && x.IsApprove == true orderby x.SortIndex, x.UnitProjectCode select x;
							 | 
						|||
| 
								 | 
							
								                if (childUnitProjects.Count() > 0)   //存在子单位工程
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var childUnitProject in childUnitProjects)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        TreeNode newNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                        newNode.Text = childUnitProject.UnitProjectName;
							 | 
						|||
| 
								 | 
							
								                        newNode.NodeID = childUnitProject.UnitProjectId;
							 | 
						|||
| 
								 | 
							
								                        newNode.CommandName = "childUnitProject";
							 | 
						|||
| 
								 | 
							
								                        newNode.CommandArgument = childUnitProject.Weights == null ? null : childUnitProject.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                        newNode.ToolTip = childUnitProject.UnitProjectCode;
							 | 
						|||
| 
								 | 
							
								                        newNode.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                        newNode.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                        e.Node.Nodes.Add(newNode);
							 | 
						|||
| 
								 | 
							
								                        TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                        emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                        emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                        newNode.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else     //不存在子单位工程,加载分部工程
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var wbsSet1s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 1 && x.UnitProjectId == e.Node.NodeID && x.IsApprove == true orderby x.SortIndex, x.WbsSetCode select x;
							 | 
						|||
| 
								 | 
							
								                    if (wbsSet1s.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        foreach (var wbsSet1 in wbsSet1s)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            TreeNode newNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                            newNode.Text = wbsSet1.WbsSetName;
							 | 
						|||
| 
								 | 
							
								                            newNode.NodeID = wbsSet1.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                            newNode.CommandName = "wbsSet";
							 | 
						|||
| 
								 | 
							
								                            newNode.CommandArgument = wbsSet1.Weights == null ? null : wbsSet1.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                            newNode.ToolTip = wbsSet1.WbsSetCode;
							 | 
						|||
| 
								 | 
							
								                            newNode.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                            newNode.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                            e.Node.Nodes.Add(newNode);
							 | 
						|||
| 
								 | 
							
								                            var childWbsSets2 = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(newNode.NodeID);
							 | 
						|||
| 
								 | 
							
								                            if (childWbsSets2.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                                emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                                newNode.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else    //单位工程下直接是分项内容,如质量行为
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var wbsSet3s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 3 && x.UnitProjectId == e.Node.NodeID && x.IsApprove == true orderby x.SortIndex, x.WbsSetCode select x;
							 | 
						|||
| 
								 | 
							
								                        if (wbsSet3s.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            foreach (var wbsSet3 in wbsSet3s)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                TreeNode newNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                newNode.Text = wbsSet3.WbsSetName;
							 | 
						|||
| 
								 | 
							
								                                newNode.NodeID = wbsSet3.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                                newNode.CommandName = "wbsSet";
							 | 
						|||
| 
								 | 
							
								                                newNode.CommandArgument = wbsSet3.Weights == null ? null : wbsSet3.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                                newNode.ToolTip = wbsSet3.WbsSetCode;
							 | 
						|||
| 
								 | 
							
								                                newNode.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                                newNode.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                                e.Node.Nodes.Add(newNode);
							 | 
						|||
| 
								 | 
							
								                                var childWbsSets2 = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(newNode.NodeID);
							 | 
						|||
| 
								 | 
							
								                                if (childWbsSets2.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                                    emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                                    emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                                    newNode.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else if (e.Node.CommandName == "childUnitProject")   //展开子单位工程节点
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var wbsSet1s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 1 && x.UnitProjectId == e.Node.NodeID && x.IsApprove == true orderby x.SortIndex, x.WbsSetCode select x;
							 | 
						|||
| 
								 | 
							
								                foreach (var wbsSet1 in wbsSet1s)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    TreeNode newNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                    newNode.Text = wbsSet1.WbsSetName;
							 | 
						|||
| 
								 | 
							
								                    newNode.NodeID = wbsSet1.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                    newNode.CommandName = "wbsSet";
							 | 
						|||
| 
								 | 
							
								                    newNode.CommandArgument = wbsSet1.Weights == null ? null : wbsSet1.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                    newNode.ToolTip = wbsSet1.WbsSetCode;
							 | 
						|||
| 
								 | 
							
								                    newNode.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                    newNode.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                    e.Node.Nodes.Add(newNode);
							 | 
						|||
| 
								 | 
							
								                    var childWbsSets2 = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(newNode.NodeID);
							 | 
						|||
| 
								 | 
							
								                    if (childWbsSets2.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                        emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                        emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                        newNode.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else if (e.Node.CommandName == "wbsSet")   //展开分部/子分部/分项/子分项工程节点
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var childWbsSets = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(e.Node.NodeID);
							 | 
						|||
| 
								 | 
							
								                foreach (var wbsSet in childWbsSets)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    TreeNode newNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                    newNode.Text = wbsSet.WbsSetName;
							 | 
						|||
| 
								 | 
							
								                    newNode.NodeID = wbsSet.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                    newNode.CommandName = "wbsSet";
							 | 
						|||
| 
								 | 
							
								                    newNode.CommandArgument = wbsSet.Weights == null ? null : wbsSet.Weights.ToString();
							 | 
						|||
| 
								 | 
							
								                    newNode.ToolTip = wbsSet.WbsSetCode;
							 | 
						|||
| 
								 | 
							
								                    newNode.EnableExpandEvent = true;
							 | 
						|||
| 
								 | 
							
								                    newNode.EnableClickEvent = true;
							 | 
						|||
| 
								 | 
							
								                    e.Node.Nodes.Add(newNode);
							 | 
						|||
| 
								 | 
							
								                    var childWbsSets2 = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(newNode.NodeID);
							 | 
						|||
| 
								 | 
							
								                    if (childWbsSets2.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        TreeNode emptyNode = new TreeNode();
							 | 
						|||
| 
								 | 
							
								                        emptyNode.Text = "";
							 | 
						|||
| 
								 | 
							
								                        emptyNode.NodeID = "";
							 | 
						|||
| 
								 | 
							
								                        newNode.Nodes.Add(emptyNode);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 获取Grid表头
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 获取Grid表头
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private void GetGridTitle()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            this.Grid1.Title = string.Empty;
							 | 
						|||
| 
								 | 
							
								            string title = string.Empty;
							 | 
						|||
| 
								 | 
							
								            string nodeTooltip = string.Empty;
							 | 
						|||
| 
								 | 
							
								            string nodeText = string.Empty;
							 | 
						|||
| 
								 | 
							
								            TreeNode parent1 = new TreeNode();
							 | 
						|||
| 
								 | 
							
								            if (this.trWBS.SelectedNode != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                nodeTooltip = this.trWBS.SelectedNode.ToolTip;
							 | 
						|||
| 
								 | 
							
								                nodeText = this.trWBS.SelectedNode.Text;
							 | 
						|||
| 
								 | 
							
								                parent1 = this.trWBS.SelectedNode.ParentNode;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (parent1 != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                TreeNode parent2 = parent1.ParentNode;
							 | 
						|||
| 
								 | 
							
								                if (parent2 != null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    TreeNode parent3 = parent2.ParentNode;
							 | 
						|||
| 
								 | 
							
								                    if (parent3 != null)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        TreeNode parent4 = parent3.ParentNode;
							 | 
						|||
| 
								 | 
							
								                        if (parent4 != null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            TreeNode parent5 = parent4.ParentNode;
							 | 
						|||
| 
								 | 
							
								                            if (parent5 != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                TreeNode parent6 = parent5.ParentNode;
							 | 
						|||
| 
								 | 
							
								                                if (parent6 != null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    title = parent6.ToolTip + "-" + parent5.ToolTip + "-" + nodeTooltip + "/" + parent6.Text + "-" + parent5.Text + "-" + parent4.Text + "-" + parent3.Text + "-" + parent2.Text + "-" + parent1.Text + "-" + nodeText;
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    if (parent5.CommandName == "installation")
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        title = parent5.ToolTip + "-" + parent4.ToolTip + "-" + nodeTooltip + "/" + parent5.Text + "-" + parent4.Text + "-" + parent3.Text + "-" + parent2.Text + "-" + parent1.Text + "-" + nodeText;
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                if (parent4.CommandName == "installation")
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    title = parent4.ToolTip + "-" + parent3.ToolTip + "-" + nodeTooltip + "/" + parent4.Text + "-" + parent3.Text + "-" + parent2.Text + "-" + parent1.Text + "-" + nodeText;
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (parent3.CommandName == "installation")
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                title = parent3.ToolTip + "-" + parent2.ToolTip + "-" + nodeTooltip + "/" + parent3.Text + "-" + parent2.Text + "-" + parent1.Text + "-" + nodeText;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (parent2.CommandName == "installation")
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            title = parent2.ToolTip + "-" + parent1.ToolTip + "-" + nodeTooltip + "/" + parent2.Text + "-" + parent1.Text + "-" + nodeText;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (parent1.CommandName == "installation")
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        title = parent1.ToolTip + "-" + nodeTooltip + "/" + parent1.Text + "-" + nodeText;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                title = nodeTooltip + "/" + nodeText;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            this.Grid1.Title = title;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region Tree点击事件
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// Tree点击事件
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void trWBS_NodeCommand(object sender, TreeCommandEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            GetGridTitle();
							 | 
						|||
| 
								 | 
							
								            BindGrid();
							 | 
						|||
| 
								 | 
							
								            OutputSummaryData();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 保存方法
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 保存方法
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="message"></param>
							 | 
						|||
| 
								 | 
							
								        private void SaveData(string message)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            decimal totalValue = 0, moneys = 0;
							 | 
						|||
| 
								 | 
							
								            JArray mergedData = Grid1.GetMergedData();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            JObject firstValues = mergedData[0].Value<JObject>("values");
							 | 
						|||
| 
								 | 
							
								            if (!string.IsNullOrEmpty(firstValues.Value<string>("WeightsMoney")))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                moneys = Convert.ToDecimal(firstValues.Value<string>("WeightsMoney"));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            foreach (JObject mergedRow in mergedData)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                JObject values = mergedRow.Value<JObject>("values");
							 | 
						|||
| 
								 | 
							
								                if (!string.IsNullOrEmpty(values.Value<string>("PlanValue")))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    totalValue += Convert.ToDecimal(values.Value<string>("PlanValue"));
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    totalValue += 0;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (moneys != totalValue)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Alert.ShowInTop("金额分配不符合要求!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            Model.Wbs_WbsSet wbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(this.trWBS.SelectedNodeID);
							 | 
						|||
| 
								 | 
							
								            if (wbsSet != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                if (wbsSet.IsPlanApprove == true)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    wbsSet.IsPlanApprove = null;
							 | 
						|||
| 
								 | 
							
								                    BLL.WbsSetService.UpdateWbsSet(wbsSet);
							 | 
						|||
| 
								 | 
							
								                    btnSave.ConfirmText = string.Empty;
							 | 
						|||
| 
								 | 
							
								                    var details = from x in Funs.DB.WbsDetail where x.ToWbs == wbsSet.WbsSetId select x;
							 | 
						|||
| 
								 | 
							
								                    if (details.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        foreach (var detail in details)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Model.WbsDetailHistory detailHistory = new Model.WbsDetailHistory();
							 | 
						|||
| 
								 | 
							
								                            detailHistory.WbsDetailHistoryId = SQLHelper.GetNewID(typeof(Model.WbsDetailHistory));
							 | 
						|||
| 
								 | 
							
								                            detailHistory.ToWbs = detail.ToWbs;
							 | 
						|||
| 
								 | 
							
								                            detailHistory.ToFlag = detail.ToFlag;
							 | 
						|||
| 
								 | 
							
								                            detailHistory.Way = detail.Way;
							 | 
						|||
| 
								 | 
							
								                            detailHistory.Months = detail.Months;
							 | 
						|||
| 
								 | 
							
								                            detailHistory.PlanValue = detail.PlanValue;
							 | 
						|||
| 
								 | 
							
								                            detailHistory.PlanValueRate = detail.PlanValueRate;
							 | 
						|||
| 
								 | 
							
								                            detailHistory.VersionNum = wbsSet.VersionNum;
							 | 
						|||
| 
								 | 
							
								                            BLL.WbsDetailHistoryService.AddWbsDetailHistory(detailHistory);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            string type = this.trWBS.SelectedNode.CommandName;
							 | 
						|||
| 
								 | 
							
								            if (type == "wbsSet")
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var childWbsSets = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(this.trWBS.SelectedNodeID);
							 | 
						|||
| 
								 | 
							
								                if (childWbsSets.Count == 0)   //当前为末级
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (JObject mergedRow in mergedData)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        Model.WbsDetail detail = new Model.WbsDetail();
							 | 
						|||
| 
								 | 
							
								                        JObject values = mergedRow.Value<JObject>("values");
							 | 
						|||
| 
								 | 
							
								                        detail.WbsDetailId = values.Value<string>("WbsDetailId");
							 | 
						|||
| 
								 | 
							
								                        var oldDetail = BLL.WbsDetailService.GetWbsDetailByWbsDetailId(detail.WbsDetailId);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        detail.ToWbs = values.Value<string>("ToWbs");
							 | 
						|||
| 
								 | 
							
								                        detail.ToFlag = Convert.ToInt32(values.Value<string>("ToFlag"));
							 | 
						|||
| 
								 | 
							
								                        detail.Way = values.Value<string>("Way");
							 | 
						|||
| 
								 | 
							
								                        detail.Months = Convert.ToDateTime(values.Value<string>("Months"));
							 | 
						|||
| 
								 | 
							
								                        if (!string.IsNullOrEmpty(values.Value<string>("PlanValue")))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            detail.PlanValue = Convert.ToDecimal(values.Value<string>("PlanValue"));
							 | 
						|||
| 
								 | 
							
								                            oldDetail.PlanValue = Convert.ToDecimal(values.Value<string>("PlanValue"));
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            detail.PlanValue = 0;
							 | 
						|||
| 
								 | 
							
								                            oldDetail.PlanValue = 0;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (moneys != 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            detail.PlanValueRate = decimal.Round(Convert.ToDecimal(detail.PlanValue) / moneys * 100, 2);
							 | 
						|||
| 
								 | 
							
								                            oldDetail.PlanValueRate = detail.PlanValueRate;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            detail.PlanValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                            oldDetail.PlanValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (oldDetail == null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            BLL.WbsDetailService.AddWbsDetail(detail);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Funs.DB.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            //BLL.Sys_LogService.AddLog(BLL.Const.System_9, this.CurrUser.LoginProjectId, this.CurrUser.UserId, "设置计划值");
							 | 
						|||
| 
								 | 
							
								            if (!string.IsNullOrEmpty(Request.Params["ToWbs"]))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                if (!string.IsNullOrEmpty(message))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    ShowNotify("保存成功!", MessageBoxIcon.Success);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 保存方法2(用于展开末级项时的自动保存)
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 保存方法2(用于展开末级项时的自动保存)
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="message"></param>
							 | 
						|||
| 
								 | 
							
								        private void SaveData2()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Model.Wbs_WbsSet wbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(this.trWBS.SelectedNodeID);
							 | 
						|||
| 
								 | 
							
								            for (int i = 0; i < this.Grid1.Rows.Count; i++)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                string type = this.trWBS.SelectedNode.CommandName;
							 | 
						|||
| 
								 | 
							
								                if (type == "wbsSet")
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var childWbsSets = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(this.trWBS.SelectedNodeID);
							 | 
						|||
| 
								 | 
							
								                    if (childWbsSets.Count == 0)   //当前为末级
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        Model.WbsDetail detail = new Model.WbsDetail();
							 | 
						|||
| 
								 | 
							
								                        detail.WbsDetailId = this.Grid1.Rows[i].Values[4].ToString();
							 | 
						|||
| 
								 | 
							
								                        detail.ToWbs = this.Grid1.Rows[i].Values[5].ToString();
							 | 
						|||
| 
								 | 
							
								                        detail.ToFlag = Convert.ToInt32(this.Grid1.Rows[i].Values[6].ToString());
							 | 
						|||
| 
								 | 
							
								                        detail.Way = this.Grid1.Rows[i].Values[7].ToString();
							 | 
						|||
| 
								 | 
							
								                        detail.Months = Convert.ToDateTime(this.Grid1.Rows[i].Values[9].ToString());
							 | 
						|||
| 
								 | 
							
								                        if (!string.IsNullOrEmpty(this.Grid1.Rows[i].Values[1].ToString()) && this.Grid1.Rows[i].Values[10].ToString() != "0")
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            detail.PlanValue = Convert.ToDecimal(this.Grid1.Rows[i].Values[1].ToString());
							 | 
						|||
| 
								 | 
							
								                            detail.PlanValueRate = decimal.Round(Convert.ToDecimal(detail.PlanValue) / Convert.ToDecimal(this.Grid1.Rows[i].Values[10].ToString()) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        var oldDetail = BLL.WbsDetailService.GetWbsDetailByWbsDetailId(detail.WbsDetailId);
							 | 
						|||
| 
								 | 
							
								                        if (oldDetail == null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            BLL.WbsDetailService.AddWbsDetail(detail);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            //BLL.Sys_LogService.AddLog(BLL.Const.System_9, this.CurrUser.LoginProjectId, this.CurrUser.UserId, "设置计划值");
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region  增加分部分项
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 增加分部分项
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="years"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="months"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="planValue"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="parentId"></param>
							 | 
						|||
| 
								 | 
							
								        private void AddWbsParentDetail(DateTime months, decimal? planValue, string parentId, decimal? completeValue, decimal? realValue)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Model.Wbs_WbsSet parentWbsSet1 = BLL.WbsSetService.GetWbsSetByWbsSetId(parentId);
							 | 
						|||
| 
								 | 
							
								            if (parentWbsSet1 != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                if (parentWbsSet1.WeightsMoney != null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (parentWbsSet1.SuperWbsSetId != null)   //父节点不是分部节点
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        Model.WbsDetail detail1 = BLL.WbsDetailService.GetWbsDetailByWbsFlagYearMonth(parentWbsSet1.WbsSetId, 4, months);
							 | 
						|||
| 
								 | 
							
								                        if (detail1 == null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Model.WbsDetail newDetail1 = new Model.WbsDetail();
							 | 
						|||
| 
								 | 
							
								                            newDetail1.WbsDetailId = SQLHelper.GetNewID(typeof(Model.WbsDetail));
							 | 
						|||
| 
								 | 
							
								                            newDetail1.ToWbs = parentWbsSet1.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                            newDetail1.ToFlag = 4;
							 | 
						|||
| 
								 | 
							
								                            newDetail1.Way = parentWbsSet1.Way;
							 | 
						|||
| 
								 | 
							
								                            newDetail1.Months = months;
							 | 
						|||
| 
								 | 
							
								                            newDetail1.PlanValue = planValue ?? 0;
							 | 
						|||
| 
								 | 
							
								                            newDetail1.CompleteValue = completeValue ?? 0;
							 | 
						|||
| 
								 | 
							
								                            newDetail1.RealValue = realValue ?? 0;
							 | 
						|||
| 
								 | 
							
								                            if (parentWbsSet1.WeightsMoney != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                newDetail1.PlanValueRate = decimal.Round(Convert.ToDecimal(newDetail1.PlanValue) / Convert.ToDecimal(parentWbsSet1.WeightsMoney) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                                newDetail1.CompleteValueRate = decimal.Round(Convert.ToDecimal(newDetail1.CompleteValue) / Convert.ToDecimal(parentWbsSet1.WeightsMoney) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                                newDetail1.RealValueRate = decimal.Round(Convert.ToDecimal(newDetail1.RealValue) / Convert.ToDecimal(parentWbsSet1.WeightsMoney) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                newDetail1.PlanValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                                newDetail1.CompleteValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                                newDetail1.RealValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            BLL.WbsDetailService.AddWbsDetail(newDetail1);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            detail1.PlanValue += planValue ?? 0;
							 | 
						|||
| 
								 | 
							
								                            detail1.CompleteValue += completeValue ?? 0;
							 | 
						|||
| 
								 | 
							
								                            detail1.RealValue += realValue ?? 0;
							 | 
						|||
| 
								 | 
							
								                            if (parentWbsSet1.WeightsMoney != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                detail1.PlanValueRate = decimal.Round(Convert.ToDecimal(detail1.PlanValue) / Convert.ToDecimal(parentWbsSet1.WeightsMoney) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                                detail1.CompleteValueRate = decimal.Round(Convert.ToDecimal(detail1.CompleteValue) / Convert.ToDecimal(parentWbsSet1.WeightsMoney) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                                detail1.RealValueRate = decimal.Round(Convert.ToDecimal(detail1.RealValue) / Convert.ToDecimal(parentWbsSet1.WeightsMoney) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                detail1.PlanValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                                detail1.CompleteValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                                detail1.RealValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            BLL.WbsDetailService.UpdateWbsDetail(detail1);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        AddWbsParentDetail(months, planValue, parentWbsSet1.SuperWbsSetId, completeValue, realValue);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        Model.WbsDetail detail1 = BLL.WbsDetailService.GetWbsDetailByWbsFlagYearMonth(parentWbsSet1.WbsSetId, 4, months);
							 | 
						|||
| 
								 | 
							
								                        if (detail1 == null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Model.WbsDetail newDetail1 = new Model.WbsDetail();
							 | 
						|||
| 
								 | 
							
								                            newDetail1.WbsDetailId = SQLHelper.GetNewID(typeof(Model.WbsDetail));
							 | 
						|||
| 
								 | 
							
								                            newDetail1.ToWbs = parentWbsSet1.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                            newDetail1.ToFlag = 4;
							 | 
						|||
| 
								 | 
							
								                            newDetail1.Way = parentWbsSet1.Way;
							 | 
						|||
| 
								 | 
							
								                            newDetail1.Months = months;
							 | 
						|||
| 
								 | 
							
								                            newDetail1.PlanValue = planValue;
							 | 
						|||
| 
								 | 
							
								                            newDetail1.CompleteValue = completeValue ?? 0;
							 | 
						|||
| 
								 | 
							
								                            newDetail1.RealValue = realValue ?? 0;
							 | 
						|||
| 
								 | 
							
								                            if (parentWbsSet1.WeightsMoney != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                newDetail1.PlanValueRate = decimal.Round(Convert.ToDecimal(newDetail1.PlanValue) / Convert.ToDecimal(parentWbsSet1.WeightsMoney) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                                newDetail1.CompleteValueRate = decimal.Round(Convert.ToDecimal(newDetail1.CompleteValue) / Convert.ToDecimal(parentWbsSet1.WeightsMoney) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                                newDetail1.RealValueRate = decimal.Round(Convert.ToDecimal(newDetail1.RealValue) / Convert.ToDecimal(parentWbsSet1.WeightsMoney) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                newDetail1.PlanValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                                newDetail1.CompleteValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                                newDetail1.RealValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            BLL.WbsDetailService.AddWbsDetail(newDetail1);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            detail1.PlanValue += planValue;
							 | 
						|||
| 
								 | 
							
								                            detail1.CompleteValue += completeValue ?? 0;
							 | 
						|||
| 
								 | 
							
								                            detail1.RealValue += realValue ?? 0;
							 | 
						|||
| 
								 | 
							
								                            if (parentWbsSet1.WeightsMoney != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                detail1.PlanValueRate = decimal.Round(Convert.ToDecimal(detail1.PlanValue) / Convert.ToDecimal(parentWbsSet1.WeightsMoney) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                                detail1.CompleteValueRate = decimal.Round(Convert.ToDecimal(detail1.CompleteValue) / Convert.ToDecimal(parentWbsSet1.WeightsMoney) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                                detail1.RealValueRate = decimal.Round(Convert.ToDecimal(detail1.RealValue) / Convert.ToDecimal(parentWbsSet1.WeightsMoney) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                detail1.PlanValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                                detail1.CompleteValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                                detail1.RealValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            BLL.WbsDetailService.UpdateWbsDetail(detail1);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region  更新分部分项
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 更新分部分项
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="years"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="months"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="planValue"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="parentId"></param>
							 | 
						|||
| 
								 | 
							
								        private void UpdateWbsParentDetail(DateTime months, decimal? planValue, decimal? oldPlanValue, string parentId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Model.Wbs_WbsSet parentWbsSet1 = BLL.WbsSetService.GetWbsSetByWbsSetId(parentId);
							 | 
						|||
| 
								 | 
							
								            if (parentWbsSet1 != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Model.WbsDetail detail1 = BLL.WbsDetailService.GetWbsDetailByWbsFlagYearMonth(parentWbsSet1.WbsSetId, 4, months);
							 | 
						|||
| 
								 | 
							
								                if (detail1 != null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (parentWbsSet1.SuperWbsSetId != null)   //父节点不是分部节点
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        detail1.PlanValue += ((planValue ?? 0) - (oldPlanValue ?? 0));
							 | 
						|||
| 
								 | 
							
								                        detail1.PlanValueRate = decimal.Round(Convert.ToDecimal(detail1.PlanValue) / Convert.ToDecimal(parentWbsSet1.WeightsMoney) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                        BLL.WbsDetailService.UpdateWbsDetail(detail1);
							 | 
						|||
| 
								 | 
							
								                        UpdateWbsParentDetail(months, planValue, oldPlanValue, parentWbsSet1.SuperWbsSetId);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        detail1.PlanValue += ((planValue ?? 0) - (oldPlanValue ?? 0));
							 | 
						|||
| 
								 | 
							
								                        detail1.PlanValueRate = decimal.Round(Convert.ToDecimal(detail1.PlanValue) / Convert.ToDecimal(parentWbsSet1.WeightsMoney) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                        BLL.WbsDetailService.UpdateWbsDetail(detail1);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region  保存按钮
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 保存
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void btnSave_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (this.Grid1.Rows.Count > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                SaveData("success");
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region  查看之前版本
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 查看之前版本
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void btnSee_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SeeDetailHistory.aspx?ToWbs={0}", this.trWBS.SelectedNodeID, "编辑 - ")));
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region  绑定数据
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 绑定数据
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void Grid1_FilterChange(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            BindGrid();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Grid1.PageIndex = e.NewPageIndex;
							 | 
						|||
| 
								 | 
							
								            BindGrid();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// Grid1排序
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void Grid1_Sort(object sender, GridSortEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Grid1.SortDirection = e.SortDirection;
							 | 
						|||
| 
								 | 
							
								            Grid1.SortField = e.SortField;
							 | 
						|||
| 
								 | 
							
								            BindGrid();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 加载Grid
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private void BindGrid()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            this.btnSave.Hidden = true;
							 | 
						|||
| 
								 | 
							
								            this.btnSee.Hidden = true;
							 | 
						|||
| 
								 | 
							
								            DateTime startDate, endDate, startMonth, endMonth, parentStartDate, parentEndDate, parentStartMonth, parentEndMonth;
							 | 
						|||
| 
								 | 
							
								            List<Model.WBSDetailItem> items = new List<Model.WBSDetailItem>();
							 | 
						|||
| 
								 | 
							
								            List<DateTime> months = new List<DateTime>();
							 | 
						|||
| 
								 | 
							
								            string column0 = string.Empty;
							 | 
						|||
| 
								 | 
							
								            decimal totalValue = 0, totalRate = 0;
							 | 
						|||
| 
								 | 
							
								            RenderField column = Grid1.FindColumn("PlanValue") as RenderField;
							 | 
						|||
| 
								 | 
							
								            column.EnableColumnEdit = false;
							 | 
						|||
| 
								 | 
							
								            if (this.trWBS.SelectedNode != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                #region 分部分项
							 | 
						|||
| 
								 | 
							
								                if (this.trWBS.SelectedNode.CommandName == "wbsSet")
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Model.Wbs_WbsSet wbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(this.trWBS.SelectedNode.NodeID);
							 | 
						|||
| 
								 | 
							
								                    if (wbsSet != null)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        startDate = Convert.ToDateTime(wbsSet.StartDate);
							 | 
						|||
| 
								 | 
							
								                        endDate = Convert.ToDateTime(wbsSet.EndDate);
							 | 
						|||
| 
								 | 
							
								                        startMonth = Convert.ToDateTime(startDate.Year + "-" + startDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                        endMonth = Convert.ToDateTime(endDate.Year + "-" + endDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                        do
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            months.Add(startMonth);
							 | 
						|||
| 
								 | 
							
								                            startMonth = startMonth.AddMonths(1);
							 | 
						|||
| 
								 | 
							
								                        } while (startMonth <= endMonth);
							 | 
						|||
| 
								 | 
							
								                        column0 = "进度计划开始日期:" + string.Format("{0:yyyy-MM-dd}", startDate) + "<br/>进度计划结束日期:" + string.Format("{0:yyyy-MM-dd}", endDate);
							 | 
						|||
| 
								 | 
							
								                        this.Grid1.Columns[0].HeaderText = column0;
							 | 
						|||
| 
								 | 
							
								                        var childWbsSets = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(wbsSet.WbsSetId);
							 | 
						|||
| 
								 | 
							
								                        if (childWbsSets.Count == 0)   //当前为末级
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            //获取父级节点的月份集合
							 | 
						|||
| 
								 | 
							
								                            List<DateTime> parentMonths = new List<DateTime>();   //父级节点的月份集合
							 | 
						|||
| 
								 | 
							
								                            string parentId = this.trWBS.SelectedNode.ParentNode.NodeID;
							 | 
						|||
| 
								 | 
							
								                            Model.Wbs_WbsSet parentWbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(parentId);
							 | 
						|||
| 
								 | 
							
								                            if (parentWbsSet != null)  //父级为分部
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                parentStartDate = Convert.ToDateTime(parentWbsSet.StartDate);
							 | 
						|||
| 
								 | 
							
								                                parentEndDate = Convert.ToDateTime(parentWbsSet.EndDate);
							 | 
						|||
| 
								 | 
							
								                                parentStartMonth = Convert.ToDateTime(parentStartDate.Year + "-" + parentStartDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                                parentEndMonth = Convert.ToDateTime(parentEndDate.Year + "-" + parentEndDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                                do
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    parentMonths.Add(parentStartMonth);
							 | 
						|||
| 
								 | 
							
								                                    parentStartMonth = parentStartMonth.AddMonths(1);
							 | 
						|||
| 
								 | 
							
								                                } while (parentStartMonth <= parentEndMonth);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else    //父级为质量行为
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Model.Wbs_UnitProject unitProject = BLL.UnitProjectService.GetUnitProjectByUnitProjectId(parentId);
							 | 
						|||
| 
								 | 
							
								                                if (unitProject != null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    parentStartDate = Convert.ToDateTime(unitProject.StartDate);
							 | 
						|||
| 
								 | 
							
								                                    parentEndDate = Convert.ToDateTime(unitProject.EndDate);
							 | 
						|||
| 
								 | 
							
								                                    parentStartMonth = Convert.ToDateTime(parentStartDate.Year + "-" + parentStartDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                                    parentEndMonth = Convert.ToDateTime(parentEndDate.Year + "-" + parentEndDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                                    do
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        parentMonths.Add(parentStartMonth);
							 | 
						|||
| 
								 | 
							
								                                        parentStartMonth = parentStartMonth.AddMonths(1);
							 | 
						|||
| 
								 | 
							
								                                    } while (parentStartMonth <= parentEndMonth);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            RenderField columnPlanValue = Grid1.FindColumn("PlanValue") as RenderField;
							 | 
						|||
| 
								 | 
							
								                            columnPlanValue.EnableColumnEdit = true;
							 | 
						|||
| 
								 | 
							
								                            if (wbsSet.IsPlanApprove == true)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                btnSave.ConfirmText = String.Format("{0}的进度计划已审核并发布,确定重新设置进度计划并进行流程审批吗?", wbsSet.WbsSetName);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                btnSave.ConfirmText = string.Empty;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.WBSPlanAuditMenuId, Const.BtnSave))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                this.btnSave.Hidden = false;
							 | 
						|||
| 
								 | 
							
								                                this.btnSee.Hidden = false;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            for (int i = 0; i < months.Count; i++)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Model.WbsDetail detail = BLL.WbsDetailService.GetWbsDetailByWbsFlagYearMonth(wbsSet.WbsSetId, 4, months[i]);
							 | 
						|||
| 
								 | 
							
								                                if (detail == null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    Model.WBSDetailItem item = new Model.WBSDetailItem();
							 | 
						|||
| 
								 | 
							
								                                    item.WbsDetailId = SQLHelper.GetNewID(typeof(Model.WbsDetail));
							 | 
						|||
| 
								 | 
							
								                                    item.ToWbs = wbsSet.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                                    item.ToFlag = 4;   //分部分项
							 | 
						|||
| 
								 | 
							
								                                    item.Way = wbsSet.Way;
							 | 
						|||
| 
								 | 
							
								                                    item.Months = months[i];
							 | 
						|||
| 
								 | 
							
								                                    item.YearsMonthsStr = months[i].Year + "年" + months[i].Month + "月";
							 | 
						|||
| 
								 | 
							
								                                    item.WeightsMoney = wbsSet.WeightsMoney;
							 | 
						|||
| 
								 | 
							
								                                    if (wbsSet.WeightsMoney != null)
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        decimal moneys = decimal.Round(Convert.ToDecimal(wbsSet.WeightsMoney), 2);
							 | 
						|||
| 
								 | 
							
								                                        if (i == months.Count - 1)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            decimal lastPlanValue = decimal.Round(Convert.ToDecimal(wbsSet.WeightsMoney - totalValue), 2);
							 | 
						|||
| 
								 | 
							
								                                            if (lastPlanValue >= 0)
							 | 
						|||
| 
								 | 
							
								                                            {
							 | 
						|||
| 
								 | 
							
								                                                item.PlanValue = lastPlanValue;
							 | 
						|||
| 
								 | 
							
								                                            }
							 | 
						|||
| 
								 | 
							
								                                            else
							 | 
						|||
| 
								 | 
							
								                                            {
							 | 
						|||
| 
								 | 
							
								                                                decimal value = decimal.Round(Convert.ToDecimal(totalValue - wbsSet.WeightsMoney), 2);
							 | 
						|||
| 
								 | 
							
								                                                var detailList = BLL.WbsDetailService.GetTotalWbsDetailsByToWbs(wbsSet.WbsSetId);
							 | 
						|||
| 
								 | 
							
								                                                while (value > 0)
							 | 
						|||
| 
								 | 
							
								                                                {
							 | 
						|||
| 
								 | 
							
								                                                    foreach (var d in detailList)
							 | 
						|||
| 
								 | 
							
								                                                    {
							 | 
						|||
| 
								 | 
							
								                                                        if (value > 0 && d.PlanValue >= Convert.ToDecimal(0.01))
							 | 
						|||
| 
								 | 
							
								                                                        {
							 | 
						|||
| 
								 | 
							
								                                                            d.PlanValue = Convert.ToDecimal(Convert.ToDecimal(d.PlanValue) - Convert.ToDecimal(0.01));
							 | 
						|||
| 
								 | 
							
								                                                            d.PlanValueRate = decimal.Round(Convert.ToDecimal(d.PlanValue / wbsSet.WeightsMoney * 100), 2);
							 | 
						|||
| 
								 | 
							
								                                                            BLL.WbsDetailService.UpdateWbsDetail(d);
							 | 
						|||
| 
								 | 
							
								                                                            value = Convert.ToDecimal(value - Convert.ToDecimal(0.01));
							 | 
						|||
| 
								 | 
							
								                                                        }
							 | 
						|||
| 
								 | 
							
								                                                    }
							 | 
						|||
| 
								 | 
							
								                                                }
							 | 
						|||
| 
								 | 
							
								                                                item.PlanValue = 0;
							 | 
						|||
| 
								 | 
							
								                                            }
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                        else
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            item.PlanValue = WbsDetailService.GetMonthPlanValueByMonthCountAndMonthNumAndWeightMonth(months.Count, i + 1, Convert.ToDecimal(wbsSet.WeightsMoney));
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                        if (wbsSet.WeightsMoney != 0)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            item.PlanValueRate = decimal.Round(Convert.ToDecimal(item.PlanValue / wbsSet.WeightsMoney * 100), 2);
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                        else
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            item.PlanValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                        totalValue += decimal.Round(Convert.ToDecimal(item.PlanValue), 2);
							 | 
						|||
| 
								 | 
							
								                                        totalRate += decimal.Round(Convert.ToDecimal(item.PlanValueRate), 2);
							 | 
						|||
| 
								 | 
							
								                                        item.PlanValueTotal = totalValue;
							 | 
						|||
| 
								 | 
							
								                                        item.PlanValueRateTotal = totalRate;
							 | 
						|||
| 
								 | 
							
								                                        if (i == months.Count - 1)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            if (wbsSet.WeightsMoney == totalValue)
							 | 
						|||
| 
								 | 
							
								                                            {
							 | 
						|||
| 
								 | 
							
								                                                item.PlanValueRateTotal = 100;
							 | 
						|||
| 
								 | 
							
								                                            }
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                    items.Add(item);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    Model.WBSDetailItem item = new Model.WBSDetailItem();
							 | 
						|||
| 
								 | 
							
								                                    item.WbsDetailId = detail.WbsDetailId;
							 | 
						|||
| 
								 | 
							
								                                    item.ToWbs = detail.ToWbs;
							 | 
						|||
| 
								 | 
							
								                                    item.ToFlag = 4;   //分部分项
							 | 
						|||
| 
								 | 
							
								                                    item.Way = detail.Way;
							 | 
						|||
| 
								 | 
							
								                                    item.Months = months[i];
							 | 
						|||
| 
								 | 
							
								                                    item.YearsMonthsStr = months[i].Year + "年" + months[i].Month + "月";
							 | 
						|||
| 
								 | 
							
								                                    item.WeightsMoney = wbsSet.WeightsMoney;
							 | 
						|||
| 
								 | 
							
								                                    if (detail.PlanValue != null)
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        item.PlanValue = decimal.Round(Convert.ToDecimal(detail.PlanValue), 2);
							 | 
						|||
| 
								 | 
							
								                                        item.PlanValueRate = decimal.Round(Convert.ToDecimal(detail.PlanValueRate), 2);
							 | 
						|||
| 
								 | 
							
								                                        totalValue += decimal.Round(Convert.ToDecimal(item.PlanValue), 2);
							 | 
						|||
| 
								 | 
							
								                                        totalRate += decimal.Round(Convert.ToDecimal(item.PlanValueRate), 2);
							 | 
						|||
| 
								 | 
							
								                                        item.PlanValueTotal = totalValue;
							 | 
						|||
| 
								 | 
							
								                                        item.PlanValueRateTotal = totalRate;
							 | 
						|||
| 
								 | 
							
								                                        if (i == months.Count - 1)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            if (wbsSet.WeightsMoney == totalValue)
							 | 
						|||
| 
								 | 
							
								                                            {
							 | 
						|||
| 
								 | 
							
								                                                item.PlanValueRateTotal = 100;
							 | 
						|||
| 
								 | 
							
								                                            }
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                    items.Add(item);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            for (int i = 0; i < parentMonths.Count; i++)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                if (!months.Contains(parentMonths[i]))
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    Model.WbsDetail detail = (from x in Funs.DB.WbsDetail
							 | 
						|||
| 
								 | 
							
								                                                              where x.ToWbs == wbsSet.WbsSetId && x.Months == parentMonths[i]
							 | 
						|||
| 
								 | 
							
								                                                              select x).FirstOrDefault();
							 | 
						|||
| 
								 | 
							
								                                    if (detail == null)
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        Model.WBSDetailItem item = new Model.WBSDetailItem();
							 | 
						|||
| 
								 | 
							
								                                        item.WbsDetailId = SQLHelper.GetNewID(typeof(Model.WbsDetail));
							 | 
						|||
| 
								 | 
							
								                                        item.ToWbs = wbsSet.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                                        item.ToFlag = 4;   //分部分项
							 | 
						|||
| 
								 | 
							
								                                        item.Way = wbsSet.Way;
							 | 
						|||
| 
								 | 
							
								                                        item.Months = parentMonths[i];
							 | 
						|||
| 
								 | 
							
								                                        item.YearsMonthsStr = parentMonths[i].Year + "年" + parentMonths[i].Month + "月";
							 | 
						|||
| 
								 | 
							
								                                        item.WeightsMoney = wbsSet.WeightsMoney;
							 | 
						|||
| 
								 | 
							
								                                        item.PlanValue = 0;
							 | 
						|||
| 
								 | 
							
								                                        item.PlanValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                                        items.Add(item);
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                    else
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        Model.WBSDetailItem item = new Model.WBSDetailItem();
							 | 
						|||
| 
								 | 
							
								                                        item.WbsDetailId = detail.WbsDetailId;
							 | 
						|||
| 
								 | 
							
								                                        item.ToWbs = wbsSet.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                                        item.ToFlag = 4;   //分部分项
							 | 
						|||
| 
								 | 
							
								                                        item.Way = wbsSet.Way;
							 | 
						|||
| 
								 | 
							
								                                        item.Months = parentMonths[i];
							 | 
						|||
| 
								 | 
							
								                                        item.YearsMonthsStr = parentMonths[i].Year + "年" + parentMonths[i].Month + "月";
							 | 
						|||
| 
								 | 
							
								                                        item.WeightsMoney = wbsSet.WeightsMoney;
							 | 
						|||
| 
								 | 
							
								                                        item.PlanValue = detail.PlanValue;
							 | 
						|||
| 
								 | 
							
								                                        item.PlanValueRate = detail.PlanValueRate;
							 | 
						|||
| 
								 | 
							
								                                        items.Add(item);
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            items = items.OrderBy(x => x.Months).ToList();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else   //当前不为末级
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            for (int i = 0; i < months.Count; i++)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Model.WbsDetail detail = BLL.WbsDetailService.GetWbsDetailByWbsFlagYearMonth(wbsSet.WbsSetId, 4, months[i]);
							 | 
						|||
| 
								 | 
							
								                                if (detail != null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    Model.WBSDetailItem item = new Model.WBSDetailItem();
							 | 
						|||
| 
								 | 
							
								                                    item.WbsDetailId = detail.WbsDetailId;
							 | 
						|||
| 
								 | 
							
								                                    item.ToWbs = detail.ToWbs;
							 | 
						|||
| 
								 | 
							
								                                    item.ToFlag = 4;   //分部分项
							 | 
						|||
| 
								 | 
							
								                                    item.Way = detail.Way;
							 | 
						|||
| 
								 | 
							
								                                    item.Months = months[i];
							 | 
						|||
| 
								 | 
							
								                                    item.YearsMonthsStr = months[i].Year + "年" + months[i].Month + "月";
							 | 
						|||
| 
								 | 
							
								                                    item.WeightsMoney = wbsSet.WeightsMoney;
							 | 
						|||
| 
								 | 
							
								                                    if (detail.PlanValue != null)
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        item.PlanValue = decimal.Round(Convert.ToDecimal(detail.PlanValue), 2);
							 | 
						|||
| 
								 | 
							
								                                        item.PlanValueRate = decimal.Round(Convert.ToDecimal(detail.PlanValueRate), 2);
							 | 
						|||
| 
								 | 
							
								                                        totalValue += decimal.Round(Convert.ToDecimal(item.PlanValue), 2);
							 | 
						|||
| 
								 | 
							
								                                        totalRate += decimal.Round(Convert.ToDecimal(item.PlanValueRate), 2);
							 | 
						|||
| 
								 | 
							
								                                        item.PlanValueTotal = totalValue;
							 | 
						|||
| 
								 | 
							
								                                        item.PlanValueRateTotal = totalRate;
							 | 
						|||
| 
								 | 
							
								                                        if (i == months.Count - 1)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            if (wbsSet.WeightsMoney == totalValue)
							 | 
						|||
| 
								 | 
							
								                                            {
							 | 
						|||
| 
								 | 
							
								                                                item.PlanValueRateTotal = 100;
							 | 
						|||
| 
								 | 
							
								                                            }
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                    items.Add(item);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                #endregion
							 | 
						|||
| 
								 | 
							
								                #region  单位工程/子单位工程
							 | 
						|||
| 
								 | 
							
								                else if (this.trWBS.SelectedNode.CommandName == "unitProject" || this.trWBS.SelectedNode.CommandName == "childUnitProject")
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Model.Wbs_UnitProject unitProject = BLL.UnitProjectService.GetUnitProjectByUnitProjectId(this.trWBS.SelectedNode.NodeID);
							 | 
						|||
| 
								 | 
							
								                    if (unitProject != null)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        startDate = Convert.ToDateTime(unitProject.StartDate);
							 | 
						|||
| 
								 | 
							
								                        endDate = Convert.ToDateTime(unitProject.EndDate);
							 | 
						|||
| 
								 | 
							
								                        startMonth = Convert.ToDateTime(startDate.Year + "-" + startDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                        endMonth = Convert.ToDateTime(endDate.Year + "-" + endDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                        do
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            months.Add(startMonth);
							 | 
						|||
| 
								 | 
							
								                            startMonth = startMonth.AddMonths(1);
							 | 
						|||
| 
								 | 
							
								                        } while (startMonth <= endMonth);
							 | 
						|||
| 
								 | 
							
								                        column0 = "进度计划开始日期:" + string.Format("{0:yyyy-MM-dd}", startDate) + "<br/>进度计划结束日期:" + string.Format("{0:yyyy-MM-dd}", endDate);
							 | 
						|||
| 
								 | 
							
								                        this.Grid1.Columns[0].HeaderText = column0;
							 | 
						|||
| 
								 | 
							
								                        for (int i = 0; i < months.Count; i++)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Model.WbsDetail detail = BLL.WbsDetailService.GetWbsDetailByWbsFlagYearMonth(unitProject.UnitProjectId, 3, months[i]);
							 | 
						|||
| 
								 | 
							
								                            if (detail != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Model.WBSDetailItem item = new Model.WBSDetailItem();
							 | 
						|||
| 
								 | 
							
								                                item.WbsDetailId = detail.WbsDetailId;
							 | 
						|||
| 
								 | 
							
								                                item.ToWbs = detail.ToWbs;
							 | 
						|||
| 
								 | 
							
								                                item.ToFlag = 3;   //单位工程/子单位工程
							 | 
						|||
| 
								 | 
							
								                                item.Way = detail.Way;
							 | 
						|||
| 
								 | 
							
								                                item.Months = months[i];
							 | 
						|||
| 
								 | 
							
								                                item.YearsMonthsStr = months[i].Year + "年" + months[i].Month + "月";
							 | 
						|||
| 
								 | 
							
								                                item.WeightsMoney = unitProject.WeightsMoney;
							 | 
						|||
| 
								 | 
							
								                                if (detail.PlanValue != null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    item.PlanValue = decimal.Round(Convert.ToDecimal(detail.PlanValue), 2);
							 | 
						|||
| 
								 | 
							
								                                    item.PlanValueRate = decimal.Round(Convert.ToDecimal(detail.PlanValueRate), 2);
							 | 
						|||
| 
								 | 
							
								                                    totalValue += decimal.Round(Convert.ToDecimal(item.PlanValue), 2);
							 | 
						|||
| 
								 | 
							
								                                    totalRate += decimal.Round(Convert.ToDecimal(item.PlanValueRate), 2);
							 | 
						|||
| 
								 | 
							
								                                    item.PlanValueTotal = totalValue;
							 | 
						|||
| 
								 | 
							
								                                    item.PlanValueRateTotal = totalRate;
							 | 
						|||
| 
								 | 
							
								                                    if (i == months.Count - 1)
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        if (unitProject.WeightsMoney == totalValue)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            item.PlanValueRateTotal = 100;
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                items.Add(item);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                #endregion
							 | 
						|||
| 
								 | 
							
								                #region  专业
							 | 
						|||
| 
								 | 
							
								                else if (this.trWBS.SelectedNode.CommandName == "cnProfession")
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Model.WBS_CnProfession cnProfession = BLL.CnProfessionService.GetCnProfessionByCnProfessionId(this.trWBS.SelectedNode.NodeID);
							 | 
						|||
| 
								 | 
							
								                    if (cnProfession != null)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        startDate = Convert.ToDateTime(cnProfession.StartDate);
							 | 
						|||
| 
								 | 
							
								                        endDate = Convert.ToDateTime(cnProfession.EndDate);
							 | 
						|||
| 
								 | 
							
								                        startMonth = Convert.ToDateTime(startDate.Year + "-" + startDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                        endMonth = Convert.ToDateTime(endDate.Year + "-" + endDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                        do
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            months.Add(startMonth);
							 | 
						|||
| 
								 | 
							
								                            startMonth = startMonth.AddMonths(1);
							 | 
						|||
| 
								 | 
							
								                        } while (startMonth <= endMonth);
							 | 
						|||
| 
								 | 
							
								                        column0 = "进度计划开始日期:" + string.Format("{0:yyyy-MM-dd}", startDate) + "<br/>进度计划结束日期:" + string.Format("{0:yyyy-MM-dd}", endDate);
							 | 
						|||
| 
								 | 
							
								                        this.Grid1.Columns[0].HeaderText = column0;
							 | 
						|||
| 
								 | 
							
								                        for (int i = 0; i < months.Count; i++)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Model.WbsDetail detail = BLL.WbsDetailService.GetWbsDetailByWbsFlagYearMonth(cnProfession.CnProfessionId, 2, months[i]);
							 | 
						|||
| 
								 | 
							
								                            if (detail != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Model.WBSDetailItem item = new Model.WBSDetailItem();
							 | 
						|||
| 
								 | 
							
								                                item.WbsDetailId = detail.WbsDetailId;
							 | 
						|||
| 
								 | 
							
								                                item.ToWbs = detail.ToWbs;
							 | 
						|||
| 
								 | 
							
								                                item.ToFlag = 2;   //专业
							 | 
						|||
| 
								 | 
							
								                                item.Way = detail.Way;
							 | 
						|||
| 
								 | 
							
								                                item.Months = months[i];
							 | 
						|||
| 
								 | 
							
								                                item.YearsMonthsStr = months[i].Year + "年" + months[i].Month + "月";
							 | 
						|||
| 
								 | 
							
								                                item.WeightsMoney = cnProfession.WeightsMoney;
							 | 
						|||
| 
								 | 
							
								                                if (detail.PlanValue != null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    item.PlanValue = decimal.Round(Convert.ToDecimal(detail.PlanValue), 2);
							 | 
						|||
| 
								 | 
							
								                                    item.PlanValueRate = decimal.Round(Convert.ToDecimal(detail.PlanValueRate), 2);
							 | 
						|||
| 
								 | 
							
								                                    totalValue += decimal.Round(Convert.ToDecimal(item.PlanValue), 2);
							 | 
						|||
| 
								 | 
							
								                                    totalRate += decimal.Round(Convert.ToDecimal(item.PlanValueRate), 2);
							 | 
						|||
| 
								 | 
							
								                                    item.PlanValueTotal = totalValue;
							 | 
						|||
| 
								 | 
							
								                                    item.PlanValueRateTotal = totalRate;
							 | 
						|||
| 
								 | 
							
								                                    if (i == months.Count - 1)
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        if (cnProfession.WeightsMoney == totalValue)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            item.PlanValueRateTotal = 100;
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                items.Add(item);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                #endregion
							 | 
						|||
| 
								 | 
							
								                #region  装置
							 | 
						|||
| 
								 | 
							
								                else if (this.trWBS.SelectedNode.CommandName == "installation")
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Model.Project_Installation installation = BLL.Project_InstallationService.GetInstallationByInstallationId(this.trWBS.SelectedNode.NodeID);
							 | 
						|||
| 
								 | 
							
								                    if (installation != null)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        startDate = Convert.ToDateTime(installation.StartDate);
							 | 
						|||
| 
								 | 
							
								                        endDate = Convert.ToDateTime(installation.EndDate);
							 | 
						|||
| 
								 | 
							
								                        startMonth = Convert.ToDateTime(startDate.Year + "-" + startDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                        endMonth = Convert.ToDateTime(endDate.Year + "-" + endDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                        do
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            months.Add(startMonth);
							 | 
						|||
| 
								 | 
							
								                            startMonth = startMonth.AddMonths(1);
							 | 
						|||
| 
								 | 
							
								                        } while (startMonth <= endMonth);
							 | 
						|||
| 
								 | 
							
								                        column0 = "进度计划开始日期:" + string.Format("{0:yyyy-MM-dd}", startDate) + "<br/>进度计划结束日期:" + string.Format("{0:yyyy-MM-dd}", endDate);
							 | 
						|||
| 
								 | 
							
								                        this.Grid1.Columns[0].HeaderText = column0;
							 | 
						|||
| 
								 | 
							
								                        for (int i = 0; i < months.Count; i++)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Model.WbsDetail detail = BLL.WbsDetailService.GetWbsDetailByWbsFlagYearMonth(installation.InstallationId, 1, months[i]);
							 | 
						|||
| 
								 | 
							
								                            if (detail != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Model.WBSDetailItem item = new Model.WBSDetailItem();
							 | 
						|||
| 
								 | 
							
								                                item.WbsDetailId = detail.WbsDetailId;
							 | 
						|||
| 
								 | 
							
								                                item.ToWbs = detail.ToWbs;
							 | 
						|||
| 
								 | 
							
								                                item.ToFlag = 1;   //装置
							 | 
						|||
| 
								 | 
							
								                                item.Way = detail.Way;
							 | 
						|||
| 
								 | 
							
								                                item.Months = months[i];
							 | 
						|||
| 
								 | 
							
								                                item.YearsMonthsStr = months[i].Year + "年" + months[i].Month + "月";
							 | 
						|||
| 
								 | 
							
								                                item.WeightsMoney = installation.WeightsMoney;
							 | 
						|||
| 
								 | 
							
								                                if (detail.PlanValue != null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    item.PlanValue = decimal.Round(Convert.ToDecimal(detail.PlanValue), 2);
							 | 
						|||
| 
								 | 
							
								                                    item.PlanValueRate = decimal.Round(Convert.ToDecimal(detail.PlanValueRate), 2);
							 | 
						|||
| 
								 | 
							
								                                    totalValue += decimal.Round(Convert.ToDecimal(item.PlanValue), 2);
							 | 
						|||
| 
								 | 
							
								                                    totalRate += decimal.Round(Convert.ToDecimal(item.PlanValueRate), 2);
							 | 
						|||
| 
								 | 
							
								                                    item.PlanValueTotal = totalValue;
							 | 
						|||
| 
								 | 
							
								                                    item.PlanValueRateTotal = totalRate;
							 | 
						|||
| 
								 | 
							
								                                    if (i == months.Count - 1)
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        if (installation.WeightsMoney == totalValue)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            item.PlanValueRateTotal = 100;
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                items.Add(item);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                #endregion
							 | 
						|||
| 
								 | 
							
								                this.Grid1.DataSource = items;
							 | 
						|||
| 
								 | 
							
								                this.Grid1.DataBind();
							 | 
						|||
| 
								 | 
							
								                if (this.trWBS.SelectedNode.CommandName == "wbsSet")
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Model.Wbs_WbsSet wbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(this.trWBS.SelectedNode.NodeID);
							 | 
						|||
| 
								 | 
							
								                    if (wbsSet != null)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var childWbsSets = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(wbsSet.WbsSetId);
							 | 
						|||
| 
								 | 
							
								                        if (childWbsSets.Count == 0)   //当前为末级
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            SaveData2();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 判断装置下权重是否都已审核
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 判断装置下权重是否都已审核
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="ins"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        private bool IsWeightAudit(string ins)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            int num = 0;
							 | 
						|||
| 
								 | 
							
								            bool isWeightAudit = true;
							 | 
						|||
| 
								 | 
							
								            var cn = from x in Funs.DB.WBS_CnProfession
							 | 
						|||
| 
								 | 
							
								                     join y in Funs.DB.Wbs_UnitProject on x.CnProfessionId equals y.CnProfessionId
							 | 
						|||
| 
								 | 
							
								                     where x.InstallationId == ins && y.IsApprove == true
							 | 
						|||
| 
								 | 
							
								                     && (x.IsWeightsApprove == false || x.IsWeightsApprove == null)
							 | 
						|||
| 
								 | 
							
								                     select x;
							 | 
						|||
| 
								 | 
							
								            num = cn.Count();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            var unit = from x in Funs.DB.Wbs_UnitProject
							 | 
						|||
| 
								 | 
							
								                       join y in Funs.DB.WBS_CnProfession on x.CnProfessionId equals y.CnProfessionId
							 | 
						|||
| 
								 | 
							
								                       where y.InstallationId == ins && x.IsApprove == true && (x.IsWeightsApprove == false || x.IsWeightsApprove == null)
							 | 
						|||
| 
								 | 
							
								                       select x;
							 | 
						|||
| 
								 | 
							
								            num = num + unit.Count();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            var wbs = from x in Funs.DB.Wbs_WbsSet
							 | 
						|||
| 
								 | 
							
								                      join y in Funs.DB.WBS_CnProfession on x.CnProfessionId equals y.CnProfessionId
							 | 
						|||
| 
								 | 
							
								                      where y.InstallationId == ins && x.IsApprove == true && (x.IsWeightsApprove == false || x.IsWeightsApprove == null)
							 | 
						|||
| 
								 | 
							
								                      select x;
							 | 
						|||
| 
								 | 
							
								            num = num + wbs.Count();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (num > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                isWeightAudit = false;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            return isWeightAudit;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 判断装置下权重是否有负数
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 判断装置下权重是否有负数
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="ins"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        private bool IsWeightMinus(string ins)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            int num = 0;
							 | 
						|||
| 
								 | 
							
								            bool isWeightMinus = false;
							 | 
						|||
| 
								 | 
							
								            var cn = from x in Funs.DB.WBS_CnProfession where x.InstallationId == ins && (x.WeightsMoney <= 0 || x.Weights <= 0) select x;
							 | 
						|||
| 
								 | 
							
								            num = cn.Count();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            var unit = from x in Funs.DB.Wbs_UnitProject
							 | 
						|||
| 
								 | 
							
								                       join y in Funs.DB.WBS_CnProfession on x.CnProfessionId equals y.CnProfessionId
							 | 
						|||
| 
								 | 
							
								                       where y.InstallationId == ins && x.IsApprove == true && (x.WeightsMoney <= 0 || x.Weights <= 0)
							 | 
						|||
| 
								 | 
							
								                       select x;
							 | 
						|||
| 
								 | 
							
								            num = num + unit.Count();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            var wbs = from x in Funs.DB.Wbs_WbsSet
							 | 
						|||
| 
								 | 
							
								                      join y in Funs.DB.WBS_CnProfession on x.CnProfessionId equals y.CnProfessionId
							 | 
						|||
| 
								 | 
							
								                      where y.InstallationId == ins && x.IsApprove == true && (x.WeightsMoney <= 0 || x.Weights <= 0)
							 | 
						|||
| 
								 | 
							
								                      select x;
							 | 
						|||
| 
								 | 
							
								            num = num + wbs.Count();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (num > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                isWeightMinus = true;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            return isWeightMinus;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 右键合计计划值方法
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 右键修改事件
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void btnMenuEdit_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (this.trWBS.SelectedNode != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                MergeNextWbsSet(trWBS.SelectedNodeID, trWBS.SelectedNode.CommandName);
							 | 
						|||
| 
								 | 
							
								                Alert.ShowInTop("计划值合计完成!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private void MergeNextWbsSet(string id, string type)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (type == "installation")
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var q = from x in Funs.DB.WbsDetail
							 | 
						|||
| 
								 | 
							
								                        join y in Funs.DB.WBS_CnProfession on x.ToWbs equals y.CnProfessionId
							 | 
						|||
| 
								 | 
							
								                        where y.InstallationId == id
							 | 
						|||
| 
								 | 
							
								                        group new { x.PlanValue, x.CompleteValue, x.RealValue } by new { x.Months }
							 | 
						|||
| 
								 | 
							
								                            into g
							 | 
						|||
| 
								 | 
							
								                        select new
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Months = g.Key.Months,
							 | 
						|||
| 
								 | 
							
								                            PlanValue = g.Sum(x => x.PlanValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                            CompleteValue = g.Sum(x => x.CompleteValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                            RealValue = g.Sum(x => x.RealValue ?? 0)
							 | 
						|||
| 
								 | 
							
								                        };
							 | 
						|||
| 
								 | 
							
								                if (q.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var wbsSet in q)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        AddWbsSetDetail(id, Convert.ToDateTime(wbsSet.Months), Convert.ToDecimal(wbsSet.PlanValue), Convert.ToDecimal(wbsSet.CompleteValue), Convert.ToDecimal(wbsSet.RealValue), 1);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (type == "cnProfession")
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var q = from x in Funs.DB.WbsDetail
							 | 
						|||
| 
								 | 
							
								                        join y in Funs.DB.Wbs_UnitProject on x.ToWbs equals y.UnitProjectId
							 | 
						|||
| 
								 | 
							
								                        where y.CnProfessionId == id && y.IsApprove == true
							 | 
						|||
| 
								 | 
							
								                        group new { x.PlanValue, x.CompleteValue, x.RealValue } by new { x.Months }
							 | 
						|||
| 
								 | 
							
								                            into g
							 | 
						|||
| 
								 | 
							
								                        select new
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Months = g.Key.Months,
							 | 
						|||
| 
								 | 
							
								                            PlanValue = g.Sum(x => x.PlanValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                            CompleteValue = g.Sum(x => x.CompleteValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                            RealValue = g.Sum(x => x.RealValue ?? 0)
							 | 
						|||
| 
								 | 
							
								                        };
							 | 
						|||
| 
								 | 
							
								                if (q.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var wbsSet in q)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        AddWbsSetDetail(id, Convert.ToDateTime(wbsSet.Months), Convert.ToDecimal(wbsSet.PlanValue), Convert.ToDecimal(wbsSet.CompleteValue), Convert.ToDecimal(wbsSet.RealValue), 2);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (type == "unitProject")
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var q = from x in Funs.DB.WbsDetail
							 | 
						|||
| 
								 | 
							
								                        join y in Funs.DB.Wbs_WbsSet on x.ToWbs equals y.WbsSetId
							 | 
						|||
| 
								 | 
							
								                        where y.UnitProjectId == id && y.Flag == 1 && y.IsApprove == true
							 | 
						|||
| 
								 | 
							
								                        group new { x.PlanValue, x.CompleteValue, x.RealValue } by new { x.Months }
							 | 
						|||
| 
								 | 
							
								                            into g
							 | 
						|||
| 
								 | 
							
								                        select new
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Months = g.Key.Months,
							 | 
						|||
| 
								 | 
							
								                            PlanValue = g.Sum(x => x.PlanValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                            CompleteValue = g.Sum(x => x.CompleteValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                            RealValue = g.Sum(x => x.RealValue ?? 0)
							 | 
						|||
| 
								 | 
							
								                        };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                //  质量行为
							 | 
						|||
| 
								 | 
							
								                var z = from x in Funs.DB.WbsDetail
							 | 
						|||
| 
								 | 
							
								                        join y in Funs.DB.Wbs_WbsSet on x.ToWbs equals y.WbsSetId
							 | 
						|||
| 
								 | 
							
								                        where y.UnitProjectId == id && y.Flag == 3 && y.IsApprove == true
							 | 
						|||
| 
								 | 
							
								                        group new { x.PlanValue, x.CompleteValue, x.RealValue } by new { x.Months }
							 | 
						|||
| 
								 | 
							
								                            into g
							 | 
						|||
| 
								 | 
							
								                        select new
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Months = g.Key.Months,
							 | 
						|||
| 
								 | 
							
								                            PlanValue = g.Sum(x => x.PlanValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                            CompleteValue = g.Sum(x => x.CompleteValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                            RealValue = g.Sum(x => x.RealValue ?? 0)
							 | 
						|||
| 
								 | 
							
								                        };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                // 子单位工程
							 | 
						|||
| 
								 | 
							
								                var c = from x in Funs.DB.WbsDetail
							 | 
						|||
| 
								 | 
							
								                        join y in Funs.DB.Wbs_UnitProject on x.ToWbs equals y.UnitProjectId
							 | 
						|||
| 
								 | 
							
								                        where y.SuperUnitProjectId == id && y.IsApprove == true
							 | 
						|||
| 
								 | 
							
								                        group new { x.PlanValue, x.CompleteValue, x.RealValue } by new { y.SuperUnitProjectId, x.Months }
							 | 
						|||
| 
								 | 
							
								                            into g
							 | 
						|||
| 
								 | 
							
								                        select new
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            ToWbs = g.Key.SuperUnitProjectId,
							 | 
						|||
| 
								 | 
							
								                            Months = g.Key.Months,
							 | 
						|||
| 
								 | 
							
								                            PlanValue = g.Sum(x => x.PlanValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                            CompleteValue = g.Sum(x => x.CompleteValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                            RealValue = g.Sum(x => x.RealValue ?? 0)
							 | 
						|||
| 
								 | 
							
								                        };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (q.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var wbsSet in q)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        AddWbsSetDetail(id, Convert.ToDateTime(wbsSet.Months), Convert.ToDecimal(wbsSet.PlanValue), Convert.ToDecimal(wbsSet.CompleteValue), Convert.ToDecimal(wbsSet.RealValue), 3);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (z.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var wbsSet in z)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        AddWbsSetDetail(id, Convert.ToDateTime(wbsSet.Months), Convert.ToDecimal(wbsSet.PlanValue), Convert.ToDecimal(wbsSet.CompleteValue), Convert.ToDecimal(wbsSet.RealValue), 3);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (c.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var wbsSet in c)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        AddWbsSetDetail(id, Convert.ToDateTime(wbsSet.Months), Convert.ToDecimal(wbsSet.PlanValue), Convert.ToDecimal(wbsSet.CompleteValue), Convert.ToDecimal(wbsSet.RealValue), 3);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (type == "childUnitProject")
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var q = from x in Funs.DB.WbsDetail
							 | 
						|||
| 
								 | 
							
								                        join y in Funs.DB.Wbs_WbsSet on x.ToWbs equals y.WbsSetId
							 | 
						|||
| 
								 | 
							
								                        where y.UnitProjectId == id && y.Flag == 1 && y.IsApprove == true
							 | 
						|||
| 
								 | 
							
								                        group new { x.PlanValue, x.CompleteValue, x.RealValue } by new { x.Months }
							 | 
						|||
| 
								 | 
							
								                            into g
							 | 
						|||
| 
								 | 
							
								                        select new
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Months = g.Key.Months,
							 | 
						|||
| 
								 | 
							
								                            PlanValue = g.Sum(x => x.PlanValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                            CompleteValue = g.Sum(x => x.CompleteValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                            RealValue = g.Sum(x => x.RealValue ?? 0)
							 | 
						|||
| 
								 | 
							
								                        };
							 | 
						|||
| 
								 | 
							
								                if (q.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var wbsSet in q)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        AddWbsSetDetail(id, Convert.ToDateTime(wbsSet.Months), Convert.ToDecimal(wbsSet.PlanValue), Convert.ToDecimal(wbsSet.CompleteValue), Convert.ToDecimal(wbsSet.RealValue), 3);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (type == "wbsSet")
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var q = from x in Funs.DB.WbsDetail
							 | 
						|||
| 
								 | 
							
								                        join y in Funs.DB.Wbs_WbsSet on x.ToWbs equals y.WbsSetId
							 | 
						|||
| 
								 | 
							
								                        where y.SuperWbsSetId == id && y.IsApprove == true
							 | 
						|||
| 
								 | 
							
								                        group new { x.PlanValue, x.CompleteValue, x.RealValue } by new { x.Months }
							 | 
						|||
| 
								 | 
							
								                            into g
							 | 
						|||
| 
								 | 
							
								                        select new
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Months = g.Key.Months,
							 | 
						|||
| 
								 | 
							
								                            PlanValue = g.Sum(x => x.PlanValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                            CompleteValue = g.Sum(x => x.CompleteValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                            RealValue = g.Sum(x => x.RealValue ?? 0)
							 | 
						|||
| 
								 | 
							
								                        };
							 | 
						|||
| 
								 | 
							
								                if (q.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var wbsSet in q)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        AddWbsSetDetail(id, Convert.ToDateTime(wbsSet.Months), Convert.ToDecimal(wbsSet.PlanValue), Convert.ToDecimal(wbsSet.CompleteValue), Convert.ToDecimal(wbsSet.RealValue), 4);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region  自动审核设置装置末级分项计划值
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 自动审核设置装置末级分项计划值
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void btnAuditPlan_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (this.trWBS.SelectedNode != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                if (this.trWBS.SelectedNode.CommandName == "installation")
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (!IsWeightAudit(this.trWBS.SelectedNodeID))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        Alert.ShowInTop("该装置下有未审核的权重设置!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                        return;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (!IsWeightAudit(this.trWBS.SelectedNodeID))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        Alert.ShowInTop("该装置下有权重设置为0或负数!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                        return;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    var cnProfessions = from x in Funs.DB.WBS_CnProfession where x.InstallationId == this.trWBS.SelectedNodeID orderby x.OldId select x;
							 | 
						|||
| 
								 | 
							
								                    foreach (var cnProfession in cnProfessions)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var wbsSets = from x in Funs.DB.Wbs_WbsSet where x.IsApprove == true && x.CnProfessionId == cnProfession.CnProfessionId select x;
							 | 
						|||
| 
								 | 
							
								                        foreach (var wbsSet in wbsSets)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            DateTime startDate, endDate, startMonth, endMonth, parentStartDate, parentEndDate, parentStartMonth, parentEndMonth;
							 | 
						|||
| 
								 | 
							
								                            List<DateTime> months = new List<DateTime>();
							 | 
						|||
| 
								 | 
							
								                            string column0 = string.Empty;
							 | 
						|||
| 
								 | 
							
								                            decimal totalValue = 0, totalRate = 0;
							 | 
						|||
| 
								 | 
							
								                            var childWbsSets = BLL.WbsSetService.GetApproveWbsSetsBySuperWbsSetId(wbsSet.WbsSetId);
							 | 
						|||
| 
								 | 
							
								                            if (childWbsSets.Count() == 0)   //当前为末级
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                BLL.WbsSetService.UpdateWbsSetIsPlanApprove(wbsSet, true);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                                startDate = Convert.ToDateTime(wbsSet.StartDate);
							 | 
						|||
| 
								 | 
							
								                                endDate = Convert.ToDateTime(wbsSet.EndDate);
							 | 
						|||
| 
								 | 
							
								                                startMonth = Convert.ToDateTime(startDate.Year + "-" + startDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                                endMonth = Convert.ToDateTime(endDate.Year + "-" + endDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                                do
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    months.Add(startMonth);
							 | 
						|||
| 
								 | 
							
								                                    startMonth = startMonth.AddMonths(1);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                while (startMonth <= endMonth);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                                //获取父级节点的月份集合
							 | 
						|||
| 
								 | 
							
								                                List<DateTime> parentMonths = new List<DateTime>();   //父级节点的月份集合
							 | 
						|||
| 
								 | 
							
								                                string parentId = wbsSet.SuperWbsSetId;
							 | 
						|||
| 
								 | 
							
								                                Model.Wbs_WbsSet parentWbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(parentId);
							 | 
						|||
| 
								 | 
							
								                                if (parentWbsSet != null)  //父级为分部
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    parentStartDate = Convert.ToDateTime(parentWbsSet.StartDate);
							 | 
						|||
| 
								 | 
							
								                                    parentEndDate = Convert.ToDateTime(parentWbsSet.EndDate);
							 | 
						|||
| 
								 | 
							
								                                    parentStartMonth = Convert.ToDateTime(parentStartDate.Year + "-" + parentStartDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                                    parentEndMonth = Convert.ToDateTime(parentEndDate.Year + "-" + parentEndDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                                    do
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        parentMonths.Add(parentStartMonth);
							 | 
						|||
| 
								 | 
							
								                                        parentStartMonth = parentStartMonth.AddMonths(1);
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                    while (parentStartMonth <= parentEndMonth);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else    //父级为质量行为
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    Model.Wbs_UnitProject unitProject = BLL.UnitProjectService.GetUnitProjectByUnitProjectId(parentId);
							 | 
						|||
| 
								 | 
							
								                                    if (unitProject != null)
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        parentStartDate = Convert.ToDateTime(unitProject.StartDate);
							 | 
						|||
| 
								 | 
							
								                                        parentEndDate = Convert.ToDateTime(unitProject.EndDate);
							 | 
						|||
| 
								 | 
							
								                                        parentStartMonth = Convert.ToDateTime(parentStartDate.Year + "-" + parentStartDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                                        parentEndMonth = Convert.ToDateTime(parentEndDate.Year + "-" + parentEndDate.Month + "-01");
							 | 
						|||
| 
								 | 
							
								                                        do
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            parentMonths.Add(parentStartMonth);
							 | 
						|||
| 
								 | 
							
								                                            parentStartMonth = parentStartMonth.AddMonths(1);
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                        while (parentStartMonth <= parentEndMonth);
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                for (int i = 0; i < months.Count; i++)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    Model.WbsDetail detail = BLL.WbsDetailService.GetWbsDetailByWbsFlagYearMonth(wbsSet.WbsSetId, 4, months[i]);
							 | 
						|||
| 
								 | 
							
								                                    if (detail == null)
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        Model.WbsDetail item = new Model.WbsDetail();
							 | 
						|||
| 
								 | 
							
								                                        item.WbsDetailId = SQLHelper.GetNewID(typeof(Model.WbsDetail));
							 | 
						|||
| 
								 | 
							
								                                        item.ToWbs = wbsSet.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                                        item.ToFlag = 4;   //分部分项
							 | 
						|||
| 
								 | 
							
								                                        item.Way = wbsSet.Way;
							 | 
						|||
| 
								 | 
							
								                                        item.Months = months[i];
							 | 
						|||
| 
								 | 
							
								                                        if (wbsSet.WeightsMoney != null)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            if (i == months.Count - 1)
							 | 
						|||
| 
								 | 
							
								                                            {
							 | 
						|||
| 
								 | 
							
								                                                decimal lastPlanValue = decimal.Round(Convert.ToDecimal(wbsSet.WeightsMoney - totalValue), 2);
							 | 
						|||
| 
								 | 
							
								                                                if (lastPlanValue >= 0)
							 | 
						|||
| 
								 | 
							
								                                                {
							 | 
						|||
| 
								 | 
							
								                                                    item.PlanValue = lastPlanValue;
							 | 
						|||
| 
								 | 
							
								                                                }
							 | 
						|||
| 
								 | 
							
								                                            }
							 | 
						|||
| 
								 | 
							
								                                            else
							 | 
						|||
| 
								 | 
							
								                                            {
							 | 
						|||
| 
								 | 
							
								                                                item.PlanValue = WbsDetailService.GetMonthPlanValueByMonthCountAndMonthNumAndWeightMonth(months.Count, i + 1, Convert.ToDecimal(wbsSet.WeightsMoney));
							 | 
						|||
| 
								 | 
							
								                                            }
							 | 
						|||
| 
								 | 
							
								                                            if (wbsSet.WeightsMoney != 0)
							 | 
						|||
| 
								 | 
							
								                                            {
							 | 
						|||
| 
								 | 
							
								                                                item.PlanValueRate = decimal.Round(Convert.ToDecimal(item.PlanValue / wbsSet.WeightsMoney * 100), 2);
							 | 
						|||
| 
								 | 
							
								                                            }
							 | 
						|||
| 
								 | 
							
								                                            else
							 | 
						|||
| 
								 | 
							
								                                            {
							 | 
						|||
| 
								 | 
							
								                                                item.PlanValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                                            }
							 | 
						|||
| 
								 | 
							
								                                            totalValue += item.PlanValue != null ? item.PlanValue.Value : 0;
							 | 
						|||
| 
								 | 
							
								                                            totalRate += item.PlanValueRate != null ? item.PlanValueRate.Value : 0;
							 | 
						|||
| 
								 | 
							
								                                            BLL.WbsDetailService.AddWbsDetail(item);
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                for (int i = 0; i < parentMonths.Count; i++)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    if (!months.Contains(parentMonths[i]))
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        Model.WbsDetail detail = (from x in Funs.DB.WbsDetail
							 | 
						|||
| 
								 | 
							
								                                                                  where x.ToWbs == wbsSet.WbsSetId && x.Months == parentMonths[i]
							 | 
						|||
| 
								 | 
							
								                                                                  select x).FirstOrDefault();
							 | 
						|||
| 
								 | 
							
								                                        if (detail == null)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            Model.WbsDetail item = new Model.WbsDetail();
							 | 
						|||
| 
								 | 
							
								                                            item.WbsDetailId = SQLHelper.GetNewID(typeof(Model.WbsDetail));
							 | 
						|||
| 
								 | 
							
								                                            item.ToWbs = wbsSet.WbsSetId;
							 | 
						|||
| 
								 | 
							
								                                            item.ToFlag = 4;   //分部分项
							 | 
						|||
| 
								 | 
							
								                                            item.Way = wbsSet.Way;
							 | 
						|||
| 
								 | 
							
								                                            item.Months = parentMonths[i];
							 | 
						|||
| 
								 | 
							
								                                            item.PlanValue = 0;
							 | 
						|||
| 
								 | 
							
								                                            item.PlanValueRate = 0;
							 | 
						|||
| 
								 | 
							
								                                            BLL.WbsDetailService.AddWbsDetail(item);
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    Alert.ShowInTop("自动分配计划值完成!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Alert.ShowInTop("请选择一个装置!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                    return;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Alert.ShowInTop("请选择装置!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 逐级向上合并计划明细
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 逐级向上合并计划明细
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="cnProfessionId"></param>
							 | 
						|||
| 
								 | 
							
								        private void MergeWbsSetDetail(string cnProfessionId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Model.SGGLDB db = Funs.DB;
							 | 
						|||
| 
								 | 
							
								            // 分部分项
							 | 
						|||
| 
								 | 
							
								            var wbsSetList4 = from x in db.WbsDetail
							 | 
						|||
| 
								 | 
							
								                              join y in db.Wbs_WbsSet on x.ToWbs equals y.WbsSetId
							 | 
						|||
| 
								 | 
							
								                              where y.CnProfessionId == cnProfessionId && y.Flag == 4 && y.IsApprove == true && y.SuperWbsSetId != null
							 | 
						|||
| 
								 | 
							
								                              group new { x.PlanValue, x.CompleteValue, x.RealValue } by new { y.SuperWbsSetId, x.Months }
							 | 
						|||
| 
								 | 
							
								                                  into g
							 | 
						|||
| 
								 | 
							
								                              select new
							 | 
						|||
| 
								 | 
							
								                              {
							 | 
						|||
| 
								 | 
							
								                                  ToWbs = g.Key.SuperWbsSetId,
							 | 
						|||
| 
								 | 
							
								                                  Months = g.Key.Months,
							 | 
						|||
| 
								 | 
							
								                                  PlanValue = g.Sum(x => x.PlanValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                  CompleteValue = g.Sum(x => x.CompleteValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                  RealValue = g.Sum(x => x.RealValue ?? 0)
							 | 
						|||
| 
								 | 
							
								                              };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (wbsSetList4.Count() > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                foreach (var wbsSet in wbsSetList4)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    AddWbsSetDetail(wbsSet.ToWbs, Convert.ToDateTime(wbsSet.Months), Convert.ToDecimal(wbsSet.PlanValue), Convert.ToDecimal(wbsSet.CompleteValue), Convert.ToDecimal(wbsSet.RealValue), 4);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            var wbsSetList3 = from x in db.WbsDetail
							 | 
						|||
| 
								 | 
							
								                              join y in db.Wbs_WbsSet on x.ToWbs equals y.WbsSetId
							 | 
						|||
| 
								 | 
							
								                              where y.CnProfessionId == cnProfessionId && y.Flag == 3 && y.IsApprove == true && y.SuperWbsSetId != null
							 | 
						|||
| 
								 | 
							
								                              group new { x.PlanValue, x.CompleteValue, x.RealValue } by new { y.SuperWbsSetId, x.Months }
							 | 
						|||
| 
								 | 
							
								                                  into g
							 | 
						|||
| 
								 | 
							
								                              select new
							 | 
						|||
| 
								 | 
							
								                              {
							 | 
						|||
| 
								 | 
							
								                                  ToWbs = g.Key.SuperWbsSetId,
							 | 
						|||
| 
								 | 
							
								                                  Months = g.Key.Months,
							 | 
						|||
| 
								 | 
							
								                                  PlanValue = g.Sum(x => x.PlanValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                  CompleteValue = g.Sum(x => x.CompleteValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                  RealValue = g.Sum(x => x.RealValue ?? 0)
							 | 
						|||
| 
								 | 
							
								                              };
							 | 
						|||
| 
								 | 
							
								            if (wbsSetList3.Count() > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                foreach (var wbsSet in wbsSetList3)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    AddWbsSetDetail(wbsSet.ToWbs, Convert.ToDateTime(wbsSet.Months), Convert.ToDecimal(wbsSet.PlanValue), Convert.ToDecimal(wbsSet.CompleteValue), Convert.ToDecimal(wbsSet.RealValue), 4);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            var wbsSetList2 = from x in db.WbsDetail
							 | 
						|||
| 
								 | 
							
								                              join y in db.Wbs_WbsSet on x.ToWbs equals y.WbsSetId
							 | 
						|||
| 
								 | 
							
								                              where y.CnProfessionId == cnProfessionId && y.Flag == 2 && y.IsApprove == true && y.SuperWbsSetId != null
							 | 
						|||
| 
								 | 
							
								                              group new { x.PlanValue, x.CompleteValue, x.RealValue } by new { y.SuperWbsSetId, x.Months }
							 | 
						|||
| 
								 | 
							
								                                  into g
							 | 
						|||
| 
								 | 
							
								                              select new
							 | 
						|||
| 
								 | 
							
								                              {
							 | 
						|||
| 
								 | 
							
								                                  ToWbs = g.Key.SuperWbsSetId,
							 | 
						|||
| 
								 | 
							
								                                  Months = g.Key.Months,
							 | 
						|||
| 
								 | 
							
								                                  PlanValue = g.Sum(x => x.PlanValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                  CompleteValue = g.Sum(x => x.CompleteValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                  RealValue = g.Sum(x => x.RealValue ?? 0)
							 | 
						|||
| 
								 | 
							
								                              };
							 | 
						|||
| 
								 | 
							
								            if (wbsSetList2.Count() > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                foreach (var wbsSet in wbsSetList2)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    AddWbsSetDetail(wbsSet.ToWbs, Convert.ToDateTime(wbsSet.Months), Convert.ToDecimal(wbsSet.PlanValue), Convert.ToDecimal(wbsSet.CompleteValue), Convert.ToDecimal(wbsSet.RealValue), 4);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            // 单位工程及子单位工程
							 | 
						|||
| 
								 | 
							
								            //质量行为
							 | 
						|||
| 
								 | 
							
								            var wbsSetList = from x in db.WbsDetail
							 | 
						|||
| 
								 | 
							
								                             join y in db.Wbs_WbsSet on x.ToWbs equals y.WbsSetId
							 | 
						|||
| 
								 | 
							
								                             join z in db.Wbs_UnitProject on y.UnitProjectId equals z.UnitProjectId
							 | 
						|||
| 
								 | 
							
								                             where y.CnProfessionId == cnProfessionId && y.IsApprove == true && y.Flag == 3 && y.SuperWbsSetId == null
							 | 
						|||
| 
								 | 
							
								                             group new { x.PlanValue, x.CompleteValue, x.RealValue } by new { z.UnitProjectId, x.Months }
							 | 
						|||
| 
								 | 
							
								                                 into g
							 | 
						|||
| 
								 | 
							
								                             select new
							 | 
						|||
| 
								 | 
							
								                             {
							 | 
						|||
| 
								 | 
							
								                                 ToWbs = g.Key.UnitProjectId,
							 | 
						|||
| 
								 | 
							
								                                 Months = g.Key.Months,
							 | 
						|||
| 
								 | 
							
								                                 PlanValue = g.Sum(x => x.PlanValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                 CompleteValue = g.Sum(x => x.CompleteValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                 RealValue = g.Sum(x => x.RealValue ?? 0)
							 | 
						|||
| 
								 | 
							
								                             };
							 | 
						|||
| 
								 | 
							
								            if (wbsSetList.Count() > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                foreach (var wbsSet in wbsSetList)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    AddWbsSetDetail(wbsSet.ToWbs, Convert.ToDateTime(wbsSet.Months), Convert.ToDecimal(wbsSet.PlanValue), Convert.ToDecimal(wbsSet.CompleteValue), Convert.ToDecimal(wbsSet.RealValue), 3);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            // 单位工程及子单位工程
							 | 
						|||
| 
								 | 
							
								            var wbsSetList1 = from x in db.WbsDetail
							 | 
						|||
| 
								 | 
							
								                              join y in db.Wbs_WbsSet on x.ToWbs equals y.WbsSetId
							 | 
						|||
| 
								 | 
							
								                              join z in db.Wbs_UnitProject on y.UnitProjectId equals z.UnitProjectId
							 | 
						|||
| 
								 | 
							
								                              where y.CnProfessionId == cnProfessionId && y.IsApprove == true && z.IsApprove == true && y.Flag == 1
							 | 
						|||
| 
								 | 
							
								                              group new { x.PlanValue, x.CompleteValue, x.RealValue } by new { z.UnitProjectId, x.Months }
							 | 
						|||
| 
								 | 
							
								                                  into g
							 | 
						|||
| 
								 | 
							
								                              select new
							 | 
						|||
| 
								 | 
							
								                              {
							 | 
						|||
| 
								 | 
							
								                                  ToWbs = g.Key.UnitProjectId,
							 | 
						|||
| 
								 | 
							
								                                  Months = g.Key.Months,
							 | 
						|||
| 
								 | 
							
								                                  PlanValue = g.Sum(x => x.PlanValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                  CompleteValue = g.Sum(x => x.CompleteValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                  RealValue = g.Sum(x => x.RealValue ?? 0)
							 | 
						|||
| 
								 | 
							
								                              };
							 | 
						|||
| 
								 | 
							
								            if (wbsSetList1.Count() > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                foreach (var wbsSet in wbsSetList1)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    AddWbsSetDetail(wbsSet.ToWbs, Convert.ToDateTime(wbsSet.Months), Convert.ToDecimal(wbsSet.PlanValue), Convert.ToDecimal(wbsSet.CompleteValue), Convert.ToDecimal(wbsSet.RealValue), 3);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            var wbsSetList0 = from x in db.WbsDetail
							 | 
						|||
| 
								 | 
							
								                              join y in db.Wbs_UnitProject on x.ToWbs equals y.UnitProjectId
							 | 
						|||
| 
								 | 
							
								                              //join z in db.Wbs_UnitProject on y.SuperUnitProjectId equals z.UnitProjectId
							 | 
						|||
| 
								 | 
							
								                              where y.CnProfessionId == cnProfessionId && y.IsApprove == true && y.SuperUnitProjectId != null
							 | 
						|||
| 
								 | 
							
								                              group new { x.PlanValue, x.CompleteValue, x.RealValue } by new { y.SuperUnitProjectId, x.Months }
							 | 
						|||
| 
								 | 
							
								                                  into g
							 | 
						|||
| 
								 | 
							
								                              select new
							 | 
						|||
| 
								 | 
							
								                              {
							 | 
						|||
| 
								 | 
							
								                                  ToWbs = g.Key.SuperUnitProjectId,
							 | 
						|||
| 
								 | 
							
								                                  Months = g.Key.Months,
							 | 
						|||
| 
								 | 
							
								                                  PlanValue = g.Sum(x => x.PlanValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                  CompleteValue = g.Sum(x => x.CompleteValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                  RealValue = g.Sum(x => x.RealValue ?? 0)
							 | 
						|||
| 
								 | 
							
								                              };
							 | 
						|||
| 
								 | 
							
								            if (wbsSetList0.Count() > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                foreach (var wbsSet in wbsSetList0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    AddWbsSetDetail(wbsSet.ToWbs, Convert.ToDateTime(wbsSet.Months), Convert.ToDecimal(wbsSet.PlanValue), Convert.ToDecimal(wbsSet.CompleteValue), Convert.ToDecimal(wbsSet.RealValue), 3);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            // 专业
							 | 
						|||
| 
								 | 
							
								            var wbsSetList5 = from x in db.WbsDetail
							 | 
						|||
| 
								 | 
							
								                              join y in db.Wbs_UnitProject on x.ToWbs equals y.UnitProjectId
							 | 
						|||
| 
								 | 
							
								                              join z in db.WBS_CnProfession on y.CnProfessionId equals z.CnProfessionId
							 | 
						|||
| 
								 | 
							
								                              where y.CnProfessionId == cnProfessionId && y.IsApprove == true && y.SuperUnitProjectId == null
							 | 
						|||
| 
								 | 
							
								                              group new { x.PlanValue, x.CompleteValue, x.RealValue } by new { z.CnProfessionId, x.Months }
							 | 
						|||
| 
								 | 
							
								                                  into g
							 | 
						|||
| 
								 | 
							
								                              select new
							 | 
						|||
| 
								 | 
							
								                              {
							 | 
						|||
| 
								 | 
							
								                                  ToWbs = g.Key.CnProfessionId,
							 | 
						|||
| 
								 | 
							
								                                  Months = g.Key.Months,
							 | 
						|||
| 
								 | 
							
								                                  PlanValue = g.Sum(x => x.PlanValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                  CompleteValue = g.Sum(x => x.CompleteValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                  RealValue = g.Sum(x => x.RealValue ?? 0)
							 | 
						|||
| 
								 | 
							
								                              };
							 | 
						|||
| 
								 | 
							
								            if (wbsSetList5.Count() > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                foreach (var wbsSet in wbsSetList5)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    AddWbsSetDetail(wbsSet.ToWbs, Convert.ToDateTime(wbsSet.Months), Convert.ToDecimal(wbsSet.PlanValue), Convert.ToDecimal(wbsSet.CompleteValue), Convert.ToDecimal(wbsSet.RealValue), 2);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private void AddWbsSetDetail(string toWbs, DateTime months, decimal planValue, decimal completeValue, decimal realValue, int toFlag)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            Model.SGGLDB db = Funs.DB;
							 | 
						|||
| 
								 | 
							
								            decimal? weight = null;
							 | 
						|||
| 
								 | 
							
								            if (toFlag == 4)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                weight = BLL.WbsSetService.GetWbsSetByWbsSetId(toWbs).WeightsMoney;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (toFlag == 3)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                weight = BLL.UnitProjectService.GetUnitProjectByUnitProjectId(toWbs).WeightsMoney;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (toFlag == 2)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                weight = BLL.CnProfessionService.GetCnProfessionByCnProfessionId(toWbs).WeightsMoney;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (toFlag == 1)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                weight = BLL.Project_InstallationService.GetInstallationByInstallationId(toWbs).WeightsMoney;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (BLL.WbsDetailService.IsExitWbsDetailByToWbsOrMonth(toWbs, toFlag, months))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                Model.WbsDetail updateDetail = (from x in db.WbsDetail where x.ToWbs == toWbs && x.Months == months && x.ToFlag == toFlag select x).FirstOrDefault();
							 | 
						|||
| 
								 | 
							
								                updateDetail.PlanValue = planValue;
							 | 
						|||
| 
								 | 
							
								                updateDetail.CompleteValue = completeValue;
							 | 
						|||
| 
								 | 
							
								                updateDetail.RealValue = realValue;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (weight != null && weight != 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    updateDetail.PlanValueRate = decimal.Round(Convert.ToDecimal(planValue) / Convert.ToDecimal(weight) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                    updateDetail.CompleteValueRate = decimal.Round(Convert.ToDecimal(completeValue) / Convert.ToDecimal(weight) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                    updateDetail.RealValueRate = decimal.Round(Convert.ToDecimal(realValue) / Convert.ToDecimal(weight) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Model.WbsDetail newDetail = new Model.WbsDetail();
							 | 
						|||
| 
								 | 
							
								                newDetail.WbsDetailId = SQLHelper.GetNewID(typeof(Model.WbsDetail));
							 | 
						|||
| 
								 | 
							
								                newDetail.ToWbs = toWbs;
							 | 
						|||
| 
								 | 
							
								                newDetail.ToFlag = toFlag;
							 | 
						|||
| 
								 | 
							
								                newDetail.Way = "A";
							 | 
						|||
| 
								 | 
							
								                newDetail.Months = months;
							 | 
						|||
| 
								 | 
							
								                newDetail.PlanValue = planValue;
							 | 
						|||
| 
								 | 
							
								                if (weight != null && weight != 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    newDetail.PlanValueRate = decimal.Round(Convert.ToDecimal(planValue) / Convert.ToDecimal(weight) * 100, 2);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                newDetail.CompleteValue = 0;
							 | 
						|||
| 
								 | 
							
								                newDetail.RealValue = 0;
							 | 
						|||
| 
								 | 
							
								                db.WbsDetail.InsertOnSubmit(newDetail);
							 | 
						|||
| 
								 | 
							
								                db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 一键保存
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 一键保存
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void btnSaveInstrallion_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (this.trWBS.SelectedNode != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                if (this.trWBS.SelectedNode.CommandName == "installation")
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    string installationId = this.trWBS.SelectedNodeID;
							 | 
						|||
| 
								 | 
							
								                    if (!IsWeightAudit(installationId))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        Alert.ShowInTop("该装置下有未审核的权重设置!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                        return;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    //专业
							 | 
						|||
| 
								 | 
							
								                    var profession = BLL.CnProfessionService.GetCnProfessionByInstallation(installationId);
							 | 
						|||
| 
								 | 
							
								                    foreach (var pro in profession)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        MergeWbsSetDetail(pro.CnProfessionId);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    var insList = from x in Funs.DB.WbsDetail
							 | 
						|||
| 
								 | 
							
								                                  join y in Funs.DB.WBS_CnProfession on x.ToWbs equals y.CnProfessionId
							 | 
						|||
| 
								 | 
							
								                                  where y.InstallationId == installationId
							 | 
						|||
| 
								 | 
							
								                                  group new { x.PlanValue, x.CompleteValue, x.RealValue } by new { y.InstallationId, x.Months }
							 | 
						|||
| 
								 | 
							
								                                      into g
							 | 
						|||
| 
								 | 
							
								                                  select new
							 | 
						|||
| 
								 | 
							
								                                  {
							 | 
						|||
| 
								 | 
							
								                                      ToWbs = g.Key.InstallationId,
							 | 
						|||
| 
								 | 
							
								                                      Months = g.Key.Months,
							 | 
						|||
| 
								 | 
							
								                                      PlanValue = g.Sum(x => x.PlanValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                      CompleteValue = g.Sum(x => x.CompleteValue ?? 0),
							 | 
						|||
| 
								 | 
							
								                                      RealValue = g.Sum(x => x.RealValue ?? 0)
							 | 
						|||
| 
								 | 
							
								                                  };
							 | 
						|||
| 
								 | 
							
								                    if (insList.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        foreach (var ins in insList)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            AddWbsSetDetail(ins.ToWbs, Convert.ToDateTime(ins.Months), Convert.ToDecimal(ins.PlanValue), Convert.ToDecimal(ins.CompleteValue), Convert.ToDecimal(ins.RealValue), 1);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    Alert.ShowInTop("一键保存成功!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Alert.ShowInTop("请选择一个装置!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                    return;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Alert.ShowInTop("请选择装置!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |