430 lines
		
	
	
		
			51 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
			
		
		
	
	
			430 lines
		
	
	
		
			51 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
ALTER TABLE dbo.Welder_WelderQualify ADD IsPrintShow bit NULL
 | 
						||
GO
 | 
						||
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'打印是否显示' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Welder_WelderQualify', @level2type=N'COLUMN',@level2name=N'IsPrintShow'
 | 
						||
GO
 | 
						||
 | 
						||
 | 
						||
ALTER VIEW [dbo].[View_Welder_WelderQualify]
 | 
						||
AS
 | 
						||
/*******焊工资质***********/ 
 | 
						||
SELECT WelderQualify.WelderQualifyId, 
 | 
						||
WelderQualify.WelderId, 
 | 
						||
WelderQualify.QualificationItem, 
 | 
						||
WelderQualify.LimitDate, 
 | 
						||
WelderQualify.CheckDate,
 | 
						||
WelderQualify.WeldingMethodId, 
 | 
						||
WelderQualify.MaterialId, 
 | 
						||
WelderQualify.WeldingLocationId, 
 | 
						||
WelderQualify.ThicknessMin,
 | 
						||
WelderQualify.ThicknessMax,
 | 
						||
WelderQualify.SizesMin,
 | 
						||
WelderQualify.SizesMax,
 | 
						||
(CONVERT(NVARCHAR(10),WelderQualify.ThicknessMin)+'-'+(CONVERT(NVARCHAR(10),WelderQualify.ThicknessMax))) AS Thickness, 
 | 
						||
(CONVERT(NVARCHAR(10),WelderQualify.SizesMin)+'-'+(CONVERT(NVARCHAR(10),WelderQualify.SizesMax))) AS Size,
 | 
						||
WelderQualify.Remark,
 | 
						||
Welder.WelderCode,
 | 
						||
Welder.WelderName,
 | 
						||
WeldingMethod.WeldingMethodCode,
 | 
						||
WeldingLocation.WeldingLocationCode,
 | 
						||
WelderQualify.IsPrintShow,
 | 
						||
--Material.SteelType,
 | 
						||
(CASE WelderQualify.MaterialId WHEN '1' THEN '碳钢' 
 | 
						||
						 WHEN '2' THEN '不锈钢' 
 | 
						||
						 WHEN '3' THEN '铬钼钢' 
 | 
						||
						 WHEN '4' THEN '低合金钢' 
 | 
						||
						 WHEN '5' THEN '镍合金钢'
 | 
						||
						 WHEN '6' THEN '钛合金钢'
 | 
						||
						 WHEN '7' THEN '其他'
 | 
						||
						 ELSE '' END) AS SteelTypeName
 | 
						||
FROM Welder_WelderQualify AS WelderQualify
 | 
						||
LEFT JOIN Welder_Welder AS Welder ON Welder.WelderId=WelderQualify.WelderId
 | 
						||
LEFT JOIN Base_WeldingMethod AS WeldingMethod ON WeldingMethod.WeldingMethodId=WelderQualify.WeldingMethodId
 | 
						||
--LEFT JOIN Base_Material AS Material ON Material.MaterialId = WelderQualify.MaterialId
 | 
						||
LEFT JOIN Base_WeldingLocation AS WeldingLocation ON WeldingLocation.WeldingLocationId=WelderQualify.WeldingLocationId
 | 
						||
 | 
						||
 | 
						||
GO
 | 
						||
 | 
						||
 | 
						||
ALTER PROC [dbo].[WeldingQualityWeekMonthReport]
 | 
						||
          @startDate datetime = NULL,
 | 
						||
          @endDate datetime = NULL,
 | 
						||
          @projectType NVARCHAR(50)=NULL,
 | 
						||
          @NdtType NVARCHAR(50)=NULL
 | 
						||
AS
 | 
						||
/*焊接质量周月报*/
 | 
						||
SELECT 
 | 
						||
	Project.ProjectCode as ProjectNo    --项目号
 | 
						||
	,ISNULL(Totalwelds.Totalwelds,0) AS Totalwelds      --焊口总数
 | 
						||
	,ISNULL(DBTotal.DBTotal,0) as DBTotal    --寸口总数
 | 
						||
	,ISNULL(completedwelds.completedwelds,0) AS completedwelds    --完成焊口
 | 
						||
	,CAST(CASE ISNULL(Totalwelds.Totalwelds,0) WHEN 0 THEN 0
 | 
						||
		ELSE 1.0*ISNULL(completedwelds.completedwelds,0) / (1.0 *Totalwelds.Totalwelds) END AS DECIMAL(19,3))
 | 
						||
		AS completedrates   --完成率
 | 
						||
	,ISNULL(CumulativeDB.CumulativeDB,0) as CumulativeDB   --完成寸口数
 | 
						||
	,CAST((ISNULL(DBTotal.DBTotal,0)-ISNULL(CumulativeDB.CumulativeDB,0)) AS DECIMAL(19,3))
 | 
						||
		AS RemainingDB   --剩余寸口数
 | 
						||
	,ISNULL(EntrustTestwelds.EntrustTestwelds,0) AS EntrustTestwelds    --委托检测焊口
 | 
						||
	,ISNULL(Testwelds.Testwelds,0) AS Testwelds                 --已检测焊口
 | 
						||
	,CAST(CASE ISNULL(EntrustTestwelds.EntrustTestwelds,0) WHEN 0 THEN 0
 | 
						||
		ELSE 1.0*ISNULL(Testwelds.Testwelds,0) / (1.0 *EntrustTestwelds.EntrustTestwelds) END AS DECIMAL(19,3))
 | 
						||
		AS Testrates -- 检测完成率
 | 
						||
	,ISNULL(Rejectwelds.Rejectwelds,0) as Rejectwelds    --不合格焊口
 | 
						||
	,CAST(CASE ISNULL(Testwelds.Testwelds,0) WHEN 0 THEN 0
 | 
						||
		ELSE 1.0*ISNULL(Rejectwelds.Rejectwelds,0) / (1.0 *Testwelds.Testwelds) END AS DECIMAL(19,3))
 | 
						||
		AS Rejectrates -- 不合格率
 | 
						||
	,ISNULL(Currentcompletedwelds.Currentcompletedwelds,0) as Currentcompletedwelds      --当期完成焊口 
 | 
						||
	,ISNULL(CurrentTestwelds.CurrentTestwelds,0) as CurrentTestwelds              --当期检测焊口  
 | 
						||
	,ISNULL(CurrentRejectwelds.CurrentRejectwelds,0) as CurrentRejectwelds       --当期不合格焊口
 | 
						||
	,CAST(CASE ISNULL(CurrentTestwelds.CurrentTestwelds,0) WHEN 0 THEN 0
 | 
						||
		ELSE 1.0*ISNULL(CurrentRejectwelds.CurrentRejectwelds,0) / (1.0 *CurrentTestwelds.CurrentTestwelds) END AS DECIMAL(19,3))
 | 
						||
		AS CurrentRejectrates -- 当期不合格率
 | 
						||
FROM Base_Project AS Project
 | 
						||
	--焊口总数
 | 
						||
	LEFT JOIN (SELECT count(*) as Totalwelds,WeldJoint.ProjectId 
 | 
						||
	            FROM Pipeline_WeldJoint AS WeldJoint  
 | 
						||
				GROUP BY WeldJoint.ProjectId) AS Totalwelds ON Totalwelds.ProjectId = Project.ProjectId 
 | 
						||
	----寸口总数
 | 
						||
	LEFT JOIN (SELECT SUM(Size) AS DBTotal,WeldJoint.ProjectId	  		
 | 
						||
				 FROM Pipeline_WeldJoint AS WeldJoint  
 | 
						||
				 GROUP BY WeldJoint.ProjectId) AS DBTotal ON DBTotal.ProjectId =Project.ProjectId 
 | 
						||
	--完成焊口
 | 
						||
	LEFT JOIN (SELECT count(*) AS completedwelds,WeldJoint.ProjectId	  	  		
 | 
						||
				 FROM Pipeline_WeldJoint AS WeldJoint  
 | 
						||
				 where WeldJoint.WeldingDailyId is not null
 | 
						||
				 GROUP BY WeldJoint.ProjectId) AS completedwelds ON completedwelds.ProjectId =Project.ProjectId 
 | 
						||
	--完成寸口数
 | 
						||
	LEFT JOIN (SELECT SUM(Size) AS CumulativeDB,WeldJoint.ProjectId	  		
 | 
						||
				 FROM Pipeline_WeldJoint AS WeldJoint  
 | 
						||
				 where WeldJoint.WeldingDailyId is not null
 | 
						||
				 GROUP BY WeldJoint.ProjectId) AS CumulativeDB ON CumulativeDB.ProjectId =Project.ProjectId 
 | 
						||
	--委托检测焊口
 | 
						||
	LEFT JOIN (SELECT Count(*) AS EntrustTestwelds,Trust.ProjectId	  		
 | 
						||
				 FROM Batch_BatchTrustItem AS TrustItem 
 | 
						||
				 left join Batch_BatchTrust as Trust on TrustItem.TrustBatchId=Trust.TrustBatchId
 | 
						||
				 WHERE Trust.DetectionTypeId=@NdtType OR @NdtType IS NULL
 | 
						||
				 GROUP BY Trust.ProjectId) AS EntrustTestwelds ON EntrustTestwelds.ProjectId =Project.ProjectId 
 | 
						||
	--已检测焊口
 | 
						||
	LEFT JOIN (SELECT Count(*) AS Testwelds,NDE.ProjectId	  		
 | 
						||
				 FROM Batch_NDEItem AS NDEItem 
 | 
						||
				 left join Batch_NDE as NDE on NDEItem.NDEID=NDE.NDEID
 | 
						||
				 WHERE NDEItem.DetectionTypeId=@NdtType OR @NdtType IS NULL
 | 
						||
				 GROUP BY NDE.ProjectId) AS Testwelds ON Testwelds.ProjectId =Project.ProjectId 
 | 
						||
	--不合格焊口
 | 
						||
	LEFT JOIN (SELECT Count(*) AS Rejectwelds,NDE.ProjectId	  		
 | 
						||
				 FROM Batch_NDEItem AS NDEItem 
 | 
						||
				 left join Batch_NDE as NDE on NDEItem.NDEID=NDE.NDEID
 | 
						||
				 WHERE (NDEItem.DetectionTypeId=@NdtType OR @NdtType IS NULL) AND CheckResult='2'
 | 
						||
				 GROUP BY NDE.ProjectId) AS Rejectwelds ON Rejectwelds.ProjectId =Project.ProjectId 
 | 
						||
	--当期完成焊口  
 | 
						||
	LEFT JOIN (SELECT count(*) AS Currentcompletedwelds,WeldJoint.ProjectId	  	  		
 | 
						||
				 FROM Pipeline_WeldJoint AS WeldJoint  
 | 
						||
				 left join dbo.Pipeline_WeldingDaily as WeldingDaily on WeldingDaily.WeldingDailyId=WeldJoint.WeldingDailyId
 | 
						||
				 where WeldJoint.WeldingDailyId is not null
 | 
						||
				 and (@startDate is null or WeldingDate>=@startDate) and (@endDate is null or WeldingDate<=@endDate)
 | 
						||
				 GROUP BY WeldJoint.ProjectId) AS Currentcompletedwelds ON Currentcompletedwelds.ProjectId =Project.ProjectId 
 | 
						||
	--当期检测焊口
 | 
						||
	LEFT JOIN (SELECT Count(*) AS CurrentTestwelds,NDE.ProjectId	  		
 | 
						||
				 FROM Batch_NDEItem AS NDEItem 
 | 
						||
				 left join Batch_NDE as NDE on NDEItem.NDEID=NDE.NDEID
 | 
						||
				 where (@startDate is null or NDEDate>=@startDate) and (@endDate is null or NDEDate<=@endDate)
 | 
						||
				        AND (NDEItem.DetectionTypeId=@NdtType OR @NdtType IS NULL)
 | 
						||
				 GROUP BY NDE.ProjectId) AS CurrentTestwelds ON CurrentTestwelds.ProjectId =Project.ProjectId 
 | 
						||
	--当期不合格焊口
 | 
						||
	LEFT JOIN (SELECT Count(*) AS CurrentRejectwelds,NDE.ProjectId	  		
 | 
						||
				 FROM Batch_NDEItem AS NDEItem 
 | 
						||
				 left join Batch_NDE as NDE on NDEItem.NDEID=NDE.NDEID
 | 
						||
				 where CheckResult='2' AND (NDEItem.DetectionTypeId=@NdtType OR @NdtType IS NULL)
 | 
						||
				 and (@startDate is null or NDEDate>=@startDate) and (@endDate is null or NDEDate<=@endDate)
 | 
						||
				 GROUP BY NDE.ProjectId) AS CurrentRejectwelds ON CurrentRejectwelds.ProjectId =Project.ProjectId 
 | 
						||
WHERE Project.ProjectTypeId=@projectType OR @projectType IS NULL		 
 | 
						||
ORDER BY Project.ProjectCode
 | 
						||
 | 
						||
GO
 | 
						||
 | 
						||
 | 
						||
ALTER  PROC [dbo].[sp_rpt_MediaComprehensive]
 | 
						||
		  @unitId NVARCHAR(50) = NULL,  
 | 
						||
		  @workAreaId NVARCHAR(50) = NULL, 
 | 
						||
		  @mediumId NVARCHAR(50) = NULL,
 | 
						||
		  @projectId NVARCHAR(50) = NULL
 | 
						||
AS
 | 
						||
/*介质综合分析*/
 | 
						||
SELECT ROW_NUMBER() OVER(ORDER BY Unit.UnitCode,WorkArea.WorkAreaCode,Medium.MediumCode) AS Number,
 | 
						||
       V.ProjectId,V.UnitId,V.WorkAreaId,V.MediumId
 | 
						||
	  ,Unit.UnitCode --单位代码
 | 
						||
	  ,Unit.UnitName --单位名称
 | 
						||
	  ,WorkArea.WorkAreaCode --工区代号
 | 
						||
	  ,Medium.MediumCode --介质代号
 | 
						||
	  ,Medium.MediumName --介质名称
 | 
						||
	,ISNULL(total_jot.total_jot,0) AS total_jot --总焊口数	
 | 
						||
	,ISNULL(total_sjot.total_sjot,0) AS total_sjot --预制焊口数
 | 
						||
	,ISNULL(total_fjot.total_fjot,0) AS total_fjot  --安装焊口数
 | 
						||
	,ISNULL(finished_jot.finished_jot,0) AS finished_jot --完成焊口数
 | 
						||
	,ISNULL(finished_sjot.finished_sjot,0) AS finished_sjot --预制完成焊口数
 | 
						||
	,ISNULL(finished_fjot.finished_fjot,0) AS finished_fjot --安装完成焊口数
 | 
						||
	,ISNULL(cut_jot.cut_jot,0) AS cut_jot  --切除焊口数
 | 
						||
	,CONVERT(NVARCHAR(10),((CAST(CASE ISNULL(total_jot.total_jot,0) WHEN 0 THEN 0
 | 
						||
		ELSE 1.0*ISNULL(finished_jot.finished_jot,0) /(1.0 * total_jot.total_jot) END AS DECIMAL(19,3)))*100))+'%'
 | 
						||
		AS finisedrate   -- 完成比例
 | 
						||
	,CONVERT(NVARCHAR(10),((CAST(CASE ISNULL(total_jot.total_jot,0) WHEN 0 THEN 0
 | 
						||
		ELSE 1.0*ISNULL(finished_sjot.finished_sjot,0) /(1.0 * total_jot.total_jot) END AS DECIMAL(19,3)))*100))+'%'
 | 
						||
		AS finisedrate_s  -- 预制完成比例
 | 
						||
	,CONVERT(NVARCHAR(10),((CAST(CASE ISNULL(total_jot.total_jot,0) WHEN 0 THEN 0
 | 
						||
		ELSE 1.0*ISNULL(finished_fjot.finished_fjot,0) /(1.0 * total_jot.total_jot) END AS DECIMAL(19,3)))*100))+'%'
 | 
						||
		AS finisedrate_f -- 安装完成比例
 | 
						||
	,CAST(ISNULL(total_jot.total_din,0) AS DECIMAL(19,2)) AS total_din  --总达因
 | 
						||
	,CAST(ISNULL(total_sjot.total_sdin,0) AS DECIMAL(19,2)) AS total_sdin --预制达因
 | 
						||
	,CAST(ISNULL(total_fjot.total_fdin,0) AS DECIMAL(19,2)) AS total_fdin --安装达因			
 | 
						||
	
 | 
						||
	,CAST(ISNULL(finished_jot.finished_din,0) AS DECIMAL(19,2)) AS finished_din  --完成总达因
 | 
						||
	,CAST(ISNULL(finished_sjot.finished_sdin,0) AS DECIMAL(19,2)) AS finished_sdin  --预制完成总达因
 | 
						||
	,CAST(ISNULL(finished_fjot.finished_fdin,0) AS DECIMAL(19,2)) AS finished_fdin  --安装完成总达因
 | 
						||
	,CONVERT(NVARCHAR(10),((CAST(CASE ISNULL(total_jot.total_din,0) WHEN 0 THEN 0
 | 
						||
		ELSE 1.0*ISNULL(finished_jot.finished_din,0) /(1.0 * total_jot.total_din) END AS DECIMAL(19,3)))*100))+'%'
 | 
						||
		AS finishedrate_din  --达因完成比例	
 | 
						||
	,CONVERT(NVARCHAR(10),((CAST(CASE ISNULL(total_jot.total_din,0) WHEN 0 THEN 0
 | 
						||
		ELSE 1.0*ISNULL(finished_sjot.finished_sdin,0) /(1.0 * total_jot.total_din) END AS DECIMAL(19,3)))*100))+'%'
 | 
						||
		AS finishedrate_sdin  --达因预制完成比例
 | 
						||
	,CONVERT(NVARCHAR(10),((CAST(CASE ISNULL(total_jot.total_din,0) WHEN 0 THEN 0
 | 
						||
		ELSE 1.0*ISNULL(finished_fjot.finished_fdin,0) /(1.0 * total_jot.total_din) END AS DECIMAL(19,3)))*100))+'%'
 | 
						||
		AS	finishedrate_fdin   --达因安装完成比例
 | 
						||
	,ISNULL(total_film.total_film,0) AS total_film --总拍片数
 | 
						||
	,ISNULL(total_film.pass_film,0) AS pass_film --合格片数
 | 
						||
	,CONVERT(NVARCHAR(10),((CAST(CASE ISNULL(total_film.total_film,0) WHEN 0 THEN 0
 | 
						||
		ELSE 1.0*ISNULL(total_film.pass_film,0) /(1.0 * total_film.total_film) END AS DECIMAL(19,3)))*100))+'%'
 | 
						||
		AS passfilm_rate  --合格率
 | 
						||
		
 | 
						||
	,ISNULL(ext_totalfilm.ext_totalfilm,0) AS ext_totalfilm --扩透总数
 | 
						||
	,ISNULL(ext_totalfilm.ext_passfilm,0) AS ext_passfilm --扩透合格总数
 | 
						||
	,CONVERT(NVARCHAR(10),((CAST(CASE ISNULL(ext_totalfilm.ext_totalfilm,0) WHEN 0 THEN 0
 | 
						||
		ELSE 1.0*ISNULL(ext_totalfilm.ext_passfilm,0) /(1.0 * ext_totalfilm.ext_totalfilm) END AS DECIMAL(19,3)))*100))+'%' 
 | 
						||
		AS ext_passrate --扩透合格率
 | 
						||
		
 | 
						||
	,ISNULL(point_totalfilm.point_totalfilm,0) AS point_totalfilm --点口总数
 | 
						||
	,ISNULL(point_totalfilm.point_passfilm,0) AS point_passfilm --点口合格总数
 | 
						||
	,CONVERT(NVARCHAR(10),((CAST(CASE ISNULL(point_totalfilm.point_totalfilm,0) WHEN 0 THEN 0
 | 
						||
		ELSE 1.0*ISNULL(point_totalfilm.point_passfilm,0) /(1.0 * point_totalfilm.point_totalfilm) END AS DECIMAL(19,3)))*100))+'%' 
 | 
						||
		AS point_passrate  --点口合格率
 | 
						||
		
 | 
						||
	,ISNULL(cut_totalfilm.cut_totalfilm,0) AS cut_totalfilm --切除总数
 | 
						||
	,ISNULL(cut_totalfilm.cut_passfilm,0) AS cut_passfilm --切除合格总数
 | 
						||
	,ISNULL(trust_total_jot.trust_total_jot,0) AS trust_total_jot  ---委托总数	
 | 
						||
	,ISNULL(trust_ext_total_jot.trust_ext_total_jot,0) AS trust_ext_total_jot  ---委托扩透总数
 | 
						||
	,(ISNULL(trust_total_jot.trust_total_jot,0) - ISNULL(trust_ext_total_jot.trust_ext_total_jot,0)) 
 | 
						||
		AS trust_point_total_jot  ---委托点口总数
 | 
						||
	,(ISNULL(ext_totalfilm.check_point_total_jot1,0) + ISNULL(point_totalfilm.check_point_total_jot2,0)) 
 | 
						||
		AS check_point_total_jot  --已探口数
 | 
						||
	,ISNULL(repair_jot.repair_jot,0) AS repair_jot  ---返修口数
 | 
						||
FROM 
 | 
						||
 (SELECT pipeline.ProjectId
 | 
						||
			,pipeline.UnitId
 | 
						||
			,pipeline.WorkAreaId
 | 
						||
			,pipeline.MediumId
 | 
						||
		FROM Pipeline_Pipeline AS pipeline
 | 
						||
		WHERE (pipeline.ProjectId = @projectId OR @projectId IS NULL) 	
 | 
						||
			AND (pipeline.UnitId = @unitId OR @unitId IS NULL) 
 | 
						||
			AND (pipeline.WorkAreaId = @workAreaId OR @workAreaId IS NULL) 
 | 
						||
			AND (pipeline.MediumId = @mediumId OR @mediumId IS NULL)
 | 
						||
		GROUP BY pipeline.ProjectId ,pipeline.UnitId,pipeline.WorkAreaId,pipeline.MediumId) AS V
 | 
						||
		
 | 
						||
 LEFT JOIN (SELECT jot.ProjectId, COUNT(*) AS total_jot --总焊口数		
 | 
						||
						,SUM(size) AS total_din  --总达因
 | 
						||
						,iso.UnitId,iso.WorkAreaId,iso.MediumId
 | 
						||
					FROM Pipeline_WeldJoint AS jot
 | 
						||
						LEFT JOIN Pipeline_Pipeline  AS iso ON jot.PipelineId=iso.PipelineId
 | 
						||
					GROUP BY jot.ProjectId, iso.UnitId,iso.WorkAreaId,iso.MediumId ) AS total_jot 
 | 
						||
					ON total_jot.ProjectId = V.ProjectId AND  total_jot.UnitId = V.UnitId AND total_jot.WorkAreaId = V.WorkAreaId AND total_jot.MediumId = V.MediumId
 | 
						||
 | 
						||
 LEFT JOIN (SELECT jot.ProjectId, COUNT(*) AS total_sjot		 --预制焊口数
 | 
						||
						,SUM(size) AS total_sdin --预制达因		
 | 
						||
						,iso.UnitId,iso.WorkAreaId,iso.MediumId
 | 
						||
					FROM Pipeline_WeldJoint AS jot
 | 
						||
						LEFT JOIN Pipeline_Pipeline  AS iso ON jot.PipelineId=iso.PipelineId
 | 
						||
					where JointArea='S'
 | 
						||
					GROUP BY jot.ProjectId, iso.UnitId,iso.WorkAreaId,iso.MediumId ) AS total_sjot 
 | 
						||
					ON total_sjot.ProjectId = V.ProjectId AND total_sjot.UnitId = V.UnitId AND total_sjot.WorkAreaId = V.WorkAreaId AND total_sjot.MediumId = V.MediumId
 | 
						||
 | 
						||
 LEFT JOIN (SELECT jot.ProjectId, COUNT(*) AS total_fjot		 --安装焊口数
 | 
						||
						,SUM(size) AS total_fdin --安装达因		
 | 
						||
						,iso.UnitId,iso.WorkAreaId,iso.MediumId
 | 
						||
					FROM Pipeline_WeldJoint AS jot
 | 
						||
						LEFT JOIN Pipeline_Pipeline  AS iso ON jot.PipelineId=iso.PipelineId
 | 
						||
					where JointArea='F'
 | 
						||
					GROUP BY jot.ProjectId,  iso.UnitId,iso.WorkAreaId,iso.MediumId ) AS total_fjot 
 | 
						||
					ON total_fjot.ProjectId = V.ProjectId AND  total_fjot.UnitId = V.UnitId AND total_fjot.WorkAreaId = V.WorkAreaId AND total_fjot.MediumId = V.MediumId
 | 
						||
 | 
						||
 LEFT JOIN (SELECT jot.ProjectId, COUNT(*) AS finished_jot --完成焊口数
 | 
						||
					,SUM(DoneDin) AS finished_din  --完成总达因
 | 
						||
					,iso.UnitId,iso.WorkAreaId,iso.MediumId
 | 
						||
					FROM Pipeline_WeldJoint AS jot
 | 
						||
						LEFT JOIN Pipeline_Pipeline  AS iso ON jot.PipelineId=iso.PipelineId
 | 
						||
					where WeldingDailyId IS NOT NULL
 | 
						||
					GROUP BY jot.ProjectId, iso.UnitId,iso.WorkAreaId,iso.MediumId ) AS finished_jot 
 | 
						||
					ON finished_jot.ProjectId = V.ProjectId AND  finished_jot.UnitId = V.UnitId AND finished_jot.WorkAreaId = V.WorkAreaId AND finished_jot.MediumId = V.MediumId
 | 
						||
 | 
						||
 LEFT JOIN (SELECT jot.ProjectId, COUNT(*) AS finished_sjot --预制完成焊口数
 | 
						||
						, SUM(donedin) AS finished_sdin   --预制完成总达因
 | 
						||
						,iso.UnitId,iso.WorkAreaId,iso.MediumId
 | 
						||
					FROM Pipeline_WeldJoint AS jot
 | 
						||
						LEFT JOIN Pipeline_Pipeline  AS iso ON jot.PipelineId=iso.PipelineId
 | 
						||
					where WeldingDailyId IS NOT NULL and JointArea='S'
 | 
						||
					GROUP BY jot.ProjectId, iso.UnitId,iso.WorkAreaId,iso.MediumId ) AS finished_sjot 
 | 
						||
					ON finished_sjot.ProjectId = V.ProjectId AND  finished_sjot.UnitId = V.UnitId AND finished_sjot.WorkAreaId = V.WorkAreaId AND finished_sjot.MediumId = V.MediumId
 | 
						||
 | 
						||
 LEFT JOIN (SELECT jot.ProjectId,  COUNT(*) AS finished_fjot --安装完成焊口数
 | 
						||
						,SUM(donedin) AS finished_fdin  --安装完成总达因
 | 
						||
						,iso.UnitId,iso.WorkAreaId,iso.MediumId
 | 
						||
					FROM Pipeline_WeldJoint AS jot
 | 
						||
						LEFT JOIN Pipeline_Pipeline AS iso ON jot.PipelineId=iso.PipelineId
 | 
						||
					where WeldingDailyId IS NOT NULL and JointArea='F'
 | 
						||
					GROUP BY jot.ProjectId,  iso.UnitId,iso.WorkAreaId,iso.MediumId ) AS finished_fjot 
 | 
						||
					ON finished_fjot.ProjectId = V.ProjectId AND finished_fjot.UnitId = V.UnitId AND finished_fjot.WorkAreaId = V.WorkAreaId AND finished_fjot.MediumId = V.MediumId
 | 
						||
 | 
						||
 LEFT JOIN (SELECT jot.ProjectId, COUNT(*) AS cut_jot   --切除口数
 | 
						||
					,iso.UnitId,iso.WorkAreaId,iso.MediumId
 | 
						||
			FROM Batch_PointBatchItem	 
 | 
						||
			LEFT JOIN Pipeline_WeldJoint jot ON Batch_PointBatchItem.WeldJointId =jot.WeldJointId
 | 
						||
			LEFT JOIN Pipeline_Pipeline  AS iso ON jot.PipelineId=iso.PipelineId
 | 
						||
				WHERE  Batch_PointBatchItem.CutDate IS NOT NULL		
 | 
						||
				GROUP BY jot.ProjectId, iso.UnitId,iso.WorkAreaId,iso.MediumId) AS cut_jot 
 | 
						||
					ON cut_jot.ProjectId = V.ProjectId AND  cut_jot.UnitId = V.UnitId AND cut_jot.WorkAreaId = V.WorkAreaId AND cut_jot.MediumId = V.MediumId
 | 
						||
 | 
						||
 LEFT JOIN (SELECT  jot.ProjectId, SUM(TotalFilm) AS total_film --总拍片数
 | 
						||
					,SUM(PassFilm) AS pass_film --合格片数
 | 
						||
					,iso.UnitId,iso.WorkAreaId,iso.MediumId
 | 
						||
					FROM Pipeline_WeldJoint AS jot
 | 
						||
						LEFT JOIN Batch_PointBatchItem ON Batch_PointBatchItem.WeldJointId = jot.WeldJointId 
 | 
						||
						LEFT JOIN Batch_BatchTrustItem ON Batch_BatchTrustItem.PointBatchItemId = Batch_PointBatchItem.PointBatchItemId 
 | 
						||
						LEFT JOIN Batch_NDEItem ON Batch_NDEItem.TrustBatchItemId = Batch_BatchTrustItem.TrustBatchItemId 
 | 
						||
						LEFT JOIN Batch_NDE ON Batch_NDE.NDEID = Batch_NDEItem.NDEID 
 | 
						||
						LEFT JOIN Pipeline_Pipeline  AS iso ON jot.PipelineId=iso.PipelineId
 | 
						||
					WHERE Batch_NDEItem.NDEItemID IS NOT NULL
 | 
						||
					GROUP BY jot.ProjectId, iso.UnitId,iso.WorkAreaId,iso.MediumId ) AS total_film 
 | 
						||
					ON total_film.ProjectId = V.ProjectId AND  total_film.UnitId = V.UnitId AND total_film.WorkAreaId = V.WorkAreaId AND total_film.MediumId = V.MediumId
 | 
						||
			
 | 
						||
 LEFT JOIN (SELECT jot.ProjectId, SUM(TotalFilm) AS ext_totalfilm
 | 
						||
					,SUM(PassFilm) AS ext_passfilm  --扩透合格片数					
 | 
						||
					,COUNT(*) AS check_point_total_jot1 --总已探数1					
 | 
						||
					,iso.UnitId,iso.WorkAreaId,iso.MediumId
 | 
						||
			FROM Batch_NDEItem
 | 
						||
			LEFT JOIN Batch_BatchTrustItem ON Batch_NDEItem.TrustBatchItemId =Batch_BatchTrustItem.TrustBatchItemId
 | 
						||
			LEFT JOIN Batch_PointBatchItem ON Batch_PointBatchItem.PointBatchItemId =Batch_BatchTrustItem.PointBatchItemId
 | 
						||
			LEFT JOIN Pipeline_WeldJoint jot ON jot.WeldJointId=Batch_PointBatchItem.WeldJointId 			
 | 
						||
			LEFT JOIN Pipeline_Pipeline  AS iso ON jot.PipelineId=iso.PipelineId
 | 
						||
			WHERE  Batch_PointBatchItem.PointState='2' AND Batch_PointBatchItem.PointDate IS NOT NULL				
 | 
						||
			GROUP BY jot.ProjectId, iso.UnitId,iso.WorkAreaId,iso.MediumId) AS ext_totalfilm 
 | 
						||
					ON ext_totalfilm.ProjectId = V.ProjectId AND  ext_totalfilm.UnitId = V.UnitId AND ext_totalfilm.WorkAreaId = V.WorkAreaId AND ext_totalfilm.MediumId = V.MediumId
 | 
						||
														
 | 
						||
LEFT JOIN (SELECT jot.ProjectId, SUM(TotalFilm) AS  point_totalfilm --点口总数
 | 
						||
					,SUM(PassFilm) AS point_passfilm --点口合格总数
 | 
						||
					,COUNT(*) AS check_point_total_jot2  --已探口数				
 | 
						||
					,iso.UnitId,iso.WorkAreaId,iso.MediumId
 | 
						||
			FROM Batch_NDEItem
 | 
						||
			LEFT JOIN Batch_BatchTrustItem ON Batch_NDEItem.TrustBatchItemId =Batch_BatchTrustItem.TrustBatchItemId
 | 
						||
			LEFT JOIN Batch_PointBatchItem ON Batch_PointBatchItem.PointBatchItemId =Batch_BatchTrustItem.PointBatchItemId
 | 
						||
			LEFT JOIN Pipeline_WeldJoint jot ON jot.WeldJointId=Batch_PointBatchItem.WeldJointId 
 | 
						||
					LEFT JOIN Pipeline_Pipeline  AS iso ON jot.PipelineId=iso.PipelineId
 | 
						||
			WHERE  Batch_PointBatchItem.PointState='1' AND Batch_PointBatchItem.PointDate IS NOT NULL				
 | 
						||
			GROUP BY jot.ProjectId, iso.UnitId,iso.WorkAreaId,iso.MediumId) AS point_totalfilm 
 | 
						||
					ON point_totalfilm.ProjectId = V.ProjectId AND  point_totalfilm.UnitId = V.UnitId AND point_totalfilm.WorkAreaId = V.WorkAreaId AND point_totalfilm.MediumId = V.MediumId
 | 
						||
 | 
						||
LEFT JOIN (SELECT jot.ProjectId, SUM(TotalFilm) AS  cut_totalfilm --切除总数
 | 
						||
					,SUM(PassFilm) AS cut_passfilm --切除合格总数					
 | 
						||
					,iso.UnitId,iso.WorkAreaId,iso.MediumId
 | 
						||
			FROM (SELECT WeldJointId FROM  Batch_PointBatchItem 
 | 
						||
					WHERE Batch_PointBatchItem.CutDate IS NOT NULL) AS PointBatchItem
 | 
						||
				LEFT JOIN Pipeline_WeldJoint jot ON jot.WeldJointId=PointBatchItem.WeldJointId 	
 | 
						||
				LEFT JOIN Batch_NDEItem ON PointBatchItem.WeldJointId = jot.WeldJointId
 | 
						||
				LEFT JOIN Pipeline_Pipeline AS iso ON jot.PipelineId=iso.PipelineId
 | 
						||
			GROUP BY jot.ProjectId, iso.UnitId,iso.WorkAreaId,iso.MediumId) AS cut_totalfilm 
 | 
						||
					ON cut_totalfilm.ProjectId = V.ProjectId AND  cut_totalfilm.UnitId = V.WorkAreaId AND cut_totalfilm.WorkAreaId = V.WorkAreaId AND cut_totalfilm.MediumId = V.MediumId
 | 
						||
 | 
						||
 | 
						||
 LEFT JOIN (SELECT jot.ProjectId, COUNT(*) AS trust_total_jot  ---委托口数
 | 
						||
					,iso.UnitId,iso.WorkAreaId,iso.MediumId
 | 
						||
			FROM (SELECT Batch_PointBatchItem.WeldJointId FROM Batch_BatchTrustItem 
 | 
						||
							LEFT JOIN Batch_PointBatchItem ON Batch_BatchTrustItem.PointBatchItemId =Batch_PointBatchItem.PointBatchItemId) AS TrustBatchItem
 | 
						||
				LEFT JOIN Pipeline_WeldJoint jot ON jot.WeldJointId= TrustBatchItem.WeldJointId
 | 
						||
				LEFT JOIN Pipeline_Pipeline  AS iso ON jot.PipelineId=iso.PipelineId				
 | 
						||
			GROUP BY jot.ProjectId,  iso.UnitId,iso.WorkAreaId,iso.MediumId) AS trust_total_jot 
 | 
						||
					ON trust_total_jot.ProjectId = V.ProjectId AND  trust_total_jot.UnitId = V.UnitId AND trust_total_jot.WorkAreaId = V.WorkAreaId AND trust_total_jot.MediumId = V.MediumId
 | 
						||
 
 | 
						||
 LEFT JOIN (SELECT jot.ProjectId, COUNT(*) AS trust_ext_total_jot  ---委托扩透总数
 | 
						||
						,iso.UnitId,iso.WorkAreaId,iso.MediumId
 | 
						||
					FROM Batch_BatchTrustItem AS TrustBatchItem
 | 
						||
						LEFT JOIN Batch_PointBatchItem AS PointBatchItem ON PointBatchItem.PointBatchItemId = TrustBatchItem.PointBatchItemId
 | 
						||
						LEFT JOIN Pipeline_WeldJoint AS jot ON PointBatchItem.WeldJointId = jot.WeldJointId
 | 
						||
						LEFT JOIN Pipeline_Pipeline  AS iso ON jot.PipelineId=iso.PipelineId
 | 
						||
					WHERE PointBatchItem.PointState ='2' AND PointBatchItem.PointDate IS NOT NULL
 | 
						||
					GROUP BY jot.ProjectId,  iso.UnitId,iso.WorkAreaId,iso.MediumId) AS trust_ext_total_jot 
 | 
						||
					ON trust_ext_total_jot.ProjectId = V.ProjectId AND  trust_ext_total_jot.UnitId = V.UnitId AND trust_ext_total_jot.WorkAreaId = V.WorkAreaId AND trust_ext_total_jot.MediumId = V.MediumId
 | 
						||
					
 | 
						||
LEFT JOIN (SELECT jot.ProjectId, COUNT(*) AS repair_jot  --返修口数
 | 
						||
						,iso.UnitId,iso.WorkAreaId,iso.MediumId
 | 
						||
					FROM Batch_BatchTrustItem AS TrustBatchItem
 | 
						||
						LEFT JOIN Batch_PointBatchItem AS PointBatchItem ON PointBatchItem.PointBatchItemId = TrustBatchItem.PointBatchItemId					
 | 
						||
						LEFT JOIN Pipeline_WeldJoint AS jot ON PointBatchItem.WeldJointId = jot.WeldJointId
 | 
						||
						LEFT JOIN Pipeline_Pipeline  AS iso ON jot.PipelineId=iso.PipelineId
 | 
						||
					WHERE PointBatchItem.RepairDate IS NOT NULL
 | 
						||
					GROUP BY jot.ProjectId,  iso.UnitId,iso.WorkAreaId,iso.MediumId) AS repair_jot 
 | 
						||
					ON repair_jot.ProjectId = V.ProjectId AND  repair_jot.UnitId = V.UnitId AND repair_jot.WorkAreaId = V.WorkAreaId AND repair_jot.MediumId = V.MediumId
 | 
						||
LEFT JOIN Base_Medium AS Medium  ON Medium.MediumId = v.MediumId
 | 
						||
LEFT JOIN Project_WorkArea AS WorkArea ON WorkArea.WorkAreaId = v.WorkAreaId
 | 
						||
LEFT JOIN Base_Unit AS Unit ON Unit.UnitId = v.UnitId	
 | 
						||
 | 
						||
GO
 | 
						||
 | 
						||
 | 
						||
 | 
						||
ALTER VIEW [dbo].[View_GenerateTrust] 
 | 
						||
AS
 | 
						||
-------正常点口生成委托-----------
 | 
						||
SELECT point.ProjectId,point.InstallationId,pipe.WorkAreaId ,point.UnitId,point.DetectionTypeId,
 | 
						||
       jot.PipelineId,'1' AS PointState,CAST(0 AS BIT) AS IsCheckRepair, NULL AS TrustBatchCode
 | 
						||
FROM dbo.Batch_PointBatchItem pointItem
 | 
						||
LEFT JOIN dbo.Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
 | 
						||
LEFT JOIN dbo.Batch_BatchTrustItem trustItem ON trustItem.PointBatchItemId = pointItem.PointBatchItemId
 | 
						||
LEFT JOIN dbo.Pipeline_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId
 | 
						||
LEFT JOIN dbo.Pipeline_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
 | 
						||
WHERE pointItem.PointState ='1' AND point.EndDate IS NOT NULL AND pointItem.CutDate IS NULL 
 | 
						||
      AND (pointItem.IsBuildTrust IS NULL OR pointItem.IsBuildTrust=0) 
 | 
						||
      AND  (point.IsTrust=0 OR trustItem.TrustBatchItemId IS NULL)
 | 
						||
      AND pointItem.IsCheckRepair=0
 | 
						||
GROUP BY point.ProjectId,point.InstallationId,pipe.WorkAreaId,point.UnitId,point.DetectionTypeId,
 | 
						||
         jot.PipelineId
 | 
						||
         
 | 
						||
UNION ALL
 | 
						||
-------扩透生成委托-----------
 | 
						||
SELECT point.ProjectId,point.InstallationId,pipe.WorkAreaId ,point.UnitId,point.DetectionTypeId,
 | 
						||
       jot.PipelineId,'2' AS PointState,CAST(0 AS BIT) AS IsCheckRepair, trust.TrustBatchCode   
 | 
						||
FROM dbo.Batch_PointBatchItem pointItem
 | 
						||
LEFT JOIN dbo.Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
 | 
						||
LEFT JOIN dbo.Pipeline_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId
 | 
						||
LEFT JOIN dbo.Pipeline_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
 | 
						||
LEFT JOIN dbo.Batch_BatchTrustItem trustItem ON trustItem.PointBatchItemId=pointItem.ToPointBatchItemId
 | 
						||
LEFT JOIN dbo.Batch_BatchTrust trust ON trust.TrustBatchId = trustItem.TrustBatchId
 | 
						||
WHERE pointItem.PointState ='2'  AND point.EndDate IS NOT NULL 
 | 
						||
      AND pointItem.CutDate IS NULL AND (pointItem.IsBuildTrust IS NULL OR pointItem.IsBuildTrust=0) 
 | 
						||
      AND (point.IsTrust=0 OR trustItem.TrustBatchItemId IS NULL)
 | 
						||
GROUP BY point.ProjectId,point.InstallationId,pipe.WorkAreaId,point.UnitId,point.DetectionTypeId,
 | 
						||
         jot.PipelineId,trust.TrustBatchCode   
 | 
						||
         
 | 
						||
UNION ALL
 | 
						||
-------返修生成委托-----------
 | 
						||
SELECT point.ProjectId,point.InstallationId,pipe.WorkAreaId ,point.UnitId,point.DetectionTypeId,
 | 
						||
       jot.PipelineId,'1' AS PointState,CAST(1 AS BIT) AS IsCheckRepair, trust.TrustBatchCode
 | 
						||
FROM dbo.Batch_PointBatchItem pointItem
 | 
						||
LEFT JOIN dbo.Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
 | 
						||
LEFT JOIN dbo.Pipeline_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId
 | 
						||
LEFT JOIN dbo.Pipeline_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
 | 
						||
LEFT JOIN dbo.Batch_BatchTrustItem trustItem ON trustItem.PointBatchItemId=pointItem.PointBatchItemId
 | 
						||
LEFT JOIN dbo.Batch_BatchTrust trust ON trust.TrustBatchId = trustItem.TrustBatchId
 | 
						||
WHERE pointItem.PointState ='1' AND pointItem.IsCheckRepair=1 AND point.EndDate IS NOT NULL 
 | 
						||
      AND pointItem.CutDate IS NULL AND (pointItem.IsBuildTrust IS NULL OR pointItem.IsBuildTrust=0) AND  point.IsTrust=0
 | 
						||
GROUP BY point.ProjectId,point.InstallationId,pipe.WorkAreaId,point.UnitId,point.DetectionTypeId,
 | 
						||
         jot.PipelineId,trust.TrustBatchCode      
 | 
						||
 | 
						||
GO
 | 
						||
 |