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

282 lines
17 KiB
Transact-SQL

CREATE TABLE [dbo].[Emergency_EmergencyProcessItem](
[EmergencyProcessItemId] [nvarchar](50) NOT NULL,
[EmergencyProcessId] [nvarchar](50),
[SortId] [nvarchar](50) NULL,
[Content] [nvarchar](800) NULL,
CONSTRAINT [PK_Emergency_EmergencyProcessItem] PRIMARY KEY CLUSTERED
(
[EmergencyProcessItemId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Emergency_EmergencyProcessItem] WITH CHECK ADD CONSTRAINT [FK_Emergency_EmergencyProcessItem_Emergency_EmergencyProcess] FOREIGN KEY([EmergencyProcessId])
REFERENCES [dbo].[Emergency_EmergencyProcess] ([EmergencyProcessId])
GO
ALTER TABLE [dbo].[Emergency_EmergencyProcessItem] CHECK CONSTRAINT [FK_Emergency_EmergencyProcessItem_Emergency_EmergencyProcess]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'序号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Emergency_EmergencyProcessItem', @level2type=N'COLUMN',@level2name=N'SortId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'内容' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Emergency_EmergencyProcessItem', @level2type=N'COLUMN',@level2name=N'Content'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'应急流程明细表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Emergency_EmergencyProcessItem'
GO
--应急流程表--
Alter Table [dbo].[Emergency_EmergencyProcess] Add ProcessTeam nvarchar(500) NULL
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'队列' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Emergency_EmergencyProcess', @level2type=N'COLUMN',@level2name=N'ProcessTeam'
GO
--处罚单明细表--
Alter Table [dbo].[Check_PunishNoticeItem] Add PunishBasicItem nvarchar(100) NULL
go
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'处罚依据' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Check_PunishNoticeItem', @level2type=N'COLUMN',@level2name=N'PunishBasicItem'
GO
UPDATE Sys_Menu SET SortIndex=50,SuperMenu='5FF7BBD8-3E0A-4C90-8976-AFF5CE7E17A5'
WHERE MenuId='49485F7E-8E71-4EED-87B4-BF6CC180C69C'
GO
UPDATE Sys_Menu SET Url='Personal/PersonCheckInfo.aspx'
WHERE MenuId='CB373458-30B0-4850-ABFF-B38D40A04D43'
GO
INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)
VALUES('7B272C3F-39D2-496D-A87C-E2C89A20E4EF','工程暂停令','HSSE/Check/SafetyAnalysis.aspx',60,'467A0CB9-737D-4451-965E-869EBC3A4BD6','Menu_HSSE',0,1,1)
GO
CREATE PROC [dbo].[sp_HJGL_WeldingWeekReport]
@projectId NVARCHAR(50) = NULL,
@unitcode NVARCHAR(50) = NULL,
@date1 DATETIME = NULL,
@date2 DATETIME = NULL
AS
/*无损检测周统计报表*/
SELECT
welder.WelderCode,-- 焊工代码
-------------本期start
ISNULL(nowtotal.nowtotal_jot,0) AS nowtotal_jot, --本期总焊口
ISNULL(oneCheck.OneCheckJotNum,0) AS OneCheckJotNum, -- 一次检测焊口数
(ISNULL(oneCheck.OneCheckJotNum,0)-ISNULL(oneCheckRepair.OneCheckRepairJotNum,0)) AS OneCheckPassJotNum,--一次检测合格焊口数
CONVERT(NVARCHAR(10),(CAST((CASE ISNULL(oneCheck.OneCheckJotNum,0) WHEN 0 THEN 0
ELSE 100.0 * (ISNULL(oneCheck.OneCheckJotNum,0)-ISNULL(oneCheckRepair.oneCheckRepairJotNum,0))/(1.0 * oneCheck.OneCheckJotNum) END) AS DECIMAL(8,1))))+'%' AS passRate, -- 合格率(焊口)
ISNULL(oneCheck.OneCheckTotalFilm,0) AS OneCheckTotalFilm, --一次检测总片子数
ISNULL(oneCheck.OneCheckPassFilm,0) AS OneCheckPassFilm, --一次检测合格片子数
CONVERT(NVARCHAR(10),(CAST((CASE ISNULL(oneCheck.OneCheckTotalFilm,0) WHEN 0 THEN 0
ELSE 100.0 * ISNULL(oneCheck.OneCheckPassFilm,0)/(1.0 * oneCheck.OneCheckTotalFilm) END) AS DECIMAL(8,1))))+'%'
AS passfilmrate, ---RT合格率(片数)
CONVERT(NVARCHAR(10),(CAST((CASE ISNULL(totalCheck.TotalCheckJotNum,0) WHEN 0 THEN 0
ELSE 100.0 * (ISNULL(totalCheck.TotalCheckJotNum,0)-ISNULL(totalCheckRepair.TotalCheckRepairJotNum,0))/(1.0 * totalCheck.TotalCheckJotNum) END) AS DECIMAL(8,1))))+'%' AS ToataPassRate, -- 累计合格率(焊口)
CONVERT(NVARCHAR(10),(CAST((CASE ISNULL(totalCheck.TotalCheckTotalFilm,0) WHEN 0 THEN 0
ELSE 100.0 * ISNULL(totalCheck.TotalCheckPassFilm,0)/(1.0 * totalCheck.TotalCheckTotalFilm) END) AS DECIMAL(8,1))))+'%'
AS passfilmrate ---累计合格率(片数)
FROM SitePerson_Person AS welder
LEFT JOIN dbo.Base_Unit unit ON unit.UnitId = welder.UnitId
--本期总达因值 --本期总焊口
LEFT JOIN (SELECT COUNT(*) AS nowtotal_jot
,jot.CoverWelderId
FROM dbo.HJGL_WeldJoint jot
LEFT JOIN dbo.HJGL_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
WHERE jot.WeldingDailyId IS NOT NULL
AND (daily.WeldingDate >= @date1 OR @date1 IS NULL)
AND (daily.WeldingDate <= @date2 OR @date2 IS NULL)
GROUP BY jot.CoverWelderId) AS nowtotal ON nowtotal.CoverWelderId = welder.PersonId
--本期检测焊口数
LEFT JOIN (SELECT jot.CoverWelderId,COUNT(ndeItem.NDEItemID) AS OneCheckJotNum, --一次检测焊口数
SUM(ISNULL(ndeItem.TotalFilm,0)) AS OneCheckTotalFilm, --一次检测总片子数
SUM(ISNULL(ndeItem.PassFilm,0)) AS OneCheckPassFilm --一次检测合格片子数
FROM dbo.HJGL_Batch_NDEItem ndeItem
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
WHERE pointItem.PointDate IS NOT NULL AND pointItem.PointState=1 AND trustItem.RepairRecordId IS NULL
AND (daily.WeldingDate >= @date1 OR @date1 IS NULL)
AND (daily.WeldingDate <= @date2 OR @date2 IS NULL)
GROUP BY jot.CoverWelderId) AS oneCheck ON oneCheck.CoverWelderId = welder.PersonId
LEFT JOIN (SELECT jot.CoverWelderId,COUNT(ndeItem.NDEItemID) AS OneCheckRepairJotNum --一次检测返修焊口数
FROM dbo.HJGL_Batch_NDEItem ndeItem
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
WHERE pointItem.PointDate IS NOT NULL AND pointItem.PointState=1
AND trustItem.RepairRecordId IS NULL AND ndeItem.CheckResult='2'
AND (daily.WeldingDate >= @date1 OR @date1 IS NULL)
AND (daily.WeldingDate <= @date2 OR @date2 IS NULL)
GROUP BY jot.CoverWelderId) AS oneCheckRepair ON oneCheckRepair.CoverWelderId = welder.PersonId
--总的检测
LEFT JOIN (SELECT jot.CoverWelderId,COUNT(ndeItem.NDEItemID) AS TotalCheckJotNum, --一次检测焊口数
SUM(ISNULL(ndeItem.TotalFilm,0)) AS TotalCheckTotalFilm, --一次检测总片子数
SUM(ISNULL(ndeItem.PassFilm,0)) AS TotalCheckPassFilm --一次检测合格片子数
FROM dbo.HJGL_Batch_NDEItem ndeItem
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
WHERE pointItem.PointDate IS NOT NULL AND pointItem.PointState=1 AND trustItem.RepairRecordId IS NULL
GROUP BY jot.CoverWelderId) AS totalCheck ON totalCheck.CoverWelderId = welder.PersonId
LEFT JOIN (SELECT jot.CoverWelderId,COUNT(ndeItem.NDEItemID) AS TotalCheckRepairJotNum --一次检测返修焊口数
FROM dbo.HJGL_Batch_NDEItem ndeItem
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
WHERE pointItem.PointDate IS NOT NULL AND pointItem.PointState=1
AND trustItem.RepairRecordId IS NULL AND ndeItem.CheckResult='2'
GROUP BY jot.CoverWelderId) AS totalCheckRepair ON totalCheckRepair.CoverWelderId = welder.PersonId
WHERE (welder.WelderCode IS NOT NULL AND welder.WelderCode!='') AND
(welder.ProjectId = @projectId OR @projectId IS NULL)
AND (welder.UnitId=@unitcode OR @unitcode IS NULL)
AND (welder.WorkPostId='19B8F2A9-28D3-4F20-867A-1B2237C2E228')
ORDER BY welder.WelderCode
GO
CREATE PROC [dbo].[sp_HJGL_NDTMonthReport]
@projectId NVARCHAR(50) = NULL,
@unitcode NVARCHAR(50) = NULL,
@date1 DATETIME = NULL,
@date2 DATETIME = NULL
AS
/*无损检测月报*/
SELECT
unit.UnitCode,-- 单位代码
(unitWork.UnitWorkName + (CASE WHEN unitWork.ProjectType='1' THEN '(建筑)' WHEN unitWork.ProjectType='2' THEN '(安装)'
ELSE '' END)) AS UnitWorkName,
ISNULL(oneCheck.OneCheckTotalFilm,0) AS OneCheckTotalFilm, --一次检测总片子数
(ISNULL(oneCheck.OneCheckTotalFilm,0)-ISNULL(oneCheck.OneCheckPassFilm,0)) AS OneCheckNoPassFilm, --一次检测不合格片子数
CONVERT(NVARCHAR(10),(CAST((CASE ISNULL(oneCheck.OneCheckTotalFilm,0) WHEN 0 THEN 0
ELSE 100.0 * ISNULL(oneCheck.OneCheckPassFilm,0)/(1.0 * oneCheck.OneCheckTotalFilm) END) AS DECIMAL(8,1))))+'%'
AS FilmRate, ---片子合格率(片数)
ISNULL(totalCheck.TotalCheckTotalFilm,0) AS TotalCheckTotalFilm, --累计一次检测总片子数
(ISNULL(totalCheck.TotalCheckTotalFilm,0)-ISNULL(totalCheck.TotalCheckPassFilm,0)) AS TotalCheckNoPassFilm, --累计检测不合格片子数
CONVERT(NVARCHAR(10),(CAST((CASE ISNULL(totalCheck.TotalCheckTotalFilm,0) WHEN 0 THEN 0
ELSE 100.0 * ISNULL(totalCheck.TotalCheckPassFilm,0)/(1.0 * totalCheck.TotalCheckTotalFilm) END) AS DECIMAL(8,1))))+'%'
AS TotalFilmRate, ---累计片子合格率(片数)
ISNULL(reCheck.ReCheckTotalFilm,0) AS ReCheckTotalFilm, --一本期复检拍片数
(ISNULL(reCheck.ReCheckTotalFilm,0)-ISNULL(reCheck.ReCheckPassFilm,0)) AS ReCheckNoPassFilm, --一本期复检不合格片子数
CONVERT(NVARCHAR(10),(CAST((CASE ISNULL(reCheck.ReCheckTotalFilm,0) WHEN 0 THEN 0
ELSE 100.0 * ISNULL(reCheck.ReCheckPassFilm,0)/(1.0 * reCheck.ReCheckTotalFilm) END) AS DECIMAL(8,1))))+'%'
AS ReFilmRate, ---本期复检合格率
ISNULL(totalReCheck.TotalReCheckTotalFilm,0) AS TotalReCheckTotalFilm, --累计复检总片子数
(ISNULL(totalReCheck.TotalReCheckTotalFilm,0)-ISNULL(totalReCheck.TotalReCheckPassFilm,0)) AS TotalReCheckNoPassFilm, --累计复检不合格片子数
CONVERT(NVARCHAR(10),(CAST((CASE ISNULL(totalReCheck.TotalReCheckTotalFilm,0) WHEN 0 THEN 0
ELSE 100.0 * ISNULL(totalReCheck.TotalReCheckPassFilm,0)/(1.0 * totalReCheck.TotalReCheckTotalFilm) END) AS DECIMAL(8,1))))+'%'
AS TotalReFilmRate ---总的复检合格率
FROM dbo.WBS_UnitWork AS unitWork
LEFT JOIN dbo.Base_Unit unit ON unit.UnitId = unitWork.UnitId
--本期检测焊口数
LEFT JOIN (SELECT point.UnitWorkId,
SUM(ISNULL(ndeItem.TotalFilm,0)) AS OneCheckTotalFilm, --一次检测总片子数
SUM(ISNULL(ndeItem.PassFilm,0)) AS OneCheckPassFilm --一次检测合格片子数
FROM dbo.HJGL_Batch_NDEItem ndeItem
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
WHERE pointItem.PointDate IS NOT NULL AND pointItem.PointState=1 AND trustItem.RepairRecordId IS NULL
AND (daily.WeldingDate >= @date1 OR @date1 IS NULL)
AND (daily.WeldingDate <= @date2 OR @date2 IS NULL)
GROUP BY point.UnitWorkId) AS oneCheck ON oneCheck.UnitWorkId=unitWork.UnitWorkId
--总的检测
LEFT JOIN (SELECT point.UnitWorkId,
SUM(ISNULL(ndeItem.TotalFilm,0)) AS TotalCheckTotalFilm, --一次检测总片子数
SUM(ISNULL(ndeItem.PassFilm,0)) AS TotalCheckPassFilm --一次检测合格片子数
FROM dbo.HJGL_Batch_NDEItem ndeItem
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
WHERE pointItem.PointDate IS NOT NULL AND pointItem.PointState=1 AND trustItem.RepairRecordId IS NULL
GROUP BY point.UnitWorkId) AS totalCheck ON totalCheck.UnitWorkId =unitWork.UnitWorkId
---------------------------------------------------
--本期复检焊口数
LEFT JOIN (SELECT point.UnitWorkId,
SUM(ISNULL(ndeItem.TotalFilm,0)) AS ReCheckTotalFilm, --本期复检总片子数
SUM(ISNULL(ndeItem.PassFilm,0)) AS ReCheckPassFilm --本期复检合格片子数
FROM dbo.HJGL_Batch_NDEItem ndeItem
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
WHERE trustItem.RepairRecordId IS NOT NULL
AND (daily.WeldingDate >= @date1 OR @date1 IS NULL)
AND (daily.WeldingDate <= @date2 OR @date2 IS NULL)
GROUP BY point.UnitWorkId) AS reCheck ON reCheck.UnitWorkId=unitWork.UnitWorkId
--总的复检
LEFT JOIN (SELECT point.UnitWorkId,
SUM(ISNULL(ndeItem.TotalFilm,0)) AS TotalReCheckTotalFilm, --一次检测总片子数
SUM(ISNULL(ndeItem.PassFilm,0)) AS TotalReCheckPassFilm --一次检测合格片子数
FROM dbo.HJGL_Batch_NDEItem ndeItem
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
WHERE trustItem.RepairRecordId IS NOT NULL
GROUP BY point.UnitWorkId) AS totalReCheck ON totalReCheck.UnitWorkId =unitWork.UnitWorkId
WHERE (unitWork.ProjectId = @projectId OR @projectId IS NULL)
ORDER BY unitWork.UnitWorkCode
GO
ALTER TABLE SitePerson_PersonInOut ADD WorkPostId NVARCHAR(50) NULL
GO
ALTER TABLE SitePerson_PersonInOut ADD PostType NCHAR(1) NULL
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'岗位ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SitePerson_PersonInOut', @level2type=N'COLUMN',@level2name=N'WorkPostId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'岗位类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SitePerson_PersonInOut', @level2type=N'COLUMN',@level2name=N'PostType'
GO
CREATE NONCLUSTERED INDEX [SitePerson_PersonInOut_PostType] ON [dbo].[SitePerson_PersonInOut]
(
[PostType] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
UPDATE SitePerson_PersonInOut SET WorkPostId=(SELECT WorkPostId FROM SitePerson_Person WHERE SitePerson_PersonInOut.PersonId=PersonId)
GO
UPDATE SitePerson_PersonInOut SET PostType=(SELECT PostType FROM Base_WorkPost WHERE SitePerson_PersonInOut.WorkPostId=WorkPostId)
GO