HJGL_DS/DataBase/版本日志/HJGLDB_DS_2025-06-23_bwj.sql

138 lines
9.4 KiB
Transact-SQL

ALTER PROCEDURE [dbo].[HJGL_sp_rpt_NDTReport]
(
@ProjectId NVARCHAR(50) = null,
@trustDate datetime = null
)
AS
/***************无损检测日报**********************/
SELECT NDTType.NDT_ID,
Base_Project.ProjectCode AS ProjectCode,--施工号
Base_Project.ProjectName AS ProjectName,--项目名称
NDTType.NDT_Code,--检测方式
ISNULL(need_check_count.need_check_count,0) as need_check_count,--需检测焊口总数(合计)
ISNULl(trust_count_current.trust_count_current,0) as trust_count_current,--当日委托焊口
ISNULL(trust_count_total.trust_count_total,0) as trust_count_total,--累计委托焊口
ISNULL(check_count_current.check_count_current,0) as check_count_current,--当日检测焊口
ISNULL(check_count.check_count,0) as check_count,--累计检测焊口数
ISNULL(total_check_Pass_count.total_check_Pass_count,0) as total_check_Pass_count,--累计合格焊口数
ISNULL(check_count_film.check_count_film,0) AS check_count_film,--累计检测片数
ISNULL(check_count_Pass_film.check_count_Pass_film,0) as check_count_Pass_film,--累计合格片数
CONVERT(nvarchar(10),CAST(CAST((CASE ISNULL(need_check_count.need_check_count,0) WHEN 0 THEN 0
ELSE 1.0 * ISNULL(check_count.check_count,0)/(1.0 * need_check_count.need_check_count) END) AS DECIMAL(19,3))*100 as DECIMAL(19,1)) )+'%'
AS complated_check_rate, --完成检测比例(焊口数) 累计检测焊口数/需检测焊口总数
CONVERT(nvarchar(10),CAST(CAST((CASE ISNULL(check_count.check_count,0) WHEN 0 THEN 0
ELSE 1.0 * ISNULL(total_check_Pass_count.total_check_Pass_count,0)/(1.0 * check_count.check_count) END) AS DECIMAL(19,3))*100 as DECIMAL(19,1)) )+'%'
AS check_onePass_rate,--检测一次合格率(焊口数) 累计合格焊口数/累计检测焊口数
(CASE WHEN ISNULL(check_count_film.check_count_film,0)>0
THEN CONVERT(nvarchar(10),ISNULL(check_count_Pass_film.check_count_Pass_film,0)/ISNULL(check_count_film.check_count_film,0)*1.0*100)+'%'
ELSE '0%' END) AS check_onePass_film_rate,--检测一次合格率(片数) 累计合格片数/累计检测片数
(isnull(check_count.check_count,0) - isnull(total_check_Pass_count.total_check_Pass_count,0)) AS check_noPass_count,--累计检测不合格数(焊口数) 累计检测焊口数-累计合格焊口数
(isnull(check_count_film.check_count_film,0) - isnull(check_count_Pass_film,0)) as check_noPass_film_count,--累计检测不合格数(片数) 累计检测片数-累计合格片数
ISNULL(repair_current_film.repair_current_film,0) AS repair_current_film,--焊缝返修情况(片数)(当日完成)
ISNULL(repair_total_film.repair_total_film,0) AS repair_total_film,--焊缝返修情况(片数)(累计完成)
(ISNULl(check_count_film.check_count_film,0) - isnull(check_count_Pass_film.check_count_Pass_film,0))-ISNULL(repair_total_film.repair_total_film,0) as pending_repair_film, --焊缝返修情况(片数) 待返修 (累计检测不合格数(片数)- 焊缝返修情况(片数)(累计完成))
isnull(repair_current_count.repair_current_count,0) as repair_current_count,--焊缝返修情况(焊口数)当日完成
isnull(repair_total_count.repair_total_count,0) as repair_total_count, --焊缝返修情况(焊口数)累计完成
(isnull(check_count.check_count,0) - isnull(total_check_Pass_count.total_check_Pass_count,0))-isnull(repair_total_count.repair_total_count,0) as pending_repair_count --焊缝返修情况(焊口数)待返修 (累计检测不合格数(焊口)-焊缝返修情况(焊口数)累计完成)
FROM HJGL_BS_NDTType AS NDTType
LEFT JOIN Base_Project ON Base_Project.ProjectId=@ProjectId
--需检测焊口总数
LEFT JOIN (SELECT COUNT(*) AS need_check_count,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_CH_TrustItem
LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID
LEFT JOIN HJGL_PW_JointInfo ON HJGL_PW_JointInfo.JOT_ID = HJGL_CH_TrustItem.JOT_ID
WHERE HJGL_CH_Trust.ProjectId=@ProjectId
GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS need_check_count ON need_check_count.CH_NDTMethod = NDTType.NDT_ID
--当日委托焊口
LEFT JOIN (SELECT COUNT(*) AS trust_count_current,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_CH_TrustItem
LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID
LEFT JOIN HJGL_PW_JointInfo ON HJGL_PW_JointInfo.JOT_ID = HJGL_CH_TrustItem.JOT_ID
WHERE HJGL_CH_Trust.ProjectId=@ProjectId AND CONVERT(varchar(10), HJGL_CH_Trust.CH_TrustDate,120)=@trustDate
GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS trust_count_current ON trust_count_current.CH_NDTMethod = NDTType.NDT_ID
--累计委托焊口
LEFT JOIN (SELECT COUNT(*) AS trust_count_total,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_CH_TrustItem
LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID
LEFT JOIN HJGL_PW_JointInfo ON HJGL_PW_JointInfo.JOT_ID = HJGL_CH_TrustItem.JOT_ID
WHERE HJGL_CH_Trust.ProjectId=@ProjectId
GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS trust_count_total ON trust_count_total.CH_NDTMethod = NDTType.NDT_ID
LEFT JOIN (SELECT COUNT(*) AS check_count_current,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_CH_TrustItem
LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID
LEFT JOIN HJGL_PW_JointInfo ON HJGL_PW_JointInfo.JOT_ID = HJGL_CH_TrustItem.JOT_ID
WHERE HJGL_CH_TrustItem.States!='1'
AND HJGL_CH_Trust.ProjectId=@ProjectId AND CONVERT(varchar(10), HJGL_CH_Trust.CH_TrustDate,120)=@trustDate
GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS check_count_current ON check_count_current.CH_NDTMethod = NDTType.NDT_ID
--累计检测焊口数
LEFT JOIN (SELECT COUNT(*) AS check_count,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_CH_TrustItem
LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID
LEFT JOIN HJGL_PW_JointInfo ON HJGL_PW_JointInfo.JOT_ID = HJGL_CH_TrustItem.JOT_ID
WHERE HJGL_CH_TrustItem.States!='1'
AND HJGL_CH_Trust.ProjectId=@ProjectId
GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS check_count ON check_count.CH_NDTMethod = NDTType.NDT_ID
----累计检测片数
LEFT JOIN (SELECT COUNT(*) AS check_count_film,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_BO_QualityRating
LEFT JOIN HJGL_CH_TrustItem ON HJGL_CH_TrustItem.CH_TrustItemID = HJGL_BO_QualityRating.CH_TrustItemID
LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID
WHERE HJGL_CH_Trust.ProjectId=@ProjectId
GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS check_count_film ON check_count_film.CH_NDTMethod = NDTType.NDT_ID
--累计合格焊口数
LEFT JOIN (SELECT COUNT(*) AS total_check_Pass_count,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_CH_TrustItem
LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID
WHERE HJGL_CH_Trust.ProjectId=@ProjectId AND HJGL_CH_TrustItem.States='2' and HJGL_CH_Trust.CH_TrustType='1'
GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS total_check_Pass_count ON total_check_Pass_count.CH_NDTMethod = NDTType.NDT_ID
--累计合格片数
LEFT JOIN (SELECT COUNT(*) AS check_count_Pass_film,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_BO_QualityRating
LEFT JOIN HJGL_CH_TrustItem ON HJGL_CH_TrustItem.CH_TrustItemID = HJGL_BO_QualityRating.CH_TrustItemID
LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID
WHERE HJGL_BO_QualityRating.IsPass='合格' and HJGL_CH_Trust.ProjectId=@ProjectId
GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS check_count_Pass_film ON check_count_Pass_film.CH_NDTMethod = NDTType.NDT_ID
--焊缝返修情况(片数)(当日完成)
LEFT JOIN (SELECT COUNT(*) AS repair_current_film,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_BO_QualityRatingRepair
LEFT JOIN HJGL_CH_RepairItem ON HJGL_CH_RepairItem.CH_RepairItemId = HJGL_BO_QualityRatingRepair.CH_RepairItemId
LEFT JOIN HJGL_CH_Repair ON HJGL_CH_Repair.CH_RepairID = HJGL_CH_RepairItem.CH_RepairID
LEFT JOIN HJGL_CH_TrustItem ON HJGL_CH_TrustItem.CH_TrustItemID = HJGL_CH_Repair.TrustItemID
LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID
WHERE HJGL_CH_Trust.ProjectId=@ProjectId AND CONVERT(varchar(10),HJGL_CH_Repair.RepairTrustDate,120)=@trustDate
GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS repair_current_film ON repair_current_film.CH_NDTMethod = NDTType.NDT_ID
--焊缝返修情况(片数)(累计完成)
LEFT JOIN (SELECT COUNT(*) AS repair_total_film,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_BO_QualityRatingRepair
LEFT JOIN HJGL_CH_RepairItem ON HJGL_CH_RepairItem.CH_RepairItemId = HJGL_BO_QualityRatingRepair.CH_RepairItemId
LEFT JOIN HJGL_CH_Repair ON HJGL_CH_Repair.CH_RepairID = HJGL_CH_RepairItem.CH_RepairID
LEFT JOIN HJGL_CH_TrustItem ON HJGL_CH_TrustItem.CH_TrustItemID = HJGL_CH_Repair.TrustItemID
LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID
WHERE HJGL_CH_Trust.ProjectId=@ProjectId
GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS repair_total_film ON repair_total_film.CH_NDTMethod = NDTType.NDT_ID
--焊缝返修情况(焊口数) 当日完成
left join (select count(*) as repair_current_count,HJGL_CH_Repair.NDT_ID from HJGL_CH_RepairItem
LEFT JOIN HJGL_CH_Repair ON HJGL_CH_Repair.CH_RepairID = HJGL_CH_RepairItem.CH_RepairID
LEFT JOIN HJGL_CH_TrustItem ON HJGL_CH_TrustItem.CH_TrustItemID = HJGL_CH_Repair.TrustItemID
WHERE HJGL_CH_RepairItem.States='4' AND HJGL_CH_Repair.ProjectId=@ProjectId AND CONVERT(varchar(10),HJGL_CH_Repair.RepairTrustDate,120)=@trustDate
GROUP BY HJGL_CH_Repair.NDT_ID) as repair_current_count on repair_current_count.NDT_ID =NDTType.NDT_ID
--焊缝返修情况(焊口数) 累计完成
left join (select count(*) as repair_total_count,HJGL_CH_Repair.NDT_ID from HJGL_CH_RepairItem
LEFT JOIN HJGL_CH_Repair ON HJGL_CH_Repair.CH_RepairID = HJGL_CH_RepairItem.CH_RepairID
LEFT JOIN HJGL_CH_TrustItem ON HJGL_CH_TrustItem.CH_TrustItemID = HJGL_CH_Repair.TrustItemID
WHERE HJGL_CH_RepairItem.States='4' AND HJGL_CH_Repair.ProjectId=@ProjectId
GROUP BY HJGL_CH_Repair.NDT_ID) as repair_total_count on repair_total_count.NDT_ID =NDTType.NDT_ID
GO