public without sharing class LookUpUtilController {
|
@AuraEnabled(cacheable=true)
|
public static List<Record> lookUp(String searchTerm, String objName, String filter) {
|
system.debug('lookUp');
|
system.debug('objName:'+objName);
|
system.debug('searchTerm:'+searchTerm);
|
system.debug('filter:'+filter);
|
List<Record> recordList = new List<Record>();
|
//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<Sobject> 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<String, object> data = new Map<String, object>();
|
res.entity = data;
|
System.debug('accountId = ' + accountId);
|
try {
|
List<Contact> conList = new List<Contact>();
|
if (checkNullString(accountId)) {
|
conList = new List<Contact>();
|
} 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<Contact>(
|
// [
|
// 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<String, Contact> awsIdToContactMap = new Map<String, Contact>();
|
// List<String> conAWSIds = new List<String>();
|
// 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<String, object> data = new Map<String, object>();
|
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> account = [select Id,Name from Account where Id = :accountId];
|
List<RecordType> 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<String> recordTypeIds = new List<String>();
|
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> 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<Contact> contactList = [select id,AWS_Data_Id__c, CManageCode__c,Name from Contact where AccountId = :account[0].Id];
|
Map<String,String> dataIdManageCodeMap = new Map<String,String>();
|
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<String,String> accMap= new Map<String,String>();
|
List<Account> 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<Contact> contactList{set;get;}
|
@AuraEnabled
|
public String accountName{set;get;}
|
@AuraEnabled
|
public Map<String,String> 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
|
}
|
|
|
}
|