2023-08-24 10:59:39 +08:00
|
|
|
|
using BLL;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Data;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
|
|
|
|
|
|
namespace FineUIPro.Web.Controls
|
|
|
|
|
|
{
|
|
|
|
|
|
public partial class ProjectWBSControl : System.Web.UI.UserControl
|
|
|
|
|
|
{
|
|
|
|
|
|
#region 自定义项
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 主键
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string WorkPackageId
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return (string)ViewState["WorkPackageId"];
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
ViewState["WorkPackageId"] = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-09-15 10:27:20 +08:00
|
|
|
|
public bool IsShowLevel
|
|
|
|
|
|
{
|
|
|
|
|
|
get;
|
|
|
|
|
|
set;
|
|
|
|
|
|
} = true;
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-08-24 10:59:39 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目ID
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string ProjectId
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return (string)ViewState["ProjectId"];
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
ViewState["ProjectId"] = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 加载页面
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 加载页面
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!IsPostBack)
|
2023-09-15 10:27:20 +08:00
|
|
|
|
{
|
|
|
|
|
|
this.Toolbar1.Hidden = !IsShowLevel;
|
2023-08-24 10:59:39 +08:00
|
|
|
|
////加载树
|
|
|
|
|
|
SetSubUnitProjectTree(this.trWBS);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
///
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
|
protected void trWBS_NodeCommand(object sender, TreeCommandEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (this.trWBS != null && !string.IsNullOrEmpty(this.trWBS.SelectedNodeID))
|
|
|
|
|
|
{
|
|
|
|
|
|
this.WorkPackageId = this.trWBS.SelectedNodeID;
|
|
|
|
|
|
if (this.change != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.change(this, e);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public delegate void userEvent(object sender, EventArgs arg);
|
|
|
|
|
|
|
|
|
|
|
|
public event userEvent change;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 绑定分公司 单位-项目树
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 绑定分公司 单位-项目树
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="trWBS"></param>
|
|
|
|
|
|
/// <param name="CurrUser"></param>
|
|
|
|
|
|
public void SetSubUnitProjectTree(FineUIPro.Tree trWBS)
|
|
|
|
|
|
{
|
|
|
|
|
|
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);
|
|
|
|
|
|
//this.GetNodes(rootNode1.Nodes, rootNode1.NodeID);
|
|
|
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
|
newNode.Text = trUnitWorkItem.UnitWorkCode + "-" + trUnitWorkItem.UnitWorkName;
|
|
|
|
|
|
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();
|
|
|
|
|
|
newNode.Text = workPackage.PackageContent;
|
|
|
|
|
|
newNode.NodeID = workPackage.WorkPackageId;
|
|
|
|
|
|
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();
|
|
|
|
|
|
newNode.Text = workPackage.PackageContent;
|
|
|
|
|
|
newNode.NodeID = workPackage.WorkPackageId;
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
protected void ckState_SelectedIndexChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
////加载树
|
|
|
|
|
|
SetSubUnitProjectTree(this.trWBS);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|