using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using BLL; using Newtonsoft.Json; using AspNet = System.Web.UI.WebControls; namespace FineUIPro.Web.ProjectData { public partial class ProjectSet : PageBase { public string URLToken { get { return (string)ViewState["URLToken"]; } set { ViewState["URLToken"] = value; } } #region 加载 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ////权限按钮方法 this.GetButtonPower(); Funs.DropDownPageSize(this.ddlPageSize); if (this.CurrUser != null && this.CurrUser.PageSize.HasValue) { Grid1.PageSize = this.CurrUser.PageSize.Value; } this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); InitTreeMenu(); if (string.IsNullOrEmpty(this.CurrUser.UnitId)) { this.trUnit.SelectedNodeID = BLL.CommonService.GetThisUnitId(); } else { this.trUnit.SelectedNodeID = this.CurrUser.UnitId; } // 绑定表格 this.BindGrid(); } } #endregion #region 加载树 /// /// 加载树 /// private void InitTreeMenu() { this.trUnit.Nodes.Clear(); this.trUnit.ShowBorder = false; this.trUnit.ShowHeader = false; this.trUnit.EnableIcons = true; this.trUnit.AutoScroll = true; this.trUnit.EnableSingleClickExpand = true; List units = (from x in Funs.DB.Base_Unit where x.IsThisUnit == true || x.IsBranch == true orderby x.IsThisUnit descending select x).ToList(); var thisUnit = BLL.CommonService.GetIsThisUnit(); if (!string.IsNullOrEmpty(this.CurrUser.UnitId) && thisUnit.UnitId != this.CurrUser.UnitId) { units = (from x in Funs.DB.Base_Unit where x.UnitId==this.CurrUser.UnitId select x).ToList(); } foreach (var q in units) { TreeNode newNode = new TreeNode(); newNode.Text = q.UnitName; newNode.NodeID = q.UnitId; newNode.CommandName = "Unit"; newNode.EnableClickEvent = true; this.trUnit.Nodes.Add(newNode); } } #endregion #region Tree点击事件 /// /// Tree点击事件 /// /// /// protected void trUnit_NodeCommand(object sender, TreeCommandEventArgs e) { BindGrid(); } #endregion #region 绑定数据 /// /// 绑定数据 /// private void BindGrid() { string strSql = "SELECT Project.ProjectId,Project.ProjectCode,Project.ProjectName,unit.UnitName,Project.StartDate,Project.EndDate,Project.ProjectAddress,ProjectType.ProjectTypeName AS ProjectTypeName,ShortName, " + @" (CASE WHEN ProjectState='" + BLL.Const.ProjectState_2 + "' THEN '暂停中' WHEN ProjectState='" + BLL.Const.ProjectState_3 + "' THEN '已完工' ELSE '施工中' END) AS ProjectStateName,Project.ProjectState,sysConst.ConstText as ProjectStateName2,(case ProjectAttribute when 'GONGCHENG' then '工程' when 'SHIYE' then '实业' else '' end) as ProjectAttributeName" + @" FROM Base_Project AS Project LEFT JOIN Base_Unit as unit on unit.UnitId=Project.UnitId" + @" LEFT JOIN Base_ProjectType AS ProjectType ON Project.ProjectType =ProjectType.ProjectTypeId" + @" LEFT JOIN Sys_Const AS sysConst ON Project.ProjectState2 =sysConst.ConstValue AND sysConst.GroupId= '" + BLL.ConstValue.GroupId_ProjectState + "' " + @" WHERE 1=1 and (Project.isDelete IS NULL OR Project.isDelete =0) "; List listStr = new List(); //if (!string.IsNullOrEmpty(Request.Params["projectId"])) ///是否文件柜查看页面传项目值 //{ // strSql += " AND ProjectId = @ProjectId"; // listStr.Add(new SqlParameter("@ProjectId", Request.Params["projectId"])); //} //else if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId)) //{ // strSql += " AND ProjectId = @ProjectId"; // listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); //} strSql += " AND Project.UnitId = @UnitId2"; listStr.Add(new SqlParameter("@UnitId2", this.trUnit.SelectedNodeID)); if (!string.IsNullOrEmpty(this.txtProjectCode.Text.Trim())) { strSql += " AND ProjectCode LIKE @ProjectCode"; listStr.Add(new SqlParameter("@ProjectCode", "%" + this.txtProjectCode.Text.Trim() + "%")); } if (!string.IsNullOrEmpty(this.txtProjectName.Text.Trim())) { strSql += " AND ProjectName LIKE @ProjectName"; listStr.Add(new SqlParameter("@ProjectName", "%" + this.txtProjectName.Text.Trim() + "%")); } var thisUnit = BLL.CommonService.GetIsThisUnit(); if (!string.IsNullOrEmpty(this.CurrUser.UnitId) && thisUnit.UnitId != this.CurrUser.UnitId) { strSql += " AND (Project.UnitId = @UnitId or Project.ProjectId in (select ProjectId from Project_ProjectUser where UserId=@UserId))"; listStr.Add(new SqlParameter("@UnitId", this.CurrUser.UnitId)); listStr.Add(new SqlParameter("@UserId", this.CurrUser.UserId)); } if (this.ckState.SelectedValue != "0") { if (this.ckState.SelectedValue == "1") { strSql += " AND (ProjectState = '1' OR ProjectState IS NULL)"; } else { strSql += " AND (ProjectState = @states )"; listStr.Add(new SqlParameter("@states", this.ckState.SelectedValue)); } } if (this.ckProjectAttribute.SelectedValue != "0") { strSql += " AND ProjectAttribute = @ProjectAttribute"; listStr.Add(new SqlParameter("@ProjectAttribute", this.ckProjectAttribute.SelectedValue)); } if (this.ckMaster.SelectedValue == "0") { strSql += " AND MasterSysId IS NULL "; } else if (this.ckMaster.SelectedValue == "1") { strSql += " AND MasterSysId IS NOT NULL "; } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.RecordCount = tb.Rows.Count; Grid1.DataSource = this.GetPagedDataTable(Grid1, tb); Grid1.DataBind(); } #endregion #region 操作 Events /// /// 右键删除事件 /// /// /// protected void btnMenuDelete_Click(object sender, EventArgs e) { if (Grid1.SelectedRowIndexArray.Length > 0) { bool isShow = false; if (Grid1.SelectedRowIndexArray.Length == 1) { isShow = true; } foreach (int rowIndex in Grid1.SelectedRowIndexArray) { string rowID = Grid1.DataKeys[rowIndex][0].ToString(); if (this.judgementDelete(rowID, isShow)) { var project = BLL.ProjectService.GetProjectByProjectId(rowID); if (project != null) { BLL.LogService.DeleteLog(rowID); //BLL.ReportRemindService.DeleteReportRemindByProjectId(rowID); //BLL.ProjectUnitService.DeleteProjectUnitByProjectId(rowID); BLL.ProjectService.UpdateProjectIsDelete(rowID); } } } BindGrid(); ShowNotify("操作完成!", MessageBoxIcon.Success); } } #endregion /// /// /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid(); } /// /// /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) { BindGrid(); } /// /// 双击事件 /// /// /// protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) { this.EditData(); } /// /// 右键编辑事件 /// /// /// protected void btnMenuEdit_Click(object sender, EventArgs e) { this.EditData(); } /// /// 编辑数据方法 /// private void EditData() { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); return; } var project = BLL.ProjectService.GetProjectByProjectId(Grid1.SelectedRowID); if (project != null) { if (project.ProjectState == BLL.Const.ProjectState_2 || project.ProjectState == BLL.Const.ProjectState_3 || project.ProjectState2 == "7") { //if (this.CurrUser.UserId == BLL.Const.sysglyId) //系统管理员可修改停工或竣工的状态 //{ PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ProjectSetSave.aspx?ProjectId={0}", Grid1.SelectedRowID, "编辑 - "))); //} //else //{ // PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ProjectSetView.aspx?ProjectId={0}", Grid1.SelectedRowID, "查看 - "))); //} } else { if (this.btnMenuEdit.Hidden && this.CurrUser.UserId != BLL.Const.sysglyId) ////双击事件 编辑权限有:编辑页面,无:查看页面 或者状态是完成时查看页面 { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ProjectSetView.aspx?ProjectId={0}", Grid1.SelectedRowID, "查看 - "))); } else { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ProjectSetSave.aspx?ProjectId={0}", Grid1.SelectedRowID, "编辑 - "))); } } } } /// /// 查看 /// /// /// protected void btnView_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(Grid1.SelectedRowID)) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ProjectSetMap.aspx?projectId={0}&value=0", Grid1.SelectedRowID, "查看 - "))); } } #region 获取按钮权限 /// /// 获取按钮权限 /// /// /// private void GetButtonPower() { if (Request.Params["value"] == "0") { return; } string menuId = Const.SeverProjectSetMenuId; if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId)) { menuId = BLL.Const.ProjectSetMenuId; } var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, menuId); if (buttonList.Count() > 0) { if (buttonList.Contains(BLL.Const.BtnAdd)) { btnUpdata.Hidden = false; this.btnNew.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnModify) || buttonList.Contains(BLL.Const.BtnSave)) { this.btnMenuEdit.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnDelete)) { this.btnMenuDelete.Hidden = false; } } } #endregion #region 判断是否可删除 /// /// 判断是否可以删除 /// /// private bool judgementDelete(string id, bool isShow) { string content = string.Empty; //if (Funs.DB.ProjectData_TeamGroup.FirstOrDefault(x => x.ProjectId == id) != null) //{ // content += "该项目已在【项目班组】中使用,不能删除!"; //} //if (Funs.DB.ProjectData_WorkArea.FirstOrDefault(x => x.ProjectId == id) != null) //{ // content += "该项目已在【单位工程】中使用,不能删除!"; //} //if (Funs.DB.Project_ProjectUnit.FirstOrDefault(x => x.ProjectId == id) != null) //{ // content += "该项目已在【项目单位】中使用,不能删除!"; //} //if (Funs.DB.Project_ProjectUser.FirstOrDefault(x => x.ProjectId == id) != null) //{ // content += "该项目已在【项目用户】中使用,不能删除!"; //} //if (Funs.DB.SecuritySystem_SafetyManageOrganization.FirstOrDefault(x => x.ProjectId == id) != null) //{ // content += "该项目已在【项目安全管理组织机构表】中使用,不能删除!"; //} //if (Funs.DB.SecuritySystem_SafetyOrganization.FirstOrDefault(x => x.ProjectId == id) != null) //{ // content += "该项目已在【项目安全管理机构表】中使用,不能删除!"; //} //if (Funs.DB.SecuritySystem_SafetySystem.FirstOrDefault(x => x.ProjectId == id) != null) //{ // content += "该项目已在【项目安全组织体系表】中使用,不能删除!"; //} //var sysCode = Funs.DB.Sys_CodeRecords.Where(x => x.ProjectId == id); //if (sysCode.Count()> 0) //{ // foreach (var item in sysCode) // { // var menu = Funs.DB.Sys_Menu.FirstOrDefault(x => x.MenuId == item.MenuId); // if (menu != null) // { // content += "该项目已在【" + menu.MenuName + "】中使用,不能删除!"; // } // else // { // content += "该项目已在【单据编码】中使用,不能删除!"; // } // } //} //var flowOperate = Funs.DB.Sys_FlowOperate.Where(x => x.ProjectId == id); //if (flowOperate.Count() > 0) //{ // foreach (var item in flowOperate) // { // var menu = Funs.DB.Sys_Menu.FirstOrDefault(x => x.MenuId == item.MenuId); // if (menu != null) // { // content += "该项目已在【" + menu.MenuName + "】中使用,不能删除!"; // } // else // { // content += "该项目已在【审核流程】中使用,不能删除!"; // } // } //} if (string.IsNullOrEmpty(content)) { return true; } else { if (isShow) { Alert.ShowInTop(content); } return false; } } #endregion #region 查询 /// /// 查询 /// /// /// protected void TextBox_TextChanged(object sender, EventArgs e) { this.BindGrid(); } #endregion #region 项目经理 /// /// 项目经理 /// /// /// protected string ConvertProjectManager(object projectId) { return ProjectService.GetProjectManagerName(projectId.ToString()); } /// /// 施工经理 /// /// /// protected string ConvertConstructionManager(object projectId) { return BLL.ProjectService.GetConstructionManagerName(projectId.ToString()); } /// /// 安全经理 /// /// /// protected string ConvertHSSEManager(object projectId) { return BLL.ProjectService.GetHSSEManagerName(projectId.ToString()); } #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; this.BindGrid(); Response.Write(GetGridTableHtml(Grid1)); Response.End(); } #endregion protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { object[] keys = Grid1.DataKeys[e.RowIndex]; string fileId = string.Empty; if (keys == null) { return; } else { fileId = keys[0].ToString(); } if (e.CommandName == "ProjectUnit") { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ProjectUnit.aspx?projectId={0}&type=project", fileId))); } else if (e.CommandName == "ProjectUser") { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ProjectUser.aspx?projectId={0}&type=project", fileId))); } } #region 项目经理 /// /// 施工分包商 /// /// /// protected string ConvertSubcontractor(object projectId) { string unitName = string.Empty; if (projectId != null) { unitName = ProjectService.getProjectUnitNameByUnitType(projectId.ToString(), Const.ProjectUnitType_2); } return unitName; } protected string ConvertOwn(object projectId) { string unitName = string.Empty; if (projectId != null) { unitName = ProjectService.getProjectUnitNameByUnitType(projectId.ToString(), Const.ProjectUnitType_4); } return unitName; } #endregion /// /// 进入项目现场 /// /// /// protected void btnEnter_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(Grid1.SelectedRowID)) { Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(Grid1.SelectedRowID); string state = "1"; if (!string.IsNullOrEmpty(project.ProjectState)) { state = project.ProjectState; } if (this.CurrUser.IsOffice == true || this.CurrUser.UserId == BLL.Const.sysglyId || this.CurrUser.UserId == BLL.Const.hfnbdId) //本部人员可以看所有项目 { string url = "~/indexProject.aspx?projectId=" + Grid1.SelectedRowID + "&state=" + state; UserService.UpdateLastUserInfo(this.CurrUser.UserId, null, false, Grid1.SelectedRowID); PageContext.Redirect(url, "_top"); } else { var joinsProjectIds = (from x in Funs.DB.Project_ProjectUser where x.UserId == this.CurrUser.UserId select x.ProjectId).ToList(); if (joinsProjectIds.Contains(Grid1.SelectedRowID)) { string url = "~/indexProject.aspx?projectId=" + Grid1.SelectedRowID + "&state=" + state; UserService.UpdateLastUserInfo(this.CurrUser.UserId, null, false, Grid1.SelectedRowID); PageContext.Redirect(url, "_top"); } else { ShowNotify("您不是该项目用户,无法进入操作!", MessageBoxIcon.Warning); } } } else { ShowNotify("请选择项目进入!", MessageBoxIcon.Warning); } } /// /// 关联摄像头 /// /// /// protected void btnMonitor_Click(object sender, EventArgs e) { if (string .IsNullOrEmpty(Funs.VideoHost)) { ShowNotify("视频监控地址未设置!", MessageBoxIcon.Warning); return; } if (string.IsNullOrEmpty(Funs.VideoAccount)) { ShowNotify("视频监控用户名未设置!", MessageBoxIcon.Warning); return; } if (string.IsNullOrEmpty(Funs.VideoPassWord)) { ShowNotify("视频监控密码未设置!", MessageBoxIcon.Warning); return; } if (!string.IsNullOrEmpty(Grid1.SelectedRowID)) { string url = Funs.VideoHost; string username = Funs.VideoAccount; string password = Funs.VideoPassWord; if (string.IsNullOrEmpty(URLToken)) { String res = BLL.CommonService.CreateGetHttpResponse(url + "api/v1/login?username=" + username + "&password=" + Funs.EncryptionPassword(password)); Dictionary dicres = JsonConvert.DeserializeObject>(res); URLToken = dicres["URLToken"]; } var project = Funs.DB.Base_Project.FirstOrDefault(x => x.ProjectId == Grid1.SelectedRowID); string resUserInfor = BLL.CommonService.CreateGetHttpResponse(url + "api/v1/user/info?token=" + URLToken + "&username=" + project.ProjectCode); if ("user not found".Equals(resUserInfor) || "远程服务器返回错误: (400) 错误的请求。".Equals(resUserInfor)) { string resUserSave = BLL.CommonService.CreateGetHttpResponse(url + "api/v1/user/save?token=" + URLToken + "&ID=0&Username=" + project.ProjectCode + "&Role=操作员,观众&Enable=true"); Dictionary dicUserSave = JsonConvert.DeserializeObject>(resUserSave); project.MonitorId = dicUserSave["ID"]; string newPassWord = Funs.EncryptionPassword(DateTime.Now.Ticks.ToString()); newPassWord = newPassWord.Substring(newPassWord.Length - 9, 8); string resResPS = BLL.CommonService.CreateGetHttpResponse(url + "api/v1/user/resetpassword?token=" + URLToken + "&id=" + dicUserSave["ID"] + "&password=" + newPassWord); project.MonitorPW = newPassWord; Funs.DB.SubmitChanges(); } PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ProjectMonitorList.aspx?ProjectCode={0}&Id={1}&URLToken={2}", project.ProjectCode, project.MonitorId, URLToken, "查看 - "))); } else { ShowNotify("请选择项目进入!", MessageBoxIcon.Warning); } } protected void Window1_Close(object sender, WindowCloseEventArgs e) { BindGrid(); } protected void btnNew_Click(object sender, EventArgs e) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ProjectSetSave.aspx?UnitId={0}", trUnit.SelectedNodeID, "编辑 - "))); } #region 推送项目信息到集团 protected void btnPush_Click(object sender, EventArgs e) { string code = CNCECHSSEWebService.PushProject(); if (code == "1") { ShowNotify("同步成功!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); return; } else { Alert.ShowInParent("同步异常,请退出后重试!", MessageBoxIcon.Error); } } #endregion } }