From 580549d5dace2d9982e71e18ac931febbe0428da Mon Sep 17 00:00:00 2001 From: Li Jun <buli@deloitte.com.cn> Date: 星期一, 11 四月 2022 18:31:08 +0800 Subject: [PATCH] PIPLCloneIssue0411 --- force-app/main/default/classes/NewAndEditCaseController.cls | 26 +++++++++++++++++++++----- 1 files changed, 21 insertions(+), 5 deletions(-) diff --git a/force-app/main/default/classes/NewAndEditCaseController.cls b/force-app/main/default/classes/NewAndEditCaseController.cls index 4db40d0..5525c9d 100644 --- a/force-app/main/default/classes/NewAndEditCaseController.cls +++ b/force-app/main/default/classes/NewAndEditCaseController.cls @@ -13,6 +13,7 @@ public static Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe(); public static String sobjectTypeValue = 'Case'; public Boolean isNewMode{set;get;} + public Boolean isCloneMode{protected set;get;} public String rtTypeId {get; set;} public String AWSDataId{set;get;} public String contactId{set;get;}//For Lookup field @@ -33,6 +34,7 @@ public string AWSToSobjectEncryptedMapJson{get{return JSON.serialize(AWSToSobjectEncryptedMap);}} public NewAndEditCaseController(ApexPages.StandardController controller) { isNewMode = true; + isCloneMode = false; Input_Required_Field_Msg = Label.Input_Required_Field_Msg; PIPL_Name_Label = Label.PIPL_Name_Label; PIPL_Input_Account_Error_Msg = label.PIPL_Input_Account_Error_Msg; @@ -40,6 +42,10 @@ //鑾峰彇鎵�鏈夊瓧娈� List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Case').getDescribe().fields.getMap().keyset()); // Add fields to controller. This is to avoid the SOQL error in visualforce page + Map<string,string> mso = ApexPages.currentPage().getParameters(); + if(mso != null && mso.containsKey('newclone')){ + isCloneMode = true; + } if (!Test.isRunningTest()) { controller.addFields(fieldList); } @@ -60,7 +66,8 @@ contactsInfo = JSON.serialize(sfIdToAWSIdMap); }else{ //鏂板缓 - rtTypeId = ApexPages.currentPage().getParameters().get('RecordType'); + // rtTypeId = ApexPages.currentPage().getParameters().get('RecordType'); + rtTypeId = mso.get('RecordType'); obj.put('OwnerId',UserInfo.getUserId()); } LayoutDescriberHelper.LayoutWrapper LayoutWrapperValue = LayoutDescriberHelper.describeSectionWithFieldsWrapper(rtTypeId, 'Case','classic'); @@ -138,18 +145,27 @@ Response resp = new Response(); Savepoint sp = Database.setSavepoint(); String rid = ''; + String awsDataId = ''; + Boolean isClone = false; try{ System.debug('abcde'); - if(isNew){ + awsDataId = (String)caseInfo.get('AWS_Data_Id__c'); + System.debug('awsDataId = ' + awsDataId); + Case[] cases = [select id from Case where AWS_Data_Id__c =:awsDataId]; + + if(!isNew){ + isClone = cases.size() == 0; + } + if(isNew || isClone){ System.debug('caseInfozhj = ' + caseInfo); if(!Test.isRunningTest()){ insert caseInfo; } }else{ System.debug('into update'); - String awsDataId = (String)caseInfo.get('AWS_Data_Id__c'); - System.debug('awsDataId = ' + awsDataId); - Case[] cases = [select id from Case where AWS_Data_Id__c =:awsDataId]; + // String awsDataId = (String)caseInfo.get('AWS_Data_Id__c'); + // System.debug('awsDataId = ' + awsDataId); + // Case[] cases = [select id from Case where AWS_Data_Id__c =:awsDataId]; System.debug('cases ========================= ' + cases); System.debug('Cases[0].id = ' + cases[0].id); caseInfo.put('Id',cases[0].id);//For testing; -- Gitblit v1.9.1