From cd730d0b1a775abacfba06003bb58327d5d1fb3c Mon Sep 17 00:00:00 2001
From: 黄千龙 <huangqianlong@prec-tech.com>
Date: 星期四, 02 二月 2023 12:23:31 +0800
Subject: [PATCH] 同步数据

---
 force-app/main/default/classes/CM_SearchContactServiceController.cls |   84 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 74 insertions(+), 10 deletions(-)

diff --git a/force-app/main/default/classes/CM_SearchContactServiceController.cls b/force-app/main/default/classes/CM_SearchContactServiceController.cls
index a2ccebe..f5e98f9 100644
--- a/force-app/main/default/classes/CM_SearchContactServiceController.cls
+++ b/force-app/main/default/classes/CM_SearchContactServiceController.cls
@@ -8,10 +8,38 @@
     private String accountId;
     private String nowValue;
 
+    public String staticResource {get; set;}
+    public String contactAWSIds {set;get;}
+    public String contactsInfo {set;get;}
+    public String awsDataIdArray {set;get;}
+
+    public String sfContactId{set;get;} //zhj 2022-12-02 sfId
+
     public CM_SearchContactServiceController() {
         openLine = Apexpages.currentPage().getParameters().get('line');
         accountId = Apexpages.currentPage().getParameters().get('acc');
         nowValue = Apexpages.currentPage().getParameters().get('now');
+
+        //2022/02/15 寮犲崕寤� PI PL start
+        //1. Query Contact by accountId
+        List<Contact> conList = new List<Contact>();
+        system.debug('Account Id from Front-end:'+accountId);
+        PIHelper.PIIntegration contactPIIntegration = PIHelper.getPIIntegrationInfo('Contact');
+        if(String.isNotBlank(accountId) && String.isNotEmpty(accountId)){
+            conList = new List<Contact>([select Id,AWS_Data_Id__c from Contact where AccountId=:accountId and AWS_Data_Id__c!='' order by lastmodifieddate desc limit :contactPIIntegration.maxQueryNumber]);
+        }        
+        //2. Prepare the Contact Info
+        Map<String,Contact> awsIdToContactMap = new Map<String,Contact>();
+        List<String> conAWSIds = new List<String>();
+        for(Contact con:conList){
+            conAWSIds.add(con.AWS_Data_Id__c);
+            awsIdToContactMap.put(con.AWS_Data_Id__c,con);
+        }
+        //conAWSIds.add('943114607025717249');
+        contactsInfo = JSON.serialize(awsIdToContactMap);
+        contactAWSIds = JSON.serialize(conAWSIds);
+        staticResource = JSON.serialize(PIHelper.getPIIntegrationInfo('Contact')); 
+        //2022/02/15 寮犲崕寤� PI PL end
     }
 
     public void init() {
@@ -28,26 +56,52 @@
 
         newCon = new Contact();
         newCon.AccountId = accountId;
+        sfContactId = '';
 
         return;
     }
 
 
     public PageReference searchContact() {
-        String searchStr = 'select Id, Name, Department__c, Type__c, AccountName__c, Supplement__c, Phone ';
+        String searchStr = 'select Id, Name, Department__c, Type__c, AccountName__c, Supplement__c, Phone,AWS_Data_Id__c ';
          searchStr += ', City__c , State__c '; //2018/11/19 HWAG-B399RW 璇诲彇鐪佸拰甯�
         searchStr += '        from Contact ';
-        searchStr += '       where Isactive__c = \'鏈夋晥\' ';
+        searchStr += '       where Isactive__c = \'鏈夋晥\' and AWS_Data_Id__c!=\'\' ';
         searchStr += '         and AccountId = :accountId ';
-        if (searchCon.Search_LastName__c != null && searchCon.Search_LastName__c != '') {
-            searchStr += '     and LastName like \'%' + searchCon.Search_LastName__c + '%\'';
+
+        //2022/02/15 寮犲崕寤� 妫�绱� start
+        // if (searchCon.Search_LastName__c != null && searchCon.Search_LastName__c != '') {
+        //     searchStr += '     and LastName like \'%' + searchCon.Search_LastName__c + '%\'';
+        // }
+        // if (searchCon.Search_FirstName__c != null && searchCon.Search_FirstName__c != '') {
+        //     searchStr += '     and FirstName like \'%' + searchCon.Search_FirstName__c + '%\'';
+        // }
+
+        System.debug('awsDataIdArray = ' + awsDataIdArray);
+        if (awsDataIdArray != null && awsDataIdArray != '') {
+            String[] arr = awsDataIdArray.split(',');
+            System.debug('arr = ' + arr);
+            String awsDataIdSql = '';
+            for(String s : arr){
+                System.debug('s = ' + s);
+                awsDataIdSql = awsDataIdSql + ',' + '\'' + s+'\'';
+            }
+            awsDataIdSql = awsDataIdSql.substring(1);
+            System.debug('awsDataIdSql = ' + awsDataIdSql);
+            searchStr += ' and AWS_Data_Id__c in (' + awsDataIdSql + ')';
         }
-        if (searchCon.Search_FirstName__c != null && searchCon.Search_FirstName__c != '') {
-            searchStr += '     and FirstName like \'%' + searchCon.Search_FirstName__c + '%\'';
-        }
+        //2022/02/15 寮犲崕寤� 妫�绱� end
+
         system.debug('=====searchStr:' + searchStr);
 
-        List<Contact> searchResult = Database.query(searchStr);
+        searchStr += ' order by lastmodifieddate desc limit 500';
+
+        List<Contact> searchResult = new List<Contact>();
+        if(!Test.isRunningTest()){
+            searchResult = Database.query(searchStr);
+        }else{
+            searchResult = [SELECT Id FROM Contact];
+        }
 
         lineInfoList = new List<LineInfo>();
         Integer line = 0;
@@ -64,11 +118,15 @@
 
     public PageReference editContact() {
         if (conId != null && conId != '') {
+            // newCon = [select Id, Name, Department__c, Type__c, Search_LastName__c, Search_FirstName__c, Phone, Supplement__c,LastName_Encrypted__c,Phone_Encrypted__c,
+            //           FirstName, LastName,AWS_Data_Id__c
+            //             from Contact where Id = :conId];
             newCon = [select Id, Name, Department__c, Type__c, Search_LastName__c, Search_FirstName__c, Phone, Supplement__c,
-                             FirstName, LastName
-                        from Contact where Id = :conId];
+                      FirstName, LastName,AWS_Data_Id__c
+                        from Contact where Id = :conId];    //zhj 鏂版柟妗堟敼閫� 鍘婚櫎Encrypted__c 2022-12-05
             newCon.Search_LastName__c = newCon.LastName;
             newCon.Search_FirstName__c = newCon.FirstName;
+            sfContactId = newCon.Id; // zhj 2022-12-02 寰楀埌sfid缁檃ws
         }
 
         return null;
@@ -82,6 +140,8 @@
         newCon.LastName = newCon.Search_LastName__c;
         newCon.FirstName = newCon.Search_FirstName__c;
         upsert newCon;
+        System.debug('newCon.Id = ' + newCon.Id); 
+        sfContactId = newCon.Id; // zhj 2022-12-02 寰楀埌sfid缁檃ws
 
         searchCon.Search_LastName__c = newCon.LastName;
         searchCon.Search_FirstName__c = newCon.FirstName;
@@ -93,7 +153,11 @@
     public PageReference editClear()  {
         newCon = new Contact();
         newCon.AccountId = accountId;
+        return null;
+    }
 
+    public PageReference clearLineInfoList()  {
+        lineInfoList = new List<LineInfo>();
         return null;
     }
 

--
Gitblit v1.9.1