From 34930270dfb667089047eda39473ff23ac24e060 Mon Sep 17 00:00:00 2001
From: 涂煌豪 <tuhuanghao@prec-tech.com>
Date: 星期六, 02 四月 2022 14:38:45 +0800
Subject: [PATCH] ContactTriggerHandler上线
---
force-app/main/default/classes/ContactTriggerHandlerTest.cls | 48 +++++
force-app/main/default/classes/ContactTriggerHandler.cls | 378 ++++++++++++++++++++++++++++++++++++----------
2 files changed, 339 insertions(+), 87 deletions(-)
diff --git a/force-app/main/default/classes/ContactTriggerHandler.cls b/force-app/main/default/classes/ContactTriggerHandler.cls
index f153682..3885c2c 100644
--- a/force-app/main/default/classes/ContactTriggerHandler.cls
+++ b/force-app/main/default/classes/ContactTriggerHandler.cls
@@ -2,32 +2,39 @@
* Select Id From Contact Where RecordTypeId = '01210000000QfWdAAK' and Strategic_dept_Class__c != null
*/
public without sharing class ContactTriggerHandler extends Oly_TriggerHandler {
- private Map<Id, Contact> newMap;
- private Map<Id, Contact> oldMap;
- private List<Contact> newList;
- private List<Contact> oldList;
+ private Map < Id, Contact > newMap;
+ private Map < Id, Contact > oldMap;
+ private List < Contact > newList;
+ private List < Contact > oldList;
public ContactTriggerHandler() {
- this.newMap = (Map<Id, Contact>) Trigger.newMap;
- this.oldMap = (Map<Id, Contact>) Trigger.oldMap;
- this.newList = (List<Contact>) Trigger.new;
- this.oldList = (List<Contact>) Trigger.old;
+ this.newMap = (Map < Id, Contact > ) Trigger.newMap;
+ this.oldMap = (Map < Id, Contact > ) Trigger.oldMap;
+ this.newList = (List < Contact > ) Trigger.new;
+ this.oldList = (List < Contact > ) Trigger.old;
+ }
+ protected override void beforeInsert() {
+ if(Test.isRunningTest()||UserInfo.getUserId()!=System.Label.ByPassTrigger){ //Add by Li Jun for PIPL 20220331
+ mobileNumberVerification();
+ }
}
protected override void afterInsert() {
syncToAgencyContact();
updateDealerNum();
+ sendToComPlat();
}
protected override void afterUpdate() {
syncToAgencyContact();
updateDealerNum();
-
+ sendToComPlat();
}
+
protected override void beforeUpdate() {
// 鏈嶅姟鎶�甯� 2018/12/24 Start
UpdateProcessingWork();
// 鏈嶅姟鎶�甯� 2018/12/24 end
-
+ mobileNumberVerification();
}
@@ -43,63 +50,63 @@
* 鏍规嵁鏈嶅姟鎶�甯堝~鍐欐儏鍐垫洿鏂板鎴蜂汉鍛樹笂鐨勫紑灞曞伐浣滃瓧娈�
*/
private void UpdateProcessingWork() {
- for ( Contact temContact : newList) {
+ for (Contact temContact: newList) {
if (System.label.UpdateServiceHistory.equals('true')) {
string ProcessingWork = '';
string ProcessingWorkWithoutNumber = '';
if (temContact.ServiceBookInput__c != 0) {
ProcessingWork += '缁翠慨濮旀墭涔﹀~鍐�' + temContact.ServiceBookInput__c + '娆�';
- ProcessingWorkWithoutNumber += '缁翠慨濮旀墭涔﹀~鍐�';
+ ProcessingWorkWithoutNumber += '缁翠慨濮旀墭涔﹀~鍐�';
}
if (temContact.InspectTime__c != 0) {
if (String.isBlank(ProcessingWork)) {
ProcessingWork += '鐐规' + temContact.InspectTime__c + '娆�';
- ProcessingWorkWithoutNumber += '鐐规';
+ ProcessingWorkWithoutNumber += '鐐规';
} else {
ProcessingWork += '锛岀偣妫�' + temContact.InspectTime__c + '娆�';
- ProcessingWorkWithoutNumber += '锛岀偣妫�';
+ ProcessingWorkWithoutNumber += '锛岀偣妫�';
}
}
if (temContact.InspectEquipmentTime__c != 0) {
if (String.isBlank(ProcessingWork)) {
ProcessingWork += '鐐规璁惧' + temContact.InspectEquipmentTime__c + '涓�';
- ProcessingWorkWithoutNumber += '鐐规璁惧';
+ ProcessingWorkWithoutNumber += '鐐规璁惧';
} else {
ProcessingWork += '锛岀偣妫�璁惧' + temContact.InspectEquipmentTime__c + '涓�';
- ProcessingWorkWithoutNumber += '锛岀偣妫�璁惧';
+ ProcessingWorkWithoutNumber += '锛岀偣妫�璁惧';
}
}
if (temContact.VisitTime__c != 0) {
if (String.isBlank(ProcessingWork)) {
ProcessingWork += '涓婇棬' + temContact.VisitTime__c + '娆�';
- ProcessingWorkWithoutNumber += '涓婇棬';
+ ProcessingWorkWithoutNumber += '涓婇棬';
} else {
ProcessingWork += '锛屼笂闂�' + temContact.VisitTime__c + '娆�';
- ProcessingWorkWithoutNumber += '锛屼笂闂�';
+ ProcessingWorkWithoutNumber += '锛屼笂闂�';
}
}
if (temContact.pollingTime__c != 0) {
if (String.isBlank(ProcessingWork)) {
ProcessingWork += '宸℃' + temContact.pollingTime__c + '娆�';
- ProcessingWorkWithoutNumber += '宸℃';
+ ProcessingWorkWithoutNumber += '宸℃';
} else {
ProcessingWork += '锛屽贰妫�' + temContact.pollingTime__c + '娆�';
- ProcessingWorkWithoutNumber += '锛屽贰妫�';
+ ProcessingWorkWithoutNumber += '锛屽贰妫�';
}
}
if (temContact.TeachingTime__c != 0) {
if (String.isBlank(ProcessingWork)) {
ProcessingWork += '鍩硅娆℃暟' + temContact.TeachingTime__c + '娆�';
- ProcessingWorkWithoutNumber += '鍩硅娆℃暟';
+ ProcessingWorkWithoutNumber += '鍩硅娆℃暟';
} else {
ProcessingWork += '锛屽煿璁鏁�' + temContact.TeachingTime__c + '娆�';
- ProcessingWorkWithoutNumber += '锛屽煿璁鏁�';
+ ProcessingWorkWithoutNumber += '锛屽煿璁鏁�';
}
}
//if (!String.isBlank(ProcessingWork)) {
@@ -116,31 +123,24 @@
}
// 鏈嶅姟鎶�甯� 2018/12/24 end
private void syncToAgencyContact() {
- Map<Id, Agency_Contact__c> targetContactMap = new Map<Id, Agency_Contact__c>();
- for (Contact nObj : newList) {
- if (nObj.RecordTypeId == '01210000000QfWdAAK' // Doctor
- && String.isBlank(nObj.Strategic_dept_Class__c) == false
- ) {
- if (Trigger.isInsert
- || (Trigger.isUpdate
- // && (
- // oldMap.get(nObj.Id).LastName != nObj.LastName
- // || oldMap.get(nObj.Id).FirstName != nObj.FirstName
- // || oldMap.get(nObj.Id).Strategic_dept_Class__c != nObj.Strategic_dept_Class__c
- // || oldMap.get(nObj.Id).Type__c != nObj.Type__c
- // || oldMap.get(nObj.Id).Doctor_Division1__c != nObj.Doctor_Division1__c
- // )
- )
- ) {
- Agency_Contact__c acObj = new Agency_Contact__c(Agency_ID__c = '000000000000000'
- , Contact__c = nObj.Id
- , ContactId18__c = nObj.Id
- , Agency_Hospital__c = null
- , Name = nObj.LastName + ((String.isBlank(nObj.FirstName) == false) ? ' ' + nObj.FirstName : '')
- , Department_Class__c = nObj.Strategic_dept_Class__c
- , Type__c = nObj.Type__c
- , Doctor_Division1__c = nObj.Doctor_Division1__c
- );
+ Map < Id, Agency_Contact__c > targetContactMap = new Map < Id, Agency_Contact__c > ();
+ for (Contact nObj: newList) {
+ if (nObj.RecordTypeId == '01210000000QfWdAAK' // Doctor
+ &&
+ String.isBlank(nObj.Strategic_dept_Class__c) == false
+ ) {
+ if (Trigger.isInsert ||
+ (Trigger.isUpdate
+ // && (
+ // oldMap.get(nObj.Id).LastName != nObj.LastName
+ // || oldMap.get(nObj.Id).FirstName != nObj.FirstName
+ // || oldMap.get(nObj.Id).Strategic_dept_Class__c != nObj.Strategic_dept_Class__c
+ // || oldMap.get(nObj.Id).Type__c != nObj.Type__c
+ // || oldMap.get(nObj.Id).Doctor_Division1__c != nObj.Doctor_Division1__c
+ // )
+ )
+ ) {
+ Agency_Contact__c acObj = new Agency_Contact__c(Agency_ID__c = '000000000000000', Contact__c = nObj.Id, ContactId18__c = nObj.Id, Agency_Hospital__c = null, Name = nObj.LastName + ((String.isBlank(nObj.FirstName) == false) ? ' ' + nObj.FirstName : ''), Department_Class__c = nObj.Strategic_dept_Class__c, Type__c = nObj.Type__c, Doctor_Division1__c = nObj.Doctor_Division1__c);
targetContactMap.put(nObj.Id, acObj);
}
}
@@ -151,13 +151,14 @@
}
private void syncToAgencyContactDelete() {
- List<Id> cIdList = new List<Id>();
- for (Contact oObj : oldList) {
+ List < Id > cIdList = new List < Id > ();
+ for (Contact oObj: oldList) {
cIdList.add(oObj.Id);
}
if (cIdList.size() > 0) {
- List<Agency_Contact__c> acList = [Select Id From Agency_Contact__c
- Where Contact__c = :null and Agency_ID__c = '000000000000000'];
+ List < Agency_Contact__c > acList = [Select Id From Agency_Contact__c
+ Where Contact__c =: null and Agency_ID__c = '000000000000000'
+ ];
if (acList.size() > 0) {
delete acList;
}
@@ -165,45 +166,47 @@
}
//鏇存柊缁忛攢鍟嗙敤鎴蜂汉鏁板瓧娈� 绮剧悽鎶�鏈� pk 2021-08-26 start
- private void updateDealerNum(){
- Set<Id> accountSet = new Set<Id>();
- Map<Id,Account> acMap = new Map<Id,Account>();
- if(Trigger.isUpdate){
- for(Contact contactnew : newList){
- if(contactnew.Agency_User__c != oldMap.get(contactnew.Id).Agency_User__c || (System.Label.onlyUpdate == '1' && UserInfo.getUserId() == '00510000005sEEMAA2')){
- accountSet.add(contactnew.AccountId);
- }
- }
- }
-
- if(Trigger.isInsert){
- for(Contact contactnew : newList){
- if(contactnew.Agency_User__c){
- accountSet.add(contactnew.AccountId);
- }
+ private void updateDealerNum() {
+ Set < Id > accountSet = new Set < Id > ();
+ Map < Id, Account > acMap = new Map < Id, Account > ();
+ if (Trigger.isUpdate) {
+ for (Contact contactnew: newList) {
+ if (contactnew.Agency_User__c != oldMap.get(contactnew.Id).Agency_User__c || (System.Label.onlyUpdate == '1' && UserInfo.getUserId() == '00510000005sEEMAA2')) {
+ accountSet.add(contactnew.AccountId);
}
}
-
-
- if(Trigger.isDelete){
- for(Contact contactold : oldList){
- if(contactold.Agency_User__c){
+ }
+
+ if (Trigger.isInsert) {
+ for (Contact contactnew: newList) {
+ if (contactnew.Agency_User__c) {
+ accountSet.add(contactnew.AccountId);
+ }
+ }
+ }
+
+
+ if (Trigger.isDelete) {
+ for (Contact contactold: oldList) {
+ if (contactold.Agency_User__c) {
accountSet.add(contactold.AccountId);
}
}
}
-
- if(accountSet.size()>0){
- List<AggregateResult> contactList = [select count(id) ctn ,AccountId accid from Contact where Agency_User__c = true and AccountId = :accountSet and RecordTypeId = '01210000000QfWi' group by AccountId];
- for(AggregateResult ar : contactList){
- String accid = (String)ar.get('accid');
+
+ if (accountSet.size() > 0) {
+ List < AggregateResult > contactList = [select count(id) ctn, AccountId accid from Contact where Agency_User__c = true and AccountId =: accountSet and RecordTypeId = '01210000000QfWi'
+ group by AccountId
+ ];
+ for (AggregateResult ar: contactList) {
+ String accid = (String) ar.get('accid');
Account account = new Account();
account.id = accid;
- account.Dealer_Num__c = (Integer)ar.get('ctn');
+ account.Dealer_Num__c = (Integer) ar.get('ctn');
acMap.put(accid, account);
}
- for (Id accountId : accountSet) {
+ for (Id accountId: accountSet) {
if (!acMap.containsKey(accountId)) {
Account account = new Account();
account.id = accountId;
@@ -211,13 +214,222 @@
acMap.put(accountId, account);
}
}
-
- if(acMap.size() > 0){
- update acMap.values();
+
+ if (acMap.size() > 0) {
+ update acMap.values();
}
}
}
- //鏇存柊缁忛攢鍟嗙敤鎴蜂汉鏁板瓧娈� 绮剧悽鎶�鏈� pk 2021-08-26 end
+ //鏇存柊缁忛攢鍟嗙敤鎴蜂汉鏁板瓧娈� 绮剧悽鎶�鏈� pk 2021-08-26 end
+
+ // 鎵嬫満鍙峰幓閲嶅強瑙勫垯楠岃瘉 鍙婃柊澧炲鎴蜂汉鍛橀噸鍚嶉獙璇�
+ 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}$');
+ Map<String, Map<String,Contact>> accountContactMap = new Map<String, Map<String,Contact>>();
+ Set<Id> accountIdSet = new Set<Id>();
+ //鐢ㄦ埛瀵硅薄涓婃壘瀵瑰簲鐨勮仈绯讳汉
+ // List<User> userList=[select ID,ContactID from User where ContactID != null];
+ // Map<String,User> userMap= new Map<String,User>();
+ // if (userList.size()>0){
+ // for(User us1: userList){
+ // userMap.put(us1.ContactId, us1);
+ // }
+ // }
+ //鏌ユ壘鑱旂郴浜哄璞′笂瀵瑰簲鐨勬湁鏁堝鎴凤紱鍖婚櫌鐩存帴浣跨敤鏈夋晥/鏃犳晥瀛楁銆佺粡閿�鍟嗕娇鐢ㄦ湁鏁�/鏃犳晥鍏紡瀛楁
+ List<String> accIdList = new List<String>();
+ Map<String,String> accMap= new Map<String,String>();
+ for (Contact contact1: newList) {
+ accIdList.add(contact1.AccountId);
+ }
+ if (accIdList.size()>0){
+ List<Account> accList=[select ID,Is_Active__c,Is_Active_Formula__c from Account where ID in:accIdList];
+ if(accList.size()>0){
+ for(Account acc:accList){
+ if (String.isNotBlank(acc.Is_Active__c)){
+ accMap.put(acc.Id, acc.Is_Active__c);
+ continue;
+ }
+ if (String.isNotBlank(acc.Is_Active_Formula__c)){
+ accMap.put(acc.Id, acc.Is_Active_Formula__c);
+ }
+ }
+ }
+ }
+ //鎵嬫満鍙峰敮涓�鏍¢獙-鍖婚櫌涓嬫柊寤哄鎴蜂汉鍛樻牎楠屼娇鐢ㄥ姞瀵嗘墜鏈哄彿,缁忛攢鍟嗕娇鐢ㄦ櫘閫氭墜鏈哄彿 thh 20220328 start
+ ID DoctorRecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Doctor').getRecordTypeId();
+ ID AgencyRecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId();
+ for (Contact contactnew : newList) {
+ // 鎵嬫満鍙锋湁鍊煎苟涓旇仈绯讳汉鏈夋晥锛岃仈绯讳汉鐨勫鎴锋湁鏁堬紝杩涜鎵嬫満鍙风爜楠岃瘉
+ if (('鏈夋晥'.equals(contactnew.Isactive__c) || '鏈夊姽'.equals(contactnew.Isactive__c))
+ && ('鏈夊姽'.equals(accMap.get(contactnew.AccountId)) || '鏈夋晥'.equals(accMap.get(contactnew.AccountId)))) {
+ if(AgencyRecordTypeId.equals(contactnew.RecordTypeId)){
+ if(String.isNotBlank(contactnew.MobilePhone)){
+ Matcher isMobilePhone = pattern.matcher(contactnew.MobilePhone);
+ if (isMobilePhone.matches()) {
+ contactnew.UniqueNumber__c = contactnew.MobilePhone;
+ } else {
+ // 鎵嬫満鍙峰敮涓�瀛楁娓呯┖
+ contactnew.UniqueNumber__c = null;
+ }
+ } else {
+ contactnew.UniqueNumber__c = null;
+ }
+ } else if(DoctorRecordTypeId.equals(contactnew.RecordTypeId)){
+ if(String.isNotBlank(contactnew.MobilePhone_Encrypted__c)){
+ contactnew.UniqueNumber__c = contactnew.MobilePhone_Encrypted__c;
+ } else {
+ contactnew.UniqueNumber__c = null;
+ }
+ }
+ }
+ if (Trigger.isInsert) {
+ accountIdSet.add(contactnew.AccountId);
+ }
+ }
+ //鎵嬫満鍙峰敮涓�鏍¢獙-鍖婚櫌涓嬫柊寤哄鎴蜂汉鍛樻牎楠屼娇鐢ㄥ姞瀵嗘墜鏈哄彿,缁忛攢鍟嗕娇鐢ㄦ櫘閫氭墜鏈哄彿 thh 20220328 end
+ // 鏂板鑱旂郴浜烘椂锛�
+ 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
+ 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
+ if(string.isBlank(contactFullName)){
+ continue;
+ }
+ String accountId = String.valueOf(contact.AccountId).SubString(0,15);
+ Map<String,Contact> contactFullNameMap = new Map<String,Contact>();
+ if (accountContactMap.containsKey(accountId)) {
+ contactFullNameMap = accountContactMap.get(accountId);
+ }
+ contactFullNameMap.put(contactFullName, contact);
+ accountContactMap.put(accountId, contactFullNameMap);
+ }
+ }
+ }
+
+ for (Contact contactnew: newList) {
+
+ if (Trigger.isInsert) {
+
+ String accountId = String.valueOf(contactnew.AccountId).substring(0, 15);
+
+ 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
+ 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)) {
+ contactnew.LastName.addError('瀹㈡埛 [ '+accountName+ ' ],宸插瓨鍦ㄧ浉鍚屽悕瀛楃殑鑱旂郴浜� 浜哄憳绠$悊缂栫爜 ['+cManageCode+' ] 锛屼笉鑳介噸澶嶅垱寤猴紝璇蜂簡瑙�');
+ }
+
+ }
+ }
+
+ }
+ }
+ }
+ public static Map<Id,Id> NFM606_IdMap = new Map<Id,Id>();
+ // 606鎺ュ彛璋冪敤闂淇 thh 20220330 start
+ private void sendToComPlat() {
+ List<Id> contactIdList = new List<Id>();
+ List<String> interfaceUserUpsertContact = new List<String>();
+ for (Contact local: newList) {
+ Contact old = null;
+ if (Trigger.isUpdate) {
+ old = oldMap.get(local.Id);
+ }
+ if (Trigger.isInsert
+ || old.LastName != local.LastName
+ || old.FirstName != local.FirstName
+ || 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.AccountId != local.AccountId//瀹㈡埛浜哄憳鎹㈠鎴�
+ || old.Isactive__c != local.Isactive__c//鐘舵�佸彉鏇�
+ || old.ServicePlatformCode__c != local.ServicePlatformCode__c//鏈嶅姟骞冲彴缂栫爜
+ || old.UnifiedI_Contact_ID__c != local.UnifiedI_Contact_ID__c//鏅烘収鍖荤枟缂栫爜
+ || old.ContactType__c != local.ContactType__c//浜哄憳绫诲瀷
+
+ ) {
+ //鑾峰彇瀹㈡埛浜哄憳鐨勮褰曠被鍨婭D thh 20220330 start
+ ID InternalStaffRecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Internal_staff').getRecordTypeId();
+ ID DoctorRecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Doctor').getRecordTypeId();
+ ID AgencyRecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId();
+ //鑾峰彇瀹㈡埛浜哄憳鐨勮褰曠被鍨婭D thh 20220330 end
+ if (!local.IsFromSPO__c && !InternalStaffRecordTypeId.equals(local.RecordTypeId)) {
+ // 鍖婚櫌 瀹㈡埛浜哄憳 缁熶竴骞冲彴缂栫爜鏈夊�� 鍙戦�� PO
+ if (DoctorRecordTypeId.equals(local.RecordTypeId) && String.isNotBlank(local.UnifiedI_Contact_ID__c)) {
+ if (!NFM606_IdMap.containsKey(local.Id)) {
+ if(UserInfo.getUserId().equals(System.Label.interfaceUserID)){
+ interfaceUserUpsertContact.add(local.Id);
+ } else {
+ contactIdList.add(local.Id);
+ }
+ NFM606_IdMap.put(local.Id, local.Id);
+ }
+ }
+ // 缁忛攢鍟� 瀹㈡埛浜哄憳 鎵嬫満鍙风爜鏈夊�� 鍙戦�� PO
+ if (AgencyRecordTypeId.equals(local.RecordTypeId) && String.isNotBlank(local.MobilePhone)) {
+ if (!NFM606_IdMap.containsKey(local.Id)) {
+ if(UserInfo.getUserId().equals(System.Label.interfaceUserID)){
+ interfaceUserUpsertContact.add(local.Id);
+ } else {
+ contactIdList.add(local.Id);
+ }
+ NFM606_IdMap.put(local.Id, local.Id);
+ }
+ }
+ }
+
+ }
+ }
+ //606鏍囪
+ if(!System.Test.isRunningTest()){
+ // NFM606Controller.executeNotFuture('', contactIdList);
+ if (contactIdList.size() > 0) {
+ // NFM606Controller.callout('', contactIdList);
+ //娣诲姞future 鍒ゆ柇 add for pipl sushanhu 20220317 start
+ // if (!(System.isFuture()||System.isBatch())) {
+ NFM606Controller.callout('', contactIdList);
+ // } else{
+ // NFM606Controller.executeNotFuture('', contactIdList);
+ // }
+ //娣诲姞future 鍒ゆ柇 add for pipl sushanhu 20220317 end
+ }
+ if (interfaceUserUpsertContact.size() > 0) {
+ NFM606Controller.executeNotFuture('', interfaceUserUpsertContact);
+ //娣诲姞future 鍒ゆ柇 add for pipl sushanhu 20220316 start
+ // if (!(System.isFuture()||System.isBatch())) {
+ // NFM606Controller.executeNotFuture('', interfaceUserUpsertContact);
+ // }
+ //娣诲姞future 鍒ゆ柇 add for pipl sushanhu 20220316 end
+ }
+ }
+ }
+ // 606鎺ュ彛璋冪敤闂淇 thh 20220330 end
+
}
\ No newline at end of file
diff --git a/force-app/main/default/classes/ContactTriggerHandlerTest.cls b/force-app/main/default/classes/ContactTriggerHandlerTest.cls
index 91b47b5..0f3665c 100644
--- a/force-app/main/default/classes/ContactTriggerHandlerTest.cls
+++ b/force-app/main/default/classes/ContactTriggerHandlerTest.cls
@@ -7,17 +7,34 @@
public static Contact contact2 = new Contact();
@isTest static void test_method_one() {
+ List<RecordType> HPrectCo = [select Id, Name, DeveloperName from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'];
+ List<RecordType> GIrectCo = [select Id, Name, DeveloperName from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_Class_GI'];
+ List<RecordType> DoctorrectCo = [select Id, Name, DeveloperName from RecordType where IsActive = true and SobjectType = 'Contact' and DeveloperName = 'Doctor'];
+ if (HPrectCo.size() == 0) {
+ throw new ControllerUtil.myException('not found HP recordtype');
+ }
+ if (GIrectCo.size() == 0) {
+ throw new ControllerUtil.myException('not found Department_Class_GI recordtype');
+ }
+ if (DoctorrectCo.size() == 0) {
+ throw new ControllerUtil.myException('not found Doctor recordtype');
+ }
// 鍙栧紩鍏�
account1.Name = 'test1鍖婚櫌';
- account1.RecordTypeId = '01210000000QemG';
+ // account1.RecordTypeId = '01210000000QemG';
+ account1.RecordTypeId = HPrectCo[0].Id;
insert account1;
// 鍙栧紩鍏堣铂浠昏��
contact1.AccountId = account1.Id;
contact1.FirstName = '璨换鑰�';
contact1.LastName = 'test1鍖婚櫌';
- Account dept = [select Id from Account where RecordTypeId = '01210000000QemL'];
+ Account dept = [select Id from Account where RecordTypeId =: GIrectCo[0].Id];
contact1.Strategic_dept_Class__c = dept.Id;
+ contact1.MobilePhone = '13409507069';
+ // contact1.RecordTypeId = '01210000000QfWdAAK';
+ contact1.RecordTypeId = DoctorrectCo[0].Id;
+ contact1.UnifiedI_Contact_ID__c = '100000';
insert contact1;
MeetingManagement__c a =
new MeetingManagement__c(Contact__c =contact1.id
@@ -41,17 +58,40 @@
}
@isTest
static void test_method_two(){
+ List<RecordType> AgencyrectCo1 = [select Id, Name, DeveloperName from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'Agency'];
+ if (AgencyrectCo1.size() == 0) {
+ throw new ControllerUtil.myException('not found AccountAgency recordtype');
+ }
+ List<RecordType> AgencyrectCo2 = [select Id, Name, DeveloperName from RecordType where IsActive = true and SobjectType = 'Contact' and DeveloperName = 'Agency'];
+ if (AgencyrectCo2.size() == 0) {
+ throw new ControllerUtil.myException('not found ContactAgency recordtype');
+ }
account2.Name = 'test2 缁忛攢鍟�';
- account2.RecordTypeId = '01210000000Qem1';
+ // account2.RecordTypeId = '01210000000Qem1';
+ account2.RecordTypeId = AgencyrectCo1[0].Id;
insert account2;
contact2.FirstName = 'test';
contact2.LastName = 'Data';
- contact2.RecordTypeId = '01210000000QfWi';
+ // contact2.RecordTypeId = '01210000000QfWi';
+ contact2.RecordTypeId = AgencyrectCo2[0].Id;
contact2.AccountId = account2.Id;
contact2.Agency_User__c = true;
+ contact2.MobilePhone = '18999999999';
insert contact2;
+ contact2.MobilePhone = '1899999999A';
+ update contact2;
+ Contact contact3 = new Contact();
+ contact3.FirstName = 'test';
+ contact3.LastName = 'Data';
+ // contact3.RecordTypeId = '01210000000QfWi';
+ contact3.RecordTypeId = AgencyrectCo2[0].Id;
+ contact3.AccountId = account2.Id;
+ // contact3.Agency_User__c = true;
+ contact3.Ignore_Same_Name__c = true;
+ contact3.MobilePhone = '';
+ insert contact3;
List<account> accList = [select Dealer_Num__c From account];
system.assertEquals(accList[0].Dealer_Num__c,1);
--
Gitblit v1.9.1