92 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
CREATE PROC [dbo].[SP_InOutList]
 | 
						|
		@projectId NVARCHAR(50) = NULL,	
 | 
						|
		@unitId NVARCHAR(50) = NULL,	
 | 
						|
		@name NVARCHAR(50) = NULL,	
 | 
						|
		@type NVARCHAR(10)=NULL,	 
 | 
						|
		@startTime DATETIME = NULL,
 | 
						|
        @endTime DATETIME = NULL			
 | 
						|
AS
 | 
						|
/*出入记录*/
 | 
						|
BEGIN
 | 
						|
IF(@type='1')
 | 
						|
	BEGIN
 | 
						|
		SELECT NEWID
 | 
						|
			,ValidEventID AS ID
 | 
						|
			,V.ProjectId
 | 
						|
			,EmployName
 | 
						|
			,DepartmentID
 | 
						|
			,DepartmentName AS DepartName
 | 
						|
			,AreaID,AreaName
 | 
						|
			,EmployNO
 | 
						|
			,CAST(V.CardNO AS nvarchar(20)) AS CardID
 | 
						|
			,RecordDateTime AS DateTimeRecord
 | 
						|
			,RecordAll AS RecordDes
 | 
						|
			,(CASE WHEN InOrOut=2 THEN '出门' ELSE '进门' END) AS InOrOut
 | 
						|
			,P.UnitId
 | 
						|
			,P.TeamGroupId
 | 
						|
		FROM t_d_validcardevent V
 | 
						|
		LEFT JOIN SitePerson_Person AS P ON V.IDCardNo=P.IdentityCard AND V.ProjectId=P.ProjectId
 | 
						|
		WHERE V.ProjectId = @ProjectId 
 | 
						|
		AND (RecordDateTime >= @startTime OR @startTime IS NULL) 
 | 
						|
		AND (RecordDateTime <= @endTime OR @endTime IS NULL)
 | 
						|
		AND (P.UnitId = @unitId OR @unitId IS NULL)
 | 
						|
		AND (EmployName like ('%'+@name+'%') OR @name IS NULL)
 | 
						|
		ORDER BY RecordDateTime DESC
 | 
						|
	END
 | 
						|
ELSE IF(@type='2')
 | 
						|
	BEGIN
 | 
						|
	SELECT NewID
 | 
						|
			,ID
 | 
						|
			,V.ProjectId
 | 
						|
			,EmployName
 | 
						|
			,DepartmentID
 | 
						|
			,DepartName
 | 
						|
			,AreaID
 | 
						|
			,AreaName
 | 
						|
			,EmployNO
 | 
						|
			,CAST(V.CardID AS nvarchar(20)) AS CardID
 | 
						|
			,RoleID
 | 
						|
			,DateTimeRecord
 | 
						|
			,RecordDes
 | 
						|
			,InOrOut  
 | 
						|
			,P.UnitId,P.TeamGroupId
 | 
						|
		FROM t_d_facerecord V
 | 
						|
		LEFT JOIN SitePerson_Person AS P ON V.EmployNO=P.IdentityCard AND V.ProjectId=P.ProjectId
 | 
						|
		WHERE V.ProjectId = @ProjectId AND V.RoleID = '微信端'
 | 
						|
		AND (DateTimeRecord >= @startTime OR @startTime IS NULL) 
 | 
						|
		AND (DateTimeRecord <= @endTime OR @endTime IS NULL)
 | 
						|
		AND (P.UnitId = @unitId OR @unitId IS NULL)
 | 
						|
		AND (EmployName like ('%'+@name+'%') OR @name IS NULL)
 | 
						|
		ORDER BY DateTimeRecord DESC
 | 
						|
	END
 | 
						|
ELSE 
 | 
						|
	BEGIN
 | 
						|
		SELECT NewID
 | 
						|
			,ID
 | 
						|
			,V.ProjectId
 | 
						|
			,EmployName
 | 
						|
			,DepartmentID
 | 
						|
			,DepartName
 | 
						|
			,AreaID
 | 
						|
			,AreaName
 | 
						|
			,EmployNO
 | 
						|
			,CAST(V.CardID AS nvarchar(20)) AS CardID
 | 
						|
			,RoleID
 | 
						|
			,DateTimeRecord
 | 
						|
			,RecordDes
 | 
						|
			,InOrOut  
 | 
						|
			,P.UnitId,P.TeamGroupId
 | 
						|
		FROM t_d_facerecord V
 | 
						|
		LEFT JOIN SitePerson_Person AS P ON V.EmployNO=P.IdentityCard AND V.ProjectId=P.ProjectId
 | 
						|
		WHERE V.ProjectId = @ProjectId AND V.RoleID != '微信端'
 | 
						|
		AND (DateTimeRecord >= @startTime OR @startTime IS NULL) 
 | 
						|
		AND (DateTimeRecord <= @endTime OR @endTime IS NULL)
 | 
						|
		AND (P.UnitId = @unitId OR @unitId IS NULL)
 | 
						|
		AND (EmployName like ('%'+@name+'%') OR @name IS NULL)
 | 
						|
		ORDER BY DateTimeRecord DESC
 | 
						|
	END
 | 
						|
END
 | 
						|
GO
 | 
						|
 | 
						|
 |