857 lines
32 KiB
Transact-SQL
857 lines
32 KiB
Transact-SQL
----获取安全人工时
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_Home_SafeWorkTime')
|
||
DROP VIEW View_IOC_Home_SafeWorkTime
|
||
GO
|
||
Create view View_IOC_Home_SafeWorkTime
|
||
as
|
||
SELECT Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
SUM(ISNULL(mmsb.TotalManhoursTotal, 0)) AS SafeWorkTime --安全工时
|
||
FROM Manager_ManhoursSortB mmsb
|
||
JOIN
|
||
Manager_MonthReportB mmb ON mmsb.MonthReportId = mmb.MonthReportId
|
||
JOIN
|
||
Base_Project Project ON mmb.ProjectId = Project.ProjectId
|
||
WHERE mmb.MonthReportId IN (SELECT TOP 1 MonthReportId
|
||
FROM Manager_MonthReportB
|
||
WHERE ProjectId = Project.ProjectId
|
||
ORDER BY Months DESC)
|
||
GROUP BY Project.ProjectId, Project.ProjectName, Project.ProjectCode
|
||
go
|
||
|
||
-----获取安全隐患整改单
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_Home_SafeRectifyNotices')
|
||
DROP VIEW View_IOC_Home_SafeRectifyNotices
|
||
go
|
||
Create view View_IOC_Home_SafeRectifyNotices
|
||
as
|
||
SELECT Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
R.RectifyNoticesId,--安全隐患整改单主键id
|
||
R.RectifyNoticesCode,--安全隐患整改单编码
|
||
Unit.UnitName,--单位名称
|
||
R.CheckManNames,--检查人姓名
|
||
WorkAreaName= STUFF((SELECT ',' + UnitWorkName
|
||
FROM dbo.WBS_UnitWork
|
||
where PATINDEX('%,' + RTRIM(UnitWorkId) + ',%', ',' + R.WorkAreaId + ',') > 0
|
||
FOR XML PATH('')), 1, 1, ''),--单位工程名称
|
||
R.CheckedDate,--检查日期
|
||
DutyPerson.UserName AS DutyPersonName,--责任人
|
||
R.DutyPersonTime,--接收人接收日期
|
||
R.CompleteDate,--日期
|
||
(CASE
|
||
WHEN States = 5 THEN '已完成'
|
||
ELSE '未完成' END) AS StatesName
|
||
FROM Check_RectifyNotices AS R
|
||
LEFT JOIN Base_Project AS Project ON Project.ProjectId = R.ProjectId
|
||
LEFT JOIN Base_Unit AS Unit ON Unit.UnitId = R.UnitId
|
||
LEFT JOIN Sys_User AS CompileMan ON CompileMan.UserId = R.CompleteManId
|
||
LEFT JOIN Sys_User AS DutyPerson ON DutyPerson.UserId = R.DutyPersonId
|
||
WHERE States IS NOT NULL
|
||
or States != '0'
|
||
go
|
||
|
||
----工程概况
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_Home_ProjectOverview')
|
||
DROP VIEW View_IOC_Home_ProjectOverview
|
||
GO
|
||
Create view View_IOC_Home_ProjectOverview
|
||
as
|
||
select ProjectId,--项目id
|
||
ProjectName,--项目名称
|
||
ProjectCode,--项目编号
|
||
ShortName,--项目简称
|
||
ProjectAddress,--项目地址
|
||
OwnUnit = STUFF((SELECT ',' + UnitName
|
||
FROM dbo.Project_ProjectUnit
|
||
left join Base_Unit on Project_ProjectUnit.UnitId = Base_Unit.UnitId
|
||
where Project_ProjectUnit.ProjectId = Project.ProjectId
|
||
and UnitType = '4'
|
||
FOR XML PATH('')), 1, 1, ''),--建设单位
|
||
JLUnit = STUFF((SELECT ',' + UnitName
|
||
FROM dbo.Project_ProjectUnit
|
||
left join Base_Unit on Project_ProjectUnit.UnitId = Base_Unit.UnitId
|
||
where Project_ProjectUnit.ProjectId = Project.ProjectId
|
||
and UnitType = '3'
|
||
FOR XML PATH('')), 1, 1, ''),--监理单位
|
||
SGUnit = STUFF((SELECT ',' + UnitName
|
||
FROM dbo.Project_ProjectUnit
|
||
left join Base_Unit on Project_ProjectUnit.UnitId = Base_Unit.UnitId
|
||
where Project_ProjectUnit.ProjectId = Project.ProjectId
|
||
and UnitType = '2'
|
||
FOR XML PATH('')), 1, 1, ''),--施工单位
|
||
ContractDays= DATEDIFF(day, Project.StartDate, Project.EndDate),--合同总工期
|
||
ContractEndDate=Project.EndDate,--合同到期时间
|
||
RemainingDays=DATEDIFF(day, Project.EndDate, getdate())--距离竣工剩余时间
|
||
from Base_Project Project
|
||
go
|
||
-----质量统计
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_Home_CQMSStatistics')
|
||
DROP VIEW View_IOC_Home_CQMSStatistics
|
||
GO
|
||
Create view View_IOC_Home_CQMSStatistics
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
QuestionDef,--问题描述
|
||
RectifyOpinion,----整改要求
|
||
HandleWay,--处理方式
|
||
LimitDate,--整改时间
|
||
(CASE
|
||
WHEN ck.State = '6' THEN '已完成'
|
||
ELSE '未完成' END) AS States --状态
|
||
from Check_JointCheckDetail ckdetail
|
||
left join Check_JointCheck ck on ckdetail.JointCheckId = ck.JointCheckId
|
||
left join Base_Project project on ck.ProjectId = project.ProjectId
|
||
union all
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
QuestionDef,--问题描述
|
||
RectifyOpinion,----整改要求
|
||
HandleWay,--处理方式
|
||
LimitDate,--整改时间
|
||
(CASE
|
||
WHEN ckControl.State = '7' THEN '已完成'
|
||
ELSE '未完成' END) AS States --状态
|
||
from Check_CheckControl ckControl
|
||
left join Base_Project project on ckControl.ProjectId = project.ProjectId
|
||
go
|
||
-----劳务数据
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_Home_LabourData')
|
||
DROP VIEW View_IOC_Home_LabourData
|
||
GO
|
||
Create view View_IOC_Home_LabourData
|
||
as
|
||
SELECT DISTINCT Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
record.Unitname,--单位名称
|
||
IdentityCard=record.IDCardNo, --身份证号码
|
||
workpost.WorkPostName,--岗位名称
|
||
(case
|
||
when workpost.PostType = '1' then '管理人员'
|
||
else '作业人员' end) as PostType--岗位类型
|
||
FROM T_d_EmployInOutRecord record
|
||
left join Base_Project project on record.ProjectId = project.ProjectId
|
||
left join SitePerson_Person person on person.IdentityCard = record.IDCardNo
|
||
left join Base_WorkPost workpost on person.WorkPostId = workpost.WorkPostId
|
||
WHERE record.RecordDate = CAST(GETDATE() AS DATE)
|
||
go
|
||
-----待办事项
|
||
--存储过程
|
||
---预警信息
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_Home_Warning')
|
||
DROP VIEW View_IOC_Home_Warning
|
||
GO
|
||
Create view View_IOC_Home_Warning
|
||
as
|
||
SELECT Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
y.PersonName,--人员姓名
|
||
y.IdentityCard,--人员身份证号号码
|
||
x.CertificateNo,--证书编号
|
||
CertificateName,--证书名称
|
||
x.SendDate,--发证时间
|
||
x.LimitDate--证书到期时间
|
||
FROM QualityAudit_PersonQuality x
|
||
JOIN SitePerson_Person y ON x.PersonId = y.PersonId
|
||
left join Base_Project project on y.ProjectId = project.ProjectId
|
||
WHERE x.LimitDate <= GETDATE()
|
||
go
|
||
---环境检测数据
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_Home_Environmental')
|
||
DROP VIEW View_IOC_Home_Environmental
|
||
GO
|
||
Create view View_IOC_Home_Environmental
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
pm10,--PM10
|
||
pm25,--PM2.5
|
||
noise,--噪声
|
||
tem,--温度
|
||
hum,--湿度
|
||
ws,--风速
|
||
CompileDate
|
||
from Environmental_EnvironmentalMonitoring x
|
||
left join Base_Project project on x.ProjectId = project.ProjectId
|
||
go
|
||
--进度数据
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_Home_Schedule')
|
||
DROP VIEW View_IOC_Home_Schedule
|
||
GO
|
||
Create view View_IOC_Home_Schedule
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
x.ScheduleId,--进度主键
|
||
x.ScheduleName,--进度名称
|
||
x.ScheduleDate,--日期
|
||
x.SortId--排序
|
||
from Sys_Schedule x
|
||
left join Base_Project project on x.ProjectId = project.ProjectId
|
||
go
|
||
--风险管控
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_Home_Hazard')
|
||
DROP VIEW View_IOC_Home_Hazard
|
||
GO
|
||
Create view View_IOC_Home_Hazard
|
||
as
|
||
SELECT Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
x.HazardSelectedItemId,--风险管控主键id
|
||
x.HazardItems,--危险因素明细
|
||
x.DefectsType,--危险源类别
|
||
y.RiskLevel,--危险级别
|
||
y.RiskLevelName--危险级别名称
|
||
FROM Hazard_HazardSelectedItem x
|
||
JOIN Base_RiskLevel y ON x.HazardLevel = y.RiskLevelId
|
||
left join Base_Project project on x.ProjectId = project.ProjectId
|
||
go
|
||
--质量人员培训
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_CQMS_PersonTrain')
|
||
DROP VIEW View_IOC_CQMS_PersonTrain
|
||
GO
|
||
Create view View_IOC_CQMS_PersonTrain
|
||
as
|
||
SELECT Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
x.InspectionPersonCode,--编号
|
||
x.PersonName,--培训人员
|
||
x.CompileDate--提交日期
|
||
FROM Comprehensive_InspectionPerson x
|
||
left join Base_Project project on x.ProjectId = project.ProjectId
|
||
where x.IsTrain = 1
|
||
go
|
||
--质量技术交底
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_CQMS_TechnicalDisclose')
|
||
DROP VIEW View_IOC_CQMS_TechnicalDisclose
|
||
GO
|
||
Create view View_IOC_CQMS_TechnicalDisclose
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
x.DesignDetailsCode,--交底编号
|
||
x.DetailsMan,--交底人
|
||
x.CompileDate,--提交日期
|
||
x.JoinPersonNum--交底人数
|
||
from Comprehensive_DesignDetails x
|
||
left join Base_Project project on project.ProjectId = x.ProjectId;
|
||
go
|
||
--质量计量器具数据
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_CQMS_InspectionMachine')
|
||
DROP VIEW View_IOC_CQMS_InspectionMachine
|
||
GO
|
||
Create view View_IOC_CQMS_InspectionMachine
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
x.InspectionMachineCode,--报验编号
|
||
x.InspectionMachineName,--名称
|
||
x.SpecificationModel,--规格型号
|
||
x.NextTestDate,--下次检验日期
|
||
x.TestCycle,--检验周期
|
||
x.IsVerification,--是否在校验期内
|
||
x.InspectionDate,--校验日期
|
||
x.LeaveDate,--离场时间
|
||
x.UnitsCount,--台数
|
||
(case x.IsCheckOK when 1 then '校准合格' else '校准不合格' end) as IsCheckOK --是否合格
|
||
from Comprehensive_InspectionMachine x
|
||
left join Base_Project project on project.ProjectId = x.ProjectId
|
||
where x.IsOnSite = 1
|
||
and x.InspectionType like '%计量%';
|
||
go
|
||
--质量控制点
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_CQMS_Breakdown')
|
||
DROP VIEW View_IOC_CQMS_Breakdown
|
||
GO
|
||
Create view View_IOC_CQMS_Breakdown
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
x.BreakdownCode,--分项编号
|
||
x.BreakdownName,--分项名称
|
||
x.Basis,--执行依据或规范
|
||
x.CheckPoints,--质量检查要点
|
||
x.RecordAndCode,--质量记录及格式文本号
|
||
x.Class--控制等级
|
||
from WBS_BreakdownProject x
|
||
left join Base_Project project on project.ProjectId = x.ProjectId
|
||
where x.IsSelected = 1
|
||
and (x.Class like '%A%' or x.Class like '%B%' or x.Class like '%C%');
|
||
go
|
||
--质量问题治理数据
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_CQMS_CheckControl')
|
||
DROP VIEW View_IOC_CQMS_CheckControl
|
||
GO
|
||
Create view View_IOC_CQMS_CheckControl
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
UnitName,
|
||
QuestionDef,--问题描述
|
||
RectifyOpinion,----整改要求
|
||
HandleWay,--处理方式
|
||
RectifyDate,--整改时间
|
||
(case x.State when '7' then '已整改' else '未整改' end) as state
|
||
from Check_CheckControl x
|
||
left join Base_Project project on project.ProjectId = x.ProjectId
|
||
left join Base_Unit unit on x.UnitId = unit.UnitId
|
||
go
|
||
--质量施工方案
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_CQMS_ConstructSolution')
|
||
DROP VIEW View_IOC_CQMS_ConstructSolution
|
||
GO
|
||
Create view View_IOC_CQMS_ConstructSolution
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
UnitName,--单位名称
|
||
SolutionName,--方案名称
|
||
(case x.State
|
||
when '0' then '重报'
|
||
when '2' then '会签'
|
||
when '3' then '审批完成'
|
||
else '编制' end) as state
|
||
from Solution_CQMSConstructSolution x
|
||
left join Base_Project project on project.ProjectId = x.ProjectId
|
||
left join Base_Unit unit on x.UnitId = unit.UnitId
|
||
go
|
||
--质量验收数据
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_CQMS_InspectionManagement')
|
||
DROP VIEW View_IOC_CQMS_InspectionManagement
|
||
GO
|
||
Create view View_IOC_CQMS_InspectionManagement
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
unit.UnitName,--单位名称
|
||
y.InspectionCode,--共检通知单编号
|
||
unitwork.UnitWorkName,--单位工程名称
|
||
branch.DivisionName,--分部
|
||
controlPointType.BreakdownName,--控制点内容
|
||
(case y.IsOnceQualified
|
||
when '1' then '合格'
|
||
else '不合格' end) as state --是否合格
|
||
from ProcessControl_InspectionManagementDetail x
|
||
left join ProcessControl_InspectionManagement y on x.InspectionId = y.InspectionId
|
||
left join Base_Project project on project.ProjectId = y.ProjectId
|
||
left join Base_Unit unit on y.UnitId = unit.UnitId
|
||
left join WBS_UnitWork unitwork on x.UnitWorkId = unitwork.UnitWorkId
|
||
left join WBS_DivisionProject branch on x.Branch = branch.DivisionProjectId
|
||
left join WBS_BreakdownProject controlPointType on x.ControlPointType = controlPointType.breakdownProjectId
|
||
go
|
||
--质量检查待处理事项(明细)
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_CQMS_ToDoItem')
|
||
DROP VIEW View_IOC_CQMS_ToDoItem
|
||
GO
|
||
Create view View_IOC_CQMS_ToDoItem
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
UnitName,--单位名称
|
||
CheckDate,--检查时间
|
||
CheckSite,--部位
|
||
(case x.State
|
||
when '3' then '待整改'
|
||
when '3' then '待整改'
|
||
when '5' then '待复查验收'
|
||
when '6' then '待复查验收'
|
||
else '' end) as state --状态
|
||
from Check_CheckControl x
|
||
left join Base_Project project on project.ProjectId = x.ProjectId
|
||
left join Base_Unit unit on x.UnitId = unit.UnitId
|
||
where State in ('3', '4', '5', '6')
|
||
go
|
||
|
||
--安全
|
||
--项目在场人员
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_HSSE_PresentPerson')
|
||
DROP VIEW View_IOC_HSSE_PresentPerson
|
||
GO
|
||
Create view View_IOC_HSSE_PresentPerson
|
||
as
|
||
SELECT DISTINCT Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
IdentityCard=record.IDCardNo,--身份证号码
|
||
record.EmployName --姓名
|
||
FROM T_d_EmployInOutRecord record
|
||
left join Base_Project project on record.ProjectId = project.ProjectId
|
||
WHERE record.RecordDate = CAST(GETDATE() AS DATE)
|
||
go
|
||
|
||
--项目安全人工时
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_HSSE_SafeWorkTime')
|
||
DROP VIEW View_IOC_HSSE_SafeWorkTime
|
||
GO
|
||
Create view View_IOC_HSSE_SafeWorkTime
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
unit.UnitName,
|
||
unit.UnitId,
|
||
SUM(COALESCE(detail.PersonWorkTime, 0)) as PersonWorkTime
|
||
from Project_ProjectUnit prounit
|
||
left join Base_Project Project on Project.ProjectId = prounit.ProjectId
|
||
left join SitePerson_DayReport report on report.ProjectId = prounit.ProjectId
|
||
left join SitePerson_DayReportDetail detail
|
||
on detail.DayReportId = report.DayReportId and detail.UnitId = prounit.UnitId
|
||
left join Base_Unit unit on unit.UnitId = prounit.UnitId
|
||
group by Project.ProjectCode, Project.ProjectId, Project.ProjectName, unit.UnitName, unit.UnitId
|
||
|
||
go
|
||
---安全检查问题统计-按单位统计
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_HSSE_CheckStatistics_Unit')
|
||
DROP VIEW View_IOC_HSSE_CheckStatistics_Unit
|
||
GO
|
||
Create view View_IOC_HSSE_CheckStatistics_Unit
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
unit.UnitName,
|
||
unit.UnitId,
|
||
COUNT(CASE WHEN register.states = '1' THEN 1 END) AS NeedRectificationCount,
|
||
COUNT(register.HazardRegisterId) AS AllCount
|
||
from Project_ProjectUnit prounit
|
||
left join Base_Project Project on Project.ProjectId = prounit.ProjectId
|
||
left join View_Hazard_HazardRegister register
|
||
on register.ProjectId = prounit.ProjectId and register.ResponsibleUnit = prounit.UnitId
|
||
left join Base_Unit unit on unit.UnitId = prounit.UnitId
|
||
group by Project.ProjectCode, Project.ProjectId, Project.ProjectName, unit.UnitName, unit.UnitId
|
||
go
|
||
--安全检查问题统计-按类型统计
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_HSSE_CheckStatistics_Type')
|
||
DROP VIEW View_IOC_HSSE_CheckStatistics_Type
|
||
GO
|
||
Create view View_IOC_HSSE_CheckStatistics_Type
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
register.RegisterTypesName,--问题类别
|
||
COUNT(CASE WHEN register.states = '1' THEN 1 END) AS NeedRectificationCount,--待整改数量
|
||
COUNT(register.HazardRegisterId) AS AllCount --全部数量
|
||
from View_Hazard_HazardRegister register
|
||
left join Base_Project Project on Project.ProjectId = register.ProjectId
|
||
group by Project.ProjectCode, Project.ProjectId, Project.ProjectName, register.RegisterTypesName
|
||
go
|
||
--作业许统计
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_HSSE_LicenseStatistics')
|
||
DROP VIEW View_IOC_HSSE_LicenseStatistics
|
||
GO
|
||
Create view View_IOC_HSSE_LicenseStatistics
|
||
as
|
||
with cte as
|
||
(select ProjectId,
|
||
manager.LicenseManagerCode as LicenseCode,
|
||
(case LicenseTypeCode
|
||
when '4' then '动火'
|
||
when '2' then '高处'
|
||
when '7' then '受限'
|
||
when '04' then '射线'
|
||
when '5' then '断路'
|
||
when '8' then '动土'
|
||
when '' then '夜间'
|
||
when '3' then '吊装' end
|
||
) as TypeName
|
||
from License_LicenseManager manager
|
||
left join Base_LicenseType license on manager.LicenseTypeId = license.LicenseTypeId
|
||
union all
|
||
select ProjectId, LicenseCode, '动火' as TypeName
|
||
from License_FireWork
|
||
where States = '3'
|
||
union all
|
||
select ProjectId, LicenseCode, '高处' as TypeName
|
||
from License_HeightWork
|
||
where States = '3'
|
||
union all
|
||
select ProjectId, LicenseCode, '受限' as TypeName
|
||
from License_LimitedSpace
|
||
where States = '3'
|
||
union all
|
||
select ProjectId, LicenseCode, '射线' as TypeName
|
||
from License_RadialWork
|
||
where States = '3'
|
||
union all
|
||
select ProjectId, LicenseCode, '断路' as TypeName
|
||
from License_OpenCircuit
|
||
where States = '3'
|
||
union all
|
||
select ProjectId, LicenseCode, '动土' as TypeName
|
||
from License_BreakGround
|
||
where States = '3'
|
||
union all
|
||
select ProjectId, LicenseCode, '夜间' as TypeName
|
||
from License_NightWork
|
||
where States = '3'
|
||
union all
|
||
select ProjectId, LicenseCode, '吊装' as TypeName
|
||
from License_LiftingWork
|
||
where States = '3')
|
||
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
cte.LicenseCode,
|
||
TypeName
|
||
from cte
|
||
left join Base_Project Project on Project.ProjectId = cte.ProjectId
|
||
where cte.TypeName is not null
|
||
go
|
||
--入场教育培训统计
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_HSSE_TrainStatistics')
|
||
DROP VIEW View_IOC_HSSE_TrainStatistics
|
||
GO
|
||
Create view View_IOC_HSSE_TrainStatistics
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
detail.PersonId,--培训人员id
|
||
person.PersonName,--培训人员姓名
|
||
unit.UnitName,--培训单位
|
||
detail.CheckScore,--考试成绩
|
||
detail.CheckResult --考核结果(true-合格,false-不合格)
|
||
from EduTrain_TrainRecordDetail detail
|
||
join EduTrain_TrainRecord record on detail.TrainingId = record.TrainingId
|
||
join Base_Project Project on record.ProjectId = Project.ProjectId
|
||
join SitePerson_Person person on detail.PersonId = person.PersonId
|
||
join Base_Unit unit on person.UnitId = unit.UnitId
|
||
where record.TrainTypeId = 'dfb6a37e-4412-4ba9-ad59-3bc505bc21f7'
|
||
go
|
||
--事故数据统计
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_HSSE_AccidentStatistics')
|
||
DROP VIEW View_IOC_HSSE_AccidentStatistics
|
||
GO
|
||
Create view View_IOC_HSSE_AccidentStatistics
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
count(case when report.AccidentTypeId in ('1', '2', '3', '4') THEN 1 END) as PersonalInjuryNum,--人身伤害
|
||
count(case when report.AccidentTypeId = '5' THEN 1 END) as AttemptedAccidentNumNum,--未遂事故
|
||
count(case when report.AccidentTypeId in ('6', '7') THEN 1 END) as FireNum,--火灾
|
||
count(case when report.AccidentTypeId in ('8', '9') THEN 1 END) as MechanicalEquipmentNum,--机械设备
|
||
count(case when report.AccidentTypeId = '10' THEN 1 END) as EnvironmentalEffectNum,--环境影响
|
||
count(case when report.AccidentTypeId = '11' THEN 1 END) as OtherNum--其他
|
||
from Accident_AccidentReport as report
|
||
join Base_Project Project on report.ProjectId = Project.ProjectId
|
||
group by Project.ProjectId, Project.ProjectName, Project.ProjectCode
|
||
go
|
||
--施工进度统计
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_JDGL_ProgressStatistics')
|
||
DROP VIEW View_IOC_JDGL_ProgressStatistics
|
||
GO
|
||
Create view View_IOC_JDGL_ProgressStatistics
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
count(detail.SpotCheckDetailId) as Num,
|
||
unitwork.UnitWorkName,
|
||
(case unitwork.ProjectType
|
||
when '1' then '建筑单位工程'
|
||
when '2' then '安装单位工程' end) as ProjectType
|
||
from View_Check_SoptCheckDetail detail
|
||
join Base_Project Project on Project.ProjectId = detail.ProjectId
|
||
join WBS_UnitWork unitwork on unitwork.UnitWorkId = detail.UnitWorkId
|
||
where IsOK = 1
|
||
group by Project.ProjectId, Project.ProjectName, Project.ProjectCode, unitwork.UnitWorkName, unitwork.ProjectType
|
||
go
|
||
--焊接检测单管理-单位(计算一次合格率)
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_HJGL_CheckManageStatistics_Unit')
|
||
DROP VIEW View_IOC_HJGL_CheckManageStatistics_Unit
|
||
GO
|
||
Create view View_IOC_HJGL_CheckManageStatistics_Unit
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
unit.UnitName,
|
||
unit.UnitId,
|
||
SUM(cht_totalfilm) AS CHT_TotalFilm, --拍片总数
|
||
SUM(cht_passfilm) AS CHT_PassFilm --合格片数
|
||
from Project_ProjectUnit prounit
|
||
join Base_Project Project on Project.ProjectId = prounit.ProjectId
|
||
join PW_IsoInfo IsoInfo on IsoInfo.UnitId = prounit.UnitId and isoinfo.ProjectId = prounit.ProjectId
|
||
join PW_JointInfo JointInfo on IsoInfo.ISO_ID = JointInfo.ISO_ID
|
||
join CH_CheckItem ch_checkitem on JointInfo.JOT_ID = ch_checkitem.JOT_ID
|
||
join Base_Unit unit on unit.UnitId = prounit.UnitId
|
||
where IsoInfo.UnitId is not null
|
||
group by Project.ProjectCode, Project.ProjectId, Project.ProjectName, unit.UnitName, unit.UnitId
|
||
go
|
||
--焊接检测单管理-单位工程(计算一次合格率)
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_HJGL_CheckManageStatistics_WorkArea')
|
||
DROP VIEW View_IOC_HJGL_CheckManageStatistics_WorkArea
|
||
GO
|
||
Create view View_IOC_HJGL_CheckManageStatistics_WorkArea
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
WorkArea.WorkAreaName,
|
||
WorkArea.WorkAreaId,
|
||
SUM(cht_totalfilm) AS CHT_TotalFilm, --拍片总数
|
||
SUM(cht_passfilm) AS CHT_PassFilm --合格片数
|
||
from ProjectData_WorkArea WorkArea
|
||
join Base_Project Project on Project.ProjectId = WorkArea.ProjectId
|
||
join PW_IsoInfo IsoInfo on IsoInfo.WorkAreaId = WorkArea.WorkAreaId and isoinfo.ProjectId = WorkArea.ProjectId
|
||
join PW_JointInfo JointInfo on IsoInfo.ISO_ID = JointInfo.ISO_ID
|
||
join CH_CheckItem ch_checkitem on JointInfo.JOT_ID = ch_checkitem.JOT_ID
|
||
group by Project.ProjectCode, Project.ProjectId, Project.ProjectName, WorkArea.WorkAreaName, WorkArea.WorkAreaId
|
||
go
|
||
--焊工信息
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_HJGL_WelderData')
|
||
DROP VIEW View_IOC_HJGL_WelderData
|
||
GO
|
||
Create view View_IOC_HJGL_WelderData
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
welder.WED_Name as PersonName,
|
||
unit.UnitName,
|
||
welder.IdentityCard
|
||
from BS_Welder welder
|
||
join Base_Project Project on Project.ProjectId = welder.ProjectId
|
||
join Base_Unit unit on welder.WED_Unit = unit.UnitId
|
||
where WED_IfOnGuard = 1;
|
||
go
|
||
--焊接工程量统计
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_HJGL_WeldingQuantityStatistics')
|
||
DROP VIEW View_IOC_HJGL_WeldingQuantityStatistics
|
||
GO
|
||
Create view View_IOC_HJGL_WeldingQuantityStatistics
|
||
as
|
||
SELECT Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
pw_isoinfo.ISO_IsoNo,--管线号
|
||
pw_jointinfo.JOT_JointNo,--焊口号
|
||
(case when pw_isoinfo.[Is_Standard] = 0 then JOT_Size else pw_jointinfo.JOT_Size end) AS Din --达因
|
||
,
|
||
JOT_DoneDin as Finished_din, --完成达因
|
||
(CASE WHEN DReportID is not null THEN 1 ELSE 0 END) IsFinish --是否完成
|
||
FROM pw_jointinfo
|
||
LEFT JOIN pw_isoinfo ON pw_jointinfo.ISO_ID = pw_isoinfo.ISO_ID
|
||
LEFT join Base_Project Project on Project.ProjectId = pw_jointinfo.ProjectId
|
||
go
|
||
--焊接进度分析——单位工程
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_HJGL_ProgressStatistics_WorkArea')
|
||
DROP VIEW View_IOC_HJGL_ProgressStatistics_WorkArea
|
||
GO
|
||
Create view View_IOC_HJGL_ProgressStatistics_WorkArea
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
WorkArea.WorkAreaName,
|
||
WorkArea.WorkAreaId,
|
||
SUM(JOT_Size) AS Total_din, --总达因
|
||
SUM(JOT_DoneDin) AS Finished_total_Din --完成达因
|
||
from ProjectData_WorkArea WorkArea
|
||
join Base_Project Project on Project.ProjectId = WorkArea.ProjectId
|
||
join PW_IsoInfo IsoInfo on IsoInfo.WorkAreaId = WorkArea.WorkAreaId and isoinfo.ProjectId = WorkArea.ProjectId
|
||
join PW_JointInfo JointInfo on IsoInfo.ISO_ID = JointInfo.ISO_ID
|
||
join CH_CheckItem ch_checkitem on JointInfo.JOT_ID = ch_checkitem.JOT_ID
|
||
group by Project.ProjectCode, Project.ProjectId, Project.ProjectName, WorkArea.WorkAreaName, WorkArea.WorkAreaId
|
||
go
|
||
--焊接进度分析——分包商
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_HJGL_ProgressStatistics_Unit')
|
||
DROP VIEW View_IOC_HJGL_ProgressStatistics_Unit
|
||
GO
|
||
Create view View_IOC_HJGL_ProgressStatistics_Unit
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
unit.UnitName,
|
||
unit.UnitId,
|
||
SUM(JOT_Size) AS Total_din, --总达因
|
||
SUM(JOT_DoneDin) AS Finished_total_Din --完成达因
|
||
from Project_ProjectUnit prounit
|
||
join Base_Project Project on Project.ProjectId = prounit.ProjectId
|
||
join PW_IsoInfo IsoInfo on IsoInfo.UnitId = prounit.UnitId and isoinfo.ProjectId = prounit.ProjectId
|
||
join PW_JointInfo JointInfo on IsoInfo.ISO_ID = JointInfo.ISO_ID
|
||
join CH_CheckItem ch_checkitem on JointInfo.JOT_ID = ch_checkitem.JOT_ID
|
||
join Base_Unit unit on unit.UnitId = prounit.UnitId
|
||
where IsoInfo.UnitId is not null
|
||
group by Project.ProjectCode, Project.ProjectId, Project.ProjectName, unit.UnitName, unit.UnitId
|
||
go
|
||
--焊接缺陷统计
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_HJGL_DefectStatistics')
|
||
DROP VIEW View_IOC_HJGL_DefectStatistics
|
||
GO
|
||
Create view View_IOC_HJGL_DefectStatistics
|
||
as
|
||
select Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
Defects_Definition,--缺陷名称
|
||
count(*) as Num --缺陷数量
|
||
from CH_CheckItem a
|
||
left join CH_Check b on a.CHT_CheckID = b.CHT_CheckID
|
||
join Base_Project Project on Project.ProjectId = b.ProjectId
|
||
where Defects_Definition <> ''
|
||
and CHT_CheckResult = '不合格'
|
||
group by Defects_Definition, Project.ProjectId, Project.ProjectName, Project.ProjectCode
|
||
go
|
||
--功效分析
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_HJGL_EfficacyAnalysis')
|
||
DROP VIEW View_IOC_HJGL_EfficacyAnalysis
|
||
GO
|
||
Create view View_IOC_HJGL_EfficacyAnalysis
|
||
as
|
||
SELECT Project.ProjectId,--项目id
|
||
Project.ProjectName,--项目名称
|
||
Project.ProjectCode,--项目编码
|
||
jot_welddate as Welddate,
|
||
Day,
|
||
Month,
|
||
COUNT(DISTINCT JOT_CellWelder) AS WelderNum
|
||
FROM (SELECT DAY(jot_welddate) AS Day,
|
||
MONTH(jot_welddate) AS Month,
|
||
JOT_CellWelder,
|
||
jot_welddate,
|
||
PW_IsoInfo.ProjectId
|
||
FROM pw_jointinfo
|
||
LEFT JOIN pw_isoinfo ON pw_jointinfo.ISO_ID = pw_isoinfo.ISO_ID
|
||
LEFT JOIN BO_WeldReportMain ON BO_WeldReportMain.dreportid = pw_jointinfo.dreportid
|
||
|
||
UNION
|
||
|
||
SELECT DAY(jot_welddate) AS Day,
|
||
MONTH(jot_welddate) AS Month,
|
||
JOT_FloorWelder,
|
||
jot_welddate,
|
||
PW_IsoInfo.ProjectId
|
||
FROM pw_jointinfo
|
||
LEFT JOIN pw_isoinfo ON pw_jointinfo.ISO_ID = pw_isoinfo.ISO_ID
|
||
LEFT JOIN BO_WeldReportMain ON BO_WeldReportMain.dreportid = pw_jointinfo.dreportid) AS a
|
||
join Base_Project Project on Project.ProjectId = a.ProjectId
|
||
GROUP BY Day, Month, jot_welddate, Project.ProjectId, Project.ProjectName, Project.ProjectCode;
|
||
go
|
||
--安全人工时
|
||
IF EXISTS(SELECT 1
|
||
FROM sys.views
|
||
WHERE name = 'View_IOC_KQGL_SafeWorktime')
|
||
DROP VIEW View_IOC_KQGL_SafeWorktime
|
||
GO
|
||
create view dbo.View_IOC_KQGL_SafeWorktime as
|
||
WITH CTE AS (SELECT project.ProjectId,
|
||
project.ProjectName,
|
||
project.ProjectCode,
|
||
CONVERT(VARCHAR(7), CompileDate, 120) AS YearMonth,
|
||
SUM(x.PersonWorkTime) AS MonthTotalPersonWorkTime,
|
||
ROW_NUMBER() OVER (PARTITION BY project.ProjectId ORDER BY CONVERT(VARCHAR(7), CompileDate, 120) ASC) AS RN
|
||
|
||
FROM SitePerson_DayReportDetail x
|
||
|
||
LEFT JOIN SitePerson_DayReport a ON x.DayReportId = a.DayReportId
|
||
|
||
LEFT JOIN Base_Unit b ON x.UnitId = b.UnitId
|
||
|
||
LEFT JOIN Project_ProjectUnit ProUnit ON b.UnitId = ProUnit.UnitId
|
||
|
||
LEFT JOIN Base_Project project ON a.ProjectId = project.ProjectId
|
||
|
||
WHERE ProUnit.ProjectId = a.ProjectId
|
||
GROUP BY project.ProjectId,
|
||
project.ProjectName,
|
||
project.ProjectCode,
|
||
CONVERT(VARCHAR(7), CompileDate, 120))
|
||
SELECT CTE.ProjectId,
|
||
CTE.ProjectName,
|
||
CTE.ProjectCode,
|
||
CTE.YearMonth,
|
||
CTE.MonthTotalPersonWorkTime,
|
||
SUM(CTE.MonthTotalPersonWorkTime)
|
||
OVER (PARTITION BY CTE.ProjectId ORDER BY CTE.YearMonth ASC) AS AccumulatedPersonWorkTime
|
||
|
||
FROM CTE
|
||
WHERE CTE.RN <= (SELECT COUNT(*) FROM CTE) |