From 51fb56f3f5b0dc96d7f93a71f9b61263e303243f Mon Sep 17 00:00:00 2001 From: Li Jun <buli@deloitte.com.cn> Date: 星期二, 10 五月 2022 15:12:45 +0800 Subject: [PATCH] Fix Edit Record Without AWSId --- force-app/main/default/pages/NewOnCall.page | 5 + force-app/main/default/pages/ReportExport.page | 160 ++++++++++++++++++++++++++++++++++++++++ force-app/main/default/classes/NewAndEditReportController.cls | 6 + force-app/main/default/pages/ReportExport.page-meta.xml | 12 +++ force-app/main/default/pages/NewAndEditReport.page | 5 + force-app/main/default/classes/NewAndEditCaseController.cls | 7 + force-app/main/default/pages/NewAndEditCase.page | 9 + force-app/main/default/classes/OnCallController.cls | 7 + 8 files changed, 203 insertions(+), 8 deletions(-) diff --git a/force-app/main/default/classes/NewAndEditCaseController.cls b/force-app/main/default/classes/NewAndEditCaseController.cls index dd6c070..205d7de 100644 --- a/force-app/main/default/classes/NewAndEditCaseController.cls +++ b/force-app/main/default/classes/NewAndEditCaseController.cls @@ -32,6 +32,7 @@ public final string ApiPrefix{get;private set;} //Add By Yin Mingjie 20220404 public Map<string,string> AWSToSobjectEncryptedMap{get;private set;} public string AWSToSobjectEncryptedMapJson{get{return JSON.serialize(AWSToSobjectEncryptedMap);}} + public String sfRecordIdForEdit{set;get;}//Add By LiJun for Edit Record from NFM609, 20220510 public NewAndEditCaseController(ApexPages.StandardController controller) { isNewMode = true; isCloneMode = false; @@ -56,6 +57,7 @@ Case caseData = [select Id,RecordTypeId,AWS_Data_Id__c,ContactId,Contact.AWS_Data_Id__c from Case where id =: obj.Id]; rtTypeId = caseData.RecordTypeId; AWSDataId = caseData.AWS_Data_Id__c; + sfRecordIdForEdit = obj.Id;//Add By LiJun for Edit Record from NFM609, 20220510 System.debug('AWSDataId=' + AWSDataId); Map<String,String> sfIdToAWSIdMap = new Map<String,String>(); if(caseData.ContactId != null){ @@ -149,16 +151,19 @@ Savepoint sp = Database.setSavepoint(); String rid = ''; String awsDataId = ''; + String sfRecordId = ''; Boolean isClone = false; try{ System.debug('abcde'); awsDataId = (String)caseInfo.get('AWS_Data_Id__c'); + sfRecordId = (String)caseInfo.get('Id'); System.debug('awsDataId = ' + awsDataId); - Case[] cases = [select id from Case where AWS_Data_Id__c =:awsDataId]; + Case[] cases = [select id from Case where AWS_Data_Id__c =:awsDataId or id =:sfRecordId]; if(!isNew){ isClone = cases.size() == 0; } + system.debug('isClone'+isClone + ' isNew'+isNew); if(isNew || isClone){ System.debug('caseInfozhj = ' + caseInfo); if(!Test.isRunningTest()){ diff --git a/force-app/main/default/classes/NewAndEditReportController.cls b/force-app/main/default/classes/NewAndEditReportController.cls index 9481521..756d2dd 100644 --- a/force-app/main/default/classes/NewAndEditReportController.cls +++ b/force-app/main/default/classes/NewAndEditReportController.cls @@ -37,6 +37,7 @@ public String contactName3{set;get;} public String contactName4{set;get;} public String contactName5{set;get;} + public String sfRecordIdForEdit{set;get;}//Add By LiJun for Edit Record from NFM609, 20220510 public NewAndEditReportController(ApexPages.StandardController controller) { ApiPrefix = 'PIBackApi'; layoutEncryptedAPIList = new List<String>(); @@ -70,6 +71,7 @@ rtTypeId = ReportData.RecordTypeId; AWSDataId = ReportData.AWS_Data_Id__c; + sfRecordIdForEdit = obj.Id; Map<String,String> sfIdToAWSIdMap = new Map<String,String>(); system.debug('ReportData.Practitioner1__r.Id:' + ReportData.Practitioner1__r.Id); system.debug('ReportData.Practitioner1__r.AWS_Data_Id__c:' + ReportData.Practitioner1__r.AWS_Data_Id__c); @@ -256,12 +258,14 @@ System.debug('鑷畾涔夋牸寮忚浆鎹㈢粨鏉�'); String awsDataId = (String)reportInfo.get('AWS_Data_Id__c'); + String sfRecordId = (String)reportInfo.get('Id'); System.debug('awsDataId = ' + awsDataId); - report__c[] reports = [select id from report__c where AWS_Data_Id__c =:awsDataId]; + report__c[] reports = [select id from report__c where AWS_Data_Id__c =:awsDataId or id =:sfRecordId]; if(!isNew){ isClone = reports.size() == 0; } + system.debug('isClone'+isClone + ' isNew'+isNew); if(isNew){ System.debug('reportInfo = ' + reportInfo); if(!Test.isRunningTest()){ diff --git a/force-app/main/default/classes/OnCallController.cls b/force-app/main/default/classes/OnCallController.cls index 910fdad..3740276 100644 --- a/force-app/main/default/classes/OnCallController.cls +++ b/force-app/main/default/classes/OnCallController.cls @@ -18,6 +18,7 @@ public String PIPL_Input_Account_Error_Msg{set;get;} public String sobjectPrefix{set;get;} public String sobjecttypeForFrontEnd{set;get;} + public String sfRecordIdForEdit{set;get;}//Add By LiJun for edit record from daily report, 20220510 // public String sobjectId{set;get;} public OnCallController(ApexPages.StandardController controller) { // sobjectId = [SELECT CustomObjectId,CustomObjectName FROM CustomObjectUserLicenseMetrics where CustomObjectName ='OnCall' limit 1].CustomObjectId; @@ -45,6 +46,7 @@ isNewMode = false; On_Call__c onCallData = [select Id,AWS_Data_Id__c from On_Call__c where id =: obj.Id]; AWSDataId = onCallData.AWS_Data_Id__c; + sfRecordIdForEdit = obj.Id;//Add By LiJun for Edit Record from NFM609, 20220510 }else{ //鏂板缓 rtTypeId = null; @@ -113,17 +115,20 @@ String rid = ''; Boolean isClone = false; String awsDataId = ''; + String sfRecordId = ''; try{ System.debug('abcde'+isNew); awsDataId = (String)onCallInfo.get('AWS_Data_Id__c'); + sfRecordId = (String)onCallInfo.get('Id'); if (string.isBlank(awsDataId)) { throw new DMLException('鏇存柊鏃禔WS_Data_Id__c涓嶈兘涓虹┖'); } System.debug('awsDataId = ' + awsDataId); - On_Call__c[] onCalls = Database.query('select id from On_Call__c where AWS_Data_Id__c =:awsDataId'); + On_Call__c[] onCalls = Database.query('select id from On_Call__c where AWS_Data_Id__c =:awsDataId or id =:sfRecordId'); if(!isNew){ isClone = onCalls.size() == 0; } + system.debug('isClone'+isClone + ' isNew'+isNew); if(isNew || isClone){ System.debug('onCallInfozhj = ' + onCallInfo); insert onCallInfo; diff --git a/force-app/main/default/pages/NewAndEditCase.page b/force-app/main/default/pages/NewAndEditCase.page index 3646fcf..5c02f89 100644 --- a/force-app/main/default/pages/NewAndEditCase.page +++ b/force-app/main/default/pages/NewAndEditCase.page @@ -24,7 +24,7 @@ //鍒ゆ柇insert or update function ProcessPI(caseJson, payloadForNewPI) { blockme(); - if ({!isNewMode} || {!isCloneMode}) { + if ({!isNewMode} || {!isCloneMode}||!'{!AWSDataId}') {//Add by Li Jun, if the awsdataid is blank. go to insert process NewPIToAWS(caseJson, payloadForNewPI) }else { UpdatePIToAWS(caseJson, payloadForNewPI) @@ -192,10 +192,13 @@ payloadJson.Customer_manual_Encrypted__c = r.object[0].customerManualEncrypt; //payloadJson.AWS_Data_Id__c = r.object[0].dataId; payloadJson.AWS_Data_Id__c = '{!AWSDataId}'; - if (isNewMode || {!isCloneMode}) { + if (isNewMode || {!isCloneMode} || !'{!AWSDataId}') { payloadJson.AWS_Data_Id__c = r.object[0].dataId; } else { payloadJson.AWS_Data_Id__c = '{!AWSDataId}'; + } + if('{!sfRecordIdForEdit}'){ + payloadJson.Id = '{!sfRecordIdForEdit}'; } if('{!rtTypeId}'){ payloadJson.RecordTypeId = '{!rtTypeId}';//Add by zhj for Record Type Issue 20220421 @@ -227,7 +230,7 @@ //insert to AWS function NewPIToAWS(caseJson, payloadForNewPI) { let controllerSaveMethod = '{!$RemoteAction.NewAndEditCaseController.saveCase}'; - AWSService.insert(staticResources.newUrl, caseJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, true, insertOrUpdateBack, redirectCallBack); + AWSService.insert(staticResources.newUrl, caseJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, {!isNewMode}, insertOrUpdateBack, redirectCallBack); } //蹇呭~瀛楁 function checkRequiredFieldMsg(formData) { diff --git a/force-app/main/default/pages/NewAndEditReport.page b/force-app/main/default/pages/NewAndEditReport.page index bcb1395..847ab3d 100644 --- a/force-app/main/default/pages/NewAndEditReport.page +++ b/force-app/main/default/pages/NewAndEditReport.page @@ -315,7 +315,7 @@ //鏂板缓 function NewPIToAWS(reportJson, payloadForNewPI) { let controllerSaveMethod = '{!$RemoteAction.NewAndEditReportController.saveReport}'; - AWSService.insert(staticResources.newUrl, reportJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, true, insertOrUpdateBack, redirectCallBack); + AWSService.insert(staticResources.newUrl, reportJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, {!isNewMode}, insertOrUpdateBack, redirectCallBack); } //缂栬緫 @@ -548,6 +548,9 @@ } else { payloadJson.AWS_Data_Id__c = '{!AWSDataId}'; } + if('{!sfRecordIdForEdit}'){ + payloadJson.Id = '{!sfRecordIdForEdit}'; + } if('{!rtTypeId}'){ payloadJson.RecordTypeId = '{!rtTypeId}';//Add by Li Jun for Record Type Issue 20220421 } diff --git a/force-app/main/default/pages/NewOnCall.page b/force-app/main/default/pages/NewOnCall.page index 232d675..4a269e6 100644 --- a/force-app/main/default/pages/NewOnCall.page +++ b/force-app/main/default/pages/NewOnCall.page @@ -60,6 +60,9 @@ } else { payloadJson.AWS_Data_Id__c = '{!AWSDataId}'; } + if('{!sfRecordIdForEdit}'){ + payloadJson.Id = '{!sfRecordIdForEdit}'; + } if('{!rtTypeId}'){ payloadJson.RecordTypeId = '{!rtTypeId}';//Add by zhj for Record Type Issue 20220421 } @@ -146,7 +149,7 @@ //Insert Sensitive Information to AWS function NewPIToAWS(onCallJson, payloadForNewPI) { let controllerSaveMethod = '{!$RemoteAction.OnCallController.saveOnCall}'; - AWSService.insert(staticResources.newUrl, onCallJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, true, insertOrUpdateBack, redirectCallBack); + AWSService.insert(staticResources.newUrl, onCallJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl,{!isNewMode}, insertOrUpdateBack, redirectCallBack); } //Check Required Fields diff --git a/force-app/main/default/pages/ReportExport.page b/force-app/main/default/pages/ReportExport.page new file mode 100644 index 0000000..97f9728 --- /dev/null +++ b/force-app/main/default/pages/ReportExport.page @@ -0,0 +1,160 @@ +<apex:page id="page" controller="ReportExportClass"> + <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}" /> + <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}" /> + <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}" /> + <apex:includeScript value="{!URLFOR($Resource.connection20)}"/> + <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" /> + <head> + </head> + <style> + .disabledbutton { + pointer-events: none; + opacity: 0.4; + } + .hideshow{ + visibility: hidden; + } + </style> + <body> + <script> + // sforce.connection.sessionId = '{!GETSESSIONID()}'; + var awsList = []; + var staticResources = JSON.parse('{!staticResource}'); + var fieldSize = '{!fieldSize}'; + + function remove() { + + } + + function getPIPayload() { + let awsList = []; + let searchPayload = new Object(); + + var fieldsInputList = '{!fieldInputList}'; + + let dict = {}; + let namesField = document.getElementById("page:form:repeatBlock:repeat:0:chooseField"); + let optionsField = document.getElementById("page:form:repeatBlock:repeat:0:chooseOperation"); + let valuesField = document.getElementById("page:form:repeatBlock:repeat:0:inputText"); + if (namesField) { + dict['name'] = namesField.value; + } + if (optionsField) { + if (namesField.value == 'sfRecordId' && (optionsField.value == 'like' || optionsField.value == 'not like')) { + dict['operator'] = optionsField.value.replace('like', 'in'); + } else { + dict['operator'] = optionsField.value; + } + } + if (valuesField && valuesField.value) { + if (namesField.value == 'sfRecordId') { + dict['value'] = valuesField.value.split('\n'); + } else { + dict['value'] = valuesField.value; + } + } + console.log('size: ' + fieldSize); + console.log(dict); + awsList.push(dict); + + + // for (let index = 0; index < fieldsInputList.length; index++) { + // let dict = {}; + // let namesField = document.getElementById("page:form:repeatBlock:repeat:"+index+":chooseField"); + // let optionsField = document.getElementById("page:form:repeatBlock:repeat:"+index+":chooseOperation"); + // let valuesField = document.getElementById("page:form:repeatBlock:repeat:"+index+":inputText"); + // if (namesField) { + // dict['name'] = namesField.value.toLowerCase(); + // } + // if (optionsField) { + // dict['operator'] = optionsField.value; + // } + // if (valuesField) { + // dict['value'] = valuesField.value; + // } + // console.log(dict); + // } + return JSON.stringify(awsList); + } + + function exportsAllData(){ + + let requestAllSearchPayload = []; + console.log('requestSearchPayload ' + requestAllSearchPayload); + let queryBackContactName = function queryBackContactName(result){ + console.log('result ' + result.length); + var blob = new Blob(["\ufeff", result]); + var link = document.createElement('a'); + link.href = window.URL.createObjectURL(blob); + // let csvContent = "data:text/csv;charset=utf-8,\ufeff" + // +result; + // let encodedUri = encodeURI(csvContent); + // let link = document.createElement("a"); + // link.setAttribute("href", encodedUri); + link.setAttribute("download", "contactAll.csv"); + document.body.appendChild(link); // Required for FF + unblockUI(); + + link.click(); // This will download the data file named "my_data.csv". + }; + blockme(); + AWSService.search(staticResources.reportUrl,requestAllSearchPayload,queryBackContactName,staticResources.token); + } + + function exportsData() { + let requestSearchPayload = getPIPayload(); + if (JSON.parse(requestSearchPayload) && JSON.parse(requestSearchPayload)[0].value) { + console.log('requestSearchPayload ' + requestSearchPayload); + let queryBackContactName = function queryBackContactName(result){ + console.log('result ' + result.length); + var blob = new Blob(["\ufeff", result]); + var link = document.createElement('a'); + link.href = window.URL.createObjectURL(blob); + // let csvContent = "data:text/csv;charset=utf-8,\ufeff" + // +result; + // let encodedUri = encodeURI(csvContent); + // let link = document.createElement("a"); + // link.setAttribute("href", encodedUri); + link.setAttribute("download", "contact.csv"); + document.body.appendChild(link); // Required for FF + unblockUI(); + + link.click(); // This will download the data file named "my_data.csv". + }; + blockme(); + AWSService.search(staticResources.reportUrl,requestSearchPayload,queryBackContactName,staticResources.token); + } else { + alert("璇峰厛杈撳叆Salesforce ID鍊�"); + } + } + </script> + + <apex:form id="form"> + 鎶ヨ〃瀵硅薄锛� + <br/> + <apex:selectList id="chooseObject" value="{!selectedObject}" size="1"> + <apex:selectOptions value="{!objectOptions}"/> + </apex:selectList> + <apex:pageBlock id="repeatBlock"> + <apex:repeat id="repeat" value="{!fieldInputList}" var="fieldInput"> + <!-- <apex:selectOption value = "{!filedOptions}"/> --> + <apex:selectList id="chooseField" value="{!fieldInput.fieldAPI}" size="1"> + <apex:selectOptions value="{!filedOptions}"/> + </apex:selectList> + <!-- <apex:selectOption value = "{!operationSelectOptions}"/> --> + <apex:selectList id="chooseOperation" value="{!fieldInput.operation}" size="1"> + <!-- <apex:selectOptions value="{!operationSelectOptions}"/> --> + <apex:selectOptions value="{!operationSelectOptions}"/> + </apex:selectList> + <apex:inputTextarea id="inputText" value="{!fieldInput.value}" rows="20" cols="35" /> + <!-- - + --> + <br /> + </apex:repeat> + <!-- <apex:commandButton id="addFilter" value="娣诲姞绛涢�夊櫒" action="{!addFilter}" reRender="repeatBlock" /> + <apex:commandButton id="removeFilter" value="鍒犻櫎绛涢�夊櫒" action="{!removeFilter}" reRender="repeatBlock" /> --> + </apex:pageBlock> + <input class="btn" type="Button" id="exportData" value="瀵煎嚭" onclick="exportsData()" /> + <input class="btn" type="Button" id="exportData" value="瀵煎嚭鍏ㄩ儴鏁版嵁" onclick="exportsAllData()" /> + </apex:form> + </body> +</apex:page> \ No newline at end of file diff --git a/force-app/main/default/pages/ReportExport.page-meta.xml b/force-app/main/default/pages/ReportExport.page-meta.xml new file mode 100644 index 0000000..4598906 --- /dev/null +++ b/force-app/main/default/pages/ReportExport.page-meta.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ApexPage xmlns="http://soap.sforce.com/2006/04/metadata"> + <apiVersion>54.0</apiVersion> + <availableInTouch>false</availableInTouch> + <confirmationTokenRequired>false</confirmationTokenRequired> + <label>ReportExport</label> + <packageVersions> + <majorNumber>1</majorNumber> + <minorNumber>7</minorNumber> + <namespace>sf_com_apps</namespace> + </packageVersions> +</ApexPage> -- Gitblit v1.9.1