61 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
ALTER PROCEDURE [dbo].[SpCheckDayStatistic]     
 | 
						|
	@ProjectId NVARCHAR(50),
 | 
						|
	@StartTime NVARCHAR(15)=NULL,        
 | 
						|
	@EndTime NVARCHAR(15)=NULL,
 | 
						|
	@States CHAR(1)=NULL,
 | 
						|
	@UnitName NVARCHAR(200)=NULL,
 | 
						|
	@WorkAreaName NVARCHAR(200)=NULL
 | 
						|
AS  
 | 
						|
/*日常巡检检查*/          
 | 
						|
BEGIN
 | 
						|
SELECT 	CheckDayDetail.CheckDayDetailId
 | 
						|
	,CheckDay.CheckDayId
 | 
						|
	,CheckDay.CheckDayId+','+ISNULL(CheckDayDetail.CheckDayDetailId,'') AS NewChcekId
 | 
						|
	,CodeRecords.Code AS CheckDayCode
 | 
						|
	,ISNULL(Checks.CheckCount,0) AS CheckCount	
 | 
						|
	,CheckDayDetail.WorkArea
 | 
						|
	,Unit.UnitName
 | 
						|
	,CheckDayDetail.CompleteStatus
 | 
						|
	,(CASE WHEN CheckDayDetail.CompleteStatus=1 THEN '已完成' ELSE '' END) AS CompleteStatusName
 | 
						|
	,CONVERT(VARCHAR(100), CheckDayDetail.LimitedDate, 23) AS LimitedDate
 | 
						|
	,CheckDayDetail.CompletedDate
 | 
						|
	,CheckDay.CheckPerson
 | 
						|
	,CONVERT(VARCHAR(100), CheckDay.CheckTime, 23) AS CheckTime
 | 
						|
	--,CheckDay.CheckTime
 | 
						|
	,CheckDayDetail.CheckItemType
 | 
						|
	,CheckDayDetail.CheckItem
 | 
						|
	,CheckDayDetail.HandleStep
 | 
						|
	,CheckDayDetail.Unqualified
 | 
						|
	,(CASE WHEN CheckDay.States='0' OR CheckDay.States IS NULL THEN '待['+ISNULL(OperateUser.UserName,Users.UserName)+']提交' WHEN CheckDay.States='2' THEN '审核/审批完成' ELSE '待['+OperateUser.UserName+']办理' END) AS  FlowOperateName
 | 
						|
	,CheckPersonUsers.UserName AS CheckPersonName
 | 
						|
	,person.PersonName
 | 
						|
	,CheckDayDetail.HiddenDangerType
 | 
						|
	,CheckDayDetail.HiddenDangerLevel
 | 
						|
	,checkDayDetail.Suggestions
 | 
						|
FROM Check_CheckDay AS CheckDay 
 | 
						|
LEFT JOIN Sys_CodeRecords AS CodeRecords ON CheckDay.CheckDayId=CodeRecords.DataId
 | 
						|
LEFT JOIN Check_CheckDayDetail AS CheckDayDetail ON CheckDayDetail.CheckDayId = CheckDay.CheckDayId AND  CheckDayDetail.CheckDayDetailId IS NOT NULL 
 | 
						|
--LEFT JOIN ProjectData_WorkArea AS WorkArea on WorkArea.WorkAreaId=CheckDayDetail.CheckArea        
 | 
						|
LEFT JOIN Base_Unit AS Unit ON Unit.UnitId=CheckDayDetail.UnitId        
 | 
						|
LEFT JOIN (SELECT COUNT(*)  AS CheckCount, CheckDayId 
 | 
						|
			FROM Check_CheckDayDetail GROUP BY CheckDayId) AS Checks ON Checks.CheckDayId = CheckDay.CheckDayId 
 | 
						|
LEFT JOIN Sys_FlowOperate AS FlowOperate ON CheckDay.CheckDayId=FlowOperate.DataId AND FlowOperate.IsClosed <> 1
 | 
						|
LEFT JOIN Sys_User AS OperateUser ON FlowOperate.OperaterId=OperateUser.UserId
 | 
						|
LEFT JOIN Sys_User AS Users ON CheckDay.CompileMan=Users.UserId
 | 
						|
LEFT JOIN Sys_User AS CheckPersonUsers ON CheckDay.CheckPerson=CheckPersonUsers.UserId
 | 
						|
LEFT JOIN dbo.SitePerson_Person AS person ON person.PersonId = CheckDayDetail.PersonId
 | 
						|
WHERE  (@StartTime IS NULL OR CheckDay.CheckTime>=@StartTime) 
 | 
						|
		AND (@EndTime IS NULL OR CheckDay.CheckTime <=@EndTime ) 
 | 
						|
		AND CheckDay.ProjectId=@ProjectId
 | 
						|
		AND (@States IS NULL OR CheckDay.States=@States) 
 | 
						|
		AND (@UnitName IS NULL OR Unit.UnitName LIKE '%'+@UnitName+'%' ) 
 | 
						|
		AND (@WorkAreaName IS NULL OR CheckDayDetail.WorkArea LIKE '%'+@WorkAreaName+'%' ) 
 | 
						|
ORDER BY CheckDayCode DESC
 | 
						|
   
 | 
						|
END
 | 
						|
 | 
						|
 | 
						|
GO
 | 
						|
 | 
						|
 |