trigger ContactToUser on Contact (before update,after update) { 
 | 
    if(StaticParameter.EscapeContactToUser){ 
 | 
        system.debug('StaticParameter.EscapeContactToUser'+StaticParameter.EscapeContactToUser); 
 | 
        return; 
 | 
    } 
 | 
    //add     wangweipeng                  2021/12/23               start 
 | 
    //如果是hr更新了user数据,那么user会更新联系数据,那么把ods的id赋值给联系人 
 | 
    //List<String> userEmployeeNoList = new List<String>(); 
 | 
    if(Trigger.isBefore){ 
 | 
        Id rtId = '01210000000Qtky'; 
 | 
  
 | 
        List<String> contactIdList = new List<String>(); 
 | 
        for (Contact local : Trigger.new) { 
 | 
            Contact old = null; 
 | 
            if (Trigger.isUpdate) { 
 | 
                old = Trigger.oldMap.get(local.Id); 
 | 
            } 
 | 
            /*if (local.RecordTypeId == rtId && local.User__c != null && String.isBlank(local.Employee_No_manual__c) == false 
 | 
                    && (Trigger.isInsert 
 | 
                            || old.User__c != local.User__c 
 | 
                            || old.LastName != local.LastName 
 | 
                            || old.FirstName != local.FirstName 
 | 
                            || old.Notes_File_Name__c != local.Notes_File_Name__c 
 | 
                            || old.Email != local.Email  //メール Email 
 | 
                            || old.MobilePhone != local.MobilePhone  //手机号码 Mobile_Phone__c 
 | 
                            || old.Employee_No_manual__c != local.Employee_No_manual__c  //员工号码 Employee_No__c 
 | 
                            || old.Work_Location_manual__c != local.Work_Location_manual__c  //工作地 Work_Location__c 
 | 
                            || old.Post_picklist__c != local.Post_picklist__c  //职位 post__c 
 | 
                            || old.Job_Category_picklist__c != local.Job_Category_picklist__c  //职种 Job_Category__c 
 | 
                            || old.Hire_date_text__c != local.Hire_date_text__c  //入职日 Hire_date__c 
 | 
                            || old.Gender_text__c != local.Gender_text__c  //性别 Gender__c 
 | 
                            || old.dept__c != local.dept__c  //本部 dept__c 
 | 
                            || old.Pregnant_Rest__c != local.Pregnant_Rest__c // 是否产假 Pregnant_Rest__c 
 | 
                            || old.Stay_or_not__c != local.Stay_or_not__c // 在职/离职 Stay_or_not__c 
 | 
                            || old.Salesdepartment_Text__c != local.Salesdepartment_Text__c // 销售本部 Salesdepartment__c 
 | 
                            || old.Isactive__c != local.Isactive__c//有效/无效 
 | 
                       ) 
 | 
            ) {*/ 
 | 
            //只要IsMEBG__c 字段为true,证明对应的user对象的IsMEBG__c也为true,如果user的IsMEBG__c为true,证明他是被ods更新过的数据 
 | 
            if (local.RecordTypeId == rtId && local.User__c != null && String.isNotBlank(local.Employee_No_manual__c) && local.IsMEBG__c) { 
 | 
                contactIdList.add(local.Employee_No_manual__c.toLowerCase()); 
 | 
                contactIdList.add(local.Employee_No_manual__c.toUpperCase()); 
 | 
                //userEmployeeNoList.add(local.Employee_No_manual__c); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        //以下获取对应的ods数据,然后把ods的id存到联系人上,并且把联系人的id放到ods的对象上 
 | 
        if(contactIdList != null && contactIdList.size() > 0){ 
 | 
            //根据员工编码,获取对应的ods数据,方便我们后期处理 
 | 
            List<ODS__c> odsData = [select id,name,Employee_No__c from ODS__c where Employee_No__c in :contactIdList]; 
 | 
            if(odsData != null && odsData.size() > 0){ 
 | 
                for (Contact local : Trigger.new) { 
 | 
                    if (local.RecordTypeId == rtId && local.User__c != null && String.isNotBlank(local.Employee_No_manual__c) && local.IsMEBG__c) { 
 | 
                        for(ODS__c ods : odsData){ 
 | 
                            //如果ods和联系人的员工编码相同,那么相互保存id 
 | 
                            if(local.Employee_No_manual__c == ods.Employee_No__c.toLowerCase()  
 | 
                                || local.Employee_No_manual__c == ods.Employee_No__c.toUpperCase()){ 
 | 
                                local.ODS__c = ods.Id;//报ods的id放到联系人对象里面 
 | 
                                ods.Contact__c = local.Id;//把联系人id放到ods的对象里面 
 | 
                            } 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
                update odsData; 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
    /*if (userEmployeeNoList.size() > 0) { 
 | 
        ControllerUtil.updateFutureUserByContact(userEmployeeNoList); 
 | 
    }*/ 
 | 
    //add     wangweipeng                  2021/12/23               end 
 | 
} 
 |