trigger UserToContact on User (before insert, before update, after insert, after update) { 
 | 
    if(StaticParameter.EscapeContactToUser){ 
 | 
        system.debug('StaticParameter.EscapeContactToUser'+StaticParameter.EscapeContactToUser); 
 | 
        return; 
 | 
    } 
 | 
    List<String> userEmployeeNoList = new List<String>(); 
 | 
    List<String> userInterfaceList = new List<String>(); 
 | 
    List<String> noList = new List<String>(); 
 | 
    List<String> noToInterfaceList = new List<String>(); 
 | 
    User old = null; 
 | 
    for (User local : Trigger.New) { 
 | 
        if (Trigger.isUpdate) { 
 | 
            old = Trigger.oldMap.get(local.Id); 
 | 
        } 
 | 
        if (String.isNotBlank(local.Employee_No__c)   
 | 
                            && ( Trigger.isInsert  
 | 
                            || old.Test_staff__c != local.Test_staff__c 
 | 
                            || old.IsActive != local.IsActive 
 | 
                            || old.LastName != local.LastName 
 | 
                            || old.FirstName != local.FirstName 
 | 
                            || old.Notes_File_Name__c != local.Notes_File_Name__c //NOTES用户文件名 
 | 
                            || old.Email != local.Email  //メール Email 
 | 
                            || old.Stay_or_not__c != local.Stay_or_not__c // 在职/离职 Stay_or_not__c 
 | 
                            || old.Employee_No__c != local.Employee_No__c  //员工号码 Employee_No_manual__c 
 | 
                            || old.Job_Category__c != local.Job_Category__c  //职种 Job_Category_picklist__c 
 | 
                            || old.ZongjianApprovalManager__c != local.ZongjianApprovalManager__c  //总监 ZongjianApprovalManager__c 
 | 
                            || old.Hire_Date__c != local.Hire_Date__c  //入职日 Hire_date_text__c 
 | 
                            || old.OnlinePlatformBuchang__c != local.OnlinePlatformBuchang__c  //部长 OnlinePlatformBuchang__c 
 | 
                            || old.OnlinePlatformManager__c != local.OnlinePlatformManager__c  //经理 OnlinePlatformManager__c 
 | 
                            || old.FederationIdentifier != local.FederationIdentifier //联盟ID FederationIdentifier 
 | 
                            //用户的工作地(人事)改变更新到联系人上 thh 2022-02-17 start 
 | 
                            || old.Work_Location_HR__c != local.Work_Location_HR__c  
 | 
                            //用户的工作地(人事)改变更新到联系人上 thh 2022-02-17 end 
 | 
                            || old.Salesdepartment__c != local.Salesdepartment__c //  销售本部 Saleddepartment_text__c 
 | 
                            || old.Category5__c != local.Category5__c // 部 Category5__c 
 | 
                            || old.Category6__c != local.Category6__c // 课 Category6__c 
 | 
                            || old.Province__c != local.Province__c // 省 Province__c 
 | 
                            || old.Null_Update__c != local.Null_Update__c //ods处理历史数据 
 | 
                            ) 
 | 
                    ) { 
 | 
             
 | 
            if (local.SendToComPlat__c == true && old.SendToComPlat__c == false) { 
 | 
                userInterfaceList.add(local.Employee_No__c.toLowerCase()); 
 | 
                userInterfaceList.add(local.Employee_No__c.toUpperCase()); 
 | 
                // if ( local.Stay_or_not__c != '待入职' && Trigger.isAfter) { 
 | 
                //     noToInterfaceList.add(local.Id); 
 | 
                // } 
 | 
                continue; 
 | 
                 
 | 
            } else { 
 | 
                userEmployeeNoList.add(local.Employee_No__c); 
 | 
                if ( local.Stay_or_not__c != '待入职' && local.ProfileId !=System.Label.ProfileId_2J1 && Trigger.isAfter) { 
 | 
                    noList.add(local.Id); 
 | 
                } 
 | 
                continue; 
 | 
            }  
 | 
  
 | 
        } 
 | 
        if (String.isNotBlank(local.Employee_No__c) && (Trigger.isInsert  
 | 
                            || old.Mobile_Phone__c != local.Mobile_Phone__c  //手机号码2 MobilePhone 
 | 
                            || old.Work_Location__c != local.Work_Location__c  //工作地 Work_Location_manual__c 
 | 
                            //用户的工作地(人事)改变更新到联系人上 thh 2022-02-16 start 
 | 
                            || old.Work_Location_HR__c != local.Work_Location_HR__c  
 | 
                            //用户的工作地(人事)改变更新到联系人上 thh 2022-02-16 end 
 | 
                            || old.Post__c != local.Post__c  //职位 Post_picklist__c 
 | 
                            || old.Gender__c != local.Gender__c  //性别 Gender_text__c 
 | 
                            || old.Pregnant_Rest__c != local.Pregnant_Rest__c // 是否产假 Pregnant_Rest__c 
 | 
                            || old.Dept__c != local.Dept__c  //本部 dept__c 
 | 
                            )  
 | 
                    ) {  
 | 
            userEmployeeNoList.add(local.Employee_No__c.toLowerCase()); 
 | 
            userEmployeeNoList.add(local.Employee_No__c.toUpperCase()); 
 | 
                 
 | 
        } 
 | 
    } 
 | 
  
 | 
    if (Trigger.isAfter && (Trigger.isInsert || Trigger.isUpdate)) { 
 | 
        if (userEmployeeNoList.size() > 0) { 
 | 
            ControllerUtil.upsertFutureContact(userEmployeeNoList);  
 | 
        } 
 | 
        if (userInterfaceList.size() > 0) { 
 | 
            ControllerUtil.upsertFutureContactInterface(userInterfaceList);  
 | 
        }  
 | 
        if (noList.size() > 0) { 
 | 
            NFM621Controller.callout('',  noList); 
 | 
        } 
 | 
        // if (noToInterfaceList.size() > 0) { 
 | 
        //     NFM621Controller.executefuture('',  noToInterfaceList); 
 | 
        // } 
 | 
    } 
 | 
  
 | 
    //add     wangweipeng                  2021/12/23               start 
 | 
    //如果是hr更新了user数据,那么把更新或修改的user Id赋值给hr表上的User__c字段 
 | 
    if (Trigger.isAfter && (Trigger.isInsert || Trigger.isUpdate)) { 
 | 
        List<String> userIdList = new List<String>(); 
 | 
        Map<String,Id> userIdMap = new Map<String,Id>(); 
 | 
        for (User newu : Trigger.New) { 
 | 
            User oldu = null; 
 | 
            if (Trigger.isUpdate) { 
 | 
                oldu = Trigger.oldMap.get(newu.Id); 
 | 
            } 
 | 
            //以下是ods更新user表的字段 
 | 
            if(String.isNotBlank(newu.Employee_No__c) 
 | 
                && newu.IsMEBG__c == true 
 | 
                && (Trigger.isInsert   
 | 
                    || oldu.Group_sales_dept__c != newu.Group_sales_dept__c//统括本部 
 | 
                    || oldu.Dept__c != newu.Dept__c//本部 
 | 
                    || oldu.Category5__c != newu.Category5__c//部 
 | 
                    || oldu.Category6__c != newu.Category6__c//课 
 | 
                    || oldu.Employee_No__c != newu.Employee_No__c//员工编码 
 | 
                    || oldu.Hire_Date__c != newu.Hire_Date__c//入职日期 
 | 
                    || oldu.Email != newu.Email//电子邮件 
 | 
                    || oldu.Mobile_Phone__c != newu.Mobile_Phone__c//手机号码 
 | 
                    || oldu.Post__c != newu.Post__c//职位 
 | 
                    || oldu.Job_Category__c != newu.Job_Category__c//职种 
 | 
                    //用户的工作地(人事)改变,更新HR信息上的用户字段 thh 2022-02-17 start 
 | 
                    || oldu.Work_Location_HR__c != newu.Work_Location_HR__c  
 | 
                    //用户的工作地(人事)改变,更新HR信息上的用户字段 thh 2022-02-17 end 
 | 
                    || oldu.Product_specialist_incharge_product__c != newu.Product_specialist_incharge_product__c//负责产品(主) 
 | 
                    || oldu.Sales_Speciality__c != newu.Sales_Speciality__c//销售工作内容 
 | 
                    || oldu.Work_Location__c != newu.Work_Location__c//工作地 
 | 
                    || oldu.Stay_or_not__c != newu.Stay_or_not__c//在职/已离职 
 | 
                    || oldu.QuitDate__c != newu.QuitDate__c//离职日期 
 | 
                    || oldu.Alias != newu.Alias //别名 
 | 
                    || oldu.Null_Update__c != newu.Null_Update__c //ods处理历史数据 
 | 
                    ) 
 | 
                ) 
 | 
            { 
 | 
                //员工编码小写 
 | 
                userIdList.add(newu.Employee_No__c.toLowerCase()); 
 | 
                userIdMap.put(newu.Employee_No__c.toLowerCase(), newu.Id); 
 | 
                //员工编码大写 
 | 
                userIdList.add(newu.Employee_No__c.toUpperCase()); 
 | 
                userIdMap.put(newu.Employee_No__c.toUpperCase(), newu.Id); 
 | 
            } 
 | 
        } 
 | 
        if(userIdList != null && userIdList.size() > 0){ 
 | 
            ControllerUtil.updateFutureOds(userIdList,userIdMap); 
 | 
        } 
 | 
    } 
 | 
    //add     wangweipeng                  2021/12/23               start 
 | 
     
 | 
    /* 2018-12-10 CHAN-B6W86D 根据简档进行权限设置 start */ 
 | 
    UserProfileHandler handler = new UserProfileHandler(); 
 | 
    handler.run(); 
 | 
    /* 2018-12-10 CHAN-B6W86D 根据简档进行权限设置 end*/ 
 | 
    Integer i = 0; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
        i++; 
 | 
} 
 |