From f5a94e721ae5a26f817f0df75065b64f1f192eb3 Mon Sep 17 00:00:00 2001
From: Li Jun <buli@deloitte.com.cn>
Date: 星期一, 28 三月 2022 21:43:51 +0800
Subject: [PATCH] PIPLFunctionDeploy0328

---
 force-app/main/default/pages/NewAndEditContact.page                       |    1 
 force-app/main/default/classes/FixtureRentalPDFController.cls             |    2 
 force-app/main/default/pages/ViewReportDecryptInfo.page                   |   30 
 force-app/main/default/classes/NewAndEditASEActivityController.cls        |    4 
 force-app/main/default/classes/NewAndEditAgencyContactController.cls      |   14 
 force-app/main/default/classes/NewAndEditTenderinformationController.cls  |    4 
 force-app/main/default/classes/NewAndEditContactController.cls            |    4 
 force-app/main/default/pages/SearchVisitor.page                           |    6 
 force-app/main/default/pages/ViewEventDecryptInfo.page                    |   11 
 force-app/main/default/pages/ViewOnCallDecrypt.page                       |    1 
 force-app/main/default/classes/NewAndEditRepairSubOrderController.cls     |    4 
 force-app/main/default/classes/NewAndEditEventController.cls              |    4 
 force-app/main/default/pages/NewAndEditAgencyContact.page                 |   17 
 force-app/main/default/pages/SearchContactPage.page                       |    7 
 force-app/main/default/classes/NewAndEditReportController.cls             |   23 
 force-app/main/default/pages/ViewAgencyContactDecryptInfo.page            |   15 
 force-app/main/default/classes/LightningUtil.cls                          |    1 
 force-app/main/default/classes/NFM501FutureController.cls                 |    4 
 force-app/main/default/classes/XinDailyReportController.cls               |    3 
 force-app/main/default/classes/CM_SearchContactServiceController.cls      |    4 
 force-app/main/default/classes/NewAndEditAddressController.cls            |   53 +
 force-app/main/default/pages/NewConsumApply.page                          |   61 +
 force-app/main/default/classes/TestController.cls                         |    4 
 force-app/main/default/pages/NewAndEditASEActivity.page                   |   11 
 force-app/main/default/classes/StraightBackAddressController.cls          |    3 
 force-app/main/default/classes/SearchVisitorController.cls                |    2 
 force-app/main/default/aura/WeeklyReport/WeeklyReportHelper.js            |   65 ++
 force-app/main/default/classes/RentalApplyController.cls                  |   38 
 force-app/main/default/pages/ConsumTrialPDF.page                          |  675 +++++++++++++----------
 force-app/main/default/classes/NewAndEditInquiryFormController.cls        |    4 
 force-app/main/default/classes/NewConsumApplyController.cls               |   49 +
 force-app/main/default/pages/NewAndEditLead.page                          |   13 
 force-app/main/default/pages/CampaignMember.page                          |    8 
 force-app/main/default/aura/WeeklyReport/WeeklyReport.cmp                 |    4 
 force-app/main/default/pages/ViewLeadDecryptInfo.page                     |    6 
 force-app/main/default/classes/PIHelper.cls                               |    4 
 force-app/main/default/classes/NewAndEditLeadController.cls               |    7 
 force-app/main/default/pages/InsReportPDF.page                            |    4 
 force-app/main/default/classes/NewRepairController.cls                    |   40 
 force-app/main/default/pages/NewRepair.page                               |  110 +++
 force-app/main/default/pages/NewAndEditRepairSubOrder.page                |   11 
 force-app/main/default/classes/ConsumTrialPDFController.cls               |    5 
 force-app/main/default/classes/NewAndEditCaseController.cls               |   63 +
 force-app/main/default/pages/SearchAWSContactByNamePage.page              |   10 
 force-app/main/default/classes/NewAndEditBaseController.cls               |   56 +
 force-app/main/default/aura/WeeklyReport/WeeklyReportController.js        |    2 
 force-app/main/default/pages/NewAndEditQIS.page                           |   18 
 force-app/main/default/pages/NewAndEditCase.page                          |    6 
 force-app/main/default/pages/NewRentalApply.page                          |   27 
 force-app/main/default/pages/CM_SearchContactService.page                 |   11 
 force-app/main/default/pages/NewOnCall.page                               |   13 
 force-app/main/default/pages/StraightBackAddress.page                     |   14 
 force-app/main/default/pages/NewAndEditInspectionReport.page              |    9 
 force-app/main/default/classes/NewAndEditQISController.cls                |    4 
 force-app/main/default/pages/NewAndEditReport.page                        |   11 
 force-app/main/default/classes/NewAndEditInspectionReportController.cls   |    4 
 force-app/main/default/classes/OnCallController.cls                       |   27 
 force-app/main/default/classes/DeveloperUtility.cls                       |    4 
 force-app/main/default/classes/NFM606Controller.cls                       |    5 
 force-app/main/default/pages/OFSInsReportLayout.page                      |    2 
 force-app/main/default/pages/NewAndEditInquiryForm.page                   |   31 
 force-app/main/default/pages/NewAndEditAddress.page                       |   11 
 force-app/main/default/classes/SoqlHelper.cls                             |    9 
 force-app/main/default/classes/NewConsumApplyEquipSetDetailController.cls |    4 
 64 files changed, 1,112 insertions(+), 565 deletions(-)

diff --git a/force-app/main/default/aura/WeeklyReport/WeeklyReport.cmp b/force-app/main/default/aura/WeeklyReport/WeeklyReport.cmp
index 3d14bbf..351a5df 100644
--- a/force-app/main/default/aura/WeeklyReport/WeeklyReport.cmp
+++ b/force-app/main/default/aura/WeeklyReport/WeeklyReport.cmp
@@ -82,7 +82,8 @@
     <aura:attribute name="allselectlistAgencyPerson" type="Map"/>
     <!-- PIPL update Yin Mingjie 21/02/2022 end -->
     <!-- 鎵归噺娣诲姞鍛ㄦ姤 end-->
-
+    <ltng:require scripts="{! $Resource.AWSService+'/AWSService.js' }" />
+    <ltng:require scripts="{! $Resource.jquery183minjs }" />
     
     <!--銉兗銉変腑...-->
     <aura:renderIf isTrue="{!v.login}">
@@ -149,6 +150,7 @@
                             <span class="slds-truncate" title="Name">{!v.fieldsmap.doctor2__r}</span>
                             PIPL update Yin Mingjie 21/02/2022 end-->
                             <span class="slds-truncate" title="Name">{!v.fieldsmap.Agency_Contact__c}</span>
+                            
                         </th>
                         <th class="table_header slds-text-title--caps">
                             <span class="slds-truncate" title="Name">{!v.fieldsmap.visitor_title__c}</span>
diff --git a/force-app/main/default/aura/WeeklyReport/WeeklyReportController.js b/force-app/main/default/aura/WeeklyReport/WeeklyReportController.js
index 12274fc..29c6056 100644
--- a/force-app/main/default/aura/WeeklyReport/WeeklyReportController.js
+++ b/force-app/main/default/aura/WeeklyReport/WeeklyReportController.js
@@ -119,7 +119,7 @@
         // var eventFields = event.getParam("fields");
         // eventFields["Agency_Hospital__c"] = component.get('v.hospitalLinkId');
         // component.find('recordEditForm').submit(eventFields);
-         // vivek 娣诲姞楠岃瘉 end
+        // vivek 娣诲姞楠岃瘉 end
     },
     
     createCancel : function(component, event, helper) {
diff --git a/force-app/main/default/aura/WeeklyReport/WeeklyReportHelper.js b/force-app/main/default/aura/WeeklyReport/WeeklyReportHelper.js
index f49b1b0..5883a51 100644
--- a/force-app/main/default/aura/WeeklyReport/WeeklyReportHelper.js
+++ b/force-app/main/default/aura/WeeklyReport/WeeklyReportHelper.js
@@ -12,8 +12,8 @@
                 component.set('v.allselectlist',res.allselectlist);
                 component.set('v.doclist',res.doclist);
                 // PIPL update Yin Mingjie 21/02/2022 start
-                // component.find('select_agency_person').set('v.options', this.conv_selected(res.allselectlist.AgencyPerson__c));
-                this.search_contact(component, event, helper,res.allselectlist.AgencyPerson__c);
+                component.find('select_agency_person').set('v.options', this.conv_selected(res.allselectlist.AgencyPerson__c));
+                // this.search_contact(component, event, helper,res.allselectlist.AgencyPerson__c);
                 // PIPL update Yin Mingjie 21/02/2022 end
                 component.find('select_department').set('v.options', this.conv_selected(res.allselectlist.Department_Cateogy__c));
                 component.find('select_purpose_type').set('v.options', this.conv_selected(res.allselectlist.Purpose_Type__c));
@@ -1220,6 +1220,20 @@
     },
 
     insert_agencycontact : function(component,token,newUrl,payload,agencyHospitalid,helper) {
+
+        AWSService.insert(newUrl,payload,function(result){
+            if(result.status == '0'){
+                $A.getCallback(function(){
+                    helper.to_agencycontact(component,result,agencyHospitalid);
+                })();
+
+            }else{
+                console.log('AWS status error:' + result)
+                component.set('v.login',false);
+                component.find('OppMessage').setError('AWS insert error.');
+            }
+        },token);
+        /*
         fetch(newUrl, {
             method: 'POST',
             body: payload,
@@ -1244,7 +1258,7 @@
             console.log('AWS insert error:' + error)
             component.set('v.login',false);
             component.find('OppMessage').setError('AWS insert error.');
-        });
+        });*/
         
     },
 
@@ -1866,9 +1880,8 @@
     saveRecords : function(component,event){
         component.set('v.login',true);
         var action = component.get("c.processData");
-        debugger;
         var selectDate = component.find('select_date').get('v.value');
-        var fieldsList=['Name','Phone','AccountNumber']; //Please write your code dynamic fields
+        var fieldsList=['Name','Phone','AccountNumber']; //Please write your code dynamic 
         var sss=component.get("v.fileContentData");
         action.setParams({ 
             fileData : component.get("v.fileContentData"),
@@ -2043,7 +2056,47 @@
                 var res = response.getReturnValue();
                 console.log('杈撳叆鐨勫紑濮嬫棩鏈�3'+res);
                 component.set('v.login',false);
-                this.showExportDate(component,res);
+
+                // PI 鏀归�� By Bright 20220328
+                if(true){
+                    let awsids = [];
+                    for (let ri in res) {
+                        if(res[ri] && res[ri].doctor2__r && res[ri].doctor2__r.AWS_Data_Id__c){
+                            awsids.push(res[ri].doctor2__r.AWS_Data_Id__c);
+                        }
+                    }                    
+                    if(awsids.length > 0){
+                        let awsurl = component.get('v.awsurl');
+                        
+                        AWSService.search(awsurl.searchUrl,{
+                            dataIds:awsids
+                        }, function(data){
+                            if(data && data.object && data.object.length){
+                                let m = {};
+                                for(let di in data.object){
+                                    if(data.object[di] && data.object[di].dataId){
+                                        m[data.object[di].dataId] = data.object[di];
+                                    }
+                                }
+                                
+                                for(let ri in res){
+                                    if(res[ri] && res[ri].doctor2__r && res[ri].doctor2__r.AWS_Data_Id__c && m.hasOwnProperty(res[ri].doctor2__r.AWS_Data_Id__c)){
+                                        res[ri].doctor2__r.Name = m[res[ri].doctor2__r.AWS_Data_Id__c].name;
+                                        res[ri].visitor_title__c = m[res[ri].doctor2__r.AWS_Data_Id__c].doctorDivision1;
+                                        
+                                    }
+                                }
+                            }
+                            helper.showExportDate(component, res);
+                            
+                            component.set('v.login', false);
+                        }, awsurl.token);
+                    }else{
+                        helper.showExportDate(component, res);
+                    }
+                }
+                
+
                 component.set('v.reports_date', res);
                 
             }else{
diff --git a/force-app/main/default/classes/CM_SearchContactServiceController.cls b/force-app/main/default/classes/CM_SearchContactServiceController.cls
index b50def8..cebda87 100644
--- a/force-app/main/default/classes/CM_SearchContactServiceController.cls
+++ b/force-app/main/default/classes/CM_SearchContactServiceController.cls
@@ -24,7 +24,7 @@
         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!='' limit :contactPIIntegration.maxQueryNumber]);
+            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>();
@@ -91,7 +91,7 @@
 
         system.debug('=====searchStr:' + searchStr);
 
-        searchStr += 'limit 500';
+        searchStr += ' order by lastmodifieddate desc limit 500';
 
         List<Contact> searchResult = Database.query(searchStr);
 
diff --git a/force-app/main/default/classes/ConsumTrialPDFController.cls b/force-app/main/default/classes/ConsumTrialPDFController.cls
index 265e304..6a2e22f 100644
--- a/force-app/main/default/classes/ConsumTrialPDFController.cls
+++ b/force-app/main/default/classes/ConsumTrialPDFController.cls
@@ -22,6 +22,8 @@
     public String errorMsg { get; set; }  // 閿欒淇℃伅
 
     public string staticResource { get; private set; }
+    public string staticResourceCon { get; private set; }
+    public string staticResourceFile { get; private set; }
     public string BRSrc{get;private set;}
     public string QRSrc{get;private set;}
 
@@ -32,6 +34,8 @@
         }
         pdfPageList = new List<PdfPageClass>();
         staticResource = JSON.serialize(PIHelper.getPIIntegrationInfo('Consum_Apply_Equipment_Set_Detail__c'));
+        staticResourceCon = JSON.serialize(PIHelper.getPIIntegrationInfo('Consum_Apply__c'));
+        staticResourceFile = JSON.serialize(PIHelper.getPIIntegrationInfo('Document'));
     }
 
     /**
@@ -87,6 +91,7 @@
                      , Post_Code__c  // 閭紪
                      , Loaner_received_staff__c  // 鎺ユ敹浜哄鍚�
                      , Loaner_received_staff_phone__c  // 鎺ユ敹浜虹數璇�
+            		,AWS_Data_Id__c
                   FROM Consum_Apply__c
                  WHERE Id = :targetConsumApplyId
         ];
diff --git a/force-app/main/default/classes/DeveloperUtility.cls b/force-app/main/default/classes/DeveloperUtility.cls
index 63de686..a611cc1 100644
--- a/force-app/main/default/classes/DeveloperUtility.cls
+++ b/force-app/main/default/classes/DeveloperUtility.cls
@@ -1,6 +1,6 @@
 public class DeveloperUtility {
 	
-    public static List<HTTPResponse> CreateFields(string sobject_name,string [] fields, boolean create_field,boolean create_config){
+    /**public static List<HTTPResponse> CreateFields(string sobject_name,string [] fields, boolean create_field,boolean create_config){
         
         PI_Policy_Configuration__c ppc = null;
         if(create_config){
@@ -127,5 +127,5 @@
             return null;
         }
         
-    }
+    }*/
 }
\ No newline at end of file
diff --git a/force-app/main/default/classes/FixtureRentalPDFController.cls b/force-app/main/default/classes/FixtureRentalPDFController.cls
index 6c09c3b..e46da8c 100644
--- a/force-app/main/default/classes/FixtureRentalPDFController.cls
+++ b/force-app/main/default/classes/FixtureRentalPDFController.cls
@@ -32,6 +32,7 @@
     public Boolean IsMain; //鏄惁鏄幇鍦板垎閰嶇殑涓诲崟 20201120 LJH OCSM_BP5-61 add
     
     public string staticResource { get; private set; }
+    public string staticResourceFile { get; private set; }
     public Boolean addFlag { get; private set; }//鏁忔劅鍦板潃浣跨敤鏍囪
     public String qrcode { get; private set; }
     public FixtureRentalPDFController() {
@@ -41,6 +42,7 @@
         // rentalApplyId = ApexPages.currentPage().getParameters().get('raid');//20201120 ljh 
         String tempStr = ApexPages.currentPage().getParameters().get('raid');
         staticResource = JSON.serialize(PIHelper.getPIIntegrationInfo('Rental_Apply__c'));
+        staticResourceFile = JSON.serialize(PIHelper.getPIIntegrationInfo('Document'));
         addFlag = false;
         rentalApplyId = new List<String>();
         if(tempStr != null){
diff --git a/force-app/main/default/classes/LightningUtil.cls b/force-app/main/default/classes/LightningUtil.cls
index 25ccdd9..0c0c13a 100644
--- a/force-app/main/default/classes/LightningUtil.cls
+++ b/force-app/main/default/classes/LightningUtil.cls
@@ -194,6 +194,7 @@
     public static List<Agency_Report__c> selectMAgencyReport(Date date1, Date date2 ,List<Contact> conMList) {
         List<Agency_Report__c> reportlist = [Select Id, Name, Report_Date__c, Product_Category1__r.Name, Product_Category2__r.Name, Product_Category3__r.Name, Product_Category1__c, Product_Category2__c, Product_Category3__c,ConsumptionOfConsumables__c,warlocksNumber__c,WorkMark__c,Department_Cateogy__c, DealerPersonnel__c,WorkRecord__c, ProductClassification__c,WarlockClassification__c,ProductCcategory__c,productCategories__c,Purpose_Type__c, Agency_Report_Header__c, Agency_Hospital__r.Name, Agency_Hospital__r.Hospital__c, OppName__c,
                             Person_In_Charge2__c,DealerPersonnel__r.Name,Person_In_Charge2__r.Name, doctor2__c, doctor2__r.Name, Submit_date__c,//鏀彺闇�姹係upportNeeds__c
+                            doctor2__r.AWS_Data_Id__c,// 20220222 PI鏀归�� by Bright
                             Product_Category__c, Product_Category__r.Name, Result__c, visitor_title__c, Opportunity__c, Opportunity__r.Name,EffectProgress__c,SupportNeeds__c,
                             UseProduct1__c,UseProduct2__c,UseProduct3__c,UseProduct1__r.Name,UseProduct2__r.Name,UseProduct3__r.Name  
                             From Agency_Report__c
diff --git a/force-app/main/default/classes/NFM501FutureController.cls b/force-app/main/default/classes/NFM501FutureController.cls
index 9ad53de..5a6ef11 100644
--- a/force-app/main/default/classes/NFM501FutureController.cls
+++ b/force-app/main/default/classes/NFM501FutureController.cls
@@ -161,7 +161,11 @@
             for (NFM501Controller.ListItem LI: getQLMData1.data.list1) {
                 // 闋呯洰杌㈤�併伄銈汇儍銉�
                 Tender_information__c te1 = new Tender_information__c();
+
                 //add aws dataid sushanhu 20220223 start
+                if(String.isEmpty(LI.DataId)){
+                    continue;
+                }
                 te1.AWS_Data_Id__c = LI.DataId;
                 //add aws dataid sushanhu 20220223 end
                 if (String.isBlank(LI.projectId)) {
diff --git a/force-app/main/default/classes/NFM606Controller.cls b/force-app/main/default/classes/NFM606Controller.cls
index 9f5cd05..9b2dd95 100644
--- a/force-app/main/default/classes/NFM606Controller.cls
+++ b/force-app/main/default/classes/NFM606Controller.cls
@@ -288,11 +288,14 @@
             responseBody=result.responseBody;
             //Map<String, Object> res = (Map<String, Object>)JSON.deserializeUntyped(responseBody);
             //status=(String)res.get(status);
-            if ('202'.equals(result.status)) {
+            status =result.status;
+            system.debug('stadtucode--'+result.status);
+            if ('202'.equals(status)) {
                 logstr += status+'\n';
                      rowDataSFDC.retry_cnt__c = 0;
             }
             else {
+                logstr+=responseBody+'\n';
                 rowDataSFDC = NFMUtil.LogAutoSend(rowDataSFDC, null, status);
             }
             //update to aws 20220228 sushanhu end
diff --git a/force-app/main/default/classes/NewAndEditASEActivityController.cls b/force-app/main/default/classes/NewAndEditASEActivityController.cls
index 6ec94a8..01ebee4 100644
--- a/force-app/main/default/classes/NewAndEditASEActivityController.cls
+++ b/force-app/main/default/classes/NewAndEditASEActivityController.cls
@@ -17,7 +17,9 @@
     public NewAndEditASEActivityController(ApexPages.StandardController controller) {
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('ASEActivity__c').getDescribe().fields.getMap().keyset());  
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
-        controller.addFields(fieldList);
+        if (!Test.isRunningTest()) { 
+            controller.addFields(fieldList);
+        }
         LookUpOverrideFields.add('ReporterASE__c');
         Init(controller.getRecord());
 
diff --git a/force-app/main/default/classes/NewAndEditAddressController.cls b/force-app/main/default/classes/NewAndEditAddressController.cls
index 4fca044..8826764 100644
--- a/force-app/main/default/classes/NewAndEditAddressController.cls
+++ b/force-app/main/default/classes/NewAndEditAddressController.cls
@@ -39,7 +39,8 @@
         //鑾峰彇鎵�鏈夊瓧娈�
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Address__c').getDescribe().fields.getMap().keyset());  
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
-        controller.addFields(fieldList);
+        if (!Test.isRunningTest()) { 
+            controller.addFields(fieldList);}
         SObject obj = controller.getRecord();        
         if(obj.Id != null){
             //鏇存柊
@@ -92,19 +93,21 @@
             system.debug('field API'+fieldAPI);
             Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
             String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
-            if(String.isBlank(fieldValue)){
+            if(!fieldAPIToTypeMap.containskey(fieldAPI)){
                 continue;
             }
             if(String.valueOf(fielddataType)=='DATE'){
-                addressInfo.put(fieldAPI, Date.valueOf(String.valueOf(fieldValueMap.get(fieldAPI)).replace('/', '-')));
+                addressInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-')));              
             }else if(String.valueOf(fielddataType)=='DATETIME'){
                 String dt = String.valueOf(fieldValueMap.get(fieldAPI));
                 if(String.isNotBlank(dt)&&dt.contains('T')){
                     dt = dt.replace('T',' ');
                     addressInfo.put(fieldAPI, Datetime.valueOfGmt(dt));
+                }else {
+                    addressInfo.put(fieldAPI,fieldValue);
                 }             
             }else if(String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
-                addressInfo.put(fieldAPI, Decimal.valueOf(String.valueOf(fieldValueMap.get(fieldAPI))));
+                addressInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?null:Decimal.valueOf(fieldValue.replace(',', ''))); 
             } else if(String.valueof(fielddataType)=='BOOLEAN'){
                 addressInfo.put(fieldAPI, fieldValueMap.get(fieldAPI));
             }else {
@@ -116,7 +119,8 @@
         String status = 'success';    
         Response resp = new Response();
         Savepoint sp = Database.setSavepoint();
-        String rid = '';
+        // String rid = '';
+        String awsDataId = '';
         try{
             System.debug('abcde');
             if(isNew){
@@ -124,28 +128,49 @@
                 insert addressInfo;
             }else{
                 System.debug('into update');
-                String awsDataId = (String)addressInfo.get('AWS_Data_Id__c');
+                awsDataId = (String)addressInfo.get('AWS_Data_Id__c');
                 System.debug('awsDataId = ' + awsDataId);
                 Address__c[] addresses = [select id from Address__c where AWS_Data_Id__c =:awsDataId];
                 System.debug('addresses[0].id = ' + addresses[0].id);
                 addressInfo.put('Id',addresses[0].id);//For testing;
                 update addressInfo;
             }
-            rid=addressInfo.Id;
-            PIHelper.saveTransLog(sobjectTypeValue,(String)addressInfo.get('AWS_Data_Id__c'),rid,transId,addressJson ,status,'');
+            // rid=addressInfo.Id;
             resp.recordId = addressInfo.Id;
-            resp.message = '';
+            // resp.message = 'success saveAddress';
             resp.status = status;
+            PIHelper.saveTransLog(sobjectTypeValue, awsDataId, addressInfo.Id, transId, addressJson , status,'');
             System.debug('resp from sfdx back-end' + resp);
             return resp;
 
-        } catch(Exception e) {
+        } catch(DmlException e) {
+            Integer index = 0;
+            System.debug(e.getNumDml());
+            System.debug(e.getDmlFields(index));
+            System.debug(e.getDmlId(index));
+            System.debug(e.getDmlIndex(index));
+            System.debug(e.getDmlMessage(index));
+            System.debug(e.getDmlStatusCode(index));
+            System.debug(e.getDmlType(index));
+            system.debug(e.getMessage());
+            system.debug(e.getStackTraceString());
+
             System.debug('into catch'+e.getMessage());
             Database.rollback(sp);
-            status = 'fail';
-            PIHelper.saveTransLog(sobjectTypeValue,(String)addressInfo.get('AWS_Data_Id__c'),rid,transId,addressJson,status,e.getMessage());
-            resp.message = e.getMessage();            
-            resp.status = status;
+            resp.status = 'Exception';
+            resp.message ='淇濆瓨澶辫触锛屽師鍥�:'+ e.getDmlMessage(index);
+            PIHelper.saveTransLog(sobjectTypeValue, awsDataId, addressInfo.Id, transId, addressJson, status, e.getMessage()+e.getStackTraceString());
+            return resp;
+            
+        }catch(Exception e) {
+            System.debug('into catch'+e.getMessage());
+            Database.rollback(sp);
+            // status = 'Exception';     
+            // resp.status = status;
+            resp.status = 'Exception';
+            resp.message = e.getMessage()+e.getStackTraceString();       
+            PIHelper.saveTransLog(sobjectTypeValue, awsDataId, addressInfo.Id, transId, addressJson, status, resp.message);
+            // PIHelper.saveTransLog(sobjectTypeValue,(String)addressInfo.get('AWS_Data_Id__c'),rid,transId,addressJson,status,e.getMessage());
             return resp;
         }
     }
diff --git a/force-app/main/default/classes/NewAndEditAgencyContactController.cls b/force-app/main/default/classes/NewAndEditAgencyContactController.cls
index 341550c..c2d60ca 100644
--- a/force-app/main/default/classes/NewAndEditAgencyContactController.cls
+++ b/force-app/main/default/classes/NewAndEditAgencyContactController.cls
@@ -1,15 +1,25 @@
 global without sharing class NewAndEditAgencyContactController extends NewAndEditBaseController 
 {
 	public string staticResourceContact{get;private set;}
+    public string staticResourceAWSContact{get;private set;}
+    public String awsContactId{set;get;}//From agency contact's contactId
     global NewAndEditAgencyContactController(ApexPages.StandardController controller) {
-        
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Agency_Contact__c').getDescribe().fields.getMap().keyset());  
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
         controller.addFields(fieldList);
         LookUpOverrideFields.add('Contact__c');
         Init(controller.getRecord());
-        PIHelper.PIIntegration piIntegration = PIHelper.getPIIntegrationInfo('Contact');
+        if(controller.getRecord()!=null && controller.getRecord().get('Contact__c')!=null){
+            String contactIdValue = (String)controller.getRecord().get('Contact__c');
+            List<Contact> conList = new List<Contact>([select Id,AWS_Data_Id__c from Contact where id =:contactIdValue]);
+            if(conList.size()>0){
+                awsContactId = conList[0].AWS_Data_Id__c;
+            }
+        }
+        PIHelper.PIIntegration piIntegration = PIHelper.getPIIntegrationInfo('Agency_Contact__c');//Updated By Lijun 20220326
         staticResourceContact = JSON.serialize(piIntegration);
+        PIHelper.PIIntegration piConIntegration = PIHelper.getPIIntegrationInfo('Contact');//Updated By Lijun 20220326
+        staticResourceAWSContact = JSON.serialize(piConIntegration);
     }
 
     
diff --git a/force-app/main/default/classes/NewAndEditBaseController.cls b/force-app/main/default/classes/NewAndEditBaseController.cls
index 53b2e3c..57b3418 100644
--- a/force-app/main/default/classes/NewAndEditBaseController.cls
+++ b/force-app/main/default/classes/NewAndEditBaseController.cls
@@ -47,6 +47,7 @@
 
     public String sobjectPrefix{get;private set;}
     public String SaveAndNewButtonUrl{get;private set;}
+    @TestVisible
     public List<String> VLookUpFields{get;private set;}
     public String VLookUpFieldsJson{get{return Json.serialize(VLookUpFields);}}
     public List<String> LookUpOverrideFields{get;private set;}
@@ -189,31 +190,7 @@
         Schema.SObjectType leadSchema = schemaMap.get(sobjectTypeValue);
         Map<String, Schema.SObjectField> fieldAPIToTypeMap = leadSchema.getDescribe().fields.getMap();
         Map<String,Object> fieldValueMap = (Map<String,Object>)JSON.deserializeUntyped(leadJson);
-        Sobject leadInfo = sobj;
-        for (String fieldAPI: fieldValueMap.keySet()) {
-            system.debug('field API='+fieldAPI);
-            Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
-            String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
-            system.debug('Field Type:'+fielddataType+' field Value='+fieldValue);
-            if(String.valueOf(fielddataType)=='DATE'){
-                leadInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-')));              
-            }else if(String.valueOf(fielddataType)=='DATETIME'){
-                if(String.isNotBlank(fieldValue)&&fieldValue.contains('T')){
-                    fieldValue = fieldValue.replace('T',' ');
-                    leadInfo.put(fieldAPI, Datetime.valueOfGmt(fieldValue));
-                }else{
-                    leadInfo.put(fieldAPI, null);
-                }                    
-            }else if(String.valueof(fielddataType)=='CURRENCY'|| String.valueof(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
-                leadInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?0:Decimal.valueOf(fieldValue)); 
-            } else if(String.valueof(fielddataType)=='BOOLEAN'){
-                leadInfo.put(fieldAPI, fieldValueMap.get(fieldAPI));
-            }else {
-                leadInfo.put(fieldAPI,fieldValue);
-            }                  
-        }
-
-        system.debug('for (String fieldAPI: fieldValueMap.keySet()) end');
+        
 
         
         //2. Save Record Process
@@ -221,8 +198,37 @@
         Response resp = new Response();
         String awsDataId = '';
         Savepoint sp = Database.setSavepoint();
+        Sobject leadInfo = sobj;
         try{
             System.debug('abcde');
+            for (String fieldAPI: fieldValueMap.keySet()) {
+                system.debug('field API='+fieldAPI);
+                if(!fieldAPIToTypeMap.containskey(fieldAPI)){
+                    continue;
+                }
+                Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
+                String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
+                system.debug('Field Type:'+fielddataType+' field Value='+fieldValue);
+                if(String.valueOf(fielddataType)=='DATE'){
+                    leadInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-')));              
+                }else if(String.valueOf(fielddataType)=='DATETIME'){
+                    if(String.isNotBlank(fieldValue)&&fieldValue.contains('T')){
+                        fieldValue = fieldValue.replace('T',' ');
+                        leadInfo.put(fieldAPI, Datetime.valueOfGmt(fieldValue));
+                    }else{
+                        leadInfo.put(fieldAPI, null);
+                    }                    
+                }else if(String.valueof(fielddataType)=='CURRENCY'|| String.valueof(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
+                    leadInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?null:Decimal.valueOf(fieldValue.replace(',', ''))); 
+                } else if(String.valueof(fielddataType)=='BOOLEAN'){
+                    leadInfo.put(fieldAPI, fieldValueMap.get(fieldAPI));
+                }else {
+                    leadInfo.put(fieldAPI,fieldValue);
+                }                  
+            }
+
+            system.debug('for (String fieldAPI: fieldValueMap.keySet()) end');
+            
             if(isNew){
                 System.debug('leadInfozhj = ' + leadInfo);
                 if(!Test.isRunningTest()){
diff --git a/force-app/main/default/classes/NewAndEditCaseController.cls b/force-app/main/default/classes/NewAndEditCaseController.cls
index a1a69fb..f390da1 100644
--- a/force-app/main/default/classes/NewAndEditCaseController.cls
+++ b/force-app/main/default/classes/NewAndEditCaseController.cls
@@ -37,7 +37,9 @@
         //鑾峰彇鎵�鏈夊瓧娈�
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Case').getDescribe().fields.getMap().keyset());  
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
-        controller.addFields(fieldList);
+        if (!Test.isRunningTest()) {
+            controller.addFields(fieldList);
+        }
         SObject obj = controller.getRecord();        
         if(obj.Id != null){
             //鏇存柊
@@ -87,26 +89,41 @@
         //鑷畾涔夋牸寮忚浆鎹�
         for (String fieldAPI: fieldValueMap.keySet()) {
             system.debug('field API'+fieldAPI);
-            Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
-            String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
-            if(String.isBlank(fieldValue)){
+            if(!fieldAPIToTypeMap.containskey(fieldAPI)){
                 continue;
             }
+            Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
+            String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
             if(String.valueOf(fielddataType)=='DATE'){
-                caseInfo.put(fieldAPI, Date.valueOf(String.valueOf(fieldValueMap.get(fieldAPI)).replace('/', '-')));
+                caseInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-')));              
+                // caseInfo.put(fieldAPI, Date.valueOf(String.valueOf(fieldValueMap.get(fieldAPI)).replace('/', '-')));
             }else if(String.valueOf(fielddataType)=='DATETIME'){
-                String dt = String.valueOf(fieldValueMap.get(fieldAPI));
-                if(String.isNotBlank(dt)&&dt.contains('T')){
-                    dt = dt.replace('T',' ');
-                    caseInfo.put(fieldAPI, Datetime.valueOfGmt(dt));
-                }             
-            }else if(String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
-                caseInfo.put(fieldAPI, Decimal.valueOf(String.valueOf(fieldValueMap.get(fieldAPI))));
+                if(String.isNotBlank(fieldValue)&&fieldValue.contains('T')){
+                    fieldValue = fieldValue.replace('T',' ');
+                    caseInfo.put(fieldAPI, Datetime.valueOfGmt(fieldValue));
+                }else{
+                    caseInfo.put(fieldAPI, null);
+                }  
+                // String dt = String.valueOf(fieldValueMap.get(fieldAPI));
+                // if(String.isNotBlank(dt)&&dt.contains('T')){
+                //     dt = dt.replace('T',' ');
+                //     caseInfo.put(fieldAPI, Datetime.valueOfGmt(dt));
+                // }             
+            // }else if(String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
+            //     caseInfo.put(fieldAPI, Decimal.valueOf(String.valueOf(fieldValueMap.get(fieldAPI))));
+            }else if(String.valueof(fielddataType)=='CURRENCY'|| String.valueof(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
+                caseInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?null:Decimal.valueOf(fieldValue.replace(',', ''))); 
             } else if(String.valueof(fielddataType)=='BOOLEAN'){
                 caseInfo.put(fieldAPI, fieldValueMap.get(fieldAPI));
             }else {
                 caseInfo.put(fieldAPI, String.valueOf(fieldValueMap.get(fieldAPI)));
             }                  
+        }
+
+        System.debug('caseInfo.Account__c='+caseInfo.Account__c);
+        if (!String.isBlank(caseInfo.ContactId) && (String.isBlank(caseInfo.Account__c) || Id.valueOf(caseInfo.Account__c).to15() =='000000000000000')) {
+            Contact c = [select id,AccountId from Contact where id = :caseInfo.ContactId];
+            caseInfo.Account__c = c.AccountId;
         }
         
         //2. Save Record Process
@@ -124,6 +141,7 @@
                 String awsDataId = (String)caseInfo.get('AWS_Data_Id__c');
                 System.debug('awsDataId = ' + awsDataId);
                 Case[] cases = [select id from Case where AWS_Data_Id__c =:awsDataId];
+                System.debug('cases ========================= ' + cases);
                 System.debug('Cases[0].id = ' + cases[0].id);
                 caseInfo.put('Id',cases[0].id);//For testing;
                 update caseInfo;
@@ -135,7 +153,26 @@
             resp.status = status;
             System.debug('resp from sfdx back-end' + resp);
             return resp;
-        } catch(Exception e) {
+        } catch(DmlException e) {
+            Integer index = 0;
+            System.debug(e.getNumDml());
+            System.debug(e.getDmlFields(index));
+            System.debug(e.getDmlId(index));
+            System.debug(e.getDmlIndex(index));
+            System.debug(e.getDmlMessage(index));
+            System.debug(e.getDmlStatusCode(index));
+            System.debug(e.getDmlType(index));
+			system.debug(e.getMessage());
+            system.debug(e.getStackTraceString());
+
+            System.debug('into catch'+e.getMessage());
+            Database.rollback(sp);
+            resp.status = 'Exception';
+            resp.message ='淇濆瓨澶辫触锛屽師鍥�:'+ e.getDmlMessage(index);
+            PIHelper.saveTransLog(sobjectTypeValue,(String)caseInfo.get('AWS_Data_Id__c'),rid,transId, caseJson ,status,e.getMessage()+e.getStackTraceString());
+            return resp;
+            
+        }catch(Exception e) {
             System.debug('into catch'+e.getMessage());
             Database.rollback(sp);
             status = 'fail';
diff --git a/force-app/main/default/classes/NewAndEditContactController.cls b/force-app/main/default/classes/NewAndEditContactController.cls
index b87b107..022e74b 100644
--- a/force-app/main/default/classes/NewAndEditContactController.cls
+++ b/force-app/main/default/classes/NewAndEditContactController.cls
@@ -6,7 +6,9 @@
         
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Contact').getDescribe().fields.getMap().keyset());  
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
-        controller.addFields(fieldList);
+        if (!Test.isRunningTest()) {
+            controller.addFields(fieldList);
+        }
         Init(controller.getRecord());
         String contactId = controller.getRecord().Id;
         if(contactId != null){
diff --git a/force-app/main/default/classes/NewAndEditEventController.cls b/force-app/main/default/classes/NewAndEditEventController.cls
index 7d8c2b2..2307420 100644
--- a/force-app/main/default/classes/NewAndEditEventController.cls
+++ b/force-app/main/default/classes/NewAndEditEventController.cls
@@ -14,7 +14,9 @@
         
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Event').getDescribe().fields.getMap().keyset());  
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
-        controller.addFields(fieldList);
+        if (!Test.isRunningTest()) { 
+            controller.addFields(fieldList);
+        }
         Init(controller.getRecord());
         //1. get 璁块棶瀵硅薄ID
         //query event by controller.getRecord().Id;
diff --git a/force-app/main/default/classes/NewAndEditInquiryFormController.cls b/force-app/main/default/classes/NewAndEditInquiryFormController.cls
index 2b34ea0..83308e8 100644
--- a/force-app/main/default/classes/NewAndEditInquiryFormController.cls
+++ b/force-app/main/default/classes/NewAndEditInquiryFormController.cls
@@ -11,7 +11,9 @@
     public NewAndEditInquiryFormController(ApexPages.StandardController controller) {
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Inquiry_form__c').getDescribe().fields.getMap().keyset());  
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
-        controller.addFields(fieldList);
+        if (!Test.isRunningTest()) { 
+            controller.addFields(fieldList);
+        }
         // contact lookup
         LookUpOverrideFields.add('Contact_Name__c');
         LookUpOverrideFields.add('Lead_link__c');
diff --git a/force-app/main/default/classes/NewAndEditInspectionReportController.cls b/force-app/main/default/classes/NewAndEditInspectionReportController.cls
index 6ca96d4..f9bf615 100644
--- a/force-app/main/default/classes/NewAndEditInspectionReportController.cls
+++ b/force-app/main/default/classes/NewAndEditInspectionReportController.cls
@@ -4,7 +4,9 @@
         
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Inspection_Report__c').getDescribe().fields.getMap().keyset());  
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
-        controller.addFields(fieldList);
+        if (!Test.isRunningTest()) { 
+            controller.addFields(fieldList);
+        }
         Init(controller.getRecord());
 
         //AWSToSobjectNonEncryptedMap.put('responsiblePersonHP', 'Responsible_Person__c');
diff --git a/force-app/main/default/classes/NewAndEditLeadController.cls b/force-app/main/default/classes/NewAndEditLeadController.cls
index 45342a8..c697da7 100644
--- a/force-app/main/default/classes/NewAndEditLeadController.cls
+++ b/force-app/main/default/classes/NewAndEditLeadController.cls
@@ -90,7 +90,7 @@
                     contactDataId = c.AWS_Data_Id__c;
                 }
                 //鏌ヨ鎴樼暐绉戝鍒嗙被
-                List<Contact> cs = [select Account.Department_Class__c from Contact where id='0030l00000mldeG'];
+                List<Contact> cs = [select Account.Department_Class__c from Contact where id=:contactId];
                 if(cs.size()>0){
                     controller.getRecord().put('Department_Class__c',cs[0].Account.Department_Class__c);
                 }
@@ -139,6 +139,9 @@
         //鑷畾涔夋牸寮忚浆鎹�
         for (String fieldAPI: fieldValueMap.keySet()) {
             system.debug('field API='+fieldAPI);
+            if(!fieldAPIToTypeMap.containskey(fieldAPI)){
+                continue;
+            }
             Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
             String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
             system.debug('Field Type:'+fielddataType+' field Value='+fieldValue);
@@ -152,7 +155,7 @@
                     leadInfo.put(fieldAPI, null);
                 }                    
             }else if(String.valueof(fielddataType)=='CURRENCY'|| String.valueof(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
-                leadInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?0:Decimal.valueOf(fieldValue)); 
+                leadInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?null:Decimal.valueOf(fieldValue.replace(',', ''))); 
             } else if(String.valueof(fielddataType)=='BOOLEAN'){
                 leadInfo.put(fieldAPI, fieldValueMap.get(fieldAPI));
             }else {
diff --git a/force-app/main/default/classes/NewAndEditQISController.cls b/force-app/main/default/classes/NewAndEditQISController.cls
index 899961a..3ec4469 100644
--- a/force-app/main/default/classes/NewAndEditQISController.cls
+++ b/force-app/main/default/classes/NewAndEditQISController.cls
@@ -3,7 +3,9 @@
     public NewAndEditQISController(ApexPages.StandardController controller) {
         Input_Required_Field_Msg = Label.Input_Required_Field_Msg;
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('QIS_Report__c').getDescribe().fields.getMap().keyset());  
-        controller.addFields(fieldList);
+        if (!Test.isRunningTest()) { 
+            controller.addFields(fieldList);
+        }
         Init(controller.getRecord());
         
         
diff --git a/force-app/main/default/classes/NewAndEditRepairSubOrderController.cls b/force-app/main/default/classes/NewAndEditRepairSubOrderController.cls
index 0c99dfb..1cddce3 100644
--- a/force-app/main/default/classes/NewAndEditRepairSubOrderController.cls
+++ b/force-app/main/default/classes/NewAndEditRepairSubOrderController.cls
@@ -16,7 +16,9 @@
     public NewAndEditRepairSubOrderController(ApexPages.StandardController controller) {
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('RepairSubOrder__c').getDescribe().fields.getMap().keyset());  
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
-        controller.addFields(fieldList);
+        if (!Test.isRunningTest()) { 
+            controller.addFields(fieldList);
+        }
         LookUpOverrideFields.add('Receiver__c');
         LookUpOverrideFields.add('Applicanter__c');
         //contactId = LookUpOverrideFieldsMapJson;
diff --git a/force-app/main/default/classes/NewAndEditReportController.cls b/force-app/main/default/classes/NewAndEditReportController.cls
index 90e5e6c..8985c5e 100644
--- a/force-app/main/default/classes/NewAndEditReportController.cls
+++ b/force-app/main/default/classes/NewAndEditReportController.cls
@@ -30,7 +30,9 @@
         //鑾峰彇鎵�鏈夊瓧娈�
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Report__c').getDescribe().fields.getMap().keyset());  
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
-        controller.addFields(fieldList);
+        if (!Test.isRunningTest()) { 
+            controller.addFields(fieldList);
+        }
         SObject obj = controller.getRecord();        
         if(obj.Id != null){
             //鏇存柊
@@ -81,6 +83,11 @@
             obj.put('OwnerId',UserInfo.getUserId());
         }else{
             //鏂板缓
+            Map<string,string> mso = ApexPages.currentPage().getParameters();
+            //鍖婚櫌/绉戝/缁忛攢鍟�(鎵嬪啓)
+            if(mso.containsKey('00N10000002GE3Z')){
+                controller.getRecord().put('Manual_Name__c',mso.get('00N10000002GE3Z'));
+            }
             rtTypeId = ApexPages.currentPage().getParameters().get('RecordType');
             obj.put('OwnerId',UserInfo.getUserId());
         }
@@ -108,6 +115,7 @@
     @RemoteAction
     global static Response saveReport(String reportJson,String transId,Boolean isNew) {
         System.debug('report Info:' + JSON.serialize(reportJson));
+        System.debug('report Info:' + reportJson);
         //System.debug('rtTypeId: ' + rtTypeId);
         //1. Prepare the payload for  report
         Schema.SObjectType reportSchema = schemaMap.get(sobjectTypeValue);
@@ -118,14 +126,15 @@
         System.debug('鑷畾涔夋牸寮忚浆鎹㈠紑濮�');
         //鑷畾涔夋牸寮忚浆鎹�
         for (String fieldAPI: fieldValueMap.keySet()) {
-            Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
-            String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
-            if(String.isBlank(fieldValue)){
+            if(!fieldAPIToTypeMap.containskey(fieldAPI)){
                 continue;
             }
+            Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
+            String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
             if(String.valueOf(fielddataType)=='DATE'){
                 System.debug('DATE fieldAPI = '+fieldAPI+' filedData = '+String.valueOf(fieldValueMap.get(fieldAPI)));
-                reportInfo.put(fieldAPI, Date.valueOf(String.valueOf(fieldValueMap.get(fieldAPI)).replace('/', '-')));
+                //reportInfo.put(fieldAPI, Date.valueOf(String.valueOf(fieldValueMap.get(fieldAPI)).replace('/', '-')));
+                reportInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-')));
             }else if(String.valueOf(fielddataType)=='DATETIME'){
                 String dt = String.valueOf(fieldValueMap.get(fieldAPI));
                 if(String.isNotBlank(dt)&&dt.contains('T')){
@@ -134,8 +143,8 @@
                 }else if(String.isNotBlank(dt))  {
                     reportInfo.put(fieldAPI, Datetime.valueOf(dt));
                 }          
-            }else if(String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
-                reportInfo.put(fieldAPI, Decimal.valueOf(String.valueOf(fieldValueMap.get(fieldAPI))));
+            }else if(String.valueof(fielddataType)=='CURRENCY'|| String.valueof(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
+                reportInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?null:Decimal.valueOf(fieldValue.replace(',', ''))); 
             } else if(String.valueof(fielddataType)=='BOOLEAN'){
                 reportInfo.put(fieldAPI, fieldValueMap.get(fieldAPI));
             }else {
diff --git a/force-app/main/default/classes/NewAndEditTenderinformationController.cls b/force-app/main/default/classes/NewAndEditTenderinformationController.cls
index 83a9d42..f7f6e85 100644
--- a/force-app/main/default/classes/NewAndEditTenderinformationController.cls
+++ b/force-app/main/default/classes/NewAndEditTenderinformationController.cls
@@ -5,7 +5,9 @@
         
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Tender_information__c').getDescribe().fields.getMap().keyset());  
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
-        controller.addFields(fieldList);
+        if (!Test.isRunningTest()) { 
+            controller.addFields(fieldList);
+        }
         Init(controller.getRecord());
 
         // AWSToSobjectNonEncryptedMap.put('lastName', 'LastName');
diff --git a/force-app/main/default/classes/NewConsumApplyController.cls b/force-app/main/default/classes/NewConsumApplyController.cls
index b1bc107..a50680e 100644
--- a/force-app/main/default/classes/NewConsumApplyController.cls
+++ b/force-app/main/default/classes/NewConsumApplyController.cls
@@ -2,7 +2,7 @@
  * @description       : 
  * @author            : ChangeMeIn@UserSettingsUnder.SFDoc
  * @group             : 
- * @last modified on  : 03-23-2022
+ * @last modified on  : 03-28-2022
  * @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc
 **/
 global without sharing class NewConsumApplyController {
@@ -30,7 +30,9 @@
         PIPL_Input_Account_Error_Msg = label.PIPL_Input_Account_Error_Msg;
         //鑾峰彇鎵�鏈夊瓧娈�
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Consum_Apply__c').getDescribe().fields.getMap().keyset());  
-        controller.addFields(fieldList);
+        if (!Test.isRunningTest()) { 
+            controller.addFields(fieldList);
+        }
         SObject obj = controller.getRecord();        
         if(obj.Id != null){
             //鏇存柊
@@ -49,6 +51,15 @@
             //鏂板缓
             rtTypeId = ApexPages.currentPage().getParameters().get('RecordType');
             obj.put('OwnerId',UserInfo.getUserId());
+            Map<string,string> mso = ApexPages.currentPage().getParameters();
+            system.debug('mso='+mso);
+            if(mso.containsKey('00N10000008rdgs')){
+                controller.getRecord().put('demo_purpose2__c',mso.get('00N10000008rdgs'));
+            }
+            if(mso.containsKey('Name')){
+                controller.getRecord().put('Name',mso.get('Name'));
+            }
+
         }
         LayoutDescriberHelper.LayoutWrapper LayoutWrapperValue = LayoutDescriberHelper.describeSectionWithFieldsWrapper(rtTypeId, 'Consum_Apply__c','classic');
         layoutSections = LayoutWrapperValue.layoutSections;
@@ -79,29 +90,33 @@
         Consum_Apply__c consumApplyInfo = new Consum_Apply__c();
         //鑷畾涔夋牸寮忚浆鎹�
         for (String fieldAPI: fieldValueMap.keySet()) {
-            Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
-            String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
-            if(String.isBlank(fieldValue)){
+            system.debug('field API'+fieldAPI);
+            if(!fieldAPIToTypeMap.containskey(fieldAPI)){
                 continue;
             }
+            Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
+            String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
             if(String.valueOf(fielddataType)=='DATE'){
-                System.debug('DATE fieldAPI = '+fieldAPI+' filedData = '+String.valueOf(fieldValueMap.get(fieldAPI)));
-                consumApplyInfo.put(fieldAPI, Date.valueOf(String.valueOf(fieldValueMap.get(fieldAPI)).replace('/', '-')));
+                consumApplyInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-'))); 
             }else if(String.valueOf(fielddataType)=='DATETIME'){
-                String dt = String.valueOf(fieldValueMap.get(fieldAPI));
-                if(String.isNotBlank(dt)&&dt.contains('T')){
-                    dt = dt.replace('T',' ');
-                    consumApplyInfo.put(fieldAPI, Datetime.valueOfGmt(dt));
-                }else if(String.isNotBlank(dt))  {
-                    consumApplyInfo.put(fieldAPI, Datetime.valueOf(dt));
-                }          
-            }else if(String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
-                consumApplyInfo.put(fieldAPI, Decimal.valueOf(String.valueOf(fieldValueMap.get(fieldAPI))));
+                if(String.isNotBlank(fieldValue)&&fieldValue.contains('T')){
+                    fieldValue = fieldValue.replace('T',' ');
+                    consumApplyInfo.put(fieldAPI, Datetime.valueOfGmt(fieldValue));
+                }else if(String.isNotBlank(fieldValue))  {
+                    fieldValue = fieldValue.replace('/', '-') + ':00';
+                    System.debug('fieldValue = ' + fieldValue);
+                    consumApplyInfo.put(fieldAPI, Datetime.valueOf(fieldValue));
+                }else{
+                    consumApplyInfo.put(fieldAPI, null);
+                }
+                
+            }else if(String.valueOf(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='CURRENCY'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
+                consumApplyInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?null:Decimal.valueOf(fieldValue.replace(',', ''))); 
             } else if(String.valueof(fielddataType)=='BOOLEAN'){
                 consumApplyInfo.put(fieldAPI, fieldValueMap.get(fieldAPI));
             }else {
                 consumApplyInfo.put(fieldAPI, String.valueOf(fieldValueMap.get(fieldAPI)));
-            }                  
+            }
         }
         
         //2. Save Record Process
diff --git a/force-app/main/default/classes/NewConsumApplyEquipSetDetailController.cls b/force-app/main/default/classes/NewConsumApplyEquipSetDetailController.cls
index 2fda9a3..17cc810 100644
--- a/force-app/main/default/classes/NewConsumApplyEquipSetDetailController.cls
+++ b/force-app/main/default/classes/NewConsumApplyEquipSetDetailController.cls
@@ -28,7 +28,9 @@
         sobjecttypeForFrontEnd = sobjectTypeValue;
         //鑾峰彇鎵�鏈夊瓧娈�
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Consum_Apply_Equipment_Set_Detail__c').getDescribe().fields.getMap().keyset());  
-        controller.addFields(fieldList);
+        if (!Test.isRunningTest()) { 
+            controller.addFields(fieldList);
+        }
         SObject obj = controller.getRecord();        
         if(obj.Id != null){
             //鏇存柊
diff --git a/force-app/main/default/classes/NewRepairController.cls b/force-app/main/default/classes/NewRepairController.cls
index aae5173..1126822 100644
--- a/force-app/main/default/classes/NewRepairController.cls
+++ b/force-app/main/default/classes/NewRepairController.cls
@@ -36,7 +36,9 @@
         //鑾峰彇鎵�鏈夊瓧娈�
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Repair__c').getDescribe().fields.getMap().keyset());  
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
-        controller.addFields(fieldList);        
+        if(!Test.isRunningTest()){
+           controller.addFields(fieldList);  
+        }
         SObject obj = controller.getRecord();        
         if(obj.Id != null){
             //鏇存柊
@@ -48,6 +50,17 @@
             ContactAWSDataId = String.valueOf(repairData.Contact_AWS_Data_Id__c);
         }else{
             //鏂板缓
+            Map<string,string> mso = ApexPages.currentPage().getParameters();
+            system.debug('mso='+mso);
+            if(mso.containsKey('00N10000006P6SM')){
+                controller.getRecord().put('SalesOfficeCode_selection__c',mso.get('00N10000006P6SM'));
+            }
+            if(mso.containsKey('00N10000002FH86')){
+                controller.getRecord().put('On_site_repair__c',mso.get('00N10000002FH86'));
+            }
+            if(mso.containsKey('00N10000006P6Rn')){
+                controller.getRecord().put('work_location_select__c',mso.get('00N10000006P6Rn'));
+            }
             rtTypeId = ApexPages.currentPage().getParameters().get('RecordType');
             if(String.isBlank(rtTypeId)||String.isEmpty(rtTypeId)){
                 List<RecordType> rtList = new List<RecordType>([select Id,DeveloperName from RecordType  where SobjectType ='Repair__c' and DeveloperName ='Repair']);
@@ -88,28 +101,27 @@
         //鑷畾涔夋牸寮忚浆鎹�
         for (String fieldAPI: fieldValueMap.keySet()) {
             system.debug('field API'+fieldAPI);
-            Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
-            String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
-            if(String.isBlank(fieldValue)){
+            if(!fieldAPIToTypeMap.containskey(fieldAPI)){
                 continue;
             }
+            Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
+            String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
             if(String.valueOf(fielddataType)=='DATE'){
-                repairInfo.put(fieldAPI, Date.valueOf(String.valueOf(fieldValueMap.get(fieldAPI)).replace('/', '-')));
+                repairInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-'))); 
             }else if(String.valueOf(fielddataType)=='DATETIME'){
-                String dt = String.valueOf(fieldValueMap.get(fieldAPI));
-                if(String.isNotBlank(dt)&&dt.contains('T')){
-                    dt = dt.replace('T',' ');
-                    repairInfo.put(fieldAPI, Datetime.valueOfGmt(dt));
-                }else if(String.isNotBlank(dt))  {
-                    dt = dt.replace('/', '-') + ':00';
-                    System.debug('dt = ' + dt);
-                    repairInfo.put(fieldAPI, Datetime.valueOf(dt));
+                if(String.isNotBlank(fieldValue)&&fieldValue.contains('T')){
+                    fieldValue = fieldValue.replace('T',' ');
+                    repairInfo.put(fieldAPI, Datetime.valueOfGmt(fieldValue));
+                }else if(String.isNotBlank(fieldValue))  {
+                    fieldValue = fieldValue.replace('/', '-') + ':00';
+                    System.debug('fieldValue = ' + fieldValue);
+                    repairInfo.put(fieldAPI, Datetime.valueOf(fieldValue));
                 }else{
                     repairInfo.put(fieldAPI, null);
                 }
                 
             }else if(String.valueOf(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='CURRENCY'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
-                repairInfo.put(fieldAPI, Decimal.valueOf(String.valueOf(fieldValueMap.get(fieldAPI))));
+                repairInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?null:Decimal.valueOf(fieldValue.replace(',', ''))); 
             } else if(String.valueof(fielddataType)=='BOOLEAN'){
                 repairInfo.put(fieldAPI, fieldValueMap.get(fieldAPI));
             }else {
diff --git a/force-app/main/default/classes/OnCallController.cls b/force-app/main/default/classes/OnCallController.cls
index 551e515..23a15ff 100644
--- a/force-app/main/default/classes/OnCallController.cls
+++ b/force-app/main/default/classes/OnCallController.cls
@@ -2,7 +2,7 @@
  * @description       : 
  * @author            : ChangeMeIn@UserSettingsUnder.SFDoc
  * @group             : 
- * @last modified on  : 03-17-2022
+ * @last modified on  : 03-28-2022
  * @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc
 **/
 global without sharing class OnCallController {
@@ -37,7 +37,7 @@
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
         if(!Test.isRunningTest()){
             controller.addFields(fieldList);  
-        }  
+        }
         SObject obj = controller.getRecord();        
         if(obj.Id != null){
             //鏇存柊
@@ -78,26 +78,33 @@
         On_Call__c onCallInfo = new On_Call__c();
         //鑷畾涔夋牸寮忚浆鎹�
         for (String fieldAPI: fieldValueMap.keySet()) {
-            system.debug('field API='+fieldAPI);
+            system.debug('field API'+fieldAPI);
+            if(!fieldAPIToTypeMap.containskey(fieldAPI)){
+                continue;
+            }
             Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
             String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
-            system.debug('Field Type:'+fielddataType+' field Value='+fieldValue);
             if(String.valueOf(fielddataType)=='DATE'){
-                onCallInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-')));              
+                onCallInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-'))); 
             }else if(String.valueOf(fielddataType)=='DATETIME'){
                 if(String.isNotBlank(fieldValue)&&fieldValue.contains('T')){
                     fieldValue = fieldValue.replace('T',' ');
                     onCallInfo.put(fieldAPI, Datetime.valueOfGmt(fieldValue));
+                }else if(String.isNotBlank(fieldValue))  {
+                    fieldValue = fieldValue.replace('/', '-') + ':00';
+                    System.debug('fieldValue = ' + fieldValue);
+                    onCallInfo.put(fieldAPI, Datetime.valueOf(fieldValue));
                 }else{
                     onCallInfo.put(fieldAPI, null);
-                }                    
-            }else if(String.valueof(fielddataType)=='CURRENCY'|| String.valueof(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
-                onCallInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?0:Decimal.valueOf(fieldValue)); 
+                }
+                
+            }else if(String.valueOf(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='CURRENCY'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
+                onCallInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?null:Decimal.valueOf(fieldValue.replace(',', ''))); 
             } else if(String.valueof(fielddataType)=='BOOLEAN'){
                 onCallInfo.put(fieldAPI, fieldValueMap.get(fieldAPI));
             }else {
-                onCallInfo.put(fieldAPI,fieldValue);
-            }                   
+                onCallInfo.put(fieldAPI, String.valueOf(fieldValueMap.get(fieldAPI)));
+            }                  
         }
         
         //2. Save Record Process
diff --git a/force-app/main/default/classes/PIHelper.cls b/force-app/main/default/classes/PIHelper.cls
index b83a4a5..929bbc9 100644
--- a/force-app/main/default/classes/PIHelper.cls
+++ b/force-app/main/default/classes/PIHelper.cls
@@ -127,10 +127,10 @@
         traLog.TransId__c = transId;
         Integer MaxLogColumnLength = 131072;
         if (!String.isEmpty(sfRecordId)) {
-           traLog.SFRecordId__c=sfRecordId.substring(0, (sfRecordId.length() > MaxLogColumnLength ? MaxLogColumnLength : sfRecordId.length()));
+           traLog.Request__c=sfRecordId.substring(0, (sfRecordId.length() > MaxLogColumnLength ? MaxLogColumnLength : sfRecordId.length()));
         }else {
             String sfIds =JSON.serialize(idList);
-           traLog.SFRecordId__c=sfIds.substring(0, (sfIds.length() > MaxLogColumnLength ? MaxLogColumnLength : sfIds.length()));
+           traLog.Request__c=sfIds.substring(0, (sfIds.length() > MaxLogColumnLength ? MaxLogColumnLength : sfIds.length()));
         }
          if(isSuccess==0){
             traLog.Status__c = 'fail';
diff --git a/force-app/main/default/classes/RentalApplyController.cls b/force-app/main/default/classes/RentalApplyController.cls
index f9b442d..e38bb9f 100644
--- a/force-app/main/default/classes/RentalApplyController.cls
+++ b/force-app/main/default/classes/RentalApplyController.cls
@@ -2,7 +2,7 @@
  * @description       : 
  * @author            : ChangeMeIn@UserSettingsUnder.SFDoc
  * @group             : 
- * @last modified on  : 03-23-2022
+ * @last modified on  : 03-28-2022
  * @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc
 **/
 global without sharing class RentalApplyController {
@@ -30,7 +30,9 @@
         PIPL_Input_Account_Error_Msg = label.PIPL_Input_Account_Error_Msg;
         //鑾峰彇鎵�鏈夊瓧娈�
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Rental_Apply__c').getDescribe().fields.getMap().keyset());  
-        controller.addFields(fieldList);
+        if(!Test.isRunningTest()){
+            controller.addFields(fieldList);
+        }
         SObject obj = controller.getRecord();        
         if(obj.Id != null){
             //鏇存柊
@@ -106,24 +108,28 @@
         Rental_Apply__c rentalApplyInfo = new Rental_Apply__c();
         //鑷畾涔夋牸寮忚浆鎹�
         for (String fieldAPI: fieldValueMap.keySet()) {
-            Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
-            String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
-            if(String.isBlank(fieldValue)){
+            system.debug('field API'+fieldAPI);
+            if(!fieldAPIToTypeMap.containskey(fieldAPI)){
                 continue;
             }
+            Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
+            String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
             if(String.valueOf(fielddataType)=='DATE'){
-                System.debug('DATE fieldAPI = '+fieldAPI+' filedData = '+String.valueOf(fieldValueMap.get(fieldAPI)));
-                rentalApplyInfo.put(fieldAPI, Date.valueOf(String.valueOf(fieldValueMap.get(fieldAPI)).replace('/', '-')));
+                rentalApplyInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-'))); 
             }else if(String.valueOf(fielddataType)=='DATETIME'){
-                String dt = String.valueOf(fieldValueMap.get(fieldAPI));
-                if(String.isNotBlank(dt)&&dt.contains('T')){
-                    dt = dt.replace('T',' ');
-                    rentalApplyInfo.put(fieldAPI, Datetime.valueOfGmt(dt));
-                }else if(String.isNotBlank(dt))  {
-                    rentalApplyInfo.put(fieldAPI, Datetime.valueOf(dt));
-                }          
-            }else if(String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
-                rentalApplyInfo.put(fieldAPI, Decimal.valueOf(String.valueOf(fieldValueMap.get(fieldAPI))));
+                if(String.isNotBlank(fieldValue)&&fieldValue.contains('T')){
+                    fieldValue = fieldValue.replace('T',' ');
+                    rentalApplyInfo.put(fieldAPI, Datetime.valueOfGmt(fieldValue));
+                }else if(String.isNotBlank(fieldValue))  {
+                    fieldValue = fieldValue.replace('/', '-') + ':00';
+                    System.debug('fieldValue = ' + fieldValue);
+                    rentalApplyInfo.put(fieldAPI, Datetime.valueOf(fieldValue));
+                }else{
+                    rentalApplyInfo.put(fieldAPI, null);
+                }
+                
+            }else if(String.valueOf(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='CURRENCY'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
+                rentalApplyInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?null:Decimal.valueOf(fieldValue.replace(',', ''))); 
             } else if(String.valueof(fielddataType)=='BOOLEAN'){
                 rentalApplyInfo.put(fieldAPI, fieldValueMap.get(fieldAPI));
             }else {
diff --git a/force-app/main/default/classes/SearchVisitorController.cls b/force-app/main/default/classes/SearchVisitorController.cls
index eeadfef..c981036 100644
--- a/force-app/main/default/classes/SearchVisitorController.cls
+++ b/force-app/main/default/classes/SearchVisitorController.cls
@@ -32,6 +32,7 @@
     public String contactAWSIds {set;get;}
     public String contactsInfo {set;get;}
     public String awsDataIdArray {set;get;}
+    public String sfContactId{set;get;}
     //Add By Li Jun 20220217 End
     
     public SearchVisitorController(){
@@ -402,6 +403,7 @@
         Savepoint sp = Database.setSavepoint();
         try{
             upsert rc;
+            sfContactId = rc.Id;
             }catch(Exception io){
                 Database.rollback(sp);
                 return null;
diff --git a/force-app/main/default/classes/SoqlHelper.cls b/force-app/main/default/classes/SoqlHelper.cls
index fa51220..235a28a 100644
--- a/force-app/main/default/classes/SoqlHelper.cls
+++ b/force-app/main/default/classes/SoqlHelper.cls
@@ -31,7 +31,7 @@
 
     }
     
-    public static string WId(string wid){
+    public static string WId(object wid){
         return '\'' + wid + '\'';
     }
    
@@ -43,6 +43,7 @@
         return string.join(lo, ',');
     }
 
+    /*
     public static string ToInCondition(List<AggregateResult> lar ,string key)
     {
         if(lar==null || lar.size() == 0)
@@ -69,7 +70,7 @@
         ss+=') ';
         return ss;
     }
-
+    */
     public static string ToInCondition(Set<string> so){
         return ToInCondition(new List<string>(so));
     }
@@ -92,7 +93,7 @@
         if(so_list == null || so_list.size() == 0)return;
         update so_list;
     }
-
+    /*
     public static Map<string,Database.UpsertResult> UpsertList(List<Sobject> so_list, Schema.SObjectField field)
     {
         Map<string,Database.UpsertResult> mid = new Map<string,Database.UpsertResult>();
@@ -118,7 +119,7 @@
         }
         return mid;
     }
-
+    */
     public static void DeleteList(List<Sobject> so_list)
     {
         if(so_list == null || so_list.size() == 0)return;
diff --git a/force-app/main/default/classes/StraightBackAddressController.cls b/force-app/main/default/classes/StraightBackAddressController.cls
index f4e8e7b..4b8b354 100644
--- a/force-app/main/default/classes/StraightBackAddressController.cls
+++ b/force-app/main/default/classes/StraightBackAddressController.cls
@@ -66,6 +66,7 @@
     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 
@@ -524,6 +525,7 @@
                         try{
                             //鏂板涓�鏉¤仈绯讳汉鏁版嵁
                             insert addContact;
+                            sfRecordId = addContact.id;
                             insUpdData.Create_Contacts__c = '';
                         }catch(Exception e){
                             //ApexPages.addMessages(e);
@@ -554,6 +556,7 @@
                 try{
                     //鏂板鎴栦慨鏀规暟鎹�
                     upsert insUpdData;
+                    
                     ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '淇濆瓨鎴愬姛锛�'));
                     isSearchBtn = true;
                     //淇濆瓨鎴愬姛锛岄渶瑕佸垵濮嬪寲涓�涓嬫瀵硅薄锛岄槻姝㈠啀娆$偣鍑绘鎸夐挳淇濆瓨涓�涓潯鍚屾牱鐨勬暟鎹�
diff --git a/force-app/main/default/classes/TestController.cls b/force-app/main/default/classes/TestController.cls
index 4279e5e..81de396 100644
--- a/force-app/main/default/classes/TestController.cls
+++ b/force-app/main/default/classes/TestController.cls
@@ -4,7 +4,9 @@
         
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Inquiry_form__c').getDescribe().fields.getMap().keyset());  
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
-        controller.addFields(fieldList);
+        if(!Test.isRunningTest()){
+        	controller.addFields(fieldList);
+        }
         LookUpOverrideFields.add('Contact_Name__c');
         //娣诲姞椤�
         Init(controller.getRecord());
diff --git a/force-app/main/default/classes/XinDailyReportController.cls b/force-app/main/default/classes/XinDailyReportController.cls
index 351fafb..a91874d 100644
--- a/force-app/main/default/classes/XinDailyReportController.cls
+++ b/force-app/main/default/classes/XinDailyReportController.cls
@@ -1297,7 +1297,8 @@
                     //2021-10-15 mzy  浠诲姟绠$悊鏀瑰杽  end
                     ) {
                          if (!String.isBlank(a.act.Activity_Type2__c) && a.act.Activity_Type2__c == '鐥呴櫌'
-                          && a.act.Free_Input__c == false && String.isBlank(a.act.Visitor1__c)) {
+                          && a.act.Free_Input__c == false && String.isBlank(a.act.Visitor1_ID__c)) {	//Add By Chen Yanan 20220325 for PIPL
+                          //  && a.act.Free_Input__c == false && String.isBlank(a.act.Visitor1__c)) {
                             a.act.Visitor1__c.addError('璇疯嚦灏戝~鍐欎竴浣嶈闂璞�');
                             eventFlg = true;
                          }
diff --git a/force-app/main/default/pages/CM_SearchContactService.page b/force-app/main/default/pages/CM_SearchContactService.page
index 4011785..38a048b 100644
--- a/force-app/main/default/pages/CM_SearchContactService.page
+++ b/force-app/main/default/pages/CM_SearchContactService.page
@@ -29,8 +29,13 @@
     	function Foo(){
         	j$('[aws-id]').each(function(i,e){
                 let awsDataId = j$(e).attr('aws-id');
-                let piInformation = '濮撳悕:'+contact[awsDataId].lastName +'<br/>' +'鎵嬫満鍙�:'+ (contact[awsDataId].mobilePhone ? contact[awsDataId].mobilePhone :'');
-            	j$(e).find('.decrypt').html(piInformation);
+                if (contact.hasOwnProperty(awsDataId)) {
+                    let piInformation = '濮撳悕:'+contact[awsDataId].lastName +'<br/>' +'鎵嬫満鍙�:'+ (contact[awsDataId].mobilePhone ? contact[awsDataId].mobilePhone :'');
+            	    j$(e).find('.decrypt').html(piInformation);
+                }else{
+                    console.log(awsDataId+' not in contact');
+                }
+                
             });
         }
 
@@ -293,7 +298,7 @@
                         <!-- <td><a href="#" onclick="setContact('{!lineinfo.lineNo}');" id="943114607025717249" onmouseover="showPIDiv('943114607025717249')" onmouseout="hidePIDiv('943114607025717249')">{!lineinfo.con.Name}</a></td> -->
                         <!-- 2022/02/15 寮犲崕寤� 瑙e瘑淇℃伅 start -->
                         <td>
-                            <a href="/{!lineinfo.con.Id}" onclick="setContact('{!lineinfo.lineNo}','{!lineinfo.con.AWS_Data_Id__c}');" aws-id="{!lineinfo.con.AWS_Data_Id__c}" style="position:relative">
+                            <a href="/{!lineinfo.con.Id}" target="_blank" onclick="setContact('{!lineinfo.lineNo}','{!lineinfo.con.AWS_Data_Id__c}');" aws-id="{!lineinfo.con.AWS_Data_Id__c}" style="position:relative">
                                 <span class="encrypt">{!lineinfo.con.Name}</span>
                                 <span class="decrypt"></span>
                             </a>
diff --git a/force-app/main/default/pages/CampaignMember.page b/force-app/main/default/pages/CampaignMember.page
index 7e8cd6b..31a2fcb 100644
--- a/force-app/main/default/pages/CampaignMember.page
+++ b/force-app/main/default/pages/CampaignMember.page
@@ -148,11 +148,11 @@
     var aws_result={};
 
     jQuery(function(){
-        var eles = document.getElementsByClassName("contact");
-        for(let ei in eles){let e=eles[ei];
-            let awsid = e.getAttribute('awsid');
+        
+        jQuery("input.contact").each(function(){
+            let awsid = this.getAttribute('awsid');
             if(awsid) awsids.push(awsid);
-        }
+        })
 
         if(awsids.length > 0){
             AWSService.search(staticResource.searchUrl,JSON.stringify({dataIds:awsids}),function(result){
diff --git a/force-app/main/default/pages/ConsumTrialPDF.page b/force-app/main/default/pages/ConsumTrialPDF.page
index aead67a..0403041 100644
--- a/force-app/main/default/pages/ConsumTrialPDF.page
+++ b/force-app/main/default/pages/ConsumTrialPDF.page
@@ -44,33 +44,33 @@
                 body {
                     font-family: Arial Unicode MS;
                     page-break-inside: auto;
-                    font-size: 14px;
+                    font-size: 14pt;
                 }
                 table {
                     border-collapse: collapse;
                     width: 100%;
                 }
                 table, th, td {
-                    border: 1px solid black;
+                    border: 1pt solid black;
                     text-align: left;
                 }
                 table.headTable tr td {
-                    font-size: 13px;
+                    font-size: 13pt;
                 }
                 table.deliInfoTable tr td {
-                    font-size: 13px;
+                    font-size: 12pt;
                 }
                 table.detailListTable tr td {
-                    font-size: 8px;
+                    font-size: 8pt;
                     text-align: left;
                     box-sizing:border-box;
-                    padding: 1px;
+                    padding: 1pt;
                 }
                 table.tailTable tr td {
-                    font-size: 12px;
+                    font-size: 12pt;
                 }
-                body{margin: 0 auto;width: 920px;font-size: 14px;}
-                #title1{height: 30px;}
+                body{margin: 0 auto;width: 920px;font-size: 14pt;}
+                #title1{height: 50pt;}
                 #title2{height: 80px;}
                 #pdf-wrapper {position: relative;}
                 #pdf-wrapper table{width: 100%;border-spacing: 0px;border-collapse: collapse;    border: none;}
@@ -80,6 +80,8 @@
             <!-- 20220221 PI鏀归�� by 寰愪寒 start  -->
         <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
         <script src="../../soap/ajax/53.0/connection.js" type="text/javascript"></script>
+        <!-- <script src="https://cdn.bootcss.com/es6-promise/4.1.1/es6-promise.auto.min.js" type="text/javascript"></script> -->
+        
         <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
         <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
         <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
@@ -97,251 +99,254 @@
             <!-- 搴忓彿 -->
             <apex:variable value="{!1}" var="lineCnt" />
             <apex:repeat value="{!pdfPageList}" var="eachPdfPage">
-                <img style="width:79px;height:79px;padding:0px;margin-top:1px;z-index:999;position:absolute;" 
+                <div class="pdf-page">
+                    <div id="title1"></div>
+                    <img style="width:72pt;height:72pt;padding:0px;margin-top:1pt;z-index:999;position:absolute;" 
                         src="{!QRSrc}" />
-                <!-- 琛ㄥご -->
-                <table class="headTable" style="position:relative;">
-                    <colgroup>
-                        <col width="100%"/>
-                    </colgroup>
-                    <tr>
-                        <th style="box-sizing:border-box; text-align:center; font-size:24px; font-weight:900;" height="35">濂ユ灄宸存柉鍖荤枟鎵嬫湳闄勪欢锛堝櫒姊帮級涓村簥璇曠敤琛�</th>
-                    </tr>
-                    <tr>
-                        <td style="text-align:right;">
-                            鑰楁潗澶囧搧鐢宠鍗曞彿锛�<apex:outputText value="{!targetConsumApply.Name}" />
-                        </td>
-                    </tr>
-                    <tr>
-                        <td style="text-align:right;">
-                            鏈崟闄勪欢绗紙<apex:outputText value="{!pageCnt}" />锛夐〉/鍏憋紙<apex:outputText value="{!pageTotalCnt}" />锛夐〉
-                        </td>
-                    </tr>
-                </table>
-
-                <!-- 鍙戣揣淇℃伅 -->
-                <table class="deliInfoTable">
-                    <colgroup>
-                        <col width="16%" />
-                        <col width="14%" />
-                        <col width="36%" />
-                        <col width="16%" />
-                        <col width="18%" />
-                    </colgroup>
-                    <tr>
-                        <th style="text-align:center;" colspan="5" height="25">鍙戣揣淇℃伅</th>
-                    </tr>
-                    <tr>
-                        <td>浣跨敤鐩殑</td>
-                        <td colspan="4">
-                            <apex:outputText value="{!targetConsumApply.demo_purpose2__c}" />
-                        </td>
-                    </tr>
-                    <tr>
-                        <td rowspan="2">鐢宠浜轰俊鎭�</td>
-                        <td>鎵�灞炴湰閮ㄥ悕</td>
-                        <td>
-                            <apex:outputText value="{!targetConsumApply.Salesdept__c}" />
-                        </td>
-                        <td>鎵�灞炲姙浜嬪鍚�</td>
-                        <td>
-                            <apex:outputText value="{!targetConsumApply.WorkPlace__c}" />
-                        </td>
-                    </tr>
-                    <tr>
-                        <td>濮撳悕</td>
-                        <td>
-                            <apex:outputText value="{!targetConsumApply.Person_In_Charge__r.Name}" />
-                        </td>
-                        <td colspan="1">鑱旂郴鐢佃瘽</td>
-                        <td>
-                            <apex:outputText value="{!targetConsumApply.ApplyPerson_Phone__c}" />
-                        </td>
-                    </tr>
-                    <tr>
-                        <td>鍖荤枟鏈烘瀯淇℃伅</td>
-                        <td>鍖荤枟鏈烘瀯鍚�</td>
-                        <td>
-                            <apex:outputText value="{!hospitalName}" />
-                        </td>
-                        <td>绉戝鍚�</td>
-                        <td>
-                            <apex:outputText value="{!targetConsumApply.Account__r.Department_Name__c}" />
-                        </td>
-                    </tr>
-                    <tr>
-                        <td rowspan="3" >鍙戣揣鍦板潃</td>
-                        <td colspan="2" rowspan="3">
-                            <apex:outputText value="{!shippmentAddress}" />
-                        </td>
-                        <td colspan="1">閭紪</td>
-                        <td>
-                            <apex:outputText value="{!IF(targetConsumApply.Shipment_address__r.Post_Code__c==null, targetConsumApply.Post_Code__c, targetConsumApply.Shipment_address__r.Post_Code__c)}" />
-                        </td>
-                    </tr>
-                    <tr>
-                        <td colspan="1">鎺ユ敹浜哄鍚�</td>
-                        <td>
-                            <apex:outputText value="{!targetConsumApply.Loaner_received_staff__c}" />
-                        </td>
-                    </tr>
-                    <tr>
-                        <td colspan="1">鎺ユ敹浜虹數璇�</td>
-                        <td>
-                            <apex:outputText value="{!targetConsumApply.Loaner_received_staff_phone__c}" />
-                        </td>
-                    </tr>
-                </table>
-                <apex:outputPanel layout="none" rendered="{!pageCnt == 1}">
-                    <!-- 鈥诲ゥ鏋楀反鏂�楁潗澶囧搧鍊熺敤椤荤煡 -->
-                    <table style="table-layout:fixed;">
+                    <!-- 琛ㄥご -->
+                    <table class="headTable" style="position:relative;">
                         <colgroup>
-                            <col width="100%" />
+                            <col width="100%"/>
                         </colgroup>
                         <tr>
-                            <th style="text-align:center;" colspan="5" height="25">鈥诲ゥ鏋楀反鏂�楁潗澶囧搧鍊熺敤椤荤煡</th>
+                            <th style="box-sizing:border-box; text-align:center; font-size:24pt; font-weight:900;" height="35">濂ユ灄宸存柉鍖荤枟鎵嬫湳闄勪欢锛堝櫒姊帮級涓村簥璇曠敤琛�</th>
                         </tr>
                         <tr>
-                            <td style="font-size:12px;">
-                                1銆佷弗鏍奸伒寰尰鐤椾骇鍝佺殑鍚堣浣跨敤鍘熷垯锛屼负璇勪环璇ヤ骇鍝佸湪涓村簥浣跨敤鐨勬湁鏁堟�с�佸畨鍏ㄦ�ф棤鍋挎彁渚涚粰鍖荤枟浠庝笟鑰呰繘琛岃瘯鐢ㄣ��<br />
-                                2銆佷竴娆℃�у尰鐤椾骇鍝佸拰閲嶅鎬т娇鐢ㄤ骇鍝佺敤浜庝复搴婂悗鐢辫瘯鐢ㄨ�呮寜璇ラ櫌瀵瑰尰鐤楀簾寮冪墿鐨勫缃瀹氳繘琛屽簾寮冦��<br />
-                                3銆佹湭缁忓ゥ鏋楀反鏂叕鍙镐功闈㈠悓鎰忥紝鍊熺敤鏂逛笉寰椾互浠讳綍鐞嗙敱瀵硅�楁潗杩涜涓村簥鐢ㄩ�斾互澶栫殑澶勭悊锛屽寘鎷絾涓嶉檺浜庡悜绗笁鏂硅浆鍊熴�佸嚭绉熴�佸嚭鍞�佹姷鎶肩瓑銆�<br />
-                                4銆佹娆¤�楁潗鍑哄�熷熀浜庢褰撳悎鐞嗙殑鐞嗙敱锛岃�岄潪閫氳繃鍑哄�熻�楁潗瀵瑰�熺敤鏂硅喘涔般�佹帹鑽愬ゥ鏋楀反鏂叕鍙镐骇鍝併�佹湇鍔$瓑浜х敓浠讳綍涓嶆褰撳奖鍝嶃��<br />
-                                5銆佸�熺敤鏂瑰簲鐙珛渚濋潬鍏朵笓涓氭按骞冲拰鑳藉姏锛屼弗鏍兼寜鐓уゥ鏋楀反鏂叕鍙哥殑瑕佹眰锛堚�滀骇鍝佷娇鐢ㄨ鏄庝功鈥濓級鍐呭灏藉鎱庝箟鍔℃纭搷浣溿�佺淮鎶ゃ�佺洃娴嬭�楁潗锛�<br />鐢变簬鍊熺敤鏂归敊璇�佺枏蹇界瓑鍊熺敤鏂瑰師鍥犺�屽鑷寸殑浠讳綍闂鍧囧簲鐢卞�熺敤鏂硅嚜琛岃礋璐e鐞嗐��<br />
-                                6銆佸叾浠栨湭灏戒簨瀹滐紝鍙屾柟搴旀湰鐫�鍙嬪ソ鍚堜綔鍘熷垯杩涜鍗忓晢瑙e喅銆�
+                            <td style="text-align:right;">
+                                鑰楁潗澶囧搧鐢宠鍗曞彿锛�<apex:outputText value="{!targetConsumApply.Name}" />
+                            </td>
+                        </tr>
+                        <tr>
+                            <td style="text-align:right;">
+                                鏈崟闄勪欢绗紙<apex:outputText value="{!pageCnt}" />锛夐〉/鍏憋紙<apex:outputText value="{!pageTotalCnt}" />锛夐〉
                             </td>
                         </tr>
                     </table>
-                </apex:outputPanel>
-                <!-- 鍊熺敤鑰楁潗澶囧搧鍙戣揣娓呭崟 -->
-                <table class="detailListTable" style="width: 100%;">
-                    <colgroup>
-                        <!-- 搴忓彿 -->
-                        <col width="3.00%" />
-                        <!-- 鏄庣粏鍨嬪彿 -->
-                        <col width="12.00%" />
-                        <!-- 涓枃鍚嶇О 33-->
-                        <col width="28.00%" />
-                        <!-- 绠$悊缂栫爜 鑰楁潗杩芥函 yc -->
-                        <col width="5.00%" />
-                        <!-- 澶囧搧绠$悊鐮� 鑰楁潗杩芥函 yc -->
-                        <col width="3.00%" />
-                        <!-- 娑堣�楀搧鏈夋晥鏈� -->
-                        <col width="6.00%" />
-                        <!-- 灞曠ず/婕旂ず  -->
-                        <col width="5.27%" />
-                        <!-- 璇曠敤鏁伴噺 3.46-->
-                        <col width="3.46%" />
-                        <!-- 璇曠敤鏃ユ湡 -->
-                        <col width="6.78%" />
-                        <!-- 鐥呬緥/鍔ㄧ墿鑴忓櫒 -->
-                        <col width="4.82%" />
-                        <!-- 璇曠敤鑰呯洊绔� -->
-                        <col width="4.52%" />
-                        <!-- 璺熷彴鑰呯洊绔� -->
-                        <col width="4.37%" />
-                        <!-- 澶囩敤 -->
-                        <col width="3.46%" />
-                        <!-- 澶囨敞 -->
-                        <!-- <col width="10%" /> -->
-                    </colgroup>
-                    <apex:outputPanel layout="none" rendered="{!eachPdfPage.equipSetDetailList.size > 0}">
-                        <tr>
-                            <th style="text-align:center;" colspan="12" height="25">鍊熺敤鑰楁潗澶囧搧鍙戣揣娓呭崟</th>
-                        </tr>
-                        <tr>
-                            <th style="text-align:center; font-size:10px;" colspan="12" height="25">鍏辫鑰楁潗澶囧搧锛坽!consumApplySetDetailListSize}锛変欢</th>
-                        </tr>
-                        <tr>
-                            <td style="text-align: center;"><c:PDFWbr targetStr="搴忓彿"/></td>
-                            <td style="text-align: center;"><c:PDFWbr targetStr="鏄庣粏鍨嬪彿"/></td>
-                            <td style="text-align: center;"><c:PDFWbr targetStr="涓枃鍚嶇О"/></td>
-                            <td style="text-align: center;"><c:PDFWbr targetStr="绠$悊缂栫爜"/></td>
-                            <td style="text-align: center;"><c:PDFWbr targetStr="澶囧搧绠$悊鐮�"/></td>
-                            <td style="text-align: center;"><c:PDFWbr targetStr="娑堣�楀搧鏈夋晥鏈�"/></td>
-                            <td style="text-align: center;"><c:PDFWbr targetStr="灞曠ず/婕旂ず"/></td>
-                            <td style="text-align: center;"><c:PDFWbr targetStr="璇曠敤鏁伴噺"/></td>
-                            <td style="text-align: center;"><c:PDFWbr targetStr="璇曠敤鏃ユ湡"/></td>
-                            <td style="text-align: center;"><c:PDFWbr targetStr="鐥呬緥/鍔ㄧ墿鑴忓櫒"/></td>
-                            <td style="text-align: center;"><c:PDFWbr targetStr="璇曠敤鑰呯洊绔�"/></td>
-                            <td style="text-align: center;"><c:PDFWbr targetStr="璺熷彴鑰呯洊绔�"/></td>
-                            <td style="text-align: center;"><c:PDFWbr targetStr="澶囩敤"/></td>
-                            <td style="text-align: center;"><c:PDFWbr targetStr="澶囨敞"/></td>
-                        </tr>
-                    </apex:outputPanel>
-                    <apex:repeat value="{!eachPdfPage.equipSetDetailList}" var="eachEquipSetDetail">
-                        <tr style="vertical-align:center;">
-                            <!-- 搴忓彿 -->
-                            <td style="text-align:center;height:30px;">
-                                <apex:outputPanel rendered="{!lineCnt  <= consumApplySetDetailListSize}" layout="none">
-                                    <c:PDFWbr targetStr="{!lineCnt}"/>
-                                </apex:outputPanel>
-                                <apex:outputPanel rendered="{!lineCnt > consumApplySetDetailListSize}" layout="none"><br /></apex:outputPanel>
-                            </td>
-                            <!-- 鏄庣粏鍨嬪彿 -->
-                            <td><c:PDFWbr targetStr="{!eachEquipSetDetail.Fixture_Model_No_F__c}"/></td>
-                            <!-- 涓枃鍚嶇О -->
-                            <td><c:PDFWbr targetStr="{!eachEquipSetDetail.ProductName__c}"/></td>
-                            <td><c:PDFWbr targetStr="{!eachEquipSetDetail.ManagementCode__c}"/></td>
-                            <td><c:PDFWbr targetStr="{!eachEquipSetDetail.EquipmentManagementCode__c}"/></td>
-                            <!-- 娑堣�楀搧鏈夋晥鏈� -->
-                            <td style="text-align: center;">
-                                <apex:outputText value="{0,date,yyyy'/'MM'/'dd}">
-                                    <apex:param value="{!eachEquipSetDetail.Consumable_Guaranteen_end_F__c}"/>
-                                </apex:outputText>
-                            </td>
-                            <!-- 灞曠ず/婕旂ず -->
-                            <td><c:PDFWbr targetStr="{!eachEquipSetDetail.Show_demonstration__c}"/></td>
-                            <!-- 璇曠敤鏁伴噺 -->
-                            <td style="text-align: right;"><c:PDFWbr targetStr="{!eachEquipSetDetail.Trial_Num__c}"/></td>
-                            <!-- 璇曠敤鏃ユ湡 -->
-                            <!-- <td style="text-align:left;"><c:PDFWbr targetStr="{!eachEquipSetDetail.Consum_Start_Date__c}"/></td> -->
-                            <td style="text-align: center;">
-                                <apex:outputText value="{0,date,yyyy'/'MM'/'dd}">
-                                    <apex:param value="{!eachEquipSetDetail.Consum_Start_Date__c}"/>
-                                </apex:outputText>
-                            </td>
-                            <!-- 鐥呬緥/鍔ㄧ墿鑴忓櫒 -->
-                            <td><c:PDFWbr targetStr="{!eachEquipSetDetail.Case_OR_animal_organ__c}"/></td>
-                            <!-- 璇曠敤鑰呯洊绔� -->
-                            <td aws-data-id="{!eachEquipSetDetail.AWS_Data_Id__c}"><c:PDFWbr targetStr="{!eachEquipSetDetail.Trial_User__c}"/></td>
-                            <!-- 璺熷彴鑰呯洊绔� -->
-                            <td><c:PDFWbr targetStr="{!eachEquipSetDetail.Follower_User__r.Name}"/></td>
-                            <!-- 澶囩敤 -->
-                            <td style="text-align: center;">
-                                <!-- eachEquipSetDetail.Spare__c -->
-                                <apex:outputPanel rendered="{!eachEquipSetDetail.Spare__c}">
-                                    鉁旓笍
-                                </apex:outputPanel>
-                            </td>
-                            <!-- 澶囨敞 -->
-                            <td style="box-sizing: border-box;text-align:left;padding: 0px;"><c:PDFWbr targetStr="{!eachEquipSetDetail.Comment__c}"/></td>
-                        </tr>
-                        <apex:variable value="{!lineCnt + 1}" var="lineCnt" />
-                    </apex:repeat>
 
-                </table>
-                <table class="tailTable" style="width:100%;">
-                    <tr>
-                        <!-- 20210812 SFDC-C5CC5S 淇敼鍦板潃-->
-                        <td colspan="2" height="40" >
-                            濂ユ灄宸存柉 涓婃捣澶囧搧涓績鍦板潃锛氫笂娴峰競娴︿笢鏂板尯閲戝悏璺�778鍙�3鍙锋ゼ1F<br />
-                            閭紪锛�201206    TEL锛�021-60391318-8877    FAX锛�021-60391316
-                            <!-- TODO 濡傛灉鍦板潃绛夊唴瀹归渶瑕佷慨鏀圭殑璇濓紝FixtureRentalPDF銆丩ostReportEdit鐨勫湴鍧�绛変俊鎭篃闇�瑕佺‘璁ゆ槸鍚﹂渶瑕佷竴璧蜂慨鏀� -->
-                        </td>
-                    </tr>
-                    <!-- 20211210 ljh SFDC-C923SR add -->
-                    <tr>
-                        <td colspan="2" style=" border: none;">
-                            <img align="left" src="{!BRSrc}" />
-                        </td>
-                    </tr>
-                    <!-- 20211210 ljh SFDC-C923SR end -->
-                </table>
-                <apex:outputPanel rendered="{!pageCnt < pageTotalCnt}" layout="none">
-                    <div style="page-break-after:always;"/>
-                </apex:outputPanel>
-                <apex:variable value="{!pageCnt + 1}" var="pageCnt" />
+                    <!-- 鍙戣揣淇℃伅 -->
+                    <table class="deliInfoTable">
+                        <colgroup>
+                            <col width="16%" />
+                            <col width="14%" />
+                            <col width="36%" />
+                            <col width="16%" />
+                            <col width="18%" />
+                        </colgroup>
+                        <tr>
+                            <th style="text-align:center;" colspan="5" height="25">鍙戣揣淇℃伅</th>
+                        </tr>
+                        <tr>
+                            <td>浣跨敤鐩殑</td>
+                            <td colspan="4">
+                                <apex:outputText value="{!targetConsumApply.demo_purpose2__c}" />
+                            </td>
+                        </tr>
+                        <tr>
+                            <td rowspan="2">鐢宠浜轰俊鎭�</td>
+                            <td>鎵�灞炴湰閮ㄥ悕</td>
+                            <td>
+                                <apex:outputText value="{!targetConsumApply.Salesdept__c}" />
+                            </td>
+                            <td>鎵�灞炲姙浜嬪鍚�</td>
+                            <td>
+                                <apex:outputText value="{!targetConsumApply.WorkPlace__c}" />
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>濮撳悕</td>
+                            <td>
+                                <apex:outputText value="{!targetConsumApply.Person_In_Charge__r.Name}" />
+                            </td>
+                            <td colspan="1">鑱旂郴鐢佃瘽</td>
+                            <td>
+                                <apex:outputText value="{!targetConsumApply.ApplyPerson_Phone__c}" />
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>鍖荤枟鏈烘瀯淇℃伅</td>
+                            <td>鍖荤枟鏈烘瀯鍚�</td>
+                            <td>
+                                <apex:outputText value="{!hospitalName}" />
+                            </td>
+                            <td>绉戝鍚�</td>
+                            <td>
+                                <apex:outputText value="{!targetConsumApply.Account__r.Department_Name__c}" />
+                            </td>
+                        </tr>
+                        <tr>
+                            <td rowspan="3" >鍙戣揣鍦板潃</td>
+                            <td colspan="2" rowspan="3" id="shippmentAddress">
+                                <apex:outputText value="{!shippmentAddress}" />
+                            </td>
+                            <td colspan="1">閭紪</td>
+                            <td>
+                                <apex:outputText value="{!IF(targetConsumApply.Shipment_address__r.Post_Code__c==null, targetConsumApply.Post_Code__c, targetConsumApply.Shipment_address__r.Post_Code__c)}" />
+                            </td>
+                        </tr>
+                        <tr>
+                            <td colspan="1">鎺ユ敹浜哄鍚�</td>
+                            <td>
+                                <apex:outputText value="{!targetConsumApply.Loaner_received_staff__c}" />
+                            </td>
+                        </tr>
+                        <tr>
+                            <td colspan="1">鎺ユ敹浜虹數璇�</td>
+                            <td>
+                                <apex:outputText value="{!targetConsumApply.Loaner_received_staff_phone__c}" />
+                            </td>
+                        </tr>
+                    </table>
+                    <apex:outputPanel layout="none" rendered="{!pageCnt == 1}">
+                        <!-- 鈥诲ゥ鏋楀反鏂�楁潗澶囧搧鍊熺敤椤荤煡 -->
+                        <table style="table-layout:fixed;">
+                            <colgroup>
+                                <col width="100%" />
+                            </colgroup>
+                            <tr>
+                                <th style="text-align:center;" colspan="5" height="25">鈥诲ゥ鏋楀反鏂�楁潗澶囧搧鍊熺敤椤荤煡</th>
+                            </tr>
+                            <tr>
+                                <td style="font-size:12pt;">
+                                    1銆佷弗鏍奸伒寰尰鐤椾骇鍝佺殑鍚堣浣跨敤鍘熷垯锛屼负璇勪环璇ヤ骇鍝佸湪涓村簥浣跨敤鐨勬湁鏁堟�с�佸畨鍏ㄦ�ф棤鍋挎彁渚涚粰鍖荤枟浠庝笟鑰呰繘琛岃瘯鐢ㄣ��<br />
+                                    2銆佷竴娆℃�у尰鐤椾骇鍝佸拰閲嶅鎬т娇鐢ㄤ骇鍝佺敤浜庝复搴婂悗鐢辫瘯鐢ㄨ�呮寜璇ラ櫌瀵瑰尰鐤楀簾寮冪墿鐨勫缃瀹氳繘琛屽簾寮冦��<br />
+                                    3銆佹湭缁忓ゥ鏋楀反鏂叕鍙镐功闈㈠悓鎰忥紝鍊熺敤鏂逛笉寰椾互浠讳綍鐞嗙敱瀵硅�楁潗杩涜涓村簥鐢ㄩ�斾互澶栫殑澶勭悊锛屽寘鎷絾涓嶉檺浜庡悜绗笁鏂硅浆鍊熴�佸嚭绉熴�佸嚭鍞�佹姷鎶肩瓑銆�<br />
+                                    4銆佹娆¤�楁潗鍑哄�熷熀浜庢褰撳悎鐞嗙殑鐞嗙敱锛岃�岄潪閫氳繃鍑哄�熻�楁潗瀵瑰�熺敤鏂硅喘涔般�佹帹鑽愬ゥ鏋楀反鏂叕鍙镐骇鍝併�佹湇鍔$瓑浜х敓浠讳綍涓嶆褰撳奖鍝嶃��<br />
+                                    5銆佸�熺敤鏂瑰簲鐙珛渚濋潬鍏朵笓涓氭按骞冲拰鑳藉姏锛屼弗鏍兼寜鐓уゥ鏋楀反鏂叕鍙哥殑瑕佹眰锛堚�滀骇鍝佷娇鐢ㄨ鏄庝功鈥濓級鍐呭灏藉鎱庝箟鍔℃纭搷浣溿�佺淮鎶ゃ�佺洃娴嬭�楁潗锛�<br />鐢变簬鍊熺敤鏂归敊璇�佺枏蹇界瓑鍊熺敤鏂瑰師鍥犺�屽鑷寸殑浠讳綍闂鍧囧簲鐢卞�熺敤鏂硅嚜琛岃礋璐e鐞嗐��<br />
+                                    6銆佸叾浠栨湭灏戒簨瀹滐紝鍙屾柟搴旀湰鐫�鍙嬪ソ鍚堜綔鍘熷垯杩涜鍗忓晢瑙e喅銆�
+                                </td>
+                            </tr>
+                        </table>
+                    </apex:outputPanel>
+                    <!-- 鍊熺敤鑰楁潗澶囧搧鍙戣揣娓呭崟 -->
+                    <table class="detailListTable" style="width: 100%;">
+                        <colgroup>
+                            <!-- 搴忓彿 -->
+                            <col width="3.00%" />
+                            <!-- 鏄庣粏鍨嬪彿 -->
+                            <col width="12.00%" />
+                            <!-- 涓枃鍚嶇О 33-->
+                            <col width="28.00%" />
+                            <!-- 绠$悊缂栫爜 鑰楁潗杩芥函 yc -->
+                            <col width="5.00%" />
+                            <!-- 澶囧搧绠$悊鐮� 鑰楁潗杩芥函 yc -->
+                            <col width="3.00%" />
+                            <!-- 娑堣�楀搧鏈夋晥鏈� -->
+                            <col width="6.00%" />
+                            <!-- 灞曠ず/婕旂ず  -->
+                            <col width="5.27%" />
+                            <!-- 璇曠敤鏁伴噺 3.46-->
+                            <col width="3.46%" />
+                            <!-- 璇曠敤鏃ユ湡 -->
+                            <col width="6.78%" />
+                            <!-- 鐥呬緥/鍔ㄧ墿鑴忓櫒 -->
+                            <col width="4.82%" />
+                            <!-- 璇曠敤鑰呯洊绔� -->
+                            <col width="4.52%" />
+                            <!-- 璺熷彴鑰呯洊绔� -->
+                            <col width="4.37%" />
+                            <!-- 澶囩敤 -->
+                            <col width="3.46%" />
+                            <!-- 澶囨敞 -->
+                            <!-- <col width="10%" /> -->
+                        </colgroup>
+                        <apex:outputPanel layout="none" rendered="{!eachPdfPage.equipSetDetailList.size > 0}">
+                            <tr>
+                                <th style="text-align:center;" colspan="14" height="25">鍊熺敤鑰楁潗澶囧搧鍙戣揣娓呭崟</th>
+                            </tr>
+                            <tr>
+                                <th style="text-align:center; font-size:10pt;" colspan="14" height="25">鍏辫鑰楁潗澶囧搧锛坽!consumApplySetDetailListSize}锛変欢</th>
+                            </tr>
+                            <tr>
+                                <td style="text-align: center;"><c:PDFWbr targetStr="搴忓彿"/></td>
+                                <td style="text-align: center;"><c:PDFWbr targetStr="鏄庣粏鍨嬪彿"/></td>
+                                <td style="text-align: center;"><c:PDFWbr targetStr="涓枃鍚嶇О"/></td>
+                                <td style="text-align: center;"><c:PDFWbr targetStr="绠$悊缂栫爜"/></td>
+                                <td style="text-align: center;"><c:PDFWbr targetStr="澶囧搧绠$悊鐮�"/></td>
+                                <td style="text-align: center;"><c:PDFWbr targetStr="娑堣�楀搧鏈夋晥鏈�"/></td>
+                                <td style="text-align: center;"><c:PDFWbr targetStr="灞曠ず/婕旂ず"/></td>
+                                <td style="text-align: center;"><c:PDFWbr targetStr="璇曠敤鏁伴噺"/></td>
+                                <td style="text-align: center;"><c:PDFWbr targetStr="璇曠敤鏃ユ湡"/></td>
+                                <td style="text-align: center;"><c:PDFWbr targetStr="鐥呬緥/鍔ㄧ墿鑴忓櫒"/></td>
+                                <td style="text-align: center;"><c:PDFWbr targetStr="璇曠敤鑰呯洊绔�"/></td>
+                                <td style="text-align: center;"><c:PDFWbr targetStr="璺熷彴鑰呯洊绔�"/></td>
+                                <td style="text-align: center;"><c:PDFWbr targetStr="澶囩敤"/></td>
+                                <td style="text-align: center;"><c:PDFWbr targetStr="澶囨敞"/></td>
+                            </tr>
+                        </apex:outputPanel>
+                        <apex:repeat value="{!eachPdfPage.equipSetDetailList}" var="eachEquipSetDetail">
+                            <tr style="vertical-align:center;">
+                                <!-- 搴忓彿 -->
+                                <td style="text-align:center;height:25pt;">
+                                    <apex:outputPanel rendered="{!lineCnt  <= consumApplySetDetailListSize}" layout="none">
+                                        <c:PDFWbr targetStr="{!lineCnt}"/>
+                                    </apex:outputPanel>
+                                    <apex:outputPanel rendered="{!lineCnt > consumApplySetDetailListSize}" layout="none"><br /></apex:outputPanel>
+                                </td>
+                                <!-- 鏄庣粏鍨嬪彿 -->
+                                <td><c:PDFWbr targetStr="{!eachEquipSetDetail.Fixture_Model_No_F__c}"/></td>
+                                <!-- 涓枃鍚嶇О -->
+                                <td><c:PDFWbr targetStr="{!eachEquipSetDetail.ProductName__c}"/></td>
+                                <td><c:PDFWbr targetStr="{!eachEquipSetDetail.ManagementCode__c}"/></td>
+                                <td><c:PDFWbr targetStr="{!eachEquipSetDetail.EquipmentManagementCode__c}"/></td>
+                                <!-- 娑堣�楀搧鏈夋晥鏈� -->
+                                <td style="text-align: center;">
+                                    <apex:outputText value="{0,date,yyyy'/'MM'/'dd}">
+                                        <apex:param value="{!eachEquipSetDetail.Consumable_Guaranteen_end_F__c}"/>
+                                    </apex:outputText>
+                                </td>
+                                <!-- 灞曠ず/婕旂ず -->
+                                <td><c:PDFWbr targetStr="{!eachEquipSetDetail.Show_demonstration__c}"/></td>
+                                <!-- 璇曠敤鏁伴噺 -->
+                                <td style="text-align: right;"><c:PDFWbr targetStr="{!eachEquipSetDetail.Trial_Num__c}"/></td>
+                                <!-- 璇曠敤鏃ユ湡 -->
+                                <!-- <td style="text-align:left;"><c:PDFWbr targetStr="{!eachEquipSetDetail.Consum_Start_Date__c}"/></td> -->
+                                <td style="text-align: center;">
+                                    <apex:outputText value="{0,date,yyyy'/'MM'/'dd}">
+                                        <apex:param value="{!eachEquipSetDetail.Consum_Start_Date__c}"/>
+                                    </apex:outputText>
+                                </td>
+                                <!-- 鐥呬緥/鍔ㄧ墿鑴忓櫒 -->
+                                <td><c:PDFWbr targetStr="{!eachEquipSetDetail.Case_OR_animal_organ__c}"/></td>
+                                <!-- 璇曠敤鑰呯洊绔� -->
+                                <td aws-data-id="{!eachEquipSetDetail.AWS_Data_Id__c}"><c:PDFWbr targetStr="{!eachEquipSetDetail.Trial_User__c}"/></td>
+                                <!-- 璺熷彴鑰呯洊绔� -->
+                                <td><c:PDFWbr targetStr="{!eachEquipSetDetail.Follower_User__r.Name}"/></td>
+                                <!-- 澶囩敤 -->
+                                <td style="text-align: center;">
+                                    <!-- eachEquipSetDetail.Spare__c -->
+                                    <apex:outputPanel rendered="{!eachEquipSetDetail.Spare__c}">
+                                        鉁旓笍
+                                    </apex:outputPanel>
+                                </td>
+                                <!-- 澶囨敞 -->
+                                <td style="box-sizing: border-box;text-align:left;padding: 0px;"><c:PDFWbr targetStr="{!eachEquipSetDetail.Comment__c}"/></td>
+                            </tr>
+                            <apex:variable value="{!lineCnt + 1}" var="lineCnt" />
+                        </apex:repeat>
+
+                    </table>
+                    <table class="tailTable" style="width:100%;">
+                        <tr>
+                            <!-- 20210812 SFDC-C5CC5S 淇敼鍦板潃-->
+                            <td colspan="2" height="40" >
+                                濂ユ灄宸存柉 涓婃捣澶囧搧涓績鍦板潃锛氫笂娴峰競娴︿笢鏂板尯閲戝悏璺�778鍙�3鍙锋ゼ1F<br />
+                                閭紪锛�201206    TEL锛�021-60391318-8877    FAX锛�021-60391316
+                                <!-- TODO 濡傛灉鍦板潃绛夊唴瀹归渶瑕佷慨鏀圭殑璇濓紝FixtureRentalPDF銆丩ostReportEdit鐨勫湴鍧�绛変俊鎭篃闇�瑕佺‘璁ゆ槸鍚﹂渶瑕佷竴璧蜂慨鏀� -->
+                            </td>
+                        </tr>
+                        <!-- 20211210 ljh SFDC-C923SR add -->
+                        <tr>
+                            <td colspan="2" style=" border: none;">
+                                <img align="left" src="{!BRSrc}" />
+                            </td>
+                        </tr>
+                        <!-- 20211210 ljh SFDC-C923SR end -->
+                    </table>
+                    <apex:outputPanel rendered="{!pageCnt < pageTotalCnt}" layout="none">
+                        <div style="page-break-after:always;"/>
+                    </apex:outputPanel>
+                    <apex:variable value="{!pageCnt + 1}" var="pageCnt" />
+                </div>
             </apex:repeat>
         </div>
         </body>
@@ -349,68 +354,114 @@
 <script>
     AWSService.sfSessionId = '{!GETSESSIONID()}';
     var staticResource = JSON.parse('{!staticResource}');
+        var staticResourceCon = JSON.parse('{!staticResourceCon}');
+    var staticResourceFile = JSON.parse('{!staticResourceFile}');
     function Fun(pdf){
-        var iframe = document.createElement('iframe');
-        iframe.setAttribute('style', 'position:absolute;right:0; top:0; bottom:0; height:100%; width:100%');
-        document.body.appendChild(iframe);
-        iframe.src = pdf.output('datauristring');
-        for(let e of document.body.childNodes){
-            if( e != iframe && e.style){
-                e.style.display = 'none';
-            }
-        }
+
+        var form = jQuery("<form method='post'></form>");
+        jQuery(document.body).append(form);
+        form.attr({"action":staticResourceFile.viewUnifiedContactUrl+"?from="+encodeURIComponent(window.location.href)});
+        // form.attr({"action":"http://127.0.0.1:8080/a/d?from="+encodeURIComponent(window.location.href)});
+        let input = jQuery("<input type='hidden'/>");
+        input.attr({"name":"base64Str"});
+        input.val(pdf.output('datauristring').substr(28));
+        form.append(input);
+        form.submit();
+
+        // jQuery("body > *").each(function(){
+        // 	jQuery(this).css('display','none');
+        // })
+        // jQuery("body").append('<embed style="position:absolute; left: 0; top: 0;" width="100%" height="100%" src="'+pdf.output('datauristring')+'" type="application/pdf"/>')
+
     }
 
-    let id = "pdf-wrapper";
-    var target = document.getElementById(id);
     function jsPdfDownload(){
-        let pdfName = "娴嬭瘯";
-        let id = "pdf-wrapper";
-        var target = document.getElementById(id);
-        target.style.background = "#FFFFFF";
-        if(pdfName==''||pdfName==undefined) pdfName= getNowFormatDate();
 
-        html2canvas(target, {
-            scale: 2,
-            onrendered:function(canvas) {
-                var contentWidth = canvas.width;
-                var contentHeight = canvas.height;
+        let jtargets = jQuery("#pdf-wrapper .pdf-page");
+        let j_arr = new Array(jtargets.length+1).join(0).split('').map(function(){return false});
+        let landscape = false;
+        let pw = 595.28;
+        let ph = 841.89;
+        const marginw = 40;
+        
+        let orientation = '';
+        if (landscape) {
+            pw += ph;ph = pw - ph;pw = pw - ph;
+            orientation = 'l';
+        }
+        var pdf = new jsPDF(orientation, 'pt', 'a4');// 绗竴涓弬鏁板~瀛楁瘝l锛屾敞鎰忎笉鏄暟瀛�1锛屼负妯悜pdf
+        jtargets.each(function(i,e){
+            e.style.background = "#FFFFFF";
+        })
 
-                //涓�椤祊df鏄剧ずhtml椤甸潰鐢熸垚鐨刢anvas楂樺害;
-                var pageHeight = contentWidth / 592.28 * 841.89;
-                //鏈敓鎴恜df鐨刪tml椤甸潰楂樺害
-                var leftHeight = contentHeight;
-                //椤甸潰鍋忕Щ
-                var position = 0;
-                //a4绾哥殑灏哄[595.28,841.89]锛宧tml椤甸潰鐢熸垚鐨刢anvas鍦╬df涓浘鐗囩殑瀹介珮
-                var imgWidth = 515.28;//595.28//宸﹀彸杈硅窛20
-                var imgHeight = 515.28/contentWidth * contentHeight;//宸﹀彸杈硅窛20
+        let rei = 0;
+        let recursion = null;
+        recursion = function(i){
+            if(i>= jtargets.length){
+                Fun(pdf);
+                return;
+            }
+            e = jtargets[i];
+            html2canvas(e, {
+                scale: 2,
+                onrendered:function(canvas) {
+                    
+                    let canvas_max_page_num = 1;
+                    let canvas_current_page_num = 0;
+                    var contentWidth = canvas.width;
+                    var contentHeight = canvas.height;
 
-                var pageData = canvas.toDataURL('image/jpeg', 1.0);
+                    //涓�椤祊df鏄剧ずhtml椤甸潰鐢熸垚鐨刢anvas楂樺害;
+                    var pageHeight = contentWidth / pw * ph;
+                    //鏈敓鎴恜df鐨刪tml椤甸潰楂樺害
+                    var leftHeight = contentHeight;
+                    //椤甸潰鍋忕Щ
+                    var position = 0;
+                    //a4绾哥殑灏哄[595.28,841.89]锛宧tml椤甸潰鐢熸垚鐨刢anvas鍦╬df涓浘鐗囩殑瀹介珮
+                    var imgWidth = pw-2*marginw;//595.28//宸﹀彸杈硅窛20
+                    var imgHeight = imgWidth/contentWidth * contentHeight;//宸﹀彸杈硅窛20
 
-                var pdf = new jsPDF('', 'pt', 'a4');
+                    var pageData = canvas.toDataURL('image/jpeg', 1.0);
 
-                //鏈変袱涓珮搴﹂渶瑕佸尯鍒嗭紝涓�涓槸html椤甸潰鐨勫疄闄呴珮搴︼紝鍜岀敓鎴恜df鐨勯〉闈㈤珮搴�(841.89)
-                //褰撳唴瀹规湭瓒呰繃pdf涓�椤垫樉绀虹殑鑼冨洿锛屾棤闇�鍒嗛〉
-                if (leftHeight < pageHeight) {
-                    pdf.addImage(pageData, 'JPEG', 40, 0, imgWidth, imgHeight );//宸﹀彸杈硅窛20
-                } else {
-                    while(leftHeight > 0) {
-                        pdf.addImage(pageData, 'JPEG', 40, position, imgWidth, imgHeight)//宸﹀彸杈硅窛20
-                        leftHeight -= pageHeight;
-                        position -= 841.89;
-                        //閬垮厤娣诲姞绌虹櫧椤�
-                        if(leftHeight > 0) {
-                            pdf.addPage();
+                    
+
+                    //鏈変袱涓珮搴﹂渶瑕佸尯鍒嗭紝涓�涓槸html椤甸潰鐨勫疄闄呴珮搴︼紝鍜岀敓鎴恜df鐨勯〉闈㈤珮搴�(841.89)
+                    //褰撳唴瀹规湭瓒呰繃pdf涓�椤垫樉绀虹殑鑼冨洿锛屾棤闇�鍒嗛〉
+                    if (leftHeight < pageHeight) {
+                        pdf.addImage(pageData, 'JPEG', marginw, 0, imgWidth, imgHeight );//宸﹀彸杈硅窛20
+                    } else {
+                        while(leftHeight > 0) {
+                            
+                            if(i){
+                                pdf.addPage();
+                            }
+                            canvas_current_page_num++;
+                            pdf.addImage(pageData, 'JPEG', marginw, position, imgWidth, imgHeight)//宸﹀彸杈硅窛20
+                            leftHeight -= pageHeight;
+                            position -= ph;
+
+                            if (canvas_max_page_num > 0 && canvas_current_page_num>=canvas_max_page_num) {
+                                break;
+                            }
+
+                            //閬垮厤娣诲姞绌虹櫧椤�
+                            if(leftHeight > 0) {
+                                pdf.addPage();
+                            }
                         }
                     }
+                    
+                    recursion(i+1);
                 }
-                Fun(pdf);
-            }
-        })
+            })
+        };
+        recursion(rei);
+        
+
+        
     }
     
-    blockme();
+    //blockme();
     document.body.onload = function(){
         let aws_ids = [];
         j$("[aws-data-id]").each(function(i,e){
@@ -421,24 +472,44 @@
             
         })
 
-
+		let a1 = false;
+        let a2 = false;
+        var Foo = function(){
+        	if(a1 && a2){
+            	setTimeout(function() {
+                    jsPdfDownload(); 
+                }, 1500);
+            }
+        }
         AWSService.search(staticResource.searchUrl, JSON.stringify({
             dataIds:aws_ids
         }), function(data){
-            unblockUI();
+            //unblockUI();
             if (data && data.object && data.object.length > 0) {
-                for (const d of data.object) {
+                for(let di in data.object){let d=data.object[di];
                     j$("[aws-data-id='"+d.dataId +"']").html(d.trialUser);
                 }
-            }
-            //document.getElementById("Responsible_Person_HP__c").innerHTML = data.object.responsiblePersonHP;
-            //document.getElementById("Caller_phone__c").innerHTML = data.object.callerPhone;
-            
-            setTimeout(() => {
-                jsPdfDownload(); 
-            }, 1500);
+            }            
+            a1= true;
+            Foo();
         }, staticResource.token);
         
+        if('{!targetConsumApply.Shippment_adress_detail__c}'){
+        	a2 = true;
+            Foo();
+        }else{
+        	AWSService.query(staticResourceCon.queryUrl, '{!targetConsumApply.AWS_Data_Id__c}', function(data){
+                //unblockUI();
+                if (data && data.object  ) {
+                    
+                    j$("#shippmentAddress").html(data.object.directShippmentAddress);
+                }            
+                a2 = true;
+                Foo();
+            }, staticResource.token);
+        }
+        
+        
     }
     document.body.onclick = function(){
         //jsPdfDownload();
diff --git a/force-app/main/default/pages/InsReportPDF.page b/force-app/main/default/pages/InsReportPDF.page
index a58c973..fa829dd 100644
--- a/force-app/main/default/pages/InsReportPDF.page
+++ b/force-app/main/default/pages/InsReportPDF.page
@@ -230,7 +230,7 @@
         iframe.setAttribute('style', 'position:absolute;right:0; top:0; bottom:0; height:100%; width:100%');
         document.body.appendChild(iframe);
         iframe.src = pdf.output('datauristring');
-        for(let e of document.body.childNodes){
+        for(let ei in document.body.childNodes){let e=document.body.childNodes[ei];
             if( e != iframe && e.style){
                 e.style.display = 'none';
             }
@@ -307,7 +307,7 @@
             unblockUI();
             document.getElementById("Responsible_Person__c").innerHTML = data.object.responsiblePerson;
             
-            setTimeout(() => {
+            setTimeout(function(){
                 jsPdfDownload(); 
             }, 1500);
         }, staticResources.token);
diff --git a/force-app/main/default/pages/NewAndEditASEActivity.page b/force-app/main/default/pages/NewAndEditASEActivity.page
index e13349b..6d10370 100644
--- a/force-app/main/default/pages/NewAndEditASEActivity.page
+++ b/force-app/main/default/pages/NewAndEditASEActivity.page
@@ -553,7 +553,16 @@
                         for (let n = 0; n < layoutSection.length; n++) {
                             let layoutField = layoutSection[n];
                             if (layoutField.fieldAPI != '' && document.querySelector("[data-id='"+layoutField.fieldAPI+"']") != null) {
-                                document.querySelector("[data-id='"+layoutField.fieldAPI+"']").disabled = !(layoutField.editableField);
+                                let e = document.querySelector("[data-id='"+layoutField.fieldAPI+"']");
+                                e.disabled = !(layoutField.editableField);
+                                if (!(layoutField.editableField)) {
+                                    if (e.getAttribute("multiple") && e.getAttribute("multiple") == 'multiple') {
+                                        e.parentNode.classList.add("disabledbutton");
+                                    }
+                                    if (e.tagName == 'DIV') {
+                                        e.classList.add("disabledbutton");
+                                    }
+                                }
                             }
                         }
                     }
diff --git a/force-app/main/default/pages/NewAndEditAddress.page b/force-app/main/default/pages/NewAndEditAddress.page
index 773d6fe..a767a50 100644
--- a/force-app/main/default/pages/NewAndEditAddress.page
+++ b/force-app/main/default/pages/NewAndEditAddress.page
@@ -418,7 +418,16 @@
                         for (let n = 0; n < layoutSection.length; n++) {
                             let layoutField = layoutSection[n];
                             if (layoutField.fieldAPI != '' && document.querySelector("[data-id='"+layoutField.fieldAPI+"']") != null) {
-                                document.querySelector("[data-id='"+layoutField.fieldAPI+"']").disabled = !(layoutField.editableField);
+                                let e = document.querySelector("[data-id='"+layoutField.fieldAPI+"']");
+                                e.disabled = !(layoutField.editableField);
+                                if (!(layoutField.editableField)) {
+                                    if (e.getAttribute("multiple") && e.getAttribute("multiple") == 'multiple') {
+                                        e.parentNode.classList.add("disabledbutton");
+                                    }
+                                    if (e.tagName == 'DIV') {
+                                        e.classList.add("disabledbutton");
+                                    }
+                                }
                             }
                         }
                     }
diff --git a/force-app/main/default/pages/NewAndEditAgencyContact.page b/force-app/main/default/pages/NewAndEditAgencyContact.page
index dd21ac9..346569a 100644
--- a/force-app/main/default/pages/NewAndEditAgencyContact.page
+++ b/force-app/main/default/pages/NewAndEditAgencyContact.page
@@ -305,14 +305,15 @@
             //1. Get Sobject Information from Form
             let sobjJson = getSobjectInformation();
             //2. Validate the Sobject field value formate, for example the email formate or phone formate
-
-            let validationResultMessage = validateFieldValueFormate();
-            console.log(validationResultMessage);
-            if (validationResultMessage) {
-                //Popup error message.  - To Do After POC
-                alertErrorMessage(validationResultMessage);
-                return
-            }
+            //updated by Lijun0325  Start
+            //let validationResultMessage = validateFieldValueFormate(); 
+            //console.log(validationResultMessage);
+            // if (validationResultMessage) {
+            //     //Popup error message.  - To Do After POC
+            //     alertErrorMessage(validationResultMessage);
+            //     return
+            // }
+            //updated by Lijun0325  End
             // Check Required Field
             let checkRequiredFieldMsgResult = checkRequiredFieldMsg(sobjJson);
             if (checkRequiredFieldMsgResult) {
diff --git a/force-app/main/default/pages/NewAndEditCase.page b/force-app/main/default/pages/NewAndEditCase.page
index 0310339..5f79017 100644
--- a/force-app/main/default/pages/NewAndEditCase.page
+++ b/force-app/main/default/pages/NewAndEditCase.page
@@ -290,7 +290,11 @@
                 accountValue = document.getElementById(accountNodeId).value;   
             } 
             console.log(accountValue);
-            if(accountValue !='000000000000000'){
+            if(accountValue !='000000000000000' || true){
+                if (accountValue == '000000000000000') {
+                    accountValue = '';
+                }
+
                 let baseUrl = "/apex/SearchContactPage";
                 let searchContactKeyWord = document.querySelector("[data-id='ContactId']").value;
                 let suffixUrl = "?contactId=" + contactNodeId + "&accountId=" + accountValue+"&searchContactKeyWord=" + searchContactKeyWord;
diff --git a/force-app/main/default/pages/NewAndEditContact.page b/force-app/main/default/pages/NewAndEditContact.page
index e9c31db..3b78be9 100644
--- a/force-app/main/default/pages/NewAndEditContact.page
+++ b/force-app/main/default/pages/NewAndEditContact.page
@@ -374,6 +374,7 @@
 
         function alertErrorMessage(errorMsg) {
             let errorMsgNode = document.getElementById("page:form:block:msgContent");
+            errorMsg = '閿欒锛氭棤鏁堟暟鎹��' + '\n' + errorMsg;
             errorMsgNode.innerText = errorMsg;
             errorMsgNode.className = 'pbError';
         }
diff --git a/force-app/main/default/pages/NewAndEditInquiryForm.page b/force-app/main/default/pages/NewAndEditInquiryForm.page
index 7bf1bba..056f814 100644
--- a/force-app/main/default/pages/NewAndEditInquiryForm.page
+++ b/force-app/main/default/pages/NewAndEditInquiryForm.page
@@ -386,16 +386,17 @@
             let searchContactKeyWord = document.querySelector("[data-id='Contact_Name__c']").value;
             if(accountValue !='000000000000000'){
                 suffixUrl = "?contactId=" + contactNodeId + "&accountId=" + accountValue+"&searchContactKeyWord=" + searchContactKeyWord;
+                let baseUrl = "/apex/SearchContactPage";
+                let newSearchContactParam = 'height=600,width=800,left=100,top=100,dialogHide=true,resizable=no,scrollbars=yes,toolbar=no,status=no';
+                newSearchContactWindow = window.open(baseUrl+suffixUrl, 'Popup', newSearchContactParam);
+                if (window.focus) {
+                    newSearchContactWindow.focus();
+                }
+                return false;
             }else{
-                suffixUrl = "?contactId="+contactNodeId+"&searchContactKeyWord=" + searchContactKeyWord;
+                // suffixUrl = "?contactId="+contactNodeId+"&searchContactKeyWord=" + searchContactKeyWord;
+                alertErrorMessage('璇峰厛閫夋嫨绉戝鍚�');
             }
-            let baseUrl = "/apex/SearchContactPage";
-            let newSearchContactParam = 'height=600,width=800,left=100,top=100,dialogHide=true,resizable=no,scrollbars=yes,toolbar=no,status=no';
-            newSearchContactWindow = window.open(baseUrl+suffixUrl, 'Popup', newSearchContactParam);
-            if (window.focus) {
-                newSearchContactWindow.focus();
-            }
-            return false;
         }
         //绐楀彛鍏抽棴鏃跺彂鐢�
         function closePopupWindow() {
@@ -414,7 +415,7 @@
         function replaceSearchContactLookup() {
             let lookUpNode = htmlToElement(contactHtmlString);
             console.log(lookUpNode);
-            let eleContactValue = document.querySelector("[data-id='Contact_Name__c']").parentNode.parentNode.children[0].value;
+            let eleContactValue = document.querySelector("[data-id='Contact_Name__c']").parentNode.parentNode.children[1].value;
             if (eleContactValue) {
                 if (!{!isNewMode} || (eleContactValue != '000000000000000')) {
                     //1. Query Contact from AWS by AWSDataId
@@ -597,7 +598,17 @@
                         for (let n = 0; n < layoutSection.length; n++) {
                             let layoutField = layoutSection[n];
                             if (layoutField.fieldAPI != '' && document.querySelector("[data-id='"+layoutField.fieldAPI+"']") != null) {
-                                document.querySelector("[data-id='"+layoutField.fieldAPI+"']").disabled = !(layoutField.editableField);
+                                let e = document.querySelector("[data-id='"+layoutField.fieldAPI+"']");
+                                e.disabled = !(layoutField.editableField);
+                                if (!(layoutField.editableField)) {
+                                    if (e.getAttribute("multiple") && e.getAttribute("multiple") == 'multiple') {
+                                        e.parentNode.classList.add("disabledbutton");
+                                    }else if (e.tagName == 'DIV') {
+                                        e.classList.add("disabledbutton");
+                                    }else if (VLookUpFields.indexOf(layoutField.fieldAPI) >= 0) {
+                                        e.parentNode.classList.add("disabledbutton");
+                                    }
+                                }
                             }
                         }
                     }
diff --git a/force-app/main/default/pages/NewAndEditInspectionReport.page b/force-app/main/default/pages/NewAndEditInspectionReport.page
index fecb514..0f6e105 100644
--- a/force-app/main/default/pages/NewAndEditInspectionReport.page
+++ b/force-app/main/default/pages/NewAndEditInspectionReport.page
@@ -226,9 +226,12 @@
                 }
                 
             }
-            //let reporter = GetEleApiName(nodelist[5])
-            //console.log('reporter:'+reporter);
-            result['Reporter__c'] = document.getElementById('page:form:block:j_id50:0:j_id51:j_id52:4:j_id53_lkid').value;
+             //璧嬪�煎瘜鏂囨湰鍖哄煙
+            //绉戝璐熻矗浜虹瀛�
+            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id51:0:j_id52:j_id53:5:j_id54:textAreaDelegate_ResponsiblePerson_Sign__c']")){
+                result.ResponsiblePerson_Sign__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id51:0:j_id52:j_id53:5:j_id54:textAreaDelegate_ResponsiblePerson_Sign__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            }
+            result['Reporter__c'] = document.getElementById('page:form:block:j_id51:0:j_id52:j_id53:4:j_id54_lkid').value;
             return result;
         }
         function QuerySobjectFromAWS() {
diff --git a/force-app/main/default/pages/NewAndEditLead.page b/force-app/main/default/pages/NewAndEditLead.page
index 61fa0f9..6ecd27e 100644
--- a/force-app/main/default/pages/NewAndEditLead.page
+++ b/force-app/main/default/pages/NewAndEditLead.page
@@ -439,8 +439,17 @@
                         let layoutSection = layoutSections[m].layoutFields;
                         for (let n = 0; n < layoutSection.length; n++) {
                             let layoutField = layoutSection[n];
-                            if (layoutField.fieldAPI != '' && document.querySelector("[data-id='" + layoutField.fieldAPI + "']") != null) {
-                                document.querySelector("[data-id='" + layoutField.fieldAPI + "']").disabled = !(layoutField.editableField);
+                            if (layoutField.fieldAPI != '' && document.querySelector("[data-id='"+layoutField.fieldAPI+"']") != null) {
+                                let e = document.querySelector("[data-id='"+layoutField.fieldAPI+"']");
+                                e.disabled = !(layoutField.editableField);
+                                if (!(layoutField.editableField)) {
+                                    if (e.getAttribute("multiple") && e.getAttribute("multiple") == 'multiple') {
+                                        e.parentNode.classList.add("disabledbutton");
+                                    }
+                                    if (e.tagName == 'DIV') {
+                                        e.classList.add("disabledbutton");
+                                    }
+                                }
                             }
                         }
                     }
diff --git a/force-app/main/default/pages/NewAndEditQIS.page b/force-app/main/default/pages/NewAndEditQIS.page
index 5e65e26..61dea99 100644
--- a/force-app/main/default/pages/NewAndEditQIS.page
+++ b/force-app/main/default/pages/NewAndEditQIS.page
@@ -4,8 +4,13 @@
     <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
     <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
     <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
+    <style>
+        .disabledbutton {
+            pointer-events: none;
+            opacity: 0.4;
+        }
+    </style>
     <script>
-        
         var config = {};
         config = {
             SobjectName : "{!SobjectName}",
@@ -546,7 +551,16 @@
                         for (let n = 0; n < layoutSection.length; n++) {
                             let layoutField = layoutSection[n];
                             if (layoutField.fieldAPI != '' && document.querySelector("[data-id='"+layoutField.fieldAPI+"']") != null) {
-                                document.querySelector("[data-id='"+layoutField.fieldAPI+"']").disabled = !(layoutField.editableField);
+                                let e = document.querySelector("[data-id='"+layoutField.fieldAPI+"']");
+                                e.disabled = !(layoutField.editableField);
+                                if (!(layoutField.editableField)) {
+                                    if (e.getAttribute("multiple") && e.getAttribute("multiple") == 'multiple') {
+                                        e.parentNode.classList.add("disabledbutton");
+                                    }
+                                    if (e.tagName == 'DIV') {
+                                        e.classList.add("disabledbutton");
+                                    }
+                                }
                             }
                         }
                     }
diff --git a/force-app/main/default/pages/NewAndEditRepairSubOrder.page b/force-app/main/default/pages/NewAndEditRepairSubOrder.page
index cd7ff61..f8204c5 100644
--- a/force-app/main/default/pages/NewAndEditRepairSubOrder.page
+++ b/force-app/main/default/pages/NewAndEditRepairSubOrder.page
@@ -586,7 +586,16 @@
                         for (let n = 0; n < layoutSection.length; n++) {
                             let layoutField = layoutSection[n];
                             if (layoutField.fieldAPI != '' && document.querySelector("[data-id='"+layoutField.fieldAPI+"']") != null) {
-                                document.querySelector("[data-id='"+layoutField.fieldAPI+"']").disabled = !(layoutField.editableField);
+                                let e = document.querySelector("[data-id='"+layoutField.fieldAPI+"']");
+                                e.disabled = !(layoutField.editableField);
+                                if (!(layoutField.editableField)) {
+                                    if (e.getAttribute("multiple") && e.getAttribute("multiple") == 'multiple') {
+                                        e.parentNode.classList.add("disabledbutton");
+                                    }
+                                    if (e.tagName == 'DIV') {
+                                        e.classList.add("disabledbutton");
+                                    }
+                                }
                             }
                         }
                     }
diff --git a/force-app/main/default/pages/NewAndEditReport.page b/force-app/main/default/pages/NewAndEditReport.page
index 5c4b6ed..6d07c91 100644
--- a/force-app/main/default/pages/NewAndEditReport.page
+++ b/force-app/main/default/pages/NewAndEditReport.page
@@ -564,7 +564,16 @@
                         for (let n = 0; n < layoutSection.length; n++) {
                             let layoutField = layoutSection[n];
                             if (layoutField.fieldAPI != '' && document.querySelector("[data-id='"+layoutField.fieldAPI+"']") != null) {
-                                document.querySelector("[data-id='"+layoutField.fieldAPI+"']").disabled = !(layoutField.editableField);
+                                let e = document.querySelector("[data-id='"+layoutField.fieldAPI+"']");
+                                e.disabled = !(layoutField.editableField);
+                                if (!(layoutField.editableField)) {
+                                    if (e.getAttribute("multiple") && e.getAttribute("multiple") == 'multiple') {
+                                        e.parentNode.classList.add("disabledbutton");
+                                    }
+                                    if (e.tagName == 'DIV') {
+                                        e.classList.add("disabledbutton");
+                                    }
+                                }
                             }
                         }
                     }
diff --git a/force-app/main/default/pages/NewConsumApply.page b/force-app/main/default/pages/NewConsumApply.page
index bb0d374..73dd489 100644
--- a/force-app/main/default/pages/NewConsumApply.page
+++ b/force-app/main/default/pages/NewConsumApply.page
@@ -2,7 +2,7 @@
   @description       : 
   @author            : ChangeMeIn@UserSettingsUnder.SFDoc
   @group             : 
-  @last modified on  : 03-23-2022
+  @last modified on  : 03-28-2022
   @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc
 -->
 <apex:page standardController="Consum_Apply__c" extensions="NewConsumApplyController" id="page">
@@ -165,6 +165,27 @@
             if(result.pickup_time__c){
                 result.pickup_time__c = result.pickup_time__c.replace(/\//g, '-')+':00';
             }
+            if(result.Request_Shipping_7days_Before__c){
+                result.Request_Shipping_7days_Before__c = result.Request_Shipping_7days_Before__c.replace(/\//g, '-')+':00';
+            }
+            if(result.Request_shipping_day__c){
+                result.Request_shipping_day__c = result.Request_shipping_day__c.replace(/\//g, '-')+':00';
+            }
+            if(result.Consum_Received_Day__c){
+                result.Consum_Received_Day__c = result.Consum_Received_Day__c.replace(/\//g, '-')+':00';
+            }
+            if(result.Request_demo_time__c){
+                result.Request_demo_time__c = result.Request_demo_time__c.replace(/\//g, '-')+':00';
+            }
+            if(result.Request_approval_time__c){
+                result.Request_approval_time__c = result.Request_approval_time__c.replace(/\//g, '-')+':00';
+            }
+            if(result.Application_accept_time__c){
+                result.Application_accept_time__c = result.Application_accept_time__c.replace(/\//g, '-')+':00';
+            }
+            if(result.Request_answer_time__c){
+                result.Request_answer_time__c = result.Request_answer_time__c.replace(/\//g, '-')+':00';
+            }
             if(result.HP_received_sign_rich__c == '<br>'){
                 result.HP_received_sign_rich__c = '';
             }
@@ -273,21 +294,26 @@
             return template.content.firstChild;
         }
         function queryContactName() {
-            let sfId = document.getElementById(document.querySelector("[data-id='Account__c']").id + '_lkid').value;
+            let sfId = document.getElementById(document.querySelector("[data-id='Loaner_medical_Staff__c']").id + '_lkid').value;
             let contactsInfo = JSON.parse('{!contactsInfo}');
             let dataId = contactsInfo[sfId];
             let url = staticResourcesContact.queryUrl + '?dataId=' + dataId;
-            fetch(url, {
-                method: 'GET',
-                headers: {
-                    'Content-Type': 'application/json',
-                    'pi-token': staticResources.token
-                }
-            }).then((data) => {
-                return data.json();
-            }).then((result) => {
+            let queryBackContactName = function queryBackContactName(result){
                 document.querySelector("[data-id='Loaner_medical_Staff__c']").value = result.object.lastName;
-            })
+                //document.querySelector("[data-id='LastName']").value = result.object.lastName;
+            };
+            AWSService.query(staticResourcesContact.queryUrl, dataId, queryBackContactName, staticResourcesContact.token);
+            // fetch(url, {
+            //     method: 'GET',
+            //     headers: {
+            //         'Content-Type': 'application/json',
+            //         'pi-token': staticResources.token
+            //     }
+            // }).then((data) => {
+            //     return data.json();
+            // }).then((result) => {
+            //     document.querySelector("[data-id='Loaner_medical_Staff__c']").value = result.object.lastName;
+            // })
         }
         //鑷畾涔塴ookup鏌ヨ
         function searchContact(contactNodeId){
@@ -393,7 +419,16 @@
                         for (let n = 0; n < layoutSection.length; n++) {
                             let layoutField = layoutSection[n];
                             if (layoutField.fieldAPI != '' && document.querySelector("[data-id='"+layoutField.fieldAPI+"']") != null) {
-                                document.querySelector("[data-id='"+layoutField.fieldAPI+"']").disabled = !(layoutField.editableField);
+                                let e = document.querySelector("[data-id='"+layoutField.fieldAPI+"']");
+                                e.disabled = !(layoutField.editableField);
+                                if (!(layoutField.editableField)) {
+                                    if (e.getAttribute("multiple") && e.getAttribute("multiple") == 'multiple') {
+                                        e.parentNode.classList.add("disabledbutton");
+                                    }
+                                    if (e.tagName == 'DIV') {
+                                        e.classList.add("disabledbutton");
+                                    }
+                                }
                             }
                         }
                     }
diff --git a/force-app/main/default/pages/NewOnCall.page b/force-app/main/default/pages/NewOnCall.page
index 98ab01f..73b64c5 100644
--- a/force-app/main/default/pages/NewOnCall.page
+++ b/force-app/main/default/pages/NewOnCall.page
@@ -2,7 +2,7 @@
   @description       : 
   @author            : ChangeMeIn@UserSettingsUnder.SFDoc
   @group             : 
-  @last modified on  : 03-23-2022
+  @last modified on  : 03-24-2022
   @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc
 -->
 <apex:page standardController="On_Call__c" extensions="OnCallController" id="page">
@@ -283,7 +283,16 @@
                         for (let n = 0; n < layoutSection.length; n++) {
                             let layoutField = layoutSection[n];
                             if (layoutField.fieldAPI != '' && document.querySelector("[data-id='"+layoutField.fieldAPI+"']") != null) {
-                                document.querySelector("[data-id='"+layoutField.fieldAPI+"']").disabled = !(layoutField.editableField);
+                                let e = document.querySelector("[data-id='"+layoutField.fieldAPI+"']");
+                                e.disabled = !(layoutField.editableField);
+                                if (!(layoutField.editableField)) {
+                                    if (e.getAttribute("multiple") && e.getAttribute("multiple") == 'multiple') {
+                                        e.parentNode.classList.add("disabledbutton");
+                                    }
+                                    if (e.tagName == 'DIV') {
+                                        e.classList.add("disabledbutton");
+                                    }
+                                }
                             }
                         }
                     }
diff --git a/force-app/main/default/pages/NewRentalApply.page b/force-app/main/default/pages/NewRentalApply.page
index 8d3ce75..cf152c6 100644
--- a/force-app/main/default/pages/NewRentalApply.page
+++ b/force-app/main/default/pages/NewRentalApply.page
@@ -2,7 +2,7 @@
   @description       : 
   @author            : ChangeMeIn@UserSettingsUnder.SFDoc
   @group             : 
-  @last modified on  : 03-23-2022
+  @last modified on  : 03-28-2022
   @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc
 -->
 <apex:page standardController="Rental_Apply__c" extensions="RentalApplyController" id="page">
@@ -106,9 +106,12 @@
             let nodelist = document.querySelectorAll("[data-id]");
             let result = {}
             //瀵屾枃鏈�
-            if(document.querySelector("[aria-describedby = 'cke_34']")){
-                result.HP_received_sign_rich__c = document.querySelector("[aria-describedby = 'cke_34']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }           
+            if(document.querySelector("[aria-describedby = 'cke_38']")){
+                result.HP_received_sign_rich__c = document.querySelector("[aria-describedby = 'cke_38']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            }
+            if(document.querySelector("[aria-describedby = 'cke_71']")){
+                result.	Extension_List_RentalApply__c = document.querySelector("[aria-describedby = 'cke_71']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            }
             for (let index = 0; index < nodelist.length; index++) {
                 if (VLookUpFields.has(nodelist[index].getAttribute("data-id"))) {
                     console.log(nodelist[index].id.indexOf('lkwgt'));
@@ -149,8 +152,9 @@
             result.ToAgency__c = document.querySelector("[id='page:form:block:j_id34:0:j_id35:j_id36:14:j_id37']").value;
             result.Loaner_cancel_reason__c = document.querySelector("[id='page:form:block:j_id34:12:j_id35:j_id36:1:j_id37']").value;
             console.log(JSON.stringify(result));
-            if(result.HP_received_sign_rich__c == '<br>'){
-                result.HP_received_sign_rich__c = '';
+            //鏍煎紡鍖栨椂闂�
+            if(result.HP_received_sign_day__c){
+                result.HP_received_sign_day__c = result.HP_received_sign_day__c.replace(/\//g, '-')+':00';
             }
             return result;
         }
@@ -375,7 +379,16 @@
                         for (let n = 0; n < layoutSection.length; n++) {
                             let layoutField = layoutSection[n];
                             if (layoutField.fieldAPI != '' && document.querySelector("[data-id='"+layoutField.fieldAPI+"']") != null) {
-                                document.querySelector("[data-id='"+layoutField.fieldAPI+"']").disabled = !(layoutField.editableField);
+                                let e = document.querySelector("[data-id='"+layoutField.fieldAPI+"']");
+                                e.disabled = !(layoutField.editableField);
+                                if (!(layoutField.editableField)) {
+                                    if (e.getAttribute("multiple") && e.getAttribute("multiple") == 'multiple') {
+                                        e.parentNode.classList.add("disabledbutton");
+                                    }
+                                    if (e.tagName == 'DIV') {
+                                        e.classList.add("disabledbutton");
+                                    }
+                                }
                             }
                         }
                     }
diff --git a/force-app/main/default/pages/NewRepair.page b/force-app/main/default/pages/NewRepair.page
index bc80e27..eb79765 100644
--- a/force-app/main/default/pages/NewRepair.page
+++ b/force-app/main/default/pages/NewRepair.page
@@ -2,7 +2,7 @@
   @description       : 
   @author            : ChangeMeIn@UserSettingsUnder.SFDoc
   @group             : 
-  @last modified on  : 03-23-2022
+  @last modified on  : 03-25-2022
   @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc
 -->
 <apex:page standardController="Repair__c" extensions="NewRepairController" id="page">
@@ -41,6 +41,15 @@
                 alertErrorMessage(errorMessage);
             }
         }
+        var GetEleApiName = function(ele){
+                    for(let ci in ele.classList){
+                        let c = ele.classList[ci];
+                        if(c.indexOf('PIBackApi'+'_')>-1){
+                            return c.replace('PIBackApi'+'_','');
+                        }
+                    }
+                    return '';
+                }
 
         //Query Required Parameter
         // var queryBack = function queryBack(data) {
@@ -156,20 +165,52 @@
             for (let i = 0; i < userVLookUpFields.length; i++) {
                 if(document.querySelector("[data-id='" + userVLookUpFields[i] + "']")!=null){
                     // let userVlookUpNodeValue = document.querySelector("[data-id='" + userVLookUpFields[i] + "']").children[1].value;
-                    let userVlookUpNodeValue = jQuery('[data-id="Incharge_Staff__c"] .lookupInput input').val()
-                    console.log('userVlookUpNodeValue:'+userVlookUpNodeValue);
-                    if(userVlookUpNodeValue!='000000000000000'){
-                        result[userVLookUpFields[i]] = userVlookUpNodeValue;
+                    let e = document.getElementById(jQuery('[data-id="'+userVLookUpFields[i]+'"] .lookupInput input').attr('id')+'_lkid');
+                    //let userVlookUpNodeValue = jQuery('[data-id="Incharge_Staff__c"] .lookupInput input').val()
+                    // console.log('userVlookUpNodeValue:'+e.value);
+                    if(e && e.value!='000000000000000'){
+                        result[userVLookUpFields[i]] =  e.value;
                     }
                 }               
             }
-            result.work_location_select__c = document.querySelector("[id='page:form:block:j_id34:1:j_id35:j_id36:18:j_id37']").value;
+            // result.work_location_select__c = document.querySelector("[id='page:form:block:j_id34:1:j_id35:j_id36:18:j_id37']").value;
             // result.ProblemDescription__c = document.querySelector("[aria-describedby = 'cke_34']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
             /*
             if(result.engineerSendDate__c){
                 result.engineerSendDate__c = result.engineerSendDate__c.replace(/\//g, '-')+':00';
             }
             */
+           let e = null;
+           e = document.getElementById(jQuery('[data-id="Incharge_Staff__c"] .lookupInput input').attr('id')+'_lkid');
+           if(e){
+            result.Incharge_Staff__c = e.value;
+           }
+
+           e = document.getElementById(api_id_map['work_location_select__c']);
+           if(e){
+            result.work_location_select__c = e.value;
+           }
+           e = document.getElementById(jQuery('[data-id="OCSM_RC_CordingUser__c"] .lookupInput input').attr('id')+'_lkid');
+           if(e){
+            result.OCSM_RC_CordingUser__c = e.value;
+           }
+           
+           e = document.getElementById(jQuery('[data-id="OSH_Affirmant__c"] .lookupInput input').attr('id')+'_lkid');
+           if(e){
+            result.OSH_Affirmant__c = e.value;
+           }
+           e = document.getElementById(jQuery('[data-id="OSHRAConfirmUser__c"] .lookupInput input').attr('id')+'_lkid');
+           if(e){
+            result.OSHRAConfirmUser__c = e.value;
+           }
+           e = document.getElementById(jQuery('[data-id="Repair_Authenticator__c"] .lookupInput input').attr('id')+'_lkid');
+           if(e){
+            result.Repair_Authenticator__c = e.value;
+           }
+           e = document.getElementById(jQuery('[data-id="Repair_Determine_result_ConfirmationUser__c"] .lookupInput input').attr('id')+'_lkid');
+           if(e){
+            result.Repair_Determine_result_ConfirmationUser__c = e.value;
+           }
             console.log(JSON.stringify(result));
             return result;
         }
@@ -181,22 +222,22 @@
 
         var queryBack = function queryBack(data) {
                     console.log(data);
-                    document.querySelector("[data-id='address_Contacts__c']").innerHTML = data.object.addressContacts;
-                    document.querySelector("[data-id='address_Contacts_Name__c']").innerHTML = data.object.addressContactsName;
-                    document.querySelector("[data-id='address_Telephone__c']").innerHTML = data.object.addressTelephone;
-                    document.querySelector("[data-id='address_ZipCode__c']").innerHTML = data.object.addressZipCode;
-                    document.querySelector("[data-id='Detailed_Address__c']").innerHTML = data.object.detailedAddress;
-                    document.querySelector("[data-id='RepairApplicant__c']").innerHTML = data.object.repairApplicant;
+                    document.querySelector("[data-id='address_Contacts__c']").value = data.object.addressContacts;
+                    document.querySelector("[data-id='address_Contacts_Name__c']").value = data.object.addressContactsName;
+                    document.querySelector("[data-id='address_Telephone__c']").value = data.object.addressTelephone;
+                    document.querySelector("[data-id='address_ZipCode__c']").value = data.object.addressZipCode;
+                    document.querySelector("[data-id='Detailed_Address__c']").value = data.object.detailedAddress;
+                    document.querySelector("[data-id='RepairApplicant__c']").value = data.object.repairApplicant;
                     AWSService.query(staticResourceAddress.queryUrl, '{!DecryptAWSDataId}', queryBackDecrypt, staticResourceAddress.token);
                 };
         var queryBackContact = function queryBack(data) {
                     console.log(data);
-                    document.querySelector("[data-id='address_Contacts__c']").innerHTML = data.object.lastName;
+                    document.querySelector("[data-id='address_Contacts__c']").value = data.object.lastName;
                 };
         var queryBackDecrypt = function queryBack(data) {
-                    document.querySelector("[data-id='Detailed_Address__c']").innerHTML = data.object.detailedAddress;
-                    document.querySelector("[data-id='address_ZipCode__c']").innerHTML = data.object.zipCode;
-                    document.querySelector("[data-id='address_Telephone__c']").innerHTML = data.object.telephone;
+                    document.querySelector("[data-id='Detailed_Address__c']").value = data.object.detailedAddress;
+                    document.querySelector("[data-id='address_ZipCode__c']").value = data.object.zipCode;
+                    document.querySelector("[data-id='address_Telephone__c']").value = data.object.telephone;
                     AWSService.query(staticResourceContact.queryUrl, '{!ContactAWSDataId}', queryBackContact, staticResourceContact.token);
                 }
 
@@ -337,6 +378,28 @@
                 </apex:pageBlockSection>
             </apex:repeat>
             <script>
+                function IsFormTag(tag_name){
+                if (!tag_name) {
+                    return false;
+                }
+                    return ['input','select','textarea'].indexOf(tag_name.toLowerCase())>-1;
+                }
+                
+                function IsFormElement(e){
+                    return IsFormTag(e.tagName);
+                }
+                var init_nodes = document.getElementsByClassName("PIBackApi");
+                var api_id_map={};
+                for(let ei in init_nodes){
+                    let e = init_nodes[ei];
+                    if(IsFormElement(e)){
+                        if(e.getAttribute("multiple") != 'multiple' || e.style.display == 'none' && e.id.indexOf('selected') < 0){
+                            api_id_map[GetEleApiName(e)] = e.id;
+                        }
+                        
+                    }
+                }
+                
                 //Append Page
                 sfdcPage.appendToOnloadQueue(function () {
                     var layoutSections = JSON.parse('{!layoutSectionsStr}');
@@ -345,7 +408,16 @@
                         for (let n = 0; n < layoutSection.length; n++) {
                             let layoutField = layoutSection[n];
                             if (layoutField.fieldAPI != '' && document.querySelector("[data-id='"+layoutField.fieldAPI+"']") != null) {
-                                document.querySelector("[data-id='"+layoutField.fieldAPI+"']").disabled = !(layoutField.editableField);
+                                let e = document.querySelector("[data-id='"+layoutField.fieldAPI+"']");
+                                e.disabled = !(layoutField.editableField);
+                                if (!(layoutField.editableField)) {
+                                    if (e.getAttribute("multiple") && e.getAttribute("multiple") == 'multiple') {
+                                        e.parentNode.classList.add("disabledbutton");
+                                    }
+                                    if (e.tagName == 'DIV') {
+                                        e.classList.add("disabledbutton");
+                                    }
+                                }
                             }
                         }
                     }
@@ -354,8 +426,10 @@
                     if (!{!isNewMode}) {
                         blockme();
                         QueryRepairFromAWS();
+                        unblockUI();
                     };
-                    document.querySelector("[data-id='OwnerId']").classList.add("disabledbutton");
+                    if(document.querySelector("[data-id='OwnerId']") != null)
+                    	document.querySelector("[data-id='OwnerId']").classList.add("disabledbutton");
 
                     let previous_value = {};
                     jQuery(".lookupInput input").each(function(i,e){
diff --git a/force-app/main/default/pages/OFSInsReportLayout.page b/force-app/main/default/pages/OFSInsReportLayout.page
index 5167cdd..9e5d847 100644
--- a/force-app/main/default/pages/OFSInsReportLayout.page
+++ b/force-app/main/default/pages/OFSInsReportLayout.page
@@ -217,7 +217,7 @@
     let divs = j$(e).find("div.message");
     for (let i = 0; i < divs.length; i++) {
         for (let j = 0; j < divs[i].classList.length; j++) {
-            for(let cls of divs[i].classList){
+            for(let clsi in divs[i].classList){let cls=divs[i].classList[clsi];
                 if (cls.indexOf('error')>-1) {
                     return true;
                 }
diff --git a/force-app/main/default/pages/SearchAWSContactByNamePage.page b/force-app/main/default/pages/SearchAWSContactByNamePage.page
index 8f311fd..617534a 100644
--- a/force-app/main/default/pages/SearchAWSContactByNamePage.page
+++ b/force-app/main/default/pages/SearchAWSContactByNamePage.page
@@ -1,5 +1,8 @@
 <apex:page controller="SearchContactController" id="page">
+    <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}" />
     <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
+    <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}" />
+    <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}" />
 
     <head>
     </head>
@@ -22,7 +25,8 @@
             var searchContactName = '';
             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;
@@ -31,6 +35,7 @@
                     queryLeadFromAWS();
                 }else{
                     alert("璇疯緭鍏ヨ嚦灏�2涓叧閿瓧");
+                    unblockUI();
                 }
 
             }
@@ -121,6 +126,7 @@
                     }
                 }
                 myTableDiv.appendChild(table);
+                unblockUI();
             }
             function initContactTable(data) {            
                 let cols = ['Name','AccountName','Email', 'Phone'];
@@ -143,7 +149,7 @@
                 //Invoke SF BackEnd
                 Visualforce.remoting.Manager.invokeAction(
                     '{!$RemoteAction.SearchContactController.searchContacts}',
-                    JSON.stringify(awsDataIds),
+                    JSON.stringify(awsDataIds),'','',
                     function (result, event) {
                         if(event.status){
                             if(result.status == 'success'){                               
diff --git a/force-app/main/default/pages/SearchContactPage.page b/force-app/main/default/pages/SearchContactPage.page
index 782df44..c95f25d 100644
--- a/force-app/main/default/pages/SearchContactPage.page
+++ b/force-app/main/default/pages/SearchContactPage.page
@@ -1,6 +1,8 @@
 <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.PleaseWaitDialog)}" />
+    <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}" />
 
     <head>
     </head>
@@ -24,12 +26,12 @@
             var searchContactName = searchKeyWord;
             queryLeadFromAWS();
             function searchAWSContact(){
-                //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');
@@ -137,6 +139,7 @@
                     }
                 }
                 myTableDiv.appendChild(table);
+                unblockUI();
             }
             function initContactTable(data) {            
                 let cols = ['Name','AccountName', 'Email', 'Phone'];
diff --git a/force-app/main/default/pages/SearchVisitor.page b/force-app/main/default/pages/SearchVisitor.page
index 533f902..c5aeee8 100644
--- a/force-app/main/default/pages/SearchVisitor.page
+++ b/force-app/main/default/pages/SearchVisitor.page
@@ -283,9 +283,10 @@
             ProcessPIForAWS({},GetEditObj());
         }
         function Trans(){
+            console.log('SFRcordId:'+document.getElementById('Page:mainForm:sfContactId').value);
             AWSService.postAWS(staticResources.transactionUrl,AWSService.confirmTrans, JSON.stringify({
                     "txId":aws_result.txId,
-                    "sfRecordId":"",
+                    "sfRecordId":document.getElementById('Page:mainForm:sfContactId').value,
                     "isSuccess":1
             }), function(result){
                 window.location.reload();
@@ -327,7 +328,7 @@
         <apex:actionFunction name="editVistor" action="{!editVistor}" rerender="idRegistration" oncomplete="assignDencrypted();setButtonDisable(document.getElementById('Page:mainForm:idSearchVisitor:idRegSave'), false);">
             <apex:param name="index" assignTo="{!index}" value=""/>
         </apex:actionFunction>
-        <apex:actionFunction name="saveNew" action="{!regContact}" rerender="idRegistration,idRezultVisitor,idAddVisitor,idMessage" onComplete="Trans();">
+        <apex:actionFunction name="saveNew" action="{!regContact}" rerender="idRegistration,idRezultVisitor,idAddVisitor,idMessage,sfContactId" onComplete="Trans()">
         </apex:actionFunction>
          <!-- Add By Li Jun for PIPL 20220228 Start -->
          <apex:inputHidden id="LastName_Encrypted__c" value="{!rc.LastName_Encrypted__c}"/>
@@ -337,6 +338,7 @@
          <apex:inputHidden id="Doctor_Division1_Encrypted__c" value="{!rc.Doctor_Division1_Encrypted__c}"/>
 
          <apex:inputHidden id="AWS_Data_Id__c" value="{!rc.AWS_Data_Id__c}"/>
+         <apex:inputHidden id="sfContactId" value="{!sfContactId}"/>
          <!-- Add By Li Jun for PIPL 20220221 End -->
             <apex:pageBlock id="idSearchVisitor" >
                 <table width="1060" height="50" border="0">
diff --git a/force-app/main/default/pages/StraightBackAddress.page b/force-app/main/default/pages/StraightBackAddress.page
index f82c284..2510d5d 100644
--- a/force-app/main/default/pages/StraightBackAddress.page
+++ b/force-app/main/default/pages/StraightBackAddress.page
@@ -56,7 +56,8 @@
                     if(isAddCon){
                         AWSService.post(staticResourceContact.transactionUrl, JSON.stringify({
                             "txId":con_aws_result.txId,
-                            "isSuccess":b ? 0 : 1
+                            "isSuccess":b ? 0 : 1,
+                            "sfRecordId":document.getElementById('allPage:allForm:sfRecordId').value
                         }), function(result){
                             if(!b)
                             window.location.reload();
@@ -449,8 +450,8 @@
                 '\n閭紪: '+PIData[awsDataId].zipCode+
                 '\n璇︾粏鍦板潃: '+PIData[awsDataId].detailedAddress
             }else{
-                piInformation = '鑱旂郴浜�: null'+
-                '\n鐢佃瘽: '+PIData[awsDataId].telephone+
+                piInformation =
+                '鐢佃瘽: '+PIData[awsDataId].telephone+
                 '\n閭紪: '+PIData[awsDataId].zipCode+
                 '\n璇︾粏鍦板潃: '+PIData[awsDataId].detailedAddress
             }
@@ -545,6 +546,7 @@
         <apex:inputHidden id="tableValueFrontEnd" value="{!tableDataStr}"/>
         <apex:inputHidden value="{!contactId}" id="contactId"/>
         <apex:inputHidden value="{!insUpdDataStr}" id="insUpdDataStr"/>
+        <apex:inputHidden value="{!sfRecordId}" id="sfRecordId"/>
         <div id="tab01">            
             <!-- 椤甸潰鏁版嵁鍒濆鍖栨柟娉� -->
             <apex:actionFunction name="init" action="{!init}" rerender="oppBlock1,message,checEventFrame" onComplete="unblockUI();"></apex:actionFunction>
@@ -558,7 +560,7 @@
                 <apex:param name="isUpload" assignTo="{!isUpload}" value="" />
             </apex:actionFunction>
             <!-- 淇濆瓨鍜屼慨鏀规柟娉� -->
-            <apex:actionFunction name="save" action="{!save}" rerender="oppBlock2,message" onComplete="unblockUI();{!IF(isSearchBtn,'searchBtnJs()',false)};Trans()"></apex:actionFunction>
+            <apex:actionFunction name="save" action="{!save}" rerender="oppBlock2,message,sfRecordId" onComplete="unblockUI();{!IF(isSearchBtn,'searchBtnJs()',false)};Trans();"></apex:actionFunction>
             <!-- 鏌ヨ瀹㈡埛璁板綍绫诲瀷鏂规硶 -->
             <apex:actionFunction name="queryRecordType" action="{!queryRecordType}" rerender="oppBlock2,message" onComplete="unblockUI();"></apex:actionFunction>
             <!-- 鐐瑰嚮淇敼鎸夐挳鑾峰彇淇敼鏁版嵁鏂规硶 -->
@@ -669,9 +671,9 @@
                                         <td align="left" style="vertical-align: inherit;border-width: 0px 1px 1px 0px;">
                                             <apex:outputText value="{!or.address.Detailed_Address__c}" />
                                         </td>
-                                        <!-- <td align="center" style="vertical-align: inherit;width:30px;">
+                                        <td align="center" style="vertical-align: inherit;width:30px;">
                                             <apex:commandButton value=" 缂栬緫 " onclick="onEditorJs('{!or.address.id}');return false;" style="background:#98c1fbf7;display:{!or.canEdit};"/>
-                                        </td> -->
+                                        </td>
                                         <td align="center" style="vertical-align: inherit;width:30px;">
                                             <apex:commandButton value=" 澶嶅埗 " onclick="onCopyJs('{!or.address.id}');return false;" style="background: #98c1fbf7;display:{!or.canCopy};"/>
                                         </td>
diff --git a/force-app/main/default/pages/ViewAgencyContactDecryptInfo.page b/force-app/main/default/pages/ViewAgencyContactDecryptInfo.page
index 1e39a35..90b12a1 100644
--- a/force-app/main/default/pages/ViewAgencyContactDecryptInfo.page
+++ b/force-app/main/default/pages/ViewAgencyContactDecryptInfo.page
@@ -12,7 +12,7 @@
                 </apex:repeat>
             </apex:pageBlockSection>
             <script>
-                var config = {
+                var config = { 
                     SobjectName : "{!SobjectName}",
                     ApiPrefix:"{!ApiPrefix}",
                     AWSToSobjectMap:{!AWSToSobjectMapJson},
@@ -20,14 +20,27 @@
                     AWSToSobjectEncryptedMap:{!AWSToSobjectEncryptedMapJson}
                 };
                 var staticResources = JSON.parse('{!staticResource}');
+                var staticResourceAWSContact = JSON.parse('{!staticResourceAWSContact}');
                 function QuerySobjectFromAWS() {
                     AWSService.query(staticResources.queryUrl, '{!AWSDataId}', queryBack, staticResources.token);
+                    console.log('Query contact by awsid:'+'{!awsContactId}');
+                    if('{!awsContactId}'){
+                        AWSService.query(staticResourceAWSContact.queryUrl, '{!awsContactId}', queryBack, staticResources.token);
+                    }                    
+                    
                 }
                 var queryBack = function queryBack(data) {
                     if(!data.object){
                         console.log('data.object is ' + data.object);
                         return;
                     }
+                    console.log('Data from AWS:'+JSON.stringify(data.object));
+                    if('{!awsContactId}'){
+                        data.object.name = data.object.lastName;
+                        data.object.type = data.object.type;
+                        data.object.doctorDivision1 = data.object.doctorDivision1;
+                    }
+                    console.log('Data from AWS:'+JSON.stringify(data.object));
 
                     for(let f in config.AWSToSobjectNonEncryptedMap){
                         let t = "[title='"+config.ApiPrefix+config.AWSToSobjectNonEncryptedMap[f]+"']";
diff --git a/force-app/main/default/pages/ViewEventDecryptInfo.page b/force-app/main/default/pages/ViewEventDecryptInfo.page
index b2b5c2c..686da95 100644
--- a/force-app/main/default/pages/ViewEventDecryptInfo.page
+++ b/force-app/main/default/pages/ViewEventDecryptInfo.page
@@ -6,9 +6,14 @@
         <apex:pageblock id="pageBlock">
             <apex:pageBlockSection showHeader="false" title="" collapsible="true" columns="2" id="pageBlockSection">
                 <!--Each section has layoutFields, let's iterate them as well-->
-                <apex:repeat value="{!layoutEncryptedAPIList}" var="encryptedAPI">
+                <!-- <apex:repeat value="{!layoutEncryptedAPIList}" var="encryptedAPI">
                     <apex:outputField html-data-id="{!encryptedAPI}" title="{!ApiPrefix}{!encryptedAPI}" value="{!Event[encryptedAPI]}" />
-                </apex:repeat>
+                </apex:repeat> -->
+                <apex:outputField html-data-id="Visitor1__c" title="{!ApiPrefix}Visitor1__c" value="{!Event['Visitor1__c']}" />
+                <apex:outputField html-data-id="Visitor2__c" title="{!ApiPrefix}Visitor2__c" value="{!Event['Visitor2__c']}" />
+                <apex:outputField html-data-id="Visitor3__c" title="{!ApiPrefix}Visitor3__c" value="{!Event['Visitor3__c']}" />
+                <apex:outputField html-data-id="Visitor4__c" title="{!ApiPrefix}Visitor4__c" value="{!Event['Visitor4__c']}" />
+                <apex:outputField html-data-id="Visitor5__c" title="{!ApiPrefix}Visitor5__c" value="{!Event['Visitor5__c']}" />
             </apex:pageBlockSection>
             <script>
                 // var config = {
@@ -18,7 +23,7 @@
                 //     AWSToSobjectNonEncryptedMap:{!AWSToSobjectNonEncryptedMapJson},
                 //     AWSToSobjectEncryptedMap:{!AWSToSobjectEncryptedMapJson}
                 // };
-                AWSService.sfSessionId = '{!GETSESSIONID()}';
+                
                 var staticResources = JSON.parse('{!staticResources}');
                 var contactAWSIds = JSON.parse('{!contactAWSIds}'); //AWS ContactId
                 var sfIdToContactInfo = {};
diff --git a/force-app/main/default/pages/ViewLeadDecryptInfo.page b/force-app/main/default/pages/ViewLeadDecryptInfo.page
index 0cf2bd6..d117a4f 100644
--- a/force-app/main/default/pages/ViewLeadDecryptInfo.page
+++ b/force-app/main/default/pages/ViewLeadDecryptInfo.page
@@ -19,8 +19,10 @@
                 var queryBack = function queryBack(data) {
                     document.querySelector("[data-id='LastName']").innerHTML = data.object.lastName;
                     document.querySelector("[id='page:form:pageBlock:pageBlockSection:j_id3:0:j_id4']").innerHTML =  data.object.phone;
-                    document.querySelector("[data-id='Email']").innerHTML = data.object.email;
-                    
+                    //document.querySelector("[data-id='Email']").innerHTML = data.object.email;
+                    let eml = document.querySelector("[data-id='Email']");
+                    eml.href = 'mailto:'+data.object.email;
+                    eml.text = data.object.email;
                 };
                 sfdcPage.appendToOnloadQueue(function () {
                     console.log('sfdcPage.appendToOnloadQueue')
diff --git a/force-app/main/default/pages/ViewOnCallDecrypt.page b/force-app/main/default/pages/ViewOnCallDecrypt.page
index 77b9a62..72a1136 100644
--- a/force-app/main/default/pages/ViewOnCallDecrypt.page
+++ b/force-app/main/default/pages/ViewOnCallDecrypt.page
@@ -17,6 +17,7 @@
                 </apex:repeat>
             </apex:pageBlockSection>
             <script>
+                AWSService.sfSessionId = '{!GETSESSIONID()}';
                 var staticResources = JSON.parse('{!staticResource}');
                 function QueryConsumApplyFromAWS() {
                     AWSService.query(staticResources.queryUrl, '{!AWSDataId}', queryBack, staticResources.token);
diff --git a/force-app/main/default/pages/ViewReportDecryptInfo.page b/force-app/main/default/pages/ViewReportDecryptInfo.page
index 02b6176..8c70f71 100644
--- a/force-app/main/default/pages/ViewReportDecryptInfo.page
+++ b/force-app/main/default/pages/ViewReportDecryptInfo.page
@@ -15,21 +15,21 @@
                     AWSService.query(staticResources.queryUrl, '{!AWSDataId}', queryBack, staticResources.token);
                 }
                 var queryBack = function queryBack(data) {
-                    document.querySelector("[data-id='VOC_Informer_Name__c']").innerHTML=data.object.vocInformerName
-                    document.querySelector("[id='page:form:pageBlock:pageBlockSection:j_id2:1:j_id3']").innerHTML=data.object.callerPhone
-                    document.querySelector("[data-id='VOC_Informer_Contact__c']").innerHTML=data.object.vocInformerContact
-                    document.querySelector("[data-id='Person_In_Charge_Text__c']").innerHTML=data.object.personInChargeText
-                    document.querySelector("[data-id='Professor_sigh_text__c']").innerHTML=data.object.professorSighText
-                    document.querySelector("[data-id='Staff_Info_Manual_c__c']").innerHTML=data.object.staffInfoManual
-                    document.querySelector("[data-id='Medical_History__c']").innerHTML = data.object.medicalHistory
-                    document.querySelector("[data-id='Practitioner1_Part__c']").innerHTML=data.object.practitioner1Part
-                    document.querySelector("[data-id='Practitioner2_Part__c']").innerHTML=data.object.practitioner2Part
-                    document.querySelector("[data-id='Practitioner3_Part__c']").innerHTML=data.object.practitioner3Part
-                    document.getElementById('page:form:pageBlock:pageBlockSection:j_id2:10:j_id3').innerHTML=data.object.practitioner4Part
-                    document.getElementById('page:form:pageBlock:pageBlockSection:j_id2:11:j_id3').innerHTML=data.object.practitioner5Part
-                    document.getElementById('page:form:pageBlock:pageBlockSection:j_id2:12:j_id3').innerHTML=data.object.age
-                    document.getElementById('page:form:pageBlock:pageBlockSection:j_id2:13:j_id3').innerHTML=data.object.responsiblePersonHP
-                    document.querySelector("[data-id='sex__c']").innerHTML=data.object.sex
+                    document.querySelector("[data-id='VOC_Informer_Name__c']").innerText=data.object.vocInformerName
+                    document.querySelector("[id='page:form:pageBlock:pageBlockSection:j_id2:1:j_id3']").innerText=data.object.callerPhone
+                    document.querySelector("[data-id='VOC_Informer_Contact__c']").innerText=data.object.vocInformerContact
+                    document.querySelector("[data-id='Person_In_Charge_Text__c']").innerText=data.object.personInChargeText
+                    document.querySelector("[data-id='Professor_sigh_text__c']").innerText=data.object.professorSighText
+                    document.querySelector("[data-id='Staff_Info_Manual_c__c']").innerText=data.object.staffInfoManual
+                    document.querySelector("[data-id='Medical_History__c']").innerText = data.object.medicalHistory
+                    document.querySelector("[data-id='Responsible_Person_HP_c__c']").innerText=data.object.responsiblePersonHP
+                    document.querySelector("[data-id='Practitioner1_Part__c']").innerText=data.object.practitioner1Part
+                    document.getElementById('page:form:pageBlock:pageBlockSection:j_id2:8:j_id3').innerText=data.object.practitioner2Part
+                    document.getElementById('page:form:pageBlock:pageBlockSection:j_id2:9:j_id3').innerText=data.object.practitioner3Part
+                    document.getElementById('page:form:pageBlock:pageBlockSection:j_id2:10:j_id3').innerText=data.object.practitioner4Part
+                    document.getElementById('page:form:pageBlock:pageBlockSection:j_id2:11:j_id3').innerText=data.object.practitioner5Part
+                    document.querySelector("[data-id='age__c']").innerText=data.object.age
+                    document.querySelector("[data-id='sex__c']").innerText=data.object.sex
                 };
                 sfdcPage.appendToOnloadQueue(function () {
                     console.log('awsDataId = '+'{!AWSDataId}')

--
Gitblit v1.9.1