From 3ba0123db48f8bab81ddf0913e1b95280ef545e8 Mon Sep 17 00:00:00 2001 From: Li Jun <buli@deloitte.com.cn> Date: 星期四, 31 三月 2022 17:56:53 +0800 Subject: [PATCH] Deploy0331 --- force-app/main/default/classes/NewAndEditLeadController.cls | 121 +++++++++++++++++++++++++++++++++------ 1 files changed, 101 insertions(+), 20 deletions(-) diff --git a/force-app/main/default/classes/NewAndEditLeadController.cls b/force-app/main/default/classes/NewAndEditLeadController.cls index e5f9865..52944cd 100644 --- a/force-app/main/default/classes/NewAndEditLeadController.cls +++ b/force-app/main/default/classes/NewAndEditLeadController.cls @@ -32,9 +32,9 @@ public Inquiry_form__c ifc{get; private set;} public String contactDataId{get; set;} public String layoutSectionsStr {get; set;} - public String isQueryContact{get; set;} + public String isDecryptContact {get; set;} public NewAndEditLeadController(ApexPages.StandardController controller) { - isQueryContact = '0'; + isDecryptContact = '0'; isNewMode = true; Input_Required_Field_Msg = Label.Input_Required_Field_Msg; PIPL_Name_Label = Label.PIPL_Name_Label; @@ -43,18 +43,24 @@ //鑾峰彇鎵�鏈夊瓧娈� List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Lead').getDescribe().fields.getMap().keyset()); // Add fields to controller. This is to avoid the SOQL error in visualforce page - controller.addFields(fieldList); + if (!Test.isRunningTest()) { + controller.addFields(fieldList); + } SObject obj = controller.getRecord(); if(ApexPages.currentPage().getParameters().get('CF00N1000000962np_lkid') != null){ System.debug('CF00N1000000962np_lkid'); //浜у搧鍜ㄨ鍗曡繃鏉ョ殑 String InquiryFormId = ApexPages.currentPage().getParameters().get('CF00N1000000962np_lkid'); - ifc = [select Id,AWS_Data_Id__c,Contact_Name__c,Contact_Id__c,Hospital_Name__c,Hospital_ID__c,Department_Class__c,Department_ID__c,Opp_Name_Search__c,Opp_Name_Search_ID__c,Campaign__c, + ifc = [select Id,AWS_Data_Id__c,Contact_Name__c,Contact_Id__c,Hospital_Name__c,Hospital_ID__c,Department_Class__c, + Department_ID__c,Opp_Name_Search__c,Opp_Name_Search_ID__c,Campaign__c, Campaign_ID__c,Name,Cancel_Reason__c,Phone__c,Email__c,Last_Name__c,LeadSource__c,Opportunity_Division__c,Request1__c, Urgent__c from Inquiry_form__c where id = :InquiryFormId]; - Contact c = [select AWS_Data_Id__c from Contact where id = :ifc.Contact_Id__c]; - contactDataId = c.AWS_Data_Id__c; + System.debug('ifc = ' + ifc); + if(ifc.Contact_Id__c !=null && ifc.Contact_Id__c != ''){ + Contact c = [select AWS_Data_Id__c from Contact where id = :ifc.Contact_Id__c]; + contactDataId = c.AWS_Data_Id__c; + } AWSDataIdInquiryForm = ifc.AWS_Data_Id__c; System.debug('ifc = ' + ifc); rtTypeId = ApexPages.currentPage().getParameters().get('RecordType'); @@ -70,20 +76,50 @@ sfIdToAWSIdMap.put(String.valueof(leadData.Contact_Name__r.Id).subString(0,15),leadData.Contact_Name__r.AWS_Data_Id__c); } contactsInfo = JSON.serialize(sfIdToAWSIdMap); - }else if(ApexPages.currentPage().getParameters().get('CF00N10000006ps6f_lkid') != null){ - //鑱旂郴浜鸿繃鏉ョ殑鐐瑰嚮鏂板缓鎰忓悜 - isQueryContact = '1'; - String contactId = ApexPages.currentPage().getParameters().get('CF00N10000006ps6f_lkid'); - Lead leadData = [select Id,RecordTypeId,AWS_Data_Id__c,Contact_Name__r.Id,Contact_Name__r.AWS_Data_Id__c from Lead where id =:contactId]; - Map<String,String> sfIdToAWSIdMap = new Map<String,String>(); - if(leadData.Contact_Name__r.Id != null){ - sfIdToAWSIdMap.put(String.valueof(leadData.Contact_Name__r.Id).subString(0,15),leadData.Contact_Name__r.AWS_Data_Id__c); - } - contactsInfo = JSON.serialize(sfIdToAWSIdMap); - rtTypeId = ApexPages.currentPage().getParameters().get('RecordType'); - obj.put('OwnerId',UserInfo.getUserId()); }else{ - //鏂板缓 + //鐪嬮摼鎺ヤ腑鏈夋棤甯﹁繃鏉ョ殑鍙傛暟(瀹㈡埛浜哄憳) + Map<string,string> mso = ApexPages.currentPage().getParameters(); + for(String key : mso.keySet()){ + System.debug('key=' + key + ',value=' + mso.get(key)); + } + //鑱旂郴浜� + if(mso.containsKey('CF00N10000006ps6f_lkid')){ + isDecryptContact = '1'; + String contactId = mso.get('CF00N10000006ps6f_lkid'); + //鏌ヨAWS_Data_Id__c + Contact c = [select AWS_Data_Id__c from Contact where id=:contactId]; + if (c != null) { + contactDataId = c.AWS_Data_Id__c; + } + //鏌ヨ鎴樼暐绉戝鍒嗙被 + List<Contact> cs = [select Account.Department_Class__c from Contact where id=:contactId]; + if(cs.size()>0){ + controller.getRecord().put('Department_Class__c',cs[0].Account.Department_Class__c); + } + controller.getRecord().put('Contact_Name__c',mso.get('CF00N10000006ps6f_lkid')); + } + //鍖婚櫌鍚� + if(mso.containsKey('CF00N10000002CvC5_lkid')){ + controller.getRecord().put('Hospital_Name__c',mso.get('CF00N10000002CvC5_lkid')); + //閫氳繃鍖婚櫌id鏌ヨ鎴樼暐绉戝鍒嗙被 + String hospitalId = mso.get('CF00N10000002CvC5_lkid'); + List<Account> hospitalAccount = [select Department_Class__c from Account where Id=:hospitalId]; + if(hospitalAccount.size()>0){ + List<Account> departmentAccount = [select Id from Account where Id=:hospitalAccount[0].Department_Class__c]; + if (departmentAccount.size()>0) { + System.debug('Department_Class__c = ' + departmentAccount[0].Id); + controller.getRecord().put('Department_Class__c',departmentAccount[0].Id); + } + } + } + //鍏徃锛堢瀹わ級 + if(mso.containsKey('CF00N10000002CvC5')){ + controller.getRecord().put('Company',mso.get('CF00N10000002CvC5')); + } + //鎴樼暐绉戝CF00N10000006qNtt_lkid + // if(mso.containsKey('CF00N10000006qNtt_lkid ')){ + // controller.getRecord().put('Department_Class__c',mso.get('CF00N10000006qNtt_lkid ')); + // } rtTypeId = ApexPages.currentPage().getParameters().get('RecordType'); obj.put('OwnerId',UserInfo.getUserId()); } @@ -119,6 +155,9 @@ //鑷畾涔夋牸寮忚浆鎹� for (String fieldAPI: fieldValueMap.keySet()) { system.debug('field API='+fieldAPI); + if(!fieldAPIToTypeMap.containskey(fieldAPI)){ + continue; + } Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType(); String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); system.debug('Field Type:'+fielddataType+' field Value='+fieldValue); @@ -132,7 +171,7 @@ leadInfo.put(fieldAPI, null); } }else if(String.valueof(fielddataType)=='CURRENCY'|| String.valueof(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){ - leadInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?0:Decimal.valueOf(fieldValue)); + leadInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?null:Decimal.valueOf(fieldValue.replace(',', ''))); } else if(String.valueof(fielddataType)=='BOOLEAN'){ leadInfo.put(fieldAPI, fieldValueMap.get(fieldAPI)); }else { @@ -177,4 +216,46 @@ return resp; } } + + @RemoteAction + global static String queryAccount(String accountTypes,String accountId) { + System.debug('accountType='+accountTypes); + System.debug('accountId='+accountId); + List<Object> types = (List<Object>)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<String, Map<String, String>> m = new Map<String, Map<String, String>>(); + + 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<String, String> n = new Map<String, String>(); + 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'); + } } \ No newline at end of file -- Gitblit v1.9.1