141 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
| 
 | |
| ALTER PROC [dbo].[spInOutManHoursReport]
 | |
|           @projectId NVARCHAR(50),
 | |
| 		  @unitId NVARCHAR(max)= NULL,
 | |
| 		  @postId NVARCHAR(max)= NULL,
 | |
| 		  @startTime DATETIME = NULL,
 | |
|           @endTime DATETIME = NULL    
 | |
| AS
 | |
| /*****************데貫옘핸****************/
 | |
| SELECT CAST(NEWID() AS NVARCHAR(100)) AS ID
 | |
| 	,T.ProjectId
 | |
| 	,p.UnitId
 | |
| 	,ISNULL((case when P.UnitId=''then null 
 | |
| 		else (case when u.ShortUnitName IS NOT NULL THEN u.ShortUnitName ELSE u.UnitName END) end),'灌列') AS UnitName
 | |
| 	,ISNULL((case when P.UnitId=''then null 
 | |
| 		else u.UnitName end),'灌列') AS AllUnitName
 | |
| 	,p.WorkPostId as PostId
 | |
| 	,ISNULL((case when W.WorkPostName=''then null else W.WorkPostName end),'灌列') AS PostName
 | |
| 	,SUM(ISNULL(ManHours,0)) AS ManHoursSum
 | |
| 	,COUNT(T.NewID) AS ManCountSum 
 | |
| 	,(SELECT COUNT(PersonId) FROM SitePerson_Person 
 | |
| 		WHERE  ProjectId = T.ProjectId AND P.UnitId=UnitId AND P.WorkPostId=WorkPostId AND IsUsed=1 AND OutTime IS NOT NULL 
 | |
| 	group by ProjectId,UnitId,WorkPostId) AS PersonCountSum
 | |
| FROM dbo.t_d_EmployInOutRecord AS T
 | |
| LEFT JOIN dbo.SitePerson_Person AS P ON T.ProjectId=P.ProjectId AND T.IDCardNo=P.IdentityCard
 | |
| LEFT JOIN dbo.Base_Unit AS U ON P.UnitId=U.UnitId
 | |
| --LEFT JOIN dbo.ProjectData_TeamGroup AS Team ON P.TeamGroupId=Team.TeamGroupId
 | |
| LEFT JOIN dbo.Base_WorkPost AS W ON P.WorkPostId=W.WorkPostId
 | |
| WHERE  T.ProjectId = @ProjectId	
 | |
| AND (RecordDate >= @startTime OR @startTime IS NULL) 
 | |
| AND (RecordDate <= @endTime OR @endTime IS NULL) 
 | |
| AND (@unitId like '%'+P.UnitId+'%' OR @unitId IS NULL)	
 | |
| AND (@postId like '%'+P.WorkPostId+'%' OR @postId IS NULL)	
 | |
| GROUP BY T.ProjectId,P.UnitId,U.UnitName,u.ShortUnitName,P.WorkPostId,W.WorkPostName
 | |
| 
 | |
| 
 | |
| GO
 | |
| 
 | |
| 
 | |
| ALTER VIEW [dbo].[View_SitePerson_Person]
 | |
| AS
 | |
| SELECT Person.PersonId,
 | |
| 	Person.CardNo,
 | |
| 	Person.PersonName,
 | |
| 	Person.Sex, 
 | |
| 	(Case Person.Sex WHEN '1' THEN '켕' WHEN '2' THEN '큽' ELSE '' END) AS SexName, 
 | |
| 	Person.IdentityCard, 
 | |
| 	Person.Address, 
 | |
| 	Person.ProjectId, 
 | |
| 	Person.UnitId, 
 | |
| 	Person.Birthday,
 | |
| 	Person.TeamGroupId, 
 | |
| 	Person.WorkAreaId, 
 | |
| 	Person.WorkPostId, 	
 | |
| 	Person.InTime, 
 | |
| 	Person.OutTime, 
 | |
| 	Person.OutResult, 
 | |
| 	Person.Telephone, 
 | |
| 	Person.PositionId, 
 | |
| 	Person.PostTitleId, 
 | |
| 	Person.PhotoUrl, 
 | |
| 	Person.IsUsed,
 | |
| 	(CASE Person.IsUsed WHEN 'TRUE' THEN '角' ELSE '뤠' END) AS IsUsedName, 
 | |
| 	Person.IsCardUsed, 
 | |
| 	(CASE Person.IsCardUsed WHEN 'TRUE' THEN '角' ELSE '뤠' END) AS IsCardUsedName, 
 | |
| 	Person.PersonIndex,
 | |
| 	Project.ProjectCode,
 | |
| 	Project.ProjectName,
 | |
| 	Unit.UnitCode,
 | |
| 	Unit.UnitName,
 | |
| 	TeamGroup.TeamGroupName,
 | |
| 	--WorkArea.UnitWorkCode AS WorkAreaCode,
 | |
| 	WorkAreaCode= STUFF((SELECT ',' + UnitWorkCode FROM dbo.WBS_UnitWork where PATINDEX('%,' + RTRIM(UnitWorkId) + ',%',',' +Person.WorkAreaId + ',')>0 FOR XML PATH('')), 1, 1,''),
 | |
| 	--WorkArea.UnitWorkName AS WorkAreaName
 | |
| 	WorkAreaName= STUFF((SELECT ',' + UnitWorkName FROM dbo.WBS_UnitWork where PATINDEX('%,' + RTRIM(UnitWorkId) + ',%',',' +Person.WorkAreaId + ',')>0 FOR XML PATH('')), 1, 1,''),
 | |
| 	Post.WorkPostName,
 | |
| 	Position.PositionName,
 | |
| 	Title.PostTitleName,
 | |
| 	Depart.DepartName,
 | |
| 	Post.PostType,
 | |
| 	Post.IsHsse,
 | |
| 	(SELECT COUNT(*) FROM EduTrain_TrainRecordDetail T WHERE T.PersonId=Person.PersonId) AS TrainCount,
 | |
| 	Person.AuditorId,
 | |
| 	sysUser.UserName AS AuditorName,
 | |
| 	Person.AuditorDate,
 | |
| 	Person.IDCardUrl,
 | |
| 	Person.IsForeign,
 | |
| 	case when Person.IsForeign=1 then '角' else '뤠' end as IsForeignStr,
 | |
| 	Person.IdcardType,
 | |
| 	BasicData1.dictName as IdcardTypeName,
 | |
| 	Person.IdcardStartDate,
 | |
| 	Person.IdcardEndDate,
 | |
| 	Person.IdcardForever,
 | |
| 	case when Person.IdcardForever='Y' then '角' else '뤠' end as IdcardForeverStr,
 | |
| 	Person.PoliticsStatus,
 | |
| 	BasicData2.dictName as PoliticsStatusName,
 | |
| 	Person.IdcardAddress,
 | |
| 	Person.Nation,
 | |
| 	BasicData3.dictName as NationName,
 | |
| 	Person.EduLevel,
 | |
| 	BasicData4.dictName as EduLevelName,
 | |
| 	Person.MaritalStatus,
 | |
| 	BasicData5.dictName as MaritalStatusName,
 | |
| 	Person.CountryCode,
 | |
| 	Country.cname as CountryName,
 | |
| 	Person.ProvinceCode,
 | |
| 	City.cname as ProvinceName,
 | |
| 	Person.MainCNProfessionalId,
 | |
| 	CNProfessional.ProfessionalName as MainCNProfessionalName,
 | |
| 	Person.ViceCNProfessionalId,
 | |
| 	'' as ViceCNProfessionalName,
 | |
| 	Person.IsOutside,
 | |
| 	case when Person.IsOutside=1 then '角' else '뤠' end as IsOutsideStr,
 | |
| 	Person.HeadImage,
 | |
| 	RealNameAddTime
 | |
| FROM SitePerson_Person AS Person
 | |
| LEFT JOIN Base_Project AS Project ON Project.ProjectId=Person.ProjectId
 | |
| LEFT JOIN Base_Unit AS Unit ON Unit.UnitId = Person.UnitId
 | |
| LEFT JOIN ProjectData_TeamGroup AS TeamGroup ON TeamGroup.TeamGroupId=Person.TeamGroupId
 | |
| --LEFT JOIN WBS_UnitWork AS WorkArea ON WorkArea.UnitWorkId = Person.WorkAreaId
 | |
| LEFT JOIN Base_WorkPost AS Post ON Post.WorkPostId = Person.WorkPostId
 | |
| LEFT JOIN Base_Position AS Position ON Position.PositionId = Person.PositionId
 | |
| Left JOIN Base_PostTitle AS Title ON Title.PostTitleId = Person.PostTitleId
 | |
| Left JOIN Base_Depart AS Depart ON Depart.DepartId = Person.DepartId
 | |
| Left JOIN Sys_User AS sysUser ON sysUser.UserId = Person.AuditorId
 | |
| Left JOIN RealName_BasicData AS BasicData1 ON BasicData1.dictCode = Person.IdcardType
 | |
| Left JOIN RealName_BasicData AS BasicData2 ON BasicData2.dictCode = Person.PoliticsStatus
 | |
| Left JOIN RealName_BasicData AS BasicData3 ON BasicData3.dictCode = Person.Nation
 | |
| Left JOIN RealName_BasicData AS BasicData4 ON BasicData4.dictCode = Person.EduLevel
 | |
| Left JOIN RealName_BasicData AS BasicData5 ON BasicData5.dictCode = Person.MaritalStatus
 | |
| Left JOIN RealName_Country AS Country ON Country.CountryId = Person.CountryCode
 | |
| Left JOIN RealName_City AS City ON City.provinceCode = Person.ProvinceCode AND Country.CountryId=City.countryId
 | |
| Left JOIN Base_CNProfessional AS CNProfessional ON CNProfessional.CNProfessionalId = Person.MainCNProfessionalId
 | |
| 
 | |
| 
 | |
| GO
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |