/*  * Author: Wang,Xueqin  * Created Date: 08/07/2023  * Purpose:Apex Class  * */ public with sharing class LexSearchContactPIPLController { public static String searchKeyWord{set;get;} public static String staticResource {get; set;} public static String contactAWSIds {set;get;} public static String contactsInfo {set;get;} public static String PIPL_Search_Contact_Label{set;get;} public static String aId{set;get;} public static Boolean checkNullString(String inputString){ if(String.isEmpty(inputString)||String.isBlank(inputString)){ return true; } return false; } @AuraEnabled public static Response Init(String accountId,String searchKey) { Response resp = new Response(); String searchKeyWord = searchKey; String aId = accountId; //1. Query Contact by accountId List conList = new List(); system.debug('Account Id from Front-end:'+accountId); if(checkNullString(accountId)&&checkNullString(searchKeyWord)){ conList = new List(); }else{ if(checkNullString(accountId)){ conList = new List(); }else { //2022-5-12 yjk 将科室匹配改为医院匹配查询联系人 statt Account act = [select id,Hospital__c from Account where id = :accountId]; conList = new List([select Id,AWS_Data_Id__c,Account.Name from Contact where Account.Hospital__c=:act.Hospital__c and AWS_Data_Id__c!='']); //2022-5-12 yjk 将科室匹配改为医院匹配查询联系人 end } } //2. Prepare the Contact Info Map awsIdToContactMap = new Map(); List conAWSIds = new List(); for(Contact con:conList){ conAWSIds.add(con.AWS_Data_Id__c); awsIdToContactMap.put(con.AWS_Data_Id__c,con); } contactsInfo = JSON.serialize(awsIdToContactMap); contactAWSIds = JSON.serialize(conAWSIds); staticResource = JSON.serialize(PIHelper.getPIIntegrationInfo('Contact')); resp.status = 'success'; resp.staticResource = staticResource; return resp; } @RemoteAction @AuraEnabled public static Response searchContacts(String awsContactIds,String searchContactName,String accountId) { system.debug('awsContactIds = ' + awsContactIds); Response resp = new Response(); resp.status = 'fail'; Map awsIdToContactMapTemp = new Map(); if(!checkNullString(awsContactIds)){ List awsDataIds = (List) JSON.deserialize(awsContactIds, List.class); List conListTemp = new List(); if(!checkNullString(accountId)){ //2022-5-12 yjk 将科室匹配改为医院匹配查询联系人 statt Account act = [select id,Hospital__c from Account where id = :accountId]; conListTemp = new List([select Id,AWS_Data_Id__c,Account.Name from Contact where Account.Hospital__c=:act.Hospital__c and AWS_Data_Id__c in:awsDataIds]); //2022-5-12 yjk 将科室匹配改为医院匹配查询联系人 end }else { conListTemp = new List([select Id,AWS_Data_Id__c,Account.Name from Contact where AWS_Data_Id__c in:awsDataIds]); } for(Contact con:conListTemp){ awsIdToContactMapTemp.put(con.AWS_Data_Id__c,con); } } System.debug('awsIdToContactMapTemp = ' + awsIdToContactMapTemp); Map noPIContactMapTemp = new Map(); List partnerContactList = AWSServiceTool.getNoPIContact(searchContactName,accountId); System.debug('partnerContactList = ' + partnerContactList); if(partnerContactList.size()>0){ for(Contact con:partnerContactList){ noPIContactMapTemp.put(con.Id,con); } } if(awsIdToContactMapTemp.keySet().size()>0 ||noPIContactMapTemp.keySet().size()>0){ resp.status = 'success'; resp.message = JSON.serialize(awsIdToContactMapTemp);// PI contact info resp.noPIContactList = JSON.serialize(noPIContactMapTemp);//NoPI contact info } return resp; } @RemoteAction @AuraEnabled public static Response searchContactsNoPI(String contactName) { Response resp = new Response(); resp.status = 'fail'; List conListTemp = new List([select Id,Name,Account.Name,Phone,Email,MobilePhone from Contact where Name like :contactName]); if(conListTemp.size() > 0){ resp.status = 'success'; resp.message = JSON.serialize(conListTemp); } return resp; } public class Response{ @AuraEnabled public String message{set;get;} @AuraEnabled public String status{set;get;} @AuraEnabled public String noPIContactList{set;get;} @AuraEnabled public String staticResource {get; set;} @AuraEnabled public String contactAWSIds {set;get;} @AuraEnabled public String contactsInfo {set;get;} } }