public without sharing class LookUpUtilController { @AuraEnabled(cacheable=true) public static List lookUp(String searchTerm, String objName, String filter) { system.debug('lookUp'); system.debug('objName:'+objName); system.debug('searchTerm:'+searchTerm); system.debug('filter:'+filter); List recordList = new List(); //deloitte-zhj 20231121 PIPL还原 去掉AWS_Data_Id__c String searchQuery = 'select Id,name from '+objName+' where id != null '; //deloitte-zhj 加上AWS_Data_Id__c进行PIPL 2023/07/19 if(String.isNotBlank(searchTerm)){ searchQuery += 'and Name LIKE \'%' + searchTerm + '%\''; } if(String.isNotBlank(filter)){ searchQuery += 'and AccountId = \'' + filter + '\''; // searchQuery += 'and id = \'' + 'a2R0l000000KXmaEAG' + '\''; } if(String.isBlank(searchTerm)&&String.isBlank(filter)){ //如果没有条件 限制查询条数以免数据量过多 searchQuery += 'limit 20'; } system.debug('searchQuery:'+searchQuery); List queryResult = Database.query(searchQuery); if(queryResult.size()>0){ for(Sobject sobj : queryResult){ Record r = new Record(); r.Id = sobj.id; r.Name = (String)sobj.get('name'); //deloitte-zhj 20231121 PIPL还原 去掉AWS_Data_Id__c //r.AWSDataId = (String)sobj.get('AWS_Data_Id__c'); //deloitte-zhj 加上AWS_Data_Id__c进行PIPL 2023/07/19 recordList.add(r); } } system.debug(recordList); return recordList; } //deloitte-zhj 搜索需要的PI数据 2023/07/19 start @AuraEnabled public static ResponseBodyLWC searchContactInit(String accountId,String searchTerm) { ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; System.debug('accountId = ' + accountId); try { List conList = new List(); if (checkNullString(accountId)) { conList = new List(); } else { Account act = [SELECT id, Hospital__c,Department_Class__c FROM Account WHERE id = :accountId]; //deloitte-zhj 20231121 PIPL还原 多查LastName sql去掉AWS_Data_Id__c 限制只查50条 String sql = 'SELECT Id,LastName, Account.Name FROM Contact WHERE Account.Department_Class__c = \'' + act.Department_Class__c + '\' and Account.Is_Active__c != \'無効\' and Isactive__c != \'无效(退休)\' and Isactive__c != \'无效(重复)\''; if(String.isNotBlank(searchTerm)){ sql += ' and LastName like \'%' + searchTerm + '%\''; } sql += ' limit 50'; conList = Database.query(sql); // conList = new List( // [ // SELECT Id,LastName, Account.Name // FROM Contact // // WHERE Account.Hospital__c = :act.Hospital__c AND AWS_Data_Id__c != '' // WHERE Account.Department_Class__c = :act.Department_Class__c and Account.Is_Active__c != '無効' and Isactive__c != '无效(退休)' and Isactive__c != '无效(重复)' limit 50 // ] // ); System.debug('act = ' + act); System.debug('conList = ' + conList); } //deloitte-zhj 20231121 PIPL还原 start data.put('conList', conList); // 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); // } // data.put('awsIdToContactMap', awsIdToContactMap); // data.put('conAWSIds', conAWSIds); //deloitte-zhj 20231121 PIPL还原 end res.status = 'Success'; res.code = 200; res.msg = ''; return res; } catch (Exception e) { return new ResponseBodyLWC('Error', 500, e.getMessage() + ' ' + e.getLineNumber(), ''); } } public static Boolean checkNullString(String inputString) { if (String.isEmpty(inputString) || String.isBlank(inputString)) { return true; } return false; } //deloitte-zhj 搜索需要PI的数据 2023/07/19 end //deloitte-zhj 获取PIPL需要的数据 2023/07/19 start @AuraEnabled public static ResponseBodyLWC getPIPLInfo(String searchTerm, String objName, String filter) { try{ ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; data.put('staticResourceContact', JSON.serialize(PIHelper.getPIIntegrationInfo('Contact'))); res.status = 'Success'; res.code = 200; res.msg = ''; return res; }catch(Exception e){ return new ResponseBodyLWC('Error', 500, e.getMessage() + ' ' + e.getLineNumber(), ''); } } //deloitte-zhj 获取PIPL需要的数据 2023/07/19 end //deloitte-zhj 新建判断重复 2023/07/19 start @AuraEnabled public static ResponseV2 searchContactByAccountId(String accountId,String visitorPlaceId) { System.debug('accountId = ' + accountId); System.debug('visitorPlaceId = ' + visitorPlaceId); ResponseV2 res = new ResponseV2(); try{ // List account = [select Id,Name from Account where Id = :accountId]; List recordTypes= [select Id from RecordType where SobjectType = 'Account' and DeveloperName in ('Department_GYN','Department_OTH','Department_BF','Department_GI','Department_GS','Department_URO','Department_ENT','Department')]; List recordTypeIds = new List(); for(RecordType rt : recordTypes) { recordTypeIds.add(rt.Id); } Account visitorPlace = null; visitorPlace = [select Id, Hospital__c from Account where Id=:visitorPlaceId]; String searchQuery = 'select Id,name,Hospital__c from Account where Id=:accountId'; searchQuery += ' and RecordTypeId in :recordTypeIds'; List account = Database.query(searchQuery); if(account.size() <= 0 ){ res.message = '没有找到对应客户'; // res.message = '请选择访问场所对应的医院下的科室'; res.status = 'fail'; return res; } else if (visitorPlace.Hospital__c != account[0].Hospital__c) { res.message = '请选择访问场所对应的医院下的科室'; res.status = 'fail'; return res; } List contactList = [select id,AWS_Data_Id__c, CManageCode__c,Name from Contact where AccountId = :account[0].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[0].Name; res.contactList = contactList; 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); res.isNameMobileVerif = true; res.isMobileVerif = true; res.status = 'success'; return res; }catch(Exception e){ res.message = e.getMessage() + ' ' + e.getLineNumber(); res.status = 'fail'; return res; } } public class ResponseV2{ @AuraEnabled public List contactList{set;get;} @AuraEnabled public String accountName{set;get;} @AuraEnabled public Map dataIdManageCodeMap{set;get;} @AuraEnabled public Boolean isMobileVerif; @AuraEnabled public Boolean isNameMobileVerif; @AuraEnabled public String message{set;get;} @AuraEnabled public String status{set;get;} } //deloitte-zhj 新建判断重复 2023/07/19 end public class Record { @AuraEnabled public String Id; @AuraEnabled public String Name; @AuraEnabled public String AWSDataId; //deloitte-zhj 加上AWS_Data_Id__c进行PIPL 2023/07/19 } }