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;
using Newtonsoft.Json.Linq;
using AspNet = System.Web.UI.WebControls;
namespace FineUIPro.Web.CQMS.WBS
{
public partial class ProjectControlItemInitSet : PageBase
{
#region 页面加载
///
/// 页面加载
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (!BLL.WorkPackageProjectService.IsExitWorkPackageProject(this.CurrUser.LoginProjectId))
{
//拷贝项目WBS数据
var workPackageInits = from x in Funs.DB.WBS_WorkPackageInit select x;
foreach (var workPackageInit in workPackageInits)
{
Model.WBS_WorkPackageProject workPackageProject = new Model.WBS_WorkPackageProject();
workPackageProject.WorkPackageCode = workPackageInit.WorkPackageCode;
workPackageProject.ProjectId = this.CurrUser.LoginProjectId;
workPackageProject.ProjectType = workPackageInit.ProjectType;
workPackageProject.PackageContent = workPackageInit.PackageContent;
workPackageProject.SuperWorkPack = workPackageInit.SuperWorkPack;
workPackageProject.IsChild = workPackageInit.IsChild;
workPackageProject.PackageCode = workPackageInit.PackageCode;
workPackageProject.ProjectType = workPackageInit.ProjectType;
BLL.WorkPackageProjectService.AddWorkPackageProject(workPackageProject);
}
var controlItemInits = from x in Funs.DB.WBS_ControlItemInit select x;
foreach (var controlItemInit in controlItemInits)
{
Model.WBS_ControlItemProject controlItemProject = new Model.WBS_ControlItemProject();
controlItemProject.ControlItemCode = controlItemInit.ControlItemCode;
controlItemProject.ProjectId = this.CurrUser.LoginProjectId;
controlItemProject.WorkPackageCode = controlItemInit.WorkPackageCode;
controlItemProject.ControlItemContent = controlItemInit.ControlItemContent;
controlItemProject.ControlPoint = controlItemInit.ControlPoint;
controlItemProject.ControlItemDef = controlItemInit.ControlItemDef;
controlItemProject.Weights = controlItemInit.Weights;
controlItemProject.HGForms = controlItemInit.HGForms;
controlItemProject.SHForms = controlItemInit.SHForms;
controlItemProject.Standard = controlItemInit.Standard;
controlItemProject.ClauseNo = controlItemInit.ClauseNo;
controlItemProject.CheckNum = 1;
BLL.ControlItemProjectService.AddControlItemProject(controlItemProject);
}
}
GetButtonPower();
InitTreeMenu();
}
}
#endregion
#region 加载树
///
/// 加载树
///
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);
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);
this.GetNodes(rootNode2.Nodes, rootNode2.NodeID);
}
#region 遍历节点方法
///
/// 遍历节点方法
///
/// 节点集合
/// 父节点
private void GetNodes(TreeNodeCollection nodes, string parentId)
{
List workPackages = new List();
if (parentId.Length == 1) //工程类型节点
{
workPackages = (from x in Funs.DB.WBS_WorkPackageProject
where x.SuperWorkPack == null && x.ProjectId == this.CurrUser.LoginProjectId && x.ProjectType == parentId
orderby x.PackageCode ascending
select x).ToList();
}
else
{
workPackages = (from x in Funs.DB.WBS_WorkPackageProject
where x.SuperWorkPack == parentId && x.ProjectId == this.CurrUser.LoginProjectId
orderby x.PackageCode ascending
select x).ToList();
}
foreach (var q in workPackages)
{
TreeNode newNode = new TreeNode();
newNode.Text = q.PackageContent;
newNode.NodeID = q.WorkPackageCode;
newNode.CommandName = "WorkPackage";
newNode.EnableClickEvent = true;
nodes.Add(newNode);
}
for (int i = 0; i < nodes.Count; i++)
{
GetNodes(nodes[i].Nodes, nodes[i].NodeID);
}
}
#endregion
#endregion
#region 展开树
///
/// 展开树
///
///
///
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_WorkPackageProject 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_WorkPackageProject 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_WorkPackageProject 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_WorkPackageProject 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点击事件
///
/// Tree点击事件
///
///
///
protected void trWBS_NodeCommand(object sender, TreeCommandEventArgs e)
{
this.cbAllHGForms.Checked = false;
this.cbAllSHForms.Checked = false;
BindGrid();
}
#endregion
#region 修改关闭窗口
///
/// 关闭窗口
///
///
///
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
ShowNotify("修改成功!", MessageBoxIcon.Success);
GetSelectTreeNode();
}
#endregion
#region 增加关闭窗口
///
/// 增加关闭窗口
///
///
///
protected void Window2_Close(object sender, WindowCloseEventArgs e)
{
ShowNotify("增加成功!", MessageBoxIcon.Success);
GetSelectTreeNode();
}
#endregion
#region 关闭窗口
///
/// 关闭窗口
///
///
///
protected void Window3_Close(object sender, WindowCloseEventArgs e)
{
ShowNotify("保存成功!", MessageBoxIcon.Success);
BindGrid();
}
#endregion
#region 右键增加、修改、删除方法
///
/// 右键修改事件
///
///
///
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.ControlItemProjectSetMenuId, BLL.Const.BtnModify))
{
if (this.trWBS.SelectedNode.CommandName != "ProjectType") //非工程类型节点可以修改
{
this.hdSelectId.Text = this.trWBS.SelectedNode.NodeID;
string openUrl = String.Format("WorkPackageProjectEdit.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);
}
}
///
/// 增加
///
///
///
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.ControlItemProjectSetMenuId, BLL.Const.BtnAdd))
{
if (this.trWBS.SelectedNode.CommandName != "ProjectType") //非工程类型节点可以增加
{
Model.WBS_WorkPackageProject workPackageProject = BLL.WorkPackageProjectService.GetWorkPackageProjectByWorkPackageCode(this.trWBS.SelectedNodeID, this.CurrUser.LoginProjectId);
if (workPackageProject.IsChild == true)
{
string openUrl = String.Format("WorkPackageProjectEdit.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);
}
}
///
/// 右键删除事件
///
///
///
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.ControlItemProjectSetMenuId, BLL.Const.BtnDelete))
{
if (this.trWBS.SelectedNode.CommandName != "ProjectType") //非工程类型节点可以删除
{
string id = this.trWBS.SelectedNodeID;
var workPackage = Funs.DB.WBS_WorkPackage.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.InitWorkPackageCode == this.trWBS.SelectedNodeID);
if (workPackage != null)
{
ShowNotify("WBS定制中已使用该数据,无法删除!", MessageBoxIcon.Warning);
}
else
{
DeleteData();
}
}
else
{
ShowNotify("工程类型节点无法删除!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
}
}
///
/// 删除方法
///
private void DeleteData()
{
string id = this.trWBS.SelectedNodeID;
this.hdSelectId.Text = this.trWBS.SelectedNode.ParentNode.NodeID;
if (this.trWBS.SelectedNode.CommandName == "WorkPackage")
{
Model.WBS_WorkPackageProject workPackageProject = BLL.WorkPackageProjectService.GetWorkPackageProjectByWorkPackageCode(id, this.CurrUser.LoginProjectId);
if (workPackageProject != null)
{
List childWorkPackageProjects1 = BLL.WorkPackageProjectService.GetWorkPackageProjectsBySuperWorkPack(id, this.CurrUser.LoginProjectId);
if (childWorkPackageProjects1.Count > 0) //存在子分部分项
{
this.hdSelectId.Text = workPackageProject.WorkPackageCode;
foreach (var childWorkPackageProject1 in childWorkPackageProjects1)
{
List childWorkPackageProjects2 = BLL.WorkPackageProjectService.GetWorkPackageProjectsBySuperWorkPack(childWorkPackageProject1.WorkPackageCode, this.CurrUser.LoginProjectId);
if (childWorkPackageProjects2.Count > 0)
{
foreach (var childWorkPackageProject2 in childWorkPackageProjects2)
{
BLL.ControlItemProjectService.DeleteAllControlItemProject(childWorkPackageProject2.WorkPackageCode, this.CurrUser.LoginProjectId);
BLL.WorkPackageProjectService.DeleteWorkPackageProject(childWorkPackageProject2.WorkPackageCode, this.CurrUser.LoginProjectId);
}
}
BLL.ControlItemProjectService.DeleteAllControlItemProject(childWorkPackageProject1.WorkPackageCode, this.CurrUser.LoginProjectId);
BLL.WorkPackageProjectService.DeleteWorkPackageProject(childWorkPackageProject1.WorkPackageCode, this.CurrUser.LoginProjectId);
}
}
BLL.ControlItemProjectService.DeleteAllControlItemProject(id, this.CurrUser.LoginProjectId);
BLL.WorkPackageProjectService.DeleteWorkPackageProject(id, this.CurrUser.LoginProjectId);
}
}
BLL.LogService.AddSys_Log(this.CurrUser, id, id, BLL.Const.ControlItemProjectSetMenuId, "删除分部分项信息!");
ShowNotify("删除成功!", MessageBoxIcon.Success);
GetSelectTreeNode();
}
#endregion
///
/// 增加
///
///
///
protected void btnNew_Click(object sender, EventArgs e)
{
if (this.trWBS.SelectedNode != null)
{
if (this.trWBS.SelectedNode.CommandName != "ProjectType") //非工程类型节点可以增加
{
Model.WBS_WorkPackageProject workPackageProject = BLL.WorkPackageProjectService.GetWorkPackageProjectByWorkPackageCode(this.trWBS.SelectedNodeID, this.CurrUser.LoginProjectId);
if (workPackageProject.IsChild == false)
{
//string openUrl = String.Format("ControlItemProjectEdit.aspx?type=add&WorkPackageCode={0}", this.trWBS.SelectedNode.NodeID, "增加 - ");
//PageContext.RegisterStartupScript(Window3.GetSaveStateReference(hdSelectId.ClientID)
// + Window2.GetShowReference(openUrl));
PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("ControlItemProjectEdit.aspx?type=add&WorkPackageCode={0}", this.trWBS.SelectedNode.NodeID, "新增 - ")));
}
else
{
ShowNotify("不是末级,无法添加工作包!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("工程类型节点无法增加工作包!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
}
}
///
/// 保存
///
///
///
protected void btnSave_Click(object sender, EventArgs e)
{
decimal weights = 0;
foreach (JObject mergedRow in Grid1.GetMergedData())
{
JObject values = mergedRow.Value("values");
try
{
weights += Convert.ToDecimal(values.Value("Weights"));
}
catch (Exception)
{
}
}
if (weights != 100)
{
Alert.ShowInTop("权重值不是100,请调整后再保存!", MessageBoxIcon.Warning);
return;
}
foreach (JObject mergedRow in Grid1.GetMergedData())
{
JObject values = mergedRow.Value("values");
int i = mergedRow.Value("index");
string controlItemCode = values.Value("ControlItemCode");
Model.WBS_ControlItemProject controlItemProject = BLL.ControlItemProjectService.GetControlItemProjectByCode(controlItemCode, this.CurrUser.LoginProjectId);
controlItemProject.ControlPoint = values.Value("ControlPoint");
try
{
controlItemProject.Weights = Convert.ToDecimal(values.Value("Weights"));
}
catch (Exception)
{
controlItemProject.Weights = null;
}
controlItemProject.ControlItemDef = values.Value("ControlItemDef");
controlItemProject.Standard = values.Value("Standard");
controlItemProject.ClauseNo = values.Value("ClauseNo");
try
{
controlItemProject.CheckNum = Convert.ToInt32(values.Value("CheckNum"));
}
catch (Exception)
{
controlItemProject.CheckNum = null;
}
AspNet.CheckBoxList cblHGForms1 = (AspNet.CheckBoxList)(this.Grid1.Rows[i].FindControl("cblHGForms"));
string hGForms = string.Empty;
for (int j = 0; j < cblHGForms1.Items.Count; j++)
{
if (cblHGForms1.Items[j].Selected)
{
hGForms += cblHGForms1.Items[j].Text + ",";
}
}
if (!string.IsNullOrEmpty(hGForms))
{
hGForms = hGForms.Substring(0, hGForms.LastIndexOf(","));
}
controlItemProject.HGForms = hGForms;
AspNet.CheckBoxList cblSHForms1 = (AspNet.CheckBoxList)(this.Grid1.Rows[i].FindControl("cblSHForms"));
string sHForms = string.Empty;
for (int j = 0; j < cblSHForms1.Items.Count; j++)
{
if (cblSHForms1.Items[j].Selected)
{
sHForms += cblSHForms1.Items[j].Text + ",";
}
}
if (!string.IsNullOrEmpty(sHForms))
{
sHForms = sHForms.Substring(0, sHForms.LastIndexOf(","));
}
controlItemProject.SHForms = sHForms;
BLL.ControlItemProjectService.UpdateControlItemProject(controlItemProject);
//更新项目定制内容
var controlItemAndCycles = from x in Funs.DB.WBS_ControlItemAndCycle where x.ProjectId == CurrUser.LoginProjectId && x.InitControlItemCode == controlItemProject.ControlItemCode select x;
if (controlItemAndCycles.Count() > 0)
{
foreach (var item in controlItemAndCycles)
{
item.ControlPoint = controlItemProject.ControlPoint;
item.Weights = controlItemProject.Weights;
item.ControlItemDef = controlItemProject.ControlItemDef;
item.Standard = controlItemProject.Standard;
item.ClauseNo = controlItemProject.ClauseNo;
item.CheckNum = controlItemProject.CheckNum;
item.HGForms = controlItemProject.HGForms;
item.SHForms = controlItemProject.SHForms;
}
}
}
ShowNotify("保存成功!", MessageBoxIcon.Success);
}
#region Grid双击事件
///
/// Grid行双击事件
///
///
///
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
btnMenuModify_Click(null, null);
}
#endregion
#region 编辑
///
/// 编辑按钮
///
///
///
protected void btnMenuModify_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("ControlItemProjectEdit.aspx?type=modify&ControlItemCode={0}&WorkPackageCode={1}", this.Grid1.SelectedRowID, this.trWBS.SelectedNodeID, "新增 - ")));
}
#endregion
#region 删除
///
/// 删除
///
///
///
protected void btnMenuDel_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
var controlItemAndCycle = Funs.DB.WBS_ControlItemAndCycle.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.InitControlItemCode == Grid1.SelectedRowID);
if (controlItemAndCycle != null)
{
ShowNotify("WBS定制中已使用该数据,无法删除!", MessageBoxIcon.Warning);
}
else
{
BLL.ControlItemProjectService.DeleteControlItemProject(Grid1.SelectedRowID, this.CurrUser.LoginProjectId);
BLL.LogService.AddSys_Log(this.CurrUser, Grid1.SelectedRowID, Grid1.SelectedRowID, BLL.Const.ControlItemProjectSetMenuId, "删除工作包");
Grid1.DataBind();
BindGrid();
Alert.ShowInTop("删除数据成功!", MessageBoxIcon.Success);
}
}
#endregion
#region 绑定数据
///
/// 绑定数据
///
///
///
protected void Grid1_FilterChange(object sender, EventArgs e)
{
BindGrid();
}
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
///
/// Grid1排序
///
///
///
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
///
/// 分页下拉选择事件
///
///
///
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
///
/// 加载Grid
///
private void BindGrid()
{
string strSql = @"SELECT ControlItemCode,WorkPackageCode,ControlItemContent,ControlPoint,ControlItemDef,Weights,HGForms,SHForms,Standard,ClauseNo,CheckNum"
+ @" FROM WBS_ControlItemProject ";
List listStr = new List();
strSql += " where WorkPackageCode = @WorkPackageCode and ProjectId=@ProjectId";
listStr.Add(new SqlParameter("@WorkPackageCode", this.trWBS.SelectedNodeID));
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
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_WorkPackageProject workPackageProject = BLL.WorkPackageProjectService.GetWorkPackageProjectByWorkPackageCode(this.trWBS.SelectedNodeID, this.CurrUser.LoginProjectId);
if (workPackageProject != null)
{
if (workPackageProject.ProjectType == "1") //建筑工程
{
this.Grid1.Columns[4].HeaderText = "对应的建筑资料表格";
this.Grid1.Columns[5].Hidden = true;
this.lbHd.Width = System.Web.UI.WebControls.Unit.Pixel(480);
this.cbAllHGForms.Label = "全选对应的建筑资料表格";
this.cbAllHGForms.LabelWidth = System.Web.UI.WebControls.Unit.Pixel(175);
this.cbAllSHForms.Hidden = true;
}
else //安装工程
{
this.Grid1.Columns[4].HeaderText = "对应的化工资料表格";
this.Grid1.Columns[5].Hidden = false;
this.lbHd.Width = System.Web.UI.WebControls.Unit.Pixel(380);
this.cbAllHGForms.Label = "全选对应的化工资料表格";
this.cbAllHGForms.LabelWidth = System.Web.UI.WebControls.Unit.Pixel(175);
this.cbAllSHForms.Hidden = false;
}
}
for (int i = 0; i < this.Grid1.Rows.Count; i++)
{
Model.WBS_ControlItemInit c = BLL.ControlItemInitService.GetControlItemInitByCode(this.Grid1.Rows[i].RowID.ToString());
Model.WBS_ControlItemProject cp = BLL.ControlItemProjectService.GetControlItemProjectByCode(this.Grid1.Rows[i].RowID.ToString(), this.CurrUser.LoginProjectId);
List hGForms = new List();
if (c != null && !string.IsNullOrEmpty(c.HGForms))
{
hGForms = c.HGForms.Split(',').ToList();
}
string[] phGForms = cp.HGForms.Split(',');
foreach (var item in phGForms) //项目工作包表格中增加的表格也要显示
{
hGForms.Add(item);
}
hGForms = hGForms.Distinct().ToList();
AspNet.CheckBoxList cblHGForms = (AspNet.CheckBoxList)(this.Grid1.Rows[i].FindControl("cblHGForms"));
cblHGForms.Items.Clear();
foreach (var hGForm in hGForms) //加载基础库的表格数据
{
if (!string.IsNullOrEmpty(hGForm))
{
AspNet.ListItem li = new AspNet.ListItem();
li.Text = hGForm;
li.Value = hGForm;
cblHGForms.Items.Add(li);
}
}
for (int j = 0; j < cblHGForms.Items.Count; j++)
{
if (cp.HGForms.Contains(cblHGForms.Items[j].Value)) //项目库中包含的表格选中
{
cblHGForms.Items[j].Selected = true;
}
}
List sHForms = new List();
if (c != null && !string.IsNullOrEmpty(c.SHForms))
{
sHForms = c.SHForms.Split(',').ToList();
}
string[] psHForms = cp.SHForms.Split(',');
foreach (var item in psHForms) //项目工作包表格中增加的表格也要显示
{
sHForms.Add(item);
}
sHForms = sHForms.Distinct().ToList();
AspNet.CheckBoxList cblSHForms = (AspNet.CheckBoxList)(this.Grid1.Rows[i].FindControl("cblSHForms"));
cblSHForms.Items.Clear();
foreach (var sHForm in sHForms) //加载基础库的表格数据
{
if (!string.IsNullOrEmpty(sHForm))
{
AspNet.ListItem li = new AspNet.ListItem();
li.Text = sHForm;
li.Value = sHForm;
cblSHForms.Items.Add(li);
}
}
for (int j = 0; j < cblSHForms.Items.Count; j++)
{
if (cp.SHForms.Contains(cblSHForms.Items[j].Value)) //项目库中包含的表格选中
{
cblSHForms.Items[j].Selected = true;
}
}
}
}
#endregion
#region 根据所给Id定位到对应分部分项
///
/// 根据所给Id定位到对应具体的工程类型、单位工程、子单位工程、分部、子分部、分项、子分项
///
private void GetSelectTreeNode()
{
string projectType = string.Empty;
string workPackageCode1 = string.Empty;
string workPackageCode2 = string.Empty;
Model.WBS_WorkPackageProject workPackageProject = BLL.WorkPackageProjectService.GetWorkPackageProjectByWorkPackageCode(this.hdSelectId.Text, this.CurrUser.LoginProjectId);
if (workPackageProject != null)
{
if (workPackageProject.SuperWorkPack == null) //选中第一级分部分项
{
projectType = workPackageProject.ProjectType;
}
else
{
Model.WBS_WorkPackageProject pWorkPackageProject = BLL.WorkPackageProjectService.GetWorkPackageProjectByWorkPackageCode(workPackageProject.SuperWorkPack, this.CurrUser.LoginProjectId);
{
if (pWorkPackageProject.SuperWorkPack == null) //选中第二级分部分项
{
projectType = pWorkPackageProject.ProjectType;
workPackageCode1 = pWorkPackageProject.WorkPackageCode;
}
else
{
Model.WBS_WorkPackageProject ppWorkPackageProject = BLL.WorkPackageProjectService.GetWorkPackageProjectByWorkPackageCode(pWorkPackageProject.SuperWorkPack, this.CurrUser.LoginProjectId);
projectType = ppWorkPackageProject.ProjectType;
workPackageCode1 = ppWorkPackageProject.WorkPackageCode;
workPackageCode2 = pWorkPackageProject.WorkPackageCode;
}
}
}
}
InitTreeMenu();
for (int i = 0; i < trWBS.Nodes.Count; i++)
{
if (trWBS.Nodes[i].NodeID == projectType)
{
trWBS.Nodes[i].Expanded = true;
if (!string.IsNullOrEmpty(workPackageCode1))
{
for (int j = 0; j < trWBS.Nodes[i].Nodes.Count; j++)
{
if (trWBS.Nodes[i].Nodes[j].NodeID == workPackageCode1)
{
trWBS.Nodes[i].Nodes[j].Expanded = true;
if (!string.IsNullOrEmpty(workPackageCode2))
{
for (int k = 0; k < trWBS.Nodes[i].Nodes[j].Nodes.Count; k++)
{
if (trWBS.Nodes[i].Nodes[j].Nodes[k].NodeID == workPackageCode2)
{
trWBS.Nodes[i].Nodes[j].Nodes[k].Expanded = true;
}
}
}
}
}
}
}
}
this.trWBS.SelectedNodeID = this.hdSelectId.Text;
//BindGrid();
}
#endregion
#region 获取按钮权限
///
/// 获取按钮权限
///
///
///
private void GetButtonPower()
{
if (Request.Params["value"] == "0")
{
return;
}
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.ControlItemProjectSetMenuId);
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.BtnSave))
{
this.btnSave.Hidden = false;
this.btnRset.Hidden = false;
this.btnAllRset.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnDelete))
{
this.btnMenuDelete.Hidden = false;
this.btnMenuDel.Hidden = false;
}
}
}
#endregion
#region 表格选择事件
protected void cblHGForms_SelectedIndexChanged(object sender, EventArgs e)
{
AspNet.CheckBoxList cblHGForms = sender as AspNet.CheckBoxList;
for (int i = 0; i < this.Grid1.Rows.Count; i++)
{
AspNet.CheckBoxList cblHGForms1 = (AspNet.CheckBoxList)(this.Grid1.Rows[i].FindControl("cblHGForms"));
if (cblHGForms1.ClientID == cblHGForms.ClientID)
{
Model.WBS_ControlItemProject cp = BLL.ControlItemProjectService.GetControlItemProjectByCode(this.Grid1.SelectedRowID, this.CurrUser.LoginProjectId);
string hGForms = string.Empty;
for (int j = 0; j < cblHGForms.Items.Count; j++)
{
if (cblHGForms.Items[j].Selected)
{
hGForms += cblHGForms.Items[j].Text + ",";
}
}
if (!string.IsNullOrEmpty(hGForms))
{
hGForms = hGForms.Substring(0, hGForms.LastIndexOf(","));
}
cp.HGForms = hGForms;
BLL.ControlItemProjectService.UpdateControlItemProject(cp);
}
}
}
protected void cblSHForms_SelectedIndexChanged(object sender, EventArgs e)
{
AspNet.CheckBoxList cblSHForms = sender as AspNet.CheckBoxList;
for (int i = 0; i < this.Grid1.Rows.Count; i++)
{
AspNet.CheckBoxList cblSHForms1 = (AspNet.CheckBoxList)(this.Grid1.Rows[i].FindControl("cblSHForms"));
if (cblSHForms1.ClientID == cblSHForms.ClientID)
{
Model.WBS_ControlItemProject cp = BLL.ControlItemProjectService.GetControlItemProjectByCode(this.Grid1.SelectedRowID, this.CurrUser.LoginProjectId);
if (cp != null)
{
string sHForms = string.Empty;
for (int j = 0; j < cblSHForms.Items.Count; j++)
{
if (cblSHForms.Items[j].Selected)
{
sHForms += cblSHForms.Items[j].Text + ",";
}
}
if (!string.IsNullOrEmpty(sHForms))
{
sHForms = sHForms.Substring(0, sHForms.LastIndexOf(","));
}
cp.SHForms = sHForms;
BLL.ControlItemProjectService.UpdateControlItemProject(cp);
}
}
}
}
#endregion
#region 按级别显示事件
///
/// 第一级
///
///
///
protected void btnLevel1_Click(object sender, EventArgs e)
{
this.trWBS.CollapseAllNodes();
for (int i = 0; i < trWBS.Nodes.Count; i++)
{
trWBS.Nodes[i].Expanded = true;
}
}
///
/// 第二级
///
///
///
protected void btnLevel2_Click(object sender, EventArgs e)
{
this.trWBS.CollapseAllNodes();
for (int i = 0; i < trWBS.Nodes.Count; i++)
{
trWBS.Nodes[i].Expanded = true;
for (int j = 0; j < trWBS.Nodes[i].Nodes.Count; j++)
{
trWBS.Nodes[i].Nodes[j].Expanded = true;
}
}
}
///
/// 第三级
///
///
///
protected void btnLevel3_Click(object sender, EventArgs e)
{
this.trWBS.CollapseAllNodes();
for (int i = 0; i < trWBS.Nodes.Count; i++)
{
trWBS.Nodes[i].Expanded = true;
for (int j = 0; j < trWBS.Nodes[i].Nodes.Count; j++)
{
trWBS.Nodes[i].Nodes[j].Expanded = true;
for (int k = 0; k < trWBS.Nodes[i].Nodes[j].Nodes.Count; k++)
{
trWBS.Nodes[i].Nodes[j].Nodes[k].Expanded = true;
}
}
}
}
#endregion
#region 恢复默认
protected void btnRset_Click(object sender, EventArgs e)
{
if (this.trWBS.SelectedNode != null && this.trWBS.SelectedNode.Nodes.Count == 0) //末级节点
{
//删除新增项
var q = BLL.ControlItemProjectService.GetItemsByWorkPackageCode(this.trWBS.SelectedNodeID, this.CurrUser.LoginProjectId);
foreach (var item in q)
{
Model.WBS_ControlItemInit init = BLL.ControlItemInitService.GetControlItemInitByCode(item.ControlItemCode);
if (init == null)
{
BLL.ControlItemProjectService.DeleteControlItemProject(item.ControlItemCode, this.CurrUser.LoginProjectId);
}
}
//恢复默认
var q2 = BLL.ControlItemInitService.GetItemsByWorkPackageCode(this.trWBS.SelectedNodeID);
foreach (var item in q2)
{
var cp = BLL.ControlItemProjectService.GetControlItemProjectByCode(item.ControlItemCode, this.CurrUser.LoginProjectId);
if (cp != null)
{
cp.ControlItemContent = item.ControlItemContent;
cp.ControlPoint = item.ControlPoint;
cp.ControlItemDef = item.ControlItemDef;
cp.Weights = item.Weights;
cp.HGForms = item.HGForms;
cp.SHForms = item.SHForms;
cp.Standard = item.Standard;
cp.ClauseNo = item.ClauseNo;
cp.CheckNum = 1;
BLL.ControlItemProjectService.UpdateControlItemProject(cp);
}
else
{
Model.WBS_ControlItemProject controlItemProject = new Model.WBS_ControlItemProject();
controlItemProject.ControlItemCode = item.ControlItemCode;
controlItemProject.ProjectId = this.CurrUser.LoginProjectId;
controlItemProject.WorkPackageCode = item.WorkPackageCode;
controlItemProject.ControlItemContent = item.ControlItemContent;
controlItemProject.ControlPoint = item.ControlPoint;
controlItemProject.ControlItemDef = item.ControlItemDef;
controlItemProject.Weights = item.Weights;
controlItemProject.HGForms = item.HGForms;
controlItemProject.SHForms = item.SHForms;
controlItemProject.Standard = item.Standard;
controlItemProject.ClauseNo = item.ClauseNo;
controlItemProject.CheckNum = 1;
BLL.ControlItemProjectService.AddControlItemProject(controlItemProject);
}
}
ShowNotify("恢复默认成功!", MessageBoxIcon.Success);
BindGrid();
}
else
{
Alert.ShowInTop("请选择树节点的末级!", MessageBoxIcon.Warning);
}
}
protected void btnAllRset_Click(object sender, EventArgs e)
{
var controlItemProjects = from x in Funs.DB.WBS_ControlItemProject where x.ProjectId == this.CurrUser.LoginProjectId select x;
Funs.DB.WBS_ControlItemProject.DeleteAllOnSubmit(controlItemProjects);
var workPackageProjects = from x in Funs.DB.WBS_WorkPackageProject where x.ProjectId == this.CurrUser.LoginProjectId select x;
Funs.DB.WBS_WorkPackageProject.DeleteAllOnSubmit(workPackageProjects);
Funs.DB.SubmitChanges();
//拷贝项目WBS数据
var workPackageInits = from x in Funs.DB.WBS_WorkPackageInit select x;
foreach (var workPackageInit in workPackageInits)
{
Model.WBS_WorkPackageProject workPackageProject = new Model.WBS_WorkPackageProject();
workPackageProject.WorkPackageCode = workPackageInit.WorkPackageCode;
workPackageProject.ProjectId = this.CurrUser.LoginProjectId;
workPackageProject.ProjectType = workPackageInit.ProjectType;
workPackageProject.PackageContent = workPackageInit.PackageContent;
workPackageProject.SuperWorkPack = workPackageInit.SuperWorkPack;
workPackageProject.IsChild = workPackageInit.IsChild;
workPackageProject.PackageCode = workPackageInit.PackageCode;
workPackageProject.ProjectType = workPackageInit.ProjectType;
BLL.WorkPackageProjectService.AddWorkPackageProject(workPackageProject);
}
var controlItemInits = from x in Funs.DB.WBS_ControlItemInit select x;
foreach (var controlItemInit in controlItemInits)
{
Model.WBS_ControlItemProject controlItemProject = new Model.WBS_ControlItemProject();
controlItemProject.ControlItemCode = controlItemInit.ControlItemCode;
controlItemProject.ProjectId = this.CurrUser.LoginProjectId;
controlItemProject.WorkPackageCode = controlItemInit.WorkPackageCode;
controlItemProject.ControlItemContent = controlItemInit.ControlItemContent;
controlItemProject.ControlPoint = controlItemInit.ControlPoint;
controlItemProject.ControlItemDef = controlItemInit.ControlItemDef;
controlItemProject.Weights = controlItemInit.Weights;
controlItemProject.HGForms = controlItemInit.HGForms;
controlItemProject.SHForms = controlItemInit.SHForms;
controlItemProject.Standard = controlItemInit.Standard;
controlItemProject.ClauseNo = controlItemInit.ClauseNo;
controlItemProject.CheckNum = 1;
BLL.ControlItemProjectService.AddControlItemProject(controlItemProject);
}
ShowNotify("全部恢复默认成功!", MessageBoxIcon.Success);
InitTreeMenu();
//BindGrid();
}
#endregion
#region 全选化工表格
protected void cbAllHGForms_CheckedChanged(object sender, CheckedEventArgs e)
{
CheckBox cblAllHGForms = sender as CheckBox;
BindGrid();
for (int i = 0; i < this.Grid1.Rows.Count; i++)
{
AspNet.CheckBoxList cblHGForms1 = (AspNet.CheckBoxList)(this.Grid1.Rows[i].FindControl("cblHGForms"));
Model.WBS_ControlItemProject cp = BLL.ControlItemProjectService.GetControlItemProjectByCode(this.Grid1.Rows[i].RowID, this.CurrUser.LoginProjectId);
for (int j = 0; j < cblHGForms1.Items.Count; j++)
{
if (cblAllHGForms.Checked)
{
cblHGForms1.Items[j].Selected = true;
}
else
{
cblHGForms1.Items[j].Selected = false;
}
}
}
//CheckBox cblAllHGForms = sender as CheckBox;
//for (int i = 0; i < this.Grid1.Rows.Count; i++)
//{
// AspNet.CheckBoxList cblHGForms1 = (AspNet.CheckBoxList)(this.Grid1.Rows[i].FindControl("cblHGForms"));
// Model.WBS_ControlItemProject cp = BLL.ControlItemProjectService.GetControlItemProjectByCode(this.Grid1.Rows[i].RowID, this.CurrUser.LoginProjectId);
// string hGForms = string.Empty;
// for (int j = 0; j < cblHGForms1.Items.Count; j++)
// {
// if (cblAllHGForms.Checked)
// {
// hGForms += cblHGForms1.Items[j].Text + ",";
// }
// }
// if (!string.IsNullOrEmpty(hGForms))
// {
// hGForms = hGForms.Substring(0, hGForms.LastIndexOf(","));
// }
// cp.HGForms = hGForms;
// BLL.ControlItemProjectService.UpdateControlItemProject(cp);
//}
//BindGrid();
}
#endregion
#region 全选化工表格
protected void cbAllSHForms_CheckedChanged(object sender, CheckedEventArgs e)
{
CheckBox cblAllSHForms = sender as CheckBox;
BindGrid();
for (int i = 0; i < this.Grid1.Rows.Count; i++)
{
AspNet.CheckBoxList cblSHForms1 = (AspNet.CheckBoxList)(this.Grid1.Rows[i].FindControl("cblSHForms"));
Model.WBS_ControlItemProject cp = BLL.ControlItemProjectService.GetControlItemProjectByCode(this.Grid1.Rows[i].RowID, this.CurrUser.LoginProjectId);
for (int j = 0; j < cblSHForms1.Items.Count; j++)
{
if (cblAllSHForms.Checked)
{
cblSHForms1.Items[j].Selected = true;
}
else
{
cblSHForms1.Items[j].Selected = false;
}
}
}
//CheckBox cblAllSHForms = sender as CheckBox;
//for (int i = 0; i < this.Grid1.Rows.Count; i++)
//{
// AspNet.CheckBoxList cblSHForms1 = (AspNet.CheckBoxList)(this.Grid1.Rows[i].FindControl("cblSHForms"));
// Model.WBS_ControlItemProject cp = BLL.ControlItemProjectService.GetControlItemProjectByCode(this.Grid1.Rows[i].RowID, this.CurrUser.LoginProjectId);
// string hGForms = string.Empty;
// for (int j = 0; j < cblSHForms1.Items.Count; j++)
// {
// if (cblAllSHForms.Checked)
// {
// hGForms += cblSHForms1.Items[j].Text + ",";
// }
// }
// if (!string.IsNullOrEmpty(hGForms))
// {
// hGForms = hGForms.Substring(0, hGForms.LastIndexOf(","));
// }
// cp.SHForms = hGForms;
// BLL.ControlItemProjectService.UpdateControlItemProject(cp);
//}
//BindGrid();
}
#endregion
}
}