diff --git a/DataBase/版本日志/SGGLDB_WH_2023-10-12.sql b/DataBase/版本日志/SGGLDB_WH_2023-10-12.sql new file mode 100644 index 00000000..bea26c75 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_2023-10-12.sql @@ -0,0 +1,23 @@ +--޸ֶγ +ALTER TABLE PreRun_SubInspectTerm ALTER Column PropertyTechnologyId varchar(max) null; +ALTER TABLE PreRun_SubInspectTermItem ALTER Column PropertyTechnologyId varchar(max) null; +--ɾֶ +ALTER TABLE PreRun_InspectTailTerm DROP COLUMN QuestionTechnologyId; +--ֶ +ALTER TABLE PreRun_InspectTailTerm Add SubInspectId varchar(50) NULL; + +--Ӳ˵ +delete Sys_Menu where MenuId='2254D22A-94EF-435F-9916-F07BD7082689' +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('2254D22A-94EF-435F-9916-F07BD7082689','ת',null,'TestRun/BeforeTestRun/InspectWanderAboutList.aspx',10,'AD6E08B6-5571-4FFB-BDBE-9E6811770BD6','Menu_TestRun',0,1,1) + +--ϵͳ +alter table PreRun_SubInspectTerm add InspectionIsAllPass int NULL--0/null:δͨ 1:ͨ +alter table PreRun_SubInspectTerm add SubcontractorIsAllPass int NULL--ְǷͨ0/null:δͨ 1:ͨ +alter table PreRun_SubInspectTerm add ContractorIsAllPass int NULL--аǷͨ0/null:δͨ 1:ͨ +alter table PreRun_SubInspectTerm add SupervisionIsAllPass int NULL--Ƿͨ0/null:δͨ 1:ͨ +alter table PreRun_SubInspectTerm add OwnerIsAllPass int NULL--ҵǷͨ0/null:δͨ 1:ͨ +--ϵͳ +alter table PreRun_SubInspectTermItem add SubcontractorIsPass int NULL--ְǷͨ0/null:δͨ 1:ͨ +alter table PreRun_SubInspectTermItem add ContractorIsPass int NULL--аǷͨ0/null:δͨ 1:ͨ +alter table PreRun_SubInspectTermItem add SupervisionIsPass int NULL--Ƿͨ0/null:δͨ 1:ͨ +alter table PreRun_SubInspectTermItem add OwnerIsPass int NULL--ҵǷͨ0/null:δͨ 1:ͨ diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index c215efda..30cae4d3 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -1659,6 +1659,8 @@ + + @@ -15001,6 +15003,20 @@ InspectTemplateEdit.aspx + + InspectWanderAboutConfirm.aspx + ASPXCodeBehind + + + InspectWanderAboutConfirm.aspx + + + InspectWanderAboutList.aspx + ASPXCodeBehind + + + InspectWanderAboutList.aspx + SelectProperty.aspx ASPXCodeBehind diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx index 0c964cbb..468964e0 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx @@ -63,7 +63,7 @@ - + diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.cs index 4087645f..2db1d804 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.cs @@ -22,6 +22,15 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun set { ViewState["TailTermId"] = value; } } + /// + /// 主键 + /// + public string TermItemId + { + get { return (string)ViewState["TermItemId"]; } + set { ViewState["TermItemId"] = value; } + } + /// /// 是否查看 /// @@ -54,6 +63,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun if (!IsPostBack) { this.TailTermId = Request["TailTermId"]; + this.TermItemId = Request["TermItemId"]; //是否查看 this.IsView = string.IsNullOrWhiteSpace(Request["IsView"]) ? false : bool.Parse(Request["IsView"]); //数据绑定 @@ -70,7 +80,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun txtTailTermCode.Enabled = false; ddlConstructionUnit.Enabled = false; ddlProblemType.Enabled = false; - ddlQuestionTechnologyId.Enabled = false; + ddlSubInspectId.Enabled = false; ddlTermItemId.Enabled = false; txtQuestionDesc.Enabled = false; txtRectifyOpinion.Enabled = false; @@ -88,13 +98,27 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun { QuestionEditImg = 0; RectifyEditImg = 0; + var selectList = new List(); //施工单位 UnitService.InitUnitByProjectIdUnitTypeDropDownList(ddlConstructionUnit, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false); //获取用户信息 - var users = from user in Funs.DB.Sys_User - join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId - where projectrole.ProjectId == this.CurrUser.LoginProjectId - select user; + //var users = from user in Funs.DB.Sys_User + // join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId + // where projectrole.ProjectId == this.CurrUser.LoginProjectId + // select user; + + //检查人绑定 + var userList = from user in Funs.DB.Sys_User + join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId + where projectrole.ProjectId == this.CurrUser.LoginProjectId + select user; + var userids = new List() { Const.sysglyId, Const.hfnbdId, Const.sedinId }; + var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId)); + var users = userList.ToList(); + if (addUserList.Count() > 0) + { + users.AddRange(addUserList); + } //检查人和审核人 if (users.Count() > 0) { @@ -103,11 +127,13 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun ddlInspectUser.DataValueField = "UserId"; ddlInspectUser.DataSource = users; ddlInspectUser.DataBind(); + ddlInspectUser.SelectedValue = this.CurrUser.UserId; //审核人 ddlApproveUser.DataTextField = "UserName"; ddlApproveUser.DataValueField = "UserId"; ddlApproveUser.DataSource = users; ddlApproveUser.DataBind(); + ddlApproveUser.SelectedValue = this.CurrUser.UserId; } var model = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); if (model != null) @@ -121,60 +147,64 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun //问题类别 ddlProblemType.SelectedValue = model.ProblemType.ToString(); //绑定管道或者设备 - if (model.ProblemType == 1) + var termitemlist = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.WorkPackType == model.ProblemType).GroupBy(x => new { x.SubInspectId, x.InspectionResults, x.PropertyTechnologyId, x.WorkPackType }); + if (termitemlist.Count() > 0) { - var sysPipingData = from proper in Funs.DB.PreRun_PropertySysPiping - join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId - join termitem in Funs.DB.PreRun_SubInspectTermItem on proper.PropertyId equals termitem.PropertyTechnologyId - where termitem.InspectionResults == 0 && termitem.InspectedUser == this.CurrUser.UserId - group proper by new { proper.PropertyId, proper.PipingCode } into t - select new - { - Id = t.Key.PropertyId, - Code = $"管道:({t.Key.PipingCode})" - }; - if (sysPipingData.Count() > 0) + var ids = string.Join(",", termitemlist.Select(x => x.Key.PropertyTechnologyId)).Split(','); + if (ddlProblemType.SelectedValue == "1") { - ddlQuestionTechnologyId.DataTextField = "Code"; - ddlQuestionTechnologyId.DataValueField = "Id"; - ddlQuestionTechnologyId.DataSource = sysPipingData; - ddlQuestionTechnologyId.DataBind(); + var piplist = Funs.DB.PreRun_PropertySysPiping.Where(x => ids.Contains(x.PropertyId)); + foreach (var item in termitemlist) + { + var pid = item.Key.PropertyTechnologyId.Split(','); + var codes = piplist.Where(x => pid.Contains(x.PropertyId)).ToList(); + selectList.Add(new SelectPropertyTechnology() + { + Id = item.Key.SubInspectId, + Code = $"管道:{string.Join(",", codes.ConvertAll(x => x.PipingCode))}" + }); + } } - } - else - { - var sysPipingData = from technology in Funs.DB.PreRun_TechnologySysPiping - join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId - join termitem in Funs.DB.PreRun_SubInspectTermItem on technology.TechnologyId equals termitem.PropertyTechnologyId - where termitem.InspectionResults == 0 && termitem.InspectedUser == this.CurrUser.UserId - group technology by new { technology.TechnologyId, technology.TagNumber } into t - select new - { - Id = t.Key.TechnologyId, - Code = $"设备:({t.Key.TagNumber})" - }; - if (sysPipingData.Count() > 0) + else { - ddlQuestionTechnologyId.DataTextField = "Code"; - ddlQuestionTechnologyId.DataValueField = "Id"; - ddlQuestionTechnologyId.DataSource = sysPipingData; - ddlQuestionTechnologyId.DataBind(); + var techlist = Funs.DB.PreRun_TechnologySysPiping.Where(x => ids.Contains(x.TechnologyId)); + foreach (var item in termitemlist) + { + var pid = item.Key.PropertyTechnologyId.Split(','); + var codes = techlist.Where(x => pid.Contains(x.TechnologyId)).ToList(); + selectList.Add(new SelectPropertyTechnology() + { + Id = item.Key.SubInspectId, + Code = $"设备:{string.Join(",", codes.ConvertAll(x => x.TagNumber))}" + }); + } + } + if (selectList.Count > 0) + { + ddlSubInspectId.DataTextField = "Code"; + ddlSubInspectId.DataValueField = "Id"; + ddlSubInspectId.DataSource = selectList; + ddlSubInspectId.DataBind(); + } + else + { + ddlSubInspectId.Items.Insert(0, new ListItem("==无数据==", "")); } } //管道/设备 - ddlQuestionTechnologyId.SelectedValue = model.QuestionTechnologyId; + ddlSubInspectId.SelectedValue = model.SubInspectId; //绑定检查项 - if (!string.IsNullOrWhiteSpace(ddlQuestionTechnologyId.SelectedValue)) + if (!string.IsNullOrWhiteSpace(ddlSubInspectId.SelectedValue)) { var TermItemIds = Funs.DB.PreRun_InspectTailTerm.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.TailTermId != this.TailTermId).Select(a => a.TermItemId).ToList(); var list = new List(); if (TermItemIds.Count > 0) { - list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.PropertyTechnologyId == ddlQuestionTechnologyId.SelectedValue && !TermItemIds.Contains(x.TermItemId)).ToList(); + list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.SubInspectId == ddlSubInspectId.SelectedValue && !TermItemIds.Contains(x.TermItemId)).ToList(); } else { - list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.PropertyTechnologyId == ddlQuestionTechnologyId.SelectedValue).ToList(); + list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.SubInspectId == ddlSubInspectId.SelectedValue).ToList(); } if (list.Count() > 0) { @@ -212,6 +242,32 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun string code = projectModel.ProjectCode + "-06-CM03-XJ-"; txtTailTermCode.Text = SQLHelper.RunProcNewId("SpGetNewCode5", "dbo.PreRun_InspectTailTerm", "TailTermCode", code); } + if (!string.IsNullOrWhiteSpace(TermItemId)) + { + var itemTerm = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == this.TermItemId); + if (itemTerm != null) + { + var workPackType = itemTerm.WorkPackType; + if (workPackType == 0) + { + if (Funs.DB.PreRun_PropertySysPiping.Count(x => x.PropertyId == itemTerm.PropertyTechnologyId) > 0) + { + workPackType = 1; + } + else + { + workPackType = 2; + } + } + ddlProblemType.SelectedValue = workPackType.ToString(); + //管道/设备 + ddlProblemType_SelectedIndexChanged(null, null); + ddlSubInspectId.SelectedValue = itemTerm.SubInspectId; + //检查项 + ddlSubInspectId_SelectedIndexChanged(null, null); + ddlTermItemId.SelectedValue = itemTerm.TermItemId; + } + } } } @@ -248,7 +304,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun ShowNotify("请选择问题类别!", MessageBoxIcon.Warning); return; } - if (string.IsNullOrWhiteSpace(ddlQuestionTechnologyId.SelectedValue)) + if (string.IsNullOrWhiteSpace(ddlSubInspectId.SelectedValue)) { ShowNotify("请选择管道/设备!", MessageBoxIcon.Warning); return; @@ -281,7 +337,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun model.TailTermCode = txtTailTermCode.Text; model.ConstructionUnit = ddlConstructionUnit.SelectedValue; model.ProblemType = int.Parse(ddlProblemType.SelectedValue); - model.QuestionTechnologyId = ddlQuestionTechnologyId.SelectedValue; + model.SubInspectId = ddlSubInspectId.SelectedValue; model.TermItemId = ddlTermItemId.SelectedValue; model.QuestionDesc = txtQuestionDesc.Text.Trim(); model.RectifyOpinion = txtRectifyOpinion.Text.Trim(); @@ -320,7 +376,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun ShowNotify("请选择问题类别!", MessageBoxIcon.Warning); return; } - if (string.IsNullOrWhiteSpace(ddlQuestionTechnologyId.SelectedValue)) + if (string.IsNullOrWhiteSpace(ddlSubInspectId.SelectedValue)) { ShowNotify("请选择管道/设备!", MessageBoxIcon.Warning); return; @@ -353,7 +409,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun model.TailTermCode = txtTailTermCode.Text; model.ConstructionUnit = ddlConstructionUnit.SelectedValue; model.ProblemType = int.Parse(ddlProblemType.SelectedValue); - model.QuestionTechnologyId = ddlQuestionTechnologyId.SelectedValue; + model.SubInspectId = ddlSubInspectId.SelectedValue; model.TermItemId = ddlTermItemId.SelectedValue; model.QuestionDesc = txtQuestionDesc.Text.Trim(); model.RectifyOpinion = txtRectifyOpinion.Text.Trim(); @@ -404,54 +460,51 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun { if (!string.IsNullOrWhiteSpace(ddlProblemType.SelectedValue)) { - if (ddlProblemType.SelectedValue == "1") + var selectList = new List(); + var wtype = int.Parse(ddlProblemType.SelectedValue); + var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.WorkPackType == wtype).GroupBy(x => new { x.SubInspectId, x.InspectionResults, x.PropertyTechnologyId, x.WorkPackType }); + if (list.Count() > 0) { - var sysPipingData = from proper in Funs.DB.PreRun_PropertySysPiping - join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId - join termitem in Funs.DB.PreRun_SubInspectTermItem on proper.PropertyId equals termitem.PropertyTechnologyId - where termitem.InspectionResults == 0 && termitem.InspectedUser == this.CurrUser.UserId - group proper by new { proper.PropertyId, proper.PipingCode } into t - select new - { - Id = t.Key.PropertyId, - Code = $"管道:({t.Key.PipingCode})" - }; - ddlQuestionTechnologyId.Items.Clear(); - if (sysPipingData.Count() > 0) + var ids = string.Join(",", list.Select(x => x.Key.PropertyTechnologyId)).Split(','); + if (ddlProblemType.SelectedValue == "1") { - ddlQuestionTechnologyId.DataTextField = "Code"; - ddlQuestionTechnologyId.DataValueField = "Id"; - ddlQuestionTechnologyId.DataSource = sysPipingData; - ddlQuestionTechnologyId.DataBind(); + var piplist = Funs.DB.PreRun_PropertySysPiping.Where(x => ids.Contains(x.PropertyId)).ToList(); + foreach (var item in list) + { + var pid = item.Key.PropertyTechnologyId.Split(','); + var codes = piplist.Where(x => pid.Contains(x.PropertyId)).ToList(); + selectList.Add(new SelectPropertyTechnology() + { + Id = item.Key.SubInspectId, + Code = $"管道:{string.Join(",", codes.ConvertAll(x => x.PipingCode))}" + }); + } + } else { - ddlQuestionTechnologyId.Items.Insert(0, new ListItem("==无数据==", "")); + var techlist = Funs.DB.PreRun_TechnologySysPiping.Where(x => ids.Contains(x.TechnologyId)).ToList(); + foreach (var item in list) + { + var pid = item.Key.PropertyTechnologyId.Split(','); + var codes = techlist.Where(x => pid.Contains(x.TechnologyId)).ToList(); + selectList.Add(new SelectPropertyTechnology() + { + Id = item.Key.SubInspectId, + Code = $"设备:{string.Join(",", codes.ConvertAll(x => x.TagNumber))}" + }); + } } - } - else - { - var sysPipingData = from technology in Funs.DB.PreRun_TechnologySysPiping - join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId - join termitem in Funs.DB.PreRun_SubInspectTermItem on technology.TechnologyId equals termitem.PropertyTechnologyId - where termitem.InspectionResults == 0 && termitem.InspectedUser == this.CurrUser.UserId - group technology by new { technology.TechnologyId, technology.TagNumber } into t - select new - { - Id = t.Key.TechnologyId, - Code = $"设备:({t.Key.TagNumber})" - }; - ddlQuestionTechnologyId.Items.Clear(); - if (sysPipingData.Count() > 0) + if (selectList.Count > 0) { - ddlQuestionTechnologyId.DataTextField = "Code"; - ddlQuestionTechnologyId.DataValueField = "Id"; - ddlQuestionTechnologyId.DataSource = sysPipingData; - ddlQuestionTechnologyId.DataBind(); + ddlSubInspectId.DataTextField = "Code"; + ddlSubInspectId.DataValueField = "Id"; + ddlSubInspectId.DataSource = selectList; + ddlSubInspectId.DataBind(); } else { - ddlQuestionTechnologyId.Items.Insert(0, new ListItem("==无数据==", "")); + ddlSubInspectId.Items.Insert(0, new ListItem("==无数据==", "")); } } } @@ -460,18 +513,18 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun /// /// 管道/设备 /// - protected void ddlQuestionTechnologyId_SelectedIndexChanged(object sender, EventArgs e) + protected void ddlSubInspectId_SelectedIndexChanged(object sender, EventArgs e) { - if (string.IsNullOrWhiteSpace(ddlQuestionTechnologyId.SelectedValue)) return; + if (string.IsNullOrWhiteSpace(ddlSubInspectId.SelectedValue)) return; var TermItemIds = Funs.DB.PreRun_InspectTailTerm.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.TailTermId != this.TailTermId).Select(a => a.TermItemId).ToList(); var list = new List(); if (TermItemIds.Count > 0) { - list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.PropertyTechnologyId == ddlQuestionTechnologyId.SelectedValue && !TermItemIds.Contains(x.TermItemId)).ToList(); + list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.SubInspectId == ddlSubInspectId.SelectedValue && !TermItemIds.Contains(x.TermItemId)).ToList(); } else { - list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.PropertyTechnologyId == ddlQuestionTechnologyId.SelectedValue).ToList(); + list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.SubInspectId == ddlSubInspectId.SelectedValue).ToList(); } ddlTermItemId.Items.Clear(); if (list.Count() > 0) @@ -494,6 +547,30 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun { } + + } + + /// + /// 管道/设备 + /// + public class SelectPropertyTechnology + { + /// + /// 主键 + /// + public string Id { get; set; } + /// + /// 编码 + /// + public string Code { get; set; } + /// + /// 工作包主键 + /// + public string WorkPackId { get; set; } + /// + /// 子系统主键 + /// + public string SubSystemId { get; set; } } #endregion diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.designer.cs index 925aa731..fa6da528 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.designer.cs @@ -96,13 +96,13 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun protected global::FineUIPro.DropDownList ddlProblemType; /// - /// ddlQuestionTechnologyId 控件。 + /// ddlSubInspectId 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.DropDownList ddlQuestionTechnologyId; + protected global::FineUIPro.DropDownList ddlSubInspectId; /// /// ddlTermItemId 控件。 diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx index 71295e4f..560497cf 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx @@ -49,10 +49,18 @@
- + - + + + + + + + @@ -106,8 +115,6 @@ - <%-- - --%> diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.cs index 6b3a6ad1..85307203 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.cs @@ -16,11 +16,110 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun { if (!IsPostBack) { + InitTreeMenu(); //绑定数据 - BindGrid(); + //BindGrid(); } } + #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 userSubInspects = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectedUser == this.CurrUser.UserId && x.InspectionResults == 0).ToList(); + if (userSubInspects.Count == 0) return; + var subSystemIds = userSubInspects.ConvertAll(x => x.SubSystemId); + var workPackIds = userSubInspects.ConvertAll(x => x.WorkPackId); + var list = from a in Funs.DB.PreRun_SysDevice + join b in Funs.DB.PreRun_SubSysWorkPackage on a.PreRunId equals b.SubSystemId + join c in Funs.DB.PreRun_WorkPackage on b.WorkPackId equals c.WorkPackId + where a.ProjectId == this.CurrUser.LoginProjectId && subSystemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId) + select new { a.PreRunId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode }; + if (list.Count() > 0) + { + var selectlist = YscInspectItems(workPackIds, subSystemIds); + var systemIds = list.Select(x => x.SystemId).ToList(); + var syslist = Funs.DB.PreRun_SysDevice.Where(x => systemIds.Contains(x.PreRunId)); + foreach (var itemSys in syslist) + { + TreeNode rootFirstNode = new TreeNode();//定义根节点 + rootFirstNode.NodeID = itemSys.PreRunId; + rootFirstNode.Text = itemSys.PreRunName; + rootFirstNode.ToolTip = itemSys.PreRunName; + rootFirstNode.CommandName = ""; + rootFirstNode.EnableClickEvent = false; + rootFirstNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootFirstNode); + rootFirstNode.Expanded = true; + var subList = list.Where(g => g.SystemId == itemSys.PreRunId).GroupBy(x => new { x.PreRunId, x.SystemId, x.PreRunCode, x.PreRunName }); + foreach (var item in subList) + { + TreeNode rootUnitNode = new TreeNode();//定义根节点 + rootUnitNode.NodeID = item.Key.PreRunId; + rootUnitNode.Text = item.Key.PreRunName; + rootUnitNode.ToolTip = item.Key.PreRunName; + rootUnitNode.CommandName = ""; + rootUnitNode.EnableClickEvent = false; + rootUnitNode.EnableExpandEvent = false; + rootFirstNode.Nodes.Add(rootUnitNode); + rootUnitNode.Expanded = true; + var worklist = list.Where(a => a.PreRunId == item.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList(); + if (worklist.Count > 0) + { + foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode)) + { + TreeNode newNode = new TreeNode(); + newNode.Text = itemWork.Key.WorkPackName; + newNode.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId; + newNode.ToolTip = itemWork.Key.WorkPackName; + newNode.CommandName = ""; + newNode.EnableClickEvent = false; + newNode.EnableExpandEvent = false; + rootUnitNode.Nodes.Add(newNode); + newNode.Expanded = true; + if (selectlist.Count > 0) + { + var workselects = selectlist.Where(x => x.SubSystemId == item.Key.PreRunId && x.WorkPackId == itemWork.Key.WorkPackId); + foreach (var itemSelect in workselects) + { + TreeNode newNodeSelect = new TreeNode(); + newNodeSelect.Text = itemSelect.Code.Length > 10 ? $"{itemSelect.Code.Substring(0, 10)}......" : itemSelect.Code; + newNodeSelect.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId + "|" + itemSelect.Id; + newNodeSelect.ToolTip = itemSelect.Code; + newNodeSelect.CommandName = ""; + newNodeSelect.EnableClickEvent = true; + newNodeSelect.EnableExpandEvent = true; + newNode.Nodes.Add(newNodeSelect); + newNodeSelect.Expanded = true; + } + } + } + } + } + } + } + } + + /// + /// 点击TreeView + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + this.BindGrid(); + } + + #endregion #region 绑定数据 @@ -29,10 +128,29 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun ///
public void BindGrid() { - string strSql = @"select * from (select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.ProblemType,'管道' as ProblemTypeName,a.QuestionTechnologyId,a.TermItemId,c.WorkInspectName,a.QuestionDesc,a.RectifyTime,a.RectifyOpinion,a.InspectUser,e.UserName as InspectUserName,a.ApproveUser,f.UserName as ApproveUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交' when 1 then '退回' when 2 then '待审核' when 3 then '审核通过' else '待提交' end) as ApproveStateName,a.AddTime from PreRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join PreRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Project as d on d.ProjectId=a.ProjectId inner join Sys_User as e on e.UserId=a.InspectUser inner join Sys_User as f on f.UserId=a.ApproveUser where a.ProblemType=1 and a.ProjectId=@projectid and c.InspectedUser=@InspectedUser union all select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.ProblemType,'设备' as ProblemTypeName,a.QuestionTechnologyId,a.TermItemId,c.WorkInspectName,a.QuestionDesc,a.RectifyTime,a.RectifyOpinion,a.InspectUser,e.UserName as InspectUserName,a.ApproveUser,f.UserName as ApproveUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交' when 1 then '退回' when 2 then '待审核' when 3 then '审核通过' else '待提交' end) as ApproveStateName,a.AddTime from PreRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join PreRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Project as d on d.ProjectId=a.ProjectId inner join Sys_User as e on e.UserId=a.InspectUser inner join Sys_User as f on f.UserId=a.ApproveUser where a.ProblemType=2 and a.ProjectId=@projectid and c.InspectedUser=@InspectedUser) as t where 1=1 "; + string strSql = @"select * from (select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.ProblemType,'管道' as ProblemTypeName,a.SubInspectId,a.TermItemId,c.WorkInspectName,a.QuestionDesc,a.RectifyTime,a.RectifyOpinion,a.InspectUser,e.UserName as InspectUserName,a.ApproveUser,f.UserName as ApproveUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交' when 1 then '退回' when 2 then '待审核' when 3 then '审核通过' else '待提交' end) as ApproveStateName,a.AddTime,a.WorkPackId,c.SubSystemId from PreRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join PreRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Project as d on d.ProjectId=a.ProjectId inner join Sys_User as e on e.UserId=a.InspectUser inner join Sys_User as f on f.UserId=a.ApproveUser where a.ProblemType=1 and a.ProjectId=@projectid and c.InspectedUser=@InspectedUser union all select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.ProblemType,'设备' as ProblemTypeName,a.SubInspectId,a.TermItemId,c.WorkInspectName,a.QuestionDesc,a.RectifyTime,a.RectifyOpinion,a.InspectUser,e.UserName as InspectUserName,a.ApproveUser,f.UserName as ApproveUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交' when 1 then '退回' when 2 then '待审核' when 3 then '审核通过' else '待提交' end) as ApproveStateName,a.AddTime,a.WorkPackId,c.SubSystemId from PreRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join PreRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Project as d on d.ProjectId=a.ProjectId inner join Sys_User as e on e.UserId=a.InspectUser inner join Sys_User as f on f.UserId=a.ApproveUser where a.ProblemType=2 and a.ProjectId=@projectid and c.InspectedUser=@InspectedUser) as t where 1=1 "; List listStr = new List(); listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId)); - listStr.Add(new SqlParameter("@InspectedUser", this.CurrUser.UserId)); + listStr.Add(new SqlParameter("@InspectedUser", this.CurrUser.UserId)); + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0) + { + var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First(); + strSql += " and t.WorkPackId=@WorkPackId"; + listStr.Add(new SqlParameter("@WorkPackId", workPackId)); + } + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1) + { + var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; + strSql += " and t.SubSystemId=@SubSystemId"; + listStr.Add(new SqlParameter("@SubSystemId", subSystemId)); + } + var subInspectId = string.Empty; + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2) + { + subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last(); + strSql += " and t.SubInspectId=@SubInspectId"; + listStr.Add(new SqlParameter("@SubInspectId", subInspectId)); + } //问题类别 if (!string.IsNullOrWhiteSpace(ddlProblemType.SelectedValue)) { @@ -124,6 +242,14 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId={0}", Grid1.SelectedRowID, "编辑 - "))); } + /// + /// 编辑 + /// + protected void btnModify_Click(object sender, EventArgs e) + { + btnMenuModify_Click(null, null); + } + /// /// 新增 /// @@ -239,5 +365,51 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun #endregion + + /// + /// 已生成检查表的管道/设备 + /// + private List YscInspectItems(List workPackIds, List subSystemIds) + { + List yczData = new List(); + var yscInspectItems = Funs.DB.PreRun_SubInspectTerm.Where(x => workPackIds.Contains(x.WorkPackId) && subSystemIds.Contains(x.SubSystemId)).ToList(); + if (yscInspectItems.Count > 0) + { + var selectPtids = string.Join(",", yscInspectItems.ConvertAll(x => x.PropertyTechnologyId)).Split(',').ToList(); + var listPros = Funs.DB.PreRun_PropertySysPiping.Where(x => selectPtids.Contains(x.PropertyId)).ToList(); + var listTechno = Funs.DB.PreRun_TechnologySysPiping.Where(x => selectPtids.Contains(x.TechnologyId)).ToList(); + + foreach (var itemYsc in yscInspectItems) + { + var codeStr = string.Empty; + var ids = itemYsc.PropertyTechnologyId.Split(','); + var itemPros = listPros.Where(x => ids.Contains(x.PropertyId)).ToList(); + if (itemPros.Count > 0) + { + codeStr = $"管道:{string.Join(",", itemPros.ConvertAll(x => x.PipingCode))}"; + yczData.Add(new SelectPropertyTechnology() + { + Id = itemYsc.SubInspectId, + Code = codeStr, + WorkPackId = itemYsc.WorkPackId, + SubSystemId = itemYsc.SubSystemId + }); + } + var itemTechno = listTechno.Where(x => ids.Contains(x.TechnologyId)).ToList(); + if (itemTechno.Count > 0) + { + codeStr = $"设备:{string.Join(",", itemTechno.ConvertAll(x => x.TagNumber))}"; + yczData.Add(new SelectPropertyTechnology() + { + Id = itemYsc.SubInspectId, + Code = codeStr, + WorkPackId = itemYsc.WorkPackId, + SubSystemId = itemYsc.SubSystemId + }); + } + } + } + return yczData; + } } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.designer.cs index 5094bc84..fe174a49 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.designer.cs @@ -41,6 +41,24 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun /// protected global::FineUIPro.Panel Panel1; + /// + /// panelLeftRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelLeftRegion; + + /// + /// tvControlItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree tvControlItem; + /// /// Grid1 控件。 /// @@ -113,6 +131,15 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun /// protected global::FineUIPro.Button btnNew; + /// + /// btnModify 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnModify; + /// /// btnSubmitReview 控件。 /// diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx new file mode 100644 index 00000000..1cd6b3f3 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx @@ -0,0 +1,74 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutConfirm.aspx.cs" Inherits="FineUIPro.Web.TestRun.BeforeTestRun.InspectWanderAboutConfirm" %> + + + + + + 签字确认 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx.cs new file mode 100644 index 00000000..0244bfbd --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx.cs @@ -0,0 +1,257 @@ +using BLL; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.BeforeTestRun +{ + public partial class InspectWanderAboutConfirm : PageBase + { + /// + /// + /// + public string SubInspectId + { + get { return (string)ViewState["SubInspectId"]; } + set { ViewState["SubInspectId"] = value; } + } + + /// + /// + /// + public int ConfirmType + { + get { return (int)ViewState["ConfirmType"]; } + set { ViewState["ConfirmType"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.SubInspectId = Request.Params["SubInspectId"]; + this.ConfirmType = int.Parse(Request.Params["ConfirmType"]); + this.BindGrid(); + } + } + + #region 数据绑定 + + /// + /// 绑定数据 + /// + public void BindGrid() + { + //获取子系统 + var data = new List(); + var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.SubInspectId == this.SubInspectId).OrderBy(x => x.Sort).ToList(); + if (list.Count > 0) + { + foreach (var item in list) + { + var model = new ConfirmIsPass(); + model.TermItemId = item.TermItemId; + model.SubItemId = item.SubItemId; + model.SubInspectId = item.SubInspectId; + model.WorkInspectName = item.WorkInspectName; + model.ConfirmType = this.ConfirmType; + model.InspectionIllustrate = item.InspectionIllustrate; + //1=分包商2=承包商3=监理4=业主 + if (this.ConfirmType == 1) + { + model.IsPass = item.SubcontractorIsPass; + model.ConfirmTypeName = "分包商"; + } + if (this.ConfirmType == 2) + { + model.IsPass = item.ContractorIsPass; + model.ConfirmTypeName = "承包商"; + } + if (this.ConfirmType == 3) + { + model.IsPass = item.SupervisionIsPass; + model.ConfirmTypeName = "监理"; + } + if (this.ConfirmType == 4) + { + model.IsPass = item.OwnerIsPass; + model.ConfirmTypeName = "业主"; + } + data.Add(model); + } + } + Grid1.DataSource = data; + Grid1.DataBind(); + Grid1.Title = this.ConfirmType == 1 ? "分包商确认签字" : this.ConfirmType == 2 ? "承包商确认签字" : this.ConfirmType == 3 ? "监理确认签字" : this.ConfirmType == 4 ? "业主确认签字" : ""; + } + + /// + /// 排序 + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + Grid1.SortDirection = e.SortDirection; + Grid1.SortField = e.SortField; + BindGrid(); + } + + #endregion + + #region 保存 + + /// + /// 保存 + /// + protected void btnSave_Click(object sender, EventArgs e) + { + try + { + JArray mergedData = Grid1.GetMergedData(); + foreach (JObject mergedRow in mergedData) + { + string status = mergedRow.Value("status"); + JObject values = mergedRow.Value("values"); + int i = mergedRow.Value("index"); + var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); + //获取子系统信息 + var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemId); + if (model != null) + { + if (!string.IsNullOrWhiteSpace(values.Value("IsPass"))) + { + //1=分包商2=承包商3=监理4=业主 + if (this.ConfirmType == 1) + { + model.SubcontractorIsPass = int.Parse(values.Value("IsPass")); + } + else if (this.ConfirmType == 2) + { + model.ContractorIsPass = int.Parse(values.Value("IsPass")); + } + else if (this.ConfirmType == 3) + { + model.SupervisionIsPass = int.Parse(values.Value("IsPass")); + } + else if (this.ConfirmType == 4) + { + model.OwnerIsPass = int.Parse(values.Value("IsPass")); + } + } + Funs.DB.SubmitChanges(); + } + } + var subInspectId = this.Grid1.Rows[0].DataKeys[3].ToString(); + var subModel = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId); + if (subModel != null) + { + //1=分包商2=承包商3=监理4=业主 + if (this.ConfirmType == 1) + { + if (Funs.DB.PreRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.SubcontractorIsPass.GetValueOrDefault() != 1) == 0) + { + subModel.SubcontractorIsAllPass = 1; + } + else + { + subModel.SubcontractorIsAllPass = 0; + } + } + else if (this.ConfirmType == 2) + { + if (Funs.DB.PreRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.ContractorIsPass.GetValueOrDefault() != 1) == 0) + { + subModel.ContractorIsAllPass = 1; + } + else + { + subModel.ContractorIsAllPass = 0; + } + } + else if (this.ConfirmType == 3) + { + if (Funs.DB.PreRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.SupervisionIsPass.GetValueOrDefault() != 1) == 0) + { + subModel.SupervisionIsAllPass = 1; + } + else + { + subModel.SupervisionIsAllPass = 0; + } + } + else if (this.ConfirmType == 4) + { + if (Funs.DB.PreRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.OwnerIsPass.GetValueOrDefault() != 1) == 0) + { + subModel.OwnerIsAllPass = 1; + } + else + { + subModel.OwnerIsAllPass = 0; + } + } + } + Funs.DB.SubmitChanges(); + BindGrid(); + ShowNotify("保存成功!"); + } + catch (Exception ex) + { + ShowNotify(ex.Message, MessageBoxIcon.Error); + } + } + + #endregion + + /// + /// 实体绑定 + /// + public class ConfirmIsPass + { + /// + /// 主键 + /// + public string TermItemId { get; set; } + /// + /// 检查项主键 + /// + public string SubItemId { get; set; } + /// + /// 检查表主键 + /// + public string SubInspectId { get; set; } + /// + /// 名称 + /// + public string WorkInspectName { get; set; } + /// + /// 检查说明 + /// + public string InspectionIllustrate { get; set; } + /// + /// 确认类型1=分包商2=承包商3=监理4=业主 + /// + public int ConfirmType { get; set; } + /// + /// 确认类型名称 + /// + public string ConfirmTypeName { get; set; } + /// + /// 是否通过 + /// + public int? IsPass { get; set; } + + } + + /// + /// 窗口关闭 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx.designer.cs new file mode 100644 index 00000000..7f26c159 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx.designer.cs @@ -0,0 +1,98 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.BeforeTestRun +{ + + + public partial class InspectWanderAboutConfirm + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// ddlrenderIsPass 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlrenderIsPass; + + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window1; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutList.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutList.aspx new file mode 100644 index 00000000..6f44a1b2 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutList.aspx @@ -0,0 +1,144 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutList.aspx.cs" Inherits="FineUIPro.Web.TestRun.BeforeTestRun.InspectWanderAboutList" %> + + + + + + + + + 检查表流转 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutList.aspx.cs new file mode 100644 index 00000000..92c5f135 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutList.aspx.cs @@ -0,0 +1,315 @@ +using BLL; +using Model; +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.BeforeTestRun +{ + 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.PreRun_SubInspectTerm.Where(x => (x.Subcontractor == this.CurrUser.UserId && x.InspectionIsAllPass == 1) || (x.Contractor == this.CurrUser.UserId && x.ContractorIsAllPass == 1) || (x.Supervision == this.CurrUser.UserId && x.SupervisionIsAllPass == 1) || (x.Owner == this.CurrUser.UserId && x.OwnerIsAllPass == 1)).ToList(); + if (inspectTerms.Count == 0) return; + var subSystemIds = inspectTerms.ConvertAll(x => x.SubSystemId); + var workPackIds = inspectTerms.ConvertAll(x => x.WorkPackId); + var list = from a in Funs.DB.PreRun_SysDevice + join b in Funs.DB.PreRun_SubSysWorkPackage on a.PreRunId equals b.SubSystemId + join c in Funs.DB.PreRun_WorkPackage on b.WorkPackId equals c.WorkPackId + where a.ProjectId == this.CurrUser.LoginProjectId && subSystemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId) + select new { a.PreRunId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode }; + if (list.Count() > 0) + { + var selectlist = YscInspectItems(workPackIds, subSystemIds); + var systemIds = list.Select(x => x.SystemId).ToList(); + var syslist = Funs.DB.PreRun_SysDevice.Where(x => systemIds.Contains(x.PreRunId)); + foreach (var itemSys in syslist) + { + TreeNode rootFirstNode = new TreeNode();//定义根节点 + rootFirstNode.NodeID = itemSys.PreRunId; + rootFirstNode.Text = itemSys.PreRunName; + rootFirstNode.ToolTip = itemSys.PreRunName; + rootFirstNode.CommandName = ""; + rootFirstNode.EnableClickEvent = false; + rootFirstNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootFirstNode); + rootFirstNode.Expanded = true; + var subList = list.Where(g => g.SystemId == itemSys.PreRunId).GroupBy(x => new { x.PreRunId, x.SystemId, x.PreRunCode, x.PreRunName }); + foreach (var item in subList) + { + TreeNode rootUnitNode = new TreeNode();//定义根节点 + rootUnitNode.NodeID = item.Key.PreRunId; + rootUnitNode.Text = item.Key.PreRunName; + rootUnitNode.ToolTip = item.Key.PreRunName; + rootUnitNode.CommandName = ""; + rootUnitNode.EnableClickEvent = false; + rootUnitNode.EnableExpandEvent = false; + rootFirstNode.Nodes.Add(rootUnitNode); + rootUnitNode.Expanded = true; + var worklist = list.Where(a => a.PreRunId == item.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList(); + if (worklist.Count > 0) + { + foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode)) + { + TreeNode newNode = new TreeNode(); + newNode.Text = itemWork.Key.WorkPackName; + newNode.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId; + newNode.ToolTip = itemWork.Key.WorkPackName; + newNode.CommandName = ""; + newNode.EnableClickEvent = false; + newNode.EnableExpandEvent = false; + rootUnitNode.Nodes.Add(newNode); + newNode.Expanded = true; + if (selectlist.Count > 0) + { + var workselects = selectlist.Where(x => x.SubSystemId == item.Key.PreRunId && x.WorkPackId == itemWork.Key.WorkPackId); + foreach (var itemSelect in workselects) + { + TreeNode newNodeSelect = new TreeNode(); + newNodeSelect.Text = itemSelect.Code.Length > 10 ? $"{itemSelect.Code.Substring(0, 10)}......" : itemSelect.Code; + newNodeSelect.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId + "|" + itemSelect.Id; + newNodeSelect.ToolTip = itemSelect.Code; + newNodeSelect.CommandName = ""; + newNodeSelect.EnableClickEvent = true; + newNodeSelect.EnableExpandEvent = true; + newNode.Nodes.Add(newNodeSelect); + newNodeSelect.Expanded = true; + } + } + } + } + } + } + } + } + + /// + /// 树点击 + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + BindGrid(); + } + + #endregion + + #region 数据绑定 + + /// + /// 绑定数据 + /// + public void BindGrid() + { + //分包商 + string subcontractorStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.WorkPackType,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,(case a.WorkPackType when 1 then '管道' else '设备' end) as WorkPackTypeName,1 as ConfirmType,'分包商' as ConfirmName,(select count (1) from PreRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.SubcontractorIsPass is null) as WaitConfirmNum,(select count (1) from PreRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.SubcontractorIsPass=1) as PassConfirmNum,(select count (1) from PreRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.SubcontractorIsPass=0) as FailConfirmNum,a.AddUser,a.AddTime from PreRun_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.Subcontractor='{this.CurrUser.UserId}' "; + //承包商 + string contractorStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.WorkPackType,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,(case a.WorkPackType when 1 then '管道' else '设备' end) as WorkPackTypeName,2 as ConfirmType,'承包商' as ConfirmName,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ContractorIsPass is null) as WaitConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ContractorIsPass = 1) as PassConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ContractorIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime from PreRun_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.Contractor = '{this.CurrUser.UserId}' "; + //监理 + string supervisionStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.WorkPackType,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,(case a.WorkPackType when 1 then '管道' else '设备' end) as WorkPackTypeName,3 as ConfirmType,'监理' as ConfirmName,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.SupervisionIsPass is null) as WaitConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.SupervisionIsPass = 1) as PassConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.SupervisionIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime from PreRun_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.Supervision = '{this.CurrUser.UserId}' "; + //业主 + string ownerStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.WorkPackType,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,(case a.WorkPackType when 1 then '管道' else '设备' end) as WorkPackTypeName,4 as ConfirmType,'业主' as ConfirmName,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.OwnerIsPass is null) as WaitConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.OwnerIsPass = 1) as PassConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.OwnerIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime from PreRun_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.Owner = '{this.CurrUser.UserId}' "; + + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0) + { + var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First(); + subcontractorStr += $"and a.WorkPackId='{workPackId}'"; + contractorStr += $"and a.WorkPackId='{workPackId}'"; + supervisionStr += $"and a.WorkPackId='{workPackId}'"; + ownerStr += $"and a.WorkPackId='{workPackId}'"; + } + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1) + { + var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; + subcontractorStr += $"and a.SubSystemId='{subSystemId}'"; + contractorStr += $"and a.SubSystemId='{subSystemId}'"; + supervisionStr += $"and a.SubSystemId='{subSystemId}'"; + ownerStr += $"and a.SubSystemId='{subSystemId}'"; + } + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2) + { + var subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last(); + subcontractorStr += $"and a.SubInspectId='{subInspectId}'"; + contractorStr += $"and a.SubInspectId='{subInspectId}'"; + supervisionStr += $"and a.SubInspectId='{subInspectId}'"; + ownerStr += $"and a.SubInspectId='{subInspectId}'"; + } + //检查类型 + if (!string.IsNullOrWhiteSpace(ddlWorkPackType.SelectedValue)) + { + subcontractorStr += $"and a.WorkPackType='{ddlWorkPackType.SelectedValue}'"; + contractorStr += $"and a.WorkPackType='{ddlWorkPackType.SelectedValue}'"; + supervisionStr += $"and a.WorkPackType='{ddlWorkPackType.SelectedValue}'"; + ownerStr += $"and a.WorkPackType='{ddlWorkPackType.SelectedValue}'"; + } + var allSql = $"select * from ({subcontractorStr} union all {contractorStr} union all {supervisionStr} union all {ownerStr}) 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 + + #region 私有方法 + + /// + /// 已生成检查表的管道/设备 + /// + private List YscInspectItems(List workPackIds, List subSystemIds) + { + List yczData = new List(); + var yscInspectItems = Funs.DB.PreRun_SubInspectTerm.Where(x => workPackIds.Contains(x.WorkPackId) && subSystemIds.Contains(x.SubSystemId)).ToList(); + if (yscInspectItems.Count > 0) + { + var selectPtids = string.Join(",", yscInspectItems.ConvertAll(x => x.PropertyTechnologyId)).Split(',').ToList(); + var listPros = Funs.DB.PreRun_PropertySysPiping.Where(x => selectPtids.Contains(x.PropertyId)).ToList(); + var listTechno = Funs.DB.PreRun_TechnologySysPiping.Where(x => selectPtids.Contains(x.TechnologyId)).ToList(); + + foreach (var itemYsc in yscInspectItems) + { + var codeStr = string.Empty; + var ids = itemYsc.PropertyTechnologyId.Split(','); + var itemPros = listPros.Where(x => ids.Contains(x.PropertyId)).ToList(); + if (itemPros.Count > 0) + { + codeStr = $"管道:{string.Join(",", itemPros.ConvertAll(x => x.PipingCode))}"; + yczData.Add(new SelectPropertyTechnology() + { + Id = itemYsc.SubInspectId, + Code = codeStr, + WorkPackId = itemYsc.WorkPackId, + SubSystemId = itemYsc.SubSystemId + }); + } + var itemTechno = listTechno.Where(x => ids.Contains(x.TechnologyId)).ToList(); + if (itemTechno.Count > 0) + { + codeStr = $"设备:{string.Join(",", itemTechno.ConvertAll(x => x.TagNumber))}"; + yczData.Add(new SelectPropertyTechnology() + { + Id = itemYsc.SubInspectId, + Code = codeStr, + WorkPackId = itemYsc.WorkPackId, + SubSystemId = itemYsc.SubSystemId + }); + } + } + } + return yczData; + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutList.aspx.designer.cs new file mode 100644 index 00000000..4f95c6ab --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutList.aspx.designer.cs @@ -0,0 +1,161 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.BeforeTestRun +{ + + + public partial class InspectWanderAboutList + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// panelLeftRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelLeftRegion; + + /// + /// tvControlItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree tvControlItem; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ddlWorkPackType 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlWorkPackType; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + + /// + /// btnConfirmation 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnConfirmation; + + /// + /// ToolbarSeparator1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; + + /// + /// ToolbarText1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarText ToolbarText1; + + /// + /// ddlPageSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPageSize; + + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window1; + + /// + /// Menu1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Menu Menu1; + + /// + /// btnMenuConfirmation 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuConfirmation; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx.cs index 799456ec..0d8e489f 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx.cs @@ -38,101 +38,78 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun rootNode.ToolTip = ""; rootNode.EnableClickEvent = true; this.tvControlItem.Nodes.Add(rootNode); - - //var userSubInspects = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).ToList(); - //if (userSubInspects.Count == 0) return; - //var subSystemIds = userSubInspects.ConvertAll(x => x.SubSystemId); - //var workPackIds = userSubInspects.ConvertAll(x => x.WorkPackId); - var list = from a in Funs.DB.PreRun_SysDevice join b in Funs.DB.PreRun_SubSysWorkPackage on a.PreRunId equals b.SubSystemId join c in Funs.DB.PreRun_WorkPackage on b.WorkPackId equals c.WorkPackId where a.ProjectId == this.CurrUser.LoginProjectId - select new { a.PreRunId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName }; + select new { a.PreRunId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode }; if (list.Count() > 0) { var subSystemIds = list.Select(x => x.PreRunId).ToList(); var workPackIds = list.Select(x => x.WorkPackId).ToList(); - var selectlist = new List(); - var sysPipingData = from proper in Funs.DB.PreRun_PropertySysPiping - join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId - join inspectterm in Funs.DB.PreRun_SubInspectTerm on selectproper.PropertyId equals inspectterm.PropertyTechnologyId - where subSystemIds.Contains(selectproper.SubSystemId) - select new SelectPropertyTechnology() - { - Id = proper.PropertyId, - Code = $"管道:({proper.PipingCode})", - WorkPackId = inspectterm.WorkPackId, - SubSystemId = selectproper.SubSystemId - }; - if (sysPipingData.Count() > 0) + var selectlist = YscInspectItems(workPackIds, subSystemIds); + var systemIds = list.Select(x => x.SystemId).ToList(); + var syslist = Funs.DB.PreRun_SysDevice.Where(x => systemIds.Contains(x.PreRunId)); + foreach (var itemSys in syslist) { - selectlist.AddRange(sysPipingData); - } - var technologylist = from technology in Funs.DB.PreRun_TechnologySysPiping - join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId - join inspectterm in Funs.DB.PreRun_SubInspectTerm on selecttechnology.TechnologyId equals inspectterm.PropertyTechnologyId - where subSystemIds.Contains(selecttechnology.SubSystemId) - select new SelectPropertyTechnology() - { - Id = technology.TechnologyId, - Code = $"设备:({technology.TagNumber})", - WorkPackId = inspectterm.WorkPackId, - SubSystemId = selecttechnology.SubSystemId - }; - if (technologylist.Count() > 0) - { - selectlist.AddRange(technologylist); - } - - var subList = list.GroupBy(x => new { x.PreRunId, x.PreRunCode, x.PreRunName }); - foreach (var item in subList) - { - TreeNode rootUnitNode = new TreeNode();//定义根节点 - rootUnitNode.NodeID = item.Key.PreRunId; - rootUnitNode.Text = item.Key.PreRunName; - rootUnitNode.ToolTip = item.Key.PreRunName; - rootUnitNode.CommandName = ""; - rootUnitNode.EnableClickEvent = false; - rootUnitNode.EnableExpandEvent = false; - rootNode.Nodes.Add(rootUnitNode); - rootUnitNode.Expanded = true; - var worklist = list.Where(a => a.PreRunId == item.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName }).ToList(); - if (worklist.Count > 0) + TreeNode rootFirstNode = new TreeNode();//定义根节点 + rootFirstNode.NodeID = itemSys.PreRunId; + rootFirstNode.Text = itemSys.PreRunName; + rootFirstNode.ToolTip = itemSys.PreRunName; + rootFirstNode.CommandName = ""; + rootFirstNode.EnableClickEvent = false; + rootFirstNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootFirstNode); + rootFirstNode.Expanded = true; + var subList = list.Where(g => g.SystemId == itemSys.PreRunId).GroupBy(x => new { x.PreRunId, x.SystemId, x.PreRunCode, x.PreRunName }); + foreach (var item in subList) { - foreach (var itemWork in worklist) + TreeNode rootUnitNode = new TreeNode();//定义根节点 + rootUnitNode.NodeID = item.Key.PreRunId; + rootUnitNode.Text = item.Key.PreRunName; + rootUnitNode.ToolTip = item.Key.PreRunName; + rootUnitNode.CommandName = ""; + rootUnitNode.EnableClickEvent = false; + rootUnitNode.EnableExpandEvent = false; + rootFirstNode.Nodes.Add(rootUnitNode); + rootUnitNode.Expanded = true; + var worklist = list.Where(a => a.PreRunId == item.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList(); + if (worklist.Count > 0) { - TreeNode newNode = new TreeNode(); - newNode.Text = itemWork.Key.WorkPackName; - newNode.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId; - newNode.ToolTip = itemWork.Key.WorkPackName; - newNode.CommandName = ""; - newNode.Expanded = true; - var workselects = selectlist.Where(x => x.SubSystemId == item.Key.PreRunId && x.WorkPackId == itemWork.Key.WorkPackId); - if (workselects.Count() > 0) - { - newNode.EnableClickEvent = false; - newNode.EnableExpandEvent = false; - rootUnitNode.Nodes.Add(newNode); - foreach (var itemSelect in workselects) - { - TreeNode newNodeSelect = new TreeNode(); - newNodeSelect.Text = itemSelect.Code; - newNodeSelect.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId + "|" + itemSelect.Id; - newNodeSelect.ToolTip = itemSelect.Code; - newNodeSelect.CommandName = ""; - newNodeSelect.EnableClickEvent = true; - newNodeSelect.EnableExpandEvent = true; - newNode.Nodes.Add(newNodeSelect); - newNodeSelect.Expanded = true; - } - } - else + foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode)) { + TreeNode newNode = new TreeNode(); + newNode.Text = itemWork.Key.WorkPackName; + newNode.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId; + newNode.ToolTip = itemWork.Key.WorkPackName; + newNode.CommandName = ""; + newNode.Expanded = true; newNode.EnableClickEvent = true; - newNode.EnableExpandEvent = true; - rootUnitNode.Nodes.Add(newNode); + var workselects = selectlist.Where(x => x.SubSystemId == item.Key.PreRunId && x.WorkPackId == itemWork.Key.WorkPackId); + if (workselects.Count() > 0) + { + newNode.EnableExpandEvent = false; + rootUnitNode.Nodes.Add(newNode); + foreach (var itemSelect in workselects) + { + TreeNode newNodeSelect = new TreeNode(); + newNodeSelect.Text = itemSelect.Code.Length > 10 ? $"{itemSelect.Code.Substring(0, 10)}......" : itemSelect.Code; + newNodeSelect.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId + "|" + itemSelect.Id; + newNodeSelect.ToolTip = itemSelect.Code; + newNodeSelect.CommandName = ""; + newNodeSelect.EnableClickEvent = true; + newNodeSelect.EnableExpandEvent = true; + newNode.Nodes.Add(newNodeSelect); + newNodeSelect.Expanded = true; + } + } + else + { + newNode.EnableClickEvent = true; + newNode.EnableExpandEvent = true; + rootUnitNode.Nodes.Add(newNode); + } } } } @@ -145,27 +122,38 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun /// public void PageInit() { - var userList = Funs.DB.Sys_User; - if (userList.Count() > 0) + //检查人绑定 + var userList = from user in Funs.DB.Sys_User + join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId + where projectrole.ProjectId == this.CurrUser.LoginProjectId + select user; + var userids = new List() { Const.sysglyId, Const.hfnbdId, Const.sedinId }; + var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId)); + var users = userList.ToList(); + if (addUserList.Count() > 0) + { + users.AddRange(addUserList); + } + if (users.Count() > 0) { ddlfbs.DataTextField = "UserName"; ddlfbs.DataValueField = "UserId"; - ddlfbs.DataSource = userList; + ddlfbs.DataSource = users; ddlfbs.DataBind(); ddlcbs.DataTextField = "UserName"; ddlcbs.DataValueField = "UserId"; - ddlcbs.DataSource = userList; + ddlcbs.DataSource = users; ddlcbs.DataBind(); ddljl.DataTextField = "UserName"; ddljl.DataValueField = "UserId"; - ddljl.DataSource = userList; + ddljl.DataSource = users; ddljl.DataBind(); ddlyz.DataTextField = "UserName"; ddlyz.DataValueField = "UserId"; - ddlyz.DataSource = userList; + ddlyz.DataSource = users; ddlyz.DataBind(); } } @@ -188,16 +176,31 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun public void BindGrid(bool typechange = true) { var result = new List(); - var sysPipingData = new List(); var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0]; var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; - var propertytechnologyid = string.Empty; + var subInspectId = string.Empty; if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2) { - propertytechnologyid = this.tvControlItem.SelectedNodeID.Split('|').Last(); + subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last(); } if (typechange) { + var propertyTechnologyIds = string.Empty; + var selectStr = string.Empty; + + var inspectItems = Funs.DB.PreRun_SubInspectTerm.Where(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId).ToList(); + if (!string.IsNullOrWhiteSpace(subInspectId)) + { + var selectItem = inspectItems.FirstOrDefault(x => x.SubInspectId == subInspectId); + if (selectItem != null) + { + selectStr = selectItem.PropertyTechnologyId; + } + inspectItems.RemoveAll(x => x.SubInspectId == subInspectId); + } + + if (inspectItems.Count > 0) propertyTechnologyIds = string.Join(",", inspectItems.ConvertAll(x => x.PropertyTechnologyId)); + var workPage = Funs.DB.PreRun_WorkPackage.FirstOrDefault(x => x.WorkPackId == workPackId); if (workPage != null) { @@ -222,54 +225,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun ddlWorkPackType.SelectedValue = "2"; } //加载数据 - if (ddlWorkPackType.SelectedValue == "1") - { - var sysData = from proper in Funs.DB.PreRun_PropertySysPiping - join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId - where selectproper.SubSystemId == subSystemId - select new SelectPropertyTechnology() - { - Id = proper.PropertyId, - Code = $"管道:({proper.PipingCode})" - }; - if (sysData.Count() > 0) - { - sysPipingData = sysData.ToList(); - cbSysPiping.DataTextField = "Code"; - cbSysPiping.DataValueField = "Id"; - cbSysPiping.DataSource = sysPipingData; - cbSysPiping.DataBind(); - } - else - { - cbSysPiping.Items.Clear(); - cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", "")); - } - } - else - { - var sysData = from technology in Funs.DB.PreRun_TechnologySysPiping - join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId - where selecttechnology.SubSystemId == subSystemId - select new SelectPropertyTechnology() - { - Id = technology.TechnologyId, - Code = $"设备:({technology.TagNumber})" - }; - if (sysData.Count() > 0) - { - sysPipingData = sysData.ToList(); - cbSysPiping.DataTextField = "Code"; - cbSysPiping.DataValueField = "Id"; - cbSysPiping.DataSource = sysPipingData; - cbSysPiping.DataBind(); - } - else - { - cbSysPiping.Items.Clear(); - cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", "")); - } - } + PipingBrid(ddlWorkPackType.SelectedValue, subSystemId, propertyTechnologyIds, selectStr); } } @@ -277,7 +233,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId); //获取主表数据 var workPackType = int.Parse(ddlWorkPackType.SelectedValue); - var subModel = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId && x.WorkPackType == workPackType && x.PropertyTechnologyId == propertytechnologyid); + var subModel = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId); if (subModel != null) { if (subModel.WorkPackType != null) @@ -285,12 +241,6 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun ddlWorkPackType.SelectedValue = subModel.WorkPackType.ToString(); ddlWorkPackType.Enabled = false; } - var ddlsysModel = sysPipingData.FirstOrDefault(x => x.Id == subModel.PropertyTechnologyId); - if (ddlsysModel != null) - { - ddbSysPiping.Value = ddlsysModel.Id; - ddbSysPiping.Text = ddlsysModel.Code; - } ddlfbs.SelectedValue = subModel.Subcontractor; ddlcbs.SelectedValue = subModel.Contractor; ddljl.SelectedValue = subModel.Supervision; @@ -303,7 +253,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun ddljl.SelectedValue = string.Empty; ddlyz.SelectedValue = string.Empty; } - var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId && x.WorkPackType == workPackType && x.PropertyTechnologyId == propertytechnologyid).OrderBy(x => x.Sort).ToList(); + var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.SubInspectId == subInspectId).OrderBy(x => x.Sort).ToList(); if (list.Count > 0) { foreach (var item in list) @@ -360,7 +310,6 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun var checkids = result.Where(x => x.isChick).Select(a => a.SubItemId); Grid1.SelectedRowIDArray = checkids.ToArray(); } - //检查人绑定 var userList = from user in Funs.DB.Sys_User join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId where projectrole.ProjectId == this.CurrUser.LoginProjectId select user; @@ -457,88 +406,97 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0]; var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; + var subInspectId = string.Empty; + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2) + { + subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last(); + } var workPackType = int.Parse(ddlWorkPackType.SelectedValue); List subTrems = new List(); List subTremItems = new List(); - foreach (var item in ddbSysPiping.Values) + //foreach (var item in ddbSysPiping.Values) + //{ + var subTrem = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId); + JArray mergedData = Grid1.GetMergedData(); + foreach (JObject mergedRow in mergedData) { - var subTrem = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubSystemId == subSystemId && x.WorkPackId == workPackId && x.WorkPackType == workPackType && x.PropertyTechnologyId == item); - JArray mergedData = Grid1.GetMergedData(); - foreach (JObject mergedRow in mergedData) + string status = mergedRow.Value("status"); + JObject values = mergedRow.Value("values"); + int i = mergedRow.Value("index"); + var subItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); + var workInspectId = this.Grid1.Rows[i].DataKeys[1].ToString(); + if (!Grid1.SelectedRowIndexArray.Contains(i)) continue; + + //获取子系统信息 + var list = new List(); + var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId); + if (subSysModel != null) { - string status = mergedRow.Value("status"); - JObject values = mergedRow.Value("values"); - int i = mergedRow.Value("index"); - var subItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); - var workInspectId = this.Grid1.Rows[i].DataKeys[1].ToString(); - if (!Grid1.SelectedRowIndexArray.Contains(i)) continue; - - //获取子系统信息 - var list = new List(); - var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId); - if (subSysModel != null) + //获取子系统工作包检查表,如果不存在则添加 + if (subTrem == null) { - //获取子系统工作包检查表,如果不存在则添加 - if (subTrem == null) - { - subTrem = new PreRun_SubInspectTerm(); - subTrem.SubInspectId = Guid.NewGuid().ToString(); - subTrem.WorkPackId = workPackId; - subTrem.ProjectId = this.CurrUser.LoginProjectId; - subTrem.InstallationId = subSysModel.InstallationId; - subTrem.ProcessesId = subSysModel.ProcessesId; - subTrem.SystemId = subSysModel.SystemId; - subTrem.SubSystemId = subSysModel.PreRunId; - subTrem.Subcontractor = ddlfbs.SelectedValue; - subTrem.Contractor = ddlcbs.SelectedValue; - subTrem.Supervision = ddljl.SelectedValue; - subTrem.Owner = ddlyz.SelectedValue; - subTrem.PropertyTechnologyId = item; - subTrem.WorkPackType = int.Parse(ddlWorkPackType.SelectedValue); - subTrem.AddUser = this.CurrUser.UserId; - subTrem.AddTime = DateTime.Now; - subTrems.Add(subTrem); - //Funs.DB.PreRun_SubInspectTerm.InsertOnSubmit(subTrem); - } - - var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.SubItemId == subItemId && x.PropertyTechnologyId == item); - if (model == null) - { - model = new PreRun_SubInspectTermItem(); - model.TermItemId = Guid.NewGuid().ToString(); - model.SubItemId = subItemId; - model.SubInspectId = subTrem.SubInspectId; - model.WorkPackId = workPackId; - model.ProjectId = this.CurrUser.LoginProjectId; - model.WorkInspectId = workInspectId; - model.WorkInspectName = values.Value("WorkInspectName"); - model.InstallationId = subSysModel.InstallationId; - model.ProcessesId = subSysModel.ProcessesId; - model.SystemId = subSysModel.SystemId; - model.SubSystemId = subSysModel.PreRunId; - model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value("InspectedUser")) ? values.Value("InspectedUser") : string.Empty; - model.Subcontractor = ddlfbs.SelectedValue; - model.Contractor = ddlcbs.SelectedValue; - model.Supervision = ddljl.SelectedValue; - model.Owner = ddlyz.SelectedValue; - model.PropertyTechnologyId = item; - model.WorkPackType = int.Parse(ddlWorkPackType.SelectedValue); - model.AddUser = this.CurrUser.UserId; - model.AddTime = DateTime.Now; - model.Sort = i + 1; - subTremItems.Add(model); - //Funs.DB.PreRun_SubInspectTermItem.InsertOnSubmit(model); - } - else - { - model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value("InspectedUser")) ? values.Value("InspectedUser") : string.Empty; - model.WorkInspectName = values.Value("WorkInspectName"); - Funs.DB.SubmitChanges(); - } + subTrem = new PreRun_SubInspectTerm(); + subTrem.SubInspectId = Guid.NewGuid().ToString(); + subTrem.WorkPackId = workPackId; + subTrem.ProjectId = this.CurrUser.LoginProjectId; + subTrem.InstallationId = subSysModel.InstallationId; + subTrem.ProcessesId = subSysModel.ProcessesId; + subTrem.SystemId = subSysModel.SystemId; + subTrem.SubSystemId = subSysModel.PreRunId; + subTrem.Subcontractor = ddlfbs.SelectedValue; + subTrem.Contractor = ddlcbs.SelectedValue; + subTrem.Supervision = ddljl.SelectedValue; + subTrem.Owner = ddlyz.SelectedValue; + subTrem.PropertyTechnologyId = string.Join(",", ddbSysPiping.Values); + subTrem.WorkPackType = int.Parse(ddlWorkPackType.SelectedValue); + subTrem.AddUser = this.CurrUser.UserId; + subTrem.AddTime = DateTime.Now; + subTrems.Add(subTrem); + } + else + { + subTrem.Subcontractor = ddlfbs.SelectedValue; + subTrem.Contractor = ddlcbs.SelectedValue; + subTrem.Supervision = ddljl.SelectedValue; + subTrem.Owner = ddlyz.SelectedValue; + Funs.DB.SubmitChanges(); + } + + var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.SubInspectId == subInspectId); + if (model == null) + { + model = new PreRun_SubInspectTermItem(); + model.TermItemId = Guid.NewGuid().ToString(); + model.SubItemId = subItemId; + model.SubInspectId = subTrem.SubInspectId; + model.WorkPackId = workPackId; + model.ProjectId = this.CurrUser.LoginProjectId; + model.WorkInspectId = workInspectId; + model.WorkInspectName = values.Value("WorkInspectName"); + model.InstallationId = subSysModel.InstallationId; + model.ProcessesId = subSysModel.ProcessesId; + model.SystemId = subSysModel.SystemId; + model.SubSystemId = subSysModel.PreRunId; + model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value("InspectedUser")) ? values.Value("InspectedUser") : string.Empty; + model.Subcontractor = ddlfbs.SelectedValue; + model.Contractor = ddlcbs.SelectedValue; + model.Supervision = ddljl.SelectedValue; + model.Owner = ddlyz.SelectedValue; + model.PropertyTechnologyId = string.Join(",", ddbSysPiping.Values); + model.WorkPackType = int.Parse(ddlWorkPackType.SelectedValue); + model.AddUser = this.CurrUser.UserId; + model.AddTime = DateTime.Now; + model.Sort = i + 1; + subTremItems.Add(model); + } + else + { + model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value("InspectedUser")) ? values.Value("InspectedUser") : string.Empty; + model.WorkInspectName = values.Value("WorkInspectName"); + Funs.DB.SubmitChanges(); } - //Funs.DB.SubmitChanges(); } } @@ -666,24 +624,137 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun /// protected void ddlWorkPackType_SelectedIndexChanged(object sender, EventArgs e) { + var selectStr = string.Empty; + var propertyTechnologyIds = string.Empty; var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0]; var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; - if (ddlWorkPackType.SelectedValue == "1") + var subInspectId = string.Empty; + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2) { - var sysPipingData = from proper in Funs.DB.PreRun_PropertySysPiping - join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId - where selectproper.SubSystemId == subSystemId - select new - { - Id = proper.PropertyId, - Code = $"管道:({proper.PipingCode})" - }; - if (sysPipingData.Count() > 0) + subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last(); + } + var inspectItems = Funs.DB.PreRun_SubInspectTerm.Where(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId).ToList(); + if (!string.IsNullOrWhiteSpace(subInspectId)) + { + var selectItem = inspectItems.FirstOrDefault(x => x.SubInspectId == subInspectId); + if (selectItem != null) + { + selectStr = selectItem.PropertyTechnologyId; + } + inspectItems.RemoveAll(x => x.SubInspectId == subInspectId); + } + if (inspectItems.Count > 0) propertyTechnologyIds = string.Join(",", inspectItems.ConvertAll(x => x.PropertyTechnologyId)); + PipingBrid(ddlWorkPackType.SelectedValue, subSystemId, propertyTechnologyIds, selectStr); + } + + /// + /// 设备选择 + /// + protected void ddlSysPiping_SelectedIndexChanged(object sender, EventArgs e) + { + BindGrid(false); + } + + /// + /// 已生成检查表的管道/设备 + /// + private List YscInspectItems(List workPackIds, List subSystemIds) + { + List yczData = new List(); + var yscInspectItems = Funs.DB.PreRun_SubInspectTerm.Where(x => workPackIds.Contains(x.WorkPackId) && subSystemIds.Contains(x.SubSystemId)).ToList(); + if (yscInspectItems.Count > 0) + { + var selectPtids = string.Join(",", yscInspectItems.ConvertAll(x => x.PropertyTechnologyId)).Split(',').ToList(); + var listPros = Funs.DB.PreRun_PropertySysPiping.Where(x => selectPtids.Contains(x.PropertyId)).ToList(); + var listTechno = Funs.DB.PreRun_TechnologySysPiping.Where(x => selectPtids.Contains(x.TechnologyId)).ToList(); + + foreach (var itemYsc in yscInspectItems) + { + var codeStr = string.Empty; + var ids = itemYsc.PropertyTechnologyId.Split(','); + var itemPros = listPros.Where(x => ids.Contains(x.PropertyId)).ToList(); + if (itemPros.Count > 0) + { + codeStr = $"管道:{string.Join(",", itemPros.ConvertAll(x => x.PipingCode))}"; + yczData.Add(new SelectPropertyTechnology() + { + Id = itemYsc.SubInspectId, + Code = codeStr, + WorkPackId = itemYsc.WorkPackId, + SubSystemId = itemYsc.SubSystemId + }); + } + var itemTechno = listTechno.Where(x => ids.Contains(x.TechnologyId)).ToList(); + if (itemTechno.Count > 0) + { + codeStr = $"设备:{string.Join(",", itemTechno.ConvertAll(x => x.TagNumber))}"; + yczData.Add(new SelectPropertyTechnology() + { + Id = itemYsc.SubInspectId, + Code = codeStr, + WorkPackId = itemYsc.WorkPackId, + SubSystemId = itemYsc.SubSystemId + }); + } + } + } + return yczData; + } + + /// + /// 管道或设备绑定 + /// + public void PipingBrid(string WorkPackType, string subSystemId, string propertyTechnologyIds, string selectStr) + { + var sysPipingData = new List(); + if (WorkPackType == "1") + { + if (string.IsNullOrWhiteSpace(propertyTechnologyIds)) + { + var sysData = from proper in Funs.DB.PreRun_PropertySysPiping + join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId + where selectproper.SubSystemId == subSystemId + select new SelectPropertyTechnology() + { + Id = proper.PropertyId, + Code = $"管道:({proper.PipingCode})" + }; + sysPipingData = sysData.ToList(); + } + else + { + var ids = propertyTechnologyIds.Split(','); + var sysData = from proper in Funs.DB.PreRun_PropertySysPiping + join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId + where selectproper.SubSystemId == subSystemId && !ids.Contains(proper.PropertyId) + select new SelectPropertyTechnology() + { + Id = proper.PropertyId, + Code = $"管道:({proper.PipingCode})" + }; + sysPipingData = sysData.ToList(); + } + + if (sysPipingData.Count > 0) { cbSysPiping.DataTextField = "Code"; cbSysPiping.DataValueField = "Id"; cbSysPiping.DataSource = sysPipingData; cbSysPiping.DataBind(); + List values = new List(); + List texts = new List(); + if (!string.IsNullOrWhiteSpace(selectStr)) + { + var selectIds = selectStr.Split(',').ToList(); + var selectData = sysPipingData.Where(x => selectIds.Contains(x.Id)).ToList(); + if (selectData.Count() > 0) + { + values = selectData.ConvertAll(x => x.Id); + texts = selectData.ConvertAll(x => x.Code); + } + } + ddbSysPiping.Values = values.ToArray(); + ddbSysPiping.Texts = texts.ToArray(); } else { @@ -693,20 +764,51 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun } else { - var sysPipingData = from technology in Funs.DB.PreRun_TechnologySysPiping - join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId - where selecttechnology.SubSystemId == subSystemId - select new - { - Id = technology.TechnologyId, - Code = $"设备:({technology.TagNumber})" - }; + if (string.IsNullOrWhiteSpace(propertyTechnologyIds)) + { + var sysData = from technology in Funs.DB.PreRun_TechnologySysPiping + join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId + where selecttechnology.SubSystemId == subSystemId + select new SelectPropertyTechnology() + { + Id = technology.TechnologyId, + Code = $"设备:({technology.TagNumber})" + }; + sysPipingData = sysData.ToList(); + } + else + { + var ids = propertyTechnologyIds.Split(','); + var sysData = from technology in Funs.DB.PreRun_TechnologySysPiping + join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId + where selecttechnology.SubSystemId == subSystemId && !ids.Contains(technology.TechnologyId) + select new SelectPropertyTechnology() + { + Id = technology.TechnologyId, + Code = $"设备:({technology.TagNumber})" + }; + sysPipingData = sysData.ToList(); + } if (sysPipingData.Count() > 0) { cbSysPiping.DataTextField = "Code"; cbSysPiping.DataValueField = "Id"; cbSysPiping.DataSource = sysPipingData; cbSysPiping.DataBind(); + List values = new List(); + List texts = new List(); + if (!string.IsNullOrWhiteSpace(selectStr)) + { + var selectIds = selectStr.Split(',').ToList(); + var selectData = sysPipingData.Where(x => selectIds.Contains(x.Id)).ToList(); + if (selectData.Count() > 0) + { + values = selectData.ConvertAll(x => x.Id); + texts = selectData.ConvertAll(x => x.Code); + } + } + ddbSysPiping.Values = values.ToArray(); + ddbSysPiping.Texts = texts.ToArray(); } else { @@ -714,15 +816,6 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", "")); } } - - } - - /// - /// 设备选择 - /// - protected void ddlSysPiping_SelectedIndexChanged(object sender, EventArgs e) - { - BindGrid(false); } /// diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubSysWorkPackage.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubSysWorkPackage.aspx index 9b17f5dd..fcaec8ba 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubSysWorkPackage.aspx +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubSysWorkPackage.aspx @@ -19,16 +19,7 @@ - <%-- - - - - - - - --%> + ShowHeader="false" AutoScroll="true" BodyPadding="5px" IconFont="ArrowCircleLeft"> - + @@ -53,10 +53,15 @@ + +