xinjiang/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitSet.aspx.cs

665 lines
28 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using BLL;
using System.IO;
using System.Data.SqlClient;
namespace FineUIPro.Web.CQMS.WBS
{
public partial class ControlItemInitSet : 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>
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 workPackages = from x in Funs.DB.WBS_WorkPackageInit where x.ProjectType == e.NodeID && x.SuperWorkPack == null orderby x.WorkPackageCode select x;
foreach (var workPackage in workPackages)
{
TreeNode newNode = new TreeNode();
newNode.Text = workPackage.PackageContent;
newNode.NodeID = workPackage.WorkPackageCode;
newNode.CommandName = "WorkPackage";
newNode.EnableExpandEvent = true;
newNode.EnableClickEvent = true;
e.Node.Nodes.Add(newNode);
var childWorkPackages = from x in Funs.DB.WBS_WorkPackageInit where x.SuperWorkPack == workPackage.WorkPackageCode 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_WorkPackageInit where x.SuperWorkPack == e.Node.NodeID 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.WorkPackageCode;
newNode.CommandName = "WorkPackage";
newNode.EnableExpandEvent = true;
newNode.EnableClickEvent = true;
e.Node.Nodes.Add(newNode);
var childWorkPackages = from x in Funs.DB.WBS_WorkPackageInit where x.SuperWorkPack == workPackage.WorkPackageCode 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
/// <summary>
/// 关闭窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
ShowNotify("修改成功!", MessageBoxIcon.Success);
GetSelectTreeNode();
}
#endregion
#region
/// <summary>
/// 增加关闭窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window2_Close(object sender, WindowCloseEventArgs e)
{
ShowNotify("增加成功!", MessageBoxIcon.Success);
GetSelectTreeNode();
}
#endregion
#region
/// <summary>
/// 关闭窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window3_Close(object sender, WindowCloseEventArgs e)
{
ShowNotify("保存成功!", MessageBoxIcon.Success);
BindGrid();
}
#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)
{
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.ControlItemInitSetMenuId, BLL.Const.BtnModify))
{
if (this.trWBS.SelectedNode.CommandName != "ProjectType") //非工程类型节点可以修改
{
this.hdSelectId.Text = this.trWBS.SelectedNode.NodeID;
string openUrl = String.Format("WorkPackageInitEdit.aspx?type=modify&Id={0}", this.trWBS.SelectedNode.NodeID, "编辑 - ");
PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hdSelectId.ClientID)
+ Window1.GetShowReference(openUrl));
}
else
{
ShowNotify("工程类型节点无法修改!", MessageBoxIcon.Warning);
}
}
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.trWBS.SelectedNode != null)
{
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.ControlItemInitSetMenuId, BLL.Const.BtnAdd))
{
if (this.trWBS.SelectedNode.CommandName != "ProjectType") //非工程类型节点可以增加
{
Model.WBS_WorkPackageInit workPackageInit = BLL.WorkPackageInitService.GetWorkPackageInitByWorkPackageCode(this.trWBS.SelectedNodeID);
if (workPackageInit.IsChild == true)
{
string openUrl = String.Format("WorkPackageInitEdit.aspx?type=add&Id={0}", this.trWBS.SelectedNode.NodeID, "增加 - ");
PageContext.RegisterStartupScript(Window2.GetSaveStateReference(hdSelectId.ClientID)
+ Window2.GetShowReference(openUrl));
}
//PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("WBSSetCopy.aspx?Id={0}&Type={1}", this.trWBS.SelectedNode.NodeID, this.trWBS.SelectedNode.CommandName, "拷贝 - ")));
else
{
ShowNotify("已是末级,无法添加子级节点!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("工程类型节点无法增加!", MessageBoxIcon.Warning);
}
}
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.trWBS.SelectedNode != null)
{
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.ControlItemInitSetMenuId, BLL.Const.BtnDelete))
{
if (this.trWBS.SelectedNode.CommandName != "ProjectType") //非工程类型节点可以删除
{
DeleteData();
}
else
{
ShowNotify("工程类型节点无法删除!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
}
}
/// <summary>
/// 删除方法
/// </summary>
private void DeleteData()
{
string id = this.trWBS.SelectedNodeID;
this.hdSelectId.Text = this.trWBS.SelectedNode.ParentNode.NodeID;
if (this.trWBS.SelectedNode.CommandName == "WorkPackage")
{
Model.WBS_WorkPackageInit workPackageInit = BLL.WorkPackageInitService.GetWorkPackageInitByWorkPackageCode(id);
if (workPackageInit != null)
{
List<Model.WBS_WorkPackageInit> childWorkPackageInits1 = BLL.WorkPackageInitService.GetWorkPackageInitsBySuperWorkPack(id);
if (childWorkPackageInits1.Count > 0) //存在子分部分项
{
this.hdSelectId.Text = workPackageInit.WorkPackageCode;
foreach (var childWorkPackageInit1 in childWorkPackageInits1)
{
List<Model.WBS_WorkPackageInit> childWorkPackageInits2 = BLL.WorkPackageInitService.GetWorkPackageInitsBySuperWorkPack(childWorkPackageInit1.WorkPackageCode);
if (childWorkPackageInits2.Count > 0)
{
foreach (var childWorkPackageInit2 in childWorkPackageInits2)
{
BLL.ControlItemInitService.DeleteAllControlItemInit(childWorkPackageInit2.WorkPackageCode);
BLL.WorkPackageInitService.DeleteWorkPackageInit(childWorkPackageInit2.WorkPackageCode);
}
}
BLL.ControlItemInitService.DeleteAllControlItemInit(childWorkPackageInit1.WorkPackageCode);
BLL.WorkPackageInitService.DeleteWorkPackageInit(childWorkPackageInit1.WorkPackageCode);
}
}
BLL.ControlItemInitService.DeleteAllControlItemInit(id);
BLL.WorkPackageInitService.DeleteWorkPackageInit(id);
}
}
BLL.LogService.AddSys_Log(this.CurrUser, id, id, BLL.Const.ControlItemInitSetMenuId, "删除分部分项信息!");
ShowNotify("删除成功!", MessageBoxIcon.Success);
GetSelectTreeNode();
}
#endregion
/// <summary>
/// 增加
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
if (this.trWBS.SelectedNode != null)
{
if (this.trWBS.SelectedNode.CommandName != "ProjectType") //非工程类型节点可以增加
{
Model.WBS_WorkPackageInit workPackageInit = BLL.WorkPackageInitService.GetWorkPackageInitByWorkPackageCode(this.trWBS.SelectedNodeID);
if (workPackageInit.IsChild == false)
{
//string openUrl = String.Format("ControlItemInitEdit.aspx?type=add&WorkPackageCode={0}", this.trWBS.SelectedNode.NodeID, "增加 - ");
//PageContext.RegisterStartupScript(Window3.GetSaveStateReference(hdSelectId.ClientID)
// + Window2.GetShowReference(openUrl));
PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("ControlItemInitEdit.aspx?type=add&WorkPackageCode={0}", this.trWBS.SelectedNode.NodeID, "新增 - ")));
}
else
{
ShowNotify("不是末级,无法添加工作包!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("工程类型节点无法增加工作包!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
}
}
#region Grid双击事件
/// <summary>
/// Grid行双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
btnMenuModify_Click(null, null);
}
#endregion
#region
/// <summary>
/// 编辑按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuModify_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("ControlItemInitEdit.aspx?type=modify&ControlItemCode={0}&WorkPackageCode={1}", this.Grid1.SelectedRowID, this.trWBS.SelectedNodeID, "新增 - ")));
}
#endregion
#region
/// <summary>
/// 删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDel_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
BLL.ControlItemInitService.DeleteControlItemInit(Grid1.SelectedRowID);
BLL.LogService.AddSys_Log(this.CurrUser, Grid1.SelectedRowID, Grid1.SelectedRowID, BLL.Const.ControlItemInitSetMenuId, "删除工作包");
Grid1.DataBind();
BindGrid();
Alert.ShowInTop("删除数据成功!", MessageBoxIcon.Success);
}
#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()
{
string strSql = @"SELECT ControlItemCode,WorkPackageCode,ControlItemContent,ControlPoint,ControlItemDef,Weights,HGForms,SHForms,Standard,ClauseNo"
+ @" FROM WBS_ControlItemInit ";
List<SqlParameter> listStr = new List<SqlParameter>();
strSql += " where WorkPackageCode = @WorkPackageCode";
listStr.Add(new SqlParameter("@WorkPackageCode", this.trWBS.SelectedNodeID));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
Model.WBS_WorkPackageInit workPackageInit = BLL.WorkPackageInitService.GetWorkPackageInitByWorkPackageCode(this.trWBS.SelectedNodeID);
if (workPackageInit != null)
{
if (workPackageInit.ProjectType == "1") //建筑工程
{
this.Grid1.Columns[4].HeaderText = "对应的建筑资料表格";
this.Grid1.Columns[5].Hidden = true;
}
else //安装工程
{
this.Grid1.Columns[4].HeaderText = "对应的化工资料表格";
this.Grid1.Columns[5].Hidden = false;
}
}
}
#endregion
#region Id定位到对应分部分项
/// <summary>
/// 根据所给Id定位到对应具体的工程类型、单位工程、子单位工程、分部、子分部、分项、子分项
/// </summary>
private void GetSelectTreeNode()
{
string projectType = string.Empty;
string workPackageCode1 = string.Empty;
string workPackageCode2 = string.Empty;
Model.WBS_WorkPackageInit workPackageInit = BLL.WorkPackageInitService.GetWorkPackageInitByWorkPackageCode(this.hdSelectId.Text);
if (workPackageInit.SuperWorkPack == null) //选中第一级分部分项
{
projectType = workPackageInit.ProjectType;
}
else
{
Model.WBS_WorkPackageInit pWorkPackageInit = BLL.WorkPackageInitService.GetWorkPackageInitByWorkPackageCode(workPackageInit.SuperWorkPack);
{
if (pWorkPackageInit.SuperWorkPack == null) //选中第二级分部分项
{
projectType = pWorkPackageInit.ProjectType;
workPackageCode1 = pWorkPackageInit.WorkPackageCode;
}
else
{
Model.WBS_WorkPackageInit ppWorkPackageInit = BLL.WorkPackageInitService.GetWorkPackageInitByWorkPackageCode(pWorkPackageInit.SuperWorkPack);
projectType = ppWorkPackageInit.ProjectType;
workPackageCode1 = ppWorkPackageInit.WorkPackageCode;
workPackageCode2 = pWorkPackageInit.WorkPackageCode;
}
}
}
//重新加载树
this.trWBS.Nodes.Clear();
this.trWBS.ShowBorder = false;
this.trWBS.ShowHeader = false;
this.trWBS.EnableIcons = true;
this.trWBS.AutoScroll = true;
this.trWBS.EnableSingleClickExpand = true;
List<ListItem> list = new List<ListItem>();
ListItem item1 = new ListItem();
item1.Text = "建筑工程";
item1.Value = "1";
list.Add(item1);
ListItem item2 = new ListItem();
item2.Text = "安装工程";
item2.Value = "2";
list.Add(item2);
foreach (var item in list)
{
TreeNode rootNode = new TreeNode();
rootNode.Text = item.Text;
rootNode.NodeID = item.Value;
rootNode.CommandName = "ProjectType";
rootNode.EnableExpandEvent = true;
rootNode.EnableClickEvent = true;
this.trWBS.Nodes.Add(rootNode);
if (rootNode.NodeID == projectType)
{
rootNode.Expanded = true;
var workPackages1 = from x in Funs.DB.WBS_WorkPackageInit where x.ProjectType == projectType && x.SuperWorkPack == null orderby x.WorkPackageCode select x;
foreach (var workPackage1 in workPackages1)
{
TreeNode newNode = new TreeNode();
newNode.Text = workPackage1.PackageContent;
newNode.NodeID = workPackage1.WorkPackageCode;
newNode.CommandName = "WorkPackage";
newNode.EnableExpandEvent = true;
newNode.EnableClickEvent = true;
rootNode.Nodes.Add(newNode);
if (workPackageCode1 == workPackage1.WorkPackageCode)
{
newNode.Expanded = true;
var workPackages2 = from x in Funs.DB.WBS_WorkPackageInit where x.ProjectType == projectType && x.SuperWorkPack == workPackage1.WorkPackageCode orderby x.WorkPackageCode select x;
foreach (var workPackage2 in workPackages2)
{
TreeNode newNode2 = new TreeNode();
newNode2.Text = workPackage2.PackageContent;
newNode2.NodeID = workPackage2.WorkPackageCode;
newNode2.CommandName = "WorkPackage";
newNode2.EnableExpandEvent = true;
newNode2.EnableClickEvent = true;
newNode.Nodes.Add(newNode2);
if (workPackageCode2 == workPackage2.WorkPackageCode)
{
newNode2.Expanded = true;
var workPackages3 = from x in Funs.DB.WBS_WorkPackageInit where x.ProjectType == projectType && x.SuperWorkPack == workPackage2.WorkPackageCode orderby x.WorkPackageCode select x;
foreach (var workPackage3 in workPackages3)
{
TreeNode newNode3 = new TreeNode();
newNode3.Text = workPackage3.PackageContent;
newNode3.NodeID = workPackage3.WorkPackageCode;
newNode3.CommandName = "WorkPackage";
newNode3.EnableExpandEvent = true;
newNode3.EnableClickEvent = true;
newNode2.Nodes.Add(newNode3);
}
}
else
{
var childWorkPackages2 = from x in Funs.DB.WBS_WorkPackageInit where x.SuperWorkPack == workPackage2.WorkPackageCode select x;
if (childWorkPackages2.Count() > 0)
{
TreeNode emptyNode = new TreeNode();
emptyNode.Text = "";
emptyNode.NodeID = "";
newNode.Nodes.Add(emptyNode);
}
}
}
}
else
{
var childWorkPackages1 = from x in Funs.DB.WBS_WorkPackageInit where x.SuperWorkPack == workPackage1.WorkPackageCode select x;
if (childWorkPackages1.Count() > 0)
{
TreeNode emptyNode = new TreeNode();
emptyNode.Text = "";
emptyNode.NodeID = "";
newNode.Nodes.Add(emptyNode);
}
}
}
}
else
{
TreeNode emptyNode = new TreeNode();
emptyNode.Text = "";
emptyNode.NodeID = "";
rootNode.Nodes.Add(emptyNode);
}
this.trWBS.SelectedNodeID = this.hdSelectId.Text;
//BindGrid();
}
}
#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.ControlItemInitSetMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnAdd))
{
this.btnNew.Hidden = false;
this.btnMenuAdd.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnModify))
{
this.btnMenuEdit.Hidden = false;
this.btnMenuModify.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnDelete))
{
this.btnMenuDelete.Hidden = false;
this.btnMenuDel.Hidden = false;
}
}
}
#endregion
}
}