using BLL; 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.HSSE.SitePerson { public partial class SendCard : PageBase { #region 定义项 /// /// 人员Id /// public string PersonId { get { return (string)ViewState["PersonId"]; } set { ViewState["PersonId"] = value; } } #endregion #region 加载页面 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Funs.DropDownPageSize(this.ddlPageSize); ////权限按钮方法 this.GetButtonPower(); if (this.CurrUser != null && this.CurrUser.PageSize.HasValue) { Grid1.PageSize = this.CurrUser.PageSize.Value; } this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); // 绑定表格 this.BindGrid(); } } /// /// 绑定数据 /// private void BindGrid() { string strSql = @"SELECT person.PersonId,person.CardNo,person.PersonName,person.IdentityCard,unit.UnitName,person.UnitId, post.WorkPostName, work.UnitWorkName AS WorkAreaName,person.ProjectId" + @" FROM dbo.SitePerson_Person person" + @" LEFT JOIN dbo.Base_Unit unit ON unit.UnitId=person.UnitId" + @" LEFT JOIN dbo.Base_WorkPost post ON post.WorkPostId=person.WorkPostId" + @" LEFT JOIN dbo.WBS_UnitWork work ON work.UnitWorkId=person.WorkAreaId " + @" WHERE person.ProjectId=@ProjectId "; List listStr = new List(); if (!string.IsNullOrEmpty(Request.Params["projectId"])) ///是否文件柜查看页面传项目值 { listStr.Add(new SqlParameter("@ProjectId", Request.Params["projectId"])); } else { listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); } if (!string.IsNullOrEmpty(this.txtPersonName.Text.Trim())) { strSql += " AND person.PersonName LIKE @PersonName"; listStr.Add(new SqlParameter("@PersonName", "%" + this.txtPersonName.Text.Trim() + "%")); } if (!string.IsNullOrEmpty(this.txtUnitName.Text.Trim())) { strSql += " AND unit.UnitName LIKE @UnitName"; listStr.Add(new SqlParameter("@UnitName", "%" + this.txtUnitName.Text.Trim() + "%")); } if (this.cbIsSend.SelectedValueArray.Length == 1) ///是否发卡 { string selectValue = String.Join(", ", this.cbIsSend.SelectedValueArray); if (selectValue == "1") { strSql += " AND person.CardNo IS NOT NULL "; } else { strSql += " AND person.CardNo IS NULL "; } } if (!this.ckPrint.Hidden) { ///是否打印 if (this.ckPrint.SelectedValueArray.Length == 1) { string selectValue = String.Join(", ", this.ckPrint.SelectedValueArray); if (selectValue == "1") { strSql += " AND person.isprint ='1'"; } else { strSql += " AND person.isprint ='0' "; } } } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.RecordCount = tb.Rows.Count; var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); } #endregion #region Gv事件 #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 关闭弹出窗事件 /// /// 关闭弹出框事件 /// /// /// protected void Window1_Close(object sender, WindowCloseEventArgs e) { BindGrid(); } #endregion #region 发卡 /// /// 右键发卡事件 /// /// /// protected void btnSendCard_Click(object sender, EventArgs e) { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); return; } this.PersonId = this.Grid1.SelectedRowID; var person = PersonService.GetPersonById(PersonId); if (person != null) { if (!string.IsNullOrEmpty(person.CardNo)) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SendCardView.aspx?PersonId={0}", this.PersonId, "发卡 - "))); } else { if (ConvertTrainResult(PersonId) == "通过") { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ReadWriteCard.aspx?PersonId={0}", this.PersonId, "发卡 - "))); } else { Alert.ShowInTop("培训未通过,不能发卡!", MessageBoxIcon.Warning); return; } } } } #endregion #region 获取按钮权限 /// /// 获取按钮权限 /// /// /// private void GetButtonPower() { if (Request.Params["value"] == "0") { return; } var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.SendCardMenuId); if (buttonList.Count() > 0) { if (buttonList.Contains(BLL.Const.BtnSendCard)) { this.btnSendCard.Hidden = false; } } } #endregion #region 获取培训结果 /// /// 获取培训结果 /// /// /// protected string ConvertTrainResult(object PersonId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { string result = string.Empty; if (PersonId != null) { string personId = PersonId.ToString().Trim(); List trainTypeList = BLL.TrainTypeService.GetIsAboutSendCardTrainTypeList(); int i = 0; //培训合格次数 foreach (var item in trainTypeList) { var q = (from x in db.EduTrain_TrainRecord join y in db.EduTrain_TrainRecordDetail on x.TrainingId equals y.TrainingId where x.TrainTypeId == item.TrainTypeId && y.PersonId == PersonId.ToString() && y.CheckResult == true select y); i += q.Count(); } if (i >= trainTypeList.Count) { result = "通过"; } else { result = "未通过"; } } return result; } } #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; this.Grid1.PageSize = 500; BindGrid(); Response.Write(GetGridTableHtml(Grid1)); Response.End(); } #endregion #region 查询 /// /// 查询 /// /// /// protected void TextBox_TextChanged(object sender, EventArgs e) { this.ckPrint.Hidden = true; this.btnPrint.Hidden = true; string selectValue = String.Join(", ", this.cbIsSend.SelectedValueArray); if (selectValue.Contains("1")) { this.ckPrint.Hidden = false; this.btnPrint.Hidden = false; } this.BindGrid(); } #endregion protected void btnPrint_Click(object sender, EventArgs e) { if (Grid1.SelectedRowIndexArray.Length > 0) { string pList = string.Empty; foreach (int rowIndex in Grid1.SelectedRowIndexArray) { if (string.IsNullOrEmpty(pList)) { pList = Grid1.DataKeys[rowIndex][0].ToString(); } else { pList +=","+ Grid1.DataKeys[rowIndex][0].ToString(); } } if (!string.IsNullOrEmpty(pList)) { PrinterDocService.PrinterDocMethod(BLL.Const.SendCardMenuId, pList, "人员上岗证安全卡片"); } else { Alert.ShowInParent("请选择要导出的卡片!"); return; } } } } }