229 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
			
		
		
	
	
			229 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
--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		
 | 
						||
		
 |