CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/CQMS/ProcessControl/ShowUnitWork.aspx.cs

554 lines
24 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using BLL;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web.UI.WebControls;
using AspNet = System.Web.UI.WebControls;
namespace FineUIPro.Web.CQMS.ProcessControl
{
public partial class ShowUnitWork : PageBase
{
/// <summary>
/// 被选择项列表
/// </summary>
public List<string> SelectedList
{
get
{
return (List<string>)ViewState["SelectedList"];
}
set
{
ViewState["SelectedList"] = value;
}
}
/// <summary>
/// 未被选择项列表
/// </summary>
public List<string> NoSelectedList
{
get
{
return (List<string>)ViewState["NoSelectedList"];
}
set
{
ViewState["NoSelectedList"] = value;
}
}
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.SelectedList = new List<string>();
this.NoSelectedList = new List<string>();
string cnProfessionalId = Request.Params["CNPrefessionalId"];
InitTreeMenu();
}
}
/// <summary>
/// 加载树
/// </summary>
/// <param name="cnProfessionalId"></param>
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;
if (this.CurrUser.UserId == BLL.Const.hfnbdId)//测试账号用
{
var unitWorks = from x in Funs.DB.WBS_UnitWork
join y in Funs.DB.WBS_DivisionDivide on x.UnitWorkId equals y.UnitWorkId
where x.ProjectId == this.CurrUser.LoginProjectId
&& (x.SuperUnitWork == null || x.SuperUnitWork == "0")
orderby x.UnitWorkCode select new
{
x.UnitWorkId,
x.UnitWorkName
};
foreach (var q in unitWorks.Distinct())
{
TreeNode newNode = new TreeNode();
newNode.Text = q.UnitWorkName;
newNode.NodeID = q.UnitWorkId;
newNode.CommandName = "UnitWork";
newNode.EnableExpandEvent = true;
newNode.EnableClickEvent = true;
this.trWBS.Nodes.Add(newNode);
TreeNode emptyNode = new TreeNode();
emptyNode.Text = "";
emptyNode.NodeID = "";
newNode.Nodes.Add(emptyNode);
}
}
else
{
var unitWorks = from x in Funs.DB.WBS_UnitWork where x.ProjectId == this.CurrUser.LoginProjectId && (x.SuperUnitWork == null || x.SuperUnitWork == "0") orderby x.UnitWorkCode select x;
foreach (var q in unitWorks)
{
TreeNode newNode = new TreeNode();
newNode.Text = q.UnitWorkName;
newNode.NodeID = q.UnitWorkId;
newNode.CommandName = "UnitWork";
newNode.EnableExpandEvent = true;
newNode.EnableClickEvent = true;
this.trWBS.Nodes.Add(newNode);
TreeNode emptyNode = new TreeNode();
emptyNode.Text = "";
emptyNode.NodeID = "";
newNode.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();
Model.SGGLDB db = Funs.DB;
if (e.Node.CommandName == "UnitWork") //展开工程类型
{
string cnProfessionalId = Request.Params["CNPrefessionalId"];
if (this.CurrUser.UserId == BLL.Const.hfnbdId)
{
string professionalName = string.Empty;
var pointCropping = from x in db.Control_PointCropping where x.ControlId == cnProfessionalId select x;
if (pointCropping.FirstOrDefault(x => x.DetectionItems.Contains("设备")) != null)
{
professionalName = "设备";
}
else
{
professionalName = pointCropping.FirstOrDefault().DetectionItems;
}
var divisions = (from x in db.WBS_DivisionProject
join y in db.Base_CNProfessional on x.CNProfessionalId equals y.CNProfessionalId
where y.ProfessionalName == professionalName
&& x.ProjectId == this.CurrUser.LoginProjectId
&& x.SuperDivisionId == null
&& x.UnitWorkId == e.NodeID
&& x.IsSelected == true
orderby x.SortIndex
select x).ToList();
//}
//if (this.CurrUser.UserId == BLL.Const.hfnbdId)//测试阶段仅hfnbd账号使用
//{
//Model.Control_PointCropping pc = new Model.Control_PointCropping();
Model.Base_CNProfessional cNProfessional = new Model.Base_CNProfessional();
var pc = Funs.DB.Control_PointCropping.FirstOrDefault(x => (x.ParentId == null || x.ParentId == "") && x.DetectionItems == "土建");
if (divisions.Count() == 0 && pc != null)
{
cNProfessional = (from x in db.Base_CNProfessional where x.ProfessionalName == "土建" orderby x.SortIndex select x).FirstOrDefault();
//pc = (from x in db.Control_PointCropping where (x.ParentId == null || x.ParentId == "") && x.ControlId == "E9AC9563-E338-48B7-867D-488222AD0557" orderby x.OperateTime select x).FirstOrDefault();
}
else
{
cNProfessional = (from x in db.Base_CNProfessional
where x.ProfessionalName.Contains(professionalName)
orderby x.SortIndex
select x).FirstOrDefault();
//pc = (from x in db.Control_PointCropping where (x.ParentId == null || x.ParentId == "") && x.ControlId == cnProfessionalId orderby x.OperateTime select x).FirstOrDefault();
}
if (pc != null)
{
TreeNode newNode = new TreeNode();
newNode.Text = cNProfessional.ProfessionalName;
newNode.NodeID = cNProfessional.CNProfessionalId + "|" + e.NodeID;
newNode.CommandName = "CNProfessional";
newNode.EnableExpandEvent = true;
newNode.EnableClickEvent = true;
newNode.EnableExpandEvent = true;
e.Node.Nodes.Add(newNode);
TreeNode tempNode = new TreeNode();
tempNode.NodeID = "";
tempNode.Text = "";
newNode.Nodes.Add(tempNode);
}
}
else
{
var divisions = (from x in db.WBS_DivisionProject
where x.CNProfessionalId == cnProfessionalId
&& x.ProjectId == this.CurrUser.LoginProjectId
&& x.SuperDivisionId == null
&& x.UnitWorkId == e.NodeID
&& x.IsSelected == true
orderby x.SortIndex
select x).ToList();
Model.Base_CNProfessional cNProfessional = new Model.Base_CNProfessional();
if (divisions.Count() == 0 && cnProfessionalId == BLL.Const.CNProfessionalCVId)
{
cNProfessional = (from x in db.Base_CNProfessional where x.CNProfessionalId == BLL.Const.CNProfessionalConstructId orderby x.SortIndex select x).FirstOrDefault();
}
else
{
cNProfessional = (from x in db.Base_CNProfessional where x.CNProfessionalId == cnProfessionalId orderby x.SortIndex select x).FirstOrDefault();
}
if (cNProfessional != null)
{
TreeNode newNode = new TreeNode();
newNode.Text = cNProfessional.ProfessionalName;
newNode.NodeID = cNProfessional.CNProfessionalId + "|" + e.NodeID;
newNode.CommandName = "CNProfessional";
newNode.EnableExpandEvent = true;
newNode.EnableClickEvent = true;
newNode.EnableExpandEvent = true;
e.Node.Nodes.Add(newNode);
TreeNode tempNode = new TreeNode();
tempNode.NodeID = "";
tempNode.Text = "";
newNode.Nodes.Add(tempNode);
}
}
}
else if (e.Node.CommandName == "CNProfessional") //展开专业
{
string unitWorkId = e.Node.ParentNode.NodeID;
string cNProfessionalId = Request.Params["CNPrefessionalId"];
if (this.CurrUser.UserId == BLL.Const.hfnbdId)
{
string professionalName = string.Empty;
var pointCropping = from x in db.Control_PointCropping where x.ControlId == cNProfessionalId select x;
if (pointCropping.FirstOrDefault(x => x.DetectionItems.Contains("设备")) != null)
{
professionalName = "设备";
}
else
{
professionalName = pointCropping.FirstOrDefault().DetectionItems;
}
var divisions = (from x in db.WBS_DivisionProject
join y in db.Base_CNProfessional on x.CNProfessionalId equals y.CNProfessionalId
where y.ProfessionalName.Contains(professionalName) && x.ProjectId == this.CurrUser.LoginProjectId && x.SuperDivisionId == null && x.UnitWorkId == unitWorkId && x.IsSelected == true
orderby x.SortIndex
select x).ToList();
foreach (var q in divisions)
{
TreeNode newNode = new TreeNode();
newNode.Text = q.DivisionName;
newNode.NodeID = q.DivisionProjectId;
newNode.CommandName = "DivisionProject";
newNode.EnableExpandEvent = true;
newNode.EnableClickEvent = true;
newNode.EnableExpandEvent = true;
e.Node.Nodes.Add(newNode);
var list = (from x in Funs.DB.WBS_DivisionProject
where x.SuperDivisionId == q.DivisionProjectId && x.ProjectId == this.CurrUser.LoginProjectId
&& x.IsSelected == true
orderby x.SortIndex
select x).ToList();
if (list.Count > 0)
{
TreeNode tempNode = new TreeNode();
tempNode.NodeID = "";
tempNode.Text = "";
newNode.Nodes.Add(tempNode);
}
}
}
else
{
var divisions = (from x in db.WBS_DivisionProject
where x.CNProfessionalId==cNProfessionalId && x.ProjectId == this.CurrUser.LoginProjectId && x.SuperDivisionId == null && x.UnitWorkId == unitWorkId && x.IsSelected == true
orderby x.SortIndex
select x).ToList();
foreach (var q in divisions)
{
TreeNode newNode = new TreeNode();
newNode.Text = q.DivisionName;
newNode.NodeID = q.DivisionProjectId;
newNode.CommandName = "DivisionProject";
newNode.EnableExpandEvent = true;
newNode.EnableClickEvent = true;
newNode.EnableExpandEvent = true;
e.Node.Nodes.Add(newNode);
var list = (from x in Funs.DB.WBS_DivisionProject
where x.SuperDivisionId == q.DivisionProjectId && x.ProjectId == this.CurrUser.LoginProjectId
&& x.IsSelected == true
orderby x.SortIndex
select x).ToList();
if (list.Count > 0)
{
TreeNode tempNode = new TreeNode();
tempNode.NodeID = "";
tempNode.Text = "";
newNode.Nodes.Add(tempNode);
}
}
}
}
else if (e.Node.CommandName == "DivisionProject") //展开分部节点
{
string parentId = e.NodeID;
var childDivisions = (from x in db.WBS_DivisionProject
where x.SuperDivisionId == parentId && x.ProjectId == this.CurrUser.LoginProjectId
&& x.IsSelected == true
orderby x.SortIndex
select x).ToList();
foreach (var q in childDivisions)
{
TreeNode newNode = new TreeNode();
newNode.Text = q.DivisionName;
newNode.NodeID = q.DivisionProjectId;
newNode.CommandName = "DivisionProject";
newNode.EnableExpandEvent = true;
newNode.EnableClickEvent = true;
newNode.EnableExpandEvent = true;
e.Node.Nodes.Add(newNode);
var list = (from x in Funs.DB.WBS_DivisionProject
where x.SuperDivisionId == q.DivisionProjectId && x.ProjectId == this.CurrUser.LoginProjectId
&& x.IsSelected == true
orderby x.SortIndex
select x).ToList();
if (list.Count > 0)
{
TreeNode tempNode = new TreeNode();
tempNode.NodeID = "";
tempNode.Text = "";
newNode.Nodes.Add(tempNode);
}
}
}
}
#endregion
#region
/// <summary>
/// 遍历节点
/// </summary>
/// <param name="nodes"></param>
/// <param name="parentId"></param>
/// <param name="node"></param>
/// <param name="unitWorkId"></param>
private void GetNodes(TreeNodeCollection nodes, string parentId, TreeNode node, string unitWorkId,Model.SGGLDB db)
{
if (!string.IsNullOrEmpty(unitWorkId))
{
var divisions = (from x in db.WBS_DivisionProject
where x.CNProfessionalId == parentId && x.ProjectId == this.CurrUser.LoginProjectId && x.SuperDivisionId == null && x.UnitWorkId == unitWorkId && x.IsSelected == true
orderby x.SortIndex
select x).ToList();
foreach (var q in divisions)
{
TreeNode newNode = new TreeNode();
newNode.Text = q.DivisionName;
newNode.NodeID = q.DivisionProjectId;
newNode.EnableExpandEvent = true;
newNode.EnableClickEvent = true;
newNode.Expanded = true;
node.Nodes.Add(newNode);
}
}
else
{
var childDivisions = (from x in db.WBS_DivisionProject
where x.SuperDivisionId == parentId && x.ProjectId == this.CurrUser.LoginProjectId
&& x.IsSelected == true
orderby x.SortIndex
select x).ToList();
foreach (var q in childDivisions)
{
TreeNode newNode = new TreeNode();
newNode.Text = q.DivisionName;
newNode.NodeID = q.DivisionProjectId;
newNode.EnableExpandEvent = true;
newNode.EnableClickEvent = true;
newNode.Expanded = true;
nodes.Add(newNode);
}
}
for (int i = 0; i < nodes.Count; i++)
{
GetNodes(nodes[i].Nodes, nodes[i].NodeID, nodes[i], string.Empty,db);
}
}
#endregion
#region
/// <summary>
/// 点击树节点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void trWBS_NodeCommand(object sender, TreeCommandEventArgs e)
{
this.hdDivisionProjectId.Text = this.trWBS.SelectedNode.NodeID;
foreach (JObject mergedRow in Grid1.GetMergedData())
{
JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index");
AspNet.CheckBox ckb = (AspNet.CheckBox)(this.Grid1.Rows[i].FindControl("cbSelect"));
if (ckb.Checked)
{
SelectedList.Add(this.Grid1.Rows[i].RowID);
}
else
{
NoSelectedList.Add(this.Grid1.Rows[i].RowID);
}
}
BindGrid();
}
#endregion
#region
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
string strSql = @"SELECT V.BreakdownProjectId,
V.ProjectId,
V.BreakdownCode,
V.BreakdownName,
V.DivisionProjectId,
V.Basis,
V.CheckPoints,
V.RecordAndCode,
V.Class,
V.SortIndex,
V.Remark,
V.AttachUrl,
V.IsAcceptance,
V.FenBao,
V.WuHuan,
V.JianLi,
V.YeZhu,
V.IsSelected"
+ @" FROM View_WBS_BreakdownProject AS V "
+ @" WHERE V.ProjectId=@ProjectId AND V.DivisionProjectId=@divisionProjectId";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@divisionProjectId", this.hdDivisionProjectId.Text.Trim()));
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 Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
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>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
#endregion
#region
/// <summary>
/// 确定按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSure_Click(object sender, EventArgs e)
{
string ids = string.Empty;
bool res = false;
foreach (JObject mergedRow in Grid1.GetMergedData())
{
JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index");
AspNet.CheckBox ckb = (AspNet.CheckBox)(this.Grid1.Rows[i].FindControl("cbSelect"));
if (ckb.Checked)
{
res = true;
break;
}
}
if (SelectedList.Count == 0 && !res)
{
Alert.ShowInTop("没有选中任何项!", MessageBoxIcon.Warning);
return;
}
foreach (JObject mergedRow in Grid1.GetMergedData())
{
JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index");
AspNet.CheckBox ckb = (AspNet.CheckBox)(this.Grid1.Rows[i].FindControl("cbSelect"));
if (ckb.Checked)
{
SelectedList.Add(this.Grid1.Rows[i].RowID);
}
else
{
if (SelectedList.Contains(this.Grid1.Rows[i].RowID))
{
SelectedList.Remove(this.Grid1.Rows[i].RowID);
}
NoSelectedList.Add(this.Grid1.Rows[i].RowID);
}
}
foreach (var item in SelectedList.Distinct())
{
ids += item + ",";
}
if (!string.IsNullOrEmpty(ids))
{
ids = ids.Substring(0, ids.LastIndexOf(","));
}
string scripts = String.Format("F.getActiveWindow().window.reloadGrid('{0}');", ids);
PageContext.RegisterStartupScript(scripts + ActiveWindow.GetHidePostBackReference());
//PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(ids)
// + ActiveWindow.GetHidePostBackReference());
}
#endregion
}
}