SGGL_SHJ/DataBase/版本日志/已更新脚本/SGGLDB_V2022-08-26(YHW).sql

124 lines
4.9 KiB
Transact-SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--人员表新增 人员类型字段 删除是否外聘字段
ALTER TABLE Person_Persons ADD PersonType NVARCHAR(10) NULL
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'人员类型1-正式员工2-外聘3-第三方)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Person_Persons', @level2type=N'COLUMN',@level2name=N'PersonType'
GO
UPDATE Person_Persons SET PersonType='2' WHERE IsOutside =1
GO
UPDATE Person_Persons SET PersonType='1' WHERE PersonType IS NULL
GO
ALTER TABLE Person_Persons DROP COLUMN IsOutside
GO
ALTER VIEW [dbo].[View_SitePerson_Person]
AS
/*现场人员视图*/
SELECT SitePerson.ProjectId,
Project.ProjectCode,
Project.ProjectName,
SitePerson.SitePersonId,
persons.PersonId,
SitePerson.CardNo,
Persons.PersonName,
Persons.Sex,
(Case Persons.Sex WHEN '1' THEN '' WHEN '2' THEN '' ELSE '' END) AS SexName,
Persons.IdentityCard,
Persons.Address,
SitePerson.UnitId,
Persons.Birthday,
SitePerson.TeamGroupId,
SitePerson.WorkAreaId,
SitePerson.WorkPostId,
SitePerson.InTime,
SitePerson.OutTime,
SitePerson.OutResult,
Persons.Telephone,
Persons.PositionId,
Persons.PostTitleId,
Persons.PhotoUrl,
Unit.UnitCode,
Unit.UnitName,
TeamGroup.TeamGroupName,
Post.WorkPostName,
Position.PositionName,
Title.PostTitleName,
Depart.DepartName,
Post.PostType,
Post.IsHsse,
(SELECT COUNT(*) FROM EduTrain_TrainRecordDetail T
LEFT JOIN EduTrain_TrainRecord AS E ON T.TrainingId=E.TrainingId
WHERE T.PersonId=SitePerson.PersonId AND E.ProjectId=SitePerson.ProjectId) AS TrainCount,
SitePerson.AuditorId,
Persons.PersonName AS AuditorName,
SitePerson.AuditorDate,
Persons.IDCardUrl,
Persons.IsForeign,
case when Persons.IsForeign=1 then '' else '' end as IsForeignStr,
Persons.IdcardType,
BasicData1.dictName as IdcardTypeName,
Persons.IdcardStartDate,
Persons.IdcardEndDate,
Persons.IdcardForever,
case when Persons.IdcardForever='Y' then '' else '' end as IdcardForeverStr,
Persons.PoliticsStatus,
BasicData2.dictName as PoliticsStatusName,
Persons.IdcardAddress,
Persons.Nation,
BasicData3.dictName as NationName,
Persons.EduLevel,
BasicData4.dictName as EduLevelName,
Persons.MaritalStatus,
BasicData5.dictName as MaritalStatusName,
Persons.CountryCode,
Country.cname as CountryName,
Persons.ProvinceCode,
City.cname as ProvinceName,
Persons.PersonType,
(case when Persons.PersonType='2' then '外聘' when Persons.PersonType='3' then '第三方' else '员工' end) as IsOutsideStr,
--WorkArea.UnitWorkCode AS WorkAreaCode,
WorkAreaCode= STUFF((SELECT ',' + UnitWorkCode FROM dbo.WBS_UnitWork where PATINDEX('%,' + RTRIM(UnitWorkId) + ',%',',' +SitePerson.WorkAreaId + ',')>0 FOR XML PATH('')), 1, 1,''),
--WorkArea.UnitWorkName AS WorkAreaName
WorkAreaName= STUFF((SELECT ',' + UnitWorkName FROM dbo.WBS_UnitWork where PATINDEX('%,' + RTRIM(UnitWorkId) + ',%',',' +SitePerson.WorkAreaId + ',')>0 FOR XML PATH('')), 1, 1,''),
SitePerson.RealNameAddTime,
SitePerson.RealNameUpdateTime,
Persons.HeadImage,
SitePerson.States
FROM SitePerson_Person AS SitePerson
LEFT JOIN Person_Persons AS Persons ON SitePerson.PersonId=Persons.PersonId
LEFT JOIN Base_Project AS Project ON Project.ProjectId=SitePerson.ProjectId
LEFT JOIN Base_Unit AS Unit ON Unit.UnitId = SitePerson.UnitId
LEFT JOIN ProjectData_TeamGroup AS TeamGroup ON TeamGroup.TeamGroupId=SitePerson.TeamGroupId
LEFT JOIN Base_WorkPost AS Post ON Post.WorkPostId = SitePerson.WorkPostId
LEFT JOIN Base_Position AS Position ON Position.PositionId = Persons.PositionId
Left JOIN Base_PostTitle AS Title ON Title.PostTitleId = Persons.PostTitleId
Left JOIN Base_Depart AS Depart ON Depart.DepartId = Persons.DepartId
Left JOIN RealName_BasicData AS BasicData1 ON BasicData1.dictCode = Persons.IdcardType
Left JOIN RealName_BasicData AS BasicData2 ON BasicData2.dictCode = Persons.PoliticsStatus
Left JOIN RealName_BasicData AS BasicData3 ON BasicData3.dictCode = Persons.Nation
Left JOIN RealName_BasicData AS BasicData4 ON BasicData4.dictCode = Persons.EduLevel
Left JOIN RealName_BasicData AS BasicData5 ON BasicData5.dictCode = Persons.MaritalStatus
Left JOIN RealName_Country AS Country ON Country.CountryId = Persons.CountryCode
Left JOIN RealName_City AS City ON City.provinceCode = Persons.ProvinceCode and City.CountryId = Persons.CountryCode
GO
/****** Object: Index [NonClusteredIndex-20220629-102151] Script Date: 2022/8/26 10:37:54 ******/
DROP INDEX [NonClusteredIndex-20220629-102151] ON [dbo].[Person_Persons]
GO
/****** Object: Index [NonClusteredIndex-20220629-102151] Script Date: 2022/8/26 10:37:33 ******/
CREATE NONCLUSTERED INDEX [NonClusteredIndex-ListData-param] ON [dbo].[Person_Persons]
(
[UnitId] ASC,
[DepartId] ASC,
[RoleIds] ASC,
[WorkPostId] ASC,
[IsPost] ASC,
[PersonType] ASC,
[IsCardNoOK] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO