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
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 |