diff --git a/DataBase/版本日志/SGGLDB_WH_2024-01-05.sql b/DataBase/版本日志/SGGLDB_WH_2024-01-05.sql new file mode 100644 index 00000000..fcf7ce57 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_2024-01-05.sql @@ -0,0 +1,62 @@ +--==ϵͳ +if object_id(N'TestRun_SubInspectTerm',N'U') is not null +drop table dbo.TestRun_SubInspectTerm +CREATE TABLE dbo.TestRun_SubInspectTerm( + SubInspectId varchar(50) NOT NULL,-- + ProjectId varchar(50) NULL,--Ŀ + InstallationId varchar(50) NULL,--װ(ֶΣڹ) + ProcessesId varchar(50) NULL,--(ֶΣڹ) + SystemId varchar(50) NULL,--ϵͳ(ֶΣڹ) + WorkPackId varchar(50) NULL,-- + InspectResult varchar(500) NULL,-- + Subcontractor varchar(50) null,--ְ + Contractor varchar(50) null,--а + Supervision varchar(50) null,-- + Owner varchar(50) null,--ҵ + InspectionIsAllPass int NULL,--0/null:δͨ 1:ͨ + SubcontractorIsAllPass int NULL,--ְǷͨ0/null:δͨ 1:ͨ + ContractorIsAllPass int NULL,--аǷͨ0/null:δͨ 1:ͨ + SupervisionIsAllPass int NULL,--Ƿͨ0/null:δͨ 1:ͨ + OwnerIsAllPass int NULL,--ҵǷͨ0/null:δͨ 1:ͨ + SubcontractorAllPassData datetime null,--ְͨ + ContractorAllPassData datetime null,--аͨ + SupervisionAllPassData datetime null,--ͨ + OwnerAllPassData datetime null,--ҵͨ + WanderIsComplete int null,--תǷȫͨ0:δͨ1:ͨ + WanderCompleteData datetime null,--ת + IsSiteImplement int null,--ֳʵʩǷ0:δ1: + SiteImplementUser varchar(50) null,--ֳʵʩȷ + SiteImplementConfirmData datetime null,--ֳʵʩ¼ȷʱ + RecordUploadData datetime null,--ֳʵʩ¼ϴ + InspectIsClose int null,--Ƿر0:δر1:ѹر + InspectIsCloseUser varchar(50) null,--񵥹ر + InspectCloseData datetime null,--񵥹ر + IsUnifyWanderAbout int null,--Ƿͳһת0:1: + UnifyWanderAboutData datetime null,--ͳһתʱ + UnifyWanderAboutOpinion varchar(max) null,--ͳһתע + InspectTime datetime NULL,--ʱ + AddUser varchar(50) NULL,-- + AddTime datetime NULL,-- + CONSTRAINT PK_TestRun_SubInspectTerm PRIMARY KEY CLUSTERED +( + SubInspectId ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO + +update Sys_Menu set SortIndex=20 where MenuId='29F80818-17A5-4BC0-8C38-A17415B0AC83' +delete Sys_Menu where MenuId in ('4041089F-5CC2-4070-9556-7DAB83CF6292','2232ED9A-EA3C-4CB5-A53C-D96D3F5E0527','9489BD6A-1A95-43BC-85C0-A65751C2C85E','26F8468D-4358-4E2A-895D-8720A6F1FA89','7081E94C-6A73-40A7-A72A-A13CDB7B5420','6ED76128-1E03-4B65-B474-BF84C536D027','2A441F42-57EF-4480-911A-1E17815C1B6B') +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('4041089F-5CC2-4070-9556-7DAB83CF6292','β',null,'TestRun/TestRunManage/InspectTailTermList.aspx',7,'0217CE50-3ABB-44F8-A38A-C9792C436639','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('2232ED9A-EA3C-4CB5-A53C-D96D3F5E0527','β',null,'TestRun/TestRunManage/TailTermHandleList.aspx',8,'0217CE50-3ABB-44F8-A38A-C9792C436639','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('9489BD6A-1A95-43BC-85C0-A65751C2C85E','β',null,'TestRun/TestRunManage/TailTermApproveList.aspx',9,'0217CE50-3ABB-44F8-A38A-C9792C436639','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('26F8468D-4358-4E2A-895D-8720A6F1FA89','ǩ',null,'TestRun/TestRunManage/InspectWanderAboutList.aspx',10,'0217CE50-3ABB-44F8-A38A-C9792C436639','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('7081E94C-6A73-40A7-A72A-A13CDB7B5420','תȫͨ',null,'TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx',11,'0217CE50-3ABB-44F8-A38A-C9792C436639','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('6ED76128-1E03-4B65-B474-BF84C536D027','ֳʵʩ',null,'TestRun/TestRunManage/SiteImplementationList.aspx',12,'0217CE50-3ABB-44F8-A38A-C9792C436639','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('2A441F42-57EF-4480-911A-1E17815C1B6B','Գ¼ϴ',null,'TestRun/TestRunManage/TestRunRecordUploadList.aspx',13,'0217CE50-3ABB-44F8-A38A-C9792C436639','Menu_TestRun',0,1,1) +go + +truncate table TestRun_SubInspectTerm +truncate table TestRun_SubInspectTermItem +truncate table TestRun_TermItemInspectedUser +truncate table TestRun_InspectTailTerm +truncate table TestRun_InspectTermApproveRecords diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index 21917918..15deae93 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -1794,13 +1794,28 @@ + + + + + + + + + + + + + + + @@ -16047,6 +16062,20 @@ DeviceRunEdit.aspx + + InspectTailTermEdit.aspx + ASPXCodeBehind + + + InspectTailTermEdit.aspx + + + InspectTailTermList.aspx + ASPXCodeBehind + + + InspectTailTermList.aspx + InspectTemplate.aspx ASPXCodeBehind @@ -16061,6 +16090,41 @@ InspectTemplateEdit.aspx + + InspectWanderAboutAllPass.aspx + ASPXCodeBehind + + + InspectWanderAboutAllPass.aspx + + + InspectWanderAboutAllPassList.aspx + ASPXCodeBehind + + + InspectWanderAboutAllPassList.aspx + + + InspectWanderAboutConfirm.aspx + ASPXCodeBehind + + + InspectWanderAboutConfirm.aspx + + + InspectWanderAboutList.aspx + ASPXCodeBehind + + + InspectWanderAboutList.aspx + + + SelectTailTermList.aspx + ASPXCodeBehind + + + SelectTailTermList.aspx + SetWorkPackage.aspx ASPXCodeBehind @@ -16068,6 +16132,20 @@ SetWorkPackage.aspx + + SiteImplementation.aspx + ASPXCodeBehind + + + SiteImplementation.aspx + + + SiteImplementationList.aspx + ASPXCodeBehind + + + SiteImplementationList.aspx + SubInspectTerm.aspx ASPXCodeBehind @@ -16096,6 +16174,48 @@ SubWorkInspect.aspx + + TailTermApprove.aspx + ASPXCodeBehind + + + TailTermApprove.aspx + + + TailTermApproveList.aspx + ASPXCodeBehind + + + TailTermApproveList.aspx + + + TailTermHandle.aspx + ASPXCodeBehind + + + TailTermHandle.aspx + + + TailTermHandleList.aspx + ASPXCodeBehind + + + TailTermHandleList.aspx + + + TestRunRecordUpload.aspx + ASPXCodeBehind + + + TestRunRecordUpload.aspx + + + TestRunRecordUploadList.aspx + ASPXCodeBehind + + + TestRunRecordUploadList.aspx + Video.aspx ASPXCodeBehind diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionProposerHandleEdit.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionProposerHandleEdit.aspx index 25901988..8029794c 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionProposerHandleEdit.aspx +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionProposerHandleEdit.aspx @@ -49,8 +49,8 @@ - - + + diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.cs index d0cf3971..2016fa6c 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.cs @@ -49,15 +49,6 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun set { ViewState["QuestionEditImg"] = value; } } - ///// - ///// 整改图片是否可编辑 - ///// - //public int RectifyEditImg - //{ - // get { return (int)ViewState["RectifyEditImg"]; } - // set { ViewState["RectifyEditImg"] = value; } - //} - protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) @@ -454,6 +445,9 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun { Funs.DB.PreRun_InspectTailTerm.InsertOnSubmit(model); } + //判断尾项是否保存 + var itemModel = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == this.TermItemId); + if (itemModel != null) itemModel.InspectionResults = 0; Funs.DB.SubmitChanges(); ShowNotify("操作成功!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.cs index c7a83fa4..1bf2900c 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.cs @@ -18,8 +18,6 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun if (!IsPostBack) { InitTreeMenu(); - //绑定数据 - //BindGrid(); } } diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx index 14231b7c..7e715908 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx @@ -43,7 +43,7 @@ - + diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectProperty.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectProperty.aspx.cs index 69ea00b3..18c4b547 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectProperty.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectProperty.aspx.cs @@ -56,7 +56,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun /// private void BindGrid() { - string strSql = @"select * from PreRun_PropertySysPiping where ProjectId=@ProjectId and SystemId=@SystemId "; + string strSql = @"select * from PreRun_PropertySysPiping where ProjectId=@ProjectId and SystemId=@SystemId and PropertyId not in (select PropertyId from PreRun_SubPropertySelect where SystemId=@SystemId) "; List listStr = new List(); listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); listStr.Add(new SqlParameter("@SystemId", this.SystemId)); diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectTechnology.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectTechnology.aspx.cs index 420e8c8d..7444f161 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectTechnology.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectTechnology.aspx.cs @@ -57,7 +57,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun /// private void BindGrid() { - string strSql = @"select * from PreRun_TechnologySysPiping where ProjectId=@ProjectId and SystemId=@SystemId "; + string strSql = @"select * from PreRun_TechnologySysPiping where ProjectId=@ProjectId and SystemId=@SystemId and TechnologyId not in (select TechnologyId from PreRun_SubTechnologySelect where SystemId=@SystemId) "; List listStr = new List(); listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); listStr.Add(new SqlParameter("@SystemId", this.SystemId)); diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx.cs index 88d4ed68..eeee3696 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx.cs @@ -43,8 +43,8 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun 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 - orderby a.Sort, a.PreRunLevel ascending - select new { a.PreRunId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode }; + orderby a.Sort, a.PreRunLevel + select new { a.PreRunId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode, a.Sort }; if (list.Count() > 0) { @@ -64,8 +64,8 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun 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) + var subList = list.Where(g => g.SystemId == itemSys.PreRunId).GroupBy(x => new { x.PreRunId, x.SystemId, x.PreRunCode, x.PreRunName, x.Sort }); + foreach (var item in subList.OrderBy(o => o.Key.Sort)) { TreeNode rootUnitNode = new TreeNode();//定义根节点 rootUnitNode.NodeID = item.Key.PreRunId; @@ -827,7 +827,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun } else { - ddbSysPiping.Values = null; + ddbSysPiping.Values = null; ddbSysPiping.Texts = null; cbSysPiping.Items.Clear(); cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", "")); diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubSysWorkPackage.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubSysWorkPackage.aspx.cs index 16eab5cf..f38e75f9 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubSysWorkPackage.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubSysWorkPackage.aspx.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; +using System.Text.RegularExpressions; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; @@ -232,7 +233,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun if (!string.IsNullOrWhiteSpace(this.SsubSystemId)) { var result = new List(); - var data = from a in Funs.DB.PreRun_WorkPackage.Where(p => workPackIds.Contains(p.WorkPackId)) + var queryData = from a in Funs.DB.PreRun_WorkPackage.Where(p => workPackIds.Contains(p.WorkPackId)) join b in Funs.DB.PreRun_SubSysWorkPackage.Where(p => p.SubSystemId == this.SsubSystemId) on a.WorkPackId equals b.WorkPackId into bb from t in bb.DefaultIfEmpty() select new WorkData() @@ -244,10 +245,10 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun Sort = a.Sort, Remark = t.Remark }; - if (data.Count() > 0) + if (queryData.Count() > 0) { int num = 1; - int i = 1; + var data = queryData.ToList(); foreach (var item in data.OrderBy(p => p.Sort)) { var model = new WorkData(); @@ -256,14 +257,13 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun model.SystemId = item.SystemId; if (string.IsNullOrWhiteSpace(item.WorkPackCode)) { - var workpackages = Funs.DB.TestRun_SubSysWorkPackage.Where(p => p.SystemId == this.SystemId).ToList(); - if (workpackages.Count > 0) + var workpackages = data.Where(x => !string.IsNullOrWhiteSpace(x.WorkPackCode)).ToList(); + if (num == 1) { - num = workpackages.ConvertAll(x => int.Parse(x.WorkPackCode.Replace("WP", ""))).Max(m => m); + if (workpackages.Count > 0) num = workpackages.ConvertAll(x => int.Parse(x.WorkPackCode.Replace("WP", ""))).Max(m => m) + 1; } - num = num + i; model.WorkPackCode = $"WP{string.Format("{0:d3}", num)}"; - i++; + num++; } else { @@ -273,7 +273,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun model.Remark = item.Remark; result.Add(model); } - result = result.OrderBy(p => p.Sort).ToList(); + result = result.OrderBy(p => int.Parse(Regex.Replace(p.WorkPackCode, @"\D", ""))).ToList(); Grid1.DataSource = result; Grid1.DataBind(); } diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx index 19bca928..ea0d301e 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx @@ -41,7 +41,7 @@ - + diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx.cs index 3464080a..5003abb5 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx.cs @@ -265,6 +265,11 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); return; } + if (Grid1.SelectedRowIndexArray.Length > 1) + { + Alert.ShowInTop("只能选择一条记录!", MessageBoxIcon.Warning); + return; + } PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SubThreeChecksFourDecisionEdit.aspx?DecisionId={0}&IsView=true", Grid1.SelectedRowID, "查看 - "))); } @@ -286,17 +291,18 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); return; } - var model = Funs.DB.PreRun_SubThreeChecksFourDecision.FirstOrDefault(x => x.DecisionId == Grid1.SelectedRowID); - if (model != null) + var ids = Grid1.SelectedRowIDArray.ToList(); + var list = Funs.DB.PreRun_SubThreeChecksFourDecision.Where(x => ids.Contains(x.DecisionId)).ToList(); + if (list.Count > 0) { var states = new List() { 0, 2 }; - if (!states.Contains(model.ResponsibilityConfirm.Value)) + var nodeletes = list.Where(x => !states.Contains(x.ResponsibilityProposeSatate.GetValueOrDefault())).ToList(); + if (nodeletes.Count > 0) { - Alert.ShowInTop("责任人“待提交”和“确认退回”才可进行删除操作!", MessageBoxIcon.Warning); + Alert.ShowInTop($"编号({string.Join(",", nodeletes.ConvertAll(x => x.FourDecisionCode))})状态不允许删除,仅“待提交”和“确认退回”才可进行删除操作!", MessageBoxIcon.Warning); return; } - - Funs.DB.PreRun_SubThreeChecksFourDecision.DeleteOnSubmit(model); + Funs.DB.PreRun_SubThreeChecksFourDecision.DeleteAllOnSubmit(list); Funs.DB.SubmitChanges(); BindGrid(); Alert.ShowInTop("删除成功!", MessageBoxIcon.Success); @@ -329,21 +335,67 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); return; } - var model = Funs.DB.PreRun_SubThreeChecksFourDecision.FirstOrDefault(x => x.DecisionId == Grid1.SelectedRowID); - if (model != null) + var ids = Grid1.SelectedRowIDArray.ToList(); + var list = Funs.DB.PreRun_SubThreeChecksFourDecision.Where(x => ids.Contains(x.DecisionId)).ToList(); + if (list.Count > 0) { - int state = model.ResponsibilityProposeSatate == null ? 0 : model.ResponsibilityProposeSatate.Value; - int[] stateArr = { 0, 2 }; - if (stateArr.Contains(state)) + var states = new List() { 0, 2 }; + var nodeletes = list.Where(x => !states.Contains(x.ResponsibilityProposeSatate.GetValueOrDefault())).ToList(); + if (nodeletes.Count > 0) { - Alert.ShowInTop("仅“待提交”和“提出人处理退回”状态才可提交提出人处理!", MessageBoxIcon.Warning); + Alert.ShowInTop($"编号({string.Join(",", nodeletes.ConvertAll(x => x.FourDecisionCode))})状态不允许提交,仅“待提交”和“处理退回”状态才可提交提出人处理!", MessageBoxIcon.Warning); return; } - model.ResponsibilityProposeSatate = 1; - Funs.DB.SubmitChanges(); - BindGrid(); - Alert.ShowInTop("确认成功!", MessageBoxIcon.Success); + var isNullResponsibilityUnit = list.Where(x => string.IsNullOrWhiteSpace(x.ResponsibilityUnit)).ToList(); + if (isNullResponsibilityUnit.Count > 0) + { + Alert.ShowInTop($"编号({string.Join(",", isNullResponsibilityUnit.ConvertAll(x => x.FourDecisionCode))})责任单位为空!", MessageBoxIcon.Warning); + return; + } + var isNullResponsibilityUser = list.Where(x => string.IsNullOrWhiteSpace(x.ResponsibilityUser)).ToList(); + if (isNullResponsibilityUser.Count > 0) + { + Alert.ShowInTop($"编号({string.Join(",", isNullResponsibilityUser.ConvertAll(x => x.FourDecisionCode))})责任人为空!", MessageBoxIcon.Warning); + return; + } + var isNullProposeUser = list.Where(x => string.IsNullOrWhiteSpace(x.ProposeUser)).ToList(); + if (isNullProposeUser.Count > 0) + { + Alert.ShowInTop($"编号({string.Join(",", isNullProposeUser.ConvertAll(x => x.FourDecisionCode))})提出人为空!", MessageBoxIcon.Warning); + return; + } + var isNullGeneraUser = list.Where(x => string.IsNullOrWhiteSpace(x.GeneraUser)).ToList(); + if (isNullGeneraUser.Count > 0) + { + Alert.ShowInTop($"编号({string.Join(",", isNullGeneraUser.ConvertAll(x => x.FourDecisionCode))})总包为空!", MessageBoxIcon.Warning); + return; + } + var isNullSupervisionUser = list.Where(x => string.IsNullOrWhiteSpace(x.SupervisionUser)).ToList(); + if (isNullSupervisionUser.Count > 0) + { + Alert.ShowInTop($"编号({string.Join(",", isNullSupervisionUser.ConvertAll(x => x.FourDecisionCode))})监理为空!", MessageBoxIcon.Warning); + return; + } + var isNullOwnerUser = list.Where(x => string.IsNullOrWhiteSpace(x.OwnerUser)).ToList(); + if (isNullOwnerUser.Count > 0) + { + Alert.ShowInTop($"编号({string.Join(",", isNullOwnerUser.ConvertAll(x => x.FourDecisionCode))})业主为空!", MessageBoxIcon.Warning); + return; + } + var isNullAskDestructionTime = list.Where(x => x.AskDestructionTime == null).ToList(); + if (isNullAskDestructionTime.Count > 0) + { + Alert.ShowInTop($"编号({string.Join(",", isNullAskDestructionTime.ConvertAll(x => x.FourDecisionCode))})要求销项时间为空!", MessageBoxIcon.Warning); + return; + } + foreach (var item in list) + { + item.ResponsibilityProposeSatate = 1; + Funs.DB.SubmitChanges(); + } } + BindGrid(); + Alert.ShowInTop("提交成功!", MessageBoxIcon.Success); } /// @@ -356,17 +408,23 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); return; } - var model = Funs.DB.PreRun_SubThreeChecksFourDecision.FirstOrDefault(x => x.DecisionId == Grid1.SelectedRowID); - if (model != null) + var ids = Grid1.SelectedRowIDArray.ToList(); + var list = Funs.DB.PreRun_SubThreeChecksFourDecision.Where(x => ids.Contains(x.DecisionId)).ToList(); + if (list.Count > 0) { - if (model.ResponsibilityProposeSatate == 1) + var nodeletes = list.Where(x => x.ResponsibilityProposeSatate.GetValueOrDefault() != 1).ToList(); + if (nodeletes.Count > 0) { - Alert.ShowInTop("仅提出人待处理状态才可撤回!", MessageBoxIcon.Warning); + Alert.ShowInTop($"编号({string.Join(",", nodeletes.ConvertAll(x => x.FourDecisionCode))})状态不允许撤回,仅提出人待处理状态才可撤回!", MessageBoxIcon.Warning); return; } - model.ProposeConfirm = 0; - model.ProposeConfirmData = null; - Funs.DB.SubmitChanges(); + foreach (var item in list) + { + item.ResponsibilityProposeSatate = 0; + item.ProposeConfirm = 0; + item.ProposeConfirmData = null; + Funs.DB.SubmitChanges(); + } BindGrid(); Alert.ShowInTop("撤回成功!", MessageBoxIcon.Success); } @@ -477,7 +535,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun List users = userNames.Count > 0 ? Funs.DB.Sys_User.Where(x => userNames.Contains(x.UserName)).ToList() : new List(); var baseUserNames = users.ConvertAll(x => x.UserName); //获取责任单位 - List units = BLL.UnitService.GetUnitByProjectIdUnitTypeList(this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2); + List units = BLL.UnitService.GetUnitByProjectIdList(this.CurrUser.LoginProjectId); #region 验证人员和单位 //验证责任人 diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/TailTermHandle.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/TailTermHandle.aspx.cs index c5b42dca..be42727f 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/TailTermHandle.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/TailTermHandle.aspx.cs @@ -50,7 +50,6 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun } } - /// /// 绑定数据 /// diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx new file mode 100644 index 00000000..139bbdab --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx @@ -0,0 +1,181 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectTailTermEdit.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.InspectTailTermEdit" %> + + + + + + 质量巡检 + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx.cs new file mode 100644 index 00000000..246af9ec --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx.cs @@ -0,0 +1,420 @@ +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.TestRunManage +{ + public partial class InspectTailTermEdit : PageBase + { + /// + /// 检查表尾项主键 + /// + public string TailTermId + { + get { return (string)ViewState["TailTermId"]; } + set { ViewState["TailTermId"] = value; } + } + + /// + /// 检查项主键 + /// + public string TermItemId + { + get { return (string)ViewState["TermItemId"]; } + set { ViewState["TermItemId"] = value; } + } + + /// + /// 是否查看 + /// + public bool IsView + { + get { return (bool)ViewState["IsView"]; } + set { ViewState["IsView"] = value; } + } + + /// + /// 问题图片是否可编辑 + /// + public int QuestionEditImg + { + get { return (int)ViewState["QuestionEditImg"]; } + set { ViewState["QuestionEditImg"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.TailTermId = Request["TailTermId"]; + this.TermItemId = Request["TermItemId"]; + //是否查看 + this.IsView = string.IsNullOrWhiteSpace(Request["IsView"]) ? false : bool.Parse(Request["IsView"]); + //数据绑定 + PageInit(); + //处理和审批意见绑定 + gvRecordBrid(); + //判断是否查看 + if (IsView) + { + btnSave.Hidden = true; + btnSubmit.Hidden = true; + QuestionEditImg = -1; + txtTailTermCode.Enabled = false; + ddlConstructionUnit.Enabled = false; + ddlTermItemId.Enabled = false; + txtQuestionDesc.Enabled = false; + txtRectifyOpinion.Enabled = false; + ddlApproveUser.Enabled = false; + ddlHandleUser.Enabled = false; + } + } + } + + /// + /// 默认绑定 + /// + public void PageInit() + { + QuestionEditImg = 0; + //施工单位 + UnitService.InitUnitByProjectIdUnitTypeDropDownList(ddlConstructionUnit, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false); + //检查人绑定 + 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) + { + //处理人 + ddlHandleUser.DataTextField = "UserName"; + ddlHandleUser.DataValueField = "UserId"; + ddlHandleUser.DataSource = users; + ddlHandleUser.DataBind(); + ddlHandleUser.SelectedValue = this.CurrUser.UserId; + //审核人 + ddlApproveUser.DataTextField = "UserName"; + ddlApproveUser.DataValueField = "UserId"; + ddlApproveUser.DataSource = users; + ddlApproveUser.DataBind(); + ddlApproveUser.SelectedValue = this.CurrUser.UserId; + } + var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); + if (model != null) + { + //项目名称 + txtProjectName.Text = model.ProjectName; + //巡检编号 + txtTailTermCode.Text = model.TailTermCode; + //施工单位 + ddlConstructionUnit.SelectedValue = model.ConstructionUnit; + //提出人 + var inspectModel = users.FirstOrDefault(x => x.UserId == model.InspectUser); + if (inspectModel != null) + { + lblInspectUser.Text = inspectModel.UserName; + hidInspectUserId.Text = inspectModel.UserId; + } + //绑定检查项 + var data = from a in Funs.DB.TestRun_TermItemInspectedUser + join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId + where a.InspectionResults == 0 && a.InspectedUser == this.CurrUser.UserId + group new { b.WorkInspectName, b.TermItemId } by new { b.WorkInspectName, b.TermItemId } into gt + select new + { + gt.Key.WorkInspectName, + gt.Key.TermItemId + }; + var list = data.ToList(); + if (list.Count() > 0) + { + ddlTermItemId.DataTextField = "WorkInspectName"; + ddlTermItemId.DataValueField = "TermItemId"; + ddlTermItemId.DataSource = list; + ddlTermItemId.DataBind(); + } + //检查项 + ddlTermItemId.SelectedValue = model.TermItemId; + //问题描述 + txtQuestionDesc.Text = model.QuestionDesc; + //整改意见 + txtRectifyOpinion.Text = model.RectifyOpinion; + //提出时间 + lblRectifyTime.Text = model.RectifyTime != null ? model.RectifyTime.Value.ToString("yyyy-MM-dd") : string.Empty; + //处理人 + ddlHandleUser.SelectedValue = model.HandleUser; + //审核人 + ddlApproveUser.SelectedValue = model.ApproveUser; + //整改完成日期 + txtAdjustCompleteTime.Text = model.AdjustCompleteTime != null ? model.AdjustCompleteTime.Value.ToString("yyyy-MM-dd") : string.Empty; + if (model.ApproveState > 1) + { + QuestionEditImg = -1; + } + } + else + { + this.TailTermId = Guid.NewGuid().ToString(); + var projectModel = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == this.CurrUser.LoginProjectId); + if (projectModel != null) + { + txtProjectName.Text = projectModel.ProjectName; + string code = projectModel.ProjectCode + "-06-CM03-XJ-"; + txtTailTermCode.Text = SQLHelper.RunProcNewId("SpGetNewCode5", "dbo.TestRun_InspectTailTerm", "TailTermCode", code); + } + if (!string.IsNullOrWhiteSpace(this.TermItemId)) + { + var data = from a in Funs.DB.TestRun_TermItemInspectedUser + join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId + where a.InspectedUser == this.CurrUser.UserId && b.TermItemId == this.TermItemId + select new { a.InspectedUser, b.TermItemId }; + var itemTerm = data.FirstOrDefault(); + if (itemTerm != null) + { + //加载检查项 + var itemdata = from a in Funs.DB.TestRun_TermItemInspectedUser + join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId + where (a.InspectionResults == 0 || a.TermItemId == this.TermItemId) && a.InspectedUser == this.CurrUser.UserId + select new { a.TermItemId, b.WorkInspectName }; + var list = itemdata.ToList(); + ddlTermItemId.Items.Clear(); + if (list.Count() > 0) + { + ddlTermItemId.DataTextField = "WorkInspectName"; + ddlTermItemId.DataValueField = "TermItemId"; + ddlTermItemId.DataSource = list; + ddlTermItemId.DataBind(); + } + else + { + ddlTermItemId.Items.Insert(0, new ListItem("==无数据==", "")); + } + + //检查项 + ddlTermItemId.SelectedValue = itemTerm.TermItemId; + //提出人 + var inspectModel = users.FirstOrDefault(x => x.UserId == itemTerm.InspectedUser); + if (inspectModel != null) + { + lblInspectUser.Text = inspectModel.UserName; + hidInspectUserId.Text = inspectModel.UserId; + } + //提出时间 + lblRectifyTime.Text = DateTime.Now.ToString("yyyy-MM-dd"); + } + } + } + } + + /// + /// 处理和审批意见绑定 + /// + public void gvRecordBrid() + { + string strSql = @"select a.InspectTermId,a.ApproveOpinion,a.ApproveTime,a.ApproveType,a.ApproveState,(case a.ApproveType when 0 then (case a.ApproveState when 0 then '处理退回' when 1 then '处理通过' else '' end) else (case a.ApproveState when 0 then '审批退回' when 1 then '审批通过' else '' end) end) as ApproveStateName,b.ConstructionUnit,d.UnitName as ConstructionUnitName,a.AddUser,a.AddTime from TestRun_InspectTermApproveRecords as a inner join TestRun_InspectTailTerm as b on a.TailTermId=b.TailTermId inner join TestRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Unit as d on d.UnitId=b.ConstructionUnit where 1=1 and a.ProjectId=@ProjectId and a.TailTermId=@TailTermId "; + List listStr = new List(); + listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@TailTermId", this.TailTermId)); + strSql += " order by a.AddTime asc"; + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + //处理意见 + var handleTb = tb.AsEnumerable().Where(row => row.Field("ApproveType") == 0); + gvHandle.DataSource = handleTb; + gvHandle.DataBind(); + //审批意见 + var approveTb = tb.AsEnumerable().Where(row => row.Field("ApproveType") == 1); + gvApprove.DataSource = approveTb; + gvApprove.DataBind(); + } + + #region 按钮 + + /// + /// 保存 + /// + protected void btnSave_Click(object sender, EventArgs e) + { + if (string.IsNullOrWhiteSpace(ddlConstructionUnit.SelectedValue)) + { + ShowNotify("请选择施工单位!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrWhiteSpace(ddlTermItemId.SelectedValue)) + { + ShowNotify("请选择检查项!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrWhiteSpace(ddlHandleUser.SelectedValue)) + { + ShowNotify("请选择处理人!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrWhiteSpace(ddlApproveUser.SelectedValue)) + { + ShowNotify("请选择审核人!", MessageBoxIcon.Warning); + return; + } + var isAdd = false; + var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); + if (model == null) + { + isAdd = true; + model = new TestRun_InspectTailTerm(); + model.TailTermId = this.TailTermId; + model.ProjectId = this.CurrUser.LoginProjectId; + } + model.ProjectName = txtProjectName.Text; + model.TailTermCode = txtTailTermCode.Text; + model.ConstructionUnit = ddlConstructionUnit.SelectedValue; + model.TermItemId = ddlTermItemId.SelectedValue; + model.QuestionDesc = txtQuestionDesc.Text.Trim(); + model.RectifyOpinion = txtRectifyOpinion.Text.Trim(); + model.RectifyTime = DateTime.Parse(lblRectifyTime.Text); + model.InspectUser = hidInspectUserId.Text; + model.HandleUser = ddlHandleUser.SelectedValue; + model.ApproveUser = ddlApproveUser.SelectedValue; + model.AdjustCompleteTime = DateTime.Parse(txtAdjustCompleteTime.Text); + model.ApproveState = 0; + model.AddUser = this.CurrUser.LoginProjectId; + model.AddTime = DateTime.Now; + var workPack = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == model.TermItemId); + if (workPack != null) + { + model.WorkPackId = workPack.WorkPackId; + } + if (isAdd) + { + Funs.DB.TestRun_InspectTailTerm.InsertOnSubmit(model); + } + //判断尾项是否保存 + var itemModel = Funs.DB.TestRun_TermItemInspectedUser.FirstOrDefault(x => x.TermItemId == this.TermItemId && x.InspectedUser == this.CurrUser.UserId); + if (itemModel != null) itemModel.InspectionResults = 0; + Funs.DB.SubmitChanges(); + ShowNotify("操作成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + + /// + /// 保存并提交 + /// + protected void btnSubmit_Click(object sender, EventArgs e) + { + if (string.IsNullOrWhiteSpace(ddlConstructionUnit.SelectedValue)) + { + ShowNotify("请选择施工单位!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrWhiteSpace(ddlTermItemId.SelectedValue)) + { + ShowNotify("请选择检查项!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrWhiteSpace(ddlHandleUser.SelectedValue)) + { + ShowNotify("请选择处理人!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrWhiteSpace(ddlApproveUser.SelectedValue)) + { + ShowNotify("请选择审核人!", MessageBoxIcon.Warning); + return; + } + var isAdd = false; + var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); + if (model == null) + { + isAdd = true; + model = new TestRun_InspectTailTerm(); + model.TailTermId = this.TailTermId; + model.ProjectId = this.CurrUser.LoginProjectId; + } + model.ProjectName = txtProjectName.Text; + model.TailTermCode = txtTailTermCode.Text; + model.ConstructionUnit = ddlConstructionUnit.SelectedValue; + model.TermItemId = ddlTermItemId.SelectedValue; + model.QuestionDesc = txtQuestionDesc.Text.Trim(); + model.RectifyOpinion = txtRectifyOpinion.Text.Trim(); + model.RectifyTime = DateTime.Parse(lblRectifyTime.Text); + model.InspectUser = hidInspectUserId.Text; + model.HandleUser = ddlHandleUser.SelectedValue; + model.ApproveUser = ddlApproveUser.SelectedValue; + model.AdjustCompleteTime = DateTime.Parse(txtAdjustCompleteTime.Text); + model.ApproveState = 1; + model.AddUser = this.CurrUser.LoginProjectId; + model.AddTime = DateTime.Now; + var workPack = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == model.TermItemId); + if (workPack != null) + { + model.WorkPackId = workPack.WorkPackId; + } + if (isAdd) + { + Funs.DB.TestRun_InspectTailTerm.InsertOnSubmit(model); + } + //判断尾项是否保存 + var itemModel = Funs.DB.TestRun_TermItemInspectedUser.FirstOrDefault(x => x.TermItemId == this.TermItemId && x.InspectedUser == this.CurrUser.UserId); + if (itemModel != null) itemModel.InspectionResults = 0; + Funs.DB.SubmitChanges(); + ShowNotify("操作成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + + /// + /// 问题图片 + /// + protected void imgBtnQuestionFile_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", QuestionEditImg, this.TailTermId + "q", Const.InspectTailTerm))); + } + + #endregion + + #region 事件 + + /// + /// 检查项 + /// + protected void ddlTermItemId_SelectedIndexChanged(object sender, EventArgs e) + { + var itemUserTerm = Funs.DB.TestRun_TermItemInspectedUser.FirstOrDefault(x => x.TermItemId == ddlTermItemId.SelectedValue); + if (itemUserTerm != null) + { + //提出人 + var inspectModel = Funs.DB.Sys_User.FirstOrDefault(x => x.UserId == itemUserTerm.InspectedUser); + if (inspectModel != null) + { + lblInspectUser.Text = inspectModel.UserName; + hidInspectUserId.Text = inspectModel.UserId; + } + //提出时间 + lblRectifyTime.Text = DateTime.Now.ToString("yyyy-MM-dd"); + } + } + + /// + /// 关闭 + /// + protected void WindowAtt_Close(object sender, WindowCloseEventArgs e) + { + + } + + #endregion + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx.designer.cs new file mode 100644 index 00000000..bba51847 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx.designer.cs @@ -0,0 +1,269 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + + + public partial class InspectTailTermEdit + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// ContentPanel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel1; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form2; + + /// + /// txtProjectName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtProjectName; + + /// + /// txtTailTermCode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtTailTermCode; + + /// + /// ddlConstructionUnit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlConstructionUnit; + + /// + /// ddlTermItemId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlTermItemId; + + /// + /// txtQuestionDesc 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtQuestionDesc; + + /// + /// txtRectifyOpinion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtRectifyOpinion; + + /// + /// lblInspectUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblInspectUser; + + /// + /// lblRectifyTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblRectifyTime; + + /// + /// hidInspectUserId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hidInspectUserId; + + /// + /// ddlHandleUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlHandleUser; + + /// + /// ddlApproveUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlApproveUser; + + /// + /// txtAdjustCompleteTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtAdjustCompleteTime; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// imgBtnQuestionFile 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button imgBtnQuestionFile; + + /// + /// plApprove2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FormRow plApprove2; + + /// + /// gvHandle 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid gvHandle; + + /// + /// plApprove3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FormRow plApprove3; + + /// + /// gvApprove 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid gvApprove; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// btnSubmit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSubmit; + + /// + /// WindowAtt 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowAtt; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx new file mode 100644 index 00000000..340f01cc --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx @@ -0,0 +1,189 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectTailTermList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.InspectTailTermList" %> + + + + + + + + + 检查表尾项管理 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx.cs new file mode 100644 index 00000000..f6ef46f9 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx.cs @@ -0,0 +1,420 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + public partial class InspectTailTermList : 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 userSubInspects = from a in Funs.DB.TestRun_TermItemInspectedUser + join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId + join c in Funs.DB.TestRun_InspectTailTerm on a.TermItemId equals c.TermItemId + where c.InspectUser == this.CurrUser.UserId && a.ProjectId == this.CurrUser.LoginProjectId && a.InspectionResults == 0 + select new { a, b }; + if (userSubInspects.Count() == 0) return; + var systemIds = userSubInspects.Select(x => x.b.SystemId); + var workPackIds = userSubInspects.Select(x => x.b.WorkPackId); + var list = from a in Funs.DB.PreRun_SysDevice + join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId + join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId + where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId) + select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode }; + if (list.Count() > 0) + { + var ids = list.Select(x => x.ProcessesId).ToList(); + ids.AddRange(list.Select(x => x.PreRunId).ToList()); + ids = ids.Distinct().ToList(); + var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList(); + if (syslist.Count > 0) + { + var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList(); + foreach (var itemOne in oneIds) + { + var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne); + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = itemOneModel.PreRunId; + rootOneNode.Text = itemOneModel.PreRunName; + rootOneNode.ToolTip = itemOneModel.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = false; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName }); + foreach (var itemTwo in subTwoList) + { + TreeNode rootTwoNode = new TreeNode(); + rootTwoNode.NodeID = itemTwo.Key.PreRunId; + rootTwoNode.Text = itemTwo.Key.PreRunName; + rootTwoNode.ToolTip = itemTwo.Key.PreRunName; + rootTwoNode.CommandName = ""; + rootTwoNode.EnableClickEvent = false; + rootTwoNode.EnableExpandEvent = false; + rootOneNode.Nodes.Add(rootTwoNode); + rootTwoNode.Expanded = true; + var worklist = list.Where(a => a.PreRunId == itemTwo.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 + "|" + itemTwo.Key.PreRunId; + newNode.ToolTip = itemWork.Key.WorkPackName; + newNode.CommandName = ""; + newNode.Expanded = true; + newNode.EnableClickEvent = true; + newNode.EnableExpandEvent = true; + rootTwoNode.Nodes.Add(newNode); + } + } + } + } + } + } + + } + + /// + /// 点击TreeView + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + this.BindGrid(); + } + + #endregion + + #region 绑定数据 + + /// + /// 数据绑定 + /// + public void BindGrid() + { + string strSql = @"select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,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.HandleUser,g.UserName as HandleUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交处理' when 1 then '待处理' when 2 then '处理退回' when 3 then '审核退回' when 4 then '待审核' when 5 then '审核通过' else '' end) as ApproveStateName,a.AddTime,a.WorkPackId,c.SystemId,a.AdjustCompleteTime,DATEDIFF(DAY, GETDATE(),a.AdjustCompleteTime) as AdjustDiffDay from TestRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join TestRun_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 inner join Sys_User as g on g.UserId=a.HandleUser where 1=1 and a.ProjectId=@projectid and a.InspectUser=@InspectUser"; + + List listStr = new List(); + listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@InspectUser", this.CurrUser.UserId)); + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0) + { + var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First(); + strSql += " and a.WorkPackId=@WorkPackId"; + listStr.Add(new SqlParameter("@WorkPackId", workPackId)); + } + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1) + { + var systemId = this.tvControlItem.SelectedNodeID.Split('|').Last(); + strSql += " and c.SystemId=@SystemId"; + listStr.Add(new SqlParameter("@SystemId", systemId)); + } + //审核状态 + if (!string.IsNullOrWhiteSpace(ddlApproveState.SelectedValue)) + { + strSql += " and a.ApproveState=@ApproveState"; + listStr.Add(new SqlParameter("@ApproveState", ddlApproveState.SelectedValue)); + } + //开始时间 + if (!string.IsNullOrWhiteSpace(txtStartTime.Text)) + { + strSql += $" and a.RectifyTime>='{DateTime.Parse(txtStartTime.Text.Trim()).ToString("yyyy-MM-dd")} 00:00:00'"; + } + //结束时间 + if (!string.IsNullOrWhiteSpace(txtEndTime.Text)) + { + strSql += $" and a.RectifyTime<='{DateTime.Parse(txtStartTime.Text.Trim()).ToString("yyyy-MM-dd")} 23:59:59'"; + } + strSql += " order by a.AddTime asc"; + 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(); + } + + /// + /// 分页 + /// + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + Grid1.PageIndex = e.NewPageIndex; + BindGrid(); + } + + /// + /// 双击事件 + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + btnMenuModify_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(); + } + + /// + /// 行数据处理事件 + /// + protected void Grid1_RowDataBound(object sender, GridRowEventArgs e) + { + DataRowView row = e.DataItem as DataRowView; + + // 入学年份 + int diffDay = Convert.ToInt32(row["AdjustDiffDay"]); + TemplateField AdjustDiffDay = Grid1.FindColumn("AdjustDiffDay") as TemplateField; + int approveState = int.Parse(Grid1.DataKeys[e.RowIndex][1].ToString()); + if (approveState != 5) + { + if (diffDay > 0) + { + e.CellAttributes[AdjustDiffDay.ColumnIndex]["data-color"] = "color1"; + } + else if (diffDay == 0) + { + e.CellAttributes[AdjustDiffDay.ColumnIndex]["data-color"] = "color2"; + } + else if (diffDay < 0) + { + e.CellAttributes[AdjustDiffDay.ColumnIndex]["data-color"] = "color3"; + } + } + } + + #endregion + + #region 按钮 + + /// + /// 修改 + /// + protected void btnMenuModify_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + + var passLs = new List() { 0, 2 }; + var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); + if (model != null) + { + if (!passLs.Contains(model.ApproveState.Value)) + { + Alert.ShowInTop("只可编辑“待提交处理”和“处理退回”的记录!", MessageBoxIcon.Warning); + return; + } + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId={0}", Grid1.SelectedRowID, "编辑 - "))); + } + + /// + /// 编辑 + /// + protected void btnModify_Click(object sender, EventArgs e) + { + btnMenuModify_Click(null, null); + } + + /// + /// 新增 + /// + protected void btnNew_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId=", "新增 - "))); + } + + /// + /// 查看 + /// + protected void btnMenuView_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?IsView=true&TailTermId={0}", Grid1.SelectedRowID, "查看 - "))); + } + + /// + /// 删除 + /// + protected void btnMenuDel_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); + if (model != null) + { + if (model.ApproveState != 0) + { + Alert.ShowInTop("只可删除待提交的记录!", MessageBoxIcon.Warning); + return; + } + + Funs.DB.TestRun_InspectTailTerm.DeleteOnSubmit(model); + Funs.DB.SubmitChanges(); + BindGrid(); + Alert.ShowInTop("删除成功!", MessageBoxIcon.Success); + } + } + + /// + /// 查询 + /// + protected void btnQuery_Click(object sender, EventArgs e) + { + BindGrid(); + } + + /// + /// 弹框关闭 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + + /// + /// 提交处理 + /// + protected void btnSubmitReview_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + var passLs = new List() { 0, 2 }; + var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); + if (model != null) + { + //0:待提交处理1:待处理2:处理退回3:审核退回4:待审核5:审核通过 + if (!passLs.Contains(model.ApproveState.Value)) + { + Alert.ShowInTop("只可提交“待提交处理”和“处理退回”的记录!", MessageBoxIcon.Warning); + return; + } + model.ApproveState = 1; + Funs.DB.SubmitChanges(); + BindGrid(); + Alert.ShowInTop("提交成功!", MessageBoxIcon.Success); + } + } + + /// + /// 撤回提交 + /// + protected void btnwithdraw_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); + if (model != null) + { + //0:待提交处理1:待处理2:处理退回3:审核退回4:待审核5:审核通过 + if (model.ApproveState != 1) + { + Alert.ShowInTop("只可撤回“待处理”的记录!", MessageBoxIcon.Warning); + return; + } + model.ApproveState = 0; + Funs.DB.SubmitChanges(); + BindGrid(); + Alert.ShowInTop("撤回成功!", MessageBoxIcon.Success); + } + } + + #endregion + + #region 私有方法 + + /// + /// 是否逾期返回 + /// + /// + public string IsOverdue(object diffDayVal, object approveStateVal) + { + var result = string.Empty; + var diffDay = 0; + var approveState = 0; + if (diffDayVal != null) diffDay = int.Parse(diffDayVal.ToString()); + if (approveStateVal != null) approveStateVal = int.Parse(approveStateVal.ToString()); + if (approveState != 5) + { + if (diffDay > 0) + { + result = "未逾期"; + } + else if (diffDay == 0) + { + result = "即将逾期"; + } + else if (diffDay < 0) + { + result = "已逾期"; + } + } + else + { + result = "整改完毕"; + } + return result; + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx.designer.cs new file mode 100644 index 00000000..15749c73 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx.designer.cs @@ -0,0 +1,233 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + + + public partial class InspectTailTermList + { + + /// + /// 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; + + /// + /// ddlApproveState 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlApproveState; + + /// + /// txtStartTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtStartTime; + + /// + /// txtEndTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtEndTime; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + + /// + /// btnNew 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnNew; + + /// + /// btnModify 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnModify; + + /// + /// btnSubmitReview 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSubmitReview; + + /// + /// btnwithdraw 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnwithdraw; + + /// + /// lblIsOverdue 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblIsOverdue; + + /// + /// 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; + + /// + /// btnMenuModify 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuModify; + + /// + /// btnMenuView 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuView; + + /// + /// btnMenuDel 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuDel; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx new file mode 100644 index 00000000..a31b84ac --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx @@ -0,0 +1,120 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutAllPass.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.InspectWanderAboutAllPass" %> + + + + + + 全部通过 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx.cs new file mode 100644 index 00000000..37261967 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx.cs @@ -0,0 +1,165 @@ +using BLL; +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.TestRunManage +{ + public partial class InspectWanderAboutAllPass : PageBase + { + /// + /// 检查表主键 + /// + public string SubInspectId + { + get { return (string)ViewState["SubInspectId"]; } + set { ViewState["SubInspectId"] = value; } + } + + /// + /// 统一处理附件 + /// + public int UnifyImg + { + get { return (int)ViewState["UnifyImg"]; } + set { ViewState["UnifyImg"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.UnifyImg = 0; + this.SubInspectId = Request["SubInspectId"]; + PageInit(); + } + } + + /// + /// 绑定数据 + /// + public void PageInit() + { + var data = from term in Funs.DB.TestRun_SubInspectTerm + join workpage in Funs.DB.TestRun_WorkPackage on term.WorkPackId equals workpage.WorkPackId + join pro in Funs.DB.Base_Project on term.ProjectId equals pro.ProjectId + join subuser in Funs.DB.Sys_User on term.Subcontractor equals subuser.UserId + join conuser in Funs.DB.Sys_User on term.Contractor equals conuser.UserId + join supuser in Funs.DB.Sys_User on term.Supervision equals supuser.UserId + join ownuser in Funs.DB.Sys_User on term.Owner equals ownuser.UserId + where term.SubInspectId == this.SubInspectId + select new + { + term.SubInspectId, + term.ProjectId, + pro.ProjectName, + pro.ProjectCode, + term.WorkPackId, + workpage.WorkPackName, + term.AddUser, + term.AddTime, + SubcontractorName = subuser.UserName, + ContractorName = conuser.UserName, + SupervisionName = supuser.UserName, + OwnerName = ownuser.UserName, + term.IsUnifyWanderAbout, + term.UnifyWanderAboutData, + term.UnifyWanderAboutOpinion + }; + if (data.Count() > 0) + { + var model = data.FirstOrDefault(); + //项目名称 + lblProjectName.Text = model.ProjectName; + //项目号 + lblProjectCode.Text = model.ProjectCode; + //工作包名称 + lblWorkPackName.Text = model.WorkPackName; + //分包商 + lblSubcontractorName.Text = model.SubcontractorName; + //承包商 + lblContractorName.Text = model.ContractorName; + //监理 + lblSupervisionName.Text = model.SupervisionName; + //业主 + lblOwnerName.Text = model.OwnerName; + //是否统一流转 + rblIsUnifyWanderAbout.SelectedValue = model.IsUnifyWanderAbout != null ? model.IsUnifyWanderAbout.ToString() : "1"; + //审核意见 + txtUnifyWanderAboutOpinion.Text = model.UnifyWanderAboutOpinion; + } + } + + /// + /// 确认 + /// + protected void btnConfirm_Click(object sender, EventArgs e) + { + try + { + if (Funs.DB.AttachFile.Count(x => x.ToKeyId == this.SubInspectId + "_unify" && x.AttachUrl != null && x.AttachUrl != "") == 0) + { + ShowNotify("请上传附件!", MessageBoxIcon.Warning); + return; + } + var term = Funs.DB.TestRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == this.SubInspectId); + if (term != null) + { + var isPass = int.Parse(rblIsUnifyWanderAbout.SelectedValue); + term.IsUnifyWanderAbout = isPass; + term.UnifyWanderAboutData = DateTime.Now; + term.UnifyWanderAboutOpinion = txtUnifyWanderAboutOpinion.Text; + term.SubcontractorIsAllPass = isPass; + term.ContractorIsAllPass = isPass; + term.SupervisionIsAllPass = isPass; + term.OwnerIsAllPass = isPass; + term.WanderIsComplete = isPass; + if (isPass == 1) + { + term.SubcontractorAllPassData = DateTime.Now; + term.ContractorAllPassData = DateTime.Now; + term.SupervisionAllPassData = DateTime.Now; + term.OwnerAllPassData = DateTime.Now; + term.WanderCompleteData = DateTime.Now; + } + else + { + term.SubcontractorAllPassData = null; + term.ContractorAllPassData = null; + term.SupervisionAllPassData = null; + term.OwnerAllPassData = null; + term.WanderCompleteData = null; + } + var termIetms = Funs.DB.TestRun_SubInspectTermItem.Where(x => x.SubInspectId == this.SubInspectId).ToList(); + if (termIetms.Count > 0) + { + foreach (var item in termIetms) + { + item.SubcontractorIsPass = isPass; + item.ContractorIsPass = isPass; + item.SupervisionIsPass = isPass; + item.OwnerIsPass = isPass; + Funs.DB.SubmitChanges(); + } + } + ShowNotify("确认成功!", MessageBoxIcon.Success); + } + } + catch (Exception ex) + { + ShowNotify(ex.Message, MessageBoxIcon.Error); + } + } + + /// + /// 附件上传 + /// + protected void btnAttach_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", UnifyImg, this.SubInspectId + "_unify", Const.TestRunMenuId))); + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx.designer.cs new file mode 100644 index 00000000..42628c99 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx.designer.cs @@ -0,0 +1,206 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + + + public partial class InspectWanderAboutAllPass + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// ContentPanel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel1; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form2; + + /// + /// lblProjectName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProjectName; + + /// + /// lblProjectCode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProjectCode; + + /// + /// lblSubcontractorName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblSubcontractorName; + + /// + /// lblContractorName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblContractorName; + + /// + /// lblSupervisionName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblSupervisionName; + + /// + /// lblOwnerName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblOwnerName; + + /// + /// lblWorkPackName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblWorkPackName; + + /// + /// txtUnifyWanderAboutOpinion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtUnifyWanderAboutOpinion; + + /// + /// rblIsUnifyWanderAbout 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.RadioButtonList rblIsUnifyWanderAbout; + + /// + /// Panel3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel3; + + /// + /// lblAttach 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblAttach; + + /// + /// btnAttach 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAttach; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnConfirm 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnConfirm; + + /// + /// WindowAtt 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowAtt; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx new file mode 100644 index 00000000..ff723eaf --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx @@ -0,0 +1,142 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutAllPassList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.InspectWanderAboutAllPassList" %> + + + + + + + + + 检查表流转全部通过 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx.cs new file mode 100644 index 00000000..9f045a7c --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx.cs @@ -0,0 +1,224 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + public partial class InspectWanderAboutAllPassList : 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.TestRun_SubInspectTerm.Where(x => x.InspectionIsAllPass == 1).ToList(); + if (inspectTerms.Count == 0) return; + var systemIds = inspectTerms.ConvertAll(x => x.SystemId); + var workPackIds = inspectTerms.ConvertAll(x => x.WorkPackId); + var list = from a in Funs.DB.PreRun_SysDevice + join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId + join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId + where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId) + select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode }; + if (list.Count() > 0) + { + var ids = list.Select(x => x.ProcessesId).ToList(); + ids.AddRange(list.Select(x => x.PreRunId).ToList()); + ids = ids.Distinct().ToList(); + var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList(); + if (syslist.Count > 0) + { + var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList(); + foreach (var itemOne in oneIds) + { + var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne); + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = itemOneModel.PreRunId; + rootOneNode.Text = itemOneModel.PreRunName; + rootOneNode.ToolTip = itemOneModel.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = false; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName }); + foreach (var itemTwo in subTwoList) + { + TreeNode rootTwoNode = new TreeNode(); + rootTwoNode.NodeID = itemTwo.Key.PreRunId; + rootTwoNode.Text = itemTwo.Key.PreRunName; + rootTwoNode.ToolTip = itemTwo.Key.PreRunName; + rootTwoNode.CommandName = ""; + rootTwoNode.EnableClickEvent = false; + rootTwoNode.EnableExpandEvent = false; + rootOneNode.Nodes.Add(rootTwoNode); + rootTwoNode.Expanded = true; + var worklist = list.Where(a => a.PreRunId == itemTwo.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 + "|" + itemTwo.Key.PreRunId; + newNode.ToolTip = itemWork.Key.WorkPackName; + newNode.CommandName = ""; + newNode.Expanded = true; + newNode.EnableClickEvent = true; + newNode.EnableExpandEvent = true; + rootTwoNode.Nodes.Add(newNode); + } + } + } + } + } + } + } + + /// + /// 树点击 + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + BindGrid(); + } + + #endregion + + #region 数据绑定 + + /// + /// 绑定数据 + /// + public void BindGrid() + { + //分包商 + string sqlStr = $"select a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.WorkPackId,g.WorkPackName,a.AddUser,a.AddTime,c.UserName as SubcontractorName,d.UserName as ContractorName,e.UserName as SupervisionName,f.UserName as OwnerName,IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId=b.ProjectId inner join Sys_User as c on c.UserId=a.Subcontractor inner join Sys_User as d on d.UserId=a.Contractor inner join Sys_User as e on e.UserId = a.Supervision inner join Sys_User as f on f.UserId = a.Owner inner join TestRun_WorkPackage as g on g.WorkPackId = a.WorkPackId where 1 = 1 and a.InspectionIsAllPass = 1 and a.ProjectId='{this.CurrUser.LoginProjectId}' "; + + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0) + { + var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First(); + sqlStr += $"and a.WorkPackId='{workPackId}'"; + } + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1) + { + var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; + sqlStr += $"and a.SystemId='{subSystemId}'"; + } + List listStr = new List(); + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(sqlStr); + 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) + { + btnMenuAllPass_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 btnAllPass_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("InspectWanderAboutAllPass.aspx?SubInspectId={0}", Grid1.DataKeys[Grid1.SelectedRowIndex][0].ToString(), "检查全部通过 - "))); + } + + /// + /// 右击检查全部通过 + /// + protected void btnMenuAllPass_Click(object sender, EventArgs e) + { + btnAllPass_Click(null, null); + } + + /// + /// 关闭 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx.designer.cs new file mode 100644 index 00000000..5ecdaaca --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx.designer.cs @@ -0,0 +1,152 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + + + public partial class InspectWanderAboutAllPassList + { + + /// + /// 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; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + + /// + /// btnAllPass 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAllPass; + + /// + /// 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; + + /// + /// btnMenuAllPass 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuAllPass; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx new file mode 100644 index 00000000..4e861f88 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx @@ -0,0 +1,138 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutConfirm.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.InspectWanderAboutConfirm" %> + + + + + + 签字确认 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.cs new file mode 100644 index 00000000..b58970a7 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.cs @@ -0,0 +1,658 @@ +using BLL; +using Newtonsoft.Json.Linq; +using NPOI.SS.UserModel; +using NPOI.SS.Util; +using NPOI.XSSF.UserModel; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Web; +using System.Web.UI; + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + 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; } + } + + /// + /// 类型名称 + /// + public string ConfirmTypeName + { + get { return (string)ViewState["ConfirmTypeName"]; } + set { ViewState["ConfirmTypeName"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.SubInspectId = Request.Params["SubInspectId"]; + this.ConfirmType = int.Parse(Request.Params["ConfirmType"]); + + if (this.ConfirmType == 1) + { + this.ConfirmTypeName = "分包商"; + } + if (this.ConfirmType == 2) + { + this.ConfirmTypeName = "承包商"; + } + if (this.ConfirmType == 3) + { + this.ConfirmTypeName = "监理"; + } + if (this.ConfirmType == 4) + { + this.ConfirmTypeName = "业主"; + } + + this.BindGrid(); + } + } + + #region 数据绑定 + + /// + /// 绑定数据 + /// + public void BindGrid(int isPass = -1) + { + var term = Funs.DB.TestRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == this.SubInspectId); + if (term != null) + { + lblIsUnifyWanderAbout.Text = term.IsUnifyWanderAbout == 1 ? "是" : "否"; + lblUnifyWanderAboutData.Text = term.UnifyWanderAboutData != null ? term.UnifyWanderAboutData.Value.ToString("yyyy-MM-dd") : string.Empty; + unifyfile.Hidden = term.IsUnifyWanderAbout == 1 ? false : true; + } + var data = new List(); + var queryData = Funs.DB.TestRun_SubInspectTermItem.Where(x => x.SubInspectId == this.SubInspectId); + if (queryData.Count() > 0) + { + var list = queryData.ToList(); + foreach (var item in list) + { + var model = new ConfirmIsPass(); + model.TermItemId = item.TermItemId; + model.SubInspectId = item.SubInspectId; + model.WorkInspectName = item.WorkInspectName; + model.ConfirmType = this.ConfirmType; + model.ConfirmTypeName = this.ConfirmTypeName; + //1=分包商2=承包商3=监理4=业主 + if (this.ConfirmType == 1) + { + model.IsPass = isPass != -1 ? isPass : item.SubcontractorIsPass; + model.Remark = item.SubcontractorRemark; + } + if (this.ConfirmType == 2) + { + model.IsPass = isPass != -1 ? isPass : item.ContractorIsPass; + model.Remark = item.ContractorRemark; + } + if (this.ConfirmType == 3) + { + model.IsPass = isPass != -1 ? isPass : item.SupervisionIsPass; + model.Remark = item.SupervisionRemark; + } + if (this.ConfirmType == 4) + { + model.IsPass = isPass != -1 ? isPass : item.OwnerIsPass; + model.Remark = item.OwnerRemark; + } + data.Add(model); + } + } + Grid1.DataSource = data; + Grid1.DataBind(); + titleName.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"); + GridRow row = Grid1.Rows[i]; + System.Web.UI.WebControls.RadioButtonList rblIsPass = (System.Web.UI.WebControls.RadioButtonList)row.FindControl("rblIsPass"); + var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); + var inspectedUser = this.Grid1.Rows[i].DataKeys[1].ToString(); + var model = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemId && x.InspectedUser == inspectedUser); + if (model != null) + { + if (!string.IsNullOrWhiteSpace(rblIsPass.SelectedValue)) + { + //1=分包商2=承包商3=监理4=业主 + if (this.ConfirmType == 1) + { + model.SubcontractorIsPass = int.Parse(rblIsPass.SelectedValue); + model.SubcontractorRemark = values.Value("Remark"); + } + else if (this.ConfirmType == 2) + { + model.ContractorIsPass = int.Parse(rblIsPass.SelectedValue); + model.ContractorRemark = values.Value("Remark"); + } + else if (this.ConfirmType == 3) + { + model.SupervisionIsPass = int.Parse(rblIsPass.SelectedValue); + model.SupervisionRemark = values.Value("Remark"); + } + else if (this.ConfirmType == 4) + { + model.OwnerIsPass = int.Parse(rblIsPass.SelectedValue); + model.OwnerRemark = values.Value("Remark"); + } + } + Funs.DB.SubmitChanges(); + } + } + var subInspectId = this.Grid1.Rows[0].DataKeys[3].ToString(); + var subModel = Funs.DB.TestRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId); + if (subModel != null) + { + //1=分包商2=承包商3=监理4=业主 + if (this.ConfirmType == 1) + { + if (Funs.DB.TestRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.SubcontractorIsPass.GetValueOrDefault() != 1) == 0) + { + subModel.SubcontractorIsAllPass = 1; + subModel.SubcontractorAllPassData = DateTime.Now; + } + else + { + subModel.SubcontractorIsAllPass = 0; + subModel.SubcontractorAllPassData = null; + } + } + else if (this.ConfirmType == 2) + { + if (Funs.DB.TestRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.ContractorIsPass.GetValueOrDefault() != 1) == 0) + { + subModel.ContractorIsAllPass = 1; + subModel.ContractorAllPassData = DateTime.Now; + } + else + { + subModel.ContractorIsAllPass = 0; + subModel.ContractorAllPassData = null; + } + } + else if (this.ConfirmType == 3) + { + if (Funs.DB.TestRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.SupervisionIsPass.GetValueOrDefault() != 1) == 0) + { + subModel.SupervisionIsAllPass = 1; + subModel.SupervisionAllPassData = DateTime.Now; + } + else + { + subModel.SupervisionIsAllPass = 0; + subModel.SupervisionAllPassData = null; + } + } + else if (this.ConfirmType == 4) + { + if (Funs.DB.TestRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.OwnerIsPass.GetValueOrDefault() != 1) == 0) + { + subModel.OwnerIsAllPass = 1; + subModel.OwnerAllPassData = DateTime.Now; + } + else + { + subModel.OwnerIsAllPass = 0; + subModel.OwnerAllPassData = null; + } + } + //判断是否全部通过 + if (subModel.SubcontractorIsAllPass == 1 && subModel.ContractorIsAllPass == 1 && subModel.SupervisionIsAllPass == 1 && subModel.OwnerIsAllPass == 1) + { + subModel.WanderIsComplete = 1; + subModel.WanderCompleteData = DateTime.Now; + } + else + { + subModel.WanderIsComplete = 0; + subModel.WanderCompleteData = null; + } + } + Funs.DB.SubmitChanges(); + BindGrid(); + ShowNotify("保存成功!"); + } + catch (Exception ex) + { + ShowNotify(ex.Message, MessageBoxIcon.Error); + } + } + + /// + /// 导出 + /// + protected void btnExport_Click(object sender, EventArgs e) + { + string rootPath = Server.MapPath("~/") + Const.ExcelUrl; + //导出文件 + string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\"; + if (!Directory.Exists(filePath)) + { + Directory.CreateDirectory(filePath); + } + string ReportFileName = filePath + this.ConfirmTypeName + "确认签字.xlsx"; + //获取工作包检查表 + var termData = from a in Funs.DB.TestRun_SubInspectTerm + join b in Funs.DB.Base_Project on a.ProjectId equals b.ProjectId + join c in Funs.DB.TestRun_WorkPackage on a.WorkPackId equals c.WorkPackId + join zz in Funs.DB.PreRun_SysDevice on a.InstallationId equals zz.PreRunId//装置 + join gx in Funs.DB.PreRun_SysDevice on a.ProcessesId equals gx.PreRunId//工序 + join xt in Funs.DB.PreRun_SysDevice on a.SystemId equals xt.PreRunId//系统 + select new { a.SubInspectId, a.ProjectId, b.ProjectName, b.ShortName, b.ProjectCode, a.InstallationId, a.ProcessesId, a.SystemId, a.WorkPackId, a.InspectResult, a.Subcontractor, a.Contractor, a.Supervision, a.Owner, a.InspectionIsAllPass, a.SubcontractorIsAllPass, a.ContractorIsAllPass, a.SupervisionIsAllPass, a.OwnerIsAllPass, a.InspectTime, a.AddUser, a.AddTime, c.WorkPackName, zzName = zz.PreRunName, gxName = gx.PreRunName, xtName = xt.PreRunName }; + if (termData != null) + { + var termModel = termData.FirstOrDefault(); + //获取工作包检查项表 + var termItems = Funs.DB.TestRun_SubInspectTermItem.Where(x => x.SubInspectId == this.SubInspectId).OrderBy(x => x.Sort).ToList(); + int rowIndex = 0; + XSSFWorkbook hssfworkbook = new XSSFWorkbook(); + XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet(this.ConfirmTypeName + "确认签字"); + + #region 列宽 + + ws.SetColumnWidth(0, (7 * 256)); + ws.SetColumnWidth(1, (4 * 256)); + ws.SetColumnWidth(2, (4 * 256)); + ws.SetColumnWidth(3, (4 * 256)); + ws.SetColumnWidth(4, (10 * 256)); + ws.SetColumnWidth(5, (10 * 256)); + ws.SetColumnWidth(6, (10 * 256)); + ws.SetColumnWidth(7, (10 * 256)); + ws.SetColumnWidth(8, (3 * 256)); + ws.SetColumnWidth(9, (3 * 256)); + ws.SetColumnWidth(10, (3 * 256)); + ws.SetColumnWidth(11, (3 * 256)); + ws.SetColumnWidth(12, (3 * 256)); + ws.SetColumnWidth(13, (3 * 256)); + ws.SetColumnWidth(14, (3 * 256)); + ws.SetColumnWidth(15, (3 * 256)); + ws.SetColumnWidth(16, (3 * 256)); + ws.SetColumnWidth(17, (3 * 256)); + + #endregion + + #region 样式 + //头部样式居中 + ICellStyle titleStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 14, true, true); + //头部样式靠左 + ICellStyle leftTitleStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 14, true, true); + //公共样式 + ICellStyle style = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true); + //公共样式靠左 + ICellStyle leftStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 10.5, true); + //公共样式靠左上对其 + ICellStyle leftTopStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, HorizontalAlignment.Left, 10.5, true); + //公共样式加粗 + ICellStyle styleBold = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true, true); + + #endregion + + #region 头部 + + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, rowIndex, rowIndex + 5, 0, 17); + //行1 + var region = new CellRangeAddress(rowIndex, rowIndex + 2, 0, 0); + ws.AddMergedRegion(region); + byte[] bytes = File.ReadAllBytes(Server.MapPath("~/") + "Images\\Template.png"); + int pictureIdx = hssfworkbook.AddPicture(bytes, PictureType.JPEG); + IDrawing patriarch = ws.CreateDrawingPatriarch(); + IClientAnchor anchor = patriarch.CreateAnchor(0, 0, 0, 0, 0, rowIndex, 1, rowIndex + 2); + IPicture pict = patriarch.CreatePicture(anchor, pictureIdx); + //pict.Resize(); + region = new CellRangeAddress(rowIndex, rowIndex + 2, 1, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(1).SetCellValue("中国五环工程有限公司"); + ws.GetRow(rowIndex).GetCell(1).CellStyle = + ws.GetRow(rowIndex).GetCell(2).CellStyle = + ws.GetRow(rowIndex).GetCell(3).CellStyle = leftTitleStyle; + region = new CellRangeAddress(rowIndex, rowIndex, 4, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(4).SetCellValue(termModel.ProjectName); + ws.GetRow(rowIndex).GetCell(4).CellStyle = style; + region = new CellRangeAddress(rowIndex, rowIndex, 8, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(8).SetCellValue("项目号"); + ws.GetRow(rowIndex).GetCell(8).CellStyle = style; + region = new CellRangeAddress(rowIndex, rowIndex, 13, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(13).SetCellValue(termModel.ProjectCode); + ws.GetRow(rowIndex).GetCell(13).CellStyle = style; + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 4, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue($"({termModel.zzName})({termModel.gxName}/{termModel.xtName})"); + ws.GetRow(rowIndex + 1).GetCell(4).CellStyle = style; + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 8, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(8).SetCellValue("(文件号)"); + ws.GetRow(rowIndex + 1).GetCell(8).CellStyle = style; + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 13, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(13).SetCellValue(""); + ws.GetRow(rowIndex + 1).GetCell(13).CellStyle = style; + region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 4, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue($"{termModel.WorkPackName}条件检查表"); + ws.GetRow(rowIndex + 2).GetCell(4).CellStyle = titleStyle; + region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 8, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("第 1 页"); + ws.GetRow(rowIndex + 2).GetCell(8).CellStyle = style; + region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 13, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 2).GetCell(13).SetCellValue("共 1 页"); + ws.GetRow(rowIndex + 2).GetCell(13).CellStyle = style; + //行4,行5 + region = new CellRangeAddress(rowIndex + 3, rowIndex + 4, 0, 2); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 3).GetCell(0).CellStyle = style; + ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue(""); + region = new CellRangeAddress(rowIndex + 3, rowIndex + 4, 3, 11); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 3).GetCell(3).CellStyle = leftStyle; + ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue(""); + region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 12, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 3).GetCell(12).CellStyle = style; + ws.GetRow(rowIndex + 3).GetCell(12).SetCellValue("检查日期"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 12, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(12).CellStyle = style; + ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue(DateTime.Now.ToString("yyyy年MM月dd日")); + //行6 + ws.GetRow(rowIndex + 5).GetCell(0).CellStyle = styleBold; + ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("序号"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 1, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(1).CellStyle = styleBold; + ws.GetRow(rowIndex + 5).GetCell(1).SetCellValue("检查项目"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 8, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(8).CellStyle = styleBold; + ws.GetRow(rowIndex + 5).GetCell(8).SetCellValue("结果"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 13, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(13).CellStyle = styleBold; + ws.GetRow(rowIndex + 5).GetCell(13).SetCellValue("备注"); + + #endregion + + #region 表格 + + var start = rowIndex + 6; + var end = rowIndex + 5 + termItems.Count; + + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 17); + + //合并单元格 + for (int hb = start; hb <= end; hb++) + { + region = new CellRangeAddress(hb, hb, 1, 7); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 8, 12); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 13, 17); + ws.AddMergedRegion(region); + } + + //数据 + int num = 1; + var dataIndex = 6; + foreach (var item in termItems) + { + //序号 + ws.GetRow(dataIndex).GetCell(0).SetCellValue(num); + //检查项目 + ws.GetRow(dataIndex).GetCell(1).SetCellValue(item.WorkInspectName); + ws.GetRow(dataIndex).GetCell(1).CellStyle = leftStyle; + //结果 + ws.GetRow(dataIndex).GetCell(8).SetCellValue(""); + //备注 + ws.GetRow(dataIndex).GetCell(13).SetCellValue(""); + dataIndex++; + num++; + } + rowIndex = start + termItems.Count; + + #endregion + + #region 尾部 + + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, rowIndex, rowIndex, 0, 17, 100); + //行1 + ws.GetRow(rowIndex).GetCell(0).SetCellValue("结论"); + region = new CellRangeAddress(rowIndex, rowIndex, 1, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(1).SetCellValue("是否同意进行冲洗吹扫(包括整改意见):"); + ws.GetRow(rowIndex).GetCell(1).CellStyle = leftTopStyle; + //行2 + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, rowIndex + 1, rowIndex + 1, 0, 17, 80); + ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("检查人员"); + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 4); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("施工单位:"); + ws.GetRow(rowIndex + 1).GetCell(1).CellStyle = leftTopStyle; + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 5, 6); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(5).SetCellValue("总承包商:"); + ws.GetRow(rowIndex + 1).GetCell(5).CellStyle = leftTopStyle; + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 7, 11); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(7).SetCellValue("监理:"); + ws.GetRow(rowIndex + 1).GetCell(7).CellStyle = leftTopStyle; + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 12, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(12).SetCellValue("业主:"); + ws.GetRow(rowIndex + 1).GetCell(12).CellStyle = leftTopStyle; + + #endregion + + ws.PrintSetup.Landscape = false; + ws.PrintSetup.PaperSize = 9; + ws.ForceFormulaRecalculation = true; + using (FileStream filess = File.OpenWrite(ReportFileName)) + { + hssfworkbook.Write(filess); + } + FileInfo filet = new FileInfo(ReportFileName); + Response.Clear(); + Response.Charset = "GB2312"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 + Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(this.ConfirmTypeName + "确认签字.xlsx")); + // 添加头信息,指定文件大小,让浏览器能够显示下载进度 + Response.AddHeader("Content-Length", filet.Length.ToString()); + // 指定返回的是一个不能被客户端读取的流,必须被下载 + Response.ContentType = "application/ms-excel"; + // 把文件流发送到客户端 + Response.WriteFile(filet.FullName); + // 停止页面的执行 + Response.End(); + } + } + + /// + /// 行加载事件 + /// + protected void Grid1_RowDataBound(object sender, GridRowEventArgs e) + { + System.Web.UI.WebControls.RadioButtonList rblIsPass = (System.Web.UI.WebControls.RadioButtonList)Grid1.Rows[e.RowIndex].FindControl("rblIsPass"); + int isPass = 1; + if (Grid1.DataKeys[e.RowIndex][4] != null) isPass = int.Parse(Grid1.DataKeys[e.RowIndex][4].ToString()); + rblIsPass.SelectedValue = isPass.ToString(); + if (rblIsPass.SelectedValue != "1") + { + rblIsAllPass.SelectedValue = "0"; + } + } + + /// + /// 实体绑定 + /// + public class ConfirmIsPass + { + /// + /// 检查项主键 + /// + public string TermItemId { get; set; } + /// + /// 检查表主键 + /// + public string SubInspectId { get; set; } + /// + /// 名称 + /// + public string WorkInspectName { get; set; } + /// + /// 确认类型1=分包商2=承包商3=监理4=业主 + /// + public int ConfirmType { get; set; } + /// + /// 确认类型名称 + /// + public string ConfirmTypeName { get; set; } + /// + /// 是否通过 + /// + public int? IsPass { get; set; } + /// + /// 备注 + /// + public string Remark { get; set; } + + } + + /// + /// 检查项确认事件 + /// + protected void rblIsPass_SelectedIndexChanged(object sender, EventArgs e) + { + for (int i = 0; i < Grid1.Rows.Count; i++) + { + System.Web.UI.WebControls.RadioButtonList rblIsPass = (System.Web.UI.WebControls.RadioButtonList)Grid1.Rows[i].FindControl("rblIsPass"); + if (rblIsPass.SelectedValue != "1") + { + rblIsAllPass.SelectedValue = "0"; + } + } + } + + /// + /// 是否同意进行预试车活动事件 + /// + protected void rblIsAllPass_SelectedIndexChanged(object sender, EventArgs e) + { + BindGrid(int.Parse(rblIsAllPass.SelectedValue)); + } + + /// + /// 附件上传 + /// + protected void btnAttach_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/CheckControl&menuId={1}", $"{this.SubInspectId}_{this.ConfirmType}", Const.TestRunMenuId))); + } + + /// + /// 统一流转通过附件查看 + /// + protected void btnUnifyUpload_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/CheckControl&menuId={1}", this.SubInspectId + "_unify", Const.TestRunMenuId))); + } + + #endregion + + #region 私有方法 + + /// + /// 创建样式 + /// + /// + public static ICellStyle SetExcelStyle(XSSFWorkbook wb, BorderStyle Bottom, BorderStyle Left, BorderStyle Right, BorderStyle Top, VerticalAlignment VerAig, HorizontalAlignment HorAig, double FontSize, bool WrapText = true, bool Bold = false, string FontName = "宋体") + { + ICellStyle style = wb.CreateCellStyle(); + style.BorderBottom = Bottom; + style.BorderLeft = Left; + style.BorderRight = Right; + style.BorderTop = Top; + style.VerticalAlignment = VerAig; + style.Alignment = HorAig; + IFont font = wb.CreateFont(); + font.FontHeightInPoints = FontSize; + font.IsBold = Bold; + font.FontName = FontName; + style.SetFont(font); + style.WrapText = WrapText; + return style; + } + + /// + /// 创建头部 + /// + /// + private XSSFSheet ExcelCreateRowTitle(XSSFSheet ws, XSSFWorkbook hssfworkbook, ICellStyle style, int sRows, int eRows, int cStart, int cEnd, float height = 21) + { + for (int i = sRows; i <= eRows; i++) + { + ws.CreateRow(i); + ws.GetRow(i).HeightInPoints = height; + for (int j = cStart; j <= cEnd; j++) + { + ws.GetRow(i).CreateCell(j); + ws.GetRow(i).CreateCell(j).CellStyle = style; + } + } + return ws; + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.designer.cs new file mode 100644 index 00000000..31409c55 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.designer.cs @@ -0,0 +1,233 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + + + public partial class InspectWanderAboutConfirm + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// plApprove2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FormRow plApprove2; + + /// + /// titleName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel titleName; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill; + + /// + /// btnExport 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnExport; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// rblIsPass 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.RadioButtonList rblIsPass; + + /// + /// txtRemark 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtRemark; + + /// + /// ContentPanel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel1; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form2; + + /// + /// rblIsAllPass 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.RadioButtonList rblIsAllPass; + + /// + /// Panel3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel3; + + /// + /// lblAttach 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblAttach; + + /// + /// btnAttach 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAttach; + + /// + /// lblIsUnifyWanderAbout 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblIsUnifyWanderAbout; + + /// + /// lblUnifyWanderAboutData 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblUnifyWanderAboutData; + + /// + /// unifyfile 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FormRow unifyfile; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel2; + + /// + /// btnUnifyUpload 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnUnifyUpload; + + /// + /// WindowAtt 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowAtt; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx new file mode 100644 index 00000000..1f6bbef8 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx @@ -0,0 +1,139 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.InspectWanderAboutList" %> + + + + + + + + + 检查表流转 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.cs new file mode 100644 index 00000000..5ce754b6 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.cs @@ -0,0 +1,238 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + 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.TestRun_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 systemIds = inspectTerms.ConvertAll(x => x.SystemId); + var workPackIds = inspectTerms.ConvertAll(x => x.WorkPackId); + var list = from a in Funs.DB.PreRun_SysDevice + join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId + join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId + where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId) + select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode }; + if (list.Count() > 0) + { + var ids = list.Select(x => x.ProcessesId).ToList(); + ids.AddRange(list.Select(x => x.PreRunId).ToList()); + ids = ids.Distinct().ToList(); + var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList(); + if (syslist.Count > 0) + { + var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList(); + foreach (var itemOne in oneIds) + { + var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne); + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = itemOneModel.PreRunId; + rootOneNode.Text = itemOneModel.PreRunName; + rootOneNode.ToolTip = itemOneModel.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = false; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName }); + foreach (var itemTwo in subTwoList) + { + TreeNode rootTwoNode = new TreeNode(); + rootTwoNode.NodeID = itemTwo.Key.PreRunId; + rootTwoNode.Text = itemTwo.Key.PreRunName; + rootTwoNode.ToolTip = itemTwo.Key.PreRunName; + rootTwoNode.CommandName = ""; + rootTwoNode.EnableClickEvent = false; + rootTwoNode.EnableExpandEvent = false; + rootOneNode.Nodes.Add(rootTwoNode); + rootTwoNode.Expanded = true; + var worklist = list.Where(a => a.PreRunId == itemTwo.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 + "|" + itemTwo.Key.PreRunId; + newNode.ToolTip = itemWork.Key.WorkPackName; + newNode.CommandName = ""; + newNode.Expanded = true; + newNode.EnableClickEvent = true; + newNode.EnableExpandEvent = true; + rootTwoNode.Nodes.Add(newNode); + } + } + } + } + } + } + } + + /// + /// 树点击 + /// + 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.Subcontractor,a.Contractor,a.Supervision,a.Owner,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,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_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.Subcontractor,a.Contractor,a.Supervision,a.Owner,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,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_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.Subcontractor,a.Contractor,a.Supervision,a.Owner,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,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId = b.ProjectId where 1 = 1 and a.InspectionIsAllPass = 1 and a.InspectionIsAllPass = 1 and a.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.Subcontractor,a.Contractor,a.Supervision,a.Owner,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,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId = b.ProjectId where 1 = 1 and a.InspectionIsAllPass = 1 and a.InspectionIsAllPass = 1 and a.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 systemId = this.tvControlItem.SelectedNodeID.Split('|').Last(); + subcontractorStr += $"and a.SystemId='{systemId}'"; + contractorStr += $"and a.SystemId='{systemId}'"; + supervisionStr += $"and a.SystemId='{systemId}'"; + ownerStr += $"and a.SystemId='{systemId}'"; + } + 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 + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.designer.cs new file mode 100644 index 00000000..dacd94f4 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.designer.cs @@ -0,0 +1,152 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + + + 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; + + /// + /// 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/TestRunManage/SelectTailTermList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx new file mode 100644 index 00000000..da577b30 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx @@ -0,0 +1,44 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SelectTailTermList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.SelectTailTermList" %> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx.cs new file mode 100644 index 00000000..6c434471 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx.cs @@ -0,0 +1,89 @@ +using BLL; +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.TestRunManage +{ + public partial class SelectTailTermList : PageBase + { + /// + /// 检查项主键 + /// + public string TermItemId + { + get { return (string)ViewState["TermItemId"]; } + set { ViewState["TermItemId"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.TermItemId = Request["TermItemId"]; + DataBrid(); + } + } + + /// + /// 数据绑定 + /// + public void DataBrid() + { + var list = from a in Funs.DB.TestRun_TermItemInspectedUser + join b in Funs.DB.TestRun_InspectTailTerm on a.TermItemId equals b.TermItemId + join c in Funs.DB.Base_Unit on b.ConstructionUnit equals c.UnitId + where a.InspectedUser == this.CurrUser.UserId && b.TermItemId == this.TermItemId && b.ApproveState == 0 + orderby a.AddTime + select new + { + b.TailTermId, + b.AddTime, + b.TailTermCode, + ConstructionUnit = c.UnitName, + b.AdjustCompleteTime + }; + Grid1.RecordCount = list.Count(); + Grid1.DataSource = list; + Grid1.DataBind(); + } + + /// + /// 排序 + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + Grid1.SortDirection = e.SortDirection; + Grid1.SortField = e.SortField; + DataBrid(); + } + + #region 确认 + + /// + /// 确认 + /// + protected void btnSave_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(Grid1.SelectedRowID) + ActiveWindow.GetHidePostBackReference()); + } + + #endregion + + /// + /// 表格双击事件 + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(Grid1.SelectedRowID) + ActiveWindow.GetHidePostBackReference()); + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx.designer.cs new file mode 100644 index 00000000..28c88d14 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx.designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + + + public partial class SelectTailTermList + { + + /// + /// 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; + + /// + /// Toolbar3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar3; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx new file mode 100644 index 00000000..1b7fe675 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx @@ -0,0 +1,145 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SiteImplementation.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.SiteImplementation" %> + + + + + + 现场实施 + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx.cs new file mode 100644 index 00000000..a9d76090 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx.cs @@ -0,0 +1,190 @@ +using BLL; +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.TestRunManage +{ + public partial class SiteImplementation : PageBase + { + /// + /// 主键 + /// + public string SubInspectId + { + get { return (string)ViewState["SubInspectId"]; } + set { ViewState["SubInspectId"] = value; } + } + + /// + /// 是否查看 + /// + public bool IsView + { + get { return (bool)ViewState["IsView"]; } + set { ViewState["IsView"] = value; } + } + + /// + /// 附件 + /// + public int RecordUpload + { + get { return (int)ViewState["RecordUpload"]; } + set { ViewState["RecordUpload"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.SubInspectId = Request["SubInspectId"]; + //是否查看 + this.IsView = string.IsNullOrWhiteSpace(Request["IsView"]) ? false : bool.Parse(Request["IsView"]); + //数据绑定 + PageInit(); + //判断是否查看 + if (IsView) + { + btnSubmit.Hidden = true; + RecordUpload = -1; + } + } + } + + /// + /// 默认绑定 + /// + public void PageInit() + { + RecordUpload = 0; + //获取检查表数据 + var data = from a in Funs.DB.TestRun_SubInspectTerm + join b in Funs.DB.TestRun_WorkPackage on a.WorkPackId equals b.WorkPackId + join c in Funs.DB.Sys_User on a.AddUser equals c.UserId + join d in Funs.DB.Sys_User on a.Subcontractor equals d.UserId + join e in Funs.DB.Sys_User on a.Contractor equals e.UserId + join f in Funs.DB.Sys_User on a.Supervision equals f.UserId + join g in Funs.DB.Sys_User on a.Owner equals g.UserId + join h in Funs.DB.Base_Project on a.ProjectId equals h.ProjectId + where a.SubInspectId == this.SubInspectId + select new + { + a.SubInspectId, + a.ProjectId, + h.ProjectCode, + h.ProjectName, + b.WorkPackName, + InspectUser = c.UserName, + InspectData = a.AddTime, + SubcontractorName = d.UserName, + ContractorName = e.UserName, + SupervisionName = f.UserName, + OwnerName = g.UserName, + a.RecordUploadData, + a.SiteImplementConfirmData, + a.IsSiteImplement + }; + if (data != null) + { + var inspectTermModel = data.FirstOrDefault(); + lblProjectName.Text = inspectTermModel.ProjectName; + lblProjectCode.Text = inspectTermModel.ProjectCode; + lblWorkPackName.Text = inspectTermModel.WorkPackName; + lblInspectUser.Text = inspectTermModel.InspectUser; + lblInspectData.Text = inspectTermModel.InspectData != null ? inspectTermModel.InspectData.Value.ToString("yyyy-MM-dd") : string.Empty; + lblSubcontractorName.Text = inspectTermModel.SubcontractorName; + lblContractorName.Text = inspectTermModel.ContractorName; + lblSupervisionName.Text = inspectTermModel.SupervisionName; + lblOwnerName.Text = inspectTermModel.OwnerName; + lblRecordUploadData.Text = inspectTermModel.RecordUploadData != null ? inspectTermModel.RecordUploadData.Value.ToString("yyyy-MM-dd") : string.Empty; + lblSiteImplementConfirmData.Text = inspectTermModel.SiteImplementConfirmData != null ? inspectTermModel.SiteImplementConfirmData.Value.ToString("yyyy-MM-dd") : string.Empty; + rblIsSiteImplement.SelectedValue = inspectTermModel.IsSiteImplement != null ? inspectTermModel.IsSiteImplement.ToString() : "0"; + } + //获取检查项数据 + var InspectTermItems = from a in Funs.DB.TestRun_SubInspectTermItem + join b in Funs.DB.TestRun_TermItemInspectedUser on a.TermItemId equals b.TermItemId + join c in Funs.DB.Sys_User on b.InspectedUser equals c.UserId + where a.SubInspectId == this.SubInspectId + orderby a.Sort ascending + select new + { + a.TermItemId, + a.WorkInspectName, + b.InspectedUser, + InspectedUserName = c.UserName, + b.InspectionResults, + InspectionResultsName = b.InspectionResults == 1 ? "通过" : "未通过", + b.InspectionIllustrate + }; + var itemDatas = InspectTermItems.ToList(); + gvTermItem.DataSource = itemDatas; + gvTermItem.DataBind(); + } + + #region 按钮 + + /// + /// 保存并提交 + /// + protected void btnSubmit_Click(object sender, EventArgs e) + { + var subModel = Funs.DB.TestRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == this.SubInspectId); + if (subModel != null) + { + subModel.IsSiteImplement = int.Parse(rblIsSiteImplement.SelectedValue); + if (!string.IsNullOrWhiteSpace(lblRecordUploadData.Text)) + { + subModel.RecordUploadData = DateTime.Parse(lblRecordUploadData.Text); + } + else + { + subModel.RecordUploadData = null; + } + if (!string.IsNullOrWhiteSpace(lblSiteImplementConfirmData.Text)) + { + subModel.SiteImplementConfirmData = DateTime.Parse(lblSiteImplementConfirmData.Text); + subModel.SiteImplementUser = this.CurrUser.UserId; + } + else + { + subModel.SiteImplementConfirmData = null; + subModel.SiteImplementUser = string.Empty; + } + } + Funs.DB.SubmitChanges(); + ShowNotify("操作成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + + /// + /// 现场实施是否完成 + /// + protected void rblIsSiteImplement_SelectedIndexChanged(object sender, EventArgs e) + { + lblSiteImplementConfirmData.Text = rblIsSiteImplement.SelectedValue == "1" ? DateTime.Now.ToString("yyyy-MM-dd") : string.Empty; + } + + /// + /// 试车过程记录上传 + /// + protected void btnRecordUpload_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", this.RecordUpload, this.SubInspectId + "_xcss", Const.InspectTailTerm))); + } + + /// + /// 关闭 + /// + protected void WindowAtt_Close(object sender, WindowCloseEventArgs e) + { + lblRecordUploadData.Text = Funs.DB.AttachFile.Count(x => x.ToKeyId == this.SubInspectId + "_xcss" && x.AttachUrl != null && x.AttachUrl != "") > 0 ? DateTime.Now.ToString("yyyy-MM-dd") : string.Empty; + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx.designer.cs new file mode 100644 index 00000000..c1484ebb --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx.designer.cs @@ -0,0 +1,242 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + + + public partial class SiteImplementation + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// ContentPanel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel1; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form2; + + /// + /// lblProjectName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProjectName; + + /// + /// lblProjectCode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProjectCode; + + /// + /// lblInspectUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblInspectUser; + + /// + /// lblInspectData 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblInspectData; + + /// + /// lblSubcontractorName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblSubcontractorName; + + /// + /// lblContractorName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblContractorName; + + /// + /// lblSupervisionName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblSupervisionName; + + /// + /// lblOwnerName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblOwnerName; + + /// + /// lblWorkPackName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblWorkPackName; + + /// + /// rblIsSiteImplement 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.RadioButtonList rblIsSiteImplement; + + /// + /// lblSiteImplementConfirmData 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblSiteImplementConfirmData; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// btnRecordUpload 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnRecordUpload; + + /// + /// lblRecordUploadData 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblRecordUploadData; + + /// + /// plApprove2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FormRow plApprove2; + + /// + /// gvTermItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid gvTermItem; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnSubmit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSubmit; + + /// + /// WindowAtt 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowAtt; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx new file mode 100644 index 00000000..c269fa92 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx @@ -0,0 +1,153 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SiteImplementationList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.SiteImplementationList" %> + + + + + + + + + 现场实施 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx.cs new file mode 100644 index 00000000..7d3e5bec --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx.cs @@ -0,0 +1,268 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + public partial class SiteImplementationList : 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.TestRun_SubInspectTerm.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.InspectionIsAllPass == 1 && x.WanderIsComplete == 1).ToList(); + if (inspectTerms.Count == 0) return; + + var systemIds = inspectTerms.ConvertAll(x => x.SystemId); + var workPackIds = inspectTerms.ConvertAll(x => x.WorkPackId); + var list = from a in Funs.DB.PreRun_SysDevice + join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId + join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId + where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId) + select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode }; + if (list.Count() > 0) + { + var ids = list.Select(x => x.ProcessesId).ToList(); + ids.AddRange(list.Select(x => x.PreRunId).ToList()); + ids = ids.Distinct().ToList(); + var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList(); + if (syslist.Count > 0) + { + var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList(); + foreach (var itemOne in oneIds) + { + var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne); + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = itemOneModel.PreRunId; + rootOneNode.Text = itemOneModel.PreRunName; + rootOneNode.ToolTip = itemOneModel.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = false; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName }); + foreach (var itemTwo in subTwoList) + { + TreeNode rootTwoNode = new TreeNode(); + rootTwoNode.NodeID = itemTwo.Key.PreRunId; + rootTwoNode.Text = itemTwo.Key.PreRunName; + rootTwoNode.ToolTip = itemTwo.Key.PreRunName; + rootTwoNode.CommandName = ""; + rootTwoNode.EnableClickEvent = false; + rootTwoNode.EnableExpandEvent = false; + rootOneNode.Nodes.Add(rootTwoNode); + rootTwoNode.Expanded = true; + var worklist = list.Where(a => a.PreRunId == itemTwo.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 + "|" + itemTwo.Key.PreRunId; + newNode.ToolTip = itemWork.Key.WorkPackName; + newNode.CommandName = ""; + newNode.Expanded = true; + newNode.EnableClickEvent = true; + newNode.EnableExpandEvent = true; + rootTwoNode.Nodes.Add(newNode); + } + } + } + } + } + } + } + + /// + /// 树点击 + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + BindGrid(); + } + + #endregion + + #region 数据绑定 + + /// + /// 绑定数据 + /// + public void BindGrid() + { + List listStr = new List(); + string sqlStr = $"select a.SubInspectId,a.ProjectId,g.ProjectName,g.ProjectCode,a.WorkPackId,b.WorkPackName,a.SystemId,c.UserName as SubcontractorName,d.UserName as ContractorName,e.UserName as SupervisionName,f.UserName as OwnerName,a.IsSiteImplement,(case a.IsSiteImplement when 1 then '已完成' else '未完成' end) as IsSiteImplementName,(case when (a.SubcontractorIsAllPass=1 and a.ContractorIsAllPass=1 and a.SupervisionIsAllPass=1 and a.OwnerIsAllPass=1) then '已完成' else '未完成' end) as IsWanderAboutPassName,a.SiteImplementConfirmData,a.AddTime from TestRun_SubInspectTerm as a left join TestRun_WorkPackage as b on a.WorkPackId=b.WorkPackId left join Sys_User as c on c.UserId=a.Subcontractor left join Sys_User as d on d.UserId=a.Contractor left join Sys_User as e on e.UserId=a.Supervision left join Sys_User as f on f.UserId=a.Owner left join Base_Project as g on g.ProjectId=a.ProjectId where 1=1 and a.ProjectId=@projectid "; + + listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId)); + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0) + { + var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First(); + sqlStr += $"and a.WorkPackId=@workPackId "; + listStr.Add(new SqlParameter("@workPackId", workPackId)); + } + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1) + { + var systemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; + sqlStr += $"and a.systemId=@systemId "; + listStr.Add(new SqlParameter("@systemId", systemId)); + } + //是否确认实施完成 + if (!string.IsNullOrWhiteSpace(ddlIsSiteImplement.SelectedValue)) + { + sqlStr += $"and isnull(a.IsSiteImplement,0)=@isSiteImplement "; + listStr.Add(new SqlParameter("@isSiteImplement", ddlIsSiteImplement.SelectedValue)); + } + sqlStr += " order by a.SiteImplementConfirmData desc"; + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(sqlStr, parameter); + 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 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; + } + if (Grid1.DataKeys[Grid1.SelectedRowIndex][1] != null) + { + if (Grid1.DataKeys[Grid1.SelectedRowIndex][1].ToString() == "1") + { + Alert.ShowInTop("现场实施已完成,无法确认现场实施!", MessageBoxIcon.Warning); + return; + } + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SiteImplementation.aspx?SubInspectId={0}", Grid1.SelectedRowID, "现场实施 - "))); + } + + /// + /// 右击确认现场实施完成 + /// + protected void btnMenuConfirmation_Click(object sender, EventArgs e) + { + btnConfirmation_Click(null, null); + } + + /// + /// 关闭 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + + /// + /// 双击事件 + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + btnConfirmation_Click(null, null); + } + + /// + /// 查看 + /// + protected void btnView_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("SiteImplementation.aspx?SubInspectId={0}&IsView=true", Grid1.SelectedRowID, "现场实施 - "))); + } + + /// + /// 右击查看 + /// + protected void btnMenuView_Click(object sender, EventArgs e) + { + btnView_Click(null, null); + } + + #endregion + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx.designer.cs new file mode 100644 index 00000000..2943cd6e --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx.designer.cs @@ -0,0 +1,179 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + + + public partial class SiteImplementationList + { + + /// + /// 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; + + /// + /// ddlIsSiteImplement 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlIsSiteImplement; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + + /// + /// btnView 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnView; + + /// + /// 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; + + /// + /// btnMenuView 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuView; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx index c200447b..b0883f0b 100644 --- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx @@ -31,6 +31,7 @@ + <%----%> diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx.cs index 0d6b7152..cab1cbf4 100644 --- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx.cs @@ -285,7 +285,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage select a; if (defaultDatas.Count() > 0) { - var groups = defaultDatas.GroupBy(x => new { x.GroupName}); + var groups = defaultDatas.GroupBy(x => new { x.GroupName }); int firstnum = 1; foreach (var itemGroup in groups) { @@ -516,7 +516,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value("InspectedUser")) ? values.Value("InspectedUser") : string.Empty; model.WorkInspectName = values.Value("WorkInspectName"); //删除检查项检查人表 - var deleteTermUser = Funs.DB.TestRun_TermItemInspectedUser.Where(x => x.TermItemId == termItemId); + var deleteTermUser = Funs.DB.TestRun_TermItemInspectedUser.Where(x => x.TermItemId == termItemId && x.InspectionResults == null); if (deleteTermUser.Count() > 0) { Funs.DB.TestRun_TermItemInspectedUser.DeleteAllOnSubmit(deleteTermUser); @@ -528,19 +528,22 @@ namespace FineUIPro.Web.TestRun.TestRunManage var users = values.Value("InspectedUser").Split(','); foreach (var itemUser in users) { - var userModel = new TestRun_TermItemInspectedUser(); - userModel.ItemUserId = Guid.NewGuid().ToString(); - userModel.TermItemId = termItemId; - userModel.SubInspectId = subTrem.SubInspectId; - userModel.WorkPackId = workPackId; - userModel.GroupName = groupName; - userModel.ProjectId = this.CurrUser.LoginProjectId; - userModel.InspectedUser = itemUser; - userModel.AddUser = this.CurrUser.UserId; - userModel.AddTime = DateTime.Now; - userModel.Sort = usernum; - tremItemUsers.Add(userModel); - usernum++; + if (Funs.DB.TestRun_TermItemInspectedUser.Count(x => x.TermItemId == termItemId && x.InspectedUser == itemUser) == 0) + { + var userModel = new TestRun_TermItemInspectedUser(); + userModel.ItemUserId = Guid.NewGuid().ToString(); + userModel.TermItemId = termItemId; + userModel.SubInspectId = subTrem.SubInspectId; + userModel.WorkPackId = workPackId; + userModel.GroupName = groupName; + userModel.ProjectId = this.CurrUser.LoginProjectId; + userModel.InspectedUser = itemUser; + userModel.AddUser = this.CurrUser.UserId; + userModel.AddTime = DateTime.Now; + userModel.Sort = usernum; + tremItemUsers.Add(userModel); + usernum++; + } } } if (subTrems != null) Funs.DB.TestRun_SubInspectTerm.InsertAllOnSubmit(subTrems); diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubSysWorkPackage.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubSysWorkPackage.aspx.cs index 12a49217..859f4ec8 100644 --- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubSysWorkPackage.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubSysWorkPackage.aspx.cs @@ -4,6 +4,7 @@ using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; +using System.Text.RegularExpressions; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; @@ -218,22 +219,22 @@ namespace FineUIPro.Web.TestRun.TestRunManage if (!string.IsNullOrWhiteSpace(this.SystemId)) { var result = new List(); - var data = from a in Funs.DB.TestRun_WorkPackage.Where(p => workPackIds.Contains(p.WorkPackId)) - join b in Funs.DB.TestRun_SubSysWorkPackage.Where(p => p.SystemId == this.SystemId) on a.WorkPackId equals b.WorkPackId into bb - from t in bb.DefaultIfEmpty() - select new WorkData() - { - WorkPackId = a.WorkPackId, - WorkPackCode = t.WorkPackCode, - WorkPackName = a.WorkPackName, - SystemId = t.SystemId, - Sort = a.Sort, - Remark = t.Remark - }; - if (data.Count() > 0) + var queryData = from a in Funs.DB.TestRun_WorkPackage.Where(p => workPackIds.Contains(p.WorkPackId)) + join b in Funs.DB.TestRun_SubSysWorkPackage.Where(p => p.SystemId == this.SystemId) on a.WorkPackId equals b.WorkPackId into bb + from t in bb.DefaultIfEmpty() + select new WorkData() + { + WorkPackId = a.WorkPackId, + WorkPackCode = t.WorkPackCode, + WorkPackName = a.WorkPackName, + SystemId = t.SystemId, + Sort = a.Sort, + Remark = t.Remark + }; + if (queryData.Count() > 0) { int num = 1; - int i = 1; + var data = queryData.ToList(); foreach (var item in data.OrderBy(p => p.Sort)) { var model = new WorkData(); @@ -242,14 +243,13 @@ namespace FineUIPro.Web.TestRun.TestRunManage model.SystemId = item.SystemId; if (string.IsNullOrWhiteSpace(item.WorkPackCode)) { - var workpackages = Funs.DB.TestRun_SubSysWorkPackage.Where(p => p.SystemId == this.SystemId).ToList(); - if (workpackages.Count > 0) + var workpackages = data.Where(x => !string.IsNullOrWhiteSpace(x.WorkPackCode)).ToList(); + if (num == 1) { - num = workpackages.ConvertAll(x => int.Parse(x.WorkPackCode.Replace("WP", ""))).Max(m => m); + if (workpackages.Count > 0) num = workpackages.ConvertAll(x => int.Parse(x.WorkPackCode.Replace("WP", ""))).Max(m => m) + 1; } - num = num + i; model.WorkPackCode = $"WP{string.Format("{0:d3}", num)}"; - i++; + num++; } else { @@ -259,7 +259,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage model.Remark = item.Remark; result.Add(model); } - result = result.OrderBy(p => p.Sort).ToList(); + result = result.OrderBy(p => int.Parse(Regex.Replace(p.WorkPackCode, @"\D", ""))).ToList(); Grid1.DataSource = result; Grid1.DataBind(); } diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx index 078bd4cd..a56743f0 100644 --- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx @@ -31,11 +31,10 @@ - + - diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.cs index 121cad02..e4539201 100644 --- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.cs @@ -35,13 +35,74 @@ namespace FineUIPro.Web.TestRun.TestRunManage rootNode.EnableClickEvent = true; this.tvControlItem.Nodes.Add(rootNode); var userTermItems = from a in Funs.DB.TestRun_TermItemInspectedUser - join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId - where b.InspectedUser == this.CurrUser.UserId && a.ProjectId == this.CurrUser.LoginProjectId - select new { a, b }; + join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId + where a.InspectedUser == this.CurrUser.UserId && a.ProjectId == this.CurrUser.LoginProjectId + select new { a, b }; if (userTermItems.Count() == 0) return; var systemIds = userTermItems.Select(x => x.b.SystemId); var workPackIds = userTermItems.Select(x => x.b.WorkPackId); + var list = from a in Funs.DB.PreRun_SysDevice + join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId + join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId + where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId) + select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode }; + + if (list.Count() > 0) + { + var ids = list.Select(x => x.ProcessesId).ToList(); + ids.AddRange(list.Select(x => x.PreRunId).ToList()); + ids = ids.Distinct().ToList(); + var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList(); + if (syslist.Count > 0) + { + var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList(); + foreach (var itemOne in oneIds) + { + var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne); + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = itemOneModel.PreRunId; + rootOneNode.Text = itemOneModel.PreRunName; + rootOneNode.ToolTip = itemOneModel.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = false; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName }); + foreach (var itemTwo in subTwoList) + { + TreeNode rootTwoNode = new TreeNode(); + rootTwoNode.NodeID = itemTwo.Key.PreRunId; + rootTwoNode.Text = itemTwo.Key.PreRunName; + rootTwoNode.ToolTip = itemTwo.Key.PreRunName; + rootTwoNode.CommandName = ""; + rootTwoNode.EnableClickEvent = false; + rootTwoNode.EnableExpandEvent = false; + rootOneNode.Nodes.Add(rootTwoNode); + rootTwoNode.Expanded = true; + var worklist = list.Where(a => a.PreRunId == itemTwo.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 + "|" + itemTwo.Key.PreRunId; + newNode.ToolTip = itemWork.Key.WorkPackName; + newNode.CommandName = ""; + newNode.Expanded = true; + newNode.EnableClickEvent = true; + newNode.EnableExpandEvent = true; + rootTwoNode.Nodes.Add(newNode); + } + } + } + } + } + + + } } /// @@ -62,29 +123,21 @@ namespace FineUIPro.Web.TestRun.TestRunManage public void BindGrid(bool istail = false) { var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First(); - var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1]; - var subInspectId = string.Empty; - if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2) - { - subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last(); - lblCodeStr.Text = this.tvControlItem.SelectedNode.ToolTip; - } - else - { - lblCodeStr.Text = string.Empty; - } - //获取子系统 - var data = from termitem in Funs.DB.PreRun_SubInspectTermItem - join b in Funs.DB.PreRun_InspectTailTerm on termitem.TermItemId equals b.TermItemId into t + var subSystemId = this.tvControlItem.SelectedNodeID.Split('|').Last(); + + var data = from termuser in Funs.DB.TestRun_TermItemInspectedUser + join termitem in Funs.DB.TestRun_SubInspectTermItem on termuser.TermItemId equals termitem.TermItemId + join b in Funs.DB.TestRun_InspectTailTerm.Where(x => x.InspectUser == this.CurrUser.UserId) on termitem.TermItemId equals b.TermItemId into t from tail in t.DefaultIfEmpty() - where termitem.SubInspectId == subInspectId - && termitem.InspectedUser == this.CurrUser.UserId - group termitem by new { termitem.TermItemId, termitem.SubItemId, termitem.SubInspectId, termitem.WorkPackId, termitem.ProjectId, termitem.WorkInspectId, termitem.WorkInspectName, termitem.InstallationId, termitem.ProcessesId, termitem.SystemId, termitem.SubSystemId, termitem.InspectedUser, termitem.InspectionResults, termitem.InspectionIllustrate, termitem.Subcontractor, termitem.Contractor, termitem.Supervision, termitem.Owner, termitem.SubcontractorIsPass, termitem.ContractorIsPass, termitem.SupervisionIsPass, termitem.OwnerIsPass, termitem.SubcontractorRemark, termitem.ContractorRemark, termitem.SupervisionRemark, termitem.OwnerRemark, termitem.WorkPackType, termitem.PropertyTechnologyId, termitem.Remark, termitem.AddUser, termitem.AddTime, termitem.Sort, IsTailTerm = tail.TailTermId == null ? 0 : 1 } into gt + where termitem.WorkPackId == workPackId + && termitem.SystemId == subSystemId + && termuser.InspectedUser == this.CurrUser.UserId + group new { termitem.TermItemId, termitem.SubInspectId, termitem.WorkPackId, termitem.ProjectId, termitem.WorkInspectId, termitem.WorkInspectName, termitem.InstallationId, termitem.ProcessesId, termitem.SystemId, termitem.InspectedUser, termuser.InspectionResults, termuser.InspectionIllustrate, termitem.Subcontractor, termitem.Contractor, termitem.Supervision, termitem.Owner, termitem.SubcontractorIsPass, termitem.ContractorIsPass, termitem.SupervisionIsPass, termitem.OwnerIsPass, termitem.SubcontractorRemark, termitem.ContractorRemark, termitem.SupervisionRemark, termitem.OwnerRemark, termitem.Remark, termitem.AddUser, termitem.AddTime, termitem.Sort, IsTailTerm = tail.TailTermId == null ? 0 : 1 } + by new { termitem.TermItemId, termitem.SubInspectId, termitem.WorkPackId, termitem.ProjectId, termitem.WorkInspectId, termitem.WorkInspectName, termitem.InstallationId, termitem.ProcessesId, termitem.SystemId, termitem.InspectedUser, termuser.InspectionResults, termuser.InspectionIllustrate, termitem.Subcontractor, termitem.Contractor, termitem.Supervision, termitem.Owner, termitem.SubcontractorIsPass, termitem.ContractorIsPass, termitem.SupervisionIsPass, termitem.OwnerIsPass, termitem.SubcontractorRemark, termitem.ContractorRemark, termitem.SupervisionRemark, termitem.OwnerRemark, termitem.Remark, termitem.AddUser, termitem.AddTime, termitem.Sort, IsTailTerm = tail.TailTermId == null ? 0 : 1 } into gt orderby gt.Key.Sort select new TermItemBridDto() { TermItemId = gt.Key.TermItemId, - SubItemId = gt.Key.SubItemId, SubInspectId = gt.Key.SubInspectId, WorkPackId = gt.Key.WorkPackId, ProjectId = gt.Key.ProjectId, @@ -93,7 +146,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage InstallationId = gt.Key.InstallationId, ProcessesId = gt.Key.ProcessesId, SystemId = gt.Key.SystemId, - SubSystemId = gt.Key.SubSystemId, InspectedUser = gt.Key.InspectedUser, InspectionResults = gt.Key.InspectionResults, InspectionIllustrate = gt.Key.InspectionIllustrate, @@ -109,8 +161,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage ContractorRemark = gt.Key.ContractorRemark, SupervisionRemark = gt.Key.SupervisionRemark, OwnerRemark = gt.Key.OwnerRemark, - WorkPackType = gt.Key.WorkPackType, - PropertyTechnologyId = gt.Key.PropertyTechnologyId, Remark = gt.Key.Remark, AddUser = gt.Key.AddUser, AddTime = gt.Key.AddTime, @@ -118,7 +168,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage IsTailTerm = gt.Key.IsTailTerm }; var list = data.ToList(); - //list = list.OrderBy(o => o.Sort).ToList(); if (istail) { JArray mergedData = Grid1.GetMergedData(); @@ -158,8 +207,8 @@ namespace FineUIPro.Web.TestRun.TestRunManage { try { - var subInspectId = this.Grid1.Rows[0].DataKeys[3].ToString(); - if (Funs.DB.PreRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && (x.SubcontractorIsPass != null || x.ContractorIsPass != null || x.SupervisionIsPass != null || x.OwnerIsPass != null)) > 0) + var subInspectId = this.Grid1.Rows[0].DataKeys[2].ToString(); + if (Funs.DB.TestRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && (x.SubcontractorIsPass != null || x.ContractorIsPass != null || x.SupervisionIsPass != null || x.OwnerIsPass != null)) > 0) { ShowNotify("已进入检查表流转,无法修改检查结果!", MessageBoxIcon.Warning); return; @@ -170,10 +219,10 @@ namespace FineUIPro.Web.TestRun.TestRunManage 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 termItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); if (values.Value("InspectionResults") == "0") { - if (Funs.DB.PreRun_InspectTailTerm.Count(x => x.TermItemId == subItemId) == 0) + if (Funs.DB.TestRun_InspectTailTerm.Count(x => x.TermItemId == termItemId) == 0) { ShowNotify("未通过的检查项请填写尾项!", MessageBoxIcon.Warning); return; @@ -185,9 +234,9 @@ namespace FineUIPro.Web.TestRun.TestRunManage 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 termItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); //获取子系统信息 - var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == subItemId); + var model = Funs.DB.TestRun_TermItemInspectedUser.FirstOrDefault(x => x.TermItemId == termItemId && x.InspectedUser == this.CurrUser.UserId); if (model != null) { model.InspectionIllustrate = !string.IsNullOrWhiteSpace(values.Value("InspectionIllustrate")) ? values.Value("InspectionIllustrate") : string.Empty; @@ -195,13 +244,27 @@ namespace FineUIPro.Web.TestRun.TestRunManage { model.InspectionResults = int.Parse(values.Value("InspectionResults")); } + //检查项表 + var subItemModel = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == model.TermItemId); + if (subItemModel != null) + { + if (Funs.DB.TestRun_TermItemInspectedUser.Count(x => x.InspectionResults.GetValueOrDefault() != 1 && x.TermItemId == model.TermItemId && x.InspectedUser != model.InspectedUser) == 0 && model.InspectionResults == 1) + { + subItemModel.AllUserInspectionPass = 1; + } + else + { + subItemModel.AllUserInspectionPass = 0; + } + } Funs.DB.SubmitChanges(); } } + //检查表 var subModel = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId); if (subModel != null) { - if (Funs.DB.PreRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.InspectionResults.GetValueOrDefault() != 1) == 0) + if (Funs.DB.TestRun_TermItemInspectedUser.Count(x => x.SubInspectId == subInspectId && x.InspectionResults.GetValueOrDefault() != 1) == 0) { subModel.InspectionIsAllPass = 1; } @@ -210,6 +273,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage subModel.InspectionIsAllPass = 0; } } + Funs.DB.SubmitChanges(); BindGrid(); ShowNotify("保存成功!"); @@ -222,29 +286,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage #endregion - /// - /// 子系统选择的管道/设备 - /// - public class SelectPropertyTechnology - { - /// - /// 主键 - /// - public string Id { get; set; } - /// - /// 编码 - /// - public string Code { get; set; } - /// - /// 工作包主键 - /// - public string WorkPackId { get; set; } - /// - /// 子系统主键 - /// - public string SubSystemId { get; set; } - } - /// /// 尾项数据绑定实体 /// @@ -291,10 +332,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage /// public string SystemId { get; set; } /// - /// 子系统主键 - /// - public string SubSystemId { get; set; } - /// /// 检查人主键 /// public string InspectedUser { get; set; } @@ -355,14 +392,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage ///
public string OwnerRemark { get; set; } /// - /// 类型0=全部1=管道2=设备 - /// - public int? WorkPackType { get; set; } - /// - /// 管道或工艺设备主键 - /// - public string PropertyTechnologyId { get; set; } - /// /// 备注 /// public string Remark { get; set; } @@ -384,52 +413,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage public int IsTailTerm { get; set; } } - /// - /// 已生成检查表的管道/设备 - /// - 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; - } - /// /// 行内按钮事件 /// @@ -439,7 +422,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage if (e.CommandName == "TailTerm") { var termItemId = Grid1.DataKeys[e.RowIndex][0].ToString(); - var inspectionResults = Grid1.DataKeys[e.RowIndex][2] != null ? int.Parse(Grid1.DataKeys[e.RowIndex][2].ToString()) : -1; + var inspectionResults = Grid1.DataKeys[e.RowIndex][1] != null ? int.Parse(Grid1.DataKeys[e.RowIndex][1].ToString()) : -1; if (inspectionResults == 0) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId={0}&TermItemId={1}", "", termItemId, "新增 - "))); @@ -462,10 +445,10 @@ namespace FineUIPro.Web.TestRun.TestRunManage if (e.CommandName == "TailTermUpdate") { var termItemId = Grid1.DataKeys[e.RowIndex][0].ToString(); - var inspectionResults = Grid1.DataKeys[e.RowIndex][2] != null ? int.Parse(Grid1.DataKeys[e.RowIndex][2].ToString()) : -1; + var inspectionResults = Grid1.DataKeys[e.RowIndex][1] != null ? int.Parse(Grid1.DataKeys[e.RowIndex][1].ToString()) : -1; if (inspectionResults == 0) { - var tails = Funs.DB.PreRun_InspectTailTerm.Where(x => x.TermItemId == termItemId).ToList(); + var tails = Funs.DB.TestRun_InspectTailTerm.Where(x => x.TermItemId == termItemId && x.InspectUser == this.CurrUser.UserId).ToList(); if (tails.Count > 0) { if (tails.Count(x => x.ApproveState == 0) == 0) @@ -509,7 +492,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage /// protected void Grid1_RowDataBound(object sender, GridRowEventArgs e) { - var isTailTerm = Grid1.DataKeys[e.RowIndex][4].ToString(); + var isTailTerm = Grid1.DataKeys[e.RowIndex][3].ToString(); LinkButtonField TailTermUpdate = Grid1.FindColumn("TailTermUpdate") as LinkButtonField; if (isTailTerm == "0") { @@ -526,7 +509,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage { if (!string.IsNullOrWhiteSpace(hidTailTermId.Text)) { - var model = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == hidTailTermId.Text); + var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == hidTailTermId.Text); if (model != null) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId={0}&TermItemId={1}", hidTailTermId.Text, model.TermItemId, "编辑 - "))); diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.designer.cs index 2eb6f329..5257d4e1 100644 --- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.designer.cs @@ -77,15 +77,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage /// protected global::FineUIPro.Toolbar Toolbar1; - /// - /// lblCodeStr 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Label lblCodeStr; - /// /// ToolbarFill 控件。 /// diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx new file mode 100644 index 00000000..cd8da27d --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx @@ -0,0 +1,153 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TailTermApprove.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.TailTermApprove" %> + + + + + + 质量巡检 + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx.cs new file mode 100644 index 00000000..0ccc14c5 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx.cs @@ -0,0 +1,246 @@ +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.TestRunManage +{ + public partial class TailTermApprove : PageBase + { + /// + /// 主键 + /// + public string TailTermId + { + get { return (string)ViewState["TailTermId"]; } + set { ViewState["TailTermId"] = value; } + } + + /// + /// 问题图片是否可编辑 + /// + public int QuestionEditImg + { + get { return (int)ViewState["QuestionEditImg"]; } + set { ViewState["QuestionEditImg"] = value; } + } + + /// + /// 整改图片是否可编辑 + /// + public int RectifyEditImg + { + get { return (int)ViewState["RectifyEditImg"]; } + set { ViewState["RectifyEditImg"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.TailTermId = Request["TailTermId"]; + this.QuestionEditImg = -1; + this.RectifyEditImg = -1; + //数据绑定 + PageInit(); + //处理意见绑定 + gvHandleBrid(); + } + } + + /// + /// 绑定数据 + /// + public void PageInit() + { + var data = from tail in Funs.DB.TestRun_InspectTailTerm + join unit in Funs.DB.Base_Unit on tail.ConstructionUnit equals unit.UnitId + join inspuser in Funs.DB.Sys_User on tail.InspectUser equals inspuser.UserId + join approuser in Funs.DB.Sys_User on tail.ApproveUser equals approuser.UserId + join termitem in Funs.DB.TestRun_SubInspectTermItem on tail.TermItemId equals termitem.TermItemId + where tail.TailTermId == this.TailTermId + select new + { + tail.ProjectName, + tail.TailTermCode, + unit.UnitName, + TermItemName = termitem.WorkInspectName, + tail.SubInspectId, + tail.QuestionDesc, + tail.RectifyOpinion, + tail.RectifyTime, + tail.InspectUser, + InspectUserName = inspuser.UserName, + tail.ApproveUser, + ApproveUserName = approuser.UserName, + tail.AdjustCompleteTime + }; + if (data.Count() > 0) + { + var model = data.FirstOrDefault(); + //项目名称 + lblProjectName.Text = model.ProjectName; + //巡检编号 + lblTailTermCode.Text = model.TailTermCode; + //施工单位 + lblConstructionUnit.Text = model.UnitName; + //检查项 + lblTermItemName.Text = model.TermItemName; + //问题描述 + lblQuestionDesc.Text = model.QuestionDesc; + //整改意见 + lblRectifyOpinion.Text = model.RectifyOpinion; + //要求整改完成时间 + lblAdjustCompleteTime.Text = model.AdjustCompleteTime != null ? model.AdjustCompleteTime.Value.ToString("yyyy-MM-dd hh:mm:ss") : string.Empty; + //检查人 + lblInspectUser.Text = model.InspectUserName; + //审核人 + lblApproveUser.Text = model.ApproveUserName; + hidApproveUserId.Text = model.ApproveUser; + //审核时间 + lblApproveTime.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); + } + } + + /// + /// 处理意见绑定 + /// + public void gvHandleBrid() + { + string strSql = @"select a.InspectTermId,a.ApproveOpinion,a.ApproveTime,a.ApproveType,a.ApproveState,(case a.ApproveState when 0 then '处理退回' when 1 then '处理完成' else '' end) as ApproveStateName,b.ConstructionUnit,d.UnitName as ConstructionUnitName,a.AddUser,a.AddTime from TestRun_InspectTermApproveRecords as a inner join TestRun_InspectTailTerm as b on a.TailTermId=b.TailTermId inner join TestRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Unit as d on d.UnitId=b.ConstructionUnit where 1=1 and a.ApproveType=0 and a.ProjectId=@ProjectId and a.TailTermId=@TailTermId "; + List listStr = new List(); + listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@TailTermId", this.TailTermId)); + strSql += " order by a.AddTime asc"; + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + gvHandle.DataSource = tb; + gvHandle.DataBind(); + } + + /// + /// 问题图片 + /// + protected void imgBtnQuestionFile_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", QuestionEditImg, this.TailTermId + "q", Const.InspectTailTerm))); + } + + /// + /// 整改图片 + /// + protected void imgBtnRectifyFile_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", RectifyEditImg, this.TailTermId + "h", Const.InspectTailTerm))); + } + + /// + /// 退回 + /// + protected void btnReturn_Click(object sender, EventArgs e) + { + var tailTerm = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); + if (tailTerm != null) + { + tailTerm.ApproveState = 3; + var model = new TestRun_InspectTermApproveRecords(); + model.InspectTermId = Guid.NewGuid().ToString(); + model.ProjectId = this.CurrUser.LoginProjectId; + model.TermItemId = tailTerm.TermItemId; + model.TailTermId = this.TailTermId; + model.ApproveOpinion = txtApproveOpinion.Text; + model.ApproveTime = DateTime.Parse(lblApproveTime.Text); + model.ApproveUser = hidApproveUserId.Text; + //0:处理记录1:审核记录 + model.ApproveType = 1; + //0:退回1:通过 + model.ApproveState = 0; + model.AddUser = this.CurrUser.UserId; + model.AddTime = DateTime.Now; + Funs.DB.TestRun_InspectTermApproveRecords.InsertOnSubmit(model); + Funs.DB.SubmitChanges(); + ShowNotify("退回成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + } + + /// + /// 通过 + /// + protected void btnPass_Click(object sender, EventArgs e) + { + var tailTerm = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); + if (tailTerm != null) + { + //获取审核项 + if (Funs.DB.TestRun_InspectTailTerm.Count(x => x.TermItemId == tailTerm.TermItemId && x.ApproveState != 5 && x.TailTermId != this.TailTermId && x.InspectUser == tailTerm.InspectUser) == 0) + { + var termItemModel = Funs.DB.TestRun_TermItemInspectedUser.FirstOrDefault(x => x.TermItemId == tailTerm.TermItemId && x.InspectedUser == tailTerm.InspectUser); + if (termItemModel != null) + { + termItemModel.InspectionResults = 1; + //检查表 + var subModel = Funs.DB.TestRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == termItemModel.SubInspectId); + if (subModel != null) + { + if (Funs.DB.TestRun_TermItemInspectedUser.Count(x => x.SubInspectId == termItemModel.SubInspectId && x.InspectionResults.GetValueOrDefault() != 1 && x.TermItemId != termItemModel.TermItemId) == 0) + { + subModel.InspectionIsAllPass = 1; + } + else + { + subModel.InspectionIsAllPass = 0; + } + } + //检查项表 + var subItemModel = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemModel.TermItemId); + if (subItemModel != null) + { + if (Funs.DB.TestRun_TermItemInspectedUser.Count(x => x.InspectionResults.GetValueOrDefault() != 1 && x.TermItemId == termItemModel.TermItemId && x.InspectedUser != tailTerm.InspectUser) == 0) + { + subItemModel.AllUserInspectionPass = 1; + } + else + { + subItemModel.AllUserInspectionPass = 0; + } + } + } + } + tailTerm.ApproveState = 5; + var model = new TestRun_InspectTermApproveRecords(); + model.InspectTermId = Guid.NewGuid().ToString(); + model.ProjectId = this.CurrUser.LoginProjectId; + model.TermItemId = tailTerm.TermItemId; + model.TailTermId = this.TailTermId; + model.ApproveOpinion = txtApproveOpinion.Text; + model.ApproveTime = DateTime.Parse(lblApproveTime.Text); + model.ApproveUser = hidApproveUserId.Text; + //0:处理记录1:审核记录 + model.ApproveType = 1; + //0:退回1:通过 + model.ApproveState = 1; + model.AddUser = this.CurrUser.UserId; + model.AddTime = DateTime.Now; + Funs.DB.TestRun_InspectTermApproveRecords.InsertOnSubmit(model); + Funs.DB.SubmitChanges(); + ShowNotify("审核成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + } + + /// + /// 关闭 + /// + protected void WindowAtt_Close(object sender, WindowCloseEventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx.designer.cs new file mode 100644 index 00000000..3bf23a18 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx.designer.cs @@ -0,0 +1,278 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + + + public partial class TailTermApprove + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// ContentPanel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel1; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form2; + + /// + /// lblProjectName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProjectName; + + /// + /// lblTailTermCode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblTailTermCode; + + /// + /// lblConstructionUnit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblConstructionUnit; + + /// + /// lblTermItemName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblTermItemName; + + /// + /// lblQuestionDesc 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblQuestionDesc; + + /// + /// lblRectifyOpinion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblRectifyOpinion; + + /// + /// lblInspectUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblInspectUser; + + /// + /// lblAdjustCompleteTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblAdjustCompleteTime; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// imgBtnQuestionFile 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button imgBtnQuestionFile; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel2; + + /// + /// lblAttach 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblAttach; + + /// + /// imgBtnRectifyFile 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button imgBtnRectifyFile; + + /// + /// plApprove2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FormRow plApprove2; + + /// + /// gvHandle 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid gvHandle; + + /// + /// lblApproveUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblApproveUser; + + /// + /// hidApproveUserId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hidApproveUserId; + + /// + /// lblApproveTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblApproveTime; + + /// + /// txtApproveOpinion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtApproveOpinion; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnReturn 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnReturn; + + /// + /// btnPass 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnPass; + + /// + /// WindowAtt 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowAtt; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx new file mode 100644 index 00000000..e71c3957 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx @@ -0,0 +1,146 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TailTermApproveList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.TailTermApproveList" %> + + + + + + + + + 质量巡检审核 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx.cs new file mode 100644 index 00000000..efc384b9 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx.cs @@ -0,0 +1,243 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + public partial class TailTermApproveList : 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 userSubInspects = from a in Funs.DB.TestRun_TermItemInspectedUser + join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId + join c in Funs.DB.TestRun_InspectTailTerm on a.TermItemId equals c.TermItemId + where c.ApproveUser == this.CurrUser.UserId && a.ProjectId == this.CurrUser.LoginProjectId && c.ApproveState >= 3 + select new { a, b }; + if (userSubInspects.Count() == 0) return; + var systemIds = userSubInspects.Select(x => x.b.SystemId); + var workPackIds = userSubInspects.Select(x => x.b.WorkPackId); + var list = from a in Funs.DB.PreRun_SysDevice + join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId + join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId + where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId) + select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode }; + if (list.Count() > 0) + { + var ids = list.Select(x => x.ProcessesId).ToList(); + ids.AddRange(list.Select(x => x.PreRunId).ToList()); + ids = ids.Distinct().ToList(); + var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList(); + if (syslist.Count > 0) + { + var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList(); + foreach (var itemOne in oneIds) + { + var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne); + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = itemOneModel.PreRunId; + rootOneNode.Text = itemOneModel.PreRunName; + rootOneNode.ToolTip = itemOneModel.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = false; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName }); + foreach (var itemTwo in subTwoList) + { + TreeNode rootTwoNode = new TreeNode(); + rootTwoNode.NodeID = itemTwo.Key.PreRunId; + rootTwoNode.Text = itemTwo.Key.PreRunName; + rootTwoNode.ToolTip = itemTwo.Key.PreRunName; + rootTwoNode.CommandName = ""; + rootTwoNode.EnableClickEvent = false; + rootTwoNode.EnableExpandEvent = false; + rootOneNode.Nodes.Add(rootTwoNode); + rootTwoNode.Expanded = true; + var worklist = list.Where(a => a.PreRunId == itemTwo.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 + "|" + itemTwo.Key.PreRunId; + newNode.ToolTip = itemWork.Key.WorkPackName; + newNode.CommandName = ""; + newNode.Expanded = true; + newNode.EnableClickEvent = true; + newNode.EnableExpandEvent = true; + rootTwoNode.Nodes.Add(newNode); + } + } + } + } + } + } + } + + /// + /// 点击TreeView + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + this.BindGrid(); + } + + #endregion + + #region 绑定数据 + + /// + /// 数据绑定 + /// + public void BindGrid() + { + string strSql = @"select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,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.HandleUser,g.UserName as HandleUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交处理' when 1 then '待处理' when 2 then '处理退回' when 3 then '审核退回' when 4 then '待审核' when 5 then '审核通过' else '' end) as ApproveStateName,a.AddTime,a.WorkPackId,c.SystemId,a.AdjustCompleteTime,DATEDIFF(DAY, GETDATE(),a.AdjustCompleteTime) as AdjustDiffDay from TestRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join TestRun_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 inner join Sys_User as g on g.UserId=a.HandleUser where 1=1 and a.ProjectId=@projectid and a.ApproveUser=@ApproveUser and a.ApproveState>=3"; + List listStr = new List(); + listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@ApproveUser", this.CurrUser.UserId)); + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0) + { + var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First(); + strSql += " and a.WorkPackId=@WorkPackId"; + listStr.Add(new SqlParameter("@WorkPackId", workPackId)); + } + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1) + { + var systemId = this.tvControlItem.SelectedNodeID.Split('|').Last(); + strSql += " and c.SystemId=@SystemId"; + listStr.Add(new SqlParameter("@SystemId", systemId)); + } + //审核状态 + if (!string.IsNullOrWhiteSpace(ddlApproveState.SelectedValue)) + { + strSql += " and a.ApproveState=@ApproveState"; + listStr.Add(new SqlParameter("@ApproveState", ddlApproveState.SelectedValue)); + } + strSql += " order by a.AddTime asc"; + 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(); + } + + /// + /// 分页 + /// + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + Grid1.PageIndex = e.NewPageIndex; + BindGrid(); + } + + /// + /// 双击事件 + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + btnMenuApprove_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 Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + + /// + /// 审核 + /// + protected void btnReview_Click(object sender, EventArgs e) + { + btnMenuApprove_Click(null, null); + } + + /// + /// 审核 + /// + protected void btnMenuApprove_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); + if (model != null) + { + if (model.ApproveState != 4) + { + Alert.ShowInTop("只可审核“待审核”的记录!", MessageBoxIcon.Warning); + return; + } + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TailTermApprove.aspx?TailTermId={0}", Grid1.SelectedRowID, "审核 - "))); + } + + /// + /// 搜索 + /// + protected void btnQuery_Click(object sender, EventArgs e) + { + BindGrid(); + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx.designer.cs new file mode 100644 index 00000000..e6b7e43b --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx.designer.cs @@ -0,0 +1,161 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + + + public partial class TailTermApproveList + { + + /// + /// 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; + + /// + /// ddlApproveState 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlApproveState; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + + /// + /// btnReview 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnReview; + + /// + /// 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; + + /// + /// btnMenuApprove 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuApprove; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx new file mode 100644 index 00000000..bf241230 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx @@ -0,0 +1,131 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TailTermHandle.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.TailTermHandle" %> + + + + + + 质量巡检 + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx.cs new file mode 100644 index 00000000..487522f3 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx.cs @@ -0,0 +1,191 @@ +using BLL; +using Model; +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.TestRunManage +{ + public partial class TailTermHandle : PageBase + { + /// + /// 主键 + /// + public string TailTermId + { + get { return (string)ViewState["TailTermId"]; } + set { ViewState["TailTermId"] = value; } + } + + /// + /// 问题图片是否可编辑 + /// + public int QuestionEditImg + { + get { return (int)ViewState["QuestionEditImg"]; } + set { ViewState["QuestionEditImg"] = value; } + } + + /// + /// 整改图片是否可编辑 + /// + public int RectifyEditImg + { + get { return (int)ViewState["RectifyEditImg"]; } + set { ViewState["RectifyEditImg"] = value; } + } + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.TailTermId = Request["TailTermId"]; + this.QuestionEditImg = -1; + this.RectifyEditImg = 0; + //数据绑定 + PageInit(); + } + } + + /// + /// 绑定数据 + /// + public void PageInit() + { + var data = from tail in Funs.DB.TestRun_InspectTailTerm + join unit in Funs.DB.Base_Unit on tail.ConstructionUnit equals unit.UnitId + join inspuser in Funs.DB.Sys_User on tail.InspectUser equals inspuser.UserId + join handleuser in Funs.DB.Sys_User on tail.HandleUser equals handleuser.UserId + join termitem in Funs.DB.TestRun_SubInspectTermItem on tail.TermItemId equals termitem.TermItemId + where tail.TailTermId == this.TailTermId + select new + { + tail.ProjectName, + tail.TailTermCode, + unit.UnitName, + TermItemName = termitem.WorkInspectName, + tail.SubInspectId, + tail.QuestionDesc, + tail.RectifyOpinion, + tail.RectifyTime, + tail.InspectUser, + InspectUserName = inspuser.UserName, + tail.HandleUser, + HandleUserName = handleuser.UserName, + tail.AdjustCompleteTime + }; + if (data.Count() > 0) + { + var model = data.FirstOrDefault(); + //项目名称 + lblProjectName.Text = model.ProjectName; + //巡检编号 + lblTailTermCode.Text = model.TailTermCode; + //施工单位 + lblConstructionUnit.Text = model.UnitName; + //检查项 + lblTermItemName.Text = model.TermItemName; + //问题描述 + lblQuestionDesc.Text = model.QuestionDesc; + //整改意见 + lblRectifyOpinion.Text = model.RectifyOpinion; + //要求整改完成时间 + lblAdjustCompleteTime.Text = model.AdjustCompleteTime != null ? model.AdjustCompleteTime.Value.ToString("yyyy-MM-dd hh:mm:ss") : string.Empty; + //检查人 + lblInspectUser.Text = model.InspectUserName; + //处理人 + lblApproveUser.Text = model.HandleUserName; + hidApproveUserId.Text = model.HandleUser; + //处理时间 + lblApproveTime.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); + } + } + + /// + /// 问题图片 + /// + protected void imgBtnQuestionFile_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", QuestionEditImg, this.TailTermId + "q", Const.InspectTailTerm))); + } + + /// + /// 整改图片 + /// + protected void imgBtnRectifyFile_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", RectifyEditImg, this.TailTermId + "h", Const.InspectTailTerm))); + } + + /// + /// 处理退回 + /// + protected void btnReturn_Click(object sender, EventArgs e) + { + var tailTerm = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); + if (tailTerm != null) + { + tailTerm.ApproveState = 2; + var model = new TestRun_InspectTermApproveRecords(); + model.InspectTermId = Guid.NewGuid().ToString(); + model.ProjectId = this.CurrUser.LoginProjectId; + model.TermItemId = tailTerm.TermItemId; + model.TailTermId = this.TailTermId; + model.ApproveOpinion = txtApproveOpinion.Text; + model.ApproveTime = DateTime.Parse(lblApproveTime.Text); + model.ApproveUser = hidApproveUserId.Text; + //0:处理记录1:审核记录 + model.ApproveType = 0; + //0:退回1:通过 + model.ApproveState = 0; + model.AddUser = this.CurrUser.UserId; + model.AddTime = DateTime.Now; + Funs.DB.TestRun_InspectTermApproveRecords.InsertOnSubmit(model); + Funs.DB.SubmitChanges(); + ShowNotify("退回成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + } + + /// + /// 处理通过并提交审核 + /// + protected void btnPass_Click(object sender, EventArgs e) + { + var tailTerm = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); + if (tailTerm != null) + { + tailTerm.ApproveState = 4; + var model = new TestRun_InspectTermApproveRecords(); + model.InspectTermId = Guid.NewGuid().ToString(); + model.ProjectId = this.CurrUser.LoginProjectId; + model.TermItemId = tailTerm.TermItemId; + model.TailTermId = this.TailTermId; + model.ApproveOpinion = txtApproveOpinion.Text; + model.ApproveTime = DateTime.Parse(lblApproveTime.Text); + model.ApproveUser = hidApproveUserId.Text; + //0:处理记录1:审核记录 + model.ApproveType = 0; + //0:退回1:通过 + model.ApproveState = 1; + model.AddUser = this.CurrUser.UserId; + model.AddTime = DateTime.Now; + Funs.DB.TestRun_InspectTermApproveRecords.InsertOnSubmit(model); + Funs.DB.SubmitChanges(); + ShowNotify("处理成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + } + + /// + /// 关闭 + /// + protected void WindowAtt_Close(object sender, WindowCloseEventArgs e) + { + + } + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx.designer.cs new file mode 100644 index 00000000..dc2d0c87 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx.designer.cs @@ -0,0 +1,260 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + + + public partial class TailTermHandle + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// ContentPanel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel1; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form2; + + /// + /// lblProjectName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProjectName; + + /// + /// lblTailTermCode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblTailTermCode; + + /// + /// lblConstructionUnit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblConstructionUnit; + + /// + /// lblTermItemName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblTermItemName; + + /// + /// lblQuestionDesc 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblQuestionDesc; + + /// + /// lblRectifyOpinion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblRectifyOpinion; + + /// + /// lblInspectUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblInspectUser; + + /// + /// lblAdjustCompleteTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblAdjustCompleteTime; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// imgBtnQuestionFile 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button imgBtnQuestionFile; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel2; + + /// + /// lblAttach 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblAttach; + + /// + /// imgBtnRectifyFile 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button imgBtnRectifyFile; + + /// + /// lblApproveUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblApproveUser; + + /// + /// hidApproveUserId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hidApproveUserId; + + /// + /// lblApproveTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblApproveTime; + + /// + /// txtApproveOpinion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtApproveOpinion; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnReturn 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnReturn; + + /// + /// btnPass 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnPass; + + /// + /// WindowAtt 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowAtt; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx new file mode 100644 index 00000000..6fc243f8 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx @@ -0,0 +1,146 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TailTermHandleList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.TailTermHandleList" %> + + + + + + + + + 质量巡检处理确认 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx.cs new file mode 100644 index 00000000..ae1a6c68 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx.cs @@ -0,0 +1,244 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + public partial class TailTermHandleList : 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 userSubInspects = from a in Funs.DB.TestRun_TermItemInspectedUser + join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId + join c in Funs.DB.TestRun_InspectTailTerm on a.TermItemId equals c.TermItemId + where c.HandleUser == this.CurrUser.UserId && a.ProjectId == this.CurrUser.LoginProjectId && c.ApproveState >= 1 + select new { a, b }; + if (userSubInspects.Count() == 0) return; + var systemIds = userSubInspects.Select(x => x.b.SystemId); + var workPackIds = userSubInspects.Select(x => x.b.WorkPackId); + var list = from a in Funs.DB.PreRun_SysDevice + join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId + join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId + where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId) + select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode }; + if (list.Count() > 0) + { + var ids = list.Select(x => x.ProcessesId).ToList(); + ids.AddRange(list.Select(x => x.PreRunId).ToList()); + ids = ids.Distinct().ToList(); + var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList(); + if (syslist.Count > 0) + { + var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList(); + foreach (var itemOne in oneIds) + { + var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne); + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = itemOneModel.PreRunId; + rootOneNode.Text = itemOneModel.PreRunName; + rootOneNode.ToolTip = itemOneModel.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = false; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName }); + foreach (var itemTwo in subTwoList) + { + TreeNode rootTwoNode = new TreeNode(); + rootTwoNode.NodeID = itemTwo.Key.PreRunId; + rootTwoNode.Text = itemTwo.Key.PreRunName; + rootTwoNode.ToolTip = itemTwo.Key.PreRunName; + rootTwoNode.CommandName = ""; + rootTwoNode.EnableClickEvent = false; + rootTwoNode.EnableExpandEvent = false; + rootOneNode.Nodes.Add(rootTwoNode); + rootTwoNode.Expanded = true; + var worklist = list.Where(a => a.PreRunId == itemTwo.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 + "|" + itemTwo.Key.PreRunId; + newNode.ToolTip = itemWork.Key.WorkPackName; + newNode.CommandName = ""; + newNode.Expanded = true; + newNode.EnableClickEvent = true; + newNode.EnableExpandEvent = true; + rootTwoNode.Nodes.Add(newNode); + } + } + } + } + } + } + } + + /// + /// 点击TreeView + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + this.BindGrid(); + } + + #endregion + + #region 绑定数据 + + /// + /// 数据绑定 + /// + public void BindGrid() + { + string strSql = @"select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,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.HandleUser,g.UserName as HandleUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交处理' when 1 then '待处理' when 2 then '处理退回' when 3 then '审核退回' when 4 then '待审核' when 5 then '审核通过' else '' end) as ApproveStateName,a.AddTime,a.WorkPackId,c.SystemId,a.AdjustCompleteTime,DATEDIFF(DAY, GETDATE(),a.AdjustCompleteTime) as AdjustDiffDay from TestRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join TestRun_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 inner join Sys_User as g on g.UserId=a.HandleUser where 1=1 and a.ProjectId=@projectid and a.HandleUser=@HandleUser and a.ApproveState>=1"; + List listStr = new List(); + listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@HandleUser", this.CurrUser.UserId)); + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0) + { + var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First(); + strSql += " and a.WorkPackId=@WorkPackId"; + listStr.Add(new SqlParameter("@WorkPackId", workPackId)); + } + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1) + { + var systemId = this.tvControlItem.SelectedNodeID.Split('|').Last(); + strSql += " and c.SystemId=@SystemId"; + listStr.Add(new SqlParameter("@SystemId", systemId)); + } + //审核状态 + if (!string.IsNullOrWhiteSpace(ddlApproveState.SelectedValue)) + { + strSql += " and a.ApproveState=@ApproveState"; + listStr.Add(new SqlParameter("@ApproveState", ddlApproveState.SelectedValue)); + } + strSql += " order by a.AddTime asc"; + 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(); + } + + /// + /// 分页 + /// + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + Grid1.PageIndex = e.NewPageIndex; + BindGrid(); + } + + /// + /// 双击事件 + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + btnMenuApprove_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 Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + + /// + /// 处理 + /// + protected void btnReview_Click(object sender, EventArgs e) + { + btnMenuApprove_Click(null, null); + } + + /// + /// 处理 + /// + protected void btnMenuApprove_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + + var passLs = new List() { 1, 3 }; + var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); + if (model != null) + { + if (!passLs.Contains(model.ApproveState.Value)) + { + Alert.ShowInTop("只可处理“待处理”和“审核退回”的记录!", MessageBoxIcon.Warning); + return; + } + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TailTermHandle.aspx?TailTermId={0}", Grid1.SelectedRowID, "审核 - "))); + } + + /// + /// 搜索 + /// + protected void btnQuery_Click(object sender, EventArgs e) + { + BindGrid(); + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx.designer.cs new file mode 100644 index 00000000..3fc738bc --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx.designer.cs @@ -0,0 +1,161 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + + + public partial class TailTermHandleList + { + + /// + /// 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; + + /// + /// ddlApproveState 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlApproveState; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + + /// + /// btnReview 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnReview; + + /// + /// 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; + + /// + /// btnMenuApprove 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuApprove; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx new file mode 100644 index 00000000..63c0b06b --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx @@ -0,0 +1,163 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestRunRecordUpload.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.TestRunRecordUpload" %> + + + + + + 记录文件上传和任务单关闭 + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx.cs new file mode 100644 index 00000000..8eb5fff5 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx.cs @@ -0,0 +1,206 @@ +using BLL; +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.TestRunManage +{ + public partial class TestRunRecordUpload : PageBase + { + /// + /// 主键 + /// + public string SubInspectId + { + get { return (string)ViewState["SubInspectId"]; } + set { ViewState["SubInspectId"] = value; } + } + + /// + /// 是否查看 + /// + public bool IsView + { + get { return (bool)ViewState["IsView"]; } + set { ViewState["IsView"] = value; } + } + + /// + /// 实施附件查看 + /// + public int SiteImplement + { + get { return (int)ViewState["SiteImplement"]; } + set { ViewState["SiteImplement"] = value; } + } + + /// + /// 附件 + /// + public int RecordUpload + { + get { return (int)ViewState["RecordUpload"]; } + set { ViewState["RecordUpload"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.SubInspectId = Request["SubInspectId"]; + //是否查看 + this.IsView = string.IsNullOrWhiteSpace(Request["IsView"]) ? false : bool.Parse(Request["IsView"]); + //数据绑定 + PageInit(); + //判断是否查看 + if (IsView) + { + btnSubmit.Hidden = true; + SiteImplement = -1; + RecordUpload = -1; + } + } + } + + /// + /// 默认绑定 + /// + public void PageInit() + { + SiteImplement = -1; + RecordUpload = 0; + //获取检查表数据 + var data = from a in Funs.DB.TestRun_SubInspectTerm + join b in Funs.DB.TestRun_WorkPackage on a.WorkPackId equals b.WorkPackId + join c in Funs.DB.Sys_User on a.AddUser equals c.UserId + join d in Funs.DB.Sys_User on a.Subcontractor equals d.UserId + join e in Funs.DB.Sys_User on a.Contractor equals e.UserId + join f in Funs.DB.Sys_User on a.Supervision equals f.UserId + join g in Funs.DB.Sys_User on a.Owner equals g.UserId + join h in Funs.DB.Base_Project on a.ProjectId equals h.ProjectId + join i in Funs.DB.Sys_User on a.SiteImplementUser equals i.UserId + where a.SubInspectId == this.SubInspectId + select new + { + a.SubInspectId, + a.ProjectId, + h.ProjectCode, + h.ProjectName, + b.WorkPackName, + InspectUser = c.UserName, + InspectData = a.AddTime, + SubcontractorName = d.UserName, + ContractorName = e.UserName, + SupervisionName = f.UserName, + OwnerName = g.UserName, + a.RecordUploadData, + a.IsSiteImplement, + a.SiteImplementConfirmData, + SiteImplementName = i.UserName, + a.SiteImplementUser, + a.InspectIsClose, + a.InspectCloseData + }; + var inspectTermModel = data.FirstOrDefault(); + if (inspectTermModel != null) + { + lblProjectName.Text = inspectTermModel.ProjectName; + lblProjectCode.Text = inspectTermModel.ProjectCode; + lblWorkPackName.Text = inspectTermModel.WorkPackName; + lblInspectUser.Text = inspectTermModel.InspectUser; + lblInspectData.Text = inspectTermModel.InspectData != null ? inspectTermModel.InspectData.Value.ToString("yyyy-MM-dd") : string.Empty; + lblSubcontractorName.Text = inspectTermModel.SubcontractorName; + lblContractorName.Text = inspectTermModel.ContractorName; + lblSupervisionName.Text = inspectTermModel.SupervisionName; + lblOwnerName.Text = inspectTermModel.OwnerName; + lblSiteImplementName.Text = inspectTermModel.SiteImplementName; + lblSiteImplementConfirmData.Text = inspectTermModel.SiteImplementConfirmData != null ? inspectTermModel.SiteImplementConfirmData.Value.ToString("yyyy-MM-dd") : string.Empty; + rblInspectIsClose.SelectedValue = inspectTermModel.InspectIsClose != null ? inspectTermModel.InspectIsClose.ToString() : "0"; + lblInspectCloseData.Text = inspectTermModel.InspectCloseData != null ? inspectTermModel.InspectCloseData.Value.ToString("yyyy-MM-dd") : string.Empty; + } + //获取检查项数据 + var InspectTermItems = from a in Funs.DB.TestRun_SubInspectTermItem + join b in Funs.DB.TestRun_TermItemInspectedUser on a.TermItemId equals b.TermItemId + join c in Funs.DB.Sys_User on b.InspectedUser equals c.UserId + where a.SubInspectId == this.SubInspectId + orderby a.Sort ascending + select new + { + a.TermItemId, + a.WorkInspectName, + b.InspectedUser, + InspectedUserName = c.UserName, + b.InspectionResults, + InspectionResultsName = b.InspectionResults == 1 ? "通过" : "未通过", + b.InspectionIllustrate + }; + var itemDatas = InspectTermItems.ToList(); + gvTermItem.DataSource = itemDatas; + gvTermItem.DataBind(); + } + + #region 按钮 + + /// + /// 保存并提交 + /// + protected void btnSubmit_Click(object sender, EventArgs e) + { + var subModel = Funs.DB.TestRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == this.SubInspectId); + if (subModel != null) + { + subModel.InspectIsClose = int.Parse(rblInspectIsClose.SelectedValue); + if (!string.IsNullOrWhiteSpace(lblInspectCloseData.Text)) + { + subModel.InspectCloseData = DateTime.Parse(lblInspectCloseData.Text); + subModel.InspectIsCloseUser = this.CurrUser.UserId; + } + else + { + subModel.InspectCloseData = null; + subModel.InspectIsCloseUser = string.Empty; + } + } + Funs.DB.SubmitChanges(); + ShowNotify("操作成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + + /// + /// 现场实施是否完成 + /// + protected void rblInspectIsClose_SelectedIndexChanged(object sender, EventArgs e) + { + lblInspectCloseData.Text = rblInspectIsClose.SelectedValue == "1" ? DateTime.Now.ToString("yyyy-MM-dd") : string.Empty; + } + + /// + /// 试车记录上传 + /// + protected void btnRecordUpload_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", this.RecordUpload, this.SubInspectId + "_scjlsc", Const.InspectTailTerm))); + } + + /// + /// 现场实施记录查看 + /// + protected void btnSiteImplement_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", this.SiteImplement, this.SubInspectId + "_xcss", Const.InspectTailTerm))); + } + + /// + /// 关闭 + /// + protected void WindowAtt_Close(object sender, WindowCloseEventArgs e) + { + lblSiteImplementConfirmData.Text = Funs.DB.AttachFile.Count(x => x.ToKeyId == this.SubInspectId + "_scjlsc" && x.AttachUrl != null && x.AttachUrl != "") > 0 ? DateTime.Now.ToString("yyyy-MM-dd") : string.Empty; + } + + #endregion + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx.designer.cs new file mode 100644 index 00000000..804dc5eb --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx.designer.cs @@ -0,0 +1,278 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + + + public partial class TestRunRecordUpload + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// ContentPanel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel1; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form2; + + /// + /// lblProjectName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProjectName; + + /// + /// lblProjectCode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProjectCode; + + /// + /// lblInspectUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblInspectUser; + + /// + /// lblInspectData 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblInspectData; + + /// + /// lblSubcontractorName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblSubcontractorName; + + /// + /// lblContractorName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblContractorName; + + /// + /// lblSupervisionName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblSupervisionName; + + /// + /// lblOwnerName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblOwnerName; + + /// + /// lblSiteImplementName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblSiteImplementName; + + /// + /// lblSiteImplementConfirmData 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblSiteImplementConfirmData; + + /// + /// lblWorkPackName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblWorkPackName; + + /// + /// rblInspectIsClose 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.RadioButtonList rblInspectIsClose; + + /// + /// lblInspectCloseData 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblInspectCloseData; + + /// + /// xcssfj 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FormRow xcssfj; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// btnSiteImplement 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSiteImplement; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel2; + + /// + /// btnRecordUpload 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnRecordUpload; + + /// + /// plApprove2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FormRow plApprove2; + + /// + /// gvTermItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid gvTermItem; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnSubmit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSubmit; + + /// + /// WindowAtt 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowAtt; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx new file mode 100644 index 00000000..2fb83592 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx @@ -0,0 +1,152 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestRunRecordUploadList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.TestRunRecordUploadList" %> + + + + + + + + + 试车记录上传 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx.cs new file mode 100644 index 00000000..3f4a0daa --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx.cs @@ -0,0 +1,269 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + public partial class TestRunRecordUploadList : 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.TestRun_SubInspectTerm.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.InspectionIsAllPass == 1 && x.IsSiteImplement == 1).ToList(); + if (inspectTerms.Count == 0) return; + + var systemIds = inspectTerms.ConvertAll(x => x.SystemId); + var workPackIds = inspectTerms.ConvertAll(x => x.WorkPackId); + var list = from a in Funs.DB.PreRun_SysDevice + join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId + join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId + where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId) + select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode }; + if (list.Count() > 0) + { + var ids = list.Select(x => x.ProcessesId).ToList(); + ids.AddRange(list.Select(x => x.PreRunId).ToList()); + ids = ids.Distinct().ToList(); + var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList(); + if (syslist.Count > 0) + { + var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList(); + foreach (var itemOne in oneIds) + { + var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne); + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = itemOneModel.PreRunId; + rootOneNode.Text = itemOneModel.PreRunName; + rootOneNode.ToolTip = itemOneModel.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = false; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName }); + foreach (var itemTwo in subTwoList) + { + TreeNode rootTwoNode = new TreeNode(); + rootTwoNode.NodeID = itemTwo.Key.PreRunId; + rootTwoNode.Text = itemTwo.Key.PreRunName; + rootTwoNode.ToolTip = itemTwo.Key.PreRunName; + rootTwoNode.CommandName = ""; + rootTwoNode.EnableClickEvent = false; + rootTwoNode.EnableExpandEvent = false; + rootOneNode.Nodes.Add(rootTwoNode); + rootTwoNode.Expanded = true; + var worklist = list.Where(a => a.PreRunId == itemTwo.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 + "|" + itemTwo.Key.PreRunId; + newNode.ToolTip = itemWork.Key.WorkPackName; + newNode.CommandName = ""; + newNode.Expanded = true; + newNode.EnableClickEvent = true; + newNode.EnableExpandEvent = true; + rootTwoNode.Nodes.Add(newNode); + } + } + } + } + } + } + } + + /// + /// 树点击 + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + BindGrid(); + } + + #endregion + + #region 数据绑定 + + /// + /// 绑定数据 + /// + public void BindGrid() + { + List listStr = new List(); + string sqlStr = $"select a.SubInspectId,a.ProjectId,h.ProjectName,h.ProjectCode,a.WorkPackId,b.WorkPackName,a.SystemId,c.UserName as SubcontractorName,d.UserName as ContractorName,e.UserName as SupervisionName,f.UserName as OwnerName,a.SiteImplementConfirmData,g.UserName as SiteImplementUserName,a.InspectIsClose,(case a.InspectIsClose when 1 then '已关闭' else '未关闭' end) as InspectIsCloseName,a.InspectCloseData from TestRun_SubInspectTerm as a left join TestRun_WorkPackage as b on a.WorkPackId=b.WorkPackId left join Sys_User as c on c.UserId=a.Subcontractor left join Sys_User as d on d.UserId=a.Contractor left join Sys_User as e on e.UserId = a.Supervision left join Sys_User as f on f.UserId = a.Owner left join Sys_User as g on g.UserId = a.SiteImplementUser left join Base_Project as h on h.ProjectId = a.ProjectId where IsSiteImplement = 1 and a.ProjectId=@projectid "; + + listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId)); + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0) + { + var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First(); + sqlStr += $"and a.WorkPackId=@workPackId "; + listStr.Add(new SqlParameter("@workPackId", workPackId)); + } + if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1) + { + var subSystemId = this.tvControlItem.SelectedNodeID.Split('|').Last(); + sqlStr += $"and a.systemId=@systemId "; + listStr.Add(new SqlParameter("@systemId", subSystemId)); + } + //是否确认实施完成 + if (!string.IsNullOrWhiteSpace(ddlInspectIsClose.SelectedValue)) + { + sqlStr += $"and isnull(a.InspectIsClose,0)=@inspectIsClose "; + listStr.Add(new SqlParameter("@inspectIsClose", ddlInspectIsClose.SelectedValue)); + } + sqlStr += " order by a.InspectCloseData desc"; + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(sqlStr, parameter); + 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 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 btnUploadRecord_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; + } + if (Grid1.DataKeys[Grid1.SelectedRowIndex][1] != null) + { + if (Grid1.DataKeys[Grid1.SelectedRowIndex][1].ToString() == "1") + { + Alert.ShowInTop("任务单已关闭,无法上传记录文件和关闭任务单处理!", MessageBoxIcon.Warning); + return; + } + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TestRunRecordUpload.aspx?SubInspectId={0}", Grid1.SelectedRowID, "试车记录上传 - "))); + } + + /// + /// 右击上传记录文件 + /// + protected void btnMenuUploadRecord_Click(object sender, EventArgs e) + { + btnUploadRecord_Click(null, null); + } + + /// + /// 关闭 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + + /// + /// 双击事件 + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + btnUploadRecord_Click(null, null); + } + + /// + /// 查看 + /// + protected void btnView_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("TestRunRecordUpload.aspx?SubInspectId={0}&IsView=true", Grid1.SelectedRowID, "现场实施 - "))); + } + + /// + /// 右击查看 + /// + protected void btnMenuView_Click(object sender, EventArgs e) + { + btnView_Click(null, null); + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx.designer.cs new file mode 100644 index 00000000..76f0e4a9 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx.designer.cs @@ -0,0 +1,179 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.TestRunManage +{ + + + public partial class TestRunRecordUploadList + { + + /// + /// 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; + + /// + /// ddlInspectIsClose 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlInspectIsClose; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + + /// + /// btnView 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnView; + + /// + /// btnUploadRecord 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnUploadRecord; + + /// + /// 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; + + /// + /// btnMenuUploadRecord 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuUploadRecord; + + /// + /// btnMenuView 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuView; + } +} diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index c77eac42..b57b3694 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -355575,8 +355575,6 @@ namespace Model private System.Nullable _OwnerIsAllPass; - private string _PropertyTechnologyId; - private System.Nullable _SubcontractorAllPassData; private System.Nullable _ContractorAllPassData; @@ -355651,8 +355649,6 @@ namespace Model partial void OnSupervisionIsAllPassChanged(); partial void OnOwnerIsAllPassChanging(System.Nullable value); partial void OnOwnerIsAllPassChanged(); - partial void OnPropertyTechnologyIdChanging(string value); - partial void OnPropertyTechnologyIdChanged(); partial void OnSubcontractorAllPassDataChanging(System.Nullable value); partial void OnSubcontractorAllPassDataChanged(); partial void OnContractorAllPassDataChanging(System.Nullable value); @@ -356018,26 +356014,6 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PropertyTechnologyId", DbType="VarChar(MAX)", UpdateCheck=UpdateCheck.Never)] - public string PropertyTechnologyId - { - get - { - return this._PropertyTechnologyId; - } - set - { - if ((this._PropertyTechnologyId != value)) - { - this.OnPropertyTechnologyIdChanging(value); - this.SendPropertyChanging(); - this._PropertyTechnologyId = value; - this.SendPropertyChanged("PropertyTechnologyId"); - this.OnPropertyTechnologyIdChanged(); - } - } - } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SubcontractorAllPassData", DbType="DateTime")] public System.Nullable SubcontractorAllPassData {