From fb04e7c01d119c60632b4298d18fd93f3ccb3d79 Mon Sep 17 00:00:00 2001
From: Li Jun <buli@deloitte.com.cn>
Date: 星期三, 06 四月 2022 10:32:05 +0800
Subject: [PATCH] 20220405DeployProduction

---
 force-app/main/default/classes/StraightBackAddressController.cls |  111 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 101 insertions(+), 10 deletions(-)

diff --git a/force-app/main/default/classes/StraightBackAddressController.cls b/force-app/main/default/classes/StraightBackAddressController.cls
index 3945459..6a358f5 100644
--- a/force-app/main/default/classes/StraightBackAddressController.cls
+++ b/force-app/main/default/classes/StraightBackAddressController.cls
@@ -9,9 +9,15 @@
 
     /***************琛ㄦ牸鏁版嵁*********************/
     public List<AddressData> tableData { get; set; }
+    public String tableDataStr{ get; set; }
+    public String staticResource {get; set;}
+    public String staticResourceContact {get; set;}
+    public String staticResourceRepair {get; set;}
+    public Contact newCon{get; set;}
 
     /***************搴曢儴 缂栬緫鍜屾柊澧炵殑 瀵硅薄*******************/
     public Address__c insUpdData{get;set;}
+    public String insUpdDataStr{get;set;}
 
     /***************琚紪杈戞暟鎹殑id********************/
     public String UpdId{get;set;}
@@ -55,6 +61,21 @@
     /***************鏄惁鍙戠敓鏁版嵁鎺ュ彛鐨勫簭鍙�*************/
     public Integer AddressTypeIndex{get;set;}
 
+    public String contactId{set;get;}//For Lookup field
+
+    // Add by Li Jun for PIPL 20220308 Start
+    public String contactNameValue{set;get;}
+    public String contactIdValue{set;get;}
+    public String addressDataIds{set;get;} 
+    public String sfRecordId{set;get;} 
+    // Add by Li Jun for PIPL 20220308 End
+
+    public String accRecordTypeId {set;get;}//褰撳墠 璁板綍绫诲瀷id 
+
+    public String accOfficeTypeId {set;get;}//璁板綍绫诲瀷id  鍔炰簨澶�
+    public String accAgencyTypeId {set;get;}//璁板綍绫诲瀷id  璨╁2搴�
+    public String accAgencyContactTypeId {set;get;}//璁板綍绫诲瀷id  缁忛攢鍟嗚仈绯讳汉
+
     public StraightBackAddressController() {
         //鑾峰彇url鏁版嵁
         RepairId = System.currentPageReference().getParameters().get('id');
@@ -77,15 +98,28 @@
         addContact = new Contact();
         //鏌ヨ鍒版墍鏈夌殑绉戝绫诲埆
         hospitalTypp = '瑷虹檪绉� 銇濄伄浠�,瑷虹檪绉� 鍛煎惛绉�,瑷虹檪绉� 濠︿汉绉�,瑷虹檪绉� 鏅绉�,瑷虹檪绉� 娉屽翱绉�,瑷虹檪绉� 娑堝寲绉�,瑷虹檪绉� 鑰抽蓟鍠夌,瑷虹檪绉戯紙鍏遍�氾級';
+
+
+        staticResource = JSON.serialize(PIHelper.getPIIntegrationInfo('Address__c'));
+        staticResourceContact = JSON.serialize(PIHelper.getPIIntegrationInfo('Contact'));
+        staticResourceRepair = JSON.serialize(PIHelper.getPIIntegrationInfo('Repair__c'));
     }
 
     /**
      * 寮�濮嬫柟娉�
      */
     public PageReference init(){
+        Schema.RecordTypeInfo recordTypeValue = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Office');
+        if(recordTypeValue == null){
+            recordTypeValue = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('office');
+        }
+        accOfficeTypeId = recordTypeValue.getRecordTypeId();
+        accAgencyTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId();
+        accAgencyContactTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('AgencyContact').getRecordTypeId();
         String RepairSql = makeTextRepairSql(RepairId);
         try{
             pc = Database.query(RepairSql);
+            system.debug('pc = ' + pc);
             //缁欎竴涓叏灞�鍙橀噺璧嬪�煎尰闄d
             if(!String.isBlank(pc.HP_ID__c)){
                 hospitalId = pc.HP_ID__c;
@@ -126,9 +160,22 @@
             ApexPages.addMessages(e);
         }
         insUpdData = new Address__c();
+        newCon = new Contact();
         return null;
     }
-
+    //鏌ヨ瀹㈡埛璁板綍绫诲瀷
+    public PageReference queryRecordType(){
+        if(insUpdData.Customer__c!=null){
+            String accid = insUpdData.Customer__c;
+            Account acc = [SELECT id,name,RecordTypeId FROM Account WHERE id =: accid];
+            System.debug('acc---'+acc);
+            System.debug('insUpdData---'+insUpdData);
+            if(acc!=null&&acc.RecordTypeId!=null&&insUpdData.Customer__c!=null){
+                accRecordTypeId = acc.RecordTypeId;
+            }
+        }
+        return null;
+    }
     //缂栬緫鑾峰彇鏁版嵁
     public PageReference onEditor(){
         if(!String.isBlank(UpdId)){
@@ -141,6 +188,7 @@
                         insUpdData = tableData[i].address;
                     }
                 }
+                insUpdDataStr = JSON.serialize(insUpdData);
             }
         }
         return null;
@@ -163,6 +211,7 @@
                         }
                     }
                 }
+                insUpdDataStr = JSON.serialize(insUpdData);
             }
         }
         return null;
@@ -196,8 +245,12 @@
                         }
                         //鑱旂郴浜�
                         String contactsName = '';
+                        String contactsNameEncrypt ='';
+                        String contactawsDataId = '';
                         if(!String.isBlank(tableData[i].address.Contacts__c)){
                             contactsName = tableData[i].address.Contacts__r.Name;
+                            contactsNameEncrypt = tableData[i].address.Contacts__r.LastName_Encrypted__c;
+                            contactawsDataId = tableData[i].address.Contacts__r.AWS_Data_Id__c;
                         }
                         //瀹㈡埛
                         String ContactPerson = '';
@@ -207,11 +260,19 @@
                         try{
                             //淇濆瓨鏁版嵁鍒颁慨鐞嗚〃涓�
                             Repair__c rc = new Repair__c();
-                            rc.id=RepairId;
-                            rc.address_Contacts__c=contactsName;
+                            rc.id = RepairId;
+                            rc.Address_AWS_Data_Id__c = tableData[i].address.AWS_Data_Id__c;
+                            rc.Contact_AWS_Data_Id__c = contactawsDataId;
+                            rc.address_Contacts__c = contactsName;
+                            rc.Address_Contacts_Encrypt__c = contactsNameEncrypt;
                             rc.address_ZipCode__c = tableData[i].address.ZipCode__c;
+                            rc.Address_ZipCode_Encrypt__c = tableData[i].address.ZipCode_Encrypted__c;
                             rc.address_City__c = cityName;
                             rc.address_Contacts_Name__c = ContactPerson;
+                            rc.Detailed_Address__c = tableData[i].address.Detailed_Address__c;
+                            rc.Detailed_Address_Encrypt__c = tableData[i].address.Detailed_Address_Encrypted__c;
+                            rc.address_Telephone__c = tableData[i].address.Telephone__c;
+                            rc.Address_Telephone_Encrypt__c = tableData[i].address.Telephone_Encrypted__c;
                             //isUpload锛氭槸鍚︿笂浼燬AP  FSEApplyForRepairTime锛歋AP淇悊鐢宠鏃堕棿
                             if(isUpload && (FSEApplyForRepairTime != null)){
                                 rc.Address_type__c = 'X';
@@ -317,12 +378,14 @@
             List<Address__c> dataList = Database.query(AddressSql);
             if(dataList != null && dataList.size()> 0){
                 indexCou += dataList.size();
+                System.debug('dataList-----'+dataList);
                 for(Integer i = 0;i<dataList.size();i++){
                     String createID = dataList[i].CreatedByid;
                     createId = createId.substring(0,15);
                     //鍔炰簨澶勭殑鍦板潃涓嶅彲淇敼
+                    
                     if(dataList[i].Address_Classification__c == '鍔炰簨澶�'){
-                            tableData.add(new AddressData(dataList[i],'none','none','inline'));
+                        tableData.add(new AddressData(dataList[i],'none','none','inline'));
                     }else{
                         //鍙兘鏀硅嚜宸卞垱寤虹殑鍦板潃鏁版嵁锛岀郴缁熺鐞嗗憳銆丟PI_绯荤粺绠$悊鍛楴ew 娌¢檺鍒�
                         if(loginPerson == createId ||loginPerson == '00e10000000dzzG' ||loginPerson == '00e10000000Y3o5'){
@@ -343,6 +406,8 @@
                 }
             }
             ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '鍏辨湁 '+indexCou+' 鏉℃暟鎹�'));
+            tableDataStr = JSON.serialize(tableData);
+            system.debug('tableDataStr = ' + tableDataStr);
         }catch(Exception e){
             //澶辫触鎻愮ず
             ApexPages.addMessages(e);
@@ -354,6 +419,12 @@
      * 淇濆瓨鍜屼慨鏀圭殑鏂规硶
      */
     public PageReference save(){
+        system.debug('Address value:'+JSON.serialize(insUpdData));       
+        if(String.isNotBlank(contactIdValue)&&String.isNotEmpty(contactIdValue)){
+            system.debug('Contact Value:'+contactIdValue);
+            insUpdData.Contacts__c = contactIdValue;
+        }
+        system.debug('Address value:'+JSON.serialize(insUpdData));
         savepoint sp = Database.setsavepoint();
         if(insUpdData != null){
             boolean flag = true;
@@ -450,10 +521,17 @@
                             monicker = surname.substring(1,surname.length());
                             surname = surname.substring(0,1);
                         }
-                        addContact = new Contact(LastName=surname,FirstName=monicker,AccountId=insUpdData.Customer__c,RecordTypeId=typeL);
+                        System.debug('newCon = '+newCon);
+                        addContact = new Contact(LastName = surname,
+                                                FirstName = monicker,
+                                                AccountId = insUpdData.Customer__c,
+                                                RecordTypeId = typeL,
+                                                AWS_Data_Id__c = newCon.AWS_Data_Id__c,
+                                                LastName_Encrypted__c = newCon.LastName_Encrypted__c);
                         try{
                             //鏂板涓�鏉¤仈绯讳汉鏁版嵁
                             insert addContact;
+                            sfRecordId = addContact.id;
                             insUpdData.Create_Contacts__c = '';
                         }catch(Exception e){
                             //ApexPages.addMessages(e);
@@ -484,6 +562,7 @@
                 try{
                     //鏂板鎴栦慨鏀规暟鎹�
                     upsert insUpdData;
+                    
                     ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '淇濆瓨鎴愬姛锛�'));
                     isSearchBtn = true;
                     //淇濆瓨鎴愬姛锛岄渶瑕佸垵濮嬪寲涓�涓嬫瀵硅薄锛岄槻姝㈠啀娆$偣鍑绘鎸夐挳淇濆瓨涓�涓潯鍚屾牱鐨勬暟鎹�
@@ -509,13 +588,13 @@
 
     //鏌ヨ淇悊琛ㄦ暟鎹�
     private String makeTextRepairSql(String uuid){
-        String RepairSql = 'SELECT ID,NAME,HP_ID__c,HP_Name__c,Delivered_Product__c,FSE_ApplyForRepair_time__c,SAP_Transfer_time__c,Dealer__c,Dealer__r.Name,Returns_Product_way__c,Address_Type_Index__c FROM Repair__c where id = \''+RepairId+'\'';
+        String RepairSql = 'SELECT ID,NAME,HP_ID__c,HP_Name__c,Delivered_Product__c,FSE_ApplyForRepair_time__c,SAP_Transfer_time__c,Dealer__c,Dealer__r.Name,Returns_Product_way__c,Address_Type_Index__c,AWS_Data_Id__c FROM Repair__c where id = \''+RepairId+'\'';
         return RepairSql;
     }
     //鏌ヨ鍦板潃琛ㄦ暟鎹�
     private String makeTextAddressSql(String typeSearchId) {
-        String AddressSql = 'SELECT ID,Address_Classification__c,Customer__c,Customer__r.Name,Contacts__c,Contacts__r.Name,Telephone__c'
-                        +',Province__c,Province__r.Name,City__c,City__r.name,Detailed_Address__c,Create_Contacts__c,ZipCode__c,CreatedByid '
+        String AddressSql = 'SELECT AWS_Data_Id__c,ID,Address_Classification__c,Customer__c,Customer__r.Name,Customer__r.Type,Customer__r.RecordTypeId,Contacts__c,Contacts__r.Name,Contacts__r.AWS_Data_Id__c,Telephone__c'
+                        +',Province__c,Province__r.Name,City__c,City__r.name,Detailed_Address__c,Create_Contacts__c,ZipCode__c,CreatedByid,Detailed_Address_Encrypted__c,Telephone_Encrypted__c,ZipCode_Encrypted__c,Contacts__r.LastName_Encrypted__c'
                         + ' FROM Address__c where id != null';
         //绫诲瀷绛涢��
         if(!String.isBlank(typeText)){
@@ -541,8 +620,11 @@
             AddressSql += ' and Customer__r.Name LIKE \'%' + txtName.trim() + '%\'' ;
         }
         //璇︾粏鍦板潃绛涢��
-        if(!String.isBlank(txtAddress)){
-            AddressSql += ' and Detailed_Address__c LIKE \'%' + txtAddress.trim() + '%\'' ;
+        // if(!String.isBlank(txtAddress)){
+        //     AddressSql += ' and Detailed_Address__c LIKE \'%' + txtAddress.trim() + '%\'' ;
+        // }
+        if(!String.isBlank(addressDataIds)){
+            AddressSql += ' and AWS_Data_Id__c in('+addressDataIds.trim()+')';
         }
         //鎺掑簭锛屾牴鎹笂娆′慨鏀规椂闂村拰閲囩敤鏃堕棿杩涜闄嶅簭鎺掑簭,鍊间负绌烘斁鍒板悗闈�
         AddressSql += ' order by LastModifiedDate desc,Using_Datetime__c desc NULLS LAST';
@@ -550,6 +632,7 @@
         if(String.isBlank(typeSearchId)){
             AddressSql += ' limit 1000 ';
         }
+        System.debug('AddressSql = '+AddressSql);
         return AddressSql;
     }
     //鏌ヨ鍖婚櫌瀹㈡埛浜哄憳淇℃伅
@@ -601,6 +684,14 @@
     class AddressData {
         //鏁版嵁
         public Address__c address { get; set; }
+
+        public string addressJson { get{
+            if (address == null) {
+                return null;
+            }
+            return JSON.serialize(address);
+        } }
+
         //缂栬緫鎸夐挳鏄惁灞曠ず
         public String canEdit { get; private set; }
         //缂栬緫鎸夐挳鏄惁灞曠ず

--
Gitblit v1.9.1