568 lines
24 KiB
C#
568 lines
24 KiB
C#
using BLL;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
|
|
namespace FineUIPro.Web.ProjectData
|
|
{
|
|
public partial class UnitWork : PageBase
|
|
{
|
|
#region 页面加载
|
|
/// <summary>
|
|
/// 页面加载
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
GetButtonPower();
|
|
InitTreeMenu();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 获取按钮权限
|
|
/// <summary>
|
|
/// 获取按钮权限
|
|
/// </summary>
|
|
/// <param name="button"></param>
|
|
/// <returns></returns>
|
|
private void GetButtonPower()
|
|
{
|
|
if (Request.Params["value"] == "0")
|
|
{
|
|
return;
|
|
}
|
|
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.UnitWorkMenuId);
|
|
if (buttonList.Count() > 0)
|
|
{
|
|
if (buttonList.Contains(BLL.Const.BtnAdd))
|
|
{
|
|
this.btnMenuAdd.Hidden = false;
|
|
}
|
|
if (buttonList.Contains(BLL.Const.BtnModify))
|
|
{
|
|
this.btnMenuEdit.Hidden = false;
|
|
}
|
|
if (buttonList.Contains(BLL.Const.BtnDelete))
|
|
{
|
|
this.btnMenuDelete.Hidden = false;
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 加载树
|
|
/// <summary>
|
|
/// 加载树
|
|
/// </summary>
|
|
private void InitTreeMenu()
|
|
{
|
|
this.trProjects.Nodes.Clear();
|
|
this.trProjects.ShowBorder = false;
|
|
this.trProjects.ShowHeader = false;
|
|
this.trProjects.EnableIcons = true;
|
|
this.trProjects.AutoScroll = true;
|
|
this.trProjects.EnableSingleClickExpand = true;
|
|
Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
|
|
if (project != null)
|
|
{
|
|
TreeNode node = new TreeNode();
|
|
node.Text = project.ProjectName;
|
|
node.NodeID = project.ProjectId;
|
|
node.CommandName = "project";
|
|
node.EnableClickEvent = true;
|
|
node.EnableExpandEvent = true;
|
|
this.trProjects.Nodes.Add(node);
|
|
TreeNode emptyNode = new TreeNode();
|
|
emptyNode.Text = "";
|
|
emptyNode.NodeID = "";
|
|
node.Nodes.Add(emptyNode);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 展开树
|
|
/// <summary>
|
|
/// 展开树
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void trProjects_NodeExpand(object sender, TreeNodeEventArgs e)
|
|
{
|
|
e.Node.Nodes.Clear();
|
|
if (e.Node.CommandName == "project") //展开项目节点
|
|
{
|
|
var unitWorks = from x in Funs.DB.WBS_UnitWork
|
|
where x.ProjectId == e.Node.NodeID && (x.SuperUnitWork == null || x.SuperUnitWork == "0")
|
|
orderby x.UnitWorkCode
|
|
select x;
|
|
foreach (var unitWork in unitWorks)
|
|
{
|
|
TreeNode newNode = new TreeNode();
|
|
newNode.Text = unitWork.UnitWorkName;
|
|
newNode.NodeID = unitWork.UnitWorkId;
|
|
newNode.CommandName = "unitWork";
|
|
newNode.EnableExpandEvent = true;
|
|
newNode.EnableClickEvent = true;
|
|
e.Node.Nodes.Add(newNode);
|
|
var installation2s = from x in Funs.DB.WBS_UnitWork where x.SuperUnitWork == unitWork.UnitWorkId orderby x.UnitWorkCode select x;
|
|
if (installation2s.Count() > 0)
|
|
{
|
|
TreeNode emptyNode = new TreeNode();
|
|
emptyNode.Text = "";
|
|
emptyNode.NodeID = "";
|
|
newNode.Nodes.Add(emptyNode);
|
|
}
|
|
}
|
|
}
|
|
else if (e.Node.CommandName == "unitWork") //展开装置/单元节点
|
|
{
|
|
var unitWorks = from x in Funs.DB.WBS_UnitWork
|
|
where x.SuperUnitWork == e.Node.NodeID
|
|
orderby x.UnitWorkCode
|
|
select x;
|
|
foreach (var unitWork in unitWorks)
|
|
{
|
|
TreeNode newNode = new TreeNode();
|
|
newNode.Text = unitWork.UnitWorkName;
|
|
newNode.NodeID = unitWork.UnitWorkId;
|
|
newNode.CommandName = "unitWork";
|
|
newNode.EnableExpandEvent = true;
|
|
newNode.EnableClickEvent = true;
|
|
e.Node.Nodes.Add(newNode);
|
|
var installation3s = from x in Funs.DB.WBS_UnitWork where x.SuperUnitWork == unitWork.UnitWorkId orderby x.UnitWorkCode select x;
|
|
if (installation3s.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 trProjects_NodeCommand(object sender, TreeCommandEventArgs e)
|
|
{
|
|
if (this.Grid1.Rows.Count > 0)
|
|
{
|
|
SaveData();
|
|
}
|
|
BindGrid();
|
|
}
|
|
#endregion
|
|
|
|
#region 保存方法
|
|
/// <summary>
|
|
/// 保存方法
|
|
/// </summary>
|
|
private void SaveData()
|
|
{
|
|
//string rowId = this.Grid1.Rows[0].RowID;
|
|
//string type = this.Grid1.Rows[0].Values[4].ToString();
|
|
|
|
//if (type == "unitProject")
|
|
//{
|
|
// Model.Wbs_UnitProjectInit unitProject = BLL.UnitProjectInitService.GetUnitProjectInitByUnitProjectCode(rowId);
|
|
// if (unitProject != null)
|
|
// {
|
|
// BLL.UnitProjectInitService.UpdateUnitProjectInit(unitProject);
|
|
// }
|
|
//}
|
|
//else if (type == "wbsSet")
|
|
//{
|
|
// Model.WBS_WbsSetInit wbsSet = BLL.WbsSetInitService.GetWbsSetInitByWbsSetCode(rowId);
|
|
// if (wbsSet != null)
|
|
// {
|
|
// var childWbsSets = BLL.WbsSetInitService.GetWbsSetInitsBySuperWbsSetCode(this.trProjects.SelectedNodeID);
|
|
// //wbsSet.StartDate = Convert.ToDateTime(this.Grid1.Rows[0].Values[2].ToString());
|
|
// //wbsSet.EndDate = Convert.ToDateTime(this.Grid1.Rows[0].Values[3].ToString());
|
|
// BLL.WbsSetInitService.UpdateWbsSetInit(wbsSet);
|
|
// }
|
|
//}
|
|
}
|
|
#endregion
|
|
|
|
#region 修改关闭窗口
|
|
/// <summary>
|
|
/// 关闭窗口
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Window1_Close(object sender, WindowCloseEventArgs e)
|
|
{
|
|
ShowNotify("修改成功!", MessageBoxIcon.Success);
|
|
|
|
getWBSSet();
|
|
}
|
|
#endregion
|
|
|
|
#region 拷贝关闭窗口
|
|
/// <summary>
|
|
/// 拷贝关闭窗口
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Window2_Close(object sender, WindowCloseEventArgs e)
|
|
{
|
|
ShowNotify("增加成功!", MessageBoxIcon.Success);
|
|
|
|
getWBSSet();
|
|
}
|
|
#endregion
|
|
|
|
#region 右键增加、修改、删除方法
|
|
/// <summary>
|
|
/// 右键修改事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnMenuEdit_Click(object sender, EventArgs e)
|
|
{
|
|
if (this.trProjects.SelectedNode != null && this.trProjects.SelectedNode.CommandName != "project")
|
|
{
|
|
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.UnitWorkMenuId, BLL.Const.BtnModify))
|
|
{
|
|
this.hdSelectId.Text = this.trProjects.SelectedNode.NodeID;
|
|
var unitWork = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(this.hdSelectId.Text);
|
|
if (unitWork!=null)
|
|
{
|
|
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("UnitWorkEdit.aspx?Id={0}&&SuperId={1}", this.trProjects.SelectedNode.NodeID,unitWork.SuperUnitWork, "编辑 - ")));
|
|
}
|
|
else
|
|
{
|
|
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("UnitWorkEdit.aspx?Id={0}", this.trProjects.SelectedNode.NodeID, "编辑 - ")));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ShowNotify("项目节点无法修改!", MessageBoxIcon.Warning);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 增加
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnMenuAdd_Click(object sender, EventArgs e)
|
|
{
|
|
if (this.trProjects.SelectedNode != null)
|
|
{
|
|
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.UnitWorkMenuId, BLL.Const.BtnAdd))
|
|
{
|
|
string id = this.trProjects.SelectedNode.NodeID;
|
|
|
|
if (id != null)
|
|
{
|
|
var unitWork = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(id);
|
|
if (unitWork != null)
|
|
{
|
|
string openUrl = String.Format("UnitWorkEdit.aspx?SuperId={0}", this.trProjects.SelectedNode.NodeID, "增加 - ");
|
|
PageContext.RegisterStartupScript(Window2.GetSaveStateReference(hdSelectId.ClientID)
|
|
+ Window2.GetShowReference(openUrl));
|
|
}
|
|
else
|
|
{
|
|
string openUrl = String.Format("UnitWorkEdit.aspx", "增加 - ");
|
|
PageContext.RegisterStartupScript(Window2.GetSaveStateReference(hdSelectId.ClientID)
|
|
+ Window2.GetShowReference(openUrl));
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 右键删除事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnMenuDelete_Click(object sender, EventArgs e)
|
|
{
|
|
if (this.trProjects.SelectedNode != null)
|
|
{
|
|
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.UnitWorkMenuId, BLL.Const.BtnDelete))
|
|
{
|
|
if (this.trProjects.SelectedNode.CommandName != "project") //非专业节点可以删除
|
|
{
|
|
string id = this.trProjects.SelectedNode.NodeID;
|
|
Model.WBS_UnitWork unitWork = BLL.UnitWorkService.getUnitWorkByUnitWorkId(id);
|
|
if (unitWork.SuperUnitWork == "0") //删除一级装置
|
|
{
|
|
BLL.UnitWorkService.DeleteUnitWorkById(id);
|
|
var unitWork2s = from x in Funs.DB.WBS_UnitWork where x.SuperUnitWork == id select x;
|
|
foreach (var unitWork2 in unitWork2s)
|
|
{
|
|
BLL.UnitWorkService.DeleteUnitWorkById(unitWork2.UnitWorkId);
|
|
var unitWork3s = from x in Funs.DB.WBS_UnitWork where x.SuperUnitWork == unitWork2.UnitWorkId select x;
|
|
foreach (var unitWork3 in unitWork3s)
|
|
{
|
|
BLL.UnitWorkService.DeleteUnitWorkById(unitWork3.UnitWorkId);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Model.WBS_UnitWork unitWork2 = BLL.UnitWorkService.getUnitWorkByUnitWorkId(id);
|
|
Model.WBS_UnitWork unitWork1 = BLL.UnitWorkService.getUnitWorkByUnitWorkId(unitWork2.SuperUnitWork);
|
|
if (unitWork1.SuperUnitWork == "0") //删除二级装置
|
|
{
|
|
BLL.UnitWorkService.DeleteUnitWorkById(id);
|
|
var unitWork3s = from x in Funs.DB.WBS_UnitWork where x.SuperUnitWork == id select x;
|
|
foreach (var unitWork3 in unitWork3s)
|
|
{
|
|
BLL.UnitWorkService.DeleteUnitWorkById(unitWork3.UnitWorkId);
|
|
}
|
|
}
|
|
else //删除二级装置
|
|
{
|
|
BLL.UnitWorkService.DeleteUnitWorkById(id);
|
|
}
|
|
}
|
|
ShowNotify("删除成功!", MessageBoxIcon.Success);
|
|
InitTreeMenu();
|
|
}
|
|
else
|
|
{
|
|
ShowNotify("项目节点无法删除!", MessageBoxIcon.Warning);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
|
|
}
|
|
}
|
|
#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>
|
|
/// 分页下拉选择事件
|
|
/// </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()
|
|
{
|
|
List<Model.UnitWork> items = new List<Model.UnitWork>();
|
|
if (this.trProjects.SelectedNode != null)
|
|
{
|
|
if (this.trProjects.SelectedNode.CommandName == "unitWork")
|
|
{
|
|
Model.WBS_UnitWork unitWork = BLL.UnitWorkService.getUnitWorkByUnitWorkId(this.trProjects.SelectedNode.NodeID);
|
|
if (unitWork != null)
|
|
{
|
|
Model.UnitWork item = new Model.UnitWork();
|
|
if (unitWork.SuperUnitWork == "0")
|
|
{
|
|
item.UnitWorkId = unitWork.UnitWorkId;
|
|
item.SupUnitWorkCode = unitWork.UnitWorkCode;
|
|
item.SupUnitWorkName = unitWork.UnitWorkName;
|
|
items.Add(item);
|
|
}
|
|
else
|
|
{
|
|
item.UnitWorkId = unitWork.UnitWorkId;
|
|
var supUnitWork = BLL.UnitWorkService.getUnitWorkByUnitWorkId(unitWork.SuperUnitWork);
|
|
if (supUnitWork != null)
|
|
{
|
|
item.SupUnitWorkCode = supUnitWork.UnitWorkCode;
|
|
item.SupUnitWorkName = supUnitWork.UnitWorkName;
|
|
}
|
|
item.UnitWorkCode = unitWork.UnitWorkCode;
|
|
item.UnitWorkName = unitWork.UnitWorkName;
|
|
items.Add(item);
|
|
}
|
|
}
|
|
}
|
|
this.Grid1.DataSource = items;
|
|
this.Grid1.DataBind();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 根据所给Id定位到对应装置
|
|
/// <summary>
|
|
/// 根据所给Id定位到对应装置
|
|
/// </summary>
|
|
private void getWBSSet()
|
|
{
|
|
string unitWorkId = string.Empty;
|
|
string pUnitWorkId = string.Empty;
|
|
string ppUnitWorkId = string.Empty;
|
|
string projectId = this.CurrUser.LoginProjectId;
|
|
string id = this.hdSelectId.Text;
|
|
Model.WBS_UnitWork installation = BLL.UnitWorkService.getUnitWorkByUnitWorkId(id);
|
|
if (installation.SuperUnitWork == "0") //一级装置
|
|
{
|
|
ppUnitWorkId = id;
|
|
}
|
|
else
|
|
{
|
|
if (BLL.UnitWorkService.IsCanAddUnitWork(id)) //二级装置
|
|
{
|
|
pUnitWorkId = id;
|
|
ppUnitWorkId = installation.SuperUnitWork;
|
|
}
|
|
else //三级装置
|
|
{
|
|
unitWorkId = id;
|
|
pUnitWorkId = installation.SuperUnitWork;
|
|
Model.WBS_UnitWork pInstallation = BLL.UnitWorkService.getUnitWorkByUnitWorkId(installation.SuperUnitWork);
|
|
if (pInstallation != null)
|
|
{
|
|
ppUnitWorkId = pInstallation.SuperUnitWork;
|
|
}
|
|
}
|
|
}
|
|
this.trProjects.Nodes.Clear();
|
|
this.trProjects.ShowBorder = false;
|
|
this.trProjects.ShowHeader = false;
|
|
this.trProjects.EnableIcons = true;
|
|
this.trProjects.AutoScroll = true;
|
|
this.trProjects.EnableSingleClickExpand = true;
|
|
Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
|
|
if (project != null)
|
|
{
|
|
TreeNode node = new TreeNode();
|
|
node.Text = project.ProjectName;
|
|
node.NodeID = project.ProjectId;
|
|
node.EnableClickEvent = true;
|
|
this.trProjects.Nodes.Add(node);
|
|
node.Expanded = true;
|
|
var unitWork1s = from x in Funs.DB.WBS_UnitWork
|
|
where x.ProjectId == projectId && x.SuperUnitWork == "0"
|
|
orderby x.UnitWorkCode
|
|
select x;
|
|
foreach (var unitWork1 in unitWork1s)
|
|
{
|
|
TreeNode newNode1 = new TreeNode();
|
|
newNode1.Text = unitWork1.UnitWorkName;
|
|
newNode1.NodeID = unitWork1.UnitWorkId;
|
|
newNode1.CommandName = "unitWork";
|
|
newNode1.EnableExpandEvent = true;
|
|
newNode1.EnableClickEvent = true;
|
|
node.Nodes.Add(newNode1);
|
|
if (unitWork1.UnitWorkId == ppUnitWorkId)
|
|
{
|
|
newNode1.Expanded = true;
|
|
var unitWork2s = from x in Funs.DB.WBS_UnitWork where x.SuperUnitWork == unitWork1.SuperUnitWork orderby x.UnitWorkCode select x;
|
|
foreach (var unitWork2 in unitWork2s)
|
|
{
|
|
TreeNode newNode2 = new TreeNode();
|
|
newNode2.Text = unitWork2.UnitWorkName;
|
|
newNode2.NodeID = unitWork2.UnitWorkId;
|
|
newNode2.CommandName = "unitWork";
|
|
newNode2.EnableExpandEvent = true;
|
|
newNode2.EnableClickEvent = true;
|
|
newNode1.Nodes.Add(newNode2);
|
|
if (unitWork2.UnitWorkId == pUnitWorkId)
|
|
{
|
|
newNode2.Expanded = true;
|
|
var unitWork3s = from x in Funs.DB.WBS_UnitWork where x.SuperUnitWork == unitWork2.UnitWorkId orderby x.UnitWorkCode select x;
|
|
foreach (var unitWork3 in unitWork3s)
|
|
{
|
|
TreeNode newNode3 = new TreeNode();
|
|
newNode3.Text = unitWork3.UnitWorkName;
|
|
newNode3.NodeID = unitWork3.UnitWorkId;
|
|
newNode3.CommandName = "unitWork";
|
|
newNode3.EnableExpandEvent = true;
|
|
newNode3.EnableClickEvent = true;
|
|
newNode2.Nodes.Add(newNode3);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (BLL.UnitWorkService.IsExitsUnitWorkBySuperUnitWork(unitWork2.UnitWorkId))
|
|
{
|
|
TreeNode emptyNode = new TreeNode();
|
|
emptyNode.Text = "";
|
|
emptyNode.NodeID = "";
|
|
newNode2.Nodes.Add(emptyNode);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (BLL.UnitWorkService.IsExitsUnitWorkBySuperUnitWork(unitWork1.UnitWorkId))
|
|
{
|
|
TreeNode emptyNode = new TreeNode();
|
|
emptyNode.Text = "";
|
|
emptyNode.NodeID = "";
|
|
newNode1.Nodes.Add(emptyNode);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.trProjects.SelectedNodeID = this.hdSelectId.Text;
|
|
BindGrid();
|
|
}
|
|
#endregion
|
|
}
|
|
} |