using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using BLL; namespace FineUIPro.Web.HJGL.WeldingManage { public partial class WeldReportItemEdit : PageBase { #region 定义项 /// /// 单位主键 /// public string UnitId { get { return (string)ViewState["UnitId"]; } set { ViewState["UnitId"] = value; } } /// /// 装置主键 /// public string InstallationId { get { return (string)ViewState["InstallationId"]; } set { ViewState["InstallationId"] = value; } } /// /// 焊口主键 /// public string Jot_ID { get { return (string)ViewState["Jot_ID"]; } set { ViewState["Jot_ID"] = value; } } /// /// 日报主键 /// public string DReportID { get { return (string)ViewState["DReportID"]; } set { ViewState["DReportID"] = value; } } /// /// 项目 /// public string ProjectId { get { return (string)ViewState["ProjectId"]; } set { ViewState["ProjectId"] = value; } } /// /// 被选择项列表 /// public List SelectedList { get { return (List)ViewState["SelectedList"]; } set { ViewState["SelectedList"] = value; } } #endregion #region 加载页面 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.SelectedList = new List(); //this.NoSelectedList = new List(); string strList = Request.Params["strList"]; List list = Funs.GetStrListByStr(strList, '|'); if (list.Count() == 4) { this.ProjectId = list[0]; this.UnitId = list[1]; this.DReportID = list[2]; this.InstallationId = list[3]; BLL.WorkAreaService.InitWorkAreaProjectInstallUnitDropDownList(this.drpWorkArea, this.CurrUser.LoginProjectId, this.InstallationId, this.UnitId, true); ///盖面焊工 drpCellWelder.DataTextField = "Text"; drpCellWelder.DataValueField = "Value"; drpCellWelder.DataSource = BLL.WelderService.GetWelderCodeListByProjectIdAndUnitId(this.CurrUser.LoginProjectId, this.UnitId); drpCellWelder.DataBind(); Funs.FineUIPleaseSelect(this.drpCellWelder); ///打底焊工 drpFloorWelder.DataTextField = "Text"; drpFloorWelder.DataValueField = "Value"; drpFloorWelder.DataSource = BLL.WelderService.GetWelderCodeListByProjectIdAndUnitId(this.CurrUser.LoginProjectId, this.UnitId); drpFloorWelder.DataBind(); //this.BindGrid(); Funs.FineUIPleaseSelect(this.drpFloorWelder); } //this.InitTreeMenu();//加载树 } } #endregion #region 加载树 /// /// 加载树 /// 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 iso = (from x in Funs.DB.PW_IsoInfo where x.ProjectId == this.ProjectId && x.UnitId == this.UnitId orderby x.ISO_IsoNo select x).ToList(); if (this.drpWorkArea.SelectedValue != BLL.Const._Null) { iso= (from x in iso where x.WorkAreaId==this.drpWorkArea.SelectedValue orderby x.ISO_IsoNo select x).ToList(); } if (!string.IsNullOrEmpty(this.txtIsono.Text)) { iso = (from x in iso where x.ISO_IsoNo.Contains(this.txtIsono.Text.Trim()) orderby x.ISO_IsoNo select x).ToList(); } foreach (var item in iso) { TreeNode newNode = new TreeNode(); newNode.Text = item.ISO_IsoNo; newNode.NodeID = item.ISO_ID; newNode.ToolTip = item.ISO_IsoNo; newNode.EnableClickEvent = true; rootNode.Nodes.Add(newNode); } } #endregion #region 数据绑定 /// /// 数据绑定 /// private void BindGrid() { string isoId = this.tvControlItem.SelectedNodeID; string strSql = @"SELECT distinct CONVERT(INT,dbo.Fun_GetParseInt(jot.JOT_JointNo) ) [index],jot.JOT_ID,jot.JOT_JointNo,jot.ISO_IsoNo,jot.JOT_JointDesc, jot.STE_Name1,jot.STE_Name2 FROM dbo.View_JointInfo jot WHERE (jot.DReportID IS NULL OR jot.DReportID=@DReportID) AND jot.ProjectId=@ProjectId AND jot.ISO_ID=@ISO_ID"; if (!string.IsNullOrEmpty(txtJOT_JointNo.Text)) { strSql += " AND jot.JOT_JointNo like '%"+txtJOT_JointNo.Text+"%'"; } var welder = WelderService.GetWelderByCode(this.CurrUser.LoginProjectId,this.drpCellWelder.SelectedValue); if (welder != null) { var items = (from x in Funs.DB.BS_WeldMethodItem where x.WED_ID == welder.WED_ID select x.WME_ID).FirstOrDefault(); if (items != null) { strSql += " AND jot.WME_ID in (select WME_ID from BS_WeldMethodItem where WED_ID='" + welder.WED_ID + "')"; } if (!string.IsNullOrEmpty(welder.JOT_Sch)) { strSql += " AND jot.JOT_Sch in ('" + welder.JOT_Sch.Replace(",", "','") + "')"; } if (!string.IsNullOrEmpty(welder.Steels)) { strSql += "AND jot.MaterialId in (select MaterialId from Base_Material where SteelType in (" + welder.Steels + "))"; } } List listStr = new List(); listStr.Add(new SqlParameter("@DReportID", this.DReportID)); listStr.Add(new SqlParameter("@ProjectId", this.ProjectId)); listStr.Add(new SqlParameter("@ISO_ID", isoId)); strSql += " ORDER BY [index]"; SqlParameter[] parameter = listStr.ToArray(); DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter); string jotIds = Request.Params["jotIds"]; if (!string.IsNullOrEmpty(jotIds)) { string[] jots = jotIds.Split('|'); foreach (string jotId in jots) { DataRow r = dt.Select("JOT_ID='" + jotId + "'").FirstOrDefault(); if (r != null) { dt.Rows.Remove(r); } //Model.HJGL_SpRpWeldReportItem item = toDoMatterList.FirstOrDefault(e => e.JOT_ID == jotId); //if (item != null) //{ // toDoMatterList.Remove(item); //} } } if (dt != null) { foreach (DataRow row in dt.Rows) { try { row["index"] = int.Parse(System.Text.RegularExpressions.Regex.Replace(row["JOT_JointNo"].ToString(), @"[^0-9]+", "")); } catch (Exception e) { row["index"] = 0; } } } //DataTable tb = this.LINQToDataTable(toDoMatterList); // 2.获取当前分页数据 Grid1.RecordCount = dt.Rows.Count; var table = this.GetPagedDataTable(Grid1, dt); table = GetFilteredTable(Grid1.FilteredData, table); Grid1.DataSource = table; Grid1.DataBind(); //string[] arr = new string[this.Grid1.Rows.Count]; //int a = 0; //for (int i = 0; i < this.Grid1.Rows.Count; i++) //{ // string rowId = this.Grid1.Rows[i].DataKeys[0].ToString(); // if (jotIds.Contains(rowId)) // { // arr[a] = rowId; // } // a++; //} //Grid1.SelectedRowIDArray = arr; } #endregion #region 管线查询 /// /// 查询 /// /// /// protected void Tree_TextChanged(object sender, EventArgs e) { this.InitTreeMenu(); this.BindGrid(); } #endregion #region 点击TreeView /// /// 点击TreeView /// /// /// protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) { string[] selectRowId = Grid1.SelectedRowIDArray; for (int i = 0; i < this.Grid1.Rows.Count; i++) { string rowId = this.Grid1.Rows[i].DataKeys[0].ToString(); if (selectRowId.Contains(rowId)) { SelectedList.Add(rowId); } //else //{ // NoSelectedList.Add(rowId); //} } this.BindGrid(); } #endregion #region DropDownList下拉事件 /// /// 盖面、打底焊工一致 /// /// /// protected void drpCellWelder_OnSelectedIndexChanged(object sender, EventArgs e) { this.drpFloorWelder.SelectedValue = this.drpCellWelder.SelectedValue; this.BindGrid(); } #endregion #region 排序 /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, GridSortEventArgs e) { this.BindGrid(); } #endregion //protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) //{ // BindGrid(); //} protected void txtJOT_JointNo_TextChanged(object sender, EventArgs e) { string[] selectRowId = Grid1.SelectedRowIDArray; for (int i = 0; i < this.Grid1.Rows.Count; i++) { string rowId = this.Grid1.Rows[i].DataKeys[0].ToString(); if (selectRowId.Contains(rowId)) { SelectedList.Add(rowId); } //else //{ // NoSelectedList.Add(rowId); //} } BindGrid(); } #region 提交按钮 /// /// 提交按钮 /// /// /// protected void btnAccept_Click(object sender, EventArgs e) { if (this.drpCellWelder.SelectedValue != Const._Null && this.drpFloorWelder.SelectedValue != Const._Null) { string itemsString = string.Empty; string[] selectRowId = Grid1.SelectedRowIDArray; for (int i = 0; i < this.Grid1.Rows.Count; i++) { string rowId = this.Grid1.Rows[i].DataKeys[0].ToString(); if (selectRowId.Contains(rowId)) { SelectedList.Add(rowId); } } string jotIds = Request.Params["jotIds"]; if (!string.IsNullOrEmpty(jotIds)) { string[] jots = jotIds.Split('|'); foreach (string jotId in jots) { SelectedList.Add(jotId); } } var welders = from x in Funs.DB.BS_Welder where x.ProjectId == this.CurrUser.LoginProjectId && x.WED_Unit == this.UnitId select x; string cellWelderId = string.Empty,floorWelderId=string.Empty; var cellWelder = welders.FirstOrDefault(x=>x.WED_Code==this.drpCellWelder.SelectedValue); if (cellWelder != null) { cellWelderId = cellWelder.WED_ID; } var floorWelder = welders.FirstOrDefault(x => x.WED_Code == this.drpFloorWelder.SelectedValue); if (floorWelder != null) { floorWelderId = floorWelder.WED_ID; } itemsString = cellWelderId + "|" + floorWelderId + "#"; foreach (var item in SelectedList) { if (!itemsString.Contains(item)) { itemsString += item + "|"; } } PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(itemsString) + ActiveWindow.GetHidePostBackReference()); } else { ShowNotify("请选择焊工!", MessageBoxIcon.Warning); return; } } #endregion } }