using BLL; using Model; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using AspNet = System.Web.UI.WebControls; namespace FineUIPro.Web.HJGL.InfoQuery { public partial class JointQuery : PageBase { public decimal JointComplete { get { return (decimal)ViewState["JointComplete"]; } set { ViewState["JointComplete"] = value; } } public decimal JointNoComplete { get { return (decimal)ViewState["JointNoComplete"]; } set { ViewState["JointNoComplete"] = value; } } public int JointPre { get { return (int)ViewState["JointPre"]; } set { ViewState["JointPre"] = value; } } public int JointNoPre { get { return (int)ViewState["JointNoPre"]; } set { ViewState["JointNoPre"] = value; } } public string Completed_weldedjunction { get { return (string)ViewState["Completed_weldedjunction"]; } set { ViewState["Completed_weldedjunction"] = value; } } public string Incomplete_weldjunction { get { return (string)ViewState["Incomplete_weldjunction"]; } set { ViewState["Incomplete_weldjunction"] = value; } } protected void Page_Load(object sender, EventArgs e) { ctlAuditFlow.Url = BLL.Project_SysSetService.GetAvevaNetUrl(this.CurrUser.LoginProjectId); if (!IsPostBack) { this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString(); this.InitTreeMenu();//加载树 this.JointComplete = 0; this.JointNoComplete =0; this.JointPre =0; this.JointNoPre = 0; } } #region 加载树装置-单位-工作区 /// /// 加载树 /// private void InitTreeMenu() { this.tvControlItem.Nodes.Clear(); TreeNode rootNode1 = new TreeNode(); rootNode1.NodeID = "1"; rootNode1.Text = "建筑工程"; rootNode1.CommandName = "建筑工程"; rootNode1.Selectable = false; this.tvControlItem.Nodes.Add(rootNode1); TreeNode rootNode2 = new TreeNode(); rootNode2.NodeID = "2"; rootNode2.Text = "安装工程"; rootNode2.CommandName = "安装工程"; rootNode2.Expanded = true; this.tvControlItem.Nodes.Add(rootNode2); var pUnits = (from x in Funs.DB.Project_ProjectUnit where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList(); // 获取当前用户所在单位 var currUnit = pUnits.FirstOrDefault(x => x.UnitId == this.CurrUser.UnitId); var unitWorkList = (from x in Funs.DB.WBS_UnitWork where x.ProjectId == this.CurrUser.LoginProjectId && x.SuperUnitWork == null && x.UnitId != null && x.ProjectType != null select x).ToList(); List unitWork1 = null; List unitWork2 = null; // 当前为施工单位,只能操作本单位的数据 if (currUnit != null && currUnit.UnitType == Const.ProjectUnitType_2) { unitWork1 = (from x in unitWorkList where x.UnitId == this.CurrUser.UnitId && x.ProjectType == "1" select x).ToList(); unitWork2 = (from x in unitWorkList where x.UnitId == this.CurrUser.UnitId && x.ProjectType == "2" select x).ToList(); } else { unitWork1 = (from x in unitWorkList where x.ProjectType == "1" select x).ToList(); unitWork2 = (from x in unitWorkList where x.ProjectType == "2" select x).ToList(); } if (unitWork1.Count() > 0) { foreach (var q in unitWork1) { if (q != null) { int a = (from x in PipelineService.hJGL_Pipelines where x.UnitWorkId == q.UnitWorkId select x).Count(); var u = BLL.UnitService.GetUnitByUnitId(q.UnitId); TreeNode tn1 = new TreeNode(); tn1.NodeID = q.UnitWorkId; tn1.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线"; tn1.ToolTip = "施工单位:" + u.UnitName; tn1.CommandName = "单位工程"; tn1.EnableExpandEvent = true; rootNode1.Nodes.Add(tn1); if (a > 0) { // BindNodes(tn1); TreeNode newNode = new TreeNode(); newNode.Text = "加载管线..."; newNode.NodeID = "加载管线..."; tn1.Nodes.Add(newNode); } } } } if (unitWork2.Count() > 0) { foreach (var q in unitWork2) { int a = (from x in PipelineService.hJGL_Pipelines where x.UnitWorkId == q.UnitWorkId && x.PipelineCode.Contains(this.tvPipeCode.Text.Trim()) select x).Count(); var u = BLL.UnitService.GetUnitByUnitId(q.UnitId); TreeNode tn2 = new TreeNode(); tn2.NodeID = q.UnitWorkId; tn2.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线"; if (q.UnitWorkId == this.hdUnitWorkId.Text) { tn2.Expanded = true; } tn2.ToolTip = "施工单位:" + u.UnitName; tn2.CommandName = "单位工程"; tn2.EnableExpandEvent = true; tn2.EnableClickEvent = true; rootNode2.Nodes.Add(tn2); if (a > 0) { // BindNodes(tn2); TreeNode newNode = new TreeNode(); newNode.Text = "加载管线..."; newNode.NodeID = "加载管线..."; tn2.Nodes.Add(newNode); } } } //if (unitWork1.Count() > 0) //{ // foreach (var q in unitWork1) // { // // int a = (from x in Funs.DB.HJGL_Pipeline where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == q.UnitWorkId select x).Count(); // int a = (from x in Funs.DB.View_HJGL_JointInfoQuery where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == q.UnitWorkId select x).Count(); // var u = BLL.UnitService.GetUnitByUnitId(q.UnitId); // TreeNode tn1 = new TreeNode(); // tn1.NodeID = q.UnitWorkId; // tn1.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "焊口"; // tn1.ToolTip = "施工单位:" + u.UnitName; // tn1.EnableClickEvent = true; // rootNode1.Nodes.Add(tn1); // } //} //if (unitWork2.Count() > 0) //{ // foreach (var q in unitWork2) // { // int a = (from x in Funs.DB.View_HJGL_JointInfoQuery where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == q.UnitWorkId select x).Count(); // var u = BLL.UnitService.GetUnitByUnitId(q.UnitId); // TreeNode tn2 = new TreeNode(); // tn2.NodeID = q.UnitWorkId; // tn2.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "焊口"; // tn2.ToolTip = "施工单位:" + u.UnitName; // tn2.EnableClickEvent = true; // rootNode2.Nodes.Add(tn2); // } //} } #endregion #region 点击TreeView /// /// 点击TreeView /// /// /// protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) { this.BindGrid(); Model.Parameter3D parameter3D = new Model.Parameter3D(); Model.ColorModel colorModel = new Model.ColorModel(); colorModel = BLL.Project_SysSetService.GetColorModel(this.CurrUser.LoginProjectId); parameter3D.ColorModel = colorModel; parameter3D.TagNum = ""; parameter3D.ButtonType = "2.1"; parameter3D.ModelName = HJGL_DataImportService.Getlatest3DModelNameByUnitWorkId(tvControlItem.SelectedNodeID); if (this.tvControlItem.SelectedNode.CommandName == "单位工程") { parameter3D.ModelName = HJGL_DataImportService.Getlatest3DModelNameByUnitWorkId(tvControlItem.SelectedNodeID); parameter3D.Crater_data = "0"; parameter3D.Completed_weldedjunction = Completed_weldedjunction; parameter3D.Incomplete_weldjunction = Incomplete_weldjunction; } else if (this.tvControlItem.SelectedNode.CommandName == "管线") { var model = PipelineService.GetPipelineByPipelineId(tvControlItem.SelectedNodeID); if (model != null&&!string.IsNullOrEmpty(model.UnitWorkId)) { parameter3D.Crater_data = "1"; parameter3D.TagNum = "/" + model.PipelineCode; parameter3D.ModelName = HJGL_DataImportService.Getlatest3DModelNameByUnitWorkId(model.UnitWorkId); } } parameter3D.Transparency = colorModel.PipelineComplete; parameter3D.Finished_color = colorModel.JointCompleteColor; parameter3D.Incomplete_color = colorModel.JointNOCompleteColor; ctlAuditFlow.Url_item = BLL.Project_SysSetService.GetAvevaNetUrl(this.CurrUser.LoginProjectId) + "item/IPE%7CVPD%7C" + parameter3D.ModelName; ctlAuditFlow.data = parameter3D; ctlAuditFlow.BindData(); } protected void tvControlItem_TreeNodeExpanded(object sender, TreeNodeEventArgs e) { e.Node.Nodes.Clear(); if (e.Node.CommandName == "单位工程") { var pipeline = (from x in PipelineService.hJGL_Pipelines where x.UnitWorkId == e.Node.NodeID && x.PipelineCode.Contains(this.tvPipeCode.Text.Trim()) orderby x.PipelineCode select x).ToList(); foreach (var item in pipeline) { var jotCount = (from x in WeldJointService.hJGL_WeldJoints where x.PipelineId == item.PipelineId /*&& x.IsTwoJoint == null*/ select x).Count(); TreeNode newNode = new TreeNode(); newNode.Text = item.PipelineCode + "【" + jotCount.ToString() + " " + "焊口" + "】"; newNode.NodeID = item.PipelineId; newNode.CommandName = "管线"; newNode.EnableClickEvent = true; e.Node.Nodes.Add(newNode); } } } #endregion private void BindGrid() { //string strSql = @"SELECT * FROM dbo.View_HJGL_JointInfoQuery // WHERE ProjectId= @ProjectId"; //List listStr = new List(); //listStr.Add(new SqlParameter("@projectId", this.CurrUser.LoginProjectId)); //if (this.tvControlItem.SelectedNode.CommandName == "单位工程") //{ // strSql += " AND UnitWorkId =@UnitWorkId"; // listStr.Add(new SqlParameter("@UnitWorkId", this.tvControlItem.SelectedNodeID)); //} //else if (this.tvControlItem.SelectedNode.CommandName == "管线") //{ // strSql += " AND PipelineId = @PipelineId"; // listStr.Add(new SqlParameter("@PipelineId", this.tvControlItem.SelectedNodeID)); //} //if (!string.IsNullOrEmpty(this.txtWeldJointCode.Text.Trim())) //{ // strSql += " AND WeldJointCode LIKE @WeldJointCode"; // listStr.Add(new SqlParameter("@WeldJointCode", this.txtWeldJointCode.Text.Trim())); //} //SqlParameter[] parameter = listStr.ToArray(); //DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); //var q = tb.AsEnumerable().Where(x => x["WeldingDate"].ToString() != ""); //var q2 = tb.AsEnumerable().Where(x => x["JointAttribute"].ToString() == "预制口"); //var sumcount = tb.Rows.Count; //this.Grid1.RecordCount = tb.Rows.Count; Model.View_HJGL_WeldJoint model =new Model.View_HJGL_WeldJoint(); model.ProjectId = this.CurrUser.LoginProjectId; if (this.tvControlItem.SelectedNode.CommandName == "单位工程") { model.UnitWorkId = this.tvControlItem.SelectedNodeID; } else if (this.tvControlItem.SelectedNode.CommandName == "管线") { model.PipelineId= this.tvControlItem.SelectedNodeID; } model.WeldJointCode = this.txtWeldJointCode.Text; var list= BLL.WeldJointService.GetViewWeldJointsBymodel(model); get3DParmeter_weldjoint(list);//获取三维所需焊口参数 var q = list.Where(x => !string.IsNullOrEmpty(x.WeldingDate)); var q2 = list.Where(x =>x.JointAttribute == "预制口"); var sumcount= list.Count; this.Grid1.RecordCount = list.Count; this.JointComplete = q.Count(); this.JointNoComplete = sumcount - JointComplete; this.JointPre = q2.Count(); this.JointNoPre = sumcount - JointPre; //var table = this.GetPagedDataTable(Grid1, list); Grid1.DataSource = list; Grid1.DataBind(); } private void get3DParmeter_weldjoint(List model) { if (model.Any()) { var q = model.Where(x => !string.IsNullOrEmpty(x.WeldingDate));//获取已完成焊口 if (q.Any()) { List Completed_weldedjunctionList = new List(); foreach (var item in q) { Completed_weldedjunctionList.Add("/" + item.WeldJointCode); } Completed_weldedjunction = string.Join(",", Completed_weldedjunctionList); } var q1 = model.Where(x => string.IsNullOrEmpty(x.WeldingDate));//获取未完成管线 if (q1.Any()) { List Incomplete_weldjunctionList = new List(); foreach (var item in q1) { Incomplete_weldjunctionList.Add("/" + item.WeldJointCode); } Incomplete_weldjunction = string.Join(",", Incomplete_weldjunctionList); } } } #region protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid(); } /// /// 分页下拉选择事件 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) { this.BindGrid(); } #endregion #region 统计按钮事件 /// /// 统计 /// /// /// protected void BtnAnalyse_Click(object sender, EventArgs e) { BindGrid(); } /// /// 树查询 /// /// /// protected void btnTreeFind_Click(object sender, EventArgs e) { this.InitTreeMenu(); //this.BindGrid3(this.tvControlItem.SelectedNodeID); } /// /// 查询 /// /// /// protected void Tree_TextChanged(object sender, EventArgs e) { this.InitTreeMenu(); this.BindGrid(); } protected void btnGetChart_Click(object sender, EventArgs e) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("JointQueryChart.aspx?JointComplete={0}&&JointNoComplete={1}&&JointPre={2}&&JointNoPre={3}", JointComplete, JointNoComplete, JointPre, JointNoPre, "编辑 - "))); } #endregion #region 导出按钮 /// 导出按钮 /// /// /// protected void btnOut_Click(object sender, EventArgs e) { Response.ClearContent(); string filename = Funs.GetNewFileName(); Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("焊口台账总览" + filename, System.Text.Encoding.UTF8) + ".xls"); Response.ContentType = "application/excel"; Response.ContentEncoding = System.Text.Encoding.UTF8; Response.Write(GetGridTableHtml(Grid1)); Response.End(); } /// /// 导出方法 /// /// /// private string GetGridTableHtml(Grid grid) { StringBuilder sb = new StringBuilder(); grid.PageSize = 10000; BindGrid(); sb.Append(""); sb.Append(""); sb.Append(""); foreach (GridColumn column in grid.Columns) { sb.AppendFormat("", column.HeaderText); } sb.Append(""); foreach (GridRow row in grid.Rows) { sb.Append(""); foreach (GridColumn column in grid.Columns) { string html = row.Values[column.ColumnIndex].ToString(); if (column.ColumnID == "tfNumber") { html = (row.FindControl("labNumber") as AspNet.Label).Text; } sb.AppendFormat("", html); } sb.Append(""); } sb.Append("
{0}
{0}
"); return sb.ToString(); } #endregion protected void Grid1_RowClick(object sender, GridRowClickEventArgs e) { var Id = Grid1.SelectedRowIDArray; List weldjointcodes = new List(); foreach (var item in Id) { var WeldJointCode = WeldJointService.GetViewWeldJointById(item).WeldJointCode; weldjointcodes.Add("/" + WeldJointCode); } //var q = WeldJointService.GetViewWeldJointById(Grid1.SelectedRowID).PipelineCode; //var pipecode = "/" + q; Model.Parameter3D parameter3D = new Model.Parameter3D(); Model.ColorModel colorModel = new Model.ColorModel(); colorModel = BLL.Project_SysSetService.GetColorModel(this.CurrUser.LoginProjectId); parameter3D.ColorModel = colorModel; parameter3D.TagNum = string.Join(",", weldjointcodes); parameter3D.ButtonType = "2.1"; parameter3D.Crater_data = "1"; if (this.tvControlItem.SelectedNode.CommandName == "单位工程") { parameter3D.ModelName = HJGL_DataImportService.Getlatest3DModelNameByUnitWorkId(tvControlItem.SelectedNodeID); } else if (this.tvControlItem.SelectedNode.CommandName == "管线") { var model = PipelineService.GetPipelineByPipelineId(tvControlItem.SelectedNodeID); if (model != null && !string.IsNullOrEmpty(model.UnitWorkId)) { parameter3D.ModelName = HJGL_DataImportService.Getlatest3DModelNameByUnitWorkId(model.UnitWorkId); } } parameter3D.Transparency = colorModel.PipelineComplete; parameter3D.Finished_color = colorModel.JointCompleteColor; parameter3D.Incomplete_color = colorModel.JointNOCompleteColor; ctlAuditFlow.Url_item = BLL.Project_SysSetService.GetAvevaNetUrl(this.CurrUser.LoginProjectId) + "item/IPE%7CVPD%7C" + parameter3D.ModelName; ctlAuditFlow.data = parameter3D; ctlAuditFlow.BindData(); } } }