﻿alter table HJGL_WeldJoint  add  DNDia varchar(50)

 
/****** 对象: View [dbo].[View_HJGL_WeldJoint] 脚本日期: 2022/11/18 14:39:08 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

ALTER VIEW [dbo].[View_HJGL_WeldJoint]
AS
SELECT jot.[ProjectId]   --项目Id
      ,pipe.[UnitWorkId]    --单位工程Id
	  ,uw.UnitWorkName      --单位工程
      ,pipe.[UnitId]        --单位Id
	  ,unit.UnitName        --单位
      ,jot.[PipelineCode]  --管线号
	  ,pipe.[SingleNumber]   --单线图号
	  ,pipe.[SingleName]   --图纸名称
	  ,pipe.[MediumId]     --介质Id
	  ,medium.MediumCode
	  ,medium.MediumName    --介质名称
	  ,pipe.[PipingClassId]   --管道等级Id
	  ,pipingClass.PipingClassCode    --管道等级
	  ,pipe.[DetectionRateId]   --探伤比例Id
	  ,dr.DetectionRateCode  --探伤比例（例如5，10，20）
	  ,pipe.DetectionType  --探伤类型Id(可能多个，中间用|分隔)
	  ,STUFF((SELECT ',' + DetectionTypeCode FROM Base_DetectionType 
	  WHERE CHARINDEX('|'+LTRIM(DetectionTypeId)+'|','|'+ pipe.DetectionType + '|') > 0 FOR XML PATH('') ), 1, 1, '') AS DetectionTypeStr  --探伤类型（可能多个，中间用,分隔）
      ,pipe.DesignTemperature   --设计温度℃
	  ,pipe.DesignPress      --设计压力Mpa(g)
	  ,pipe.TestMedium        --压力试验介质Id
	  ,tm.MediumName AS TestMediumName         --压力试验介质
	  ,pipe.TestPressure          --压力试验压力Mpa(g)
	  ,pipe.PressurePipingClassId    --压力管道级别Id
	  ,ppc.PressurePipingClassCode   --压力管道级别
	  ,pipe.PipeLenth           --管线长度(m)
	  ,pipe.LeakMedium    --泄露性试验介质Id
	  ,tm2.MediumName AS LeakMediumName         --泄露性试验介质
	  ,pipe.LeakPressure     --泄露性试验压力Mpa(g)
	  ,pipe.PCMedium        --吹洗要求Id
	  ,pm.PurgeMethodCode     --吹洗要求
	  ,pipe.VacuumPressure    --真空试验压力Kpa(a)
	  ,pipe.MaterialId      --材质Id
	  ,mat.MaterialCode AS PipeMaterialCode    --材质
	  ,pipe.Remark AS PipeRemark        --备注

	  ,jot.[WeldJointId]  --焊口Id
	  ,jot.[WeldJointCode]    --焊口号
	  ,jot.[Material1Id]    --材质1Id
	  ,mat1.MaterialCode AS Material1Code   --材质1
      ,jot.[Material2Id]    --材质2Id
	  ,mat2.MaterialCode AS Material2Code    --材质2
	  ,jot.[Dia]    --外径
	  ,jot.DNDia   --DN公称直径
	  ,jot.[Size]    --达因
	  ,jot.[Thickness]    --壁厚
	  ,jot.[Specification]   --规格
	  ,jot.[WeldTypeId]    --焊缝类型Id
	  ,WeldType.WeldTypeCode   --焊缝类型
	  ,jot.[DetectionTypeId]    --检测类型Id
	  ,ndt.DetectionTypeCode    --检测类型
	  ,jot.[Components1Id]     --组件1号Id
	  ,com1.ComponentsCode AS ComponentsCode1   --组件1号
      ,jot.[Components2Id]     --组件2号Id
	  ,com2.ComponentsCode AS ComponentsCode2   --组件2号
	  ,jot.DesignIsHotProess   --是否热处理
	  ,CASE jot.DesignIsHotProess WHEN 1 THEN '是' ELSE '否' END AS DesignIsHotProessStr  --是否热处理
	  ,jot.[WeldingMethodId]   --焊接方法Id
	  ,WeldingMethod.WeldingMethodCode    --焊接方法
	  ,jot.WPQId     --WPS的Id
	  ,wps.WPQCode    --WPS编号
	  ,jot.[GrooveTypeId]   --坡口类型Id
	  ,GrooveType.GrooveTypeCode    --坡口类型
	  ,jot.[WeldingRod]   --焊条Id
	  ,rod.ConsumablesCode AS WeldingRodCode   --焊条
	  ,jot.[WeldingWire]   --焊丝Id
	  ,wire.ConsumablesCode AS WeldingWireCode    --焊丝
	  ,jot.PreTemperature    --预热温度
	  ,jot.[JointAttribute]   --焊口属性
	  ,jot.TwoJointType   --二次焊口新增类型
	  ,CONVERT(VARCHAR(100), daily.WeldingDate, 23) AS WeldingDate    --焊接日期
	  ,BackingWelder.WelderCode AS BackingWelderCode   --打底焊工
	  ,CoverWelder.WelderCode AS CoverWelderCode    --盖面焊工
	  ,(CASE (SELECT COUNT(*) FROM [dbo].[HJGL_HotProess_TrustItem] hpti 
	  WHERE hpti.WeldJointId=jot.WeldJointId) WHEN 0 THEN '' ELSE (SELECT TOP 1 ISNULL(ReportNo,'') FROM [dbo].[HJGL_HotProess_Trust] hpt 
	  LEFT JOIN [dbo].[HJGL_HotProess_TrustItem] hpti ON hpti.HotProessTrustId=hpt.HotProessTrustId
	  WHERE hpti.WeldJointId=jot.WeldJointId) END) AS HotProessReportNo   --热处理报告编号
	  ,(CASE (SELECT TOP 1 IsCompleted FROM [dbo].[HJGL_HotProess_TrustItem] hpti 
	  WHERE hpti.WeldJointId=jot.WeldJointId) WHEN 1 THEN '完成' WHEN 0 THEN '未完成' ELSE '未热处理' END) AS HotProessResult   --热处理检测结果
	  ,(CASE (SELECT COUNT(*) FROM [dbo].HJGL_Hard_TrustItem hti 
	  WHERE hti.WeldJointId=jot.WeldJointId) WHEN 0 THEN '' ELSE (SELECT TOP 1 ISNULL(InspectionNum,'') FROM [dbo].HJGL_Hard_Trust ht 
	  LEFT JOIN [dbo].HJGL_Hard_TrustItem hti ON hti.HardTrustID=ht.HardTrustID
	  WHERE hti.WeldJointId=jot.WeldJointId) END) AS HardReportNo   --硬度报告编号
	  ,(CASE (SELECT TOP 1 IsPass FROM [dbo].HJGL_Hard_TrustItem hti 
	  WHERE hti.WeldJointId=jot.WeldJointId) WHEN 1 THEN '合格' WHEN 0 THEN '不合格' ELSE '待检测' END) AS HardResult   --硬度检测结果
	  ,(CASE (SELECT COUNT(*) FROM [dbo].HJGL_Batch_BatchTrustItem bti 
	  WHERE bti.WeldJointId=jot.WeldJointId) WHEN 0 THEN '' ELSE (SELECT TOP 1 TrustBatchCode FROM [dbo].HJGL_Batch_BatchTrust bt 
	  LEFT JOIN [dbo].HJGL_Batch_BatchTrustItem bti ON bti.TrustBatchId=bt.TrustBatchId
	  WHERE bti.WeldJointId=jot.WeldJointId) END) AS TrustBatchCode   --委托单编号
      ,(CASE (SELECT COUNT(*) FROM [dbo].HJGL_Batch_NDEItem ndei 
	  LEFT JOIN [dbo].HJGL_Batch_BatchTrustItem bti ON bti.TrustBatchItemId=ndei.TrustBatchItemId
	  WHERE bti.WeldJointId=jot.WeldJointId) WHEN 0 THEN '' ELSE (SELECT TOP 1 ISNULL(NDECode,'') FROM [dbo].HJGL_Batch_NDE nde 
	  LEFT JOIN [dbo].HJGL_Batch_NDEItem ndei ON ndei.NDEID=nde.NDEID
	  LEFT JOIN [dbo].HJGL_Batch_BatchTrustItem bti ON bti.TrustBatchItemId=ndei.TrustBatchItemId
	  WHERE bti.WeldJointId=jot.WeldJointId) END) AS NDECode   --检测单编号
	  ,(CASE (SELECT TOP 1 CheckResult FROM [dbo].HJGL_Batch_NDEItem ndei 
	  LEFT JOIN [dbo].HJGL_Batch_BatchTrustItem bti ON bti.TrustBatchItemId=ndei.TrustBatchItemId
	  WHERE bti.WeldJointId=jot.WeldJointId) WHEN '1' THEN '合格' WHEN '2' THEN '不合格' ELSE '' END) AS CheckResult   --检测结果
	  ,jot.PipelineId
      ,jot.[JointArea]
      ,jot.[WeldingLocationId]
      ,jot.[HeartNo1]
      ,jot.[HeartNo2]
      ,jot.[IsHotProess]
      ,jot.[WeldingDailyId]
      ,jot.[BackingWelderId]
      ,jot.[CoverWelderId]
	  ,jot.WeldingMode
	  ,jot.Remark 
	  ,jot.IsTwoJoint
	  ,jot.SubmitMan
	  ,jot.AuditMan
	  ,jot.AuditDate
      ,WeldingLocation.WeldingLocationCode
      ,CASE WHEN jot.WeldingDailyId IS NULL THEN '否' ELSE '是' END AS IsWelding
      ,CASE WHEN jot.IsHotProess=1 THEN '是' ELSE '否' END AS IsHotProessStr,
      BackingWelder.PersonName AS BackingWelderName,
      CoverWelder.PersonName AS CoverWelderName,
     (CASE WHEN CoverWelder.WelderCode IS NOT NULL AND BackingWelder.WelderCode IS NOT NULL
			THEN CoverWelder.WelderCode + '/' + BackingWelder.WelderCode
			ELSE (ISNULL(CoverWelder.WelderCode,'') + ISNULL(BackingWelder.WelderCode,'')) END) AS WelderCode, --焊工
		(CASE WHEN mat1.MaterialCode IS NOT NULL AND mat2.MaterialCode IS NOT NULL
			THEN mat1.MaterialCode + '/' + mat2.MaterialCode
			ELSE (ISNULL(mat1.MaterialCode,'') + ISNULL(mat2.MaterialCode,'')) END) AS MaterialCode, --材质
      
	  daily.WeldingDailyCode,
	  pointItem.PointBatchId,
	  point.PointBatchCode,
	  (CASE WHEN pointItem.PointState='1' THEN '已点口' WHEN pointItem.PointState='2' THEN '已扩透' ELSE '' END) AS IsPoint
  FROM [dbo].[HJGL_WeldJoint] jot
LEFT JOIN dbo.HJGL_Pipeline pipe ON pipe.PipelineId=jot.PipelineId
LEFT JOIN dbo.WBS_UnitWork uw ON uw.UnitWorkId=pipe.UnitWorkId
LEFT JOIN dbo.Base_Unit unit ON unit.UnitId=pipe.UnitId
LEFT JOIN Base_WeldType AS WeldType ON WeldType.WeldTypeId=jot.WeldTypeId
LEFT JOIN dbo.Base_DetectionRate dr ON dr.DetectionRateId = pipe.DetectionRateId
LEFT JOIN Base_TestMedium tm ON tm.TestMediumId=pipe.TestMedium
LEFT JOIN Base_TestMedium tm2 ON tm2.TestMediumId=pipe.LeakMedium
LEFT JOIN Base_PurgeMethod pm ON pm.PurgeMethodId=pipe.PCMedium
LEFT JOIN Base_PressurePipingClass ppc ON ppc.PressurePipingClassId=pipe.PressurePipingClassId
LEFT JOIN Base_Material AS mat ON mat.MaterialId = pipe.MaterialId
LEFT JOIN Base_Material AS mat1 ON mat1.MaterialId = jot.Material1Id
LEFT JOIN Base_Material AS mat2 ON mat2.MaterialId = jot.Material2Id
LEFT JOIN Base_WeldingMethod AS WeldingMethod ON WeldingMethod.WeldingMethodId=jot.WeldingMethodId
LEFT JOIN Base_WeldingLocation AS WeldingLocation ON WeldingLocation.WeldingLocationId=jot.WeldingLocationId
LEFT JOIN Base_Consumables AS wire ON wire.ConsumablesId=jot.WeldingWire
LEFT JOIN Base_Consumables AS rod ON rod.ConsumablesId=jot.WeldingRod
LEFT JOIN Base_GrooveType AS GrooveType ON GrooveType.GrooveTypeId=jot.GrooveTypeId
LEFT JOIN Base_Components AS com1 ON com1.ComponentsId = jot.Components1Id
LEFT JOIN Base_Components AS com2 ON com2.ComponentsId = jot.Components2Id
LEFT JOIN SitePerson_Person AS BackingWelder ON BackingWelder.PersonId=jot.BackingWelderId
LEFT JOIN SitePerson_Person AS CoverWelder ON CoverWelder.PersonId=jot.CoverWelderId
LEFT JOIN dbo.HJGL_WeldingDaily AS daily ON daily.WeldingDailyId=jot.WeldingDailyId
LEFT JOIN Base_PipingClass AS pipingClass ON pipingClass.PipingClassId=pipe.PipingClassId
LEFT JOIN dbo.Base_Medium medium ON medium.MediumId = pipe.MediumId
LEFT JOIN dbo.Base_DetectionType ndt ON ndt.DetectionTypeId = jot.DetectionTypeId
LEFT JOIN dbo.WPQ_WPQList wps ON wps.WPQId = jot.WPQId
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.WeldJointId = jot.WeldJointId
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
