319 lines
13 KiB
C#
319 lines
13 KiB
C#
using BLL;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.Linq;
|
|
using AspNet = System.Web.UI.WebControls;
|
|
|
|
namespace FineUIPro.Web.DigData
|
|
{
|
|
public partial class ShowProjectWBSPackage : PageBase
|
|
{
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public string ProjectId
|
|
{
|
|
get
|
|
{
|
|
return (string)ViewState["ProjectId"];
|
|
}
|
|
set
|
|
{
|
|
ViewState["ProjectId"] = value;
|
|
}
|
|
}
|
|
|
|
#region 页面加载
|
|
/// <summary>
|
|
/// 页面加载
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
this.ProjectId = this.CurrUser.LoginProjectId;
|
|
InitTreeMenu();
|
|
}
|
|
}
|
|
#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;
|
|
|
|
TreeNode rootNode1 = new TreeNode();
|
|
rootNode1.Text = "建筑工程";
|
|
rootNode1.NodeID = "1";
|
|
rootNode1.CommandName = "ProjectType";
|
|
rootNode1.EnableExpandEvent = true;
|
|
rootNode1.EnableClickEvent = true;
|
|
this.trWBS.Nodes.Add(rootNode1);
|
|
TreeNode emptyNode = new TreeNode();
|
|
emptyNode.Text = "";
|
|
emptyNode.NodeID = "";
|
|
rootNode1.Nodes.Add(emptyNode);
|
|
|
|
TreeNode rootNode2 = new TreeNode();
|
|
rootNode2.Text = "安装工程";
|
|
rootNode2.NodeID = "2";
|
|
rootNode2.CommandName = "ProjectType";
|
|
rootNode2.EnableExpandEvent = true;
|
|
rootNode2.EnableClickEvent = true;
|
|
this.trWBS.Nodes.Add(rootNode2);
|
|
rootNode2.Nodes.Add(emptyNode);
|
|
}
|
|
#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 == "ProjectType") //展开工程类型
|
|
{
|
|
var trUnitWork = from x in Funs.DB.WBS_UnitWork
|
|
where x.ProjectId == this.ProjectId && x.SuperUnitWork == null && x.ProjectType == e.Node.NodeID
|
|
select x;
|
|
trUnitWork = trUnitWork.OrderBy(x => x.UnitWorkCode);
|
|
if (trUnitWork.Count() > 0)
|
|
{
|
|
foreach (var trUnitWorkItem in trUnitWork)
|
|
{
|
|
TreeNode newNode = new TreeNode();
|
|
string uweights = string.Empty;
|
|
if (trUnitWorkItem.Weights != null)
|
|
{
|
|
uweights = "(" + Convert.ToDouble(trUnitWorkItem.Weights).ToString() + "%)";
|
|
}
|
|
newNode.Text = trUnitWorkItem.UnitWorkCode + "-" + trUnitWorkItem.UnitWorkName + uweights;
|
|
newNode.NodeID = trUnitWorkItem.UnitWorkId;
|
|
newNode.CommandName = "UnitWork";
|
|
newNode.EnableExpandEvent = true;
|
|
newNode.EnableClickEvent = true;
|
|
e.Node.Nodes.Add(newNode);
|
|
if (BLL.WorkPackageService.GetWorkPackages1ByUnitWorkId(trUnitWorkItem.UnitWorkId.ToString()) != null)
|
|
{
|
|
TreeNode temp = new TreeNode();
|
|
temp.Text = "temp";
|
|
temp.NodeID = "temp";
|
|
newNode.Nodes.Add(temp);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if (e.Node.CommandName == "UnitWork") //展开单位工程节点
|
|
{
|
|
var workPackages = from x in Funs.DB.WBS_WorkPackage where x.UnitWorkId == e.NodeID && x.SuperWorkPack == null && x.IsApprove == true orderby x.WorkPackageCode select x;
|
|
foreach (var workPackage in workPackages)
|
|
{
|
|
TreeNode newNode = new TreeNode();
|
|
string weights = string.Empty;
|
|
if (workPackage.Weights != null)
|
|
{
|
|
weights = "(" + Convert.ToDouble(workPackage.Weights).ToString() + "%)";
|
|
}
|
|
newNode.Text = workPackage.PackageContent + weights;
|
|
newNode.NodeID = workPackage.WorkPackageId;
|
|
newNode.ToolTip = "[" + workPackage.InitWorkPackageCode + "]";
|
|
newNode.CommandName = "WorkPackage";
|
|
newNode.EnableExpandEvent = true;
|
|
newNode.EnableClickEvent = true;
|
|
e.Node.Nodes.Add(newNode);
|
|
var childWorkPackages = from x in Funs.DB.WBS_WorkPackage where x.SuperWorkPackageId == workPackage.WorkPackageId && x.IsApprove == true select x;
|
|
if (childWorkPackages.Count() > 0)
|
|
{
|
|
TreeNode emptyNode = new TreeNode();
|
|
emptyNode.Text = "";
|
|
emptyNode.NodeID = "";
|
|
newNode.Nodes.Add(emptyNode);
|
|
}
|
|
}
|
|
}
|
|
else if (e.Node.CommandName == "WorkPackage") //展开工作包节点
|
|
{
|
|
var workPackages = from x in Funs.DB.WBS_WorkPackage where x.SuperWorkPackageId == e.Node.NodeID && x.IsApprove == true orderby x.WorkPackageCode select x;
|
|
if (workPackages.Count() > 0) //存在子单位工程
|
|
{
|
|
foreach (var workPackage in workPackages)
|
|
{
|
|
TreeNode newNode = new TreeNode();
|
|
string weights = string.Empty;
|
|
if (workPackage.Weights != null)
|
|
{
|
|
weights = "(" + Convert.ToDouble(workPackage.Weights).ToString() + "%)";
|
|
}
|
|
newNode.Text = workPackage.PackageContent + weights;
|
|
newNode.NodeID = workPackage.WorkPackageId;
|
|
newNode.ToolTip = "[" + workPackage.InitWorkPackageCode + "]";
|
|
newNode.CommandName = "WorkPackage";
|
|
newNode.EnableExpandEvent = true;
|
|
newNode.EnableClickEvent = true;
|
|
e.Node.Nodes.Add(newNode);
|
|
var childWorkPackages = from x in Funs.DB.WBS_WorkPackage where x.SuperWorkPackageId == workPackage.WorkPackageId && x.IsApprove == true select x;
|
|
if (childWorkPackages.Count() > 0)
|
|
{
|
|
TreeNode emptyNode = new TreeNode();
|
|
emptyNode.Text = "";
|
|
emptyNode.NodeID = "";
|
|
newNode.Nodes.Add(emptyNode);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region Tree点击事件
|
|
/// <summary>
|
|
/// Tree点击事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void trWBS_NodeCommand(object sender, TreeCommandEventArgs e)
|
|
{
|
|
BindGrid();
|
|
}
|
|
#endregion
|
|
|
|
#region 绑定数据
|
|
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)
|
|
{
|
|
BindGrid();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分页下拉选择事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
|
|
BindGrid();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 加载Grid
|
|
/// </summary>
|
|
private void BindGrid()
|
|
{
|
|
string strSql = @"SELECT ControlItemAndCycleId,ControlItemAndCycleCode,InitControlItemCode,PlanCompleteDate,ControlItemContent,ControlPoint,ControlItemDef,Weights,HGForms,SHForms,Standard,ClauseNo,CheckNum"
|
|
+ @" FROM WBS_ControlItemAndCycle ";
|
|
List<SqlParameter> listStr = new List<SqlParameter>();
|
|
strSql += " where WorkPackageId = @WorkPackageId and IsApprove=1 ";
|
|
listStr.Add(new SqlParameter("@WorkPackageId", this.trWBS.SelectedNodeID));
|
|
SqlParameter[] parameter = listStr.ToArray();
|
|
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
|
|
|
|
Grid1.RecordCount = tb.Rows.Count;
|
|
var table = this.GetPagedDataTable(Grid1, tb);
|
|
Grid1.DataSource = table;
|
|
Grid1.DataBind();
|
|
}
|
|
#endregion
|
|
|
|
#region 保存事件
|
|
/// <summary>
|
|
/// 保存
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnSave_Click(object sender, EventArgs e)
|
|
{
|
|
///Type1|fda5ce7d-1d97-469c-9f43-9f7b2ec35ba8|000441b4-a471-4d1e-b851-19c950a5b61a[68]|ae650220-309f-42d4-acdc-6de91c9ec758[6801]&建筑工程|082-全场道路|道路|路基工程定位测量放线$24f40e7c-0b86-44b1-a498-08174113c36a
|
|
///返回 树 父节点ID+[初始WBS主键]+"|" +节点ID+[初始WBS主键]+"&"+树父节点名称+"|"+ 节点名称+"|"+ 工作包名称+"$"+工作包ID
|
|
|
|
string selectValues = string.Empty;
|
|
if (!string.IsNullOrEmpty(this.Grid1.SelectedRowID) && this.trWBS.SelectedNode != null)
|
|
{
|
|
var getC = Funs.DB.WBS_ControlItemAndCycle.FirstOrDefault(x => x.ControlItemAndCycleId == this.Grid1.SelectedRowID);
|
|
if (getC != null)
|
|
{
|
|
selectValues = getSelectIds(this.trWBS.SelectedNode, this.trWBS.SelectedNodeID + this.trWBS.SelectedNode.ToolTip) + "&" + getSelectNames(this.trWBS.SelectedNode, this.trWBS.SelectedNode.Text) + getC .ControlItemContent+ "$" + this.Grid1.SelectedRowID;
|
|
}
|
|
PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(selectValues) + ActiveWindow.GetHidePostBackReference());
|
|
}
|
|
else
|
|
{
|
|
Alert.ShowInParent("请选择工作包!", MessageBoxIcon.Warning);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// id
|
|
/// </summary>
|
|
/// <param name="node"></param>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
private string getSelectIds(TreeNode node, string id)
|
|
{
|
|
if (node.ParentNode != null)
|
|
{
|
|
if (node.ParentNode.NodeID == "1" || node.ParentNode.NodeID == "2")
|
|
{
|
|
id = "Type" + node.ParentNode.NodeID + "|" + id;
|
|
}
|
|
else
|
|
{
|
|
id = getSelectIds(node.ParentNode, node.ParentNode.NodeID + node.ParentNode.ToolTip + "|" + id);
|
|
}
|
|
}
|
|
|
|
return id;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 名称
|
|
/// </summary>
|
|
/// <param name="node"></param>
|
|
/// <param name="name"></param>
|
|
/// <returns></returns>
|
|
private string getSelectNames(TreeNode node, string name)
|
|
{
|
|
if (node.ParentNode != null)
|
|
{
|
|
if (node.ParentNode.NodeID == "1" || node.ParentNode.NodeID == "2")
|
|
{
|
|
name = node.ParentNode.Text + "|" + name;
|
|
}
|
|
else
|
|
{
|
|
name = getSelectNames(node.ParentNode, node.ParentNode.Text + "|" + name);
|
|
}
|
|
}
|
|
|
|
return name;
|
|
}
|
|
}
|
|
} |