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; using System.Web.UI; using System.Web.UI.WebControls; namespace FineUIPro.Web.YLRQ.ConstructionManagement { public partial class ReworkBeforeConfirmation : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); BridProjectGrid(); // 绑定表格 BindGrid(); } } #region 绑定数据 /// /// 绑定项目 /// public void BridProjectGrid() { GridProject.DataSource = BLL.Base_ProjectService.GetYlrqProjectListByUserId(this.CurrUser.UserId, "2"); GridProject.DataBind(); drpProject.Value = this.CurrUser.LoginProjectId; } /// /// 绑定数据 /// private void BindGrid() { //获取焊工信息 string weldStr = "SELECT ProjectWelder.ProjectWelderId,ProjectWelder.WED_ID,Welder.WED_Code,Welder.WED_Name,ProjectWelder.IsSelected,ProjectWelder.SelectedMan,ProjectWelder.IsApprove,ProjectWelder.ApproveMan FROM dbo.Project_Welder AS ProjectWelder LEFT JOIN HJGL_BS_Welder AS Welder ON ProjectWelder.WED_ID = Welder.WED_ID WHERE ProjectWelder.ProjectId=@ProjectId "; SqlParameter[] weldParameter = new SqlParameter[] { new SqlParameter("@ProjectId", drpProject.Value) }; var welderdt = SQLHelper.GetDataTableRunText(weldStr, weldParameter); //打底焊工 DropDownList ddlBackingWelder = Grid1.FindColumn("BackingWelderId").FindControl("ddlBackingWelder") as DropDownList; ddlBackingWelder.DataTextField = "WED_Name"; ddlBackingWelder.DataValueField = "WED_ID"; ddlBackingWelder.DataSource = welderdt; ddlBackingWelder.DataBind(); //盖面焊工 DropDownList ddlCoverWelder = Grid1.FindColumn("CoverWelderId").FindControl("ddlCoverWelder") as DropDownList; ddlCoverWelder.DataTextField = "WED_Name"; ddlCoverWelder.DataValueField = "WED_ID"; ddlCoverWelder.DataSource = welderdt; ddlCoverWelder.DataBind(); string strSql = @"select a.RepairItemRecordId,a.WeldingId,a.ProjectId,a.FilmNum,b.WME_Code,c.WeldingCode,ISNULL(a.BackingWelderId,c.BackingWelderId) as BackingWelderId,(select a.pkidStr from (SELECT STUFF(( SELECT ',' +convert(VARCHAR, WED_Name) FROM (select Welder.WED_Name from HJGL_BS_Welder as Welder where Welder.WED_ID in (select Id from StrToTable(ISNULL(a.BackingWelderId,c.BackingWelderId))))t FOR XML PATH('')), 1, 1, '') AS pkidStr) a) as BackingWelderName,ISNULL(a.CoverWelderId,c.CoverWelderId) as CoverWelderId,(select a.pkidStr from (SELECT STUFF(( SELECT ',' +convert(VARCHAR, WED_Name) FROM (select Welder.WED_Name from HJGL_BS_Welder as Welder where Welder.WED_ID in (select Id from StrToTable(ISNULL(a.CoverWelderId,c.CoverWelderId))))t FOR XML PATH('')), 1, 1, '') AS pkidStr) a) as CoverWelderName,a.Confirmation,(case a.Confirmation when 0 then '未确认' when 1 then '已确认' else '' end) as ConfirmationName,a.SerialNumber from PV_CH_RepairItemRecord as a left join HJGL_BS_WeldMethod as b on a.WmeId=b.WME_ID left join PV_WeldInformation as c on c.WeldingId=a.WeldingId WHERE 1=1 and (select COUNT(1) from PV_ReworkManagementMethod as manage where manage.RepairItemRecordId=a.RepairItemRecordId)>0 and a.ProjectId=@ProjectId "; List listStr = new List(); listStr.Add(new SqlParameter("@ProjectId", drpProject.Value)); SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); // 2.获取当前分页数据 Grid1.RecordCount = tb.Rows.Count; tb = GetFilteredTable(Grid1.FilteredData, tb); var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); } #endregion #region 分页排序 /// /// /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; BindGrid(); } /// /// 分页下拉选择 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } /// /// /// /// /// protected void Grid1_FilterChange(object sender, EventArgs e) { BindGrid(); } /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; BindGrid(); } #endregion #region 按钮和事件 /// /// 施工号下拉框 /// protected void drpProject_TextChanged(object sender, EventArgs e) { BindGrid(); } /// /// 保存 /// protected void btnSave_Click(object sender, EventArgs e) { if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.PV_ReworkBeforeConfirmation, Const.BtnSubmit)) { JArray mergedData = Grid1.GetMergedData(); int rowIndex = 0; foreach (JObject mergedRow in mergedData) { string status = mergedRow.Value("status"); JObject values = mergedRow.Value("values"); var repairItemRecordId = Grid1.DataKeys[rowIndex][0].ToString(); var model = Funs.DB.PV_CH_RepairItemRecord.FirstOrDefault(p => p.RepairItemRecordId == repairItemRecordId); if (model == null) continue; model.BackingWelderId = values.Value("BackingWelderId"); model.CoverWelderId = values.Value("CoverWelderId"); model.Confirmation = values.Value("Confirmation"); model.SerialNumber = values.Value("SerialNumber"); Funs.DB.SubmitChanges(); rowIndex++; } BindGrid(); ShowNotify("操作成功!"); } else { ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } #endregion } }