using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using BLL; using Newtonsoft.Json.Linq; using AspNet = System.Web.UI.WebControls; namespace FineUIPro.Web.Person { public partial class ShuntDetailEdit : PageBase { /// /// 定义项 /// public string ProjectId { get { return (string)ViewState["ProjectId"]; } set { ViewState["ProjectId"] = value; } } #region 加载 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { WorkPostService.InitWorkPostDropDownList(this.drpWorkPost, true); WorkPostService.InitWorkPostNameDropDownList(this.drpWP, false); PostTitleService.InitPostTitleDropDownList(this.drpPostTitle, true); PracticeCertificateService.InitPracticeCertificateDropDownList(this.drpCertificate, true); // 绑定表格 this.BindGrid(); } } #endregion /// /// 绑定数据 /// private void BindGrid() { string strSql = @"SELECT Users.UserId,Users.Account,Users.UserCode,Users.Password,Users.UserName,Users.RoleId,Users.WorkPostId,Users.UnitId,Users.IsPost,CASE WHEN Users.IsPost=1 THEN '是' ELSE '否' END AS IsPostName,Users.IdentityCard,Users.Telephone,Users.IsOffice," + @"Users.Major,PostTitle.PostTitleName" + @" From dbo.Sys_User AS Users" + @" LEFT JOIN Base_Unit AS Unit ON Unit.UnitId=Users.UnitId" + @" LEFT JOIN Base_PostTitle AS PostTitle ON PostTitle.PostTitleId=Users.PostTitleId" + @" WHERE Users.UserId !='" + Const.sysglyId + "' AND Users.IsPost =1 AND Users.UserId !='" + Const.hfnbdId + "' AND Users.UserId !='" + Const.sedinId + "' AND Unit.UnitId='" + Const.UnitId_TCC + "' AND Users.DepartId='" + Const.Depart_constructionId + "' "; List listStr = new List(); if (this.drpWorkPost.SelectedValue != BLL.Const._Null) { strSql += " AND CHARINDEX(@WorkPostId,Users.WorkPostId)>0 "; listStr.Add(new SqlParameter("@WorkPostId", this.drpWorkPost.SelectedValue)); } if (this.drpPostTitle.SelectedValue != BLL.Const._Null) { strSql += " AND Users.PostTitleId = @PostTitleId"; listStr.Add(new SqlParameter("@PostTitleId", this.drpPostTitle.SelectedValue)); } if (this.drpCertificate.SelectedValue != BLL.Const._Null) { strSql += " AND CHARINDEX(@CertificateId,Users.CertificateId)>0 "; listStr.Add(new SqlParameter("@CertificateId", this.drpCertificate.SelectedValue)); } if (!string.IsNullOrEmpty(Request.Params["ids"])) { strSql += " AND CHARINDEX(Users.UserId,@Ids)=0 "; listStr.Add(new SqlParameter("@Ids", Request.Params["ids"])); } 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(); } #region 排序 分页 /// /// /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; BindGrid(); } /// /// /// /// /// protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; BindGrid(); } #endregion /// /// 确定按钮事件 /// /// /// protected void btnSure_Click(object sender, EventArgs e) { bool b = true; foreach (JObject mergedRow in Grid1.GetMergedData()) { JObject values = mergedRow.Value("values"); int i = mergedRow.Value("index"); AspNet.CheckBox cb = (AspNet.CheckBox)(this.Grid1.Rows[i].FindControl("cbSelect")); if (cb.Checked) //选择项 { string workPost = values.Value("WorkPost"); if (string.IsNullOrEmpty(workPost)) { b = false; } } } if (!b) { Alert.ShowInTop("勾选人员的拟聘岗位不能为空!", MessageBoxIcon.Warning); return; } string ids = string.Empty; if (!string.IsNullOrEmpty(Request.Params["ids"])) { ids = Request.Params["ids"] + ","; } var workPosts = BLL.WorkPostService.GetWorkPostList(); foreach (JObject mergedRow in Grid1.GetMergedData()) { JObject values = mergedRow.Value("values"); int i = mergedRow.Value("index"); AspNet.CheckBox cb = (AspNet.CheckBox)(this.Grid1.Rows[i].FindControl("cbSelect")); if (cb.Checked) //选择项 { string id = Grid1.Rows[i].RowID; string workPost = values.Value("WorkPost"); var w = workPosts.FirstOrDefault(x => x.WorkPostName == workPost); string wid = string.Empty; if (w != null) { wid = w.WorkPostId; } ids += id + "|" + wid + ","; } } if (!string.IsNullOrEmpty(ids)) { ids = ids.Substring(0, ids.Length - 1); } PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(ids) + ActiveWindow.GetHidePostBackReference()); } #region 查询 /// /// 查询 /// /// /// protected void TextBox_TextChanged(object sender, EventArgs e) { this.BindGrid(); } #endregion /// /// 保存数据 /// /// private void SaveData(string userId) { var projectUser = BLL.ProjectUserService.GetProjectUserByUserIdProjectId(this.ProjectId, userId); if (projectUser == null) { var user = BLL.UserService.GetUserByUserId(userId); if (user != null) { Model.Project_ProjectUser newProjectUser = new Model.Project_ProjectUser { ProjectId = this.ProjectId, UserId = userId, UnitId = user.UnitId, RoleId = user.RoleId, IsPost = true }; BLL.ProjectUserService.AddProjectUser(newProjectUser); Model.Sys_RoleItem roleItem = new Model.Sys_RoleItem(); roleItem.ProjectId = this.ProjectId; roleItem.UserId = userId; roleItem.RoleId = user.RoleId; roleItem.IntoDate = DateTime.Now; BLL.RoleItemService.AddRoleItem(roleItem); if (!string.IsNullOrEmpty(user.IdentityCard)) { ///当前用户是否已经添加到项目现场人员中 var sitePerson = BLL.PersonService.GetPersonByIdentityCard(this.ProjectId, user.IdentityCard); if (sitePerson == null) { Model.SitePerson_Person newPerson = new Model.SitePerson_Person { PersonId = SQLHelper.GetNewID(typeof(Model.SitePerson_Person)), PersonName = user.UserName, Sex = user.Sex, IdentityCard = user.IdentityCard, ProjectId = this.ProjectId, UnitId = user.UnitId, IsUsed = true }; BLL.PersonService.AddPerson(newPerson); } } } } } #region 转换字符串 // //获取职业资格证书名称 // // // protected string ConvertCertificateName(object UserId) { string CertificateName = string.Empty; if (UserId != null) { var user = BLL.UserService.GetUserByUserId(UserId.ToString()); if (user != null && !string.IsNullOrEmpty(user.CertificateId)) { string[] Ids = user.CertificateId.Split(','); foreach (string t in Ids) { var type = BLL.PracticeCertificateService.GetPracticeCertificateById(t); if (type != null) { CertificateName += type.PracticeCertificateName + ","; } } } } if (CertificateName != string.Empty) { return CertificateName.Substring(0, CertificateName.Length - 1); } else { return ""; } } // //获取当前项目名称 // // // protected string ConvertCurrProject(object UserId) { string ProjectName = string.Empty; if (UserId != null) { var roleItem = BLL.RoleItemService.GeCurrRoleItemByUserId(UserId.ToString()); if (roleItem != null && roleItem.OutDate != null) { if (!string.IsNullOrEmpty(roleItem.ProjectId)) { ProjectName = BLL.ProjectService.GetProjectNameByProjectId(roleItem.ProjectId); } else { ProjectName = roleItem.ProjectName; } } } return ProjectName; } // //获取岗位名称 // // // protected string ConvertUserWorkPost(object UserId) { string WorkPostName = string.Empty; if (UserId != null) { var user = BLL.UserService.GetUserByUserId(UserId.ToString()); if (user != null && !string.IsNullOrEmpty(user.WorkPostId)) { string[] Ids = user.WorkPostId.Split(','); foreach (string t in Ids) { var type = BLL.WorkPostService.GetWorkPostById(t); if (type != null) { WorkPostName += type.WorkPostName + ","; } } } } return WorkPostName; } // //获取当前岗位名称 // // // protected string ConvertCurrWorkPost(object UserId) { string WorkPostName = string.Empty; if (UserId != null) { var roleItem = BLL.RoleItemService.GeCurrRoleItemByUserId(UserId.ToString()); if (roleItem != null && roleItem.OutDate != null) { var projectUser = BLL.ProjectUserService.GetProjectUserByUserIdProjectId(roleItem.ProjectId, roleItem.UserId); if (projectUser != null) { var user = BLL.UserService.GetUserByUserId(projectUser.UserId); var sitePerson = BLL.PersonService.GetPersonByIdentityCard(projectUser.ProjectId, user.IdentityCard); if (sitePerson != null && !string.IsNullOrEmpty(sitePerson.WorkPostId)) { var workPost = BLL.WorkPostService.GetWorkPostById(sitePerson.WorkPostId); if (workPost != null) { WorkPostName = workPost.WorkPostName; } } } } } return WorkPostName; } // //获取历史岗位名称 // // // protected string ConvertOldWorkPost(object UserId) { string WorkPostName = string.Empty; if (UserId != null) { var roleItems = BLL.RoleItemService.GeOldRoleItemsByUserId(UserId.ToString()); if (roleItems.Count > 3) { roleItems = roleItems.Take(3).ToList(); } foreach (var roleItem in roleItems) { if (roleItem != null && roleItem.OutDate != null) { var projectUser = BLL.ProjectUserService.GetProjectUserByUserIdProjectId(roleItem.ProjectId, roleItem.UserId); if (projectUser != null) { var user = BLL.UserService.GetUserByUserId(projectUser.UserId); var sitePerson = BLL.PersonService.GetPersonByIdentityCard(projectUser.ProjectId, user.IdentityCard); if (sitePerson != null && !string.IsNullOrEmpty(sitePerson.WorkPostId)) { var workPost = BLL.WorkPostService.GetWorkPostById(sitePerson.WorkPostId); if (workPost != null) { WorkPostName += workPost.WorkPostName + ","; } } } } } } if (!string.IsNullOrEmpty(WorkPostName)) { WorkPostName = WorkPostName.Substring(0, WorkPostName.Length - 1); } return WorkPostName; } // //获取拟聘岗位名称 // // // protected string ConvertWorkPost(object WorkPostId) { string WorkPostName = string.Empty; if (WorkPostId != null) { var workPost = BLL.WorkPostService.GetWorkPostById(WorkPostId.ToString()); if (workPost != null) { WorkPostName = workPost.WorkPostName; } } return WorkPostName; } /// /// 把状态转换代号为文字形式 /// /// /// protected string ConvertState(object state) { if (state != null) { if (state.ToString() == BLL.Const.Shunt_ReCompile) { return "重新编制"; } else if (state.ToString() == BLL.Const.Shunt_Compile) { return "编制"; } else if (state.ToString() == BLL.Const.Shunt_Audit) { return "审核"; } else if (state.ToString() == BLL.Const.Shunt_Complete) { return "审批完成"; } else { return ""; } } return ""; } #endregion } }