124 lines
4.9 KiB
Transact-SQL
124 lines
4.9 KiB
Transact-SQL
--人员表新增 人员类型字段 删除是否外聘字段
|
||
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
|
||
|