using BLL; 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.TestRun.Feeding { public partial class InspectWanderAboutList : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { InitTreeMenu(); } } #region 数加载 /// /// 加载树 /// private void InitTreeMenu() { this.tvControlItem.Nodes.Clear(); TreeNode rootNode = new TreeNode(); rootNode.Text = "检查表"; rootNode.NodeID = "0"; rootNode.Expanded = true; rootNode.ToolTip = ""; rootNode.EnableClickEvent = true; this.tvControlItem.Nodes.Add(rootNode); var inspectTerms = Funs.DB.FeedingRun_SubInspectTerm.Where(x => (x.DriverCharge == this.CurrUser.UserId && x.InspectionIsAllPass == 1) || (x.DrivingManager == this.CurrUser.UserId && x.InspectionIsAllPass == 1) || (x.ProjectManager == this.CurrUser.UserId && x.InspectionIsAllPass == 1)).ToList(); if (inspectTerms.Count == 0) return; var subInstallationIds = inspectTerms.ConvertAll(x => x.InstallationId); var list = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 1 && subInstallationIds.Contains(x.PreRunId)); if (list.Count() > 0) { var ids = list.Select(x => x.ProcessesId).ToList(); ids.AddRange(list.Select(x => x.PreRunId).ToList()); ids = ids.Distinct().ToList(); var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList(); if (syslist.Count > 0) { foreach (var item in list) { TreeNode rootOneNode = new TreeNode(); rootOneNode.NodeID = item.PreRunId; rootOneNode.Text = item.PreRunName; rootOneNode.ToolTip = item.PreRunName; rootOneNode.CommandName = ""; rootOneNode.EnableClickEvent = true; rootOneNode.EnableExpandEvent = false; rootNode.Nodes.Add(rootOneNode); rootOneNode.Expanded = true; } } } } /// /// 树点击 /// protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) { BindGrid(); } #endregion #region 数据绑定 /// /// 绑定数据 /// public void BindGrid() { //装置开车负责人 string driverChargeStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.DriverCharge,a.DrivingManager,a.ProjectManager,1 as ConfirmType,'装置开车负责人' as ConfirmName,(select count (1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.DriverChargeIsPass is null) as WaitConfirmNum,(select count (1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.DriverChargeIsPass=1) as PassConfirmNum,(select count (1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.DriverChargeIsPass=0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.InstallationId from FeedingRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId=b.ProjectId where 1=1 and a.InspectionIsAllPass=1 and a.ProjectId='{this.CurrUser.LoginProjectId}' and a.DriverCharge='{this.CurrUser.UserId}' "; //开车经理 string drivingManagerStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.DriverCharge,a.DrivingManager,a.ProjectManager,2 as ConfirmType,'开车经理' as ConfirmName,(select count(1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.DrivingManagerIsPass is null) as WaitConfirmNum,(select count(1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.DrivingManagerIsPass = 1) as PassConfirmNum,(select count(1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.DrivingManagerIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.InstallationId from FeedingRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId = b.ProjectId where 1 = 1 and a.InspectionIsAllPass = 1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.DrivingManager = '{this.CurrUser.UserId}' "; //项目经理 string projectManagerStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.DriverCharge,a.DrivingManager,a.ProjectManager,3 as ConfirmType,'项目经理' as ConfirmName,(select count(1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ProjectManagerIsPass is null) as WaitConfirmNum,(select count(1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ProjectManagerIsPass = 1) as PassConfirmNum,(select count(1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ProjectManagerIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.InstallationId from FeedingRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId = b.ProjectId where 1 = 1 and a.InspectionIsAllPass = 1 and a.InspectionIsAllPass = 1 and a.InspectionIsAllPass = 1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.ProjectManager = '{this.CurrUser.UserId}' "; if (!string.IsNullOrWhiteSpace(this.tvControlItem.SelectedNodeID)) { var systemId = this.tvControlItem.SelectedNodeID.Split('|').Last(); driverChargeStr += $"and a.InstallationId='{systemId}'"; drivingManagerStr += $"and a.InstallationId='{systemId}'"; projectManagerStr += $"and a.InstallationId='{systemId}'"; } var allSql = $"select * from ({driverChargeStr} union all {drivingManagerStr} union all {projectManagerStr}) as t order by t.ConfirmType asc"; List listStr = new List(); SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(allSql); Grid1.RecordCount = tb.Rows.Count; var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); } /// /// 分页 /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; BindGrid(); } /// /// 双击事件 /// protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) { btnMenuConfirmation_Click(null, null); } /// /// 分页下拉框 /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } /// /// 排序 /// protected void Grid1_Sort(object sender, GridSortEventArgs e) { BindGrid(); } #endregion #region 按钮和事件 /// /// 查询 /// protected void btnQuery_Click(object sender, EventArgs e) { BindGrid(); } /// /// 检查确认 /// protected void btnConfirmation_Click(object sender, EventArgs e) { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请选择记录!", MessageBoxIcon.Warning); return; } if (Grid1.SelectedRowIndexArray.Length > 1) { Alert.ShowInTop("只可选择一条记录!", MessageBoxIcon.Warning); return; } PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectWanderAboutConfirm.aspx?SubInspectId={0}&ConfirmType={1}", Grid1.DataKeys[Grid1.SelectedRowIndex][1].ToString(), Grid1.DataKeys[Grid1.SelectedRowIndex][2].ToString(), "编辑 - "))); } /// /// 右击检查确认 /// protected void btnMenuConfirmation_Click(object sender, EventArgs e) { btnConfirmation_Click(null, null); } /// /// 关闭 /// protected void Window1_Close(object sender, WindowCloseEventArgs e) { BindGrid(); } #endregion } }