From 1b214a96d371ce90578fb7d6c14eecfcba5f87f0 Mon Sep 17 00:00:00 2001
From: 涂煌豪 <tuhuanghao@prec-tech.com>
Date: 星期一, 11 四月 2022 18:52:32 +0800
Subject: [PATCH] Sfdc2PoContactBatch修改
---
force-app/main/default/pages/SearchContactPage.page | 132 +++++++++++++++++++++++++++++--------------
1 files changed, 89 insertions(+), 43 deletions(-)
diff --git a/force-app/main/default/pages/SearchContactPage.page b/force-app/main/default/pages/SearchContactPage.page
index 67cb3b9..3f5c24f 100644
--- a/force-app/main/default/pages/SearchContactPage.page
+++ b/force-app/main/default/pages/SearchContactPage.page
@@ -1,5 +1,9 @@
<apex:page controller="SearchContactController" showHeader="false" id="page">
+ <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}" />
<apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
+ <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}" />
+ <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}" />
+ <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}" />
<head>
</head>
@@ -19,16 +23,16 @@
var staticResources = JSON.parse('{!staticResource}');
var contactAWSIds = JSON.parse('{!contactAWSIds}');
var contactsInfo = JSON.parse('{!contactsInfo}');
- var searchContactName = '';
+ var searchKeyWord = '{!searchKeyWord}';
+ var searchContactName = searchKeyWord;
queryLeadFromAWS();
function searchAWSContact(){
- console.log('Search process!');
- //1. reset table;
+ //1. reset table;
+ blockme();
resetTable();
//2. get contact name value
searchContactName = document.getElementById('page:form:lksrch').value;
queryLeadFromAWS();
-
}
function resetTable(){
let queryResult = document.getElementById('QueryResult');
@@ -46,22 +50,28 @@
function queryLeadFromAWS() {
//1. Prepare the payload for contact search
let requestSearchPayload = preparePayloadForSearchContact();
- console.log('request payload body:'+requestSearchPayload);
//2. Invoke AWS Service
- fetch(staticResources.searchUrl, {
- method: 'POST',
- body: requestSearchPayload,
- headers: {
- 'Content-Type': 'application/json',
- 'pi-token': staticResources.token
- }
- }).then((data) => {
- return data.json();
- }).then((result) => {
- if(result.object&&result.object.length>0){
- initContactTable(result);
- }
- })
+ // fetch(staticResources.searchUrl, {
+ // method: 'POST',
+ // body: requestSearchPayload,
+ // headers: {
+ // 'Content-Type': 'application/json',
+ // 'pi-token': staticResources.token
+ // }
+ // }).then((data) => {
+ // return data.json();
+ // }).then((result) => {
+ // if(result.object&&result.object.length>0){
+ // initContactTable(result);
+ // }
+ // })
+ let queryBackContactName = function queryBackContactName(result){
+ // if(result.object){
+ // initContactTable(result);
+ // }
+ initContactTable(result);
+ };
+ AWSService.search(staticResources.searchUrl,requestSearchPayload,queryBackContactName,staticResources.token)
}
function redirectToParentPage(obj) {
@@ -94,11 +104,12 @@
let tableBody = document.createElement('TBODY');
table.appendChild(tableBody);
let headerTR = document.createElement('TR');
+ let colsHeader = ['濮撳悕','瀹㈡埛鍚嶇О','閭', '鐢佃瘽','鎵嬫満鍙�'];
tableBody.appendChild(headerTR);
- for (let i = 0; i < cols.length; i++) {
+ for (let i = 0; i < colsHeader.length; i++) {
let td = document.createElement('TH');
td.width = '75';
- td.appendChild(document.createTextNode(cols[i]));
+ td.appendChild(document.createTextNode(colsHeader[i]));
headerTR.appendChild(td);
}
//3. Init the AWS data
@@ -109,13 +120,17 @@
for (let j = 0; j < cols.length; j++) {
let td = document.createElement('TD');
td.width = '75';
- if (!contactsInfo.hasOwnProperty(contactInfoTemp.AWSDataId)) {
- continue;
- }
- if(j == 0){
- td.id = contactsInfo[contactInfoTemp.AWSDataId].Id;
- }
- td.appendChild(document.createTextNode(contactInfoTemp[cols[j]]));
+ if(contactInfoTemp.pi){
+ if (!contactsInfo.hasOwnProperty(contactInfoTemp.AWSDataId)) {
+ continue;
+ }
+ if(j == 0 && contactsInfo[contactInfoTemp.AWSDataId] ){
+ td.id = contactsInfo[contactInfoTemp.AWSDataId].Id;
+ }
+ }else{
+ td.id = contactInfoTemp.sfRecordId;
+ }
+ td.appendChild(document.createTextNode(contactInfoTemp[cols[j]]!=null?contactInfoTemp[cols[j]]:''));
if (cols[j] == 'Name') {
td.addEventListener("click", function (obj) {
redirectToParentPage(obj);
@@ -125,33 +140,64 @@
}
}
myTableDiv.appendChild(table);
+ unblockUI();
}
function initContactTable(data) {
- let cols = ['Name', 'Email', 'Phone'];
+ let cols = ['Name','AccountName', 'Email', 'Phone','MobilePhone'];
let contactInfoList = [];
let awsDataIds = [];
- for(var i=0;i<data.object.length;i++){
- if(data.object[i].dataId){
- let contactInfo = new Object();
- contactInfo.Name = data.object[i].lastName;
- contactInfo.Email = data.object[i].email;
- contactInfo.Phone = data.object[i].phone;
- contactInfo.AWSDataId = data.object[i].dataId;
- awsDataIds.push(contactInfo.AWSDataId);
- contactInfo.sfRecordId = '';
- contactInfoList.push(contactInfo);
- }
+ if(data.object){
+ for(var i=0;i<data.object.length;i++){
+ if(data.object[i].dataId){
+ let contactInfo = new Object();
+ contactInfo.Name = data.object[i].lastName;
+ contactInfo.Email = data.object[i].email;
+ contactInfo.MobilePhone = data.object[i].mobilePhone;
+ contactInfo.Phone = data.object[i].phone;
+ contactInfo.AWSDataId = data.object[i].dataId;
+ contactInfo.pi = true;
+ awsDataIds.push(contactInfo.AWSDataId);
+ contactInfo.sfRecordId = '';
+ contactInfoList.push(contactInfo);
+ }
+ }
}
let AWSIdToSFIdMapValue = {};
- console.log(awsDataIds);
//Invoke SF BackEnd
Visualforce.remoting.Manager.invokeAction(
'{!$RemoteAction.SearchContactController.searchContacts}',
- JSON.stringify(awsDataIds),
+ JSON.stringify(awsDataIds),searchContactName,'{!aId}',
function (result, event) {
if(event.status){
if(result.status = 'success'){
- contactsInfo = JSON.parse(result.message.replace(/("\;)/g,"\""));
+ if(result.message){
+ contactsInfo = JSON.parse(result.message.replace(/("\;)/g,"\""));
+ if(Object.keys(contactsInfo).length>0){
+ for(let i=0;i<contactInfoList.length;i++){
+ let contactFromSF = contactsInfo[contactInfoList[i]['AWSDataId']];
+ if(contactFromSF){
+ contactInfoList[i].sfRecordId = contactFromSF['Id'];
+ contactInfoList[i].AccountName = contactFromSF['Account']['Name'];
+ }
+ }
+ }
+ }
+ //1. get SF 闈炴晱鎰熺殑鑱旂郴浜轰俊鎭�
+ if(result.noPIContactList){
+ var noPIInfo = JSON.parse(result.noPIContactList.replace(/("\;)/g,"\""));
+ for(let f in noPIInfo){
+ let contactInfo = new Object();
+ contactInfo.Name = noPIInfo[f].Name!=null?noPIInfo[f].Name:'';
+ contactInfo.Email = noPIInfo[f].Email!=null?noPIInfo[f].Email:'';
+ contactInfo.Phone = noPIInfo[f].Phone!=null?noPIInfo[f].Phone:'';
+ contactInfo.MobilePhone = noPIInfo[f].MobilePhone!=null?noPIInfo[f].MobilePhone:'';
+ contactInfo.AWSDataId = '';
+ contactInfo.sfRecordId = noPIInfo[f].Id!=null?noPIInfo[f].Id:'';
+ contactInfo.AccountName = noPIInfo[f]['Account']['Name'];
+ contactInfo.pi = false;
+ contactInfoList.push(contactInfo);
+ }
+ }
refreshTable(cols,contactInfoList);
}else{
console.log('No result');
--
Gitblit v1.9.1