global class NewAndEditContactController extends NewAndEditBaseController { public String unifiedIContactID{set;get;} public String staticResourceContactV2 {get; set;} public NewAndEditContactController(ApexPages.StandardController controller) { List fieldList = new List(Schema.getGlobalDescribe().get('Contact').getDescribe().fields.getMap().keyset()); // Add fields to controller. This is to avoid the SOQL error in visualforce page if (!Test.isRunningTest()) { controller.addFields(fieldList); } Init(controller.getRecord()); String contactId = controller.getRecord().Id; if(contactId != null){ Contact c = [select id,UnifiedI_Contact_ID__c from Contact where Id =:contactId ]; system.debug('Contact c = '+c); unifiedIContactID = c.UnifiedI_Contact_ID__c; }else{ Map mso = ApexPages.currentPage().getParameters(); system.debug('mso='+mso); if(mso.containsKey('con4_lkid')){ controller.getRecord().put('AccountId',mso.get('con4_lkid')); } } system.debug('controller.getRecord()='+controller.getRecord()); //zhj MEBG新方案改造 2022-11-24 start PIHelper.PIIntegration piIntegration = PIHelper.getPIIntegrationInfo('contactV2'); staticResourceContactV2 = JSON.serialize(piIntegration); System.debug('staticResourceContactV2 = ' + staticResourceContactV2); //zhj MEBG新方案改造 2022-11-24 end } PageReference RedirectStandardPage(){ Map mso = ApexPages.currentPage().getParameters(); system.debug(mso); PageReference pg = null; mso.remove('sfdc.override'); system.debug('recordId='+recordId); if(string.isBlank(recordId)){ pg = new PageReference('/003/e'); }else{ pg = new PageReference('/'+recordId+'/e'); } //pg.getParameters().putAll(mso); pg.getParameters().put('RecordType',mso.get('RecordType')); pg.getParameters().put('accid',mso.get('accid')); pg.getParameters().put('nooverride','1'); pg.setRedirect(true); return pg; } public PageReference PageLoad(){ system.debug('rtTypeId='+rtTypeId); string s = null; if(!string.isBlank(rtTypeId)){ s = Schema.SObjectType.Contact.getRecordTypeInfosById().get(rtTypeId).getDeveloperName(); if(s == 'Agency' || s == 'Internal_staff'){ return RedirectStandardPage(); } } string accid = ApexPages.currentPage().getParameters().get('accid'); if(!string.isBlank(accid)){ List accs = [select RecordType.DeveloperName from account where id = :accid]; if(accs.size()>0){ s = accs[0].RecordType.DeveloperName; if(s == 'Office' || s == 'AgencyContact' || s == 'Agency'){ return RedirectStandardPage(); } } } system.debug('null'); return null; } @RemoteAction global static Response saveContact(String leadJson,String transId,Boolean isNew) { return save(new Contact(),leadJson,transId,isNew); } //zhj MEBG新方案改造 2022-11-24 start @RemoteAction global static ResponseV2 searchContactByAccountId(String accountId,String RecordTypeId,String Isactive) { System.debug('accountId = ' + accountId); ResponseV2 res = new ResponseV2(); try{ Account account = [select Id,Name from Account where Id = :accountId]; List contactList = [select id,AWS_Data_Id__c, CManageCode__c,Name from Contact where AccountId = :account.Id]; Map dataIdManageCodeMap = new Map(); for(Contact contact : contactList){ dataIdManageCodeMap.put(contact.AWS_Data_Id__c,contact.CManageCode__c); } res.dataIdManageCodeMap = dataIdManageCodeMap; res.accountName = account.Name; res.contactList = contactList; ID DoctorRecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Doctor').getRecordTypeId(); Map accMap= new Map(); List accList=[select ID,Is_Active__c,Is_Active_Formula__c from Account where ID =:accountId]; if(accList.size()>0){ for(Account acc:accList){ if (String.isNotBlank(acc.Is_Active__c)){ String subId = acc.Id; accMap.put(subId.substring(0,15), acc.Is_Active__c); continue; } if (String.isNotBlank(acc.Is_Active_Formula__c)){ String subId = acc.Id; accMap.put(subId.substring(0,15), acc.Is_Active_Formula__c); } } } System.debug('accMap= ' + accMap); //如果是Doctor记录类型的需要进行姓名+手机号判断 if(DoctorRecordTypeId.equals(RecordTypeId)){ res.isNameMobileVerif = true; } System.debug('Isactive= ' + Isactive); System.debug('DoctorRecordTypeId.equals(RecordTypeId) = ' + DoctorRecordTypeId.equals(RecordTypeId)); System.debug('accMap.get(accountId) = ' + accMap.get(accountId)); if (('有效'.equals(Isactive) || '有効'.equals(Isactive)) && ('有効'.equals(accMap.get(accountId)) || '有效'.equals(accMap.get(accountId))) && (DoctorRecordTypeId.equals(RecordTypeId))) { res.isMobileVerif = true; }else { res.isMobileVerif = false; } res.status = 'success'; return res; }catch(Exception e){ res.message = e.getMessage() + ''; res.status = 'fail'; return res; } } global class ResponseV2{ public List contactList{set;get;} public String accountName{set;get;} public Map dataIdManageCodeMap{set;get;} public Boolean isMobileVerif; public Boolean isNameMobileVerif; public String message{set;get;} public String status{set;get;} } //zhj MEBG新方案改造 2022-11-24 end }