using BLL; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web.UI.WebControls; namespace FineUIPro.Web.Check { public partial class ShowCheckItem : PageBase { #region 定义集合 /// /// 定义集合 /// private static List list = new List(); private static List parentIds = new List(); #endregion protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { list = new List(); parentIds = new List(); ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); CheckItemSetDataBind();//加载树 } } private void BindGrid() { string ids = string.Empty; this.Grid1.DataSource = null; this.Grid1.DataBind(); string strSql = @"SELECT CheckItemDetailId,CheckItemSetId,CheckContent,SortIndex,IsBuiltIn " + @" FROM Technique_CheckItemDetail " + @" WHERE CheckItemSetId=@CheckItemSetId"; List listStr = new List { new SqlParameter("@CheckItemSetId", this.tvCheckItemSet.SelectedNodeID) }; if (!string.IsNullOrEmpty(Request.Params["CheckDayId"])) { List details = (from x in Funs.DB.View_Check_CheckDayDetail where x.CheckDayId == Request.Params["CheckDayId"] select x).ToList(); if (details.Count() > 0) { for (int i = 0; i < details.Count(); i++) { if (i == 0) { strSql += " AND CheckItemDetailId not in (@Ids" + i; } else { strSql += ",@Ids" + i; } listStr.Add(new SqlParameter("@Ids" + i, details[i].CheckItem)); } strSql += ")"; } } else if (!string.IsNullOrEmpty(Request.Params["CheckSpecialId"])) { List details = (from x in Funs.DB.View_Check_CheckSpecialDetail where x.CheckSpecialId == Request.Params["CheckSpecialId"] select x).ToList(); if (details.Count() > 0) { for (int i = 0; i < details.Count(); i++) { if (i == 0) { strSql += " AND CheckItemDetailId not in (@Ids" + i; } else { strSql += ",@Ids" + i; } listStr.Add(new SqlParameter("@Ids" + i, details[i].CheckItem)); } strSql += ")"; } } else if (!string.IsNullOrEmpty(Request.Params["CheckColligationId"])) { List details = (from x in Funs.DB.View_Check_CheckColligationDetail where x.CheckColligationId == Request.Params["CheckColligationId"] select x).ToList(); if (details.Count() > 0) { for (int i = 0; i < details.Count(); i++) { if (i == 0) { strSql += " AND CheckItemDetailId not in (@Ids" + i; } else { strSql += ",@Ids" + i; } listStr.Add(new SqlParameter("@Ids" + i, details[i].CheckItem)); } strSql += ")"; } } else if (!string.IsNullOrEmpty(Request.Params["CheckWorkId"])) { List details = (from x in Funs.DB.View_Check_CheckWorkDetail where x.CheckWorkId == Request.Params["CheckWorkId"] select x).ToList(); if (details.Count() > 0) { for (int i = 0; i < details.Count(); i++) { if (i == 0) { strSql += " AND CheckItemDetailId not in (@Ids" + i; } else { strSql += ",@Ids" + i; } listStr.Add(new SqlParameter("@Ids" + i, details[i].CheckItem)); } strSql += ")"; } } else if (!string.IsNullOrEmpty(Request.Params["CheckHolidayId"])) { List details = (from x in Funs.DB.View_Check_CheckHolidayDetail where x.CheckHolidayId == Request.Params["CheckHolidayId"] select x).ToList(); if (details.Count() > 0) { for (int i = 0; i < details.Count(); i++) { if (i == 0) { strSql += " AND CheckItemDetailId not in (@Ids" + i; } else { strSql += ",@Ids" + i; } listStr.Add(new SqlParameter("@Ids" + i, details[i].CheckItem)); } strSql += ")"; } } 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(); if (list.Count() > 0) { for (int i = 0; i < Grid1.Rows.Count; i++) { string id = Grid1.DataKeys[i][0].ToString(); if (list.Contains(id)) { Grid1.Rows[i].Values[0] = true; } } } } #region 绑定树节点 /// /// 绑定树节点 /// private void CheckItemSetDataBind() { this.tvCheckItemSet.Nodes.Clear(); this.tvCheckItemSet.SelectedNodeID = string.Empty; var checks = (from x in Funs.DB.Technique_CheckItemSet where x.CheckType == Request.Params["checkType"] select x).ToList(); if (checks.Count() > 0) { var supChecks = checks.Where(x => x.SupCheckItem == "0").OrderBy(x=>x.SortIndex).ToList(); if (supChecks.Count() > 0) { foreach (var item in supChecks) { TreeNode rootNode = new TreeNode { Text = item.CheckItemName, NodeID = item.CheckItemSetId, EnableClickEvent = true, };//定义根节点 this.tvCheckItemSet.Nodes.Add(rootNode); this.GetNodes(rootNode.Nodes, checks.Where(x=>x.SupCheckItem== item.CheckItemSetId).ToList()); } } } } #region 遍历节点方法 /// /// 遍历节点方法 /// /// 节点集合 /// 父节点 private void GetNodes(TreeNodeCollection nodes, List checkItemSetLists) { foreach (var q in checkItemSetLists) { var isEnd = BLL.Technique_CheckItemSetService.IsEndLevel(q.CheckItemSetId); TreeNode newNode = new TreeNode { Text = q.CheckItemName, NodeID = q.CheckItemSetId, EnableClickEvent = true, }; nodes.Add(newNode); if (!isEnd) { GetNodes(newNode.Nodes, checkItemSetLists.Where(x => x.SupCheckItem == q.CheckItemSetId).ToList()); } } } #endregion #endregion #region 点击TreeView /// /// 点击TreeView /// /// /// protected void tvCheckItemSet_NodeCommand(object sender, TreeCommandEventArgs e) { if (this.tvCheckItemSet.SelectedNodeID != "0" && this.tvCheckItemSet.SelectedNode != null) { this.Grid1.DataSource = null; this.Grid1.DataBind(); BindGrid(); } } #endregion #region 页索引改变事件 /// /// 页索引改变事件 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; BindGrid(); } #endregion #region 排序 /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; BindGrid(); } #endregion #region 分页选择下拉改变事件 /// /// 分页选择下拉改变事件 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } #endregion #region 确认按钮 /// /// 确认按钮 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { List newParentIds = new List(); TreeNode[] nodes = this.tvCheckItemSet.GetCheckedNodes(); foreach (var item in nodes) { if (item.Nodes.Count == 0) { parentIds.Add(item.NodeID); //集合中增加末级节点 if (item.ParentNode != null) { newParentIds.Add(item.ParentNode.NodeID); //记录已增加的末级节点的父级节点集合 } } } foreach (var item in nodes) { if (item.Nodes.Count > 0) { if (!newParentIds.Contains(item.NodeID)) { parentIds.Add(item.NodeID); } } } if (parentIds.Count == 0 && list.Count == 0) { ShowNotify("请至少选择一项!", MessageBoxIcon.Warning); return; } if (!string.IsNullOrEmpty(Request.Params["CheckDayId"])) { foreach (var item in parentIds) { Model.Check_CheckDayDetail detail = new Model.Check_CheckDayDetail { CheckDayDetailId = SQLHelper.GetNewID(typeof(Model.Check_CheckDayDetail)), CheckDayId = Request.Params["CheckDayId"], CheckItem = item }; Model.Check_ProjectCheckItemDetail checkItemDetail = BLL.Check_ProjectCheckItemDetailService.GetCheckItemDetailById(item); if (checkItemDetail != null) { detail.CheckContent = checkItemDetail.CheckContent; } else { var projectCheckItemDetail = Funs.DB.Technique_CheckItemDetail.FirstOrDefault(x => x.CheckItemDetailId == item); if (projectCheckItemDetail != null) { detail.CheckContent = projectCheckItemDetail.CheckContent; } } detail.Unqualified = "隐患"; detail.Suggestions = "整改"; detail.CompleteStatus = true; BLL.Check_CheckDayDetailService.AddCheckDayDetail(detail); } } else if (!string.IsNullOrEmpty(Request.Params["CheckSpecialId"])) { foreach (var item in parentIds) { Model.Check_CheckSpecialDetail detail = new Model.Check_CheckSpecialDetail { CheckSpecialDetailId = SQLHelper.GetNewID(typeof(Model.Check_CheckSpecialDetail)), CheckSpecialId = Request.Params["CheckSpecialId"], CheckItem = item }; Model.Check_ProjectCheckItemDetail checkItemDetail = BLL.Check_ProjectCheckItemDetailService.GetCheckItemDetailById(item); if (checkItemDetail != null) { detail.CheckContent = checkItemDetail.CheckContent; } else { var projectCheckItemDetail = Funs.DB.Technique_CheckItemDetail.FirstOrDefault(x => x.CheckItemDetailId == item); if (projectCheckItemDetail != null) { detail.CheckContent = projectCheckItemDetail.CheckContent; } } detail.Unqualified = "隐患"; detail.Suggestions = "整改"; detail.CompleteStatus = true; BLL.Check_CheckSpecialDetailService.AddCheckSpecialDetail(detail); } } else if (!string.IsNullOrEmpty(Request.Params["CheckColligationId"])) { foreach (var item in parentIds) { Model.Check_CheckColligationDetail detail = new Model.Check_CheckColligationDetail { CheckColligationDetailId = SQLHelper.GetNewID(typeof(Model.Check_CheckColligationDetail)), CheckColligationId = Request.Params["CheckColligationId"], CheckItem = item }; Model.Check_ProjectCheckItemDetail checkItemDetail = BLL.Check_ProjectCheckItemDetailService.GetCheckItemDetailById(item); if (checkItemDetail != null) { detail.CheckContent = checkItemDetail.CheckContent; } else { var projectCheckItemDetail = Funs.DB.Technique_CheckItemDetail.FirstOrDefault(x => x.CheckItemDetailId == item); if (projectCheckItemDetail != null) { detail.CheckContent = projectCheckItemDetail.CheckContent; } } detail.Unqualified = "隐患"; detail.Suggestions = "整改"; detail.CompleteStatus = true; BLL.Check_CheckColligationDetailService.AddCheckColligationDetail(detail); } } else if (!string.IsNullOrEmpty(Request.Params["CheckWorkId"])) { foreach (var item in parentIds) { Model.Check_CheckWorkDetail detail = new Model.Check_CheckWorkDetail { CheckWorkDetailId = SQLHelper.GetNewID(typeof(Model.Check_CheckWorkDetail)), CheckWorkId = Request.Params["CheckWorkId"], CheckItem = item, CheckResult = "合格", }; Model.Check_ProjectCheckItemDetail checkItemDetail = BLL.Check_ProjectCheckItemDetailService.GetCheckItemDetailById(item); if (checkItemDetail != null) { detail.CheckContent = checkItemDetail.CheckContent; detail.SortIndex = checkItemDetail.SortIndex; } else { var projectCheckItemDetail = Funs.DB.Technique_CheckItemDetail.FirstOrDefault(x => x.CheckItemDetailId == item); if (projectCheckItemDetail != null) { detail.CheckContent = projectCheckItemDetail.CheckContent; detail.SortIndex = projectCheckItemDetail.SortIndex; } } BLL.Check_CheckWorkDetailService.AddCheckWorkDetail(detail); } } else if (!string.IsNullOrEmpty(Request.Params["CheckHolidayId"])) { foreach (var item in parentIds) { Model.Check_CheckHolidayDetail detail = new Model.Check_CheckHolidayDetail { CheckHolidayDetailId = SQLHelper.GetNewID(typeof(Model.Check_CheckHolidayDetail)), CheckHolidayId = Request.Params["CheckHolidayId"], CheckItem = item, CheckResult = "合格", }; Model.Check_ProjectCheckItemDetail checkItemDetail = BLL.Check_ProjectCheckItemDetailService.GetCheckItemDetailById(item); if (checkItemDetail != null) { detail.CheckContent = checkItemDetail.CheckContent; } else { var projectCheckItemDetail = Funs.DB.Technique_CheckItemDetail.FirstOrDefault(x => x.CheckItemDetailId == item); if (projectCheckItemDetail != null) { detail.CheckContent = projectCheckItemDetail.CheckContent; } } BLL.Check_CheckHolidayDetailService.AddCheckHolidayDetail(detail); } } if (!string.IsNullOrEmpty(Request.Params["CheckDayId"])) { foreach (var item in list) { Model.Check_CheckDayDetail detail = new Model.Check_CheckDayDetail { CheckDayDetailId = SQLHelper.GetNewID(typeof(Model.Check_CheckDayDetail)), CheckDayId = Request.Params["CheckDayId"], CheckItem = item }; Model.Check_ProjectCheckItemSet checkItemSet = BLL.Check_ProjectCheckItemSetService.GetCheckItemSetById(item); if (checkItemSet != null) { detail.CheckContent = checkItemSet.CheckItemName; } else { var projectCheckItemDetail = Funs.DB.Technique_CheckItemDetail.FirstOrDefault(x => x.CheckItemDetailId == item); if (projectCheckItemDetail != null) { detail.CheckContent = projectCheckItemDetail.CheckContent; } } detail.Unqualified = "隐患"; detail.Suggestions = "整改"; detail.CompleteStatus = true; BLL.Check_CheckDayDetailService.AddCheckDayDetail(detail); } } else if (!string.IsNullOrEmpty(Request.Params["CheckSpecialId"])) { foreach (var item in list) { Model.Check_CheckSpecialDetail detail = new Model.Check_CheckSpecialDetail { CheckSpecialDetailId = SQLHelper.GetNewID(typeof(Model.Check_CheckSpecialDetail)), CheckSpecialId = Request.Params["CheckSpecialId"], CheckItem = item }; Model.Check_ProjectCheckItemSet checkItemSet = BLL.Check_ProjectCheckItemSetService.GetCheckItemSetById(item); if (checkItemSet != null) { detail.CheckContent = checkItemSet.CheckItemName; } else { var projectCheckItemDetail = Funs.DB.Technique_CheckItemDetail.FirstOrDefault(x => x.CheckItemDetailId == item); if (projectCheckItemDetail != null) { detail.CheckContent = projectCheckItemDetail.CheckContent; } } detail.Unqualified = "隐患"; detail.Suggestions = "整改"; detail.CompleteStatus = true; BLL.Check_CheckSpecialDetailService.AddCheckSpecialDetail(detail); } } else if (!string.IsNullOrEmpty(Request.Params["CheckColligationId"])) { foreach (var item in list) { Model.Check_CheckColligationDetail detail = new Model.Check_CheckColligationDetail { CheckColligationDetailId = SQLHelper.GetNewID(typeof(Model.Check_CheckColligationDetail)), CheckColligationId = Request.Params["CheckColligationId"], CheckItem = item }; Model.Check_ProjectCheckItemSet checkItemSet = BLL.Check_ProjectCheckItemSetService.GetCheckItemSetById(item); if (checkItemSet != null) { detail.CheckContent = checkItemSet.CheckItemName; } else { var projectCheckItemDetail = Funs.DB.Technique_CheckItemDetail.FirstOrDefault(x => x.CheckItemDetailId == item); if (projectCheckItemDetail != null) { detail.CheckContent = projectCheckItemDetail.CheckContent; } } detail.Unqualified = "隐患"; detail.Suggestions = "整改"; detail.CompleteStatus = true; BLL.Check_CheckColligationDetailService.AddCheckColligationDetail(detail); } } else if (!string.IsNullOrEmpty(Request.Params["CheckWorkId"])) { foreach (var item in list) { Model.Check_CheckWorkDetail detail = new Model.Check_CheckWorkDetail { CheckWorkDetailId = SQLHelper.GetNewID(typeof(Model.Check_CheckWorkDetail)), CheckWorkId = Request.Params["CheckWorkId"], CheckItem = item }; var checkItemSet = BLL.Check_ProjectCheckItemSetService.GetCheckItemSetById(item); if (checkItemSet != null) { detail.CheckContent = checkItemSet.CheckItemName; } else { var projectCheckItemDetail = Funs.DB.Technique_CheckItemDetail.FirstOrDefault(x => x.CheckItemDetailId == item); if (projectCheckItemDetail != null) { detail.CheckContent = projectCheckItemDetail.CheckContent; } } detail.CheckResult = "合格"; detail.CheckOpinion = "整改"; BLL.Check_CheckWorkDetailService.AddCheckWorkDetail(detail); } } else if (!string.IsNullOrEmpty(Request.Params["CheckHolidayId"])) { foreach (var item in list) { Model.Check_CheckHolidayDetail detail = new Model.Check_CheckHolidayDetail { CheckHolidayDetailId = SQLHelper.GetNewID(typeof(Model.Check_CheckHolidayDetail)), CheckHolidayId = Request.Params["CheckHolidayId"], CheckItem = item }; Model.Check_ProjectCheckItemSet checkItemSet = BLL.Check_ProjectCheckItemSetService.GetCheckItemSetById(item); if (checkItemSet != null) { detail.CheckContent = checkItemSet.CheckItemName; } detail.CheckResult = "合格"; detail.CheckOpinion = "整改"; BLL.Check_CheckHolidayDetailService.AddCheckHolidayDetail(detail); } } PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } #endregion #region Grid行点击事件 /// /// Grid1行点击事件 /// /// /// protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { string rowID = Grid1.DataKeys[e.RowIndex][0].ToString(); //string parentId = Grid1.DataKeys[e.RowIndex][1].ToString(); if (e.CommandName == "IsSelected") { CheckBoxField checkField = (CheckBoxField)Grid1.FindColumn("ckbIsSelected"); if (checkField.GetCheckedState(e.RowIndex)) { if (!list.Contains(rowID)) { list.Add(rowID); } //if (!parentIds.Contains(parentId + "," + rowID)) //{ // parentIds.Add(parentId + "," + rowID); //} } else { if (list.Contains(rowID)) { list.Remove(rowID); } //if (parentIds.Contains(parentId + "," + rowID)) //{ // parentIds.Remove(parentId + "," + rowID); //} } } } #endregion } }