zoukankan      html  css  js  c++  java
  • 数据同步存储过程代码

    USE [LTI]
    GO
    /****** Object: StoredProcedure [dbo].[P_SyncStaff] Script Date: 03/04/2015 09:38:17 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    ALTER PROCEDURE [dbo].[P_SyncStaff]
    AS
    BEGIN
    begin transaction

    truncate table Sync_StaffInfo

    SELECT * INTO #TEMP_DictionaryItem
    FROM HRFoundation.HRFoundation_PS.dbo.DictionaryItem

    SELECT * INTO #TEMP_OA_Base_PublicCode
    FROM HRFoundation.HRFoundation_PS.dbo.OA_Base_PublicCode

    SELECT StaffID
    ,EngName
    ,ChnName
    ,StaffTypeID
    ,Status
    ,StaffPropertyID
    ,DepartmentID
    ,PostID
    ,InauguralDate
    ,BeFormalDate
    ,DimissionDate
    ,CadrePropertyLevelID
    ,EnableCadrePropertyLevelID
    ,WorkPlace
    ,ContractCompanyID
    ,MobilePhoneNumber
    ,BranchPhoneNumber
    ,RecruitSourceID
    INTO #TEMP_StaffWorkInfo
    FROM HRFoundation.HRFoundation_PS.dbo.StaffWorkInfo sw

    SELECT PostID
    ,Postname
    ,PostPropertyID INTO #TEMP_Post
    FROM HRFoundation.HRFoundation_PS.dbo.Post

    SELECT * INTO #TEMP_Staff_Position
    FROM HRFoundation.HRFoundation_PS.dbo.Staff_Position
    WHERE EnableFlag = 1 AND IsCur = 1 AND TypeID = 2

    SELECT * INTO #TEMP_Staff_CareerPass
    FROM HRFoundation.HRFoundation_PS.dbo.Staff_CareerPass
    WHERE EnableFlag = 1 AND IsCur = 1 AND TypeID = 2

    SELECT * INTO #TEMP_Base_Clan
    FROM HRFoundation.HRFoundation_PS.dbo.Base_Clan

    SELECT * INTO #TEMP_Base_Genus
    FROM HRFoundation.HRFoundation_PS.dbo.Base_Genus

    SELECT StaffID
    ,PositionInt
    ,PositionName
    ,LevelInt
    ,LevelName
    ,EnableFlag
    ,IsCur
    INTO #TEMP_OA_HM_ManagerInfo
    FROM HRFoundation.HRFoundation_PS.dbo.OA_HM_ManagerInfo_New
    WHERE EnableFlag = 1 AND IsCur = 1

    SELECT
    StaffID,
    ContractEmail,
    HighDegreeID,
    ExigencyMan,
    ExigencyManPhone,
    CASE WHEN (nationalityid IS NULL AND ((nationality IS NULL) OR LEN(LTRIM(RTRIM(nationality)))=0 OR nationality ='1')) THEN 1 ELSE nationalityid END AS nationalityid ,
    CASE WHEN (nationality ='1' OR nationality IS NULL OR LEN(LTRIM(RTRIM(nationality)))=0 )THEN '中国' else nationality END AS nationality
    INTO #TEMP_StaffBaseInfo
    FROM HRFoundation.HRFoundation_PS.dbo.StaffBaseInfo

    INSERT INTO Sync_StaffInfo
    ([StaffID]
    ,[EngName]
    ,[ChnName]
    ,[StaffTypeID]
    ,[StaffType]
    ,[StaffStatusID]
    ,[StaffStatus]
    ,[StaffPropertyID]
    ,[StaffProperty]
    ,[BGID]
    ,[BGName]
    ,[DeptID]
    ,[DeptName]
    ,[DeptLevel1ID]
    ,[DeptLevel1Name]
    ,[DeptLevel2ID]
    ,[DeptLevel2Name]
    ,[UnitID]
    ,[UnitName]
    ,[UnitFullName]
    ,[PostID]
    ,[PostName]
    ,[PostPropertyID]
    ,[PostProperty]
    ,[InauguralDate]
    ,[BeFormalDate]
    ,[DimissionDate]
    ,[PositionSystemID]
    ,[PositionSystem]
    ,[ClanID]
    ,[ClanName]
    ,[GenusID]
    ,[GenusName]
    ,[PositionID]
    ,[PositionName]
    ,[CareerPassID]
    ,[CareerPassName]
    ,[LevelID]
    ,[LevelName]
    ,[SubLevelID]
    ,[SubLevelName]
    ,[MngPositionID]
    ,[MngPositionName]
    ,[MngLevelID]
    ,[MngLevelName]
    ,[CadrePropertyLevelID]
    ,[CadrePropertyLevelName]
    ,[EnableCadrePropertyLevel]
    ,[WorkPlaceID]
    ,[WorkPlace]
    ,[ContractCompanyID]
    ,[ContractCompanyName]
    ,[Channel]
    ,[MobilePhoneNumber]
    ,[BranchPhoneNumber]
    ,[Email]
    ,HighDegreeID
    ,HighDegree
    ,UrgentMan
    ,UrgentManPhone
    ,nationalityid
    ,nationality
    )
    SELECT sw.StaffID
    ,sw.EngName
    ,sw.ChnName
    ,sw.StaffTypeID
    ,dictStaffType.Value StaffType
    ,sw.Status StaffStatusID
    ,dictStaffStatus.Value StaffStatus
    ,sw.StaffPropertyID
    ,dictStaffProperty.FName StaffPropertyName
    ,u.BGID
    ,u.BGName
    ,u.DeptID
    ,u.DeptName
    ,[DeptLevel1ID]
    ,[DeptLevel1Name]
    ,[DeptLevel2ID]
    ,[DeptLevel2Name]
    ,sw.DepartmentID UnitID
    ,u.UnitName
    ,u.UnitFullName
    ,sw.PostID
    ,p.Postname
    ,p.PostPropertyID
    ,dictPostProperty.Value PostProperty
    ,sw.InauguralDate
    ,sw.BeFormalDate
    ,sw.DimissionDate
    ,c.SourceID PositionSystemID
    ,c.SourceName PositionSystemName
    ,sp.ClanID
    ,sp.ClanName
    ,sp.GenusID
    ,sp.GenusName
    ,sp.PositionID
    ,sp.PositionName
    ,scp.GenusID CareerPassID
    ,scp.GenusName CareerPassName
    ,scp.LevelID
    ,scp.LevelName
    ,scp.SubLevelID
    ,scp.SubLevelName
    ,mi.PositionInt MngPositionID
    ,mi.PositionName MngPositionName
    ,mi.LevelInt MngLevelID
    ,mi.LevelName MngLevelName
    ,sw.CadrePropertyLevelID
    ,dictCadreLevel.FName CadrePropertyLevelName
    ,sw.EnableCadrePropertyLevelID
    ,sw.WorkPlace WorkPlaceID
    ,dictWorkPlace.Value WorkPlace
    ,sw.ContractCompanyID
    ,dictContractCompany.Value ContractCompanyName
    ,dictRecruitSource.Value Channel
    ,sw.MobilePhoneNumber
    ,sw.BranchPhoneNumber
    ,sb.ContractEmail Email
    ,sb.HighDegreeID HighDegreeID
    ,dictHighDegree.Value HighDegree
    ,sb.ExigencyMan
    ,sb.ExigencyManPhone
    ,sb.nationalityid
    ,sb.nationality
    FROM #TEMP_StaffWorkInfo sw
    LEFT JOIN sync_unitinfo u ON sw.DepartmentID = u.UnitID
    LEFT JOIN #TEMP_DictionaryItem dictStaffType ON sw.StaffTypeID = dictStaffType.DictionaryItemID AND dictStaffType.DictionaryID = 2
    LEFT JOIN #TEMP_DictionaryItem dictStaffStatus ON sw.Status = dictStaffStatus.DictionaryItemID AND dictStaffStatus.DictionaryID = 3
    LEFT JOIN #TEMP_OA_Base_PublicCode dictStaffProperty ON dictStaffProperty.BusinessTypeID = '1B7D07C3-B038-4846-A28C-0316A5903164' AND dictStaffProperty.FNumber = sw.StaffPropertyID
    LEFT JOIN #TEMP_Post p ON sw.PostID = p.PostID
    LEFT JOIN #TEMP_DictionaryItem dictPostProperty ON p.PostPropertyID = dictPostProperty.DictionaryItemID AND dictPostProperty.DictionaryID = 12
    LEFT JOIN #TEMP_Staff_Position sp ON sw.StaffID = sp.StaffID AND sp.EnableFlag = 1 AND IsCur = 1 AND TypeID = 2
    LEFT JOIN #TEMP_Staff_CareerPass scp ON sw.StaffID = scp.StaffID AND scp.EnableFlag = 1 AND scp.IsCur = 1 AND scp.TypeID = 2
    LEFT JOIN #TEMP_Base_Clan c ON sp.ClanID = c.ClanID
    LEFT JOIN #TEMP_OA_HM_ManagerInfo mi ON sw.StaffID = mi.StaffID AND mi.EnableFlag = 1 AND mi.IsCur = 1
    LEFT JOIN #TEMP_OA_Base_PublicCode dictCadreLevel ON dictCadreLevel.BusinessTypeID = '6D6B4B7B-0565-4A5C-BAA6-E2DEC0F6298B' AND sw.CadrePropertyLevelID = dictCadreLevel.FNumber
    LEFT JOIN #TEMP_DictionaryItem dictWorkPlace ON dictWorkPlace.DictionaryID = 14 AND dictWorkPlace.DictionaryItemID = sw.WorkPlace
    LEFT JOIN #TEMP_DictionaryItem dictContractCompany ON dictContractCompany.DictionaryID = 21 AND dictContractCompany.DictionaryItemID = sw.ContractCompanyID
    LEFT JOIN #TEMP_DictionaryItem dictRecruitSource ON dictRecruitSource.DictionaryID = 4 AND dictRecruitSource.DictionaryItemID = sw.RecruitSourceID
    LEFT JOIN #TEMP_StaffBaseInfo sb ON sw.StaffID = sb.StaffID
    LEFT JOIN #TEMP_DictionaryItem dictHighDegree ON dictHighDegree.DictionaryID = 1 AND dictHighDegree.DictionaryItemID = sb.HighDegreeID

    update Sync_StaffInfo set StaffCode=right('00000000' + cast(staffid as varchar), 8)

    DROP TABLE #TEMP_DictionaryItem
    DROP TABLE #TEMP_OA_Base_PublicCode
    DROP TABLE #TEMP_StaffWorkInfo
    DROP TABLE #TEMP_Post
    DROP TABLE #TEMP_Staff_Position
    DROP TABLE #TEMP_Staff_CareerPass
    DROP TABLE #TEMP_Base_Clan
    DROP TABLE #TEMP_Base_Genus
    DROP TABLE #TEMP_OA_HM_ManagerInfo
    DROP TABLE #TEMP_StaffBaseInfo

    commit tran

    END

  • 相关阅读:
    网络知识: 物理层PHY 和 网络层MAC
    Android lowmemorykiller
    devres in linux driver
    spinlock in linux kernel
    JavaWeb图片URL中文乱码
    Linux 里的 2>&1含义
    python脚本linux上后台执行
    linux之定时任务
    python中if not x: 和 if x is not None: 和 if not x is None的使用和区别
    私钥和公钥的区别和联系
  • 原文地址:https://www.cnblogs.com/zhangyonglvdaomei/p/4312509.html
Copyright © 2011-2022 走看看