Files
SGGL_SHJ/DataBase/版本日志/已更新脚本/2020年度/SGGLDB_V2020-09-24-001.sql
T
2022-09-05 16:36:31 +08:00

435 lines
16 KiB
Transact-SQL

Alter table [dbo].[HJGL_Hard_Report] add [SortIndex] int Null,[Flag] int Null,[IsShow] bit Null
Go
CREATE PROCEDURE [dbo].[HJGL_SP_HardReport]
(
@HardTrustID nvarchar(50)
)
AS
--通过委托id获取硬度委托单及硬度检验报告信息
BEGIN
SELECT
Project.ProjectName,
Project.ProjectCode,
Report.ProjectId,
Report.InspectionNum,
Report.CheckName,
Report.HardnessMethod,
Report.Standards,
Report.HardnessRate,
Report.AcceptStandard,
Project.ProjectName,
Project.ProjectCode,
UnitWork.UnitWorkName,
Unit.UnitName as TrustUnitName,
Report.HardTrustUnit as ContractUnitName,
'已完成' as HotProessState,
Report.EquipmentModel,
Trust.MaterialCode,
'共检测'+CONVERT(nvarchar(10),item.pointCount)+'点,符合标准要求'+CONVERT(nvarchar(10),item.pointCount)+'点,不符合标准要求0点,具体检测部位详见单线图。' as testResult
FROM dbo.HJGL_Hard_Trust AS Report
LEFT JOIN dbo.Base_Project AS Project ON Project.ProjectId =Report.ProjectId
LEFT JOIN dbo.Base_Unit AS Unit ON Unit.UnitId =Report.HardTrustUnit
LEFT JOIN dbo.WBS_UnitWork AS UnitWork ON UnitWork.UnitWorkId=Report.UnitWorkId
LEFT JOIN (SELECT COUNT(*)as pointCount,T.HardTrustID FROM HJGL_Hard_Report R
LEFT JOIN dbo.HJGL_Hard_TrustItem T on T.HardTrustItemID=R.HardTrustItemID
WHERE HardTrustID=@HardTrustID and IsShow=1 group by T.HardTrustID) AS item
ON item.HardTrustID=Report.HardTrustID
LEFT JOIN (SELECT top 1 Trust.HardTrustID,Mat.MaterialCode from dbo.HJGL_Hard_TrustItem Trust
LEFT JOIN dbo.HJGL_WeldJoint Jot on Trust.WeldJointId=Jot.WeldJointId
LEFT JOIN dbo.Base_Material Mat on Jot.Material1Id=Mat.MaterialId ) As Trust
ON Trust.HardTrustID=Report.HardTrustID
WHERE Report.HardTrustID = @HardTrustID
END
GO
CREATE PROCEDURE [dbo].[HJGL_SP_HardReportItem]
(
@HardTrustID nvarchar(50),
@Flag CHAR(1)
)
AS
--通过委托id获取硬度委托单及硬度检验报告明细信息
BEGIN
declare @n int,@rows int,@rows2 int,@rows3 int,@maxrows int
declare
@Number INT,
@NewJOT_JointNoStr1 varchar(50),
@HardNessValue1 varchar(100),
@NewJOT_JointNoStr2 varchar(50),
@HardNessValue2 varchar(100),
@NewJOT_JointNoStr3 varchar(50),
@HardNessValue3 varchar(100)
select @rows=COUNT(*) from dbo.HJGL_Hard_Report R
left join HJGL_Hard_TrustItem T on R.HardTrustItemID=T.HardTrustItemID WHERE T.HardTrustID = @HardTrustID AND Flag=1
select @rows2=COUNT(*) from dbo.HJGL_Hard_Report R
left join HJGL_Hard_TrustItem T on R.HardTrustItemID=T.HardTrustItemID where T.HardTrustID = @HardTrustID AND Flag=2
select @rows3=COUNT(*) from dbo.HJGL_Hard_Report R
left join HJGL_Hard_TrustItem T on R.HardTrustItemID=T.HardTrustItemID where T.HardTrustID = @HardTrustID AND Flag=3
set @maxrows=@rows
if(@rows2>@maxrows)
begin
set @maxrows=@rows2
end
if(@rows3>@maxrows)
begin
set @maxrows=@rows3
end
create table #ttableName(
Number INT,
NewJOT_JointNoStr1 varchar(50),
HardNessValue1 varchar(100),
NewJOT_JointNoStr2 varchar(50),
HardNessValue2 varchar(100),
NewJOT_JointNoStr3 varchar(50),
HardNessValue3 varchar(100)
)
set @n=1
while @n<=@maxrows
begin
if(@n<=@rows)
begin
SELECT @NewJOT_JointNoStr1=a.NewJOT_JointNoStr,@HardNessValue1=a.HardNessValue
from
(SELECT ROW_NUMBER() over(order by (JointInfo.WeldJointCode+'-'+Item.TestingPointNo),Item.Remark) as RowNum,
(case when Item.HardNessValue1 is null then '' else convert(varchar(100),Item.HardNessValue1)end)as HardNessValue,
(JointInfo.WeldJointCode+'-'+Item.TestingPointNo) as NewJOT_JointNoStr
FROM dbo.HJGL_Hard_Report AS Item
LEFT JOIN HJGL_Hard_TrustItem T on Item.HardTrustItemID=T.HardTrustItemID
LEFT JOIN dbo.HJGL_WeldJoint AS JointInfo ON JointInfo.WeldJointId =Item.WeldJointId
WHERE T.HardTrustID = @HardTrustID and Item.Flag=1) a
where a.RowNum=@n
end
else
begin
set @NewJOT_JointNoStr1=null
set @HardNessValue1=null
end
if(@n<=@rows2)
begin
select @NewJOT_JointNoStr2=b.NewJOT_JointNoStr,@HardNessValue2=b.HardNessValue
from
(SELECT ROW_NUMBER() over(order by (JointInfo.WeldJointCode+'-'+Item.TestingPointNo),Item.Remark) as RowNum,
(case when Item.HardNessValue1 is null then '' else convert(varchar(100),Item.HardNessValue1)end)as HardNessValue,
(JointInfo.WeldJointCode+'-'+Item.TestingPointNo) as NewJOT_JointNoStr
FROM dbo.HJGL_Hard_Report AS Item
LEFT JOIN HJGL_Hard_TrustItem T on Item.HardTrustItemID=T.HardTrustItemID
LEFT JOIN dbo.HJGL_WeldJoint AS JointInfo ON JointInfo.WeldJointId =Item.WeldJointId
WHERE T.HardTrustID = @HardTrustID and Item.Flag=2) b
where b.RowNum=@n
end
else
begin
set @NewJOT_JointNoStr2=null
set @HardNessValue2=null
end
if(@n<=@rows3)
begin
select @NewJOT_JointNoStr3=c.NewJOT_JointNoStr,@HardNessValue3=c.HardNessValue
from
(SELECT ROW_NUMBER() over(order by (JointInfo.WeldJointCode+'-'+Item.TestingPointNo),Item.Remark) as RowNum,
(case when Item.HardNessValue1 is null then '' else convert(varchar(100),Item.HardNessValue1)end)as HardNessValue,
(JointInfo.WeldJointCode+'-'+Item.TestingPointNo) as NewJOT_JointNoStr
FROM dbo.HJGL_Hard_Report AS Item
LEFT JOIN HJGL_Hard_TrustItem T on Item.HardTrustItemID=T.HardTrustItemID
LEFT JOIN dbo.HJGL_WeldJoint AS JointInfo ON JointInfo.WeldJointId =Item.WeldJointId
WHERE T.HardTrustID = @HardTrustID and Item.Flag=3) c
where c.RowNum=@n
end
else
begin
set @NewJOT_JointNoStr3=null
set @HardNessValue3=null
end
insert into #ttableName(Number,NewJOT_JointNoStr1,HardNessValue1,NewJOT_JointNoStr2,
HardNessValue2,NewJOT_JointNoStr3,HardNessValue3)
VALUES(@n,@NewJOT_JointNoStr1,@HardNessValue1,@NewJOT_JointNoStr2,
@HardNessValue2,@NewJOT_JointNoStr3,@HardNessValue3)
select @n=@n+1
END
IF(@Flag='1')
BEGIN
SELECT * from #ttableName WHERE Number<=18
END
IF(@Flag='2')
BEGIN
SELECT * from #ttableName WHERE Number>18
END
ELSE
BEGIN
SELECT * from #ttableName
END
drop table #ttableName
END
GO
Create PROCEDURE [dbo].[SP_HJGL_HotProessReportItem]
(
@HotProessTrustId varchar(50),
@Flag CHAR(1)
)
AS
--管道焊接接头热处理日委托单明细表
IF(@Flag='1')
BEGIN
SELECT v.* FROM
(SELECT ROW_NUMBER() OVER(ORDER BY WeldJoint.WeldJointCode,ReportItem.PointCount) AS Number,
WeldJoint.WeldJointCode,
Pipeline.PipelineCode,
ReportItem.PointCount,
ReportItem.RequiredT,
ReportItem.ActualT,
ReportItem.RequestTime,
ReportItem.ActualTime,
ReportItem.RecordChartNo,
WeldJoint.Specification, --规格
Material.MaterialCode, --材质
Trust.ProessDate
FROM HJGL_HotProess_Report AS ReportItem
LEFT JOIN HJGL_HotProess_TrustItem AS TrustItem ON TrustItem.HotProessTrustItemId=ReportItem.HotProessTrustItemId
LEFT JOIN HJGL_HotProess_Trust AS Trust ON Trust.HotProessTrustId=TrustItem.HotProessTrustId
LEFT JOIN HJGL_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=TrustItem.WeldJointId
LEFT JOIN HJGL_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId
LEFT JOIN Base_Material AS Material ON Material.MaterialId=WeldJoint.Material1Id
WHERE Trust.HotProessTrustId = @HotProessTrustId and Trust.ReportNo is not null and Trust.ReportNo!='') v
WHERE v.Number<=7
END
else IF(@Flag='2')
BEGIN
SELECT v.* FROM
(SELECT ROW_NUMBER() OVER(ORDER BY WeldJoint.WeldJointCode,ReportItem.PointCount) AS Number,
WeldJoint.WeldJointCode,
Pipeline.PipelineCode,
ReportItem.PointCount,
ReportItem.RequiredT,
ReportItem.ActualT,
ReportItem.RequestTime,
ReportItem.ActualTime,
ReportItem.RecordChartNo,
WeldJoint.Specification, --规格
Material.MaterialCode, --材质
Trust.ProessDate
FROM HJGL_HotProess_Report AS ReportItem
LEFT JOIN HJGL_HotProess_TrustItem AS TrustItem ON TrustItem.HotProessTrustItemId=ReportItem.HotProessTrustItemId
LEFT JOIN HJGL_HotProess_Trust AS Trust ON Trust.HotProessTrustId=TrustItem.HotProessTrustId
LEFT JOIN HJGL_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=TrustItem.WeldJointId
LEFT JOIN HJGL_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId
LEFT JOIN Base_Material AS Material ON Material.MaterialId=WeldJoint.Material1Id
WHERE Trust.HotProessTrustId = @HotProessTrustId and Trust.ReportNo is not null and Trust.ReportNo!='') v
WHERE v.Number>7
END
ELSE
BEGIN
SELECT v.* FROM
(SELECT ROW_NUMBER() OVER(ORDER BY WeldJoint.WeldJointCode,ReportItem.PointCount) AS Number,
WeldJoint.WeldJointCode,
Pipeline.PipelineCode,
ReportItem.PointCount,
ReportItem.RequiredT,
ReportItem.ActualT,
ReportItem.RequestTime,
ReportItem.ActualTime,
ReportItem.RecordChartNo,
WeldJoint.Specification, --规格
Material.MaterialCode, --材质
Trust.ProessDate
FROM HJGL_HotProess_Report AS ReportItem
LEFT JOIN HJGL_HotProess_TrustItem AS TrustItem ON TrustItem.HotProessTrustItemId=ReportItem.HotProessTrustItemId
LEFT JOIN HJGL_HotProess_Trust AS Trust ON Trust.HotProessTrustId=TrustItem.HotProessTrustId
LEFT JOIN HJGL_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=TrustItem.WeldJointId
LEFT JOIN HJGL_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId
LEFT JOIN Base_Material AS Material ON Material.MaterialId=WeldJoint.Material1Id
WHERE Trust.HotProessTrustId = @HotProessTrustId and Trust.ReportNo is not null and Trust.ReportNo!='') v
END
GO
CREATE VIEW [dbo].[HJGL_View_HardReportItem]
/*硬度检验报告明细表查询列表*/
AS
SELECT Report.HardReportId, --硬度检验报告明细id
Report.HardTrustItemID,
JointInfo.WeldJointId, --焊口id
Report.TestingPointNo, --试验部位
Report.HardNessValue1 AS HardNessValue1,
Report2.HardNessValue1 AS HardNessValue2,
Report3.HardNessValue1 AS HardNessValue3,
Report.IsShow,
JointInfo.WeldJointCode,
Report.SortIndex,
Report.Remark,
Report.Flag
FROM dbo.HJGL_WeldJoint AS JointInfo
LEFT JOIN dbo.HJGL_Hard_TrustItem AS TrustItem ON JointInfo.WeldJointId=TrustItem.WeldJointId
LEFT JOIN dbo.HJGL_Hard_Report AS Report ON Report.HardTrustItemID=TrustItem.HardTrustItemID
LEFT JOIN dbo.HJGL_Hard_Report AS Report2 ON Report.WeldJointId=Report2.WeldJointId AND Report.HardTrustItemID=Report2.HardTrustItemID AND Report.SortIndex=Report2.SortIndex AND Report2.IsShow=0
LEFT JOIN dbo.HJGL_Hard_Report AS Report3 ON Report.WeldJointId=Report3.WeldJointId AND Report.HardTrustItemID=Report3.HardTrustItemID AND Report.SortIndex=Report3.SortIndex AND Report3.IsShow IS NULL
WHERE Report.IsShow=1
GO
ALTER PROCEDURE [dbo].[SP_HJGL_HotProessReportItem]
(
@HotProessTrustId varchar(50),
@Flag CHAR(1)
)
AS
--管道焊接接头热处理日委托单明细表
IF(@Flag='1')
BEGIN
SELECT v.* FROM
(SELECT ROW_NUMBER() OVER(ORDER BY WeldJoint.WeldJointCode,ReportItem.PointCount) AS Number,
WeldJoint.WeldJointCode,
Pipeline.PipelineCode,
ReportItem.PointCount,
ReportItem.RequiredT,
ReportItem.ActualT,
ReportItem.RequestTime,
ReportItem.ActualTime,
ReportItem.RecordChartNo,
WeldJoint.Specification, --规格
Material.MaterialCode, --材质
Trust.ProessDate,
HardReport.InspectionNum
FROM HJGL_HotProess_Report AS ReportItem
LEFT JOIN HJGL_HotProess_TrustItem AS TrustItem ON TrustItem.HotProessTrustItemId=ReportItem.HotProessTrustItemId
LEFT JOIN (SELECT InspectionNum,HotProessTrustItemId FROM HJGL_Hard_TrustItem AS Hard LEFT JOIN HJGL_Hard_Trust Trust ON Hard.HardTrustID=Trust.HardTrustID) as HardReport
on HardReport.HotProessTrustItemId=TrustItem.HotProessTrustItemId
LEFT JOIN HJGL_HotProess_Trust AS Trust ON Trust.HotProessTrustId=TrustItem.HotProessTrustId
LEFT JOIN HJGL_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=TrustItem.WeldJointId
LEFT JOIN HJGL_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId
LEFT JOIN Base_Material AS Material ON Material.MaterialId=WeldJoint.Material1Id
WHERE Trust.HotProessTrustId = @HotProessTrustId and Trust.ReportNo is not null and Trust.ReportNo!='') v
WHERE v.Number<=7
END
else IF(@Flag='2')
BEGIN
SELECT v.* FROM
(SELECT ROW_NUMBER() OVER(ORDER BY WeldJoint.WeldJointCode,ReportItem.PointCount) AS Number,
WeldJoint.WeldJointCode,
Pipeline.PipelineCode,
ReportItem.PointCount,
ReportItem.RequiredT,
ReportItem.ActualT,
ReportItem.RequestTime,
ReportItem.ActualTime,
ReportItem.RecordChartNo,
WeldJoint.Specification, --规格
Material.MaterialCode, --材质
Trust.ProessDate,
HardReport.InspectionNum
FROM HJGL_HotProess_Report AS ReportItem
LEFT JOIN HJGL_HotProess_TrustItem AS TrustItem ON TrustItem.HotProessTrustItemId=ReportItem.HotProessTrustItemId
LEFT JOIN (SELECT InspectionNum,HotProessTrustItemId FROM HJGL_Hard_TrustItem AS Hard LEFT JOIN HJGL_Hard_Trust Trust ON Hard.HardTrustID=Trust.HardTrustID) as HardReport
on HardReport.HotProessTrustItemId=TrustItem.HotProessTrustItemId
LEFT JOIN HJGL_HotProess_Trust AS Trust ON Trust.HotProessTrustId=TrustItem.HotProessTrustId
LEFT JOIN HJGL_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=TrustItem.WeldJointId
LEFT JOIN HJGL_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId
LEFT JOIN Base_Material AS Material ON Material.MaterialId=WeldJoint.Material1Id
WHERE Trust.HotProessTrustId = @HotProessTrustId and Trust.ReportNo is not null and Trust.ReportNo!='') v
WHERE v.Number>7
END
ELSE
BEGIN
SELECT v.* FROM
(SELECT ROW_NUMBER() OVER(ORDER BY WeldJoint.WeldJointCode,ReportItem.PointCount) AS Number,
WeldJoint.WeldJointCode,
Pipeline.PipelineCode,
ReportItem.PointCount,
ReportItem.RequiredT,
ReportItem.ActualT,
ReportItem.RequestTime,
ReportItem.ActualTime,
ReportItem.RecordChartNo,
WeldJoint.Specification, --规格
Material.MaterialCode, --材质
Trust.ProessDate,
HardReport.InspectionNum
FROM HJGL_HotProess_Report AS ReportItem
LEFT JOIN HJGL_HotProess_TrustItem AS TrustItem ON TrustItem.HotProessTrustItemId=ReportItem.HotProessTrustItemId
LEFT JOIN (SELECT InspectionNum,HotProessTrustItemId FROM HJGL_Hard_TrustItem AS Hard LEFT JOIN HJGL_Hard_Trust Trust ON Hard.HardTrustID=Trust.HardTrustID) as HardReport
on HardReport.HotProessTrustItemId=TrustItem.HotProessTrustItemId
LEFT JOIN HJGL_HotProess_Trust AS Trust ON Trust.HotProessTrustId=TrustItem.HotProessTrustId
LEFT JOIN HJGL_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=TrustItem.WeldJointId
LEFT JOIN HJGL_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId
LEFT JOIN Base_Material AS Material ON Material.MaterialId=WeldJoint.Material1Id
WHERE Trust.HotProessTrustId = @HotProessTrustId and Trust.ReportNo is not null and Trust.ReportNo!='') v
END
GO
ALTER PROCEDURE [dbo].[HJGL_SP_HardReport]
(
@HardTrustID nvarchar(50)
)
AS
--通过委托id获取硬度委托单及硬度检验报告信息
BEGIN
SELECT
Project.ProjectName,
Project.ProjectCode,
Report.ProjectId,
Report.InspectionNum,
Report.CheckName,
Report.HardnessMethod,
Report.Standards,
Report.HardnessRate,
Report.AcceptStandard,
Project.ProjectName,
Project.ProjectCode,
UnitWork.UnitWorkName,
HardTrustUnit.UnitName as TrustUnitName,
Unit.UnitName as ContractUnitName,
'已完成' as HotProessState,
Report.EquipmentModel,
Trust.MaterialCode,
'共检测'+CONVERT(nvarchar(10),item.pointCount)+'点,符合标准要求'+CONVERT(nvarchar(10),item.pointCount)+'点,不符合标准要求0点,具体检测部位详见单线图。' as testResult
FROM dbo.HJGL_Hard_Trust AS Report
LEFT JOIN dbo.Base_Project AS Project ON Project.ProjectId =Report.ProjectId
LEFT JOIN dbo.Base_Unit AS Unit ON Unit.UnitId =Report.CheckUnit
LEFT JOIN dbo.Base_Unit AS HardTrustUnit ON HardTrustUnit.UnitId =Report.HardTrustUnit
LEFT JOIN dbo.WBS_UnitWork AS UnitWork ON UnitWork.UnitWorkId=Report.UnitWorkId
LEFT JOIN (SELECT COUNT(*)as pointCount,T.HardTrustID FROM HJGL_Hard_Report R
LEFT JOIN dbo.HJGL_Hard_TrustItem T on T.HardTrustItemID=R.HardTrustItemID
WHERE HardTrustID=@HardTrustID and IsShow=1 group by T.HardTrustID) AS item
ON item.HardTrustID=Report.HardTrustID
LEFT JOIN (SELECT top 1 Trust.HardTrustID,Mat.MaterialCode from dbo.HJGL_Hard_TrustItem Trust
LEFT JOIN dbo.HJGL_WeldJoint Jot on Trust.WeldJointId=Jot.WeldJointId
LEFT JOIN dbo.Base_Material Mat on Jot.Material1Id=Mat.MaterialId where HardTrustID=@HardTrustID) As Trust
ON Trust.HardTrustID=Report.HardTrustID
WHERE Report.HardTrustID = @HardTrustID
END
GO