From f49eba5e5fc44ddd74b14d4608187acacbcd0d88 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Wed, 20 Dec 2023 15:48:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataBase/版本日志/SGGLDB_WH_2023-12-12.sql | 382 +++ SGGL/BLL/Common/Const.cs | 8 + SGGL/BLL/Common/NPOIHelper.cs | 12 +- .../File/Excel/TestRun/三查四定检查表模板.xls | Bin 0 -> 31232 bytes .../File/Excel/TestRun/仪表索引模板.xlsx | Bin 0 -> 76067 bytes .../File/Excel/TestRun/管道一览表.xlsx | Bin 10166 -> 74341 bytes .../File/Excel/TestRun/设备一览表.xlsx | Bin 47764 -> 62348 bytes SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 67 +- .../FourDecisionOtherConfirm.aspx | 140 ++ .../FourDecisionOtherConfirm.aspx.cs | 301 +++ ...FourDecisionOtherConfirm.aspx.designer.cs} | 164 +- .../FourDecisionOtherConfirmEdit.aspx | 136 ++ .../FourDecisionOtherConfirmEdit.aspx.cs | 205 ++ ...rDecisionOtherConfirmEdit.aspx.designer.cs | 278 +++ .../FourDecisionResponsibilityConfirm.aspx | 139 ++ .../FourDecisionResponsibilityConfirm.aspx.cs | 298 +++ ...sionResponsibilityConfirm.aspx.designer.cs | 188 ++ ...FourDecisionResponsibilityConfirmEdit.aspx | 138 ++ ...rDecisionResponsibilityConfirmEdit.aspx.cs | 223 ++ ...ResponsibilityConfirmEdit.aspx.designer.cs | 287 +++ .../BeforeTestRun/InspectTailTermEdit.aspx | 9 - .../BeforeTestRun/InspectTemplate.aspx.cs | 2 +- .../InspectWanderAboutAllPassList.aspx.cs | 2 +- .../BeforeTestRun/SelectInstrument.aspx | 96 + .../BeforeTestRun/SelectInstrument.aspx.cs | 157 ++ .../SelectInstrument.aspx.designer.cs | 98 + .../TestRun/BeforeTestRun/SetWorkPackage.aspx | 1 + .../BeforeTestRun/SetWorkPackage.aspx.cs | 2 +- .../TestRun/BeforeTestRun/SubInspectTerm.aspx | 3 +- .../BeforeTestRun/SubInspectTerm.aspx.cs | 338 ++- .../BeforeTestRun/SubSysWorkPackage.aspx.cs | 2 +- .../SubThreeChecksFourDecisionEdit.aspx | 178 ++ .../SubThreeChecksFourDecisionEdit.aspx.cs | 326 +++ ...reeChecksFourDecisionEdit.aspx.designer.cs | 287 +++ .../SubThreeChecksFourDecisionList.aspx | 190 ++ .../SubThreeChecksFourDecisionList.aspx.cs | 815 +++++++ ...reeChecksFourDecisionList.aspx.designer.cs | 323 +++ .../BeforeTestRun/SysPipingDeviceImport.aspx | 210 +- .../SysPipingDeviceImport.aspx.cs | 895 +++++-- .../SysPipingDeviceImport.aspx.designer.cs | 266 +- .../BeforeTestRun/TestRunRecordUpload.aspx | 4 +- .../BeforeTestRun/TestRunRecordUpload.aspx.cs | 172 +- .../TestRunRecordUpload.aspx.designer.cs | 9 + .../TestRunRecordUploadList.aspx | 1 + .../TestRunRecordUploadList.aspx.cs | 20 +- .../TestRunManage/InspectTemplate.aspx.cs | 14 +- .../TestRunManage/InspectTemplateEdit.aspx | 51 +- .../TestRunManage/InspectTemplateEdit.aspx.cs | 37 +- .../InspectTemplateEdit.aspx.designer.cs | 27 +- .../TestRun/TestRunManage/SubInspectTerm.aspx | 3 +- .../TestRunManage/SubInspectTerm.aspx.cs | 162 +- .../TestRunManage/SubInspectTermEdit.aspx | 9 +- .../TestRunManage/SubInspectTermEdit.aspx.cs | 44 +- .../SubInspectTermEdit.aspx.designer.cs | 9 + .../TestRunManage/TemplateItemGroup.aspx | 150 -- .../TestRunManage/TemplateItemGroup.aspx.cs | 258 -- SGGL/Model/Model.cs | 2141 +++++++++++++++-- SGGL/WebAPI/Filter/TestPermissionAttribute.cs | 2 +- 58 files changed, 8868 insertions(+), 1411 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_WH_2023-12-12.sql create mode 100644 SGGL/FineUIPro.Web/File/Excel/TestRun/三查四定检查表模板.xls create mode 100644 SGGL/FineUIPro.Web/File/Excel/TestRun/仪表索引模板.xlsx create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirm.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirm.aspx.cs rename SGGL/FineUIPro.Web/TestRun/{TestRunManage/TemplateItemGroup.aspx.designer.cs => BeforeTestRun/FourDecisionOtherConfirm.aspx.designer.cs} (76%) create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirmEdit.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirmEdit.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirmEdit.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirm.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirm.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirm.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirmEdit.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirmEdit.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirmEdit.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectInstrument.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectInstrument.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectInstrument.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionEdit.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionEdit.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionEdit.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx.designer.cs delete mode 100644 SGGL/FineUIPro.Web/TestRun/TestRunManage/TemplateItemGroup.aspx delete mode 100644 SGGL/FineUIPro.Web/TestRun/TestRunManage/TemplateItemGroup.aspx.cs diff --git a/DataBase/版本日志/SGGLDB_WH_2023-12-12.sql b/DataBase/版本日志/SGGLDB_WH_2023-12-12.sql new file mode 100644 index 00000000..af1880be --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_2023-12-12.sql @@ -0,0 +1,382 @@ +--1:ɾҳ/TestRun/TestRunManage/TemplateItemGroup.aspx + +delete Sys_Menu where MenuId='AF2B0CAD-DE15-4F15-A5EE-C8FB558D00C8' +--==ԳģϢ +if object_id(N'TestRun_TemplateItemGroup',N'U') is not null +drop table dbo.TestRun_TemplateItemGroup + + +--==ԳģϢ +if object_id(N'TestRun_WorkInspectTemplate',N'U') is not null +drop table dbo.TestRun_WorkInspectTemplate +CREATE TABLE dbo.TestRun_WorkInspectTemplate( + WorkInspectId varchar(50) NOT NULL,-- + WorkPackId varchar(50) NULL,-- + WorkInspectName varchar(500) NULL,-- + Remark nvarchar(150) NULL,--ע + GroupName varchar(50) NULL,-- + AddUser varchar(50) NULL,-- + AddTime datetime NULL,-- + Sort int NULL,-- + CONSTRAINT PK_TestRun_WorkInspectTemplate PRIMARY KEY CLUSTERED +( + WorkInspectId 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 + +--==ģ +--¯ +delete TestRun_WorkInspectTemplate where WorkInspectId in ('7E6772DF-F6EB-40C2-9ADE-812261DA8FDA','983A255D-9566-41B8-A7E3-A6410CA7CE80','809B9BAD-DC27-4A10-A5D3-11E8E0FC2D03','6C512E87-4926-410E-91E9-64260841975C','BCFB2C79-8408-4D6B-818F-637AC09D5928','8089080E-194C-40EC-853A-6C54B7216640','915CFF7D-D674-4CCA-B714-039946A21F1A','4C31349D-73C8-46C0-BDFF-451FDD1B1A14','3DD4DA02-429C-484E-8B11-9DD9F4FF14F7','476504F5-0D98-4153-ADDC-07B92F1F8131','41F50C0D-7946-4476-A8CE-7873CDE9A895','8ACB5F52-CD6C-43D0-BAA6-38A45DC17E17') +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('7E6772DF-F6EB-40C2-9ADE-812261DA8FDA','1D6C3FD1-6462-4E2C-9828-5D1E718A5EB6','ˮϵͳѭϴϸ','','¯','',GETDATE(),1) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('983A255D-9566-41B8-A7E3-A6410CA7CE80','1D6C3FD1-6462-4E2C-9828-5D1E718A5EB6','ҩϵͳ߱','','¯','',GETDATE(),2) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('809B9BAD-DC27-4A10-A5D3-11E8E0FC2D03','1D6C3FD1-6462-4E2C-9828-5D1E718A5EB6','ҩƷHelamin׼λ','','¯','',GETDATE(),3) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('6C512E87-4926-410E-91E9-64260841975C','1D6C3FD1-6462-4E2C-9828-5D1E718A5EB6','¯ˮϵͳ߱','','¯','',GETDATE(),4) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('BCFB2C79-8408-4D6B-818F-637AC09D5928','1D6C3FD1-6462-4E2C-9828-5D1E718A5EB6','P-1301A/B/CԳϸܹͶˡ','','¯','',GETDATE(),5) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('8089080E-194C-40EC-853A-6C54B7216640','1D6C3FD1-6462-4E2C-9828-5D1E718A5EB6','¯ҪDCSDZ嵥ϣDCSá','','¯','',GETDATE(),6) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('915CFF7D-D674-4CCA-B714-039946A21F1A','1D6C3FD1-6462-4E2C-9828-5D1E718A5EB6','ܵɨϣ߱Ͷ','','¯','',GETDATE(),7) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('4C31349D-73C8-46C0-BDFF-451FDD1B1A14','1D6C3FD1-6462-4E2C-9828-5D1E718A5EB6','ѭˮˮDZܹ','','¯','',GETDATE(),8) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('3DD4DA02-429C-484E-8B11-9DD9F4FF14F7','1D6C3FD1-6462-4E2C-9828-5D1E718A5EB6','¯ԱѾѵϣԱŵλ','','¯','',GETDATE(),9) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('476504F5-0D98-4153-ADDC-07B92F1F8131','1D6C3FD1-6462-4E2C-9828-5D1E718A5EB6','¯ҪĹ׼λ','','¯','',GETDATE(),10) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('41F50C0D-7946-4476-A8CE-7873CDE9A895','1D6C3FD1-6462-4E2C-9828-5D1E718A5EB6','Ļ÷׼','','¯','',GETDATE(),11) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('8ACB5F52-CD6C-43D0-BAA6-38A45DC17E17','1D6C3FD1-6462-4E2C-9828-5D1E718A5EB6','¯ˮϵͳѹ©ɡ','','¯','',GETDATE(),12) +go +--Գ(豸ܵϵͳ) +delete TestRun_WorkInspectTemplate where WorkInspectId in ('BAF6A855-626E-47AE-8392-66A728883DDC','7981FE42-A498-4033-873B-300F2C30CEDD','D50EE94D-072F-4321-A5A9-DCC418793328','C74E21AA-897D-41C9-913B-885080AC4F7B','DEAE38D1-5F93-465D-911D-A573500D87D1','3E207B29-41AE-4175-9BF8-E4A17025BAF0','6543BA5F-9414-4EEC-B9BB-3B5C4BD69C3F','525DA974-7C9D-4DEF-986E-B45C5A8C684A','2FF1A3AC-27C5-436E-857A-E16F48C41281','976BE907-6B1A-4D63-B9EC-D02FAE7F5841','5B6F8D9A-B327-4F4E-AE7A-1923C9987C31','62FFC392-13BA-4871-AA8F-F930D53D2729') +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('BAF6A855-626E-47AE-8392-66A728883DDC','FF3C10D2-822E-4CF4-BE50-AB69181075B5','豸ܵװɣʩչ淶Ҫ','','豸ܵϵͳ','',GETDATE(),1) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('7981FE42-A498-4033-873B-300F2C30CEDD','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ĶȱϣӰԳβ','','豸ܵϵͳ','',GETDATE(),2) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('D50EE94D-072F-4321-A5A9-DCC418793328','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ܵѹϸ','','豸ܵϵͳ','',GETDATE(),3) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('C74E21AA-897D-41C9-913B-885080AC4F7B','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ϵͳϴɨϸ','','豸ܵϵͳ','',GETDATE(),4) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('DEAE38D1-5F93-465D-911D-A573500D87D1','FF3C10D2-822E-4CF4-BE50-AB69181075B5','豸ܵѧϴϸ','','豸ܵϵͳ','',GETDATE(),5) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('3E207B29-41AE-4175-9BF8-E4A17025BAF0','FF3C10D2-822E-4CF4-BE50-AB69181075B5','豸Գϸ','','豸ܵϵͳ','',GETDATE(),6) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('6543BA5F-9414-4EEC-B9BB-3B5C4BD69C3F','FF3C10D2-822E-4CF4-BE50-AB69181075B5','װϸ','','豸ܵϵͳ','',GETDATE(),7) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('525DA974-7C9D-4DEF-986E-B45C5A8C684A','FF3C10D2-822E-4CF4-BE50-AB69181075B5','豸ܵϸ','','豸ܵϵͳ','',GETDATE(),8) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('2FF1A3AC-27C5-436E-857A-E16F48C41281','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ȫϸ񡢴Ͷ״̬','','豸ܵϵͳ','',GETDATE(),9) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('976BE907-6B1A-4D63-B9EC-D02FAE7F5841','FF3C10D2-822E-4CF4-BE50-AB69181075B5','8äϵͳä崦ȷλá','','豸ܵϵͳ','',GETDATE(),10) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('5B6F8D9A-B327-4F4E-AE7A-1923C9987C31','FF3C10D2-822E-4CF4-BE50-AB69181075B5','֧ܰװҪ','','豸ܵϵͳ','',GETDATE(),11) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('62FFC392-13BA-4871-AA8F-F930D53D2729','FF3C10D2-822E-4CF4-BE50-AB69181075B5','֧ܵϸ񡢴Ͷ״̬','','豸ܵϵͳ','',GETDATE(),12) +go +--Գ(ϵͳ) +delete TestRun_WorkInspectTemplate where WorkInspectId in ('00290712-4366-46DF-88C5-6C86BF66FFCC','A7178577-245E-4926-BC95-7276CF745874','82460343-3189-46B3-A283-6D1A02700933','29251A33-5106-4660-B9E6-D43E35D44C4D','1FE206C9-A989-41AF-B6C3-94B2859FE1C1') +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('00290712-4366-46DF-88C5-6C86BF66FFCC','FF3C10D2-822E-4CF4-BE50-AB69181075B5','DZװʩչ淶Ҫ','','ϵͳ','',GETDATE(),1) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('A7178577-245E-4926-BC95-7276CF745874','FF3C10D2-822E-4CF4-BE50-AB69181075B5','豸ļ̵;ԵѺϸ','','ϵͳ','',GETDATE(),2) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('82460343-3189-46B3-A283-6D1A02700933','FF3C10D2-822E-4CF4-BE50-AB69181075B5','׷ʩԺϸ񡢿ɿ','','ϵͳ','',GETDATE(),3) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('29251A33-5106-4660-B9E6-D43E35D44C4D','FF3C10D2-822E-4CF4-BE50-AB69181075B5','DZļϵͳԶϵͳͱϵͳԺϸ','','ϵͳ','',GETDATE(),4) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('1FE206C9-A989-41AF-B6C3-94B2859FE1C1','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ԶDZԺϸƺϸ','','ϵͳ','',GETDATE(),5) +go +--Գ(ϵͳ) +delete TestRun_WorkInspectTemplate where WorkInspectId in ('E764654E-2974-4DDE-B09D-5118BC13FADE','1955A53C-5E28-4621-A2FB-2878CB47B7F7') +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('E764654E-2974-4DDE-B09D-5118BC13FADE','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ˮ硢DZܱ֤ȶӦ','','ϵͳ','',GETDATE(),1) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('1955A53C-5E28-4621-A2FB-2878CB47B7F7','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ԭϡȼϼԭϡ֬ѧƷ뱸ȷȶӦ','','ϵͳ','',GETDATE(),2) +go +--Գ(ȫϵͳ) +delete TestRun_WorkInspectTemplate where WorkInspectId in ('7EABB4DC-2759-4744-8E14-A2B1174A7269','8BD5374C-78D8-4D3A-A215-0B937819A6B2','C4E82F10-83C2-406D-BEAE-AA324850FAE6','3B59B32D-12E4-47AD-AAFE-AEFC48CA86C9') +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('7EABB4DC-2759-4744-8E14-A2B1174A7269','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ˮϵͳԺϸ񣬴Ͷ״̬','','ȫϵͳ','',GETDATE(),1) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('8BD5374C-78D8-4D3A-A215-0B937819A6B2','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ĭɷ̼ۡʩԺϸ񣬴Ͷ״̬','','ȫϵͳ','',GETDATE(),2) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('C4E82F10-83C2-406D-BEAE-AA324850FAE6','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ϵͳɣʱʩҪ','','ȫϵͳ','',GETDATE(),3) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('3B59B32D-12E4-47AD-AAFE-AEFC48CA86C9','FF3C10D2-822E-4CF4-BE50-AB69181075B5','äר˸𣬽ж̬¼̨ʣֳơ','','ȫϵͳ','',GETDATE(),4) +go +--Գ() +delete TestRun_WorkInspectTemplate where WorkInspectId in ('07D87903-F0F7-4E1E-AC68-4140749DCBB6','1013759E-4947-48CE-A725-904A023F7939','2C24530F-5421-47C8-984B-B763031E1D24') +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('07D87903-F0F7-4E1E-AC68-4140749DCBB6','FF3C10D2-822E-4CF4-BE50-AB69181075B5','лҡѽƶȣȷ','','','',GETDATE(),1) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('1013759E-4947-48CE-A725-904A023F7939','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ʩԼ׼ҺѱãҪ','','','',GETDATE(),2) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('2C24530F-5421-47C8-984B-B763031E1D24','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ģģ','','','',GETDATE(),3) +go +--Գ(֯ԱͨѶ涨) +delete TestRun_WorkInspectTemplate where WorkInspectId in ('5CCC100F-A337-4097-B5E5-926D6D4BEBE1','5DC1B9BA-85E0-4FF2-B295-7C554D557489','63D0886F-2A2D-4381-A19D-36BC7EBE3A48','9C2EEE58-B009-4822-9000-40A8F5C43429','779B6E9D-857B-43B5-92C3-8376AF2C23EC','714F447E-793D-4B74-853B-3B751D54FCB8','70073618-055E-4E2A-91FE-65E8175203B7','12413C80-BC95-4C31-9E96-E8D61D73E50A','9C685E13-6740-47AF-A5DD-4CAF8F25047D') +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('5CCC100F-A337-4097-B5E5-926D6D4BEBE1','FF3C10D2-822E-4CF4-BE50-AB69181075B5','Գָ֯ѾλѰ䲼ִУԱ룬ѰҪϸڡ','','֯ԱͨѶ涨','',GETDATE(),1) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('5DC1B9BA-85E0-4FF2-B295-7C554D557489','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ԳϵͳС','','֯ԱͨѶ涨','',GETDATE(),2) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('63D0886F-2A2D-4381-A19D-36BC7EBE3A48','FF3C10D2-822E-4CF4-BE50-AB69181075B5','װԱѾȫ','','֯ԱͨѶ涨','',GETDATE(),3) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('9C2EEE58-B009-4822-9000-40A8F5C43429','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ָϵͳͨѶͨ','','֯ԱͨѶ涨','',GETDATE(),4) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('779B6E9D-857B-43B5-92C3-8376AF2C23EC','FF3C10D2-822E-4CF4-BE50-AB69181075B5','λֱͨ绰ѿͨá','','֯ԱͨѶ涨','',GETDATE(),5) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('714F447E-793D-4B74-853B-3B751D54FCB8','FF3C10D2-822E-4CF4-BE50-AB69181075B5','𾯡ȵ绰ߵ绰Խϵͳɿá','','֯ԱͨѶ涨','',GETDATE(),6) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('70073618-055E-4E2A-91FE-65E8175203B7','FF3C10D2-822E-4CF4-BE50-AB69181075B5','λ׼ѱ׼','','֯ԱͨѶ涨','',GETDATE(),7) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('12413C80-BC95-4C31-9E96-E8D61D73E50A','FF3C10D2-822E-4CF4-BE50-AB69181075B5','μԳҵԱѾӦλѵϸ','','֯ԱͨѶ涨','',GETDATE(),8) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('9C685E13-6740-47AF-A5DD-4CAF8F25047D','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ʺͲDZߺͼ¼뱸','','֯ԱͨѶ涨','',GETDATE(),9) +go +--Գ(ˡڱ) +delete TestRun_WorkInspectTemplate where WorkInspectId in ('509BE136-72B5-462D-BCD5-367719461CF6','D4BA9DD7-A2AC-49F9-87C0-F9255A3DCF81','952DDAC1-8886-4AA5-8057-C6676D92E94C','66732649-05C5-4A93-9B09-F87F51AAD1D3','DF8297EF-0D4F-470B-BFB2-64DB9F3D4428') +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('509BE136-72B5-462D-BCD5-367719461CF6','FF3C10D2-822E-4CF4-BE50-AB69181075B5','˶ɣΧΡֵƶȷ','','ˡڱ','',GETDATE(),1) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('D4BA9DD7-A2AC-49F9-87C0-F9255A3DCF81','FF3C10D2-822E-4CF4-BE50-AB69181075B5','硢Աϸڡ','','ˡڱ','',GETDATE(),2) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('952DDAC1-8886-4AA5-8057-C6676D92E94C','FF3C10D2-822E-4CF4-BE50-AB69181075B5','װʵ','','ˡڱ','',GETDATE(),3) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('66732649-05C5-4A93-9B09-F87F51AAD1D3','FF3C10D2-822E-4CF4-BE50-AB69181075B5','౸Ʒרùߵѱ롣','','ˡڱ','',GETDATE(),4) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('DF8297EF-0D4F-470B-BFB2-64DB9F3D4428','FF3C10D2-822E-4CF4-BE50-AB69181075B5','ڷʵ','','ˡڱ','',GETDATE(),5) +go +--û +delete TestRun_WorkInspectTemplate where WorkInspectId in ('9C3D91DD-A844-4C07-B764-5636181C0BCE','62721C3A-5153-4423-B0A1-D9E60E82B412','E84A7DA5-F174-42E4-9A8F-6F1C567670C8','180837E6-54AF-491A-81D1-C6D7545698DF','580A8E9F-B0FC-40D0-8CE6-5315529ED188','051EC46F-C2DC-4348-A0DA-2CE225D62512','AEAA541A-BC10-49AF-AB79-3C7C117BC563','9F052148-0326-432D-8C19-013C35CD743B','1C126F56-B360-4ECD-B2BE-BE499DFB23F2','F936036B-B03E-4782-A199-529F47BA5A72','9B9B479F-CD25-4E47-B274-F9D65C5EE11B') +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('9C3D91DD-A844-4C07-B764-5636181C0BCE','82ED8240-AA40-4CEB-80E0-B3DF14FFC284','DZԺϸ񣬵ڷͶˡ','','û','',GETDATE(),1) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('62721C3A-5153-4423-B0A1-D9E60E82B412','82ED8240-AA40-4CEB-80E0-B3DF14FFC284','ܵѹϴɨϸ','','û','',GETDATE(),2) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('E84A7DA5-F174-42E4-9A8F-6F1C567670C8','82ED8240-AA40-4CEB-80E0-B3DF14FFC284','豸Գϸ','','û','',GETDATE(),3) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('180837E6-54AF-491A-81D1-C6D7545698DF','82ED8240-AA40-4CEB-80E0-B3DF14FFC284','ϵͳԪԳϡ','','û','',GETDATE(),4) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('580A8E9F-B0FC-40D0-8CE6-5315529ED188','82ED8240-AA40-4CEB-80E0-B3DF14FFC284','ϵͳϸ','','û','',GETDATE(),5) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('051EC46F-C2DC-4348-A0DA-2CE225D62512','82ED8240-AA40-4CEB-80E0-B3DF14FFC284','ûʱʩ׼ϡ','','û','',GETDATE(),6) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('AEAA541A-BC10-49AF-AB79-3C7C117BC563','82ED8240-AA40-4CEB-80E0-B3DF14FFC284','ŵĿλѰ·ͼɡ','','û','',GETDATE(),7) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('9F052148-0326-432D-8C19-013C35CD743B','82ED8240-AA40-4CEB-80E0-B3DF14FFC284','Ѿλ','','û','',GETDATE(),8) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('1C126F56-B360-4ECD-B2BE-BE499DFB23F2','82ED8240-AA40-4CEB-80E0-B3DF14FFC284','ϵͳûҪ','','û','',GETDATE(),9) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('F936036B-B03E-4782-A199-529F47BA5A72','82ED8240-AA40-4CEB-80E0-B3DF14FFC284','ȫʩѵλ','','û','',GETDATE(),10) +INSERT INTO dbo.TestRun_WorkInspectTemplate(WorkInspectId,WorkPackId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) VALUES('9B9B479F-CD25-4E47-B274-F9D65C5EE11B','82ED8240-AA40-4CEB-80E0-B3DF14FFC284','Աѽаȫס','','û','',GETDATE(),11) +go + +--ԤԳ˵ +delete Sys_Menu where MenuId='FCC050F0-0F13-4CE5-BE33-623377562965' +delete Sys_Menu where MenuId='E673FC27-74F1-479C-8DE1-950183566725' +delete Sys_Menu where MenuId='FAD7BF9B-B08A-473B-BEB9-CCAC3E5EA130' +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('FCC050F0-0F13-4CE5-BE33-623377562965','Ķβ嵥',null,'TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx',15,'AD6E08B6-5571-4FFB-BDBE-9E6811770BD6','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('E673FC27-74F1-479C-8DE1-950183566725','Ķȷ',null,'TestRun/BeforeTestRun/FourDecisionResponsibilityConfirm.aspx',16,'AD6E08B6-5571-4FFB-BDBE-9E6811770BD6','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('FAD7BF9B-B08A-473B-BEB9-CCAC3E5EA130','Ķȷ',null,'TestRun/BeforeTestRun/FourDecisionOtherConfirm.aspx',17,'AD6E08B6-5571-4FFB-BDBE-9E6811770BD6','Menu_TestRun',0,1,1) + + +--==ϵͳ +if object_id(N'TestRun_SubInspectTermItem',N'U') is not null +drop table dbo.TestRun_SubInspectTermItem +CREATE TABLE dbo.TestRun_SubInspectTermItem( + TermItemId varchar(50) NOT NULL,-- + SubInspectId varchar(50) NULL,-- + WorkPackId varchar(50) NULL,-- + GroupName varchar(50) NULL,-- + ProjectId varchar(50) NULL,--Ŀ + WorkInspectId varchar(50) NOT NULL,--ģ + WorkInspectName varchar(500) NULL,-- + InstallationId varchar(50) NULL,--װ(ֶΣڹ) + ProcessesId varchar(50) NULL,--(ֶΣڹ) + SystemId varchar(50) NULL,--ϵͳ(ֶΣڹ) + InspectedUser varchar(max) NULL,--(ɼչʾ) + AllUserInspectionPass int NULL,--Ƿȫͨ0:δͨ 1:ͨ + Subcontractor varchar(50) null,--ְ + Contractor varchar(50) null,--а + Supervision varchar(50) null,-- + Owner varchar(50) null,--ҵ + SubcontractorIsPass int NULL,--ְǷͨ0/null:δͨ 1:ͨ + ContractorIsPass int NULL,--аǷͨ0/null:δͨ 1:ͨ + SupervisionIsPass int NULL,--Ƿͨ0/null:δͨ 1:ͨ + OwnerIsPass int NULL,--ҵǷͨ0/null:δͨ 1:ͨ + SubcontractorRemark varchar(1000) NULL,--ְ̱ע + ContractorRemark varchar(1000) NULL,--а̱ע + SupervisionRemark varchar(1000) NULL,--ע + OwnerRemark varchar(1000) NULL,--ҵע + Remark varchar(200) NULL,--ע + AddUser varchar(50) NULL,-- + AddTime datetime NULL,-- + Sort int NULL,-- + CONSTRAINT PK_TestRun_SubInspectTermItem PRIMARY KEY CLUSTERED +( + TermItemId 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 + +--==˱ +if object_id(N'TestRun_TermItemInspectedUser',N'U') is not null +drop table dbo.TestRun_TermItemInspectedUser +CREATE TABLE dbo.TestRun_TermItemInspectedUser( + ItemUserId varchar(50) NOT NULL,-- + TermItemId varchar(50) NULL,-- + SubInspectId varchar(50) NULL,-- + WorkPackId varchar(50) NULL,-- + GroupName varchar(50) NULL,-- + ProjectId varchar(50) NULL,--Ŀ + InspectedUser varchar(50) NULL,-- + InspectionResults int NULL,--0:δͨ 1:ͨ + InspectionIllustrate varchar(200) NULL,--˵ + InstallationId varchar(50) NULL,--װ(ֶΣڹ) + ProcessesId varchar(50) NULL,--(ֶΣڹ) + SystemId varchar(50) NULL,--ϵͳ(ֶΣڹ) + AddUser varchar(50) NULL,-- + AddTime datetime NULL,-- + Sort int NULL,-- + CONSTRAINT PK_TestRun_TermItemInspectedUser PRIMARY KEY CLUSTERED +( + ItemUserId 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 + +--==ϵͳĶ +if object_id(N'PreRun_SubThreeChecksFourDecision',N'U') is not null +drop table dbo.PreRun_SubThreeChecksFourDecision +CREATE TABLE dbo.PreRun_SubThreeChecksFourDecision( + DecisionId varchar(50) NOT NULL,-- + ProjectId varchar(50) NULL,--Ŀ + SubSystemId varchar(50) NULL,--ϵͳ + ResponsibilityUser varchar(50) NULL,-- + ProposeUser varchar(50) NULL,-- + GeneraUser varchar(50) NULL,--ܰ + SupervisionUser varchar(50) NULL,-- + OwnerUser varchar(50) NULL,--ҵ + ResponsibilityUnit varchar(50) NULL,--ελ + QuestionDesc varchar(max) NULL,--Ķ + Level varchar(50) NULL,-- + Speciality varchar(50) NULL,--רҵ + AskDestructionTime datetime NULL,--Ҫʱ + RealityDestructionTime datetime NULL,--ʵʱ + RestrictCondition varchar(max) NULL,--ķ/Լ + ResponsibilityConfirm int NULL,--ȷ(0:ύ1:δȷ2:ȷ˻3:ȷͨ) + ProposeConfirm int NULL,--ȷ(1:δȷ2:ȷͨ) + GeneraConfirm int NULL,--ܰȷ(1:δȷ2:ȷͨ) + SupervisionConfirm int NULL,--ȷ(1:δȷ2:ȷͨ) + OwnerConfirm int NULL,--ҵȷ(1:δȷ2:ȷͨ) + ResponsibilityConfirmData datetime NULL,--ȷʱ + ProposeConfirmData datetime NULL,--ȷʱ + GeneraConfirmData datetime NULL,--ܰȷʱ + SupervisionConfirmData datetime NULL,--ȷʱ + OwnerConfirmData datetime NULL,--ҵȷʱ + DecisionIsClose int NULL,--βǷر0:1: + AddUser varchar(50) NULL,-- + AddTime datetime NULL,-- + Sort int NULL,-- + CONSTRAINT PK_PreRun_SubThreeChecksFourDecision PRIMARY KEY CLUSTERED +( + DecisionId 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 + +--==ϵͳĶȷϼ¼ +if object_id(N'PreRun_DecisionConfirmRecords',N'U') is not null +drop table dbo.PreRun_DecisionConfirmRecords +CREATE TABLE dbo.PreRun_DecisionConfirmRecords( + ConfirmId varchar(50) NOT NULL,-- + ProjectId varchar(50) NULL,--Ŀ + DecisionId varchar(50) NULL,-- + ConfirmDesc varchar(max) NULL,--ȷ + ConfirmTime datetime NULL,--ȷʱ + ConfirmUser varchar(50) NULL,--ȷ + ConfirmType int NULL,--¼1:ȷ2:ȷ3:ܰȷ4:ȷ5:ҵȷ + ConfirmState int NULL,--1:ȷͨ2:ȷ˻ + AddUser varchar(50) NULL,-- + AddTime datetime NULL,-- + CONSTRAINT PK_PreRun_DecisionConfirmRecords PRIMARY KEY CLUSTERED +( + ConfirmId 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 + +--==DZϢ +if object_id(N'PreRun_InstrumentSysPiping',N'U') is not null +drop table dbo.PreRun_InstrumentSysPiping +CREATE TABLE dbo.PreRun_InstrumentSysPiping( + InstrumentId varchar(50) NOT NULL,-- + SystemId varchar(50) NULL,--ϵͳ + ProjectId varchar(50) NULL,--Ŀ + InstrumentTag varchar(100) NULL,--DZλ + UseTo varchar(200) NULL,--; + InstrumentName varchar(100) NULL,--DZ + Supplier varchar(100) NULL,-- + InstallationPosition varchar(50) NULL,--װλ + SignalType varchar(50) NULL,--ź + AssociatedSystem varchar(50) NULL,--ϵͳ + Cp25 varchar(50) NULL,--CP25 + In11 varchar(50) NULL,--IN11 + In40 varchar(50) NULL,--IN40 + Remark nvarchar(150) NULL,--ע + AddUser varchar(50) NULL,-- + AddTime datetime NULL,-- + Sort int NULL,-- + CONSTRAINT PK_PreRun_InstrumentSysPiping PRIMARY KEY CLUSTERED +( + InstrumentId 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 + +--==ϵͳѡDZϢ +if object_id(N'PreRun_SubInstrumentSelect',N'U') is not null +drop table dbo.PreRun_SubInstrumentSelect +CREATE TABLE dbo.PreRun_SubInstrumentSelect( + SubInstrumentId varchar(50) NOT NULL,-- + ProjectId varchar(50) NULL,--Ŀ + SubSystemId varchar(50) NULL,--ϵͳ + InstrumentId varchar(50) NULL,--DZ + Remark nvarchar(150) NULL,--ע + AddUser varchar(50) NULL,-- + AddTime datetime NULL,-- + Sort int NULL,-- + CONSTRAINT PK_PreRun_SubInstrumentSelect PRIMARY KEY CLUSTERED +( + SubInstrumentId 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 + +--== +if object_id(N'PreRun_WorkPackage',N'U') is not null +drop table dbo.PreRun_WorkPackage +CREATE TABLE dbo.PreRun_WorkPackage( + WorkPackId varchar(50) NOT NULL,-- + WorkPackName varchar(50) NULL,-- + WorkPackType int null,--0=ȫ1=ܵ2=豸3=DZ + SpecialWorkPack int null,--Ƿ⹤0:1: + Remark nvarchar(150) NULL,--ע + AddUser varchar(50) NULL,-- + AddTime datetime NULL,-- + Sort int NULL,-- + CONSTRAINT PK_PreRun_WorkPackage PRIMARY KEY CLUSTERED +( + WorkPackId 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 + +delete PreRun_WorkPackage where WorkPackId='1C01150C-977E-499A-9173-95F319BEEF87' +delete PreRun_WorkPackage where WorkPackId='641DA0F4-42A7-4DE3-9A57-95A606016655' +delete PreRun_WorkPackage where WorkPackId='BEB24AE8-F66D-458B-ADFD-3810405B5EB8' +delete PreRun_WorkPackage where WorkPackId='02BC1E1E-E531-4738-B6EC-5CE5BDC47B43' +delete PreRun_WorkPackage where WorkPackId='474F94B6-E927-4E9A-A544-F8E1AE63F6FF' +delete PreRun_WorkPackage where WorkPackId='3289A3D2-0691-4AD1-BDF3-1FD784564E71' +delete PreRun_WorkPackage where WorkPackId='445B915B-3E6D-47BE-BFF4-8762695ADB20' +delete PreRun_WorkPackage where WorkPackId='73C7D1D7-6DA3-44DD-A88B-7DF0FF15AA4F' +delete PreRun_WorkPackage where WorkPackId='84C6DAD6-3ED8-4869-ADB4-2EDA3512DB16' +delete PreRun_WorkPackage where WorkPackId='963E658B-CB53-4FEA-BA7D-723C538B2BD5' +delete PreRun_WorkPackage where WorkPackId='598A028A-5812-40E3-9D9D-5180A36F4453' +delete PreRun_WorkPackage where WorkPackId='6D827784-6ABD-4327-ABB7-FDABAC99853F' +delete PreRun_WorkPackage where WorkPackId='4338606F-74BC-4134-8F2B-F7F826BA1E9D' +delete PreRun_WorkPackage where WorkPackId='61A8B95B-F7A3-4F0D-8358-EF2030D321B4' +INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackName,WorkPackType,SpecialWorkPack,Remark,AddUser,AddTime,Sort) +VALUES('1C01150C-977E-499A-9173-95F319BEEF87','Գ',2,0,'','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),1) +INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackName,WorkPackType,SpecialWorkPack,Remark,AddUser,AddTime,Sort) +VALUES('641DA0F4-42A7-4DE3-9A57-95A606016655','ܵϴ',1,0,'','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),2) +INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackName,WorkPackType,SpecialWorkPack,Remark,AddUser,AddTime,Sort) +VALUES('BEB24AE8-F66D-458B-ADFD-3810405B5EB8','ܵɨ',1,0,'','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),3) +INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackName,WorkPackType,SpecialWorkPack,Remark,AddUser,AddTime,Sort) +VALUES('02BC1E1E-E531-4738-B6EC-5CE5BDC47B43','ɨ',1,0,'','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),4) +INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackName,WorkPackType,SpecialWorkPack,Remark,AddUser,AddTime,Sort) +VALUES('474F94B6-E927-4E9A-A544-F8E1AE63F6FF','ѧϴ',1,0,'','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),5) +INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackName,WorkPackType,SpecialWorkPack,Remark,AddUser,AddTime,Sort) +VALUES('3289A3D2-0691-4AD1-BDF3-1FD784564E71','¯',2,0,'','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),6) +INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackName,WorkPackType,SpecialWorkPack,Remark,AddUser,AddTime,Sort) +VALUES('445B915B-3E6D-47BE-BFF4-8762695ADB20','߻װ',2,0,'','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),7) +INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackName,WorkPackType,SpecialWorkPack,Remark,AddUser,AddTime,Sort) +VALUES('73C7D1D7-6DA3-44DD-A88B-7DF0FF15AA4F','ɸװ',2,0,'','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),8) +INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackName,WorkPackType,SpecialWorkPack,Remark,AddUser,AddTime,Sort) +VALUES('84C6DAD6-3ED8-4869-ADB4-2EDA3512DB16','ֻԳ',2,0,'','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),11) +INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackName,WorkPackType,SpecialWorkPack,Remark,AddUser,AddTime,Sort) +VALUES('963E658B-CB53-4FEA-BA7D-723C538B2BD5','Գ',2,0,'','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),12) +INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackName,WorkPackType,SpecialWorkPack,Remark,AddUser,AddTime,Sort) +VALUES('598A028A-5812-40E3-9D9D-5180A36F4453','',1,0,'','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),13) +INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackName,WorkPackType,SpecialWorkPack,Remark,AddUser,AddTime,Sort) +VALUES('6D827784-6ABD-4327-ABB7-FDABAC99853F','ȼ',0,0,'','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),14) +INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackName,WorkPackType,SpecialWorkPack,Remark,AddUser,AddTime,Sort) +VALUES('4338606F-74BC-4134-8F2B-F7F826BA1E9D','',2,1,'','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),15) +INSERT INTO dbo.PreRun_WorkPackage(WorkPackId,WorkPackName,WorkPackType,SpecialWorkPack,Remark,AddUser,AddTime,Sort) +VALUES('61A8B95B-F7A3-4F0D-8358-EF2030D321B4','DZ·',3,1,'','C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0',GETDATE(),16) +go + +--ֶγ +ALTER TABLE PreRun_PropertySysPiping ALTER Column Remark varchar(max) null; +ALTER TABLE PreRun_TechnologySysPiping ALTER Column Remark varchar(max) null; +ALTER TABLE PreRun_TechnologySysPiping ALTER Column DrawingNo varchar(max) null; + + +-- +truncate table PreRun_PropertySysPiping +truncate table PreRun_TechnologySysPiping +truncate table PreRun_SubPropertySelect +truncate table PreRun_SubTechnologySelect +truncate table PreRun_SubInspectTerm +truncate table PreRun_SubInspectTermItem +truncate table PreRun_InspectTailTerm +truncate table PreRun_InspectTermApproveRecords +truncate table PreRun_InstrumentSysPiping +truncate table PreRun_SubInstrumentSelect +go \ No newline at end of file diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs index ed47aa1e..a858ec4d 100644 --- a/SGGL/BLL/Common/Const.cs +++ b/SGGL/BLL/Common/Const.cs @@ -3127,6 +3127,14 @@ namespace BLL /// public const string QuantityCompletionTemplateUrl = "File\\Excel\\DataIn\\项目进度完成情况导入模板.xls"; /// + /// 仪表索引 + /// + public const string InstrumentUrl = "File\\Excel\\TestRun\\仪表索引模板.xlsx"; + /// + /// 三查四定模板下载 + /// + public const string ThreeChecksFourDecisionUrl = "File\\Excel\\TestRun\\三查四定检查表模板.xls"; + /// /// 低温储罐完成情况导入模版文件原始的虚拟路径 /// public const string LowTankCompletionTemplateUrl = "File\\Excel\\DataIn\\低温储罐完成情况导入模板.xls"; diff --git a/SGGL/BLL/Common/NPOIHelper.cs b/SGGL/BLL/Common/NPOIHelper.cs index ee58679b..48ee0ae9 100644 --- a/SGGL/BLL/Common/NPOIHelper.cs +++ b/SGGL/BLL/Common/NPOIHelper.cs @@ -93,7 +93,7 @@ namespace BLL /// /// 第一行是否为表头 /// - public static DataSet ExcelToDataSet(string filePath, out string strMsg, bool firstTitle = false) + public static DataSet ExcelToDataSet(string filePath, out string strMsg, bool firstTitle = false, bool firstSheet = true) { strMsg = ""; DataSet ds = new DataSet(); @@ -108,9 +108,9 @@ namespace BLL if (fileType == ".xlsx") { // 2007版本 - fs.Position = 0; + //fs.Position = 0; XSSFWorkbook workbook = new XSSFWorkbook(fs); - sheetNumber = workbook.NumberOfSheets; + sheetNumber = firstSheet ? 1 : workbook.NumberOfSheets; for (int i = 0; i < sheetNumber; i++) { string sheetName = workbook.GetSheetName(i); @@ -134,14 +134,13 @@ namespace BLL { // 2003版本 HSSFWorkbook workbook = new HSSFWorkbook(fs); - sheetNumber = workbook.NumberOfSheets; + sheetNumber = firstSheet ? 1 : workbook.NumberOfSheets; for (int i = 0; i < sheetNumber; i++) { string sheetName = workbook.GetSheetName(i); sheet = workbook.GetSheet(sheetName); if (sheet != null) { - //dt = GetSheetDataTable(sheet, out strMsg); dt = firstTitle ? GetFirstSheetDataTable(sheet, out strMsg) : GetSheetDataTable(sheet, out strMsg); if (dt != null) { @@ -179,6 +178,7 @@ namespace BLL //最大列数 int cellCount = 0; IRow maxRow = sheet.GetRow(0); + if (maxRow == null) return dt; for (int i = startIndex; i <= lastIndex; i++) { IRow row = sheet.GetRow(i); @@ -205,6 +205,7 @@ namespace BLL for (int i = startIndex; i <= lastIndex; i++) { IRow row = sheet.GetRow(i); + if (row == null) continue; //移除空行 if (row.Cells.Count(p => !string.IsNullOrWhiteSpace(p.ToString())) == 0) continue; DataRow drNew = dt.NewRow(); @@ -300,6 +301,7 @@ namespace BLL { IRow row = sheet.GetRow(i); DataRow dataRow = dt.NewRow(); + if (row == null) continue; //移除空行 if (row.Cells.Count(p => !string.IsNullOrWhiteSpace(p.ToString())) == 0) continue; diff --git a/SGGL/FineUIPro.Web/File/Excel/TestRun/三查四定检查表模板.xls b/SGGL/FineUIPro.Web/File/Excel/TestRun/三查四定检查表模板.xls new file mode 100644 index 0000000000000000000000000000000000000000..76fe7f26d4d03cac4e15b26c90d683e3cb3342fb GIT binary patch literal 31232 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 literal 0 HcmV?d00001 diff --git a/SGGL/FineUIPro.Web/File/Excel/TestRun/仪表索引模板.xlsx b/SGGL/FineUIPro.Web/File/Excel/TestRun/仪表索引模板.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ff4e79d76c459ad3091dda874d81621468def0d9 GIT binary patch literal 76067 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 delta 8600 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

(&m-QVp=tI8Px4&g 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 P0+0Z7uru{rUlI5}_w*OU literal 47764 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 Xs7i8oZuSQVeCrAe diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index 5d924caf..c5185f93 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -1672,6 +1672,10 @@ + + + + @@ -1680,6 +1684,7 @@ + @@ -1688,6 +1693,8 @@ + + @@ -1790,7 +1797,6 @@ - @@ -2038,6 +2044,9 @@ + + + @@ -15131,6 +15140,34 @@ DeviceRunEdit.aspx + + FourDecisionOtherConfirm.aspx + ASPXCodeBehind + + + FourDecisionOtherConfirm.aspx + + + FourDecisionOtherConfirmEdit.aspx + ASPXCodeBehind + + + FourDecisionOtherConfirmEdit.aspx + + + FourDecisionResponsibilityConfirm.aspx + ASPXCodeBehind + + + FourDecisionResponsibilityConfirm.aspx + + + FourDecisionResponsibilityConfirmEdit.aspx + ASPXCodeBehind + + + FourDecisionResponsibilityConfirmEdit.aspx + InspectTailTermEdit.aspx ASPXCodeBehind @@ -15187,6 +15224,13 @@ InspectWanderAboutList.aspx + + SelectInstrument.aspx + ASPXCodeBehind + + + SelectInstrument.aspx + SelectProperty.aspx ASPXCodeBehind @@ -15243,6 +15287,20 @@ SubSysWorkPackage.aspx + + SubThreeChecksFourDecisionEdit.aspx + ASPXCodeBehind + + + SubThreeChecksFourDecisionEdit.aspx + + + SubThreeChecksFourDecisionList.aspx + ASPXCodeBehind + + + SubThreeChecksFourDecisionList.aspx + SubWorkInspect.aspx ASPXCodeBehind @@ -16006,13 +16064,6 @@ SubWorkInspect.aspx - - TemplateItemGroup.aspx - ASPXCodeBehind - - - TemplateItemGroup.aspx - Video.aspx ASPXCodeBehind diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirm.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirm.aspx new file mode 100644 index 00000000..14b086f8 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirm.aspx @@ -0,0 +1,140 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FourDecisionOtherConfirm.aspx.cs" Inherits="FineUIPro.Web.TestRun.BeforeTestRun.FourDecisionOtherConfirm" %> + + + + + + 提出人,总包,监理,业主确认 + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirm.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirm.aspx.cs new file mode 100644 index 00000000..5cc60ddf --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirm.aspx.cs @@ -0,0 +1,301 @@ +using BLL; +using Model; +using System; +using System.Collections.Generic; +using System.Data.SqlClient; +using System.Data; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.BeforeTestRun +{ + public partial class FourDecisionOtherConfirm : PageBase + { + /// + /// 子系统主键 + /// + public string SsubSystemId + { + get { return (string)ViewState["SsubSystemId"]; } + set { ViewState["SsubSystemId"] = value; } + } + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + //加载树 + this.InitTreeMenu(); + } + } + + /// + /// 加载树 + /// + 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 decisions = Funs.DB.PreRun_SubThreeChecksFourDecision.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && (x.ProposeUser == this.CurrUser.UserId || x.GeneraUser == this.CurrUser.UserId || x.SupervisionUser == this.CurrUser.UserId || x.OwnerUser == this.CurrUser.UserId)).ToList(); + if (decisions.Count == 0) return; + //获取子系统主键 + var subsystemids = decisions.ConvertAll(x => x.SubSystemId); + //根据子系统获取其他节点ID + var userDevices = Funs.DB.PreRun_SysDevice.Where(p => p.ProjectId == this.CurrUser.LoginProjectId && subsystemids.Contains(p.PreRunId)).ToList(); + List allIds = new List(); + allIds.AddRange(userDevices.ConvertAll(x => x.ProcessesId)); + allIds.AddRange(userDevices.ConvertAll(x => x.SystemId)); + allIds.AddRange(subsystemids); + var allPreRunLs = Funs.DB.PreRun_SysDevice.Where(p => p.ProjectId == this.CurrUser.LoginProjectId && p.PreRunLevel > 1 && allIds.Contains(p.PreRunId)).ToList(); + var onePreRunLs = allPreRunLs.Where(p => p.PreRunLevel == 2).OrderBy(x => x.Sort); + foreach (var item in onePreRunLs) + { + TreeNode rootUnitNode = new TreeNode();//定义根节点 + rootUnitNode.NodeID = item.PreRunId; + rootUnitNode.Text = item.PreRunName; + rootUnitNode.ToolTip = item.PreRunName; + rootUnitNode.CommandName = ""; + rootUnitNode.EnableClickEvent = false; + rootUnitNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootUnitNode); + rootUnitNode.Expanded = true; + var otherPreRunls = allPreRunLs.Where(p => p.PreRunLevel != 1).ToList(); + this.BindNodes(rootUnitNode, otherPreRunls, item.PreRunId); + } + } + + /// + /// 绑定树节点 + /// + private void BindNodes(TreeNode node, List list, string parentId) + { + var itemList = list.Where(p => p.ParentId == parentId).OrderBy(x => x.Sort).ToList(); + if (itemList.Count > 0) + { + foreach (var item in itemList) + { + TreeNode newNode = new TreeNode(); + newNode.Text = item.PreRunName; + newNode.NodeID = item.PreRunId; + newNode.ToolTip = item.PreRunName; + newNode.CommandName = ""; + newNode.EnableClickEvent = item.PreRunLevel == 4 ? true : false; + newNode.EnableExpandEvent = item.PreRunLevel == 4 ? true : false; + newNode.Expanded = true; + node.Nodes.Add(newNode); + BindNodes(newNode, list, item.PreRunId); + } + } + } + + /// + /// 点击TreeView + /// + /// + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + this.SsubSystemId = tvControlItem.SelectedNodeID; + BindGrid(); + } + + #region 绑定数据 + + /// + /// 数据绑定 + /// + public void BindGrid() + { + string tcrSql = "select NewId() as Id,a.DecisionId,a.ProjectId,a.SubSystemId,a.ResponsibilityUser,ruser.UserName as ResponsibilityUserName,a.ResponsibilityUnit,unit.UnitName as ResponsibilityUnitName,a.QuestionDesc,a.Level,a.Speciality,a.AskDestructionTime,a.RealityDestructionTime,a.RestrictCondition,a.ProposeUser as ConfirmUser,cuser.UserName as ConfirmUserName,2 as ConfirmType,'提出人' as ConfirmTypeName,a.ProposeConfirm as ConfirmState,(case a.ProposeConfirm when 1 then '未确认' when 2 then '确认通过' else '' end) as ConfirmStateName,a.ProposeConfirmData as ConfirmData,a.DecisionIsClose,(case a.DecisionIsClose when 1 then '已关闭' else '未关闭' end) as DecisionIsCloseName,(case ISNULL(a.AskDestructionTime, '') when '' then 0 else DATEDIFF(DAY, GETDATE(), a.AskDestructionTime) end) as DestructionDiffDay,a.AddUser,a.AddTime,a.Sort from PreRun_SubThreeChecksFourDecision as a left join Sys_User as cuser on a.ProposeUser = cuser.UserId left join Sys_User as ruser on a.ResponsibilityUser = ruser.UserId left join Base_Unit as unit on a.ResponsibilityUnit = unit.UnitId where 1 = 1 and a.ResponsibilityConfirm = 3 and a.SubSystemId = @SubSystemId and a.ProjectId = @ProjectId "; + string zbSql = "select NewId() as Id,a.DecisionId,a.ProjectId,a.SubSystemId,a.ResponsibilityUser,ruser.UserName as ResponsibilityUserName,a.ResponsibilityUnit,unit.UnitName as ResponsibilityUnitName,a.QuestionDesc,a.Level,a.Speciality,a.AskDestructionTime,a.RealityDestructionTime,a.RestrictCondition,a.GeneraUser as ConfirmUser,cuser.UserName as ConfirmUserName,3 as ConfirmType,'总包' as ConfirmTypeName,a.GeneraConfirm as ConfirmState,(case a.GeneraConfirm when 1 then '未确认' when 2 then '确认通过' else '' end) as ConfirmStateName,a.GeneraConfirmData as ConfirmData,a.DecisionIsClose,(case a.DecisionIsClose when 1 then '已关闭' else '未关闭' end) as DecisionIsCloseName,(case ISNULL(a.AskDestructionTime,'') when '' then 0 else DATEDIFF(DAY, GETDATE(),a.AskDestructionTime) end) as DestructionDiffDay,a.AddUser,a.AddTime,a.Sort from PreRun_SubThreeChecksFourDecision as a left join Sys_User as cuser on a.GeneraUser=cuser.UserId left join Sys_User as ruser on a.ResponsibilityUser=ruser.UserId left join Base_Unit as unit on a.ResponsibilityUnit=unit.UnitId where 1=1 and a.ResponsibilityConfirm=3 and a.SubSystemId=@SubSystemId and a.ProjectId=@ProjectId "; + string jlSql = "select NewId() as Id,a.DecisionId,a.ProjectId,a.SubSystemId,a.ResponsibilityUser,ruser.UserName as ResponsibilityUserName,a.ResponsibilityUnit,unit.UnitName as ResponsibilityUnitName,a.QuestionDesc,a.Level,a.Speciality,a.AskDestructionTime,a.RealityDestructionTime,a.RestrictCondition,a.SupervisionUser as ConfirmUser,cuser.UserName as ConfirmUserName,4 as ConfirmType,'监理' as ConfirmTypeName,a.SupervisionConfirm as ConfirmState,(case a.SupervisionConfirm when 1 then '未确认' when 2 then '确认通过' else '' end) as ConfirmStateName,a.SupervisionConfirmData as ConfirmData,a.DecisionIsClose,(case a.DecisionIsClose when 1 then '已关闭' else '未关闭' end) as DecisionIsCloseName,(case ISNULL(a.AskDestructionTime,'') when '' then 0 else DATEDIFF(DAY, GETDATE(),a.AskDestructionTime) end) as DestructionDiffDay,a.AddUser,a.AddTime,a.Sort from PreRun_SubThreeChecksFourDecision as a left join Sys_User as cuser on a.SupervisionUser=cuser.UserId left join Sys_User as ruser on a.ResponsibilityUser=ruser.UserId left join Base_Unit as unit on a.ResponsibilityUnit=unit.UnitId where 1=1 and a.ResponsibilityConfirm=3 and a.SubSystemId=@SubSystemId and a.ProjectId=@ProjectId "; + string yzSql = "select NewId() as Id,a.DecisionId,a.ProjectId,a.SubSystemId,a.ResponsibilityUser,ruser.UserName as ResponsibilityUserName,a.ResponsibilityUnit,unit.UnitName as ResponsibilityUnitName,a.QuestionDesc,a.Level,a.Speciality,a.AskDestructionTime,a.RealityDestructionTime,a.RestrictCondition,a.OwnerUser as ConfirmUser,cuser.UserName as ConfirmUserName,5 as ConfirmType,'业主' as ConfirmTypeName,a.OwnerConfirm as ConfirmState,(case a.OwnerConfirm when 1 then '未确认' when 2 then '确认通过' else '' end) as ConfirmStateName,a.OwnerConfirmData as ConfirmData,a.DecisionIsClose,(case a.DecisionIsClose when 1 then '已关闭' else '未关闭' end) as DecisionIsCloseName,(case ISNULL(a.AskDestructionTime,'') when '' then 0 else DATEDIFF(DAY, GETDATE(),a.AskDestructionTime) end) as DestructionDiffDay,a.AddUser,a.AddTime,a.Sort from PreRun_SubThreeChecksFourDecision as a left join Sys_User as cuser on a.OwnerUser=cuser.UserId left join Sys_User as ruser on a.ResponsibilityUser=ruser.UserId left join Base_Unit as unit on a.ResponsibilityUnit=unit.UnitId where 1=1 and a.ResponsibilityConfirm=3 and a.SubSystemId=@SubSystemId and a.ProjectId=@ProjectId "; + List listStr = new List(); + listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@SubSystemId", this.SsubSystemId)); + string where = string.Empty; + //是否确认 + if (!string.IsNullOrWhiteSpace(ddlConfirmState.SelectedValue)) + { + where = " and isnull(t.ConfirmState,1) = @ConfirmState"; + listStr.Add(new SqlParameter("@ConfirmState", ddlConfirmState.SelectedValue)); + } + //是否关闭 + if (!string.IsNullOrWhiteSpace(ddlDecisionState.SelectedValue)) + { + where += " and isnull(t.DecisionIsClose,0)=@DecisionIsClose"; + listStr.Add(new SqlParameter("@DecisionIsClose", ddlDecisionState.SelectedValue)); + } + string strSql = $"select * from ({tcrSql} union all {zbSql} union all {jlSql} union all {yzSql} ) as t where 1=1 {where} order by t.ConfirmType,t.AddTime desc"; + 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) + { + btnSubmitConfirm_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["DestructionDiffDay"]); + TemplateField AdjustDiffDay = Grid1.FindColumn("DestructionDiffDay") as TemplateField; + int isClose = int.Parse(Grid1.DataKeys[e.RowIndex][3].ToString()); + if (isClose != 1) + { + 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 + + /// + /// 查询 + /// + protected void btnQuery_Click(object sender, EventArgs e) + { + BindGrid(); + } + + /// + /// 查看 + /// + protected void btnView_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + string decisionId = Grid1.DataKeys[Grid1.SelectedRowIndex][0].ToString(); + string confirmType = Grid1.DataKeys[Grid1.SelectedRowIndex][2].ToString(); + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("FourDecisionOtherConfirmEdit.aspx?DecisionId={0}&ConfirmType={1}&IsView=true", decisionId, confirmType, "查看 - "))); + } + + /// + /// 确认 + /// + protected void btnSubmitConfirm_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + string decisionId = Grid1.DataKeys[Grid1.SelectedRowIndex][0].ToString(); + string ConfirmState = Grid1.DataKeys[Grid1.SelectedRowIndex][1] != null ? Grid1.DataKeys[Grid1.SelectedRowIndex][1].ToString() : string.Empty; + string confirmType = Grid1.DataKeys[Grid1.SelectedRowIndex][2].ToString(); + if (ConfirmState == "2") + { + Alert.ShowInTop("已确认通过,无法再次确认!", MessageBoxIcon.Warning); + return; + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("FourDecisionOtherConfirmEdit.aspx?DecisionId={0}&ConfirmType={1}", decisionId, confirmType, "确认 - "))); + } + + /// + /// 确认 + /// + protected void btnMenuConfirm_Click(object sender, EventArgs e) + { + btnSubmitConfirm_Click(sender, e); + } + + /// + /// 是否逾期返回 + /// + /// + public string IsOverdue(object diffDayVal, object stateVal) + { + var result = string.Empty; + var diffDay = 0; + var itemState = 0; + if (diffDayVal != null) diffDay = int.Parse(diffDayVal.ToString()); + if (stateVal != null) itemState = int.Parse(stateVal.ToString()); + if (itemState != 1) + { + if (diffDay > 0) + { + result = "未逾期"; + } + else if (diffDay == 0) + { + result = "即将逾期"; + } + else if (diffDay < 0) + { + result = "已逾期"; + } + } + else + { + result = "已关闭"; + } + return result; + } + + /// + /// 关闭 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TemplateItemGroup.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirm.aspx.designer.cs similarity index 76% rename from SGGL/FineUIPro.Web/TestRun/TestRunManage/TemplateItemGroup.aspx.designer.cs rename to SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirm.aspx.designer.cs index 198171b2..42e2bdd2 100644 --- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TemplateItemGroup.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirm.aspx.designer.cs @@ -7,11 +7,11 @@ // //------------------------------------------------------------------------------ -namespace FineUIPro.Web.TestRun.TestRunManage +namespace FineUIPro.Web.TestRun.BeforeTestRun { - public partial class TemplateItemGroup + public partial class FourDecisionOtherConfirm { /// @@ -41,6 +41,24 @@ namespace FineUIPro.Web.TestRun.TestRunManage /// protected global::FineUIPro.Panel Panel1; + /// + /// panelLeftRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelLeftRegion; + + /// + /// tvControlItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree tvControlItem; + /// /// Grid1 控件。 /// @@ -51,22 +69,67 @@ namespace FineUIPro.Web.TestRun.TestRunManage protected global::FineUIPro.Grid Grid1; /// - /// Toolbar2 控件。 + /// Toolbar3 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.Toolbar Toolbar2; + protected global::FineUIPro.Toolbar Toolbar3; /// - /// txtsGroupName 控件。 + /// ddlConfirmState 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.TextBox txtsGroupName; + protected global::FineUIPro.DropDownList ddlConfirmState; + + /// + /// ddlDecisionState 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlDecisionState; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + + /// + /// btnView 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnView; + + /// + /// btnSubmitConfirm 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSubmitConfirm; + + /// + /// lblIsOverdue 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblIsOverdue; /// /// ToolbarSeparator1 控件。 @@ -96,85 +159,13 @@ namespace FineUIPro.Web.TestRun.TestRunManage protected global::FineUIPro.DropDownList ddlPageSize; /// - /// SimpleForm1 控件。 + /// Window1 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.SimpleForm SimpleForm1; - - /// - /// hfFormID 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.TextBox hfFormID; - - /// - /// txtGroupName 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.TextBox txtGroupName; - - /// - /// txtRemark 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.TextArea txtRemark; - - /// - /// Toolbar1 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Toolbar Toolbar1; - - /// - /// btnNew 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Button btnNew; - - /// - /// btnDelete 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Button btnDelete; - - /// - /// ToolbarFill1 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.ToolbarFill ToolbarFill1; - - /// - /// btnSave 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Button btnSave; + protected global::FineUIPro.Window Window1; /// /// Menu1 控件。 @@ -186,21 +177,12 @@ namespace FineUIPro.Web.TestRun.TestRunManage protected global::FineUIPro.Menu Menu1; /// - /// btnMenuEdit 控件。 + /// btnMenuConfirm 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.MenuButton btnMenuEdit; - - /// - /// btnMenuDelete 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.MenuButton btnMenuDelete; + protected global::FineUIPro.MenuButton btnMenuConfirm; } } diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirmEdit.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirmEdit.aspx new file mode 100644 index 00000000..d1d2eb62 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirmEdit.aspx @@ -0,0 +1,136 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FourDecisionOtherConfirmEdit.aspx.cs" Inherits="FineUIPro.Web.TestRun.BeforeTestRun.FourDecisionOtherConfirmEdit" %> + + + + + + 提出人,总包,监理,业主确认 + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirmEdit.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirmEdit.aspx.cs new file mode 100644 index 00000000..f346289f --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirmEdit.aspx.cs @@ -0,0 +1,205 @@ +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.BeforeTestRun +{ + public partial class FourDecisionOtherConfirmEdit : PageBase + { + /// + /// 主键 + /// + public string DecisionId + { + get { return (string)ViewState["DecisionId"]; } + set { ViewState["DecisionId"] = value; } + } + + /// + /// + /// + public int ConfirmType + { + get { return (int)ViewState["ConfirmType"]; } + set { ViewState["ConfirmType"] = value; } + } + + /// + /// 是否查看 + /// + public bool IsView + { + get { return (bool)ViewState["IsView"]; } + set { ViewState["IsView"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + this.DecisionId = Request["DecisionId"]; + this.ConfirmType = string.IsNullOrWhiteSpace(Request["ConfirmType"]) ? 0 : int.Parse(Request["ConfirmType"]); + ContentPanel1.Title = this.ConfirmType == 2 ? "提出人确认" : this.ConfirmType == 3 ? "总包确认" : this.ConfirmType == 4 ? "监理确认" : this.ConfirmType == 5 ? "业主确认" : ""; + //是否查看 + this.IsView = string.IsNullOrWhiteSpace(Request["IsView"]) ? false : bool.Parse(Request["IsView"]); + //数据绑定 + PageInit(); + //判断是否查看 + if (IsView) + { + btnPass.Hidden = true; + lblResponsibilityUnit.Enabled = false; + lblQuestionDesc.Enabled = false; + lblRestrictCondition.Enabled = false; + lblLevel.Enabled = false; + lblSpeciality.Enabled = false; + lblAskDestructionTime.Enabled = false; + lblRealityDestructionTime.Enabled = false; + lblResponsibilityUser.Enabled = false; + lblProposeUser.Enabled = false; + lblGeneraUser.Enabled = false; + lblSupervisionUser.Enabled = false; + lblOwnerUser.Enabled = false; + lblDecisionIsClose.Enabled = false; + txtConfirmDesc.Enabled = false; + } + } + + /// + /// 默认绑定 + /// + public void PageInit() + { + var query = from a in Funs.DB.PreRun_SubThreeChecksFourDecision + join b in Funs.DB.Base_Project on a.ProjectId equals b.ProjectId + join c in Funs.DB.Base_Unit on a.ResponsibilityUnit equals c.UnitId + join d in Funs.DB.Sys_User on a.ResponsibilityUser equals d.UserId + join e in Funs.DB.Sys_User on a.ProposeUser equals e.UserId + join f in Funs.DB.Sys_User on a.GeneraUser equals f.UserId + join g in Funs.DB.Sys_User on a.SupervisionUser equals g.UserId + join h in Funs.DB.Sys_User on a.OwnerUser equals h.UserId + where a.DecisionId == this.DecisionId + select new + { + a.DecisionId, + a.ProjectId, + b.ProjectName, + a.ResponsibilityUnit, + ResponsibilityUnitName = c.UnitName, + a.ResponsibilityUser, + ResponsibilityUserName = d.UserName, + a.ProposeUser, + ProposeUserName = e.UserName, + a.GeneraUser, + GeneraUserName = f.UserName, + a.SupervisionUser, + SupervisionUserName = g.UserName, + a.OwnerUser, + OwnerUserName = h.UserName, + a.QuestionDesc, + a.Level, + a.Speciality, + a.AskDestructionTime, + a.RealityDestructionTime, + a.RestrictCondition, + a.DecisionIsClose, + DecisionIsCloseName = a.DecisionIsClose == 1 ? "已关闭" : "未关闭" + }; + var model = query.FirstOrDefault(); + if (model != null) + { + lblProjectName.Text = model.ProjectName; + lblResponsibilityUnit.Text = model.ResponsibilityUnitName; + lblQuestionDesc.Text = model.QuestionDesc; + lblRestrictCondition.Text = model.RestrictCondition; + lblLevel.Text = model.Level; + lblSpeciality.Text = model.Speciality; + lblAskDestructionTime.Text = model.AskDestructionTime.Value != null ? model.AskDestructionTime.Value.ToString("yyyy-MM-dd") : string.Empty; + lblRealityDestructionTime.Text = model.RealityDestructionTime != null ? model.RealityDestructionTime.Value.ToString("yyyy-MM-dd") : string.Empty; + lblResponsibilityUser.Text = model.ResponsibilityUserName; + lblProposeUser.Text = model.ProposeUserName; + lblGeneraUser.Text = model.GeneraUserName; + lblSupervisionUser.Text = model.SupervisionUserName; + lblOwnerUser.Text = model.OwnerUserName; + lblDecisionIsClose.Text = model.DecisionIsCloseName; + } + } + + /// + /// 问题图片查看 + /// + protected void imgBtnQuestionFile_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/CheckControl&menuId={1}", this.DecisionId + "q", Const.InspectTailTerm))); + } + + /// + /// 整改图片上传 + /// + protected void imgBtnRectifyFile_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/CheckControl&menuId={1}", this.DecisionId + "h", Const.InspectTailTerm))); + } + + /// + /// 确认 + /// + protected void btnPass_Click(object sender, EventArgs e) + { + var decisionModel = Funs.DB.PreRun_SubThreeChecksFourDecision.FirstOrDefault(x => x.DecisionId == this.DecisionId); + if (decisionModel != null) + { + if (this.ConfirmType == 2) + { + decisionModel.ProposeConfirm = 2; + decisionModel.ProposeConfirmData = DateTime.Now; + } + if (this.ConfirmType == 3) + { + decisionModel.GeneraConfirm = 2; + decisionModel.GeneraConfirmData = DateTime.Now; + } + if (this.ConfirmType == 4) + { + decisionModel.SupervisionConfirm = 2; + decisionModel.SupervisionConfirmData = DateTime.Now; + } + if (this.ConfirmType == 5) + { + decisionModel.OwnerConfirm = 2; + decisionModel.OwnerConfirmData = DateTime.Now; + } + if (decisionModel.ProposeConfirm == 2 && decisionModel.GeneraConfirm == 2 && decisionModel.SupervisionConfirm == 2 && decisionModel.OwnerConfirm == 2) + { + decisionModel.DecisionIsClose = 1; + } + var model = new PreRun_DecisionConfirmRecords(); + model.ConfirmId = Guid.NewGuid().ToString(); + model.ProjectId = this.CurrUser.LoginProjectId; + model.DecisionId = this.DecisionId; + model.ConfirmDesc = txtConfirmDesc.Text; + model.ConfirmTime = DateTime.Now; + model.ConfirmUser = this.CurrUser.UserId; + model.ConfirmType = this.ConfirmType; + model.ConfirmState = 1; + model.AddUser = this.CurrUser.UserId; + model.AddTime = DateTime.Now; + Funs.DB.PreRun_DecisionConfirmRecords.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/BeforeTestRun/FourDecisionOtherConfirmEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirmEdit.aspx.designer.cs new file mode 100644 index 00000000..3ffb55ab --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionOtherConfirmEdit.aspx.designer.cs @@ -0,0 +1,278 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.BeforeTestRun +{ + + + public partial class FourDecisionOtherConfirmEdit + { + + /// + /// 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; + + /// + /// lblResponsibilityUnit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblResponsibilityUnit; + + /// + /// lblQuestionDesc 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblQuestionDesc; + + /// + /// lblRestrictCondition 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblRestrictCondition; + + /// + /// lblLevel 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblLevel; + + /// + /// lblSpeciality 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblSpeciality; + + /// + /// lblAskDestructionTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblAskDestructionTime; + + /// + /// lblRealityDestructionTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblRealityDestructionTime; + + /// + /// lblResponsibilityUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblResponsibilityUser; + + /// + /// lblProposeUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProposeUser; + + /// + /// lblGeneraUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblGeneraUser; + + /// + /// lblSupervisionUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblSupervisionUser; + + /// + /// lblOwnerUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblOwnerUser; + + /// + /// lblDecisionIsClose 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblDecisionIsClose; + + /// + /// 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; + + /// + /// txtConfirmDesc 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtConfirmDesc; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnPass 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnPass; + + /// + /// WindowAtt 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowAtt; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirm.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirm.aspx new file mode 100644 index 00000000..e5b101f6 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirm.aspx @@ -0,0 +1,139 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FourDecisionResponsibilityConfirm.aspx.cs" Inherits="FineUIPro.Web.TestRun.BeforeTestRun.FourDecisionResponsibilityConfirm" %> + + + + + + 责任人确认 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirm.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirm.aspx.cs new file mode 100644 index 00000000..425dd9b4 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirm.aspx.cs @@ -0,0 +1,298 @@ +using BLL; +using Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.BeforeTestRun +{ + public partial class FourDecisionResponsibilityConfirm : PageBase + { + /// + /// 子系统主键 + /// + public string SsubSystemId + { + get { return (string)ViewState["SsubSystemId"]; } + set { ViewState["SsubSystemId"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + //加载树 + this.InitTreeMenu(); + } + } + + /// + /// 加载树 + /// + 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 decisions = Funs.DB.PreRun_SubThreeChecksFourDecision.Where(x => x.ResponsibilityUser == this.CurrUser.UserId && x.ProjectId == this.CurrUser.LoginProjectId).ToList(); + if (decisions.Count == 0) return; + //获取子系统主键 + var subsystemids = decisions.ConvertAll(x => x.SubSystemId); + //根据子系统获取其他节点ID + var userDevices = Funs.DB.PreRun_SysDevice.Where(p => p.ProjectId == this.CurrUser.LoginProjectId && subsystemids.Contains(p.PreRunId)).ToList(); + List allIds = new List(); + allIds.AddRange(userDevices.ConvertAll(x => x.ProcessesId)); + allIds.AddRange(userDevices.ConvertAll(x => x.SystemId)); + allIds.AddRange(subsystemids); + var allPreRunLs = Funs.DB.PreRun_SysDevice.Where(p => p.ProjectId == this.CurrUser.LoginProjectId && p.PreRunLevel > 1 && allIds.Contains(p.PreRunId)).ToList(); + var onePreRunLs = allPreRunLs.Where(p => p.PreRunLevel == 2).OrderBy(x => x.Sort); + foreach (var item in onePreRunLs) + { + TreeNode rootUnitNode = new TreeNode();//定义根节点 + rootUnitNode.NodeID = item.PreRunId; + rootUnitNode.Text = item.PreRunName; + rootUnitNode.ToolTip = item.PreRunName; + rootUnitNode.CommandName = ""; + rootUnitNode.EnableClickEvent = false; + rootUnitNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootUnitNode); + rootUnitNode.Expanded = true; + var otherPreRunls = allPreRunLs.Where(p => p.PreRunLevel != 1).ToList(); + this.BindNodes(rootUnitNode, otherPreRunls, item.PreRunId); + } + } + + /// + /// 绑定树节点 + /// + private void BindNodes(TreeNode node, List list, string parentId) + { + var itemList = list.Where(p => p.ParentId == parentId).OrderBy(x => x.Sort).ToList(); + if (itemList.Count > 0) + { + foreach (var item in itemList) + { + TreeNode newNode = new TreeNode(); + newNode.Text = item.PreRunName; + newNode.NodeID = item.PreRunId; + newNode.ToolTip = item.PreRunName; + newNode.CommandName = ""; + newNode.EnableClickEvent = item.PreRunLevel == 4 ? true : false; + newNode.EnableExpandEvent = item.PreRunLevel == 4 ? true : false; + newNode.Expanded = true; + node.Nodes.Add(newNode); + BindNodes(newNode, list, item.PreRunId); + } + } + } + + /// + /// 点击TreeView + /// + /// + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + this.SsubSystemId = tvControlItem.SelectedNodeID; + BindGrid(); + } + + #region 绑定数据 + + /// + /// 数据绑定 + /// + public void BindGrid() + { + string strSql = @"select a.DecisionId,a.ProjectId,a.SubSystemId,a.ProposeUser,puser.UserName as ProposeUserName,a.ResponsibilityUser,ruser.UserName as ResponsibilityUserName,a.ResponsibilityUnit,unit.UnitName as ResponsibilityUnitName,a.QuestionDesc,a.Level,a.Speciality,a.AskDestructionTime,a.RealityDestructionTime,a.RestrictCondition,a.ResponsibilityConfirm,(case a.ResponsibilityConfirm when 0 then '待提交' when 1 then '未确认' when 2 then '确认退回' when 3 then '确认通过' else '待提交' end) as ResponsibilityConfirmName,a.ProposeConfirm,(case a.ProposeConfirm when 1 then '未确认' when 2 then '确认通过' else '' end) as ProposeConfirmName,a.GeneraConfirm,(case a.GeneraConfirm when 1 then '未确认' when 2 then '确认通过' else '' end) as GeneraConfirmName,a.SupervisionConfirm,(case a.SupervisionConfirm when 1 then '未确认' when 2 then '确认通过' else '' end) as SupervisionConfirmName,a.OwnerConfirm,(case a.OwnerConfirm when 1 then '未确认' when 2 then '确认通过' else '' end) as OwnerConfirmName,a.ProposeConfirmData,a.ResponsibilityConfirmData,a.GeneraConfirmData,a.SupervisionConfirmData,a.OwnerConfirmData,a.DecisionIsClose,(case a.DecisionIsClose when 1 then '已关闭' else '未关闭' end) as DecisionIsCloseName,(case ISNULL(a.AskDestructionTime,'') when '' then 0 else DATEDIFF(DAY, GETDATE(),a.AskDestructionTime) end) as DestructionDiffDay,a.AddUser,a.AddTime,a.Sort from PreRun_SubThreeChecksFourDecision as a left join Sys_User as puser on a.ProposeUser=puser.UserId left join Sys_User as ruser on a.ResponsibilityUser=ruser.UserId left join Base_Unit as unit on a.ResponsibilityUnit=unit.UnitId where 1=1 and a.SubSystemId=@SubSystemId and a.ProjectId=@ProjectId and a.ResponsibilityUser=@ResponsibilityUser and a.ResponsibilityConfirm>0 "; + List listStr = new List(); + listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@SubSystemId", this.SsubSystemId)); + listStr.Add(new SqlParameter("@ResponsibilityUser", this.CurrUser.UserId)); + //是否确认 + if (!string.IsNullOrWhiteSpace(ddlResponsibilityConfirm.SelectedValue)) + { + strSql += " and a.ResponsibilityConfirm=@ResponsibilityConfirm"; + listStr.Add(new SqlParameter("@ResponsibilityConfirm", ddlResponsibilityConfirm.SelectedValue)); + } + //是否关闭 + if (!string.IsNullOrWhiteSpace(ddlDecisionState.Text)) + { + strSql += " and a.DecisionState=@DecisionState"; + listStr.Add(new SqlParameter("@DecisionState", ddlDecisionState.SelectedValue)); + } + strSql += " order by a.AddTime desc"; + 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) + { + btnSubmitConfirm_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["DestructionDiffDay"]); + TemplateField AdjustDiffDay = Grid1.FindColumn("DestructionDiffDay") as TemplateField; + int isClose = int.Parse(Grid1.DataKeys[e.RowIndex][1].ToString()); + if (isClose != 1) + { + 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 + + /// + /// 责任人确认 + /// + protected void btnSubmitConfirm_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + var model = Funs.DB.PreRun_SubThreeChecksFourDecision.FirstOrDefault(x => x.DecisionId == Grid1.SelectedRowID); + if (model != null) + { + if (model.ResponsibilityConfirm != 1) + { + Alert.ShowInTop("责任人“未确认”才可进行责任人确认操作!", MessageBoxIcon.Warning); + return; + } + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("FourDecisionResponsibilityConfirmEdit.aspx?DecisionId={0}", Grid1.SelectedRowID, "责任人确认 - "))); + } + + /// + /// 搜索 + /// + protected void btnQuery_Click(object sender, EventArgs e) + { + BindGrid(); + } + + /// + /// 查看 + /// + protected void btnView_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("FourDecisionResponsibilityConfirmEdit.aspx?DecisionId={0}&IsView=true", Grid1.SelectedRowID, "查看 - "))); + } + + /// + /// 是否逾期返回 + /// + /// + public string IsOverdue(object diffDayVal, object stateVal) + { + var result = string.Empty; + var diffDay = 0; + var itemState = 0; + if (diffDayVal != null) diffDay = int.Parse(diffDayVal.ToString()); + if (stateVal != null) itemState = int.Parse(stateVal.ToString()); + if (itemState != 1) + { + if (diffDay > 0) + { + result = "未逾期"; + } + else if (diffDay == 0) + { + result = "即将逾期"; + } + else if (diffDay < 0) + { + result = "已逾期"; + } + } + else + { + result = "已关闭"; + } + return result; + } + + /// + /// 右击确认 + /// + protected void btnMenuConfirm_Click(object sender, EventArgs e) + { + btnSubmitConfirm_Click(null, null); + } + + /// + /// 关闭 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirm.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirm.aspx.designer.cs new file mode 100644 index 00000000..84f59230 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirm.aspx.designer.cs @@ -0,0 +1,188 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.BeforeTestRun +{ + + + public partial class FourDecisionResponsibilityConfirm + { + + /// + /// 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; + + /// + /// Toolbar3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar3; + + /// + /// ddlResponsibilityConfirm 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlResponsibilityConfirm; + + /// + /// ddlDecisionState 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlDecisionState; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + + /// + /// btnView 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnView; + + /// + /// btnSubmitConfirm 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSubmitConfirm; + + /// + /// 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; + + /// + /// btnMenuConfirm 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuConfirm; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirmEdit.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirmEdit.aspx new file mode 100644 index 00000000..9a3cc857 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirmEdit.aspx @@ -0,0 +1,138 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FourDecisionResponsibilityConfirmEdit.aspx.cs" Inherits="FineUIPro.Web.TestRun.BeforeTestRun.FourDecisionResponsibilityConfirmEdit" %> + + + + + + 责任人确认 + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirmEdit.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirmEdit.aspx.cs new file mode 100644 index 00000000..6713554e --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirmEdit.aspx.cs @@ -0,0 +1,223 @@ +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.BeforeTestRun +{ + public partial class FourDecisionResponsibilityConfirmEdit : PageBase + { + /// + /// 主键 + /// + public string DecisionId + { + get { return (string)ViewState["DecisionId"]; } + set { ViewState["DecisionId"] = 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; } + } + + /// + /// 整改图片是否可编辑 + /// + public int RectifyEditImg + { + get { return (int)ViewState["RectifyEditImg"]; } + set { ViewState["RectifyEditImg"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + this.DecisionId = Request["DecisionId"]; + //是否查看 + this.IsView = string.IsNullOrWhiteSpace(Request["IsView"]) ? false : bool.Parse(Request["IsView"]); + //数据绑定 + PageInit(); + //判断是否查看 + if (IsView) + { + btnReturn.Hidden = true; + btnPass.Hidden = true; + QuestionEditImg = -1; + RectifyEditImg = -1; + lblResponsibilityUnit.Enabled = false; + lblQuestionDesc.Enabled = false; + lblRestrictCondition.Enabled = false; + lblLevel.Enabled = false; + lblSpeciality.Enabled = false; + lblAskDestructionTime.Enabled = false; + lblRealityDestructionTime.Enabled = false; + lblResponsibilityUser.Enabled = false; + lblProposeUser.Enabled = false; + lblGeneraUser.Enabled = false; + lblSupervisionUser.Enabled = false; + lblOwnerUser.Enabled = false; + lblDecisionIsClose.Enabled = false; + txtConfirmDesc.Enabled = false; + } + } + + /// + /// 默认绑定 + /// + public void PageInit() + { + QuestionEditImg = -1; + RectifyEditImg = 0; + var query = from a in Funs.DB.PreRun_SubThreeChecksFourDecision + join b in Funs.DB.Base_Project on a.ProjectId equals b.ProjectId + join c in Funs.DB.Base_Unit on a.ResponsibilityUnit equals c.UnitId + join d in Funs.DB.Sys_User on a.ResponsibilityUser equals d.UserId + join e in Funs.DB.Sys_User on a.ProposeUser equals e.UserId + join f in Funs.DB.Sys_User on a.GeneraUser equals f.UserId + join g in Funs.DB.Sys_User on a.SupervisionUser equals g.UserId + join h in Funs.DB.Sys_User on a.OwnerUser equals h.UserId + where a.DecisionId == this.DecisionId + select new + { + a.DecisionId, + a.ProjectId, + b.ProjectName, + a.ResponsibilityUnit, + ResponsibilityUnitName = c.UnitName, + a.ResponsibilityUser, + ResponsibilityUserName = d.UserName, + a.ProposeUser, + ProposeUserName = e.UserName, + a.GeneraUser, + GeneraUserName = f.UserName, + a.SupervisionUser, + SupervisionUserName = g.UserName, + a.OwnerUser, + OwnerUserName = h.UserName, + a.QuestionDesc, + a.Level, + a.Speciality, + a.AskDestructionTime, + a.RealityDestructionTime, + a.RestrictCondition, + a.DecisionIsClose, + DecisionIsCloseName = a.DecisionIsClose == 1 ? "已关闭" : "未关闭" + }; + var model = query.FirstOrDefault(); + if (model != null) + { + lblProjectName.Text = model.ProjectName; + lblResponsibilityUnit.Text = model.ResponsibilityUnitName; + lblQuestionDesc.Text = model.QuestionDesc; + lblRestrictCondition.Text = model.RestrictCondition; + lblLevel.Text = model.Level; + lblSpeciality.Text = model.Speciality; + lblAskDestructionTime.Text = model.AskDestructionTime.Value != null ? model.AskDestructionTime.Value.ToString("yyyy-MM-dd") : string.Empty; + lblRealityDestructionTime.Text = model.RealityDestructionTime != null ? model.RealityDestructionTime.Value.ToString("yyyy-MM-dd") : string.Empty; + lblResponsibilityUser.Text = model.ResponsibilityUserName; + lblProposeUser.Text = model.ProposeUserName; + lblGeneraUser.Text = model.GeneraUserName; + lblSupervisionUser.Text = model.SupervisionUserName; + lblOwnerUser.Text = model.OwnerUserName; + lblDecisionIsClose.Text = model.DecisionIsCloseName; + } + } + + /// + /// 问题图片查看 + /// + 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.DecisionId + "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.DecisionId + "h", Const.InspectTailTerm))); + } + + /// + /// 退回 + /// + protected void btnReturn_Click(object sender, EventArgs e) + { + var decisionModel = Funs.DB.PreRun_SubThreeChecksFourDecision.FirstOrDefault(x => x.DecisionId == this.DecisionId); + if (decisionModel != null) + { + decisionModel.ResponsibilityConfirm = 2; + var model = new PreRun_DecisionConfirmRecords(); + model.ConfirmId = Guid.NewGuid().ToString(); + model.ProjectId = this.CurrUser.LoginProjectId; + model.DecisionId = this.DecisionId; + model.ConfirmDesc = txtConfirmDesc.Text; + model.ConfirmTime = DateTime.Now; + model.ConfirmUser = this.CurrUser.UserId; + model.ConfirmType = 1; + model.ConfirmState = 2; + model.AddUser = this.CurrUser.UserId; + model.AddTime = DateTime.Now; + Funs.DB.PreRun_DecisionConfirmRecords.InsertOnSubmit(model); + Funs.DB.SubmitChanges(); + ShowNotify("退回成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + } + + /// + /// 确认通过 + /// + protected void btnPass_Click(object sender, EventArgs e) + { + var decisionModel = Funs.DB.PreRun_SubThreeChecksFourDecision.FirstOrDefault(x => x.DecisionId == this.DecisionId); + if (decisionModel != null) + { + decisionModel.ResponsibilityConfirm = 3; + decisionModel.ResponsibilityConfirmData = DateTime.Now; + var model = new PreRun_DecisionConfirmRecords(); + model.ConfirmId = Guid.NewGuid().ToString(); + model.ProjectId = this.CurrUser.LoginProjectId; + model.DecisionId = this.DecisionId; + model.ConfirmDesc = txtConfirmDesc.Text; + model.ConfirmTime = DateTime.Now; + model.ConfirmUser = this.CurrUser.UserId; + model.ConfirmType = 1; + model.ConfirmState = 1; + model.AddUser = this.CurrUser.UserId; + model.AddTime = DateTime.Now; + Funs.DB.PreRun_DecisionConfirmRecords.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/BeforeTestRun/FourDecisionResponsibilityConfirmEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirmEdit.aspx.designer.cs new file mode 100644 index 00000000..0e212674 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionResponsibilityConfirmEdit.aspx.designer.cs @@ -0,0 +1,287 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.BeforeTestRun +{ + + + public partial class FourDecisionResponsibilityConfirmEdit + { + + /// + /// 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; + + /// + /// lblResponsibilityUnit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblResponsibilityUnit; + + /// + /// lblQuestionDesc 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblQuestionDesc; + + /// + /// lblRestrictCondition 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblRestrictCondition; + + /// + /// lblLevel 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblLevel; + + /// + /// lblSpeciality 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblSpeciality; + + /// + /// lblAskDestructionTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblAskDestructionTime; + + /// + /// lblRealityDestructionTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblRealityDestructionTime; + + /// + /// lblResponsibilityUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblResponsibilityUser; + + /// + /// lblProposeUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProposeUser; + + /// + /// lblGeneraUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblGeneraUser; + + /// + /// lblSupervisionUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblSupervisionUser; + + /// + /// lblOwnerUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblOwnerUser; + + /// + /// lblDecisionIsClose 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblDecisionIsClose; + + /// + /// 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; + + /// + /// txtConfirmDesc 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtConfirmDesc; + + /// + /// 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/BeforeTestRun/InspectTailTermEdit.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx index 401981e8..d62fd525 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx @@ -113,15 +113,6 @@ - <%-- - - - - - - - --%> diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTemplate.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTemplate.aspx.cs index d8db8f96..0868a5e9 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTemplate.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTemplate.aspx.cs @@ -37,7 +37,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun rootNode.ToolTip = ""; rootNode.EnableClickEvent = true; this.tvControlItem.Nodes.Add(rootNode); - var list = Funs.DB.PreRun_WorkPackage.OrderBy(x => x.Sort).ToList(); + var list = Funs.DB.PreRun_WorkPackage.Where(a => a.SpecialWorkPack == 0).OrderBy(x => x.Sort).ToList(); foreach (var item in list) { TreeNode rootUnitNode = new TreeNode();//定义根节点 diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutAllPassList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutAllPassList.aspx.cs index 06d7da1b..555ae203 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutAllPassList.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutAllPassList.aspx.cs @@ -44,7 +44,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun var list = from a in Funs.DB.PreRun_SysDevice join b in Funs.DB.PreRun_SubSysWorkPackage on a.PreRunId equals b.SubSystemId join c in Funs.DB.PreRun_WorkPackage on b.WorkPackId equals c.WorkPackId - where a.ProjectId == this.CurrUser.LoginProjectId && subSystemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId) + where a.ProjectId == this.CurrUser.LoginProjectId && subSystemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId) && c.SpecialWorkPack == 0 select new { a.PreRunId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode }; if (list.Count() > 0) { diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectInstrument.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectInstrument.aspx new file mode 100644 index 00000000..c625ae90 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectInstrument.aspx @@ -0,0 +1,96 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SelectInstrument.aspx.cs" Inherits="FineUIPro.Web.TestRun.BeforeTestRun.SelectInstrument" %> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectInstrument.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectInstrument.aspx.cs new file mode 100644 index 00000000..dfe1ef82 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectInstrument.aspx.cs @@ -0,0 +1,157 @@ +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.BeforeTestRun +{ + public partial class SelectInstrument : PageBase + { + /// + /// 子系统id + /// + public string SubSystemId + { + get { return (string)ViewState["SubSystemId"]; } + set { ViewState["SubSystemId"] = value; } + } + + /// + /// 系统id + /// + public string SystemId + { + get { return (string)ViewState["SystemId"]; } + set { ViewState["SystemId"] = value; } + } + + /// + /// 选中的id + /// + public string SelectInstrumentIds + { + get { return (string)ViewState["SelectInstrumentIds"]; } + set { ViewState["SelectInstrumentIds"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.SubSystemId = Request["SubSystemId"]; + this.SystemId = Request["SystemId"]; + this.SelectInstrumentIds = Request["SelectInstrumentIds"]; + // 绑定表格 + BindGrid(); + } + } + + /// + /// 绑定数据 + /// + private void BindGrid() + { + string strSql = @"select * from PreRun_InstrumentSysPiping where ProjectId=@ProjectId and SystemId=@SystemId "; + List listStr = new List(); + listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@SystemId", this.SystemId)); + if (!string.IsNullOrWhiteSpace(SelectInstrumentIds)) + { + var ids = SelectInstrumentIds.Split(',').ToList(); + strSql += $" and InstrumentId not in ('{string.Join("','", ids)}')"; + } + 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(); + } + + #region 确认 + + /// + /// 确认 + /// + protected void btnSave_Click(object sender, EventArgs e) + { + var requestIds = SelectInstrumentIds.Split(',').ToList(); + string ids = SelectInstrumentIds; + foreach (var item in this.Grid1.SelectedRowIDArray) + { + if (requestIds.Contains(item)) continue; + if (string.IsNullOrWhiteSpace(ids)) + { + ids = item; + } + else + { + ids += "," + item; + } + } + PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(ids) + ActiveWindow.GetHidePostBackReference()); + } + + #endregion + + #region 表排序、分页、关闭窗口 + + /// + /// 分页 + /// + /// + /// + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + Grid1.PageIndex = e.NewPageIndex; + BindGrid(); + } + + /// + /// 排序 + /// + /// + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + BindGrid(); + } + + /// + /// 分页显示条数下拉框 + /// + /// + /// + protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) + { + BindGrid(); + } + + /// + /// 关闭弹出窗 + /// + /// + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + + /// + /// 分页下拉框 + /// + protected void ddlPageSize_SelectedIndexChanged1(object sender, EventArgs e) + { + Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); + BindGrid(); + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectInstrument.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectInstrument.aspx.designer.cs new file mode 100644 index 00000000..964a42c4 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectInstrument.aspx.designer.cs @@ -0,0 +1,98 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.BeforeTestRun +{ + + + public partial class SelectInstrument + { + + /// + /// 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; + + /// + /// ToolbarSeparator2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarSeparator ToolbarSeparator2; + + /// + /// ToolbarText2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarText ToolbarText2; + + /// + /// ddlPageSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPageSize; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SetWorkPackage.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SetWorkPackage.aspx index ff430fbb..f41822fb 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SetWorkPackage.aspx +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SetWorkPackage.aspx @@ -69,6 +69,7 @@ + diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SetWorkPackage.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SetWorkPackage.aspx.cs index 157e4dc5..9d3eb3bb 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SetWorkPackage.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SetWorkPackage.aspx.cs @@ -29,7 +29,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun ///
private void BindGrid() { - string strSql = @"select WorkPackId,WorkPackName,WorkPackType,(case WorkPackType when 1 then '管道' when 2 then '设备' else '全部' end) as WorkPackTypeName,Remark,AddTime,Sort from PreRun_WorkPackage WHERE 1=1 "; + string strSql = @"select WorkPackId,WorkPackName,WorkPackType,(case WorkPackType when 1 then '管道' when 2 then '设备' when 3 then '仪表索引' else '全部' end) as WorkPackTypeName,Remark,AddTime,Sort from PreRun_WorkPackage WHERE 1=1 "; List listStr = new List(); if (!string.IsNullOrEmpty(this.txtsWorkPackName.Text.Trim())) { diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx index 8cb08df3..72eb85e4 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx @@ -38,7 +38,7 @@