Basf_TCC7/HJGL/DataBase/版本日志/BSFDB_2019.08.01.sql

229 lines
26 KiB
Transact-SQL
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--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