92 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			MySQL
		
	
	
	
		
		
			
		
	
	
			92 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			MySQL
		
	
	
	
|  | 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
 | |||
|  | /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼*/
 | |||
|  | 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 '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ELSE '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' 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 = '<EFBFBD>Ŷ<EFBFBD>'
 | |||
|  | 		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 != '<EFBFBD>Ŷ<EFBFBD>'
 | |||
|  | 		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
 | |||
|  | 
 | |||
|  | 
 |