trigger ContactToUser on Contact (before update,after update) {
|
if((!Test.isRunningTest())&&System.Label.ByPassTrigger.contains(UserInfo.getUserId())){
|
return;
|
}
|
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 = System.Label.contactToUser; //niwu -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
|
}
|