force-app/main/default/classes/NewAndEditCaseController.cls | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
force-app/main/default/classes/NewAndEditReportController.cls | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
force-app/main/default/classes/OnCallController.cls | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
force-app/main/default/pages/NewAndEditCase.page | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
force-app/main/default/pages/NewAndEditReport.page | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
force-app/main/default/pages/NewOnCall.page | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
force-app/main/default/pages/ReportExport.page | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
force-app/main/default/pages/ReportExport.page-meta.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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()){ 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()){ 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('更新时AWS_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; 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) { 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 } 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 force-app/main/default/pages/ReportExport.page
New file @@ -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> force-app/main/default/pages/ReportExport.page-meta.xml
New file @@ -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>