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