using BLL; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Web; namespace FineUIPro.Web.HJGL.PreDesign { public partial class PrePipeline : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString(); this.InitTreeMenu();//加载树 HJGL_PipelineComponentService.InitMainItemDownList(drpState,true); } } #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) { int a = (from x in Funs.DB.HJGL_Pipeline where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == q.UnitWorkId && x.PipeArea == "1" 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; rootNode1.Nodes.Add(tn1); if (a > 0) { BindNodes(tn1); } } } if (unitWork2.Count() > 0) { foreach (var q in unitWork2) { int a = (from x in Funs.DB.HJGL_Pipeline where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == q.UnitWorkId && x.PipeArea == "1" 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; rootNode2.Nodes.Add(tn2); if (a > 0) { BindNodes(tn2); } } } } private void BindNodes(TreeNode node) { List pipeline = new List(); var pipelines = from x in Funs.DB.HJGL_Pipeline where x.PipeArea == "1" select x; pipeline = (from x in pipelines where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == node.NodeID && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim()) orderby x.PipelineCode select x).ToList(); foreach (var item in pipeline) { var comCount = (from x in Funs.DB.HJGL_Pipeline_Component where x.PipelineId == item.PipelineId select x).Count(); TreeNode newNode = new TreeNode(); newNode.Text = item.PipelineCode + "【" + comCount.ToString() + " " + "组件" + "】"; newNode.ToolTip = "管线号【组件数】"; newNode.NodeID = item.PipelineId; newNode.EnableClickEvent = true; node.Nodes.Add(newNode); } } #endregion #region 点击TreeView /// /// 点击TreeView /// /// /// protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) { Model.HJGL_Pipeline pipeline = BLL.PipelineService.GetPipelineByPipelineId(this.tvControlItem.SelectedNodeID); this.hdUnitWorkId.Text = string.Empty; if (pipeline != null) { this.hdUnitWorkId.Text = this.tvControlItem.SelectedNode.ParentNode.NodeID; } this.BindGrid(); } #endregion #region 数据绑定 /// /// 数据绑定 /// private void BindGrid() { string strSql = @" SELECT com.PipelineComponentId,com.PipelineComponentCode,com.BoxNumber, com.PipelineId, punit.UnitName AS PreUnit,aunit.UnitName AS AssembleUnit, com.QRCode,com.State,pipe.PlanStartDate,com.DrawingName,com.ReceiveDate, person.PersonName FROM HJGL_Pipeline_Component com LEFT JOIN HJGL_Pipeline pipe ON pipe.PipelineId =com.PipelineId LEFT JOIN dbo.Base_Unit punit ON punit.UnitId=com.PreUnit LEFT JOIN dbo.Base_Unit aunit ON aunit.UnitId=com.AssembleUnit LEFT JOIN Person_Persons person on com.ReceiveMan=person.PersonId WHERE com.PipelineId =@PipelineId "; List listStr = new List { }; // strSql += " AND com.PipelineId =@PipelineId"; listStr.Add(new SqlParameter("@PipelineId", this.tvControlItem.SelectedNodeID)); if (!string.IsNullOrEmpty(txtPipelineComponentCode.Text)) { strSql += " AND com.PipelineComponentCode like @PipelineComponentCode"; listStr.Add(new SqlParameter("@PipelineComponentCode", "%" + this.txtPipelineComponentCode.Text.Trim() + "%")); } if (drpState.SelectedValue!=Const._Null) { strSql += " AND com.State =@State"; listStr.Add(new SqlParameter("@State", drpState.SelectedValue)); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); // 2.获取当前分页数据 Grid1.RecordCount = tb.Rows.Count; var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); } #endregion #region 分页排序 #region 页索引改变事件 /// /// 页索引改变事件 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid(); } #endregion #region 排序 /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, GridSortEventArgs e) { BindGrid(); } #endregion #region 分页选择下拉改变事件 /// /// 分页选择下拉改变事件 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } #endregion #endregion #region 管线组件信息 维护事件 /// /// Grid双击事件 /// /// /// protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) { if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.PersonId, BLL.Const.HJGL_PrePipelineMenuId, BLL.Const.BtnModify)) { Model.HJGL_Pipeline pipeline = BLL.PipelineService.GetPipelineByPipelineId(this.tvControlItem.SelectedNodeID); PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PrePipelineEdit.aspx?PipelineComponentId={0}", Grid1.SelectedRowID, "编辑 - "))); } else { ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } protected void btnPrint_Click(object sender, EventArgs e) { Print(tvControlItem.SelectedNodeID,""); } private void Print(string PipelineId ,string PipelineComponentId) { BLL.FastReportService.ResetData(); string strSql = @" SELECT com.PipelineComponentId,com.PipelineComponentCode,com.BoxNumber,unitwork.UnitWorkName, com.PipelineId, punit.UnitName AS PreUnit,aunit.UnitName AS AssembleUnit,mat.PrefabricatedComponents, com.QRCode,com.State,CONVERT(varchar(100), pipe.PlanStartDate, 23) as PlanStartDate,pipe.PipelineCode, ('PrePipeline$'+com.PipelineComponentId )as QRCode2,mater.* FROM HJGL_Pipeline_Component com LEFT JOIN HJGL_PipeLineMat mat ON mat.PipeLineMatId=com.PipeLineMatId LEFT JOIN HJGL_Pipeline pipe ON pipe.PipelineId =com.PipelineId LEFT JOIN dbo.Base_Unit punit ON punit.UnitId=com.PreUnit LEFT JOIN dbo.Base_Unit aunit ON aunit.UnitId=com.AssembleUnit LEFT JOIN dbo.WBS_UnitWork unitwork on pipe.UnitWorkId=unitwork.UnitWorkId LEFT JOIN dbo.Base_Material AS mater ON mater.MaterialId=pipe.MaterialId WHERE com.QRCode!=''"; List listStr = new List { }; strSql += " AND com.PipelineId =@PipelineId"; listStr.Add(new SqlParameter("@PipelineId", PipelineId)); if (PipelineComponentId!="") { strSql += " AND com.PipelineComponentId =@PipelineComponentId"; listStr.Add(new SqlParameter("@PipelineComponentId", PipelineComponentId)); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); if (tb != null) { tb.TableName = "Table1"; } BLL.FastReportService.AddFastreportTable(tb); string initTemplatePath = ""; string rootPath = Server.MapPath("~/"); initTemplatePath = "File\\Fastreport\\组件打印.frx"; if (File.Exists(rootPath + initTemplatePath)) { PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("~/Controls/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath))); } } /// /// 增加焊口信息 /// /// /// protected void btnNew_Click(object sender, EventArgs e) { if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.PersonId, Const.HJGL_PrePipelineMenuId, Const.BtnAdd)) { Model.HJGL_Pipeline pipeline = BLL.PipelineService.GetPipelineByPipelineId(this.tvControlItem.SelectedNodeID); if (pipeline != null) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PrePipelineEdit.aspx?PipelineId={0}", this.tvControlItem.SelectedNodeID, "新增 - "))); } else { ShowNotify("请选择管线!", MessageBoxIcon.Warning); } } else { ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } /// /// 批量增加焊口信息 /// /// /// protected void btnBatchAdd_Click(object sender, EventArgs e) { if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.PersonId, Const.HJGL_PrePipelineMenuId, Const.BtnAdd)) { Model.HJGL_Pipeline pipeline = BLL.PipelineService.GetPipelineByPipelineId(this.tvControlItem.SelectedNodeID); if (pipeline != null) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PrePipelineBatchEdit.aspx?PipelineId={0}", this.tvControlItem.SelectedNodeID, "新增 - "))); } else { ShowNotify("请选择管线!", MessageBoxIcon.Warning); } } else { ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } /// /// 删除按钮 /// /// /// protected void btnDelete_Click(object sender, EventArgs e) { if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.PersonId, Const.HJGL_PrePipelineMenuId, Const.BtnDelete)) { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning); return; } foreach (int rowIndex in Grid1.SelectedRowIndexArray) { string rowID = Grid1.DataKeys[rowIndex][0].ToString(); BLL.HJGL_PipelineComponentService.DeletePipelineComponent(rowID); ShowNotify("删除成功!", MessageBoxIcon.Success); } //this.InitTreeMenu();//加载树 this.BindGrid(); } else { Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } #endregion #region 关闭弹出窗口及刷新页面 /// /// 关闭弹出窗口 /// /// /// protected void Window1_Close(object sender, WindowCloseEventArgs e) { //this.InitTreeMenu();//加载树 this.BindGrid(); } /// /// 查询 /// /// /// protected void TextBox_TextChanged(object sender, EventArgs e) { this.BindGrid(); } /// /// 查询 /// /// /// protected void Tree_TextChanged(object sender, EventArgs e) { this.InitTreeMenu(); this.BindGrid(); } #endregion /// /// 搜索 /// /// /// protected void btnSearch_Click(object sender, EventArgs e) { BindGrid(); } public string ConvertImageUrlByImage(object str, object id) { string path = string.Empty; if (!string.IsNullOrEmpty(str.ToString())) { path = BLL.CreateQRCodeService.CreateCode_Simple(str.ToString(), id.ToString()); path = HttpUtility.HtmlDecode(BLL.UploadAttachmentService.ShowImage("../../", path)); } return path; } public string ConvertState(object state) { string StateName = string.Empty; if (!string.IsNullOrEmpty(state.ToString())) { if (state != null) { string txt = HJGL_PipelineComponentService.GetState().FirstOrDefault(x => x.Value == state.ToString()).Text; return txt; } return ""; } return StateName; } protected void btnImportQRCode_Click(object sender, EventArgs e) { PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("PrePipelineQRCodeIn.aspx?", "导入 - "))); } protected void btnSinglePreview_Click(object sender, EventArgs e) { //string httpUrl = @"FileUpload\HJGL_DataImport\095e9691-99c2-4f70-8e67-e70c8fa6be9c\2022-06\管道焊接工作记录.pdf"; //var newurl = Funs.SGGLUrl + httpUrl.Replace(Funs.RootPath, ""); var id = Grid1.SelectedRowID; if (string.IsNullOrEmpty(id)) { ShowNotify("请选择相对应的管道预制加工图", MessageBoxIcon.Warning); return; } var SingleName = (from x in Funs.DB.HJGL_Pipeline_Component where x.PipelineComponentId == id select (x.DrawingName)).FirstOrDefault(); var filemodel = BLL.HJGL_DataImportService.GetLatestFileByFileName(SingleName,"3", this.CurrUser.LoginProjectId); if (filemodel != null) { string httpUrl = filemodel.FilePath; PageContext.RegisterStartupScript(Window4.GetShowReference(String.Format("~/AttachFile/Look.aspx?fileUrl={0}", httpUrl, "查看 -"))); } else { ShowNotify("请上传相关管道预制加工图", MessageBoxIcon.Warning); return; } } protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { if (e.CommandName == "PreviewQRCode") { var ID = e.RowID; var q = HJGL_PipelineComponentService.GetPipelineComponentById(ID); string path = ""; if (!string.IsNullOrEmpty(q.QRCode)) { path = BLL.CreateQRCodeService.CreateCode_Simple(q.QRCode, ID); if (!string.IsNullOrEmpty(path)) { string filepath = Funs.SGGLUrl + path.Replace("\\", "//"); ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", ""); } } } else if (e.CommandName == "cmd_print") { string Id = this.Grid1.SelectedRowID; Print(tvControlItem.SelectedNodeID, Id); } } } }