232 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			232 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.Data; | |||
|  | using System.Data.SqlClient; | |||
|  | using BLL; | |||
|  | 
 | |||
|  | namespace FineUIPro.Web.ProjectData | |||
|  | { | |||
|  |     public partial class ProjectUserSelect : PageBase | |||
|  |     { | |||
|  |         /// <summary> | |||
|  |         /// 定义项 | |||
|  |         /// </summary> | |||
|  |         public string ProjectId | |||
|  |         { | |||
|  |             get | |||
|  |             { | |||
|  |                 return (string)ViewState["ProjectId"]; | |||
|  |             } | |||
|  |             set | |||
|  |             { | |||
|  |                 ViewState["ProjectId"] = value; | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         #region 加载 | |||
|  |         /// <summary> | |||
|  |         /// 加载页面 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void Page_Load(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (!IsPostBack) | |||
|  |             { | |||
|  |                 Funs.DropDownPageSize(this.ddlPageSize); | |||
|  |                 this.ProjectId = Request.QueryString["ProjectId"]; | |||
|  |                 if (this.CurrUser != null && this.CurrUser.PageSize.HasValue) | |||
|  |                 { | |||
|  |                     Grid1.PageSize = this.CurrUser.PageSize.Value; | |||
|  |                 } | |||
|  |                 this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); | |||
|  | 
 | |||
|  |                 BLL.UnitService.InitUnitDropDownList(this.drpUnit, this.ProjectId, false); | |||
|  |                 if (!string.IsNullOrEmpty(this.CurrUser.UnitId)) | |||
|  |                 { | |||
|  |                     this.drpUnit.SelectedValue = this.CurrUser.UnitId; | |||
|  |                 } | |||
|  |                 // 绑定表格 | |||
|  |                 this.BindGrid(); | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 绑定数据 | |||
|  |         /// </summary> | |||
|  |         private void BindGrid() | |||
|  |         { | |||
|  |             if (!string.IsNullOrEmpty(this.ProjectId)) | |||
|  |             { | |||
|  |                 string strSql = @"SELECT Users.UserId,Users.UserCode,Users.UserName,Unit.UnitName" | |||
|  |                                 + @" FROM Sys_User AS Users " | |||
|  |                                 + @" LEFT JOIN Project_ProjectUnit AS ProjectUnit ON Users.UnitId =ProjectUnit.UnitId " | |||
|  |                                 + @" LEFT JOIN Base_Unit AS Unit ON Users.UnitId =Unit.UnitId " | |||
|  |                                 + @" WHERE ProjectUnit.ProjectId =@ProjectId AND ProjectUnit.UnitId=@UnitId AND Users.UserId <> @UserId " | |||
|  |                                 + @" AND Users.UserId NOT IN (SELECT UserId FROM Project_ProjectUser WHERE ProjectId =ProjectUnit.ProjectId) "; | |||
|  |                 List<SqlParameter> listStr = new List<SqlParameter> | |||
|  |                 { | |||
|  |                     new SqlParameter("@ProjectId", this.ProjectId), | |||
|  |                     new SqlParameter("@UnitId", this.drpUnit.SelectedValue), | |||
|  |                     new SqlParameter("@UserId", BLL.Const.sysglyId) | |||
|  |                 }; | |||
|  |                 if (!string.IsNullOrEmpty(this.txtUserName.Text.Trim())) | |||
|  |                 { | |||
|  |                     strSql += " AND Users.UserName LIKE @UserName"; | |||
|  |                     listStr.Add(new SqlParameter("@UserName", "%" + this.txtUserName.Text.Trim() + "%")); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 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 排序 分页 | |||
|  |         /// <summary> | |||
|  |         ///  | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) | |||
|  |         { | |||
|  |             Grid1.PageIndex = e.NewPageIndex; | |||
|  |             BindGrid(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         ///  | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) | |||
|  |         { | |||
|  |             Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); | |||
|  |             BindGrid(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         ///  | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) | |||
|  |         { | |||
|  |             Grid1.SortDirection = e.SortDirection; | |||
|  |             Grid1.SortField = e.SortField; | |||
|  |             BindGrid(); | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 确定按钮事件 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void btnSure_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (Grid1.SelectedRowIndexArray.Length == 0) | |||
|  |             { | |||
|  |                 Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  |             foreach (int rowIndex in Grid1.SelectedRowIndexArray) | |||
|  |             { | |||
|  |                 this.SaveData(Grid1.DataKeys[rowIndex][0].ToString()); | |||
|  |             } | |||
|  |             PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 双击事件 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) | |||
|  |         { | |||
|  |             if (Grid1.SelectedRowIndexArray.Length == 0) | |||
|  |             { | |||
|  |                 Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  | 
 | |||
|  |             this.SaveData(Grid1.SelectedRowID); | |||
|  |             PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); | |||
|  |         } | |||
|  | 
 | |||
|  |         #region 查询 | |||
|  |         /// <summary> | |||
|  |         /// 查询 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void TextBox_TextChanged(object sender, EventArgs e) | |||
|  |         { | |||
|  |             this.BindGrid(); | |||
|  |         } | |||
|  |         #endregion        | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 保存数据 | |||
|  |         /// </summary> | |||
|  |         /// <param name="userId"></param> | |||
|  |         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, | |||
|  |                         MainCNProfessionalId = user.MainCNProfessionalId, | |||
|  |                         ViceCNProfessionalId = user.ViceCNProfessionalId | |||
|  |                     }; | |||
|  |                     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, | |||
|  |                                 MainCNProfessionalId = user.MainCNProfessionalId, | |||
|  |                                 ViceCNProfessionalId = user.ViceCNProfessionalId, | |||
|  |                             }; | |||
|  |                             BLL.PersonService.AddPerson(newPerson); | |||
|  |                         } | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         protected void btnNew_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../SysManage/UserListEdit.aspx?UnitId={0}&type=-1", this.drpUnit.SelectedValue, "新增 - "))); | |||
|  |         } | |||
|  |     } | |||
|  | } |