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

368 lines
16 KiB
Transact-SQL

update Sys_Menu set SortIndex='9' where MenuId='32F5CC8C-E0F4-456C-AB88-77E36269FA50'
update HJGL_Pipeline set PCMedium=null
alter table HJGL_Pipeline drop constraint FK_HJGL_Pipeline_Base_TestMedium
GO
ALTER VIEW [dbo].[View_HJGL_Pipeline]
AS
/*************管线视图*****************/
SELECT pipeline.PipelineId,
pipeline.ProjectId,
pipeline.UnitId,
pipeline.UnitWorkId,
pipeline.PipelineCode,
pipeline.SingleNumber,
pipeline.PipingClassId,
pipeline.MediumId,
pipingClass.PipingClassCode,
pipeline.DetectionRateId,
rate.DetectionRateCode,
pipeline.DetectionType,
pipeline.TestPressure,
pipeline.TestMedium,
pipeline.PressurePipingClassId,
pc.PressurePipingClassCode,
pipeline.PipeLenth,
pipeline.DesignPress,
pipeline.DesignTemperature,
pipeline.Remark,
pipeline.LeakPressure,
pipeline.LeakMedium,
pipeline.VacuumPressure,
pipeline.PCMedium ,
lea.MediumName as LeakMediumName,
pur.PurgeMethodName as PCMediumName,
CAST((SELECT SUM(ISNULL(Size,0)) FROM dbo.HJGL_WeldJoint WHERE PipelineId=pipeline.PipelineId) AS DECIMAL(8,3)) AS TotalDin,
(SELECT COUNT(WeldJointId) FROM dbo.HJGL_WeldJoint WHERE PipelineId=pipeline.PipelineId) AS JointCount,
unit.UnitName,
workArea.UnitWorkCode,
medium.MediumCode,
testMedium.MediumCode AS TestMediumCode
FROM dbo.HJGL_Pipeline AS pipeline
LEFT JOIN Base_PipingClass AS pipingClass ON pipingClass.PipingClassId=pipeline.PipingClassId
LEFT JOIN dbo.Base_Unit AS unit ON unit.UnitId=pipeline.UnitId
LEFT JOIN WBS_UnitWork AS workArea ON workArea.UnitWorkId=pipeline.UnitWorkId
LEFT JOIN Base_Medium AS medium ON medium.MediumId=pipeline.MediumId
LEFT JOIN dbo.Base_TestMedium AS testMedium ON testMedium.TestMediumId=pipeline.TestMedium
LEFT JOIN dbo.Base_DetectionRate rate ON rate.DetectionRateId = pipeline.DetectionRateId
LEFT JOIN dbo.Base_PressurePipingClass pc ON pc.PressurePipingClassId = pipeline.PressurePipingClassId
LEFT JOIN dbo.Base_TestMedium AS lea ON lea.TestMediumId=pipeline.LeakMedium
LEFT JOIN dbo.Base_PurgeMethod AS pur ON pur.PurgeMethodId=pipeline.PCMedium
GO
alter table [dbo].[PTP_TestPackage] add TestDate datetime NULL
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'试验日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'PTP_TestPackage', @level2type=N'COLUMN',@level2name=N'TestDate'
GO
alter table [dbo].[HJGL_HotProess_Trust] add ReportNo nvarchar(50) NULL
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'报告编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_HotProess_Trust', @level2type=N'COLUMN',@level2name=N'ReportNo'
GO
DELETE FROM dbo.Sys_Const WHERE ConstValue ='111' AND ConstText='管道无损检测结果汇总表(续)'
GO
DELETE FROM dbo.Sys_Const WHERE ConstValue ='112' AND ConstText='管道系统压力试验条件确认记录'
GO
UPDATE dbo.Sys_Const SET ConstText='管道系统压力试验条件确认记录' WHERE ConstValue='110' AND GroupId='Report'
GO
ALTER TABLE dbo.HJGL_WeldTask DROP COLUMN WelderCodeStr
ALTER TABLE dbo.HJGL_WeldTask ADD CanWelderCode NVARCHAR(200) NULL
ALTER TABLE dbo.HJGL_WeldTask ADD CanWelderId NVARCHAR(3000) NULL
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'任务日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_WeldTask', @level2type=N'COLUMN',@level2name=N'TaskDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'可焊焊工号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_WeldTask', @level2type=N'COLUMN',@level2name=N'CanWelderCode'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'可焊焊工ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_WeldTask', @level2type=N'COLUMN',@level2name=N'CanWelderId'
GO
CREATE function [dbo].[Fun_GetParseInt](@str varchar(50))
returns varchar(1000)
as
begin
declare @s varchar(30)
begin
--判断后两位是不是含有字母
if (PATINDEX('%[A-Za-z]%', RIGHT(@str,2))>0 )
begin
set @str=left(@str,len(@str) -1) --含有字母就去掉后面一位
end
else
begin
set @str=@str
end
end
set @s=@str
while patindex('%[^0-9]%',@s)>0
select @s=stuff(@s,patindex('%[^0-9]%',@s),1,'')
return @s
END
GO
CREATE PROCEDURE [dbo].[HJGL_spJointWorkRecordNew]
(
@IsoId varchar(50),
@Flag CHAR(1)
)
AS
/*管道焊接工作记录查询(新) 存储过程 */
IF(@Flag='1')
BEGIN
SELECT v.* FROM
(SELECT ROW_NUMBER() OVER(ORDER BY convert(int,dbo.Fun_GetParseInt(jot.WeldJointCode))) AS Number,
(CASE WHEN jot.CoverWelderId!=jot.BackingWelderId THEN FloorWelder.WelderCode+'/'+CellWelder.WelderCode ELSE FloorWelder.WelderCode END) AS WED_Code,--焊工号
isoInfo.PipelineCode AS ISO_IsoNo
,jot.WeldJointCode AS JOT_JointNo
,convert(int,dbo.Fun_GetParseInt(jot.WeldJointCode)) AS ConvertJointNo
,jot.Specification AS JOT_JointDesc
,(CASE WHEN jot.Material1Id!=jot.Material2Id AND jot.Material1Id IS NOT NULL AND jot.Material2Id IS NOT NULL
THEN mat1.MaterialCode + '/' + mat2.MaterialCode
WHEN mat1.MaterialCode IS NOT NULL THEN mat1.MaterialCode
ELSE ISNULL(mat2.MaterialCode,'') END) AS STE_Code --材质
,isoInfo.PipelineCode AS ISO_IsoNumber
,jot.JointAttribute as weldLocal
,weldMethod.WeldingMethodCode AS WME_Name,
(CASE WHEN jot.WeldingRod IS NOT NULL AND jot.WeldingWire IS NOT NULL
THEN rod.ConsumablesCode + '/' + wire.ConsumablesCode
WHEN jot.WeldingRod IS NOT NULL AND jot.WeldingWire IS NULL THEN rod.ConsumablesCode
WHEN jot.WeldingWire IS NOT NULL AND jot.WeldingRod IS NULL THEN wire.ConsumablesCode
ELSE '' END) AS WMT_MatName
,jot.PreTemperature as JOT_PrepareTemp
,CONVERT(varchar(100), daily.WeldingDate, 23) as WeldDate
from dbo.HJGL_WeldJoint jot
LEFT JOIN dbo.SitePerson_Person AS CellWelder ON CellWelder.PersonId=jot.CoverWelderId
LEFT JOIN dbo.SitePerson_Person AS FloorWelder ON FloorWelder.PersonId=jot.BackingWelderId
left join dbo.HJGL_Pipeline isoInfo on isoInfo.PipelineId=jot.PipelineId
left join dbo.Base_Material mat1 on mat1.MaterialId=jot.Material1Id
LEFT JOIN dbo.Base_Material mat2 ON mat2.MaterialId = jot.Material2Id
left join dbo.Base_WeldingMethod weldMethod on weldMethod.WeldingMethodId = jot.WeldingMethodId
LEFT JOIN Base_Consumables AS wire ON wire.ConsumablesId=jot.WeldingWire
LEFT JOIN Base_Consumables AS rod ON rod.ConsumablesId=jot.WeldingRod
LEFT JOIN dbo.HJGL_WeldingDaily AS daily ON daily.WeldingDailyId=jot.WeldingDailyId
where (jot.WeldingDailyId is not null and jot.WeldingDailyId !='')
and jot.PipelineId=@IsoId) v
WHERE v.Number<=11
END
else IF(@Flag='2')
BEGIN
SELECT v.* FROM
(SELECT ROW_NUMBER() OVER(ORDER BY convert(int,dbo.Fun_GetParseInt(jot.WeldJointCode))) AS Number,
(CASE WHEN jot.CoverWelderId!=jot.BackingWelderId THEN FloorWelder.WelderCode+'/'+CellWelder.WelderCode ELSE FloorWelder.WelderCode END) AS WED_Code,--焊工号
isoInfo.PipelineCode AS ISO_IsoNo
,jot.WeldJointCode AS JOT_JointNo
,convert(int,dbo.Fun_GetParseInt(jot.WeldJointCode)) AS ConvertJointNo
,jot.Specification AS JOT_JointDesc
,(CASE WHEN jot.Material1Id!=jot.Material2Id AND jot.Material1Id IS NOT NULL AND jot.Material2Id IS NOT NULL
THEN mat1.MaterialCode + '/' + mat2.MaterialCode
WHEN mat1.MaterialCode IS NOT NULL THEN mat1.MaterialCode
ELSE ISNULL(mat2.MaterialCode,'') END) AS STE_Code --材质
,isoInfo.PipelineCode AS ISO_IsoNumber
,jot.JointAttribute as weldLocal
,weldMethod.WeldingMethodCode AS WME_Name,
(CASE WHEN jot.WeldingRod IS NOT NULL AND jot.WeldingWire IS NOT NULL
THEN rod.ConsumablesCode + '/' + wire.ConsumablesCode
WHEN jot.WeldingRod IS NOT NULL AND jot.WeldingWire IS NULL THEN rod.ConsumablesCode
WHEN jot.WeldingWire IS NOT NULL AND jot.WeldingRod IS NULL THEN wire.ConsumablesCode
ELSE '' END) AS WMT_MatName
,jot.PreTemperature as JOT_PrepareTemp
,CONVERT(varchar(100), daily.WeldingDate, 23) as WeldDate
from dbo.HJGL_WeldJoint jot
LEFT JOIN dbo.SitePerson_Person AS CellWelder ON CellWelder.PersonId=jot.CoverWelderId
LEFT JOIN dbo.SitePerson_Person AS FloorWelder ON FloorWelder.PersonId=jot.BackingWelderId
left join dbo.HJGL_Pipeline isoInfo on isoInfo.PipelineId=jot.PipelineId
left join dbo.Base_Material mat1 on mat1.MaterialId=jot.Material1Id
LEFT JOIN dbo.Base_Material mat2 ON mat2.MaterialId = jot.Material2Id
left join dbo.Base_WeldingMethod weldMethod on weldMethod.WeldingMethodId = jot.WeldingMethodId
LEFT JOIN Base_Consumables AS wire ON wire.ConsumablesId=jot.WeldingWire
LEFT JOIN Base_Consumables AS rod ON rod.ConsumablesId=jot.WeldingRod
LEFT JOIN dbo.HJGL_WeldingDaily AS daily ON daily.WeldingDailyId=jot.WeldingDailyId
where (jot.WeldingDailyId is not null and jot.WeldingDailyId !='')
and jot.PipelineId=@IsoId) v
WHERE v.Number>11
END
ELSE
BEGIN
SELECT v.* FROM
(SELECT ROW_NUMBER() OVER(ORDER BY convert(int,dbo.Fun_GetParseInt(jot.WeldJointCode))) AS Number,
(CASE WHEN jot.CoverWelderId!=jot.BackingWelderId THEN FloorWelder.WelderCode+'/'+CellWelder.WelderCode ELSE FloorWelder.WelderCode END) AS WED_Code,--焊工号
isoInfo.PipelineCode AS ISO_IsoNo
,jot.WeldJointCode AS JOT_JointNo
,convert(int,dbo.Fun_GetParseInt(jot.WeldJointCode)) AS ConvertJointNo
,jot.Specification AS JOT_JointDesc
,(CASE WHEN jot.Material1Id!=jot.Material2Id AND jot.Material1Id IS NOT NULL AND jot.Material2Id IS NOT NULL
THEN mat1.MaterialCode + '/' + mat2.MaterialCode
WHEN mat1.MaterialCode IS NOT NULL THEN mat1.MaterialCode
ELSE ISNULL(mat2.MaterialCode,'') END) AS STE_Code --材质
,isoInfo.PipelineCode AS ISO_IsoNumber
,jot.JointAttribute as weldLocal
,weldMethod.WeldingMethodCode AS WME_Name,
(CASE WHEN jot.WeldingRod IS NOT NULL AND jot.WeldingWire IS NOT NULL
THEN rod.ConsumablesCode + '/' + wire.ConsumablesCode
WHEN jot.WeldingRod IS NOT NULL AND jot.WeldingWire IS NULL THEN rod.ConsumablesCode
WHEN jot.WeldingWire IS NOT NULL AND jot.WeldingRod IS NULL THEN wire.ConsumablesCode
ELSE '' END) AS WMT_MatName
,jot.PreTemperature as JOT_PrepareTemp
,CONVERT(varchar(100), daily.WeldingDate, 23) as WeldDate
from dbo.HJGL_WeldJoint jot
LEFT JOIN dbo.SitePerson_Person AS CellWelder ON CellWelder.PersonId=jot.CoverWelderId
LEFT JOIN dbo.SitePerson_Person AS FloorWelder ON FloorWelder.PersonId=jot.BackingWelderId
left join dbo.HJGL_Pipeline isoInfo on isoInfo.PipelineId=jot.PipelineId
left join dbo.Base_Material mat1 on mat1.MaterialId=jot.Material1Id
LEFT JOIN dbo.Base_Material mat2 ON mat2.MaterialId = jot.Material2Id
left join dbo.Base_WeldingMethod weldMethod on weldMethod.WeldingMethodId = jot.WeldingMethodId
LEFT JOIN Base_Consumables AS wire ON wire.ConsumablesId=jot.WeldingWire
LEFT JOIN Base_Consumables AS rod ON rod.ConsumablesId=jot.WeldingRod
LEFT JOIN dbo.HJGL_WeldingDaily AS daily ON daily.WeldingDailyId=jot.WeldingDailyId
where (jot.WeldingDailyId is not null and jot.WeldingDailyId !='')
and jot.PipelineId=@IsoId) v
END
GO
CREATE VIEW [dbo].[View_HJGL_WeldingTask]
AS
SELECT T.WeldTaskId,T.WeldJointId,T.CoverWelderId,T.BackingWelderId,
cov.WelderCode AS CoverWelderCode,back.WelderCode AS BackingWelderCode,T.JointAttribute,
T.WeldingMode,T.ProjectId,T.UnitWorkId,T.UnitId,T.TaskDate,T.Tabler,T.TableDate,
jot.WeldJointCode,jot.Dia,jot.Thickness,jot.Size,jot.WeldingLocationId,
CASE WHEN jot.WeldingDailyId IS NULL THEN '' ELSE '' END AS IsWelding,
P.PipelineCode,B.WeldTypeCode,M.WeldingMethodCode,L.WeldingLocationCode,
t.CanWelderCode,t.CanWelderId ,rod.ConsumablesCode AS WeldingRodCode,
wire.ConsumablesCode AS WeldingWireCode
from HJGL_WeldTask T
left join HJGL_WeldJoint jot on T.WeldJointId=jot.WeldJointId
LEFT JOIN dbo.SitePerson_Person cov ON cov.PersonId=t.CoverWelderId
LEFT JOIN dbo.SitePerson_Person back ON back.PersonId=t.BackingWelderId
LEFT join HJGL_Pipeline P on jot.PipelineId=P.PipelineId
left join Base_WeldType B on jot.WeldTypeId=B.WeldTypeId
LEFT join Base_WeldingMethod M on jot.WeldingMethodId=M.WeldingMethodId
left join Base_WeldingLocation L on jot.WeldingLocationId=L.WeldingLocationId
LEFT JOIN Base_Consumables AS wire ON wire.ConsumablesId=jot.WeldingWire
LEFT JOIN Base_Consumables AS rod ON rod.ConsumablesId=jot.WeldingRod
GO
ALTER VIEW [dbo].[View_HJGL_NoWeldJointFind]
AS
--未焊焊口查找
SELECT jot.WeldJointId,jot.WeldJointCode,jot.PipelineId,jot.WeldingDailyId,WeldType.WeldTypeCode,
method.WeldingMethodCode,jot.Dia,jot.Thickness, rod.ConsumablesCode AS WeldingRodCode
,wire.ConsumablesCode AS WeldingWireCode,
mat1.MaterialCode AS Material1Code ,mat2.MaterialCode AS Material2Code
FROM dbo.HJGL_WeldJoint jot
LEFT JOIN dbo.HJGL_PreWeldingDaily pre ON pre.WeldJointId = jot.WeldJointId
LEFT JOIN Base_WeldType AS WeldType ON WeldType.WeldTypeId=jot.WeldTypeId
LEFT JOIN Base_WeldingMethod AS method ON method.WeldingMethodId=jot.WeldingMethodId
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_Consumables AS wire ON wire.ConsumablesId=jot.WeldingWire
LEFT JOIN Base_Consumables AS rod ON rod.ConsumablesId=jot.WeldingRod
WHERE pre.PreWeldingDailyId IS NULL
GO
ALTER VIEW [dbo].[View_HJGL_WeldingTask]
AS
SELECT T.WeldTaskId,T.WeldJointId,T.CoverWelderId,T.BackingWelderId,
cov.WelderCode AS CoverWelderCode,back.WelderCode AS BackingWelderCode,T.JointAttribute,
T.WeldingMode,T.ProjectId,T.UnitWorkId,T.UnitId,T.TaskDate,T.Tabler,T.TableDate,
jot.WeldJointCode,jot.Dia,jot.Thickness,jot.Size,jot.WeldingLocationId,
CASE WHEN jot.WeldingDailyId IS NULL THEN '' ELSE '' END AS IsWelding,
P.PipelineCode,B.WeldTypeCode,M.WeldingMethodCode,L.WeldingLocationCode,
t.CanWelderCode,t.CanWelderId ,rod.ConsumablesCode AS WeldingRodCode,
wire.ConsumablesCode AS WeldingWireCode,jot.WeldingDailyId
from HJGL_WeldTask T
left join HJGL_WeldJoint jot on T.WeldJointId=jot.WeldJointId
LEFT JOIN dbo.SitePerson_Person cov ON cov.PersonId=t.CoverWelderId
LEFT JOIN dbo.SitePerson_Person back ON back.PersonId=t.BackingWelderId
LEFT join HJGL_Pipeline P on jot.PipelineId=P.PipelineId
left join Base_WeldType B on jot.WeldTypeId=B.WeldTypeId
LEFT join Base_WeldingMethod M on jot.WeldingMethodId=M.WeldingMethodId
left join Base_WeldingLocation L on jot.WeldingLocationId=L.WeldingLocationId
LEFT JOIN Base_Consumables AS wire ON wire.ConsumablesId=jot.WeldingWire
LEFT JOIN Base_Consumables AS rod ON rod.ConsumablesId=jot.WeldingRod
GO
CREATE PROCEDURE [dbo].[HJGL_PTP_PipelineList]
(
@PTP_ID NVARCHAR(50)
)
AS
SELECT ptpPipe.DesignPress,
ptpPipe.DesignTemperature, ptpPipe.AmbientTemperature,
ptpPipe.TestMediumTemperature, ptpPipe.TestPressure, ptpPipe.HoldingTime,IsoInfo.PipelineCode,testMedium.MediumName
FROM dbo.PTP_PipelineList AS ptpPipe
LEFT JOIN dbo.HJGL_Pipeline AS IsoInfo ON ptpPipe.PipelineId = IsoInfo.PipelineId
LEFT JOIN dbo.Base_TestMedium AS testMedium ON testMedium.TestMediumId = IsoInfo.TestMedium
WHERE ptpPipe.PTP_ID=@PTP_ID
GO
CREATE PROCEDURE [dbo].[Sp_HJGL_LV_LeakVacuum]
(
@LeakVacuumId NVARCHAR(50)
)
AS
SELECT IsoInfo.PipelineCode,
IsoInfo.DesignPress,
IsoInfo.DesignTemperature,
lv.AmbientTemperature,
lv.TestMediumTemperature,
lv.LeakPressure,
lea.MediumName as LeaMediumName,
vac.MediumName as VacuumMediumName,
lv.VacuumPressure
FROM dbo.HJGL_LV_Pipeline AS lv
LEFT JOIN dbo.HJGL_Pipeline AS IsoInfo ON IsoInfo.PipelineId = lv.PipelineId
LEFT JOIN dbo.Base_TestMedium AS lea ON lea.TestMediumId = lv.LeakMedium
LEFT JOIN dbo.Base_TestMedium AS vac ON vac.TestMediumId = lv.VacuumMedium
WHERE lv.LeakVacuumId=@LeakVacuumId
GO
CREATE PROCEDURE [dbo].[Sp_HJGL_PC_Pipeline]
(
@PurgingCleaningId NVARCHAR(50)
)
AS
SELECT IsoInfo.PipelineCode,--管线号
pur.MediumName AS PurgingMediumName,--吹扫介质
cle.MediumName as CleaningMediumName,--清洗介质
ser.MediumName,--操作介质
mat.MaterialCode --材质
FROM dbo.HJGL_PC_Pipeline AS pc
LEFT JOIN dbo.HJGL_Pipeline AS IsoInfo ON IsoInfo.PipelineId = pc.PipelineId
LEFT JOIN WBS_UnitWork AS UnitWork ON IsoInfo.UnitWorkId=UnitWork.UnitWorkId
LEFT JOIN dbo.Base_Medium AS ser ON ser.MediumId = pc.MediumId
LEFT JOIN dbo.Base_Material AS mat ON mat.MaterialId = pc.MaterialId
LEFT JOIN dbo.Base_TestMedium AS pur ON pur.TestMediumId = pc.PurgingMedium
LEFT JOIN dbo.Base_TestMedium AS cle ON cle.TestMediumId = pc.CleaningMedium
WHERE pc.PurgingCleaningId=@PurgingCleaningId
GO