global class NewAndEditInquiryFormController extends NewAndEditBaseController { // public String contactsInfo {set;get;}//key sfid;value awsid // public String leadsInfo {set;get;}//key sfid;value awsid public String PIPL_Input_Account_Error_Msg{set;get;} public String contactId{set;get;}//For Lookup field public String leadId{set;get;}//For Lead Lookup public String staticResourceContact {get; set;} public String staticResourceLead {get; set;} public String urlCheckContactAWSid {get; set;} public String contactAWSDataId{set;get;} public String contactName{set;get;} public NewAndEditInquiryFormController(ApexPages.StandardController controller) { List fieldList = new List(Schema.getGlobalDescribe().get('Inquiry_form__c').getDescribe().fields.getMap().keyset()); // Add fields to controller. This is to avoid the SOQL error in visualforce page if (!Test.isRunningTest()) { controller.addFields(fieldList); } // contact lookup LookUpOverrideFields.add('Contact_Name__c'); LookUpOverrideFields.add('Lead_link__c'); Init(controller.getRecord()); //添加项 PIPL_Input_Account_Error_Msg = label.PIPL_Input_Account_Error_Msg; SObject obj = controller.getRecord(); if(obj.Id == null){ //初始化加载值 obj.put('OwnerId',UserInfo.getUserId()); }else { //联系人的Id Inquiry_form__c ifc = [select Contact_Name__c from Inquiry_form__c where id=:obj.Id]; if(ifc != null){ List c = [select AWS_Data_Id__c,Name from Contact where id=:ifc.Contact_Name__c]; if(c.size()>0){ if (c[0].AWS_Data_Id__c != null && c[0].AWS_Data_Id__c != '') { contactAWSDataId = c[0].AWS_Data_Id__c; }else { contactName = c[0].Name; } } }else { contactAWSDataId = '无'; contactName = '无'; } } //contact信息(搜索查询query url用) staticResourceContact = JSON.serialize(PIHelper.getPIIntegrationInfo('Contact')); //Lead信息(搜索查询query url用) staticResourceLead = JSON.serialize(PIHelper.getPIIntegrationInfo('Lead')); checkUrl('CF00N1000000962n8_lkid','Contact'); } @RemoteAction global static Response saveInquiryForm(String leadJson,String transId,Boolean isNew) { return save(new Inquiry_form__c(),leadJson,transId,isNew); } @RemoteAction global static String queryAccount(String accountTypes,String accountId) { System.debug('accountType='+accountTypes); System.debug('accountId='+accountId); List types = (List)JSON.deserializeUntyped(accountTypes); System.debug('types='+types); String soql = 'select Id,Name,'; for (Object t : types) { soql += (String)t+','; } soql = soql.substring(0,soql.length()-1); soql += ' from Account where id=\''+accountId+'\''; System.debug('soql='+soql); Sobject account = Database.query(soql); Map> m = new Map>(); System.debug('account='+account); for (Object ty : types) { String t = (String)ty; if (account.get(t) != null){ Sobject acc = Database.query('select Id,Name from Account where id=\''+account.get(t)+'\''); Map n = new Map(); n.put('Id', (String)acc.get('Id')); n.put('Name', (String)acc.get('Name')); m.put(t, n); } } // if (account.get('Hospital__c') != null){ // m.put('Hospital__c', (String)account.get('Hospital__c')); // m.put('Hospital__r.Name', (String)account.get('Hospital__r.Name')); // } // if (account.get('Department_Class__c') != null){ // m.put('Department_Class__c', (String)account.get('Department_Class__c')); // m.put('Department_Class__r.Name', (String)account.get('Department_Class__r.Name')); // } System.debug('m='+m); return JSON.serialize(m); // return (String)account.get('Hospital__c'); } private void checkUrl(String urlStr, String sobjType){ Map urlFieldMap = new Map(); urlFieldMap = ApexPages.currentPage().getParameters(); if (urlFieldMap.containsKey(urlStr)) { String sobjId = urlFieldMap.get(urlStr); String soql = 'select id,AWS_Data_Id__c from ' + sobjType; soql += ' where id=\'' + sobjId + '\''; Sobject sobj = Database.query(soql); Map m = new Map(); sobjId = sobjId.substring(0,sobjId.length()-3); m.put((String)sobjId, (String)sobj.get('AWS_Data_Id__c')); LookUpOverrideFieldsMapJson = JSON.serialize(m); } } }