binxie
2024-01-18 0e0dd1e20e7211f3c3c11d77a41090d998dfd06c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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
}