force-app/main/default/classes/ContactTriggerHandler.cls | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
force-app/main/default/classes/NFM624Rest.cls | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
force-app/main/default/classes/ContactTriggerHandler.cls
@@ -172,7 +172,7 @@ }else{ //Add By Li Jun for sync agency contact to aws 20220424 start if(!Test.isRunningTest()){ SyncAccountContactToAWS.assignOnceOneMinuteLater(); SyncAccountContactToAWS.assignOnceOneMinuteLater(aclist); } //Add By Li Jun for sync agency contact to aws 20220424 end } @@ -255,7 +255,7 @@ // 手机号去重及规则验证 及新增客户人员重名验证 public void mobileNumberVerification(){ Pattern pattern = Pattern.compile('^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$'); // Pattern pattern = Pattern.compile('^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$'); Map<String, Map<String,Contact>> accountContactMap = new Map<String, Map<String,Contact>>(); Set<Id> accountIdSet = new Set<Id>(); //用户对象上找对应的联系人 @@ -293,18 +293,20 @@ // 手机号有值并且联系人有效,联系人的客户有效,进行手机号码验证 if (('有效'.equals(contactnew.Isactive__c) || '有効'.equals(contactnew.Isactive__c)) && ('有効'.equals(accMap.get(contactnew.AccountId)) || '有效'.equals(accMap.get(contactnew.AccountId)))) { // 经销商客户人员不进行手机号校验 thh 20220517 start if(AgencyRecordTypeId.equals(contactnew.RecordTypeId)){ if(String.isNotBlank(contactnew.MobilePhone)){ Matcher isMobilePhone = pattern.matcher(contactnew.MobilePhone); if (isMobilePhone.matches()) { // Matcher isMobilePhone = pattern.matcher(contactnew.MobilePhone); // if (isMobilePhone.matches()) { contactnew.UniqueNumber__c = contactnew.MobilePhone; } else { // } else { // 手机号唯一字段清空 contactnew.UniqueNumber__c = null; } // contactnew.UniqueNumber__c = null; // } } else { contactnew.UniqueNumber__c = null; } // 经销商客户人员不进行手机号校验 thh 20220517 end } else if(DoctorRecordTypeId.equals(contactnew.RecordTypeId)){ if(String.isNotBlank(contactnew.MobilePhone_Encrypted__c)){ contactnew.UniqueNumber__c = contactnew.MobilePhone_Encrypted__c; @@ -322,15 +324,17 @@ if (accountIdSet.size() > 0) { List<Contact> contactList = [SELECT Id,AccountId,FullName__c,LastName,FirstName,Account.Name,CManageCode__c,IsFromSPO__c, LastName_Encrypted__c// 20220314 PI改造 by Bright , MobilePhone_Encrypted__c // 通过姓名+手机号判断人员是否重复 thh 20220518 FROM Contact WHERE IsFromSPO__c = false AND AccountId IN:accountIdSet]; if ( contactList.size() > 0) { for(Contact contact :contactList){ String lastNameStr = String.isNotBlank(contact.LastName) ? contact.LastName:''; String firstNameStr = String.isNotBlank(contact.FirstName) ? contact.FirstName:''; String contactFullName = lastNameStr + firstNameStr; contactFullName = contact.LastName_Encrypted__c;// 20220314 PI改造 by Bright // 通过姓名+手机号判断人员是否重复 thh 20220518 start // String lastNameStr = String.isNotBlank(contact.LastName) ? contact.LastName:''; // String firstNameStr = String.isNotBlank(contact.FirstName) ? contact.FirstName:''; // String contactFullName = lastNameStr + firstNameStr + MobilePhoneStr; String contactFullName = contact.LastName_Encrypted__c + contact.MobilePhone_Encrypted__c;// 20220314 PI改造 by Bright // 通过姓名+手机号判断人员是否重复 thh 20220518 end if(string.isBlank(contactFullName)){ continue; } @@ -353,10 +357,12 @@ if (accountContactMap.containsKey(accountId)) { Map<String,Contact> contactFullNameMap = accountContactMap.get(accountId); String lastNameStr = String.isNotBlank(contactnew.LastName) ? contactnew.LastName:''; String firstNameStr = String.isNotBlank(contactnew.FirstName) ? contactnew.FirstName:''; String contactFullName = lastNameStr + firstNameStr; contactFullName = contactnew.LastName_Encrypted__c;// 20220314 PI改造 by Bright // 通过姓名+手机号判断人员是否重复 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; force-app/main/default/classes/NFM624Rest.cls
@@ -101,7 +101,6 @@ } global static void main(String rowData_Id) { // Map<String,String> RecordTypeMap = new Map<String,String>(); // RecordTypeMap.put('','') //List<RecordType> rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName IN ('Department_OTH','Department_GI', 'Department_BF','Department_GYN','Department_GS','Department_URO','Department_ENT','Department_Class_ET') order by DeveloperName desc]; @@ -222,6 +221,7 @@ List < Contact > peopleList = [select Id, Account.Name, Department__c, UnifiedI_Contact_ID__c, Account.parent.Name, Account.PlatformCode__c, Account.Management_Code__c, @@ -230,7 +230,10 @@ Account.Parent_Management_Code__c, Account.Parent_PlatformCode__c, CManageCode__c, AccountId AccountId, // 通过姓名+手机号判断人员是否重复 thh 20220518 start MobilePhone_Encrypted__c // 通过姓名+手机号判断人员是否重复 thh 20220518 end from Contact where CManageCode__c IN: PersonManagementCodeList OR (Account.Parent_PlatformCode__c IN: ManagementList AND LastName_Encrypted__c IN:NameList) @@ -249,7 +252,9 @@ } snameMap.put(namekey, ct); snameMap.put(nameKey2,ct); snameMap.put(ct.LastName_Encrypted__c.trim(), ct); // 通过姓名+手机号判断人员是否重复 thh 20220518 start snameMap.put(ct.LastName_Encrypted__c.trim() + ct.MobilePhone_Encrypted__c.trim(), ct); // 通过姓名+手机号判断人员是否重复 thh 20220518 end nameMap.put(ct.Account.parent.Name, snameMap); system.debug('snameMap'+snameMap); } @@ -396,11 +401,14 @@ Map < String, Contact > sMap = nameMap.get(DepartmentClasskey); System.debug('sMap'+sMap); System.debug('sMap.containsKey(namekey)'+sMap.containsKey(namekey)); if (sMap.containsKey(namekey)) { System.debug('sMap.containsKey(gedata.NameEncrypted)'+sMap.containsKey(gedata.NameEncrypted)); if (sMap.containsKey(namekey) && sMap.get(namekey).UnifiedI_Contact_ID__c == null) { system.debug('Id赋值'+sMap); ct.id = sMap.get(namekey).id; } else if(sMap.containsKey(gedata.NameEncrypted)){ ct.id = sMap.get(gedata.NameEncrypted).id; // 通过姓名+手机号判断人员是否重复 thh 20220518 start } else if(sMap.containsKey(gedata.NameEncrypted + gedata.MobileEncrypted) && sMap.get(gedata.NameEncrypted + gedata.MobileEncrypted).UnifiedI_Contact_ID__c == null){ ct.id = sMap.get(gedata.NameEncrypted + gedata.MobileEncrypted).id; // 通过姓名+手机号判断人员是否重复 thh 20220518 end }else { // 7 完成 system.debug('7逻辑 无人员管理编码 有医院 有科室 人名查找无 动作:新建联系人 '); } @@ -443,7 +451,7 @@ Map < String, Contact > sMap = nameMap.get(DepartmentClasskey); system.debug('namekey'+namekey); system.debug('sMap.containsKey(namekey)'+sMap.containsKey(namekey)); if (sMap.containsKey(namekey)) { //查找存在 8 完成 if (sMap.containsKey(namekey) && sMap.get(namekey).UnifiedI_Contact_ID__c == null) { //查找存在 8 完成 system.debug('8逻辑'); system.debug('该联系人存在'); ct.id = sMap.get(namekey).id; @@ -452,11 +460,14 @@ // if(sMap.containsKey(gedata.Name)){ // ct.Id = sMap.get(gedata.Name).Id; // } }else if(sMap.containsKey(gedata.NameEncrypted)){ // 通过姓名+手机号判断人员是否重复 thh 20220518 start }else if(sMap.containsKey(gedata.NameEncrypted + gedata.MobileEncrypted) && sMap.get(gedata.NameEncrypted + gedata.MobileEncrypted).UnifiedI_Contact_ID__c == null){ system.debug('1234567890'); ct.Id = sMap.get(gedata.NameEncrypted).Id; ct.Id = sMap.get(gedata.NameEncrypted + gedata.MobileEncrypted).Id; //upsertAccountList.add(dpt); upsertContactList.add(ct); } // 通过姓名+手机号判断人员是否重复 thh 20220518 end system.debug('contactMap ' + contactMap); System.debug('9逻辑'); contactMap.put(Gedata.DepartmentManagementCode2, ct); @@ -650,12 +661,17 @@ //List<String> contactIdList = new List<String>(); for (Inquiry_form__c inquiryInfo : inquiryList) { //contactIdList.add(inquiryInfo.ContactId__c); inquiryMap.put(inquiryInfo.ContactId__c, inquiryInfo.Id); // map的k-v改造 thh 20220517 start inquiryMap.put(inquiryInfo.Id, inquiryInfo.ContactId__c); // map的k-v改造 thh 20220517 end } if (contactList.size() >0 ) { for (Contact contactInfo : contactList) { // map的k-v改造 thh 20220517 start if (contactList.size() >0 && inquiryMap.size() > 0) { for(String Id : inquiryMap.keySet()){ Inquiry_form__c inquiry = new Inquiry_form__c(); inquiry.Id = inquiryMap.get(contactInfo.UnifiedI_Contact_ID__c); //ID for (Contact contactInfo : contactList) { if(inquiryMap.get(Id) == contactInfo.UnifiedI_Contact_ID__c){ inquiry.Id = Id; //ID inquiry.Hospital_Name__c = contactInfo.Account.Id; //科室名 inquiry.Department_Class__c = contactInfo.Strategic_dept_Class__c; //战略科室分类 inquiry.Contact_Name__c = contactInfo.Id; //客户姓名 @@ -663,6 +679,9 @@ inquiryFormList.add(inquiry); } } } } // map的k-v改造 thh 20220517 end system.debug('inquiryFormList=========>'+inquiryFormList); if(inquiryFormList.size()>0){ update inquiryFormList;