涂煌豪
2022-05-23 78ac43791ac9e9d75ce4c33e9dddbdffa88fec2f
force-app/main/default/classes/ContactTriggerHandler.cls
@@ -315,9 +315,9 @@
                    }
                }
            }
            if (Trigger.isInsert) {
                accountIdSet.add(contactnew.AccountId);
            }
            // if (Trigger.isInsert) {
            accountIdSet.add(contactnew.AccountId);
            // }
        }
        //手机号唯一校验-医院下新建客户人员校验使用加密手机号,经销商使用普通手机号 thh 20220328 end
        // 新增联系人时,
@@ -349,32 +349,37 @@
            }
        }
        for (Contact contactnew: newList) {
            if (Trigger.isInsert) {
                String accountId = String.valueOf(contactnew.AccountId).substring(0, 15);
        for (Contact contactnew: newList) {
            String accountId = String.valueOf(contactnew.AccountId).substring(0, 15);
                if (accountContactMap.containsKey(accountId)) {
                    Map<String,Contact> contactFullNameMap =  accountContactMap.get(accountId);
                    // 通过姓名+手机号判断人员是否重复 thh 20220518 start
                    // String lastNameStr = String.isNotBlank(contactnew.LastName) ? contactnew.LastName:'';
                    // String firstNameStr = String.isNotBlank(contactnew.FirstName) ? contactnew.FirstName:'';
                    // String contactFullName = lastNameStr + firstNameStr + MobilePhoneStr;
                    String contactFullName = contactnew.LastName_Encrypted__c + contactnew.MobilePhone_Encrypted__c;// 20220314 PI改造 by Bright
                    // 通过姓名+手机号判断人员是否重复 thh 20220518 end
                    if (contactFullNameMap.containsKey(contactFullName)) {
                        String accountName = contactFullNameMap.get(contactFullName).Account.Name;
                        String cManageCode = contactFullNameMap.get(contactFullName).CManageCode__c;
                        // 跳过测试程序 和 SPO通过203接口创建的联系人
                        if (!(Test.isRunningTest() || contactnew.IsFromSPO__c)) {
            if (accountContactMap.containsKey(accountId)) {
                Map<String,Contact> contactFullNameMap =  accountContactMap.get(accountId);
                // 通过姓名+手机号判断人员是否重复 thh 20220518 start
                // String lastNameStr = String.isNotBlank(contactnew.LastName) ? contactnew.LastName:'';
                // String firstNameStr = String.isNotBlank(contactnew.FirstName) ? contactnew.FirstName:'';
                // String contactFullName = lastNameStr + firstNameStr + MobilePhoneStr;
                String contactFullName = contactnew.LastName_Encrypted__c + contactnew.MobilePhone_Encrypted__c;// 20220314 PI改造 by Bright
                // 通过姓名+手机号判断人员是否重复 thh 20220518 end
                if (contactFullNameMap.containsKey(contactFullName)) {
                    String accountName = contactFullNameMap.get(contactFullName).Account.Name;
                    String cManageCode = contactFullNameMap.get(contactFullName).CManageCode__c;
                    // 跳过测试程序 和 SPO通过203接口创建的联系人
                    if (!(Test.isRunningTest() || contactnew.IsFromSPO__c)) {
                        if(Trigger.isInsert) {
                            contactnew.LastName.addError('客户 [ '+accountName+ ' ],已存在相同名字的联系人 人员管理编码 ['+cManageCode+' ] ,不能重复创建,请了解');     
                        }
                    }
                        }
                        // 客户人员删除手机号时,进行判断是否存在同名且手机号为空的客户人员 thh 20220523 start
                        if(Trigger.isUpdate && !UserInfo.getUserId().equals(System.Label.interfaceUserID)) {
                            if (String.isBlank(contactnew.MobilePhone_Encrypted__c)){
                                contactnew.LastName.addError('相同名字的联系人 人员管理编码 ['+cManageCode+' ] 手机号为空已经存在,不能重复创建,请了解');
                            } else{
                                contactnew.LastName.addError('客户 [ '+accountName+ ' ],已存在相同名字的联系人 人员管理编码 ['+cManageCode+' ] ,不能重复创建,请了解');
                            }
                        }
                        // 客户人员删除手机号时,进行判断是否存在同名且手机号为空的客户人员 thh 20220523 end
                    }
                }
            }
            }
        }
    }
    public static Map<Id,Id> NFM606_IdMap = new Map<Id,Id>();