----获取安全人工时 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)