141 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			MySQL
		
	
	
	
		
		
			
		
	
	
			141 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			MySQL
		
	
	
	
|  | 
 | |||
|  | ALTER PROC [dbo].[spInOutManHoursReport]
 | |||
|  |           @projectId NVARCHAR(50),
 | |||
|  | 		  @unitId NVARCHAR(max)= NULL,
 | |||
|  | 		  @postId NVARCHAR(max)= NULL,
 | |||
|  | 		  @startTime DATETIME = NULL,
 | |||
|  |           @endTime DATETIME = NULL    
 | |||
|  | AS
 | |||
|  | /*****************<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>****************/
 | |||
|  | 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 '<EFBFBD><EFBFBD>' 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 '<EFBFBD><EFBFBD>' ELSE '<EFBFBD><EFBFBD>' END) AS IsUsedName, 
 | |||
|  | 	Person.IsCardUsed, 
 | |||
|  | 	(CASE Person.IsCardUsed WHEN 'TRUE' THEN '<EFBFBD><EFBFBD>' ELSE '<EFBFBD><EFBFBD>' 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 '<EFBFBD><EFBFBD>' else '<EFBFBD><EFBFBD>' end as IsForeignStr,
 | |||
|  | 	Person.IdcardType,
 | |||
|  | 	BasicData1.dictName as IdcardTypeName,
 | |||
|  | 	Person.IdcardStartDate,
 | |||
|  | 	Person.IdcardEndDate,
 | |||
|  | 	Person.IdcardForever,
 | |||
|  | 	case when Person.IdcardForever='Y' then '<EFBFBD><EFBFBD>' else '<EFBFBD><EFBFBD>' 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 '<EFBFBD><EFBFBD>' else '<EFBFBD><EFBFBD>' 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
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 |