2026-04-28 09:46:17 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ALTER PROC [dbo].[HJGL_sp_rpt_iso_analyze]
|
|
|
|
|
|
@unitNo VARCHAR(400) = NULL,
|
|
|
|
|
|
@isono VARCHAR(100) = NULL,
|
|
|
|
|
|
@steel varchar(50) = NULL,
|
|
|
|
|
|
@projectId NVARCHAR(50) = NULL,
|
|
|
|
|
|
@StartDate datetime =null,
|
|
|
|
|
|
@EndDate datetime =null
|
|
|
|
|
|
AS
|
|
|
|
|
|
/*<EFBFBD><EFBFBD><EFBFBD>ӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><EFBFBD> <20>ܴ<EFBFBD><DCB4><EFBFBD><EFBFBD><EFBFBD><DEB8><EFBFBD>2020.03.06*/
|
|
|
|
|
|
SELECT iso.ProjectId,iso.ISO_IsoNo,iso.PressureTestPackageNo,Unit.UnitCode AS bsu_unitcode, --<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
Unit.UnitName AS bsu_unitname, --<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
Project.ProjectCode as projectCode, --ʩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
Project.ProjectName as projectName, --<EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
'<EFBFBD><EFBFBD>'+cast(cast(ISO_Dia as FLOAT) as nvarchar(50))+'<EFBFBD><EFBFBD>'+cast(cast(ISO_Sch as FLOAT) as nvarchar(50)) as IsoDesc, --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
v.ISO_ID,v.total_jot,v.total_din,
|
|
|
|
|
|
ISNULL(v1.finished_total_jot,0) AS finished_total_jot,
|
|
|
|
|
|
ISNULL(v1.finished_total_din,0) AS finished_total_din,v1.maxdate,
|
|
|
|
|
|
ISNULL(v1.total_film,0) AS total_film,
|
|
|
|
|
|
ISNULL(v1.pass_film,0) AS pass_film,
|
|
|
|
|
|
CAST(CASE ISNULL(v1.total_film ,0) WHEN 0 THEN 0
|
|
|
|
|
|
ELSE 1.0*ISNULL(v1.pass_film,0) / (1.0 * v1.total_film) END AS DECIMAL(19,3))
|
|
|
|
|
|
AS passrate, --<EFBFBD><EFBFBD><EFBFBD>ںϸ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
ISNULL(v2.point_jot,0) AS point_jot,
|
|
|
|
|
|
ISNULL(v2.point_total_film,0) AS point_total_film,
|
|
|
|
|
|
ISNULL(v2.point_pass_film,0) AS point_pass_film,
|
|
|
|
|
|
CAST(CASE ISNULL(v2.point_total_film ,0) WHEN 0 THEN 0
|
|
|
|
|
|
ELSE 1.0*ISNULL(v2.point_pass_film,0) / (1.0 * v2.point_total_film) END AS DECIMAL(19,3))
|
|
|
|
|
|
AS point_passrate, --<EFBFBD><EFBFBD><EFBFBD>ںϸ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
ISNULL(v3.ext_jot,0) AS ext_jot,
|
|
|
|
|
|
ISNULL(v3.ext_total_film,0) AS ext_total_film,
|
|
|
|
|
|
ISNULL(v3.ext_pass_film,0) AS ext_pass_film,
|
|
|
|
|
|
CAST(CASE ISNULL(v3.ext_total_film ,0) WHEN 0 THEN 0
|
|
|
|
|
|
ELSE 1.0*ISNULL(v3.ext_pass_film,0) / (1.0 * v3.ext_total_film) END AS DECIMAL(19,3))
|
|
|
|
|
|
AS point_passrate, --<EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
(ISNULL(v2.point_jot,0)+ISNULL(v3.ext_jot,0)) AS check_total_jot,
|
|
|
|
|
|
ISNULL(v4.total_repairjot,0) AS total_repairjot,
|
|
|
|
|
|
ISNULL(v5.trust_total_jot,0) AS trust_total_jot,
|
|
|
|
|
|
CAST(CASE ISNULL(v.total_jot,0) WHEN 0 THEN 0
|
|
|
|
|
|
ELSE 1.0*ISNULL(v2.point_jot,0) / (1.0 * v.total_jot) END AS DECIMAL(19,3))
|
|
|
|
|
|
AS trustrate, --ί<EFBFBD>б<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CAST(CASE ISNULL(v.total_jot,0) WHEN 0 THEN 0
|
|
|
|
|
|
ELSE 1.0*(ISNULL(v3.ext_jot,0) + ISNULL(v2.point_jot,0)) / (1.0 * v.total_jot)
|
|
|
|
|
|
END AS DECIMAL(19,3))
|
|
|
|
|
|
AS checkrate, --<EFBFBD><EFBFBD>̽<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
ISNULL(v6.total_fjot,0) as total_fjot,--<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
ISNULL(v7.total_sjot,0) as total_sjot --Ԥ<EFBFBD>ƺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
FROM
|
|
|
|
|
|
(SELECT ISO_ID, COUNT(JOT_ID) AS total_jot,SUM(ISNULL(JOT_Size,0)) AS total_din
|
|
|
|
|
|
FROM dbo.HJGL_PW_JointInfo
|
|
|
|
|
|
GROUP BY ISO_ID) v
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(SELECT ISO_ID, COUNT(JOT_ID) AS finished_total_jot,SUM(ISNULL(JOT_Size,0)) AS finished_total_din,
|
|
|
|
|
|
max(weldreport.JOT_WeldDate) AS maxdate, SUM(ISNULL(jot.RT_FilmNum,0)) AS total_film,
|
|
|
|
|
|
SUM(ISNULL(jot.RT_FilmNum,0)-ISNULL(jot.RT1_RepairFilmNum,0)) AS pass_film
|
|
|
|
|
|
FROM dbo.HJGL_PW_JointInfo jot
|
|
|
|
|
|
LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID
|
|
|
|
|
|
WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null)
|
|
|
|
|
|
AND jot.DReportID is not null
|
|
|
|
|
|
GROUP BY ISO_ID) v1 ON v1.ISO_ID=v.ISO_ID
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(SELECT ISO_ID, COUNT(jot.JOT_ID) AS point_jot,SUM(ISNULL(jot.RT_FilmNum,0)) AS point_total_film,
|
|
|
|
|
|
SUM(ISNULL(jot.RT_FilmNum,0)-ISNULL(jot.RT1_RepairFilmNum,0)) AS point_pass_film
|
|
|
|
|
|
FROM dbo.HJGL_PW_JointInfo jot
|
|
|
|
|
|
LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID
|
|
|
|
|
|
WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null)
|
|
|
|
|
|
AND jot.DReportID is not NULL AND jot.PointType='<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' or ((select top 1 CH_TrustItemID from HJGL_CH_TrustItem ti where ti.JOT_ID=jot.JOT_ID) is not null and jot.PointType is null)
|
|
|
|
|
|
GROUP BY ISO_ID) v2 ON v2.ISO_ID=v.ISO_ID
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(SELECT ISO_ID, COUNT(jot.JOT_ID) AS ext_jot,SUM(ISNULL(jot.RT_FilmNum,0)) AS ext_total_film,
|
|
|
|
|
|
SUM(ISNULL(jot.RT_FilmNum,0)-ISNULL(jot.RT1_RepairFilmNum,0)) AS ext_pass_film
|
|
|
|
|
|
FROM dbo.HJGL_PW_JointInfo jot
|
|
|
|
|
|
LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID
|
|
|
|
|
|
WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null)
|
|
|
|
|
|
AND jot.DReportID is not NULL AND jot.PointType='<EFBFBD><EFBFBD>'
|
|
|
|
|
|
GROUP BY ISO_ID) v3 ON v3.ISO_ID=v.ISO_ID
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(SELECT jot.ISO_ID, COUNT(distinct trust.JOT_ID) AS trust_total_jot --trust.CH_TrustItemID
|
|
|
|
|
|
FROM dbo.HJGL_CH_TrustItem trust
|
|
|
|
|
|
LEFT join dbo.HJGL_PW_JointInfo AS jot on jot.JOT_ID=trust.JOT_ID
|
|
|
|
|
|
LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID
|
|
|
|
|
|
WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null)
|
|
|
|
|
|
AND jot.DReportID is not NULL
|
|
|
|
|
|
GROUP BY jot.ISO_ID) v5 ON v5.ISO_ID=v.ISO_ID
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(SELECT ISO_ID,COUNT(DISTINCT(jot.JOT_ID)) AS total_repairjot
|
|
|
|
|
|
FROM dbo.HJGL_PW_JointInfo jot
|
|
|
|
|
|
LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID
|
|
|
|
|
|
WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null)
|
|
|
|
|
|
AND jot.DReportID is not NULL
|
|
|
|
|
|
AND(jot.RT1_RepairFilmNum IS NOT NULL OR jot.PTIsRepair1=1 OR jot.MTIsRepair1=1 OR jot.UTIsRepair1=1)
|
|
|
|
|
|
GROUP BY ISO_ID) v4 ON v4.ISO_ID=v.ISO_ID
|
|
|
|
|
|
--<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(SELECT ISO_ID,COUNT(jot.JOT_ID) AS total_fjot
|
|
|
|
|
|
FROM dbo.HJGL_PW_JointInfo jot
|
|
|
|
|
|
LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID
|
2026-04-28 09:58:51 +08:00
|
|
|
|
WHERE jot.WLO_Code='F'
|
2026-04-28 09:46:17 +08:00
|
|
|
|
GROUP BY ISO_ID) v6 ON v6.ISO_ID=v.ISO_ID
|
|
|
|
|
|
--Ԥ<EFBFBD>ƺ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(SELECT ISO_ID,COUNT(jot.JOT_ID) AS total_sjot
|
|
|
|
|
|
FROM dbo.HJGL_PW_JointInfo jot
|
2026-04-28 09:58:51 +08:00
|
|
|
|
WHERE jot.WLO_Code='S'
|
2026-04-28 09:46:17 +08:00
|
|
|
|
GROUP BY ISO_ID) v7 ON v7.ISO_ID=v.ISO_ID
|
|
|
|
|
|
|
|
|
|
|
|
LEFT JOIN dbo.HJGL_PW_IsoInfo iso ON iso.ISO_ID = v.ISO_ID
|
|
|
|
|
|
LEFT JOIN Base_Unit AS Unit ON Unit.UnitId = iso.BSU_ID
|
|
|
|
|
|
LEFT JOIN Base_Project AS Project ON Project.ProjectId = iso.ProjectId
|
|
|
|
|
|
WHERE (iso.ProjectId = @projectId OR @projectId IS NULL)
|
|
|
|
|
|
AND (iso.BSU_ID=@unitno OR @unitno IS NULL)
|
|
|
|
|
|
AND (iso.STE_ID=@steel OR @steel IS NULL)
|
|
|
|
|
|
AND (iso.ISO_IsoNo = @isono OR @isono IS NULL)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ALTER PROCEDURE [dbo].[sp_rpt_WelderQualified]
|
|
|
|
|
|
(
|
|
|
|
|
|
@projectId NVARCHAR(50),
|
|
|
|
|
|
@WED_Name nvarchar(50) = null
|
|
|
|
|
|
)
|
|
|
|
|
|
AS
|
|
|
|
|
|
/***********<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D>ϸ<CFB8><F1BAB8B9>ǼDZ<C7BC>*************/
|
|
|
|
|
|
SELECT (ROW_NUMBER() OVER(ORDER BY pw.ProjectWelderId)) AS Number,
|
|
|
|
|
|
pw.ProjectWelderId,
|
|
|
|
|
|
w.WED_Code,
|
|
|
|
|
|
w.WED_Name,
|
|
|
|
|
|
w.WED_WorkCode as CertificateNo,
|
|
|
|
|
|
convert(varchar(10),wqp.LimitDate,111) as LimitDate,
|
|
|
|
|
|
STRING_AGG(wqp.QualifiedProjectCode, '<EFBFBD><EFBFBD>') as QualifiedProjectCode
|
|
|
|
|
|
FROM Project_Welder pw
|
|
|
|
|
|
LEFT JOIN HJGL_BS_Welder w ON w.WED_ID = pw.WED_ID
|
|
|
|
|
|
left join HJGL_BS_WelderQualifiedProject wqp on wqp.WED_ID = pw.WED_ID
|
|
|
|
|
|
where pw.ProjectId=@projectId
|
|
|
|
|
|
and (w.WED_Name like @WED_Name or @WED_Name is null)
|
|
|
|
|
|
and wqp.LimitDate IS NOT NULL AND wqp.LimitDate> = GETDATE()
|
|
|
|
|
|
GROUP BY pw.ProjectWelderId,w.WED_Code,w.WED_Name,w.WED_WorkCode,wqp.LimitDate
|
|
|
|
|
|
order by w.WED_Code,wqp.LimitDate
|
|
|
|
|
|
GO
|
|
|
|
|
|
|
|
|
|
|
|
|