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