CNCEC_SUBQHSE_WUHUAN/DataBase/版本日志/SUBQHSE_V2025-03-28-bwj.sql

350 lines
17 KiB
Transact-SQL

--获取当前人工作台待办预警
ALTER PROCEDURE [dbo].[Sp_WorkBench_GetToDoItems]
@userId NVARCHAR(200)=NULL,
@sType char(10)=null
AS
/*获取当前人待办事项*/
BEGIN
SELECT HazardRegisterId AS DataId
,'B6BE5FE0-CB84-47FF-A6C3-5AD9E1CCE079' AS MenuId
,'安全巡检待整改' AS MenuName
,project.ProjectCode
,register.RegisterDef AS Content
,users.UserId
,users.UserName
,register.RegisterDate AS DataTime
,CONVERT(varchar(100),register.RegisterDate, 23) AS DataTimeStr
,'HSSE/HiddenInspection/HiddenRectificationRectify.aspx?HazardRegisterId='+register.HazardRegisterId AS PCUrl
FROM HSSE_Hazard_HazardRegister AS register
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = projectUser.UserId
left join Base_Project as project on project.ProjectId =projectUser.ProjectId
WHERE (@sType='1' or @sType='2') and register.ProjectId = projectUser.ProjectId and
((register.states = '1' AND (register.ResponsibleMan =@userId OR register.CCManIds LIKE ('%'+@userId+'%') ))
)
UNION ALL
SELECT HazardRegisterId AS DataId
,'B6BE5FE0-CB84-47FF-A6C3-5AD9E1CCE079' AS MenuId
,'安全巡检待确认' AS MenuName
,project.ProjectCode
,register.RegisterDef AS Content
,users.UserId
,users.UserName
,register.RegisterDate AS DataTime
,CONVERT(varchar(100),register.RegisterDate, 23) AS DataTimeStr
,'HSSE/HiddenInspection/HiddenRectificationConfirm.aspx?HazardRegisterId='+register.HazardRegisterId AS PCUrl
FROM HSSE_Hazard_HazardRegister AS register
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = projectUser.UserId
left join Base_Project as project on project.ProjectId =projectUser.ProjectId
WHERE (@sType='1' or @sType='2') and register.ProjectId = projectUser.ProjectId and
register.states = '2' AND register.CheckManId =@userId
UNION ALL
SELECT CheckControlCode AS DataId
,'B3E99BD9-FDC7-4F15-8C3C-A7821AC9E306' AS MenuId
,'质量巡检待处理' AS MenuName
,project.ProjectCode
,checkControl.QuestionDef AS Content
,users.UserId
,users.UserName
,checkControl.CheckDate AS DataTime
,CONVERT(varchar(100),checkControl.CheckDate, 23) AS DataTimeStr
,'CQMS/Check/ChecklistEdit.aspx?CheckControlCode='+checkControl.CheckControlCode AS PCUrl
FROM Check_CheckControl AS checkControl
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = projectUser.UserId
left join Base_Project as project on project.ProjectId =projectUser.ProjectId
WHERE (@sType='1' or @sType='2') and checkControl.ProjectId = projectUser.ProjectId and
checkControl.State != '7' AND checkControl.CheckControlCode in (select CheckControlCode from Check_CheckControlApprove approve where approve.ApproveType!='S' and approve.ApproveMan=@userId and approve.ApproveDate is null )
UNION ALL
SELECT GJSXID AS DataId
,'0BEA2126-7A48-40EB-8E21-99148E91A22B' AS MenuId
,'关键事项待处理' AS MenuName
,project.ProjectCode
,GJSX.Detail AS Content
,users.UserId
,users.UserName
,GJSX.CreateDate AS DataTime
,CONVERT(varchar(100),GJSX.CreateDate, 23) AS DataTimeStr
,'PZHGL/GJSX/GJSXListEdit.aspx?ToDo=ToDo&EditType=Edit&ID='+GJSXID AS PCUrl
FROM GJSX
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = projectUser.UserId
left join Base_Project as project on project.ProjectId =projectUser.ProjectId
WHERE (@sType='1' or @sType='2') and GJSX.ProjectId = projectUser.ProjectId and
GJSX.State != 0 AND (((select count(*) from GJSX_detail detail where detail.Progress_user=@userId and detail.GJSXID=GJSX.GJSXID)=0
and (select count(*) from GJSX_Process process where process.UserId=@userId and process.GJSXID=GJSX.GJSXID)>0)
or (GJSX.User_Acceptance like '%'+@userId+'%' and (select count(*) from GJSX_detail detail where detail.GJSXID=GJSX.GJSXID)=(select count(*) from GJSX_Process process where process.GJSXID=GJSX.GJSXID))
)
UNION ALL
SELECT ConstructSolutionId AS DataId
,'91C4BFDB-0A51-4992-99CC-EB4EC185593D' AS MenuId
,'施工方案待处理' AS MenuName
,project.ProjectCode
,Solution.SolutionName AS Content
,users.UserId
,users.UserName
,Solution.CompileDate AS DataTime
,CONVERT(varchar(100),Solution.CompileDate, 23) AS DataTimeStr
,'CQMS/Solution/EditConstructSolution.aspx?ConstructSolutionId='+Solution.ConstructSolutionId AS PCUrl
FROM Solution_CQMSConstructSolution AS Solution
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = projectUser.UserId
left join Base_Project as project on project.ProjectId =projectUser.ProjectId
WHERE (@sType='1' or @sType='2') and Solution.ProjectId = projectUser.ProjectId and
Solution.State!='3'
AND Solution.ConstructSolutionId in
(select top 1 ConstructSolutionId from (
SELECT Solution_CQMSConstructSolutionApprove.*
FROM Solution_CQMSConstructSolutionApprove,
(SELECT MIN([order]) AS [order],ConstructSolutionId FROM Solution_CQMSConstructSolutionApprove where ApproveType!='S' and ApproveDate is null GROUP BY ConstructSolutionId )b
WHERE Solution_CQMSConstructSolutionApprove.[order] = b.[order] and Solution_CQMSConstructSolutionApprove.ConstructSolutionId = b.ConstructSolutionId
) approve
where approve.ApproveMan=@userId )
UNION ALL
SELECT InspectionId AS DataId
,'4781f467-35bf-4cf2-aaa4-7960a175eb61' AS MenuId
,'共检通知单待处理' AS MenuName
,project.ProjectCode
,InspectionManagement.AcceptanceSite AS Content
,users.UserId
,users.UserName
,InspectionManagement.CompileDate AS DataTime
,CONVERT(varchar(100),InspectionManagement.CompileDate, 23) AS DataTimeStr
,'CQMS/ProcessControl/InspectionNoticeEdit.aspx?View=View&InspectionId='+InspectionManagement.InspectionId AS PCUrl
FROM ProcessControl_InspectionManagement AS InspectionManagement
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = projectUser.UserId
left join Base_Project as project on project.ProjectId =projectUser.ProjectId
WHERE (@sType='1' or @sType='2') and InspectionManagement.ProjectId=projectUser.ProjectId and
dateadd(day,3,InspectionManagement.CompileDate)>getdate() and InspectionManagement.AcceptanceCheckMan like '%'+@userId+'%'
UNION ALL
SELECT CheckSpecialId AS DataId
,'1B08048F-93ED-4E84-AE65-DB7917EA2DFB' AS MenuId
,'专项检查' AS MenuName
,project.ProjectCode
,CheckItemSet.CheckItemName AS Content
,users.UserId
,users.UserName
,CheckSpecial.CheckTime AS DataTime
,CONVERT(varchar(100),CheckSpecial.CheckTime, 23) AS DataTimeStr
,'HSSE/Check/CheckSpecialView.aspx?CheckSpecialId='+CheckSpecial.CheckSpecialId AS PCUrl
FROM Check_CheckSpecial AS CheckSpecial
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = projectUser.UserId
left join Base_Project as project on project.ProjectId =projectUser.ProjectId
LEFT JOIN Technique_CheckItemSet AS CheckItemSet ON CheckItemSet.CheckItemSetId =CheckSpecial.CheckItemSetId
WHERE (@sType='1' or @sType='2') and
dateadd(day,3,CheckSpecial.CheckTime)>getdate() and CheckSpecial.PartInPersonIds like '%'+@userId+'%'
and CheckSpecial.ProjectId = projectUser.ProjectId
UNION ALL
SELECT CheckColligationId AS DataId
,'C198EBA8-9E23-4654-92E1-09C61105C522' AS MenuId
,'综合检查待处理' AS MenuName
,project.ProjectCode
,case CheckType when '0' then '周检' when '1' then '月检' else '其它' end AS Content
,users.UserId
,users.UserName
,CheckColligation.CheckTime AS DataTime
,CONVERT(varchar(100),CheckColligation.CheckTime, 23) AS DataTimeStr
,'HSSE/Check/CheckColligationEdit.aspx?CheckColligationId='+CheckColligation.CheckColligationId AS PCUrl
FROM Check_CheckColligation AS CheckColligation
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = projectUser.UserId
left join Base_Project as project on project.ProjectId =projectUser.ProjectId
LEFT JOIN Sys_FlowOperate AS FlowOperate ON CheckColligation.CheckColligationId=FlowOperate.DataId
LEFT JOIN Sys_User AS OperateUser ON FlowOperate.OperaterId=OperateUser.UserId
WHERE (@sType='1' or @sType='2') and
FlowOperate.IsClosed <> 1 and FlowOperate.OperaterId=@userId
and CheckColligation.ProjectId = projectUser.ProjectId
UNION ALL
SELECT PatrolPlanId AS DataId
,'D256E5C8-DC76-4F4D-BABE-A253418823F4' AS MenuId
,'风险巡检待处理' AS MenuName
,project.ProjectCode
,HazardListItem.HazardItems AS Content
,users.UserId
,users.UserName
,PatrolPlan.LimitCheckDate AS DataTime
,CONVERT(varchar(100),PatrolPlan.LimitCheckDate, 23) AS DataTimeStr
,'HSSE/Hazard/RoutingInspectionEdit.aspx?PatrolPlanId='+PatrolPlan.PatrolPlanId AS PCUrl
FROM Hazard_PatrolPlan AS PatrolPlan
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = projectUser.UserId
left join Base_Project as project on project.ProjectId =projectUser.ProjectId
LEFT JOIN Hazard_HazardSelectedItem AS HazardListItem on HazardListItem.HazardSelectedItemId=PatrolPlan.HazardSelectedItemId
WHERE (@sType='1' or @sType='2') and
dateadd(day,-3,PatrolPlan.LimitCheckDate)<getdate() and PatrolPlan.DutyPerson=@userId
and (select COUNT(*) from Hazard_RoutingInspection ri where ri.PatrolPlanId=PatrolPlan.PatrolPlanId)=0
and HazardListItem.ProjectId=projectUser.ProjectId
UNION ALL
SELECT PersonQuality.PersonId AS DataId
,'EBEA762D-1F46-47C5-9EAD-759E13D9B41C' AS MenuId
,'特种作业人员资质还有'+convert(nvarchar(6),DATEDIFF(day,getdate(),PersonQuality.LimitDate))+'天过期' AS MenuName
,project.ProjectCode
,Person.PersonName AS Content
,users.UserId
,users.UserName
,PersonQuality.LimitDate AS DataTime
,CONVERT(varchar(100),PersonQuality.LimitDate, 23) AS DataTimeStr
,'HSSE/QualityAudit/PersonQualityEdit.aspx?PersonId='+PersonQuality.PersonId AS PCUrl
FROM QualityAudit_PersonQuality AS PersonQuality
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = projectUser.UserId
left join Base_Project as project on project.ProjectId =projectUser.ProjectId
LEFT JOIN SitePerson_Person AS Person on Person.PersonId=PersonQuality.PersonId
WHERE Person.IsUsed=1 and Person.InTime<getdate() and (Person.OutTime is null or Person.OutTime >getdate() ) and
dateadd(day,-15,PersonQuality.LimitDate)<getdate() and getdate()<PersonQuality.LimitDate
and (@sType='1' or @sType='3')
and Person.ProjectId = project.ProjectId
UNION ALL
SELECT PersonQuality.PersonId AS DataId
,'EBEA762D-1F46-47C5-9EAD-759E13D9B41C' AS MenuId
,'特种作业人员资质已过期'+convert(nvarchar(6),DATEDIFF(day,PersonQuality.LimitDate,getdate()))+'' AS MenuName
,project.ProjectCode
,Person.PersonName AS Content
,users.UserId
,users.UserName
,PersonQuality.LimitDate AS DataTime
,CONVERT(varchar(100),PersonQuality.LimitDate, 23) AS DataTimeStr
,'HSSE/QualityAudit/PersonQualityEdit.aspx?PersonId='+PersonQuality.PersonId AS PCUrl
FROM QualityAudit_PersonQuality AS PersonQuality
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = projectUser.UserId
left join Base_Project as project on project.ProjectId =projectUser.ProjectId
LEFT JOIN SitePerson_Person AS Person on Person.PersonId=PersonQuality.PersonId
WHERE Person.IsUsed=1 and Person.InTime<getdate() and (Person.OutTime is null or Person.OutTime >getdate() ) and
PersonQuality.LimitDate<getdate() and (@sType='1' or @sType='2') and
Person.ProjectId =projectUser.ProjectId
UNION ALL
SELECT InspectionPersonId AS DataId
,'8ed133de-5899-4687-878a-20b1f5280f18' AS MenuId
,'人员报验还有'+convert(nvarchar(6),DATEDIFF(day,getdate(),Person.ValidityDate))+'天过期 ' AS MenuName
,project.ProjectCode
,Person.PersonName AS Content
,users.UserId
,users.UserName
,Person.ValidityDate AS DataTime
,CONVERT(varchar(100),Person.CompileDate, 23) AS DataTimeStr
,'CQMS/Comprehensive/InspectionPersonEdit.aspx?projectId='+project.ProjectId+'&InspectionPersonId='+Person.InspectionPersonId AS PCUrl
FROM Comprehensive_InspectionPerson AS Person
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = projectUser.UserId
left join Base_Project as project on project.ProjectId =projectUser.ProjectId
WHERE Person.IsOnSite=1 and (@sType='1' or @sType='3') and
dateadd(day,-15,Person.ValidityDate)<getdate() and getdate()<Person.ValidityDate and
Person.ProjectId = projectUser.ProjectId
and project.ProjectState='1'
UNION ALL
SELECT InspectionPersonId AS DataId
,'8ed133de-5899-4687-878a-20b1f5280f18' AS MenuId
,'人员报验已过期'+convert(nvarchar(6),DATEDIFF(day,Person.ValidityDate,getdate()))+'' AS MenuName
,project.ProjectCode
,Person.PersonName AS Content
,users.UserId
,users.UserName
,Person.ValidityDate AS DataTime
,CONVERT(varchar(100),Person.CompileDate, 23) AS DataTimeStr
,'CQMS/Comprehensive/InspectionPersonEdit.aspx?projectId='+project.ProjectId+'&InspectionPersonId='+Person.InspectionPersonId AS PCUrl
FROM Comprehensive_InspectionPerson AS Person
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = projectUser.UserId
left join Base_Project as project on project.ProjectId =projectUser.ProjectId
WHERE Person.IsOnSite=0 and (@sType='1' or @sType='2') and
Person.ValidityDate<getdate() and
Person.ProjectId = projectUser.ProjectId
and project.ProjectState='1'
UNION ALL
SELECT InspectionMachineId AS DataId
,'aa55fad1-6c51-43f5-8c99-3c6aaae79118' AS MenuId
,'机具报验还有'+convert(nvarchar(6),DATEDIFF(day,getdate(),Machine.NextTestDate))+'天过期 ' AS MenuName
,project.ProjectCode
,Machine.InspectionMachineName AS Content
,users.UserId
,users.UserName
,Machine.NextTestDate AS DataTime
,CONVERT(varchar(100),Machine.CompileDate, 23) AS DataTimeStr
,'CQMS/Comprehensive/InspectionMachineEdit.aspx?projectId='+project.ProjectId+'&InspectionMachineId='+Machine.InspectionMachineId AS PCUrl
FROM Comprehensive_InspectionMachine AS Machine
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = projectUser.UserId
left join Base_Project as project on project.ProjectId =projectUser.ProjectId
WHERE Machine.IsOnSite=1 and (@sType='1' or @sType='3') and
dateadd(day,-15,Machine.NextTestDate)<getdate() and getdate()<Machine.NextTestDate and
Machine.ProjectId = projectUser.ProjectId
and project.ProjectState='1'
UNION ALL
SELECT InspectionMachineId AS DataId
,'aa55fad1-6c51-43f5-8c99-3c6aaae79118' AS MenuId
,'机具报验已过期'+convert(nvarchar(6),DATEDIFF(day,Machine.NextTestDate,getdate()))+'' AS MenuName
,project.ProjectCode
,Machine.InspectionMachineName AS Content
,users.UserId
,users.UserName
,Machine.NextTestDate AS DataTime
,CONVERT(varchar(100),Machine.CompileDate, 23) AS DataTimeStr
,'CQMS/Comprehensive/InspectionMachineEdit.aspx?projectId='+project.ProjectId+'&InspectionMachineId='+Machine.InspectionMachineId AS PCUrl
FROM Comprehensive_InspectionMachine AS Machine
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId =projectUser.UserId
left join Base_Project as project on project.ProjectId = projectUser.ProjectId
WHERE Machine.IsOnSite=1 and Machine.ProjectId=projectUser.ProjectId and
Machine.NextTestDate<getdate() and (@sType='1' or @sType='2')
and project.ProjectState='1'
UNION ALL
SELECT distinct Project.ProjectId AS DataId
,'2AE9D982-A499-497F-8F54-ADDA5856887E' AS MenuId
,'本月工程量完成情况尚未填报' AS MenuName
,project.ProjectCode
,'' AS Content
,users.UserId
,users.UserName
,GETDATE() AS DataTime
,CONVERT(varchar(100),GETDATE(), 23) AS DataTimeStr
,'JDGL/Check/QuantityCompletion.aspx?ToDo=ToDo' AS PCUrl
FROM Base_Project AS Project
LEFT JOIN Project_ProjectUser as pu on pu.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = pu.UserId
WHERE (pu.RoleId like '%22F78A47-F59C-4FE8-9C43-2DD304CB2108%' or pu.RoleId like '%GCB64EF3-AB0A-40BC-824D-CC314598D5DC%') and ((DATENAME(DAY,GETDATE())>=22 and (select COUNT(*) from JDGL_QuantityCompletion WHERE DATENAME(year,GETDATE())=DATENAME(year,EndDate) and DATENAME(MONTH,GETDATE())=DATENAME(MONTH,EndDate))=0)
and (@sType='1' or @sType='2') and Project.ProjectId = pu.ProjectId --or (DATEADD(day,60,(select top 1 EndDate from JDGL_QuantityCompletion WHERE ProjectId=@projectId order by EndDate desc))<GETDATE())
)
UNION ALL
SELECT MonthPlan.MonthPlanId AS DataId
,'94287B92-7E96-4B90-BC6F-DAF30AE3B314' AS MenuId
,'月度计划尚未完成' AS MenuName
,project.ProjectCode
,'' AS Content
,users.UserId
,users.UserName
,GETDATE() AS DataTime
,CONVERT(varchar(100),GETDATE(), 23) AS DataTimeStr
,'JDGL/Check/MonthPlanEdit.aspx?ToDo=ToDo' AS PCUrl
FROM JDGL_MonthPlan AS MonthPlan
left join Project_ProjectUser as projectUser on projectUser.UserId=@userId
LEFT JOIN Sys_User AS users ON users.UserId = projectUser.UserId
left join Base_Project as project on project.ProjectId =projectUser.ProjectId
WHERE MonthPlan.DutyPerson=@userId and MonthPlan.RealDate is null and DATENAME(DAY,GETDATE())>=22 and
DATENAME(year,GETDATE())=DATENAME(year,MonthPlan.PlanDate) and DATENAME(MONTH,GETDATE())=DATENAME(MONTH,MonthPlan.PlanDate)
and MonthPlan.ProjectId = projectUser.ProjectId
and (@sType='1' or @sType='2')
ORDER BY DataTime DESC
END
GO