440 lines
18 KiB
C#
440 lines
18 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Data;
|
|||
|
using System.Data.SqlClient;
|
|||
|
using System.Linq;
|
|||
|
using BLL;
|
|||
|
using Newtonsoft.Json.Linq;
|
|||
|
|
|||
|
namespace FineUIPro.Web.HJGL.Match
|
|||
|
{
|
|||
|
public partial class PipeMaterial : PageBase
|
|||
|
{
|
|||
|
protected void Page_Load(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (!IsPostBack)
|
|||
|
{
|
|||
|
this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString();
|
|||
|
this.InitTreeMenu();//加载树
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#region 加载树装置-单位-工作区
|
|||
|
/// <summary>
|
|||
|
/// 加载树
|
|||
|
/// </summary>
|
|||
|
private void InitTreeMenu()
|
|||
|
{
|
|||
|
this.tvControlItem.Nodes.Clear();
|
|||
|
TreeNode rootNode = new TreeNode();
|
|||
|
rootNode.Text = "装置-单位-工作区";
|
|||
|
rootNode.NodeID = "0";
|
|||
|
rootNode.Expanded = true;
|
|||
|
this.tvControlItem.Nodes.Add(rootNode);
|
|||
|
////装置
|
|||
|
var pInstallation = (from x in Funs.DB.Project_Installation where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
|
|||
|
////区域
|
|||
|
var pWorkArea = (from x in Funs.DB.Project_WorkArea where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
|
|||
|
////单位
|
|||
|
var pUnits = (from x in Funs.DB.Project_Unit where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
|
|||
|
|
|||
|
if (!string.IsNullOrEmpty(this.txtIsono.Text))
|
|||
|
{
|
|||
|
var workAreaIdList = (from x in BLL.Funs.DB.HJGL_PW_IsoInfo
|
|||
|
where x.ProjectId == this.CurrUser.LoginProjectId && x.ISO_IsoNo.Contains(this.txtIsono.Text.Trim())
|
|||
|
orderby x.ISO_IsoNo
|
|||
|
select x.BAW_ID).Distinct().ToList();
|
|||
|
pWorkArea = pWorkArea.Where(x => workAreaIdList.Contains(x.WorkAreaId)).OrderBy(x => x.WorkAreaCode).ToList();
|
|||
|
pInstallation = (from x in pInstallation
|
|||
|
join y in pWorkArea on x.InstallationId equals y.InstallationId
|
|||
|
select x).Distinct().ToList();
|
|||
|
pUnits = (from x in pUnits
|
|||
|
join y in pWorkArea on x.UnitId equals y.UnitId
|
|||
|
select x).Distinct().ToList();
|
|||
|
}
|
|||
|
this.BindNodes(rootNode, pInstallation, pWorkArea, pUnits);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 绑定树节点
|
|||
|
#region 绑定树节点
|
|||
|
/// <summary>
|
|||
|
/// 绑定树节点
|
|||
|
/// </summary>
|
|||
|
/// <param name="node"></param>
|
|||
|
private void BindNodes(TreeNode node, List<Model.Project_Installation> pInstallation, List<Model.Project_WorkArea> pWorkArea, List<Model.Project_Unit> pUnits)
|
|||
|
{
|
|||
|
if (string.IsNullOrEmpty(node.ToolTip))
|
|||
|
{
|
|||
|
List<Model.Project_Installation> installations = pInstallation;
|
|||
|
var pUnit = pUnits.FirstOrDefault(x => x.UnitId == this.CurrUser.UnitId);
|
|||
|
if (pUnit != null && pUnit.UnitType != Const.UnitType_5)
|
|||
|
{
|
|||
|
installations = (from x in pInstallation
|
|||
|
join y in pWorkArea on x.InstallationId equals y.InstallationId
|
|||
|
where y.UnitId == this.CurrUser.UnitId
|
|||
|
orderby x.InstallationId
|
|||
|
select x).Distinct().ToList();
|
|||
|
}
|
|||
|
|
|||
|
foreach (var q in installations)
|
|||
|
{
|
|||
|
TreeNode newNode = new TreeNode();
|
|||
|
newNode.NodeID = q.InstallationId;
|
|||
|
newNode.Text = q.InstallationName;
|
|||
|
newNode.ToolTip = "装置";
|
|||
|
newNode.Expanded = true;
|
|||
|
node.Nodes.Add(newNode);
|
|||
|
this.BindNodes(newNode, pInstallation, pWorkArea, pUnits);
|
|||
|
}
|
|||
|
}
|
|||
|
else if (node.ToolTip == "装置")
|
|||
|
{
|
|||
|
List<Model.Project_Unit> units = null;
|
|||
|
var pUnitDepth = pUnits.FirstOrDefault(x => x.UnitId == this.CurrUser.UnitId);
|
|||
|
if (pUnitDepth == null || pUnitDepth.UnitType == Const.UnitType_5)
|
|||
|
{
|
|||
|
units = (from x in pUnits
|
|||
|
join y in pWorkArea on x.UnitId equals y.UnitId
|
|||
|
where y.InstallationId == node.NodeID && x.UnitType == Const.UnitType_3
|
|||
|
select x).ToList();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
units = (from x in pUnits
|
|||
|
join y in pWorkArea on x.UnitId equals y.UnitId
|
|||
|
where y.InstallationId == node.NodeID && x.UnitType == Const.UnitType_3 && x.UnitId == this.CurrUser.UnitId
|
|||
|
select x).ToList();
|
|||
|
}
|
|||
|
|
|||
|
units = units.OrderBy(x => x.InTime).Distinct().ToList();
|
|||
|
foreach (var q in units)
|
|||
|
{
|
|||
|
var unit = BLL.Base_UnitService.GetUnit(q.UnitId);
|
|||
|
if (unit != null)
|
|||
|
{
|
|||
|
TreeNode newNode = new TreeNode();
|
|||
|
newNode.Text = unit.UnitName;
|
|||
|
newNode.NodeID = q.UnitId + "|" + node.NodeID;
|
|||
|
newNode.ToolTip = "单位";
|
|||
|
node.Nodes.Add(newNode);
|
|||
|
this.BindNodes(newNode, pInstallation, pWorkArea, pUnits);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else if (node.ToolTip == "单位")
|
|||
|
{
|
|||
|
var workAreas = (from x in pWorkArea
|
|||
|
where x.InstallationId == node.ParentNode.NodeID && x.UnitId == node.NodeID.Split('|')[0]
|
|||
|
select x);
|
|||
|
workAreas = workAreas.OrderByDescending(x => x.WorkAreaCode);
|
|||
|
foreach (var q in workAreas)
|
|||
|
{
|
|||
|
int a = (from x in BLL.Funs.DB.HJGL_PW_IsoInfo where x.ProjectId == this.CurrUser.LoginProjectId && x.BSU_ID == node.NodeID.Split('|')[0] && x.BAW_ID == q.WorkAreaId select x).Count();
|
|||
|
TreeNode newNode = new TreeNode();
|
|||
|
newNode.Text = q.WorkAreaCode + "【" + a.ToString() + "管线】";
|
|||
|
newNode.NodeID = q.WorkAreaId;
|
|||
|
newNode.EnableExpandEvent = true;
|
|||
|
newNode.ToolTip = "区域";
|
|||
|
node.Nodes.Add(newNode);
|
|||
|
this.BindNodes(newNode, pInstallation, pWorkArea, pUnits);
|
|||
|
}
|
|||
|
}
|
|||
|
else if (node.ToolTip == "区域")
|
|||
|
{
|
|||
|
TreeNode newNode = new TreeNode();
|
|||
|
newNode.Text = "管线";
|
|||
|
newNode.NodeID = "管线";
|
|||
|
node.Nodes.Add(newNode);
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 树展开事件
|
|||
|
/// <summary>
|
|||
|
/// 树展开事件
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void tvControlItem_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
|
|||
|
{
|
|||
|
if (e.Node.ToolTip == "区域")
|
|||
|
{
|
|||
|
e.Node.Nodes.Clear();
|
|||
|
List<Model.HJGL_PW_IsoInfo> isoInfo = new List<Model.HJGL_PW_IsoInfo>();
|
|||
|
if (!string.IsNullOrEmpty(this.txtIsono.Text))
|
|||
|
{
|
|||
|
isoInfo = (from x in BLL.Funs.DB.HJGL_PW_IsoInfo
|
|||
|
where x.ProjectId == this.CurrUser.LoginProjectId && x.BAW_ID == e.Node.NodeID
|
|||
|
&& x.ISO_IsoNo.Contains(this.txtIsono.Text.Trim())
|
|||
|
orderby x.ISO_IsoNo
|
|||
|
select x).ToList();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
isoInfo = (from x in BLL.Funs.DB.HJGL_PW_IsoInfo
|
|||
|
where x.ProjectId == this.CurrUser.LoginProjectId && x.BAW_ID == e.Node.NodeID
|
|||
|
orderby x.ISO_IsoNo
|
|||
|
select x).ToList();
|
|||
|
}
|
|||
|
foreach (var item in isoInfo)
|
|||
|
{
|
|||
|
var jotCount = (from x in Funs.DB.HJGL_PW_JointInfo where x.ISO_ID == item.ISO_ID select x).Count();
|
|||
|
TreeNode newNode = new TreeNode();
|
|||
|
newNode.Text = item.ISO_IsoNo;
|
|||
|
newNode.Text += "【" + jotCount.ToString() + "焊口】";
|
|||
|
newNode.ToolTip = "管线(页数)【焊口数】";
|
|||
|
newNode.NodeID = item.ISO_ID;
|
|||
|
newNode.EnableClickEvent = true;
|
|||
|
e.Node.Nodes.Add(newNode);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 点击TreeView
|
|||
|
/// <summary>
|
|||
|
/// 点击TreeView
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
|
|||
|
{
|
|||
|
this.BindGrid();
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 数据绑定
|
|||
|
/// <summary>
|
|||
|
/// 数据绑定
|
|||
|
/// </summary>
|
|||
|
private void BindGrid()
|
|||
|
{
|
|||
|
string strSql = @"SELECT PipeMaterialId,ProjectId,MaterialId,ISO_IsoNo,NeedCount,UsedCount,Code,Name,Standard,UNIT"
|
|||
|
+ @" FROM HJGL_View_MatchPipeMaterial WHERE ProjectId= @ProjectId";
|
|||
|
List<SqlParameter> listStr = new List<SqlParameter>();
|
|||
|
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
|
|||
|
//if (!string.IsNullOrEmpty(this.txtJOT_JointNo.Text.Trim()))
|
|||
|
//{
|
|||
|
// strSql += " AND JOT_JointNo LIKE @JOT_JointNo";
|
|||
|
// listStr.Add(new SqlParameter("@JOT_JointNo", "%" + this.txtJOT_JointNo.Text.Trim() + "%"));
|
|||
|
//}
|
|||
|
SqlParameter[] parameter = listStr.ToArray();
|
|||
|
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
|
|||
|
// 2.获取当前分页数据
|
|||
|
//var table = this.GetPagedDataTable(Grid1, tb1);
|
|||
|
Grid1.RecordCount = tb.Rows.Count;
|
|||
|
tb = GetFilteredTable(Grid1.FilteredData, tb);
|
|||
|
var table = this.GetPagedDataTable(Grid1, tb);
|
|||
|
Grid1.DataSource = table;
|
|||
|
Grid1.DataBind();
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 分页排序
|
|||
|
#region 页索引改变事件
|
|||
|
/// <summary>
|
|||
|
/// 页索引改变事件
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
|
|||
|
{
|
|||
|
BindGrid();
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 排序
|
|||
|
/// <summary>
|
|||
|
/// 排序
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void Grid1_Sort(object sender, GridSortEventArgs e)
|
|||
|
{
|
|||
|
BindGrid();
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 分页选择下拉改变事件
|
|||
|
/// <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();
|
|||
|
}
|
|||
|
#endregion
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 管线组成件对应表 维护事件
|
|||
|
/// <summary>
|
|||
|
/// Grid双击事件
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
|
|||
|
{
|
|||
|
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HJGL_PipeMaterialMenuId, BLL.Const.BtnModify))
|
|||
|
{
|
|||
|
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PipeMaterialEdit.aspx?PipeMaterialId={0}", Grid1.SelectedRowID, "编辑 - ")));
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 增加管线组成件对应表
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void btnNew_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_PipeMaterialMenuId, Const.BtnAdd))
|
|||
|
{
|
|||
|
var isoInfo = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByIsoInfoId(tvControlItem.SelectedNodeID);
|
|||
|
if (isoInfo != null)
|
|||
|
{
|
|||
|
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PipeMaterialEdit.aspx?ISO_ID={0}", this.tvControlItem.SelectedNodeID, "新增 - ")));
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Alert.ShowInTop("请先选择管线!", MessageBoxIcon.Warning);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 管线组成件对应表编辑
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void btnMenuEdit_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HJGL_PipeMaterialMenuId, BLL.Const.BtnModify))
|
|||
|
{
|
|||
|
if (Grid1.SelectedRowIndexArray.Length == 0)
|
|||
|
{
|
|||
|
Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
|
|||
|
return;
|
|||
|
}
|
|||
|
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PipeMaterialEdit.aspx?PipeMaterialId={0}", Grid1.SelectedRowID, "维护 - ")));
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 删除按钮
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void btnMenuDelete_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_PipeMaterialMenuId, Const.BtnDelete))
|
|||
|
{
|
|||
|
if (Grid1.SelectedRowIndexArray.Length == 0)
|
|||
|
{
|
|||
|
Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
bool isShow = true;
|
|||
|
if (Grid1.SelectedRowIndexArray.Length > 1)
|
|||
|
{
|
|||
|
isShow = false;
|
|||
|
}
|
|||
|
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
|
|||
|
{
|
|||
|
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
|
|||
|
if (judgementDelete(rowID, isShow))
|
|||
|
{
|
|||
|
BLL.HJGL_Match_PipeMaterialService.DeleteHJGL_Match_PipeMaterial(rowID);
|
|||
|
BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.CurrUser.LoginProjectId, this.CurrUser.UserId, "删除管线组成件对应表");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
ShowNotify("删除成功!", MessageBoxIcon.Success);
|
|||
|
this.BindGrid();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 关闭弹出窗口及刷新页面
|
|||
|
/// <summary>
|
|||
|
/// 关闭弹出窗口
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void Window1_Close(object sender, WindowCloseEventArgs e)
|
|||
|
{
|
|||
|
this.BindGrid();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 查询
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void TextBox_TextChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
this.BindGrid();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 查询
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void Tree_TextChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
this.InitTreeMenu();
|
|||
|
this.BindGrid();
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 判断是否可删除
|
|||
|
/// <summary>
|
|||
|
/// 判断是否可以删除
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool judgementDelete(string id, bool isShow)
|
|||
|
{
|
|||
|
string content = string.Empty;
|
|||
|
//if (BLL.HJGL_HotProessManageEditService.GetHotProessByJotId(id) > 0)
|
|||
|
//{
|
|||
|
// content = "热处理已经使用了该焊口,不能删除!";
|
|||
|
//}
|
|||
|
|
|||
|
if (string.IsNullOrEmpty(content))
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (isShow)
|
|||
|
{
|
|||
|
Alert.ShowInTop(content, MessageBoxIcon.Error);
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
}
|