--SELECT * FROM dbo.Pipeline_WeldJoint WHERE PipelineId='8223e254-7bcb-4443-9321-61f1ee6dc395' INSERT INTO Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,ButtonEnName,SortIndex) VALUES('94F17203-0D8D-483B-91F4-3C7192629E34','0CA58EC2-7934-49B3-A2C3-327FAD27C541','保存','Save',1) GO ALTER TABLE dbo.Batch_BatchTrust ADD NDEUuit NVARCHAR(50) GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'检测单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Batch_BatchTrust', @level2type=N'COLUMN',@level2name=N'NDEUuit' GO ALTER TABLE [dbo].[Batch_BatchTrust] WITH CHECK ADD CONSTRAINT [FK_Batch_BatchTrust_Base_Unit1] FOREIGN KEY([NDEUuit]) REFERENCES [dbo].[Base_Unit] ([UnitId]) GO ALTER TABLE [dbo].[Batch_BatchTrust] CHECK CONSTRAINT [FK_Batch_BatchTrust_Base_Unit1] GO DELETE FROM dbo.Pipeline_WeldJoint WHERE ProjectId='8ddc0c0f-0cf4-4cc5-bc1e-b640668de2ae' DELETE FROM dbo.Pipeline_PipelineDetectionType WHERE PipelineId IN (SELECT PipelineId FROM dbo.Pipeline_Pipeline WHERE ProjectId='8ddc0c0f-0cf4-4cc5-bc1e-b640668de2ae') DELETE FROM dbo.Pipeline_Pipeline WHERE ProjectId='8ddc0c0f-0cf4-4cc5-bc1e-b640668de2ae' GO ALTER VIEW [dbo].[View_Batch_BatchTrust] AS /********无损委托********/ SELECT BatchTrust.TrustBatchId, BatchTrust.TrustBatchCode, (CASE WHEN BatchTrust.TrustType='1' THEN BatchTrust.TrustBatchCode WHEN BatchTrust.TrustType='2' THEN BatchTrust.TrustBatchCode+'K1' WHEN BatchTrust.TrustType='3' THEN BatchTrust.TrustBatchCode+'R1' END) AS NewTrustBatchCode, BatchTrust.TrustDate, BatchTrust.NDEUuit, BatchTrust.ProjectId, project.ProjectCode, BatchTrust.UnitId, BatchTrust.InstallationId, BatchTrust.PipelineId, BatchTrust.DetectionTypeId, BatchTrust.IsCheck, BatchTrust.TopointBatch, Unit.UnitCode, Unit.UnitName, Installation.InstallationName, DetectionType.DetectionTypeCode, ndtCheck.TrustBatchId AS CheckTrustBatchId FROM Batch_BatchTrust AS BatchTrust LEFT JOIN Base_Unit AS Unit ON Unit.UnitId=BatchTrust.UnitId LEFT JOIN Project_Installation AS Installation ON Installation.InstallationId=BatchTrust.InstallationId LEFT JOIN Base_DetectionType AS DetectionType ON DetectionType.DetectionTypeId=BatchTrust.DetectionTypeId LEFT JOIN dbo.Base_Project project ON project.ProjectId = BatchTrust.ProjectId LEFT JOIN dbo.Batch_NDE ndtCheck ON ndtCheck.TrustBatchId = BatchTrust.TrustBatchId GO ALTER PROC [dbo].[WelderRanking] @startDate datetime = NULL, @endDate datetime = NULL, @projectTypeId nvarchar(50) AS /*焊工名次*/ SELECT --ROW_NUMBER() over(order by ) as No --名次 Welder.WelderId, Welder.WelderName --焊工姓名 ,Welder.WelderCode as StampNo --焊工号 ,Unit.UnitName as WorkFor --工作单位 ,ISNULL(Totalwelds.Totalwelds,0) AS Totalwelds --总焊口数 ,ISNULL(TesetedJoints.TesetedJoints,0) AS TesetedJoints --RT检测数 ,ISNULL(RejectedJoints.RejectedJoints,0) AS RejectedJoints --不合格数 ,CAST(CASE ISNULL(TesetedJoints.TesetedJoints,0) WHEN 0 THEN 0 ELSE 1.0*ISNULL(RejectedJoints.RejectedJoints,0) / (1.0 *TesetedJoints.TesetedJoints) END AS DECIMAL(19,3)) AS Rejectrates -- 不合格率 FROM Welder_Welder AS Welder LEFT JOIN dbo.Base_Unit as Unit on Unit.UnitId=Welder.UnitId --总焊口数 LEFT JOIN (SELECT count(*) as Totalwelds,WeldJoint.BackingWelderId FROM Pipeline_WeldJoint AS WeldJoint left join dbo.Base_Project as Project on Project.ProjectId=WeldJoint.ProjectId left join dbo.Pipeline_WeldingDaily as WeldingDaily on WeldingDaily.WeldingDailyId=WeldJoint.WeldingDailyId where WeldJoint.WeldingDailyId is not null and Project.ProjectTypeId=@projectTypeId and (@startDate is null or @startDate<=WeldingDate) and (@endDate is null or @endDate>=WeldingDate) GROUP BY WeldJoint.BackingWelderId) AS Totalwelds ON Totalwelds.BackingWelderId = Welder.WelderId --RT检测数 LEFT JOIN (SELECT Count(*) AS TesetedJoints,WeldJoint.BackingWelderId FROM Batch_NDEItem AS NDEItem left join Batch_NDE as NDE on NDEItem.NDEID=NDE.NDEID left join dbo.Base_Project as Project on Project.ProjectId=NDE.ProjectId left join Batch_BatchTrustItem as BatchTrustItem on BatchTrustItem.TrustBatchItemId=NDEItem.TrustBatchItemId left join Base_DetectionType as DetectionType on DetectionType.DetectionTypeId=NDEItem.DetectionTypeId left join Pipeline_WeldJoint as WeldJoint on WeldJoint.WeldJointId=BatchTrustItem.WeldJointId where Project.ProjectTypeId=@projectTypeId and (@startDate is null or @startDate<=NDEDate) and (@endDate is null or @endDate>=NDEDate) and DetectionType.SysType='射线检测' GROUP BY WeldJoint.BackingWelderId) AS TesetedJoints ON TesetedJoints.BackingWelderId =Welder.WelderId --不合格数 LEFT JOIN (SELECT Count(*) AS RejectedJoints,WeldJoint.BackingWelderId FROM Batch_NDEItem AS NDEItem left join Batch_NDE as NDE on NDEItem.NDEID=NDE.NDEID left join dbo.Base_Project as Project on Project.ProjectId=NDE.ProjectId left join Batch_BatchTrustItem as BatchTrustItem on BatchTrustItem.TrustBatchItemId=NDEItem.TrustBatchItemId left join Base_DetectionType as DetectionType on DetectionType.DetectionTypeId=NDEItem.DetectionTypeId left join Pipeline_WeldJoint as WeldJoint on WeldJoint.WeldJointId=BatchTrustItem.WeldJointId where CheckResult='2' and Project.ProjectTypeId=@projectTypeId and (@startDate is null or @startDate<=NDEDate) and (@endDate is null or @endDate>=NDEDate) and DetectionType.SysType='射线检测' GROUP BY WeldJoint.BackingWelderId) AS RejectedJoints ON RejectedJoints.BackingWelderId =Welder.WelderId WHERE Welder.ProjectTypeId=@projectTypeId ORDER BY CAST(CASE ISNULL(TesetedJoints.TesetedJoints,0) WHEN 0 THEN 0 ELSE 1.0*ISNULL(RejectedJoints.RejectedJoints,0) / (1.0 *TesetedJoints.TesetedJoints) END AS DECIMAL(19,3)),WelderCode GO ALTER PROC [dbo].[UnitReport] @startDate datetime = NULL, @endDate datetime = NULL, @projectTypeId nvarchar(50)=NULL AS /*承包商报表*/ SELECT v.UnitId ,Unit.UnitName as Party --施焊单位 ,ISNULL(TestedWelds.TestedWelds,0) as TestedWelds --拍片焊口数 ,ISNULL(RejectedWelds.RejectedWelds,0) as RejectedWelds --不合格焊口数 ,CAST(CASE ISNULL(TestedWelds.TestedWelds,0) WHEN 0 THEN 0 ELSE 1.0*ISNULL(RejectedWelds.RejectedWelds,0) / (1.0 *TestedWelds.TestedWelds) END AS DECIMAL(19,3)) AS RejectedRate -- 不合格率 ,CAST(CASE ISNULL(StartDateTestedWelds.StartDateTestedWelds,0) WHEN 0 THEN 0 ELSE 1.0*ISNULL(StartDateRejectedWelds.StartDateRejectedWelds,0) / (1.0 *StartDateTestedWelds.StartDateTestedWelds) END AS DECIMAL(19,3)) AS StartDateRejectedRate -- 截至开始日期不合格率 ,CAST(CASE ISNULL(EndDateTestedWelds.EndDateTestedWelds,0) WHEN 0 THEN 0 ELSE 1.0*ISNULL(EndDateRejectedWelds.EndDateRejectedWelds,0) / (1.0 *EndDateTestedWelds.EndDateTestedWelds) END AS DECIMAL(19,3)) AS StartDateRejectedRate -- 截至结束日期不合格率 FROM (SELECT UnitId FROM dbo.Project_Unit LEFT JOIN dbo.Base_Project p ON p.ProjectId = Project_Unit.ProjectId WHERE p.ProjectTypeId=@projectTypeId GROUP BY unitid) v LEFT JOIN dbo.Base_Unit Unit ON Unit.UnitId = v.UnitId --拍片焊口数 LEFT JOIN (SELECT Count(*) AS TestedWelds,Pipeline.UnitId FROM Batch_NDEItem AS NDEItem left join Batch_NDE as NDE on NDEItem.NDEID=NDE.NDEID left join dbo.Base_Project as Project on Project.ProjectId=NDE.ProjectId left join Batch_BatchTrustItem as BatchTrustItem on BatchTrustItem.TrustBatchItemId=NDEItem.TrustBatchItemId left join Base_DetectionType as DetectionType on DetectionType.DetectionTypeId=NDEItem.DetectionTypeId left join Pipeline_WeldJoint as WeldJoint on WeldJoint.WeldJointId=BatchTrustItem.WeldJointId left join Pipeline_Pipeline as Pipeline on Pipeline.PipelineId=WeldJoint.PipelineId where (@projectTypeId is null or Project.ProjectTypeId=@projectTypeId) and (@startDate is null or @startDate<=NDEDate) and (@endDate is null or @endDate>=NDEDate) and DetectionType.SysType='射线检测' GROUP BY Pipeline.UnitId) AS TestedWelds ON TestedWelds.UnitId =v.UnitId --不合格焊口数 LEFT JOIN (SELECT Count(*) AS RejectedWelds,Pipeline.UnitId FROM Batch_NDEItem AS NDEItem left join Batch_NDE as NDE on NDEItem.NDEID=NDE.NDEID left join dbo.Base_Project as Project on Project.ProjectId=NDE.ProjectId left join Batch_BatchTrustItem as BatchTrustItem on BatchTrustItem.TrustBatchItemId=NDEItem.TrustBatchItemId left join Base_DetectionType as DetectionType on DetectionType.DetectionTypeId=NDEItem.DetectionTypeId left join Pipeline_WeldJoint as WeldJoint on WeldJoint.WeldJointId=BatchTrustItem.WeldJointId left join Pipeline_Pipeline as Pipeline on Pipeline.PipelineId=WeldJoint.PipelineId where CheckResult='2' and (@projectTypeId is null or Project.ProjectTypeId=@projectTypeId) and (@startDate is null or @startDate<=NDEDate) and (@endDate is null or @endDate>=NDEDate) and DetectionType.SysType='射线检测' GROUP BY Pipeline.UnitId) AS RejectedWelds ON RejectedWelds.UnitId =v.UnitId --截至开始日期拍片焊口数 LEFT JOIN (SELECT Count(*) AS StartDateTestedWelds,Pipeline.UnitId FROM Batch_NDEItem AS NDEItem left join Batch_NDE as NDE on NDEItem.NDEID=NDE.NDEID left join dbo.Base_Project as Project on Project.ProjectId=NDE.ProjectId left join Batch_BatchTrustItem as BatchTrustItem on BatchTrustItem.TrustBatchItemId=NDEItem.TrustBatchItemId left join Base_DetectionType as DetectionType on DetectionType.DetectionTypeId=NDEItem.DetectionTypeId left join Pipeline_WeldJoint as WeldJoint on WeldJoint.WeldJointId=BatchTrustItem.WeldJointId left join Pipeline_Pipeline as Pipeline on Pipeline.PipelineId=WeldJoint.PipelineId where (@projectTypeId is null or Project.ProjectTypeId=@projectTypeId) and (@startDate is null or @startDate>=NDEDate) and DetectionType.SysType='射线检测' GROUP BY Pipeline.UnitId) AS StartDateTestedWelds ON StartDateTestedWelds.UnitId =v.UnitId --截至开始日期不合格焊口数 LEFT JOIN (SELECT Count(*) AS StartDateRejectedWelds,Pipeline.UnitId FROM Batch_NDEItem AS NDEItem left join Batch_NDE as NDE on NDEItem.NDEID=NDE.NDEID left join dbo.Base_Project as Project on Project.ProjectId=NDE.ProjectId left join Batch_BatchTrustItem as BatchTrustItem on BatchTrustItem.TrustBatchItemId=NDEItem.TrustBatchItemId left join Base_DetectionType as DetectionType on DetectionType.DetectionTypeId=NDEItem.DetectionTypeId left join Pipeline_WeldJoint as WeldJoint on WeldJoint.WeldJointId=BatchTrustItem.WeldJointId left join Pipeline_Pipeline as Pipeline on Pipeline.PipelineId=WeldJoint.PipelineId where CheckResult='2' and (@projectTypeId is null or Project.ProjectTypeId=@projectTypeId) and (@startDate is null or @startDate>=NDEDate) and DetectionType.SysType='射线检测' GROUP BY Pipeline.UnitId) AS StartDateRejectedWelds ON StartDateRejectedWelds.UnitId =v.UnitId --截至结束日期拍片焊口数 LEFT JOIN (SELECT Count(*) AS EndDateTestedWelds,Pipeline.UnitId FROM Batch_NDEItem AS NDEItem left join Batch_NDE as NDE on NDEItem.NDEID=NDE.NDEID left join dbo.Base_Project as Project on Project.ProjectId=NDE.ProjectId left join Batch_BatchTrustItem as BatchTrustItem on BatchTrustItem.TrustBatchItemId=NDEItem.TrustBatchItemId left join Base_DetectionType as DetectionType on DetectionType.DetectionTypeId=NDEItem.DetectionTypeId left join Pipeline_WeldJoint as WeldJoint on WeldJoint.WeldJointId=BatchTrustItem.WeldJointId left join Pipeline_Pipeline as Pipeline on Pipeline.PipelineId=WeldJoint.PipelineId where (@projectTypeId is null or Project.ProjectTypeId=@projectTypeId) and (@endDate is null or @endDate>=NDEDate) and DetectionType.SysType='射线检测' GROUP BY Pipeline.UnitId) AS EndDateTestedWelds ON EndDateTestedWelds.UnitId =v.UnitId --截至结束日期不合格焊口数 LEFT JOIN (SELECT Count(*) AS EndDateRejectedWelds,Pipeline.UnitId FROM Batch_NDEItem AS NDEItem left join Batch_NDE as NDE on NDEItem.NDEID=NDE.NDEID left join dbo.Base_Project as Project on Project.ProjectId=NDE.ProjectId left join Batch_BatchTrustItem as BatchTrustItem on BatchTrustItem.TrustBatchItemId=NDEItem.TrustBatchItemId left join Base_DetectionType as DetectionType on DetectionType.DetectionTypeId=NDEItem.DetectionTypeId left join Pipeline_WeldJoint as WeldJoint on WeldJoint.WeldJointId=BatchTrustItem.WeldJointId left join Pipeline_Pipeline as Pipeline on Pipeline.PipelineId=WeldJoint.PipelineId where CheckResult='2' and (@projectTypeId is null or Project.ProjectTypeId=@projectTypeId) and (@endDate is null or @endDate>=NDEDate) and DetectionType.SysType='射线检测' GROUP BY Pipeline.UnitId) AS EndDateRejectedWelds ON EndDateRejectedWelds.UnitId =v.UnitId WHERE Unit.UnitTypeId='5' ORDER BY Unit.UnitCode GO