Merge PIPL Function code 20220311
 
	
	
	
	
	
	
	
	
	
	
	
	
	
 |  |  | 
 |  |  |     <aura:attribute name="AWStransactionURL" type="String"/> | 
 |  |  |     <aura:attribute name="AWSDoctor2Map" type="String"/> | 
 |  |  |     <aura:attribute name="awsurl" type="Map"/> | 
 |  |  |     <aura:attribute name="contactawsurl" type="Map"/> | 
 |  |  |     <aura:attribute name="allselectlistAgencyPerson" type="Map"/> | 
 |  |  |     <!-- PIPL update Yin Mingjie 21/02/2022 end --> | 
 |  |  |     <!-- 批量添加周报 end--> | 
 |  |  |  | 
 |  |  | 
 |  |  |                             </td> | 
 |  |  |                             <td role="gridcell" class="slds-cell-edit"> | 
 |  |  |                                 <span class="slds-grid slds-grid--align-spread"> | 
 |  |  |                                     <span class="slds-truncate" title="{!item.Person_In_Charge2__r.Name}">{!item.Person_In_Charge2__r.Name}</span> | 
 |  |  |                                     <span class="slds-truncate" title="{!item.Person_In_Charge2__r.Name}"> | 
 |  |  |                                         <span class="encrypt">{!item.Person_In_Charge2__r.Name}</span> | 
 |  |  |                                         <span class="decrypt">{!item.Person_In_Charge2__r.awsdata.lastName}</span> | 
 |  |  |                                     </span> | 
 |  |  |                                 </span> | 
 |  |  |                             </td> | 
 |  |  |                             <th scope="row" tabindex="0" class="slds-cell-edit"> | 
 
 |  |  | 
 |  |  | ({ | 
 |  |  |     doinit : function(component, event, helper) { | 
 |  |  |         this.report_date_list(component, event, helper, 5); | 
 |  |  |  | 
 |  |  |         component.set('v.login',true); | 
 |  |  |         var action = component.get('c.getalldata'); | 
 |  |  |         action.setCallback(this,function(response){ | 
 |  |  | 
 |  |  |                 component.set('v.fieldsmap',res.fieldsMap); | 
 |  |  |                 component.set('v.allselectlist',res.allselectlist); | 
 |  |  |                 component.set('v.doclist',res.doclist); | 
 |  |  |                 component.find('select_agency_person').set('v.options', this.conv_selected(res.allselectlist.AgencyPerson__c)); | 
 |  |  |                 // 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); | 
 |  |  |                 // 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)); | 
 |  |  |                 component.find('select_result').set('v.options', this.conv_selected(res.allselectlist.Result__c)); | 
 |  |  | 
 |  |  |                 component.set('v.selected_agency_person', res.allselectlist.AgencyPerson__c[0].label); | 
 |  |  |                 component.set('v.dialog_type', '新建'); | 
 |  |  |                 component.set('v.awsurl', res.awsurl);// 20220222 PI改造 by Bright | 
 |  |  |                 component.set('v.contactawsurl', res.contactawsurl);// 20220222 PI改造 by Bright | 
 |  |  |                  | 
 |  |  |                 this.get_reports(component, event, helper, component.find('select_date').get('v.value'), component.find('select_agency_person').get('v.value')); | 
 |  |  |                  | 
 |  |  | 
 |  |  |         }); | 
 |  |  |         $A.enqueueAction(action); | 
 |  |  |     }, | 
 |  |  |      | 
 |  |  |     // PIPL update Yin Mingjie 21/02/2022 start | 
 |  |  |     search_contact : function(component, event, helper, resobj) { | 
 |  |  |         let contactData = Object.create(null); | 
 |  |  |         var dataArr = new Array(); | 
 |  |  |         for (let i = 0; i < resobj.length; i++) { | 
 |  |  |             if (resobj[i].awsid != null && resobj[i].awsid != ''){ | 
 |  |  |                 contactData[resobj[i].awsid] = resobj[i]; | 
 |  |  |                 dataArr.push(resobj[i].awsid); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         let obj= Object.create(null); | 
 |  |  |         obj['dataIds'] = dataArr; | 
 |  |  |         var payload = JSON.stringify(obj); | 
 |  |  |         this.search_contact_url(component, 'Contact', (result)=>{ | 
 |  |  |             var token = result.token; | 
 |  |  |             var searchUrl = result.searchUrl; | 
 |  |  |             this.search_core(token,searchUrl,payload,(result)=>{ | 
 |  |  |                 if(result.status == '0'){ | 
 |  |  |                     this.to_contact_list(result,contactData,component); | 
 |  |  |                 }else{ | 
 |  |  |                     this.error('AWS search status : ' + result.status); | 
 |  |  |                     component.set('v.login',false); | 
 |  |  |                 } | 
 |  |  |             },component); | 
 |  |  |              | 
 |  |  |         }); | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     to_contact_list : function(result,retMap,component) { | 
 |  |  |         var resls = result.object; | 
 |  |  |         var res = []; | 
 |  |  |         var space = {}; | 
 |  |  |         space['label'] = ''; | 
 |  |  |         space['selected'] = true; | 
 |  |  |         space['value'] = ''; | 
 |  |  |         res.push(space); | 
 |  |  |  | 
 |  |  |         for (var i = 0; i < resls.length; i++) { | 
 |  |  |             var t = {}; | 
 |  |  |             t['label'] = resls[i].lastName; | 
 |  |  |             t['selected'] = false; | 
 |  |  |             t['Doctor_Division1__c'] = resls[i].doctorDivision1; | 
 |  |  |             t['value'] = retMap[resls[i].dataId].value; | 
 |  |  |             res.push(t); | 
 |  |  |         } | 
 |  |  |         component.find('select_agency_person').set('v.options',res); | 
 |  |  |         component.set('v.allselectlistAgencyPerson',res); | 
 |  |  |         component.set('v.login',false); | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     search_contact_url : function(component, sobject, callback) { | 
 |  |  |         var action = component.get('c.getAwsurl'); | 
 |  |  |         action.setParams({ | 
 |  |  |             "sobj" : sobject, | 
 |  |  |         }); | 
 |  |  |         action.setCallback(this,function(response){ | 
 |  |  |             var state = response.getState(); | 
 |  |  |             if(state == 'SUCCESS'){ | 
 |  |  |                 var result = response.getReturnValue(); | 
 |  |  |                 if(callback)callback(result); | 
 |  |  |             } | 
 |  |  |             else{ | 
 |  |  |                 this.error('AWS url/token error.'); | 
 |  |  |                 component.set('v.login',false); | 
 |  |  |             } | 
 |  |  |         }); | 
 |  |  |         $A.enqueueAction(action); | 
 |  |  |     }, | 
 |  |  |     // PIPL update Yin Mingjie 21/02/2022 end | 
 |  |  |  | 
 |  |  |     select_department : function(component, event, helper) { | 
 |  |  |         var dc = component.find("select_department").get("v.value"); | 
 |  |  | 
 |  |  |                  | 
 |  |  |                 // 20220222 PI改造 by Bright--start | 
 |  |  |                 let dataIds = []; | 
 |  |  |                 let dataIds1 = []; | 
 |  |  |                 let mm = {}; | 
 |  |  |                 let b = false; | 
 |  |  |                 let b1 = false; | 
 |  |  |                 for (const rep of res.reports) { | 
 |  |  |                     if (rep.doctor2__r && rep.doctor2__r.AWS_Data_Id__c) { | 
 |  |  |                         dataIds.push(rep.doctor2__r.AWS_Data_Id__c); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     if (rep.Person_In_Charge2__r && rep.Person_In_Charge2__r.AWS_Data_Id__c) { | 
 |  |  |                         dataIds1.push(rep.Person_In_Charge2__r.AWS_Data_Id__c); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 let Foo = null; | 
 |  |  |                 Foo = function(){ | 
 |  |  |                     if(b && b1){ | 
 |  |  |                         for (const rep of res.reports) { | 
 |  |  |                             if (rep.doctor2__r && rep.doctor2__r.AWS_Data_Id__c && mm.hasOwnProperty(rep.doctor2__r.AWS_Data_Id__c)) { | 
 |  |  |                                 rep.doctor2__r.awsdata = mm[rep.doctor2__r.AWS_Data_Id__c]; | 
 |  |  |                             } | 
 |  |  |                             if (rep.Person_In_Charge2__r && rep.Person_In_Charge2__r.AWS_Data_Id__c && mm.hasOwnProperty(rep.Person_In_Charge2__r.AWS_Data_Id__c)) { | 
 |  |  |                                 rep.Person_In_Charge2__r.awsdata = mm[rep.Person_In_Charge2__r.AWS_Data_Id__c]; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         $A.getCallback(()=>component.set('v.reports', res.reports))(); | 
 |  |  |                     }else{ | 
 |  |  |                         console.log('b='+b + ',b1='+b1+',continue'); | 
 |  |  |                         setTimeout(Foo,100); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                  | 
 |  |  |                 if(dataIds.length > 0){ | 
 |  |  |                     let awsurl = component.get('v.awsurl'); | 
 |  |  |                     helper.search_agency_contact_core(awsurl.token,awsurl.searchUrl,JSON.stringify({ | 
 |  |  |                     helper.search_core(awsurl.token,awsurl.searchUrl,JSON.stringify({ | 
 |  |  |                         "dataIds":dataIds | 
 |  |  |                     }),(result)=>{ | 
 |  |  |                         if(result.status == '0'){ | 
 |  |  |                             let mm = {}; | 
 |  |  |                              | 
 |  |  |                             for (const m of result.object) { | 
 |  |  |                                 mm[m.dataId] = m; | 
 |  |  |                             } | 
 |  |  |                             for (const rep of res.reports) { | 
 |  |  |                                 if (rep.doctor2__r && rep.doctor2__r.AWS_Data_Id__c && mm.hasOwnProperty(rep.doctor2__r.AWS_Data_Id__c)) { | 
 |  |  |                                     rep.doctor2__r.awsdata = mm[rep.doctor2__r.AWS_Data_Id__c]; | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                             component.set('v.reports', res.reports); | 
 |  |  |                             b = true; | 
 |  |  |                             Foo(); | 
 |  |  |                         }else{ | 
 |  |  |                             this.error('AWS search status : ' + result.status); | 
 |  |  |                         } | 
 |  |  |                     },component); | 
 |  |  |                 }else{ | 
 |  |  |                     b = true; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                  | 
 |  |  |                  | 
 |  |  |                 if(dataIds1.length > 0){ | 
 |  |  |                     let contactawsurl = component.get('v.contactawsurl'); | 
 |  |  |                     helper.search_core(contactawsurl.token,contactawsurl.searchUrl,JSON.stringify({ | 
 |  |  |                         "dataIds":dataIds1 | 
 |  |  |                     }),(result)=>{ | 
 |  |  |                         if(result.status == '0'){ | 
 |  |  |                              | 
 |  |  |                             for (const m of result.object) { | 
 |  |  |                                 mm[m.dataId] = m; | 
 |  |  |                             } | 
 |  |  |                             b1 = true; | 
 |  |  |                             Foo(); | 
 |  |  |                         }else{ | 
 |  |  |                             this.error('AWS search status : ' + result.status); | 
 |  |  |                         } | 
 |  |  |                     },component); | 
 |  |  |                 }else{ | 
 |  |  |                     b1 = true; | 
 |  |  |                 } | 
 |  |  |                 // 20220222 PI改造 by Bright--end | 
 |  |  |  | 
 |  |  | 
 |  |  |     }, | 
 |  |  |      | 
 |  |  |     get_agency_person_name : function(component, agency_person_value) { | 
 |  |  |         var allselectlist = component.get('v.allselectlist.AgencyPerson__c'); | 
 |  |  |         // PIPL update Yin Mingjie 21/02/2022 start | 
 |  |  |         // var allselectlist = component.get('v.allselectlist.AgencyPerson__c'); | 
 |  |  |         var allselectlist = component.get('v.allselectlistAgencyPerson'); | 
 |  |  |         // PIPL update Yin Mingjie 21/02/2022 end | 
 |  |  |         var new_label = ''; | 
 |  |  |         for (var i = 0; i < allselectlist.length; i++) { | 
 |  |  |             if (agency_person_value == allselectlist[i].value) { | 
 |  |  | 
 |  |  |         var name = component.get('v.selected_agency_person'); | 
 |  |  |         var ret = this.create_report_header(component, name, select_agency, select_date); | 
 |  |  |         // PIPL update Yin Mingjie 21/02/2022 start | 
 |  |  |         this.set_aws_url(component) | 
 |  |  |         this.set_aws_url(component,'Agency_Contact__c') | 
 |  |  |         // PIPL update Yin Mingjie 21/02/2022 end | 
 |  |  |     }, | 
 |  |  |      | 
 |  |  | 
 |  |  |         } | 
 |  |  |     }, | 
 |  |  |     // PIPL update Yin Mingjie 21/02/2022 start | 
 |  |  |     set_aws_url : function(component) { | 
 |  |  |     set_aws_url : function(component,sobject) { | 
 |  |  |         var action = component.get('c.getAwsurl'); | 
 |  |  |         action.setParams({ | 
 |  |  |             "sobj" : "Agency_Contact__c", | 
 |  |  |             "sobj" : sobject, | 
 |  |  |         }); | 
 |  |  |         action.setCallback(this,function(response){ | 
 |  |  |             var state = response.getState(); | 
 |  |  | 
 |  |  |                 var awsmap = this.conv_selected(response.getReturnValue()); | 
 |  |  |                 component.set('v.AWStoken',awsmap.token); | 
 |  |  |                 component.set('v.AWSinsert',awsmap.newUrl); | 
 |  |  |                 component.set('v.AWSsearch',awsmap.searchUrl); | 
 |  |  |                 component.set('v.AWStransactionURL',awsmap.transactionURL); | 
 |  |  |             } | 
 |  |  |             else{ | 
 |  |  | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     search_agency_contact : function(token,searchUrl,payload,retMap,component) { | 
 |  |  |         this.search_agency_contact_core(token,searchUrl,payload,(result)=>{ | 
 |  |  |         this.search_core(token,searchUrl,payload,(result)=>{ | 
 |  |  |             if(result.status == '0'){ | 
 |  |  |                 this.to_doctor_list(result,retMap,component); | 
 |  |  |             }else{ | 
 |  |  | 
 |  |  |         //     component.set('v.login',false); | 
 |  |  |         // }); | 
 |  |  |     }, | 
 |  |  |     search_agency_contact_core : function(token,searchUrl,payload,callback,component) { | 
 |  |  |     search_core : function(token,searchUrl,payload,callback,component) { | 
 |  |  |         fetch(searchUrl, { | 
 |  |  |             method: 'POST', | 
 |  |  |             body: payload, | 
 
 |  |  | 
 |  |  |         List<Contact> conList = new List<Contact>(); | 
 |  |  |         system.debug('Account Id from Front-end:'+accountId); | 
 |  |  |         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!='']); | 
 |  |  |             conList = new List<Contact>([select Id,AWS_Data_Id__c from Contact where AccountId=:accountId and AWS_Data_Id__c!='' limit 500]); | 
 |  |  |         }         | 
 |  |  |         //2. Prepare the Contact Info | 
 |  |  |         Map<String,Contact> awsIdToContactMap = new Map<String,Contact>(); | 
 |  |  | 
 |  |  |  | 
 |  |  |         system.debug('=====searchStr:' + searchStr); | 
 |  |  |  | 
 |  |  |         searchStr += 'limit 500'; | 
 |  |  |  | 
 |  |  |         List<Contact> searchResult = Database.query(searchStr); | 
 |  |  |  | 
 |  |  |         lineInfoList = new List<LineInfo>(); | 
 
 |  |  | 
 |  |  |  | 
 |  |  |     public static List<contact> selectAgencyPerson() { | 
 |  |  |         String login_user_id = UserInfo.getUserId(); | 
 |  |  |         return [select id, Name, Agency_User__c from contact where  Agency_User__c = true and  Isactive__c = '有效' and AccountId in  | 
 |  |  |         // PIPL update Yin Mingjie 21/02/2022 start | 
 |  |  |         // return [select id, Name, Agency_User__c from contact where  Agency_User__c = true and  Isactive__c = '有效' and AccountId in  | 
 |  |  |         // (select AccountId from User where id=:login_user_id)]; | 
 |  |  |         return [select id, Name, Agency_User__c, AWS_Data_Id__c from contact where  Agency_User__c = true and  Isactive__c = '有效' and AccountId in  | 
 |  |  |         (select AccountId from User where id=:login_user_id)]; | 
 |  |  |         // PIPL update Yin Mingjie 21/02/2022 end | 
 |  |  |     } | 
 |  |  |     public static List<contact> selectAgencyPerson01() { | 
 |  |  |         String login_user_id = UserInfo.getUserId(); | 
 |  |  | 
 |  |  |             List<Contact> person_list = selectAgencyPerson(); | 
 |  |  |             return [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, WorkMark__c,warlocksNumber__c,Department_Cateogy__c,ProductClassification__c,WarlockClassification__c,ProductCcategory__c, productCategories__c,DealerPersonnel__c,WorkRecord__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, | 
 |  |  |                             doctor2__r.AWS_Data_Id__c,// 20220222 PI改造 by Bright | 
 |  |  |                             doctor2__r.AWS_Data_Id__c,Person_In_Charge2__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, | 
 |  |  |                             UseProduct1__c,UseProduct2__c,UseProduct3__c,UseProduct1__r.Name,UseProduct2__r.Name,UseProduct3__r.Name     | 
 |  |  |                             From Agency_Report__c | 
 |  |  | 
 |  |  |         } else { | 
 |  |  |             return [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, WorkMark__c,warlocksNumber__c,Department_Cateogy__c,DealerPersonnel__c,ProductClassification__c,WarlockClassification__c,ProductCcategory__c,productCategories__c,WorkRecord__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, | 
 |  |  |                             doctor2__r.AWS_Data_Id__c,// 20220222 PI改造 by Bright | 
 |  |  |                             doctor2__r.AWS_Data_Id__c,Person_In_Charge2__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, | 
 |  |  |                             UseProduct1__c,UseProduct2__c,UseProduct3__c,UseProduct1__r.Name,UseProduct2__r.Name,UseProduct3__r.Name    | 
 |  |  |                             From Agency_Report__c | 
 
 |  |  | 
 |  |  |             } | 
 |  |  |             rowData = NFMUtil.QLMmakeRowData(NFM501responseBody, rowData); | 
 |  |  |             rowData.AWS_Transaction_Id__c = (String)results.get('txId');// add for pi susanhu 20220310 | 
 |  |  |             update rowData; | 
 |  |  |             system.debug('rowData---'+rowData); | 
 |  |  |             System.debug('======2221234======'); | 
 |  |  |  | 
 
 |  |  | 
 |  |  |     //     投标截止时间 | 
 |  |  |     // 2021/01/04 18:00 | 
 |  |  |     //add by sushanhu for pi 20220310 start | 
 |  |  |     public static String txId; | 
 |  |  |     public  String txId; | 
 |  |  |      | 
 |  |  |     //add by sushanhu for pi 20220310 end | 
 |  |  |     public String rowData_id; | 
 |  |  |     public NFM501FutureController(String rowData_id) { | 
 |  |  |         this.rowData_id = rowData_id; | 
 |  |  |     } | 
 |  |  |      //add by sushanhu for pi 20220310 start | 
 |  |  |     //  public NFM501FutureController(String rowData_id,String txId) { | 
 |  |  |     //      this.rowData_id = rowData_id; | 
 |  |  |     //     this.txId = txId; | 
 |  |  |     //  } | 
 |  |  |      //add by sushanhu for pi 20220310 end | 
 |  |  |     public static Integer batch_retry_max_cnt = Integer.valueOf(System.Label.batch_retry_max_cnt); | 
 |  |  |     public void execute(QueueableContext context /*, String iflog_Id*/ ) { | 
 |  |  |         //需加一数字变量(如果获取到 html附件,其他附件,在日志中显示数量) | 
 |  |  | 
 |  |  |             from BatchIF_Log__c where RowDataFlg__c = true and Id = : rowData_id | 
 |  |  |         ]; | 
 |  |  |         //存放报错信息 | 
 |  |  |         //add by sushanhu for pipl 20220311 start | 
 |  |  |         system.debug('txId from log'+rowData.AWS_Transaction_Id__c); | 
 |  |  |         if (!String.isEmpty(rowData.AWS_Transaction_Id__c)) { | 
 |  |  |         txId =rowData.AWS_Transaction_Id__c; //add by sushanhu for pipl 20220310 | 
 |  |  |         }else { | 
 |  |  |             system.debug('txId from NF501'+txId); | 
 |  |  |         } | 
 |  |  |          //add by sushanhu for pipl 20220311 end | 
 |  |  |         system.debug('nfm501future awsid'+txId); | 
 |  |  |         BatchIF_Log__c iflog501Future = new BatchIF_Log__c(); | 
 |  |  |         iflog501Future.Type__c = 'NFM501'; | 
 |  |  | 
 |  |  |         iflog501Future.RowDataFlg__c = false; | 
 |  |  |         iflog501Future.AWS_Transaction_Id__c=rowData.AWS_Transaction_Id__c; | 
 |  |  |         insert iflog501Future; | 
 |  |  |         NFM501FutureController.main(rowData.Id, iflog501Future.Id, false); | 
 |  |  |         NFM501FutureController.main(rowData.Id, iflog501Future.Id, false,txId); | 
 |  |  |     } | 
 |  |  |      | 
 |  |  |     @future(callout = true) | 
 |  |  |     //重发(把从接口获取到的数据存入日志中,再把日志中存入的数据重新JOSN解析一遍) | 
 |  |  |     public static void main(String rowData_id, String iflog_id, boolean Manual_execution501future) { | 
 |  |  |     public static void main(String rowData_id, String iflog_id, boolean Manual_execution501future, | 
 |  |  |                                 String txId //增加事务id forpipl 20220310  | 
 |  |  |             ) { | 
 |  |  |         BatchIF_Log__c rowData = [Select Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, | 
 |  |  |             Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, | 
 |  |  |             Log12__c, MessageGroupNumber__c, retry_cnt__c, NFM501Future_Count__c, | 
 |  |  | 
 |  |  |             SumUnit__c, AreaCity__c, AreaCountry__c, AgentUnit1__c, | 
 |  |  |             AgentUnit2__c, AgentUnit3__c, AgentUnit4__c, AgentUnit5__c, | 
 |  |  |             ZhaoRelationName__c, ZhongRelationName__c, | 
 |  |  |             publicDate__c, noticeDate__c, ResultDate__c | 
 |  |  |             publicDate__c, noticeDate__c, ResultDate__c, | 
 |  |  |             AWS_Data_Id__c //ADD FOR pi SUSHANHU 20220311 | 
 |  |  |             FROM Tender_information__c Where ProjectId__c in : projectIdList | 
 |  |  |         ]; | 
 |  |  |         Map < String, Tender_information__c > TenMap = new Map < String, Tender_information__c > (); | 
 
 |  |  | 
 |  |  |         //补充询问单部分 end | 
 |  |  |          | 
 |  |  |         //补充学会部分 start | 
 |  |  |         List<CampaignMember__c> campaignMemberList = new List<CampaignMember__c>(); | 
 |  |  |         //List<CampaignMember__c> campaignMemberList = new List<CampaignMember__c>(); | 
 |  |  |         List<CampaignMember__c> capMemList = [select Id,Contact_ID__c,Campaign__c,Campaign__r.Num__c,ViewContactId__c from CampaignMember__c where Contact_ID__c = :ContactId]; | 
 |  |  |         if(capMemList.size() > 0){ | 
 |  |  |             system.debug('capMemList=================>'+capMemList); | 
 
 |  |  | 
 |  |  |             //NFM007_ENDPOINT = 'http://wdp.olympus.com.cn:8089/RESTAdapter/NFM007'; | 
 |  |  |             NFM007_ENDPOINT = 'https://wdp.olympus.com.cn:44301/RESTAdapter/NFM007'; | 
 |  |  |             NFM008_ENDPOINT = 'https://owdc-test.olympus.co.jp/XISOAPAdapter/MessageServlet?senderParty=&senderService=OCM_SFDC_T&receiverParty=&receiverService=&interface=NFM008_Sync_BC2GPI&interfaceNamespace=http%3A%2F%2Folympus.co.jp%2Fgpi%2FNFM008'; | 
 |  |  |             NFM103_ENDPOINT = 'http://wdp.olympus.com.cn:8089/RESTAdapter/NFM103'; | 
 |  |  |             // NFM103_ENDPOINT = 'http://wdp.olympus.com.cn:8089/RESTAdapter/NFM103'; | 
 |  |  |             NFM103_ENDPOINT = 'https://sfpi-mebg-test.olympuschina.com/api/nfm/103';//aws 103接口 | 
 |  |  |             // NFM106_ENDPOINT = 'https://owdc-test.olympus.co.jp/XISOAPAdapter/MessageServlet?senderParty=&senderService=OCM_SFDC_T&receiverParty=&receiverService=&interface=NFM106_Sync_BC2GPI&interfaceNamespace=http%3A%2F%2Folympus.co.jp%2Fgpi%2FNFM106'; | 
 |  |  |             NFM106_ENDPOINT = 'http://wdp.olympus.com.cn:8089/RESTAdapter/NFM106'; | 
 |  |  |             //NFM106_ENDPOINT = 'https://sfdc-ocm-test.olympus.co.jp/XISOAPAdapter/MessageServlet?senderParty=&senderService=OCM_SFDC_T&receiverParty=&receiverService=&interface=NFM106_Sync_BC2GPI&interfaceNamespace=http%3A%2F%2Folympus.co.jp%2Fgpi%2FNFM106'; | 
 |  |  | 
 |  |  |             NFM401_ENDPOINT = 'http://ec2-161-189-3-104.cn-northwest-1.compute.amazonaws.com.cn:8088/dojtest/dojInfo/recevie'; | 
 |  |  |             NFM402_ENDPOINT = 'http://ec2-161-189-3-104.cn-northwest-1.compute.amazonaws.com.cn:8088/dojtest/dojInfo/getDojInfoByRefNo'; | 
 |  |  |  | 
 |  |  |             NFM501_ENDPOINT = 'http://cusdata.qianlima.com/v1/info/page/'; | 
 |  |  |             NFM501_ENDPOINT = 'https://sfpi-mebg-test.olympuschina.com/api/nfm/501'; | 
 |  |  |             NFM502_ENDPOINT = 'http://cusdata.qianlima.com/v1/info/detailHtml?url='; | 
 |  |  |             NFM504_ENDPOINT = 'http://cusdata.qianlima.com/v1/customer/albs/feedback'; | 
 |  |  |             CBPR_Auth_Sap = 'Basic U0ZEQ19XU1VTRVI6cG9xMTIzNDU='; | 
 |  |  | 
 |  |  |             NFM401_ENDPOINT = 'http://ec2-161-189-3-104.cn-northwest-1.compute.amazonaws.com.cn:8082/doj/dojInfo/recevie'; | 
 |  |  |             NFM402_ENDPOINT = 'http://ec2-161-189-3-104.cn-northwest-1.compute.amazonaws.com.cn:8082/doj/dojInfo/getDojInfoByRefNo'; | 
 |  |  |  | 
 |  |  |             NFM501_ENDPOINT = 'http://cusdata.qianlima.com/v1/info/page/'; | 
 |  |  |             NFM501_ENDPOINT ='https://sfpi-mebg-test.olympuschina.com/api/nfm/501'; | 
 |  |  |             NFM502_ENDPOINT = 'http://cusdata.qianlima.com/v1/info/detailHtml?url='; | 
 |  |  |             NFM504_ENDPOINT = 'http://cusdata.qianlima.com/v1/customer/albs/feedback'; | 
 |  |  |             CBPR_Auth_Sap = 'Basic U0ZEQ19XU1VTRVI6cG9wMTIzNDU='; | 
 |  |  | 
 |  |  |         webservice String timestamp; | 
 |  |  |         webservice String appKey; | 
 |  |  |     } | 
 |  |  |     // add to aws response sushanhu 20220224 start | 
 |  |  |     global class NFMResponse{ | 
 |  |  |         public Boolean SFStatus; | 
 |  |  |         public String SFMessage; | 
 |  |  |         public StaticResponse staticResponse; | 
 |  |  |     } | 
 |  |  |     global class StaticResponse{ | 
 |  |  |         public string status; | 
 |  |  |         public String Message; | 
 |  |  |         public StaticResponse(){ | 
 |  |  |             status='Success'; | 
 |  |  |             Message=''; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |     public static NFMResponse getNFMResponse(){ | 
 |  |  |         NFMResponse  result=new NFMResponse(); | 
 |  |  |         result.staticResponse =new StaticResponse(); | 
 |  |  |         return result; | 
 |  |  |  | 
 |  |  |     } | 
 |  |  | // add to aws response sushanhu 20220224 end | 
 |  |  |     /** | 
 |  |  |      * @return yyyyMMdd の日付文字列 | 
 |  |  |      */ | 
 |  |  | 
 |  |  |         system.debug('ress:' + ress); | 
 |  |  |         return new response(ress, resb); | 
 |  |  |     } | 
 |  |  |     // send to aws to sap sushuanhu 20220222 | 
 |  |  |     public static response sendToPiAWS(String rowDataStr, String endpoint,String awsToken) { | 
 |  |  |  | 
 |  |  |         Http http = new Http(); | 
 |  |  |         HttpRequest req = new HttpRequest(); | 
 |  |  |         HTTPResponse res; | 
 |  |  |         String resb;        | 
 |  |  |         req.setTimeout(120000); | 
 |  |  |         req.setEndpoint(endpoint); | 
 |  |  |         req.setMethod('POST'); | 
 |  |  |         req.setHeader('Content-Type', 'application/json'); | 
 |  |  |         req.setHeader('pi-token', awsToken); | 
 |  |  |         req.setBody(rowDataStr); | 
 |  |  |         res = http.send(req); | 
 |  |  |         string ress =String.valueof(res.getStatusCode()); | 
 |  |  |         resb = res.getBody(); | 
 |  |  |         system.debug('ress:' + ress); | 
 |  |  |         return new response(ress, resb); | 
 |  |  |     } | 
 |  |  |     // 获取aws token sushanhu 20220222 | 
 |  |  |     public static response getAwsToken(){ | 
 |  |  |         String responseBody = AWSServiceTool.getAWSToken(); | 
 |  |  |         return new response('success', responseBody); | 
 |  |  |     } | 
 |  |  |     public class response { | 
 |  |  |         public string status; | 
 |  |  |         public string responseBody; | 
 |  |  | 
 |  |  |         //正常执行 | 
 |  |  |         return new response(ress, response.getBody()); | 
 |  |  |     } | 
 |  |  |     // NEW QLM AWS 501  接口 sushanhu 20220223 | 
 |  |  |     public static response getAWSQLMData(String endpoint, String token) { | 
 |  |  |         //2、获取招标信息:记得使用1中获取的token | 
 |  |  |         Http http = new Http(); | 
 |  |  |         HttpRequest req = new HttpRequest(); | 
 |  |  |         req.setHeader('Content-Type', 'application/json'); | 
 |  |  |         req.setHeader('pi-token',  token); | 
 |  |  |         req.setTimeout(120000); | 
 |  |  |         req.setEndpoint(endpoint); | 
 |  |  |         req.setMethod('GET'); | 
 |  |  |         HTTPResponse response = http.send(req); | 
 |  |  |         String statusCode = response.getStatus(); | 
 |  |  |         System.debug('response:' + response); | 
 |  |  |         //http:状态和code | 
 |  |  |         //如果状态不通过 , 则将状态及空的的数据 , 返回 | 
 |  |  |         if (String.isNotBlank(statusCode)) { | 
 |  |  |             return new response(statusCode, null); | 
 |  |  |         } | 
 |  |  |         System.debug('=====2======' + response.getBody()); | 
 |  |  |         //正常执行 | 
 |  |  |         return new response(statusCode, response.getBody()); | 
 |  |  |     } | 
 |  |  |     // NEW QLM AWS 502 503接口 sushanhu 20220223 | 
 |  |  |     public static response getAWSQLMData(String endpoint,String jsonStr,  String token) { | 
 |  |  |         //2、获取招标信息:记得使用1中获取的token | 
 |  |  |         Http http = new Http(); | 
 |  |  |         HttpRequest req = new HttpRequest(); | 
 |  |  |         req.setHeader('Content-Type', 'application/json'); | 
 |  |  |         req.setHeader('pi-token',  token); | 
 |  |  |         req.setTimeout(120000); | 
 |  |  |         req.setEndpoint(endpoint); | 
 |  |  |         req.setMethod('POST'); | 
 |  |  |         req.setBody(jsonStr); | 
 |  |  |         HTTPResponse response = http.send(req); | 
 |  |  |         String statusCode = response.getStatus(); | 
 |  |  |         System.debug('response:' + response); | 
 |  |  |         //http:状态和code | 
 |  |  |         //如果状态不通过 , 则将状态及空的的数据 , 返回 | 
 |  |  |         if (String.isNotBlank(statusCode)) { | 
 |  |  |             return new response(statusCode, null); | 
 |  |  |         } | 
 |  |  |         System.debug('=====2======' + response.getBody()); | 
 |  |  |         //正常执行 | 
 |  |  |         return new response(statusCode, response.getBody()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     //接口3,获取其他附件 | 
 |  |  |     public static response503 getFileData(String token503, String endpoint) { | 
 |  |  | 
 |  |  |     public static String sendTenInfo(String token504, String jsonStr, String endpoint) { | 
 |  |  |         Http http = new Http(); | 
 |  |  |         HttpRequest req = new HttpRequest(); | 
 |  |  |         req.setEndpoint('http://cusdata.qianlima.com/test/v1/customer/albs/feedback'); | 
 |  |  |         req.setEndpoint(endpoint); | 
 |  |  |         req.setHeader('open-authorization', 'Bearer' + token504); | 
 |  |  |         req.setHeader('Content-Type', 'application/x-www-form-urlencoded'); | 
 |  |  |         req.setMethod('POST'); | 
 
 |  |  | 
 |  |  |         //获取contact 加密ID | 
 |  |  |         // contactsInfo = LookUpOverrideFieldsMapJson; | 
 |  |  |         //contact信息(搜索查询query url用) | 
 |  |  |         if(obj.Id != null){ | 
 |  |  |         ASEActivity__c aseActivity = [Select Id, ReporterASE__c From ASEActivity__c Where Id = : obj.Id]; | 
 |  |  |         if(aseActivity.ReporterASE__c != null){ | 
 |  |  |             Contact contact = [Select Id, AWS_Data_Id__c From Contact Where Id = : aseActivity.ReporterASE__c]; | 
 |  |  | 
 |  |  |             contactAWS = contact.AWS_Data_Id__c; | 
 |  |  |             System.debug('contactAWS : ' + contactAWS ); | 
 |  |  |         } | 
 |  |  |         } | 
 |  |  |         staticResourceContact = JSON.serialize(PIHelper.getPIIntegrationInfo('Contact')); | 
 |  |  |     } | 
 |  |  |  | 
 
 |  |  | 
 |  |  |         }     | 
 |  |  |     } | 
 |  |  |     // confirm file transaction | 
 |  |  |     @future(callout =true) | 
 |  |  |     // @future(callout =true) | 
 |  |  |     public static void confirmFileTrans(String module,Integer isSuccess, String   sfRecordId ,String transId ,String token,String transUrl){ | 
 |  |  |         Boolean result =false; | 
 |  |  |         Transaction_Log__c traLog = new Transaction_Log__c(); | 
 |  |  |         traLog.Module__c = 'ConfirmFileTransaction '+module; | 
 |  |  |         traLog.Interface_URL__c = transUrl; | 
 |  |  |         traLog.TransId__c = transId; | 
 |  |  |         traLog.SFRecordId__c=sfRecordId; | 
 |  |  |         // traLog.SFRecordId__c=sfRecordId; | 
 |  |  |         Integer MaxLogColumnLength = 131072; | 
 |  |  |         try { | 
 |  |  |             Http http = new Http(); | 
 |  |  |             HttpRequest request = new HttpRequest(); | 
 |  |  |             request.setEndpoint(transUrl); | 
 |  |  |             request.setMethod('POST'); | 
 |  |  |             request.setHeader('pi-token',token); | 
 |  |  |             request.setHeader('Content-Type', 'application/json'); | 
 |  |  |             TransRequestBody requestBody =new TransRequestBody(); | 
 |  |  |             requestBody.isSuccess=isSuccess; | 
 |  |  |             requestBody.sfRecordId=sfRecordId; | 
 |  |  | 
 |  |  |             result = (Boolean)results.get('success'); | 
 |  |  |             System.debug('result = ' + result); | 
 |  |  |             traLog.Status__c = 'success'; | 
 |  |  |             traLog.Response__c=response.getBody(); | 
 |  |  |             String res=response.getBody(); | 
 |  |  |             traLog.Response__c=res.substring(0, (res.length() > MaxLogColumnLength ? MaxLogColumnLength : res.length())); | 
 |  |  |             | 
 |  |  |         } catch (Exception e) {   | 
 |  |  |             traLog.Status__c = 'fail'; | 
 |  |  |             traLog.Response__c = e.getMessage();     | 
 |  |  | 
 |  |  |          traLog.Module__c = 'Confirm Transaction '+module; | 
 |  |  |          traLog.Interface_URL__c = transUrl; | 
 |  |  |          traLog.TransId__c = transId; | 
 |  |  |          Integer MaxLogColumnLength = 131072; | 
 |  |  |          if (!String.isEmpty(sfRecordId)) { | 
 |  |  |             traLog.SFRecordId__c=sfRecordId; | 
 |  |  |          }else { | 
 |  |  | 
 |  |  |              HttpRequest request = new HttpRequest(); | 
 |  |  |              request.setEndpoint(transUrl); | 
 |  |  |              request.setMethod('POST'); | 
 |  |  |              request.setHeader('pi-token',token); | 
 |  |  |              request.setHeader('Content-Type', 'application/json'); | 
 |  |  |              TransactionRequestBody requestBody =new TransactionRequestBody(); | 
 |  |  |              requestBody.isSuccess=isSuccess; | 
 |  |  |              requestBody.sfRecordId=sfRecordId; | 
 |  |  | 
 |  |  |              result = (Boolean)results.get('success'); | 
 |  |  |              System.debug('result = ' + result); | 
 |  |  |              traLog.Status__c = 'success'; | 
 |  |  |              traLog.Response__c=response.getBody(); | 
 |  |  |              String res=response.getBody(); | 
 |  |  |              traLog.Response__c=res.substring(0, (res.length() > MaxLogColumnLength ? MaxLogColumnLength : res.length())); | 
 |  |  |          } catch (Exception e) {   | 
 |  |  |              traLog.Status__c = 'fail'; | 
 |  |  |              traLog.Response__c = e.getMessage();     | 
 
 |  |  | 
 |  |  | /** | 
 |  |  |  * @description       :  | 
 |  |  |  * @author            : ChangeMeIn@UserSettingsUnder.SFDoc | 
 |  |  |  * @group             :  | 
 |  |  |  * @last modified on  : 03-11-2022 | 
 |  |  |  * @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc | 
 |  |  | **/ | 
 |  |  | global without sharing class RentalApplyController { | 
 |  |  |     public List <LayoutDescriberHelper.LayoutSection > layoutSections{set;get;} | 
 |  |  |     public String awsToken{set;get;} | 
 |  |  | 
 |  |  |             }else { | 
 |  |  |                 rentalApplyInfo.put(fieldAPI,fieldValue); | 
 |  |  |             } | 
 |  |  |             // system.debug('field API'+fieldAPI); | 
 |  |  |             // String fieldValue = String.valueOf(fieldAPIToTypeMap.get(fieldAPI)); | 
 |  |  |             // if(String.isBlank(fieldValue) || String.isEmpty(fieldValue)){ | 
 |  |  |             //     continue; | 
 |  |  |             // } | 
 |  |  |             // Schema.DescribeFieldResult fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe();   | 
 |  |  |             // Schema.DisplayType fieldDatas = fielddataType.getType(); | 
 |  |  |             // system.debug('fieldValue='+fieldValue); | 
 |  |  |             // if(String.valueOf(fielddatas)=='DATE'){ | 
 |  |  |             //     rentalApplyInfo.put(fieldAPI, Date.valueOf(String.valueOf(fieldValueMap.get(fieldAPI)).replace('/', '-'))); | 
 |  |  |             // }else if(String.valueOf(fielddatas)=='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.valueOf(fielddatas)=='Number'||String.valueOf(fielddatas)=='DOUBLE'){ | 
 |  |  |             //     system.debug('decimal error:'+ String.valueOf(fieldValueMap.get(fieldAPI))); | 
 |  |  |             //     rentalApplyInfo.put(fieldAPI, decimal.valueOf(String.valueOf(fieldValueMap.get(fieldAPI)))); | 
 |  |  |             // } else if(String.valueof(fielddatas)=='BOOLEAN'){ | 
 |  |  |             //     rentalApplyInfo.put(fieldAPI, fieldValueMap.get(fieldAPI)); | 
 |  |  |             // }else { | 
 |  |  |             //     rentalApplyInfo.put(fieldAPI, String.valueOf(fieldValueMap.get(fieldAPI))); | 
 |  |  |             // }                   | 
 |  |  |         } | 
 |  |  |          | 
 |  |  |         //2. Save Record Process | 
 
 |  |  | 
 |  |  |     @AuraEnabled public List<Map<String,String>> doctorList{get;set;} | 
 |  |  |     // PIPL update Yin Mingjie 21/02/2022 start | 
 |  |  |     @AuraEnabled public Map<String,String> awsurl{get;set;} | 
 |  |  |     @AuraEnabled public Map<String,String> contactawsurl{get;set;} | 
 |  |  |     // PIPL update Yin Mingjie 21/02/2022 end | 
 |  |  |     public WeeklyReportCmp() { | 
 |  |  |     } | 
 |  |  | 
 |  |  |         Map<String,String> space = new Map<String,String>(); | 
 |  |  |         space.put('label', ''); | 
 |  |  |         space.put('value', ''); | 
 |  |  |         // PIPL update Yin Mingjie 21/02/2022 start | 
 |  |  |         space.put('awsid', ''); | 
 |  |  |         // PIPL update Yin Mingjie 21/02/2022 end | 
 |  |  |         space.put('selected', 'true'); | 
 |  |  |         tmp.add(space); | 
 |  |  |          | 
 |  |  | 
 |  |  |             Map<String,String> om = new Map<String,String>(); | 
 |  |  |             om.put('label', var.Name); | 
 |  |  |             om.put('value', var.Id); | 
 |  |  |             // PIPL update Yin Mingjie 21/02/2022 start | 
 |  |  |             om.put('awsid', var.AWS_Data_Id__c); | 
 |  |  |             // PIPL update Yin Mingjie 21/02/2022 end | 
 |  |  |             om.put('selected', 'false'); | 
 |  |  |             tmp.add(om); | 
 |  |  |         } | 
 |  |  | 
 |  |  |         //System.debug('allselectlist is ' + this.allselectlist); | 
 |  |  |  | 
 |  |  |         this.awsurl = getAwsurl('Agency_Contact__c');// 20220222 PI改造 by Bright | 
 |  |  |         this.contactawsurl = getAwsurl('Contact');// 20220222 PI改造 by Bright | 
 |  |  |     } | 
 |  |  |      | 
 |  |  |      | 
 
 |  |  | 
 |  |  |     <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/> | 
 |  |  |     <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/> | 
 |  |  |     <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/> | 
 |  |  |     <style> | 
 |  |  |         .decrypt{ | 
 |  |  |             position: relative; | 
 |  |  |             text-align: left; | 
 |  |  |             display: block; | 
 |  |  |             margin-left: 5px; | 
 |  |  |             margin-top: -5px; | 
 |  |  |         } | 
 |  |  |     </style> | 
 |  |  |     <script type="text/javascript"> | 
 |  |  |  | 
 |  |  |         // 2022/02/15 张华建 改造PI start | 
 |  |  | 
 |  |  |             window.close(); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         function showPIDiv(awsDataId){ | 
 |  |  |             console.log('awsDataId Value:'+awsDataId); | 
 |  |  |             let parentNode = document.getElementById(awsDataId); | 
 |  |  |             let createDiv = document.createElement("div");   | 
 |  |  |             createDiv.id = awsDataId+"_PI";   | 
 |  |  |         function showPIDiv(dataId,awsDataId){ | 
 |  |  |             // console.log('awsDataId Value:'+awsDataId); | 
 |  |  |             // let parentNode = document.getElementById(awsDataId); | 
 |  |  |             // let createDiv = document.createElement("div");   | 
 |  |  |             // createDiv.id = awsDataId+"_PI";   | 
 |  |  |             // let piInformation = 'Name:'+contact[awsDataId].lastName +'\n' +'Phone:'+contact[awsDataId].phone | 
 |  |  |             // //let piInformation = 'Name:'+contact['943114607025717249'].lastName +'\n' +'Phone:'+contact['943114607025717249'].phone | 
 |  |  |             // createDiv.innerText = piInformation; | 
 |  |  |             // let x=window.event.x; | 
 |  |  |             // let y=window.event.y;  | 
 |  |  |             // createDiv.style.left=x;   | 
 |  |  |             // createDiv.style.top=y;   | 
 |  |  |             // createDiv.style.background="#dddddd"; | 
 |  |  |             // createDiv.style.position = "absolute"; | 
 |  |  |             // parentNode.appendChild(createDiv);   | 
 |  |  |             console.log('dataId:'+dataId+'awsDataId Value:'+awsDataId); | 
 |  |  |             let piInformation = 'Name:'+contact[awsDataId].lastName +'\n' +'Phone:'+contact[awsDataId].phone | 
 |  |  |             //let piInformation = 'Name:'+contact['943114607025717249'].lastName +'\n' +'Phone:'+contact['943114607025717249'].phone | 
 |  |  |             createDiv.innerText = piInformation; | 
 |  |  |             let x=window.event.x; | 
 |  |  |             let y=window.event.y;  | 
 |  |  |             createDiv.style.left=x;   | 
 |  |  |             createDiv.style.top=y;   | 
 |  |  |             createDiv.style.background="#dddddd"; | 
 |  |  |             createDiv.style.position = "absolute"; | 
 |  |  |             parentNode.appendChild(createDiv);   | 
 |  |  |             document.getElementById(dataId+'_'+awsDataId).innerText = piInformation; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         function hidePIDiv(awsDataId){ | 
 |  |  |             document.getElementById(awsDataId+'_PI').remove(); | 
 |  |  |         function hidePIDiv(dataId,awsDataId){ | 
 |  |  |             // document.getElementById(awsDataId+'_PI').remove(); | 
 |  |  |             document.getElementById(dataId+'_'+awsDataId).innerText = ''; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 2022年2月15日 PI改造 徐亮 start | 
 |  |  | 
 |  |  |                         </td> | 
 |  |  |                         <!-- <td><a href="#" onclick="setContact('{!lineinfo.lineNo}');" id="943114607025717249" onmouseover="showPIDiv('943114607025717249')" onmouseout="hidePIDiv('943114607025717249')">{!lineinfo.con.Name}</a></td> --> | 
 |  |  |                         <!-- 2022/02/15 张华建 解密信息 start --> | 
 |  |  |                         <td><a href="#" onclick="setContact('{!lineinfo.lineNo}','{!lineinfo.con.AWS_Data_Id__c}');" id="{!lineinfo.con.AWS_Data_Id__c}" onmouseover="showPIDiv('{!lineinfo.con.AWS_Data_Id__c}')" onmouseout="hidePIDiv('{!lineinfo.con.AWS_Data_Id__c}')">{!lineinfo.con.Name}</a></td> | 
 |  |  |                         <td> | 
 |  |  |                             <a href="#" onclick="setContact('{!lineinfo.lineNo}','{!lineinfo.con.AWS_Data_Id__c}');" id="{!lineinfo.con.AWS_Data_Id__c}" onmouseover="showPIDiv('{!lineinfo.con.id}','{!lineinfo.con.AWS_Data_Id__c}')" onmouseout="hidePIDiv('{!lineinfo.con.id}','{!lineinfo.con.AWS_Data_Id__c}')"> | 
 |  |  |                                 {!lineinfo.con.Name} | 
 |  |  |                             </a> | 
 |  |  |                             <span id="{!lineinfo.con.id}_{!lineinfo.con.AWS_Data_Id__c}" class="decrypt"></span> | 
 |  |  |                         </td> | 
 |  |  |                         <!-- 2022/02/15 张华建 解密信息 end --> | 
 |  |  |                         <td>{!lineinfo.con.AccountName__c}</td> | 
 |  |  |                         <td><input style="width:90%;" type="button" value="编辑" onclick="editContactJs('{!lineinfo.con.Id}'); return null;" /></td> | 
 
 |  |  | 
 |  |  |         alert("请先选择医院科室。"); | 
 |  |  |         return false; | 
 |  |  |     } | 
 |  |  |     var urlStr = 'apex/CM_SearchContact?line='+ line + '&acc=' + vpHiddenId; | 
 |  |  |     var w = window.open(urlStr,'CM_SearchContact','menubar=no,height=580,width=620'); | 
 |  |  |     var urlStr = 'apex/CM_SearchContactService?line='+ line + '&acc=' + vpHiddenId; | 
 |  |  |     var w = window.open(urlStr,'CM_SearchContactService','menubar=no,height=580,width=620'); | 
 |  |  |     w.focus(); | 
 |  |  | } | 
 |  |  |  | 
 
 |  |  | 
 |  |  | <!-- | 
 |  |  |   @description       :  | 
 |  |  |   @author            : ChangeMeIn@UserSettingsUnder.SFDoc | 
 |  |  |   @group             :  | 
 |  |  |   @last modified on  : 03-11-2022 | 
 |  |  |   @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc | 
 |  |  | --> | 
 |  |  | <apex:page standardController="Consum_Apply__c" extensions="NewConsumApplyController" id="page"> | 
 |  |  |     <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" /> | 
 |  |  |     <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/> | 
 |  |  | 
 |  |  |  | 
 |  |  |         //Check If Insert Or Update | 
 |  |  |         var insertOrUpdateBack = function insertOrUpdateBack(payloadJson, result, isNewMode) { | 
 |  |  |             debugger | 
 |  |  |             console.log(result); | 
 |  |  |             let r = result; | 
 |  |  |             console.log('Result from AWS' + JSON.stringify(r)); | 
 |  |  | 
 |  |  |             } else { | 
 |  |  |                 payloadJson.AWS_Data_Id__c = '{!AWSDataId}'; | 
 |  |  |             } | 
 |  |  |             debugger | 
 |  |  |             return payloadJson; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  | 
 |  |  |             return template.content.firstChild; | 
 |  |  |         } | 
 |  |  |         function queryContactName() { | 
 |  |  |             let sfId = document.getElementById(document.querySelector("[data-id='Loaner_medical_Staff__c']").id + '_lkid').value; | 
 |  |  |             let sfId = document.getElementById(document.querySelector("[data-id='Account__c']").id + '_lkid').value; | 
 |  |  |             let contactsInfo = JSON.parse('{!contactsInfo}'); | 
 |  |  |             let dataId = contactsInfo[sfId]; | 
 |  |  |             let url = staticResourcesContact.queryUrl + '?dataId=' + dataId; | 
 
 |  |  | 
 |  |  | <!-- | 
 |  |  |   @description       :  | 
 |  |  |   @author            : ChangeMeIn@UserSettingsUnder.SFDoc | 
 |  |  |   @group             :  | 
 |  |  |   @last modified on  : 03-11-2022 | 
 |  |  |   @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc | 
 |  |  | --> | 
 |  |  | <apex:page standardController="Rental_Apply__c" extensions="RentalApplyController" id="page"> | 
 |  |  |     <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/> | 
 |  |  |     <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" /> | 
 |  |  | 
 |  |  |             return template.content.firstChild; | 
 |  |  |         } | 
 |  |  |         function queryContactName() { | 
 |  |  |             let sfId = document.getElementById(document.querySelector("[data-id='Loaner_medical_Staff__c']").id + '_lkid').value; | 
 |  |  |             // let sfId = document.getElementById(document.querySelector("[data-id='Loaner_medical_Staff__c']").id + '_lkid').value; | 
 |  |  |             let sfId = document.getElementById(document.querySelector("[data-id='Account__c']").id + '_lkid').value; | 
 |  |  |             let contactsInfo = JSON.parse('{!contactsInfo}'); | 
 |  |  |             let dataId = contactsInfo[sfId]; | 
 |  |  |             let url = staticResourcesContact.queryUrl + '?dataId=' + dataId; | 
 
 |  |  | 
 |  |  |             deleteFiles.add(fd.AWS_File_Key__c); | 
 |  |  |         }  | 
 |  |  |     } | 
 |  |  |     if(!deleteFiles.isEmpty()){ | 
 |  |  |     if(!deleteFiles.isEmpty()&&(!System.isFuture()||System.isBatch())){ | 
 |  |  |         system.debug('DeleteFiles Value:'+JSON.serialize(deleteFiles)); | 
 |  |  |         AWSServiceTool.deleteFileAddress(deleteFiles); | 
 |  |  |     }   |