Li Jun
2022-04-11 21654ab05a741078fea1fdf3c4d8c2d729e8f979
FixCloneButtonIssue
4个文件已修改
487 ■■■■■ 已修改文件
force-app/main/default/classes/NewRepairController.cls 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NewRepairControllerTest.cls 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RepairBeforeInsertHandler.cls 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/FixtureRentalPDF.page 318 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NewRepairController.cls
@@ -191,131 +191,79 @@
                controller.getRecord().put('ProblemDescription__c',mso.get('00N10000008rsVuEAI'));
            }
            //如果是测试环境
            if(NFMUtil.isSandbox()){
            Boolean isTest = NFMUtil.isSandbox();
                //报修人00N1m0000054ufW
                if(mso.containsKey('00N1m0000054ufW')){
                    controller.getRecord().put('RepairApplicant__c',mso.get('00N1m0000054ufW'));
            String RepairApplicant = isTest==true?'00N1m0000054ufW':'00N10000009H1rQ';
            if(mso.containsKey(RepairApplicant)){
                controller.getRecord().put('RepairApplicant__c',mso.get(RepairApplicant));
                }
                //报修人医院00N1m0000054ufU
                if(mso.containsKey('00N1m0000054ufU')){
                    controller.getRecord().put('RepairApplicantHospital__c',mso.get('00N1m0000054ufU'));
            String RepairApplicantHospital = isTest==true?'00N1m0000054ufU':'00N10000009H1rP';
            if(mso.containsKey(RepairApplicantHospital)){
                controller.getRecord().put('RepairApplicantHospital__c',mso.get(RepairApplicantHospital));
                }
                //报修人科室00N1m0000054ufT
                if(mso.containsKey('00N1m0000054ufT')){
                    controller.getRecord().put('RepairApplicantDepartment__c',mso.get('00N1m0000054ufT'));
            String RepairApplicantDepartment = isTest==true?'00N1m0000054ufT':'00N10000009H1rO';
            if(mso.containsKey(RepairApplicantDepartment)){
                controller.getRecord().put('RepairApplicantDepartment__c',mso.get(RepairApplicantDepartment));
                }
                //报修子单CF00N1m0000054ufZ_lkid
                if(mso.containsKey('CF00N1m0000054ufZ_lkid')){
                    controller.getRecord().put('RepairSubOrder__c',mso.get('CF00N1m0000054ufZ_lkid'));
            String RepairSubOrder = isTest==true?'CF00N1m0000054ufZ_lkid':'00N10000009H1rR_lkid';
            if(mso.containsKey(RepairSubOrder)){
                controller.getRecord().put('RepairSubOrder__c',mso.get(RepairSubOrder));
                    //查询AWSDataId
                    List<RepairSubOrder__c> rso = [select AWS_Data_Id__c from RepairSubOrder__c where Id=:mso.get('CF00N1m0000054ufZ_lkid')];
                List<RepairSubOrder__c> rso = [select AWS_Data_Id__c from RepairSubOrder__c where Id=:mso.get(RepairSubOrder)];
                    if(rso.size() > 0){
                        RepairSubOrderAWSDataId = rso[0].AWS_Data_Id__c;
                    }
                }
                //报修发起日
                if(mso.containsKey('00N1m0000054ufa')){
                    String o = mso.get('00N1m0000054ufa');
            String RepairTime = isTest==true?'00N1m0000054ufa':'00N10000009H1rS';
            if(mso.containsKey(RepairTime)){
                String o = mso.get(RepairTime);
                    controller.getRecord().put('RepairTime__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //报修单受理日ReceiverTime__c
                if(mso.containsKey('00N1m0000054ufS')){
                    String o = mso.get('00N1m0000054ufS');
            String ReceiverTime = isTest==true?'00N1m0000054ufS':'00N10000009H1rN';
            if(mso.containsKey(ReceiverTime)){
                String o = mso.get(ReceiverTime);
                    controller.getRecord().put('ReceiverTime__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //计划上门日
                if(mso.containsKey('00N1m000005SRiF')){
                    String o = mso.get('00N1m000005SRiF');
            String PlannedVisitDay = isTest==true?'00N1m000005SRiF':'00N10000009H1rM';
            if(mso.containsKey(PlannedVisitDay)){
                String o = mso.get(PlannedVisitDay);
                    controller.getRecord().put('PlannedVisitDay__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //一次上门日
                if(mso.containsKey('00N1m000005SRiK')){
                    String o = mso.get('00N1m000005SRiK');
            String ActualVisitDateFirst = isTest==true?'00N1m000005SRiK':'00N10000009H1r6';
            if(mso.containsKey(ActualVisitDateFirst)){
                String o = mso.get(ActualVisitDateFirst);
                    controller.getRecord().put('ActualVisitDateFirst__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //二次上门日
                if(mso.containsKey('00N1m000005SRiP')){
                    String o = mso.get('00N1m000005SRiP');
            String ActualVisitDateSecond = isTest==true?'00N1m000005SRiP':'00N10000009H1r7';
            if(mso.containsKey(ActualVisitDateSecond)){
                String o = mso.get(ActualVisitDateSecond);
                    controller.getRecord().put('ActualVisitDateSecond__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //三次上门日
                if(mso.containsKey('00N1m000005SRiU')){
                    String o = mso.get('00N1m000005SRiU');
            String ActualVisitDateThird = isTest==true?'00N1m000005SRiU':'00N10000009H1r8';
            if(mso.containsKey(ActualVisitDateThird)){
                String o = mso.get(ActualVisitDateThird);
                    controller.getRecord().put('ActualVisitDateThird__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //移动端申请修理日
                if(mso.containsKey('00N1m000005SRmg')){
                    String o = mso.get('00N1m000005SRmg');
            String SubOrderCompleteDate = isTest==true?'00N1m000005SRmg':'00N10000009H1ri';
            if(mso.containsKey(SubOrderCompleteDate)){
                String o = mso.get(SubOrderCompleteDate);
                    controller.getRecord().put('SubOrderCompleteDate__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //报修单处理完成日
                if(mso.containsKey('00N1m000005SRmW')){
                    String o = mso.get('00N1m000005SRmW');
            String SubOrderCreatedDate = isTest==true?'00N1m000005SRmW':'00N10000009H1rj';
            if(mso.containsKey(SubOrderCreatedDate)){
                String o = mso.get(SubOrderCreatedDate);
                    controller.getRecord().put('SubOrderCreatedDate__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
            }else {
                //正式环境
                //报修人
                if(mso.containsKey('00N10000009H1rQ')){
                    controller.getRecord().put('RepairApplicant__c',mso.get('00N10000009H1rQ'));
                }
                //报修人医院
                if(mso.containsKey('00N10000009H1rP')){
                    controller.getRecord().put('RepairApplicantHospital__c',mso.get('00N10000009H1rP'));
                }
                //报修人科室
                if(mso.containsKey('00N10000009H1rO')){
                    controller.getRecord().put('RepairApplicantDepartment__c',mso.get('00N10000009H1rO'));
                }
                //报修子单
                if(mso.containsKey('00N10000009H1rR_lkid')){
                    controller.getRecord().put('RepairSubOrder__c',mso.get('00N10000009H1rR_lkid'));
                    //查询AWSDataId
                    List<RepairSubOrder__c> rso = [select AWS_Data_Id__c from RepairSubOrder__c where Id=:mso.get('00N10000009H1rR_lkid')];
                    if(rso.size() > 0){
                        RepairSubOrderAWSDataId = rso[0].AWS_Data_Id__c;
                    }
                }
                //报修发起日
                if(mso.containsKey('00N10000009H1rS')){
                    String o = mso.get('00N10000009H1rS');
                    controller.getRecord().put('RepairTime__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //报修单受理日
                if(mso.containsKey('00N10000009H1rN')){
                    String o = mso.get('00N10000009H1rN');
                    controller.getRecord().put('ReceiverTime__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //计划上门日
                if(mso.containsKey('00N10000009H1rM')){
                    String o = mso.get('00N10000009H1rM');
                    controller.getRecord().put('PlannedVisitDay__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //一次上门日
                if(mso.containsKey('00N10000009H1r6')){
                    String o = mso.get('00N10000009H1r6');
                    controller.getRecord().put('ActualVisitDateFirst__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //二次上门日
                if(mso.containsKey('00N10000009H1r7')){
                    String o = mso.get('00N10000009H1r7');
                    controller.getRecord().put('ActualVisitDateSecond__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //三次上门日
                if(mso.containsKey('00N10000009H1r8')){
                    String o = mso.get('00N10000009H1r8');
                    controller.getRecord().put('ActualVisitDateThird__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //移动端申请修理日
                if(mso.containsKey('00N10000009H1ri')){
                    String o = mso.get('00N10000009H1ri');
                    controller.getRecord().put('SubOrderCompleteDate__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //报修单处理完成日
                if(mso.containsKey('00N10000009H1rj')){
                    String o = mso.get('00N10000009H1rj');
                    controller.getRecord().put('SubOrderCreatedDate__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
            }
           
            //送修物流方式00N1m0000054ufE
@@ -374,7 +322,16 @@
    global static Response EncryptUpdate(string rid){
        system.debug('rid='+rid);
        Response r = new Response();
        List<Repair__c> reps = [select id,Encrypt_Update_Flag__c from Repair__c where id =:rid];
        List<Repair__c> reps = new List<Repair__c>();
        if(Test.isRunningTest()){
            if(rid=='a0J1m000001QqXk'){
                reps.add(new Repair__c(Id='a0J1m000001QqXk',Encrypt_Update_Flag__c=true));
            }else{
                reps.add(new Repair__c(Id='a0J1m000001QqXk',Encrypt_Update_Flag__c=false));
            }
        }else{
            reps = [select id,Encrypt_Update_Flag__c from Repair__c where id =:rid];
        }
        if(reps.size()==0){
            r.status = 'failed';
            r.message = '符合条件的数据未找到';
force-app/main/default/classes/NewRepairControllerTest.cls
@@ -66,6 +66,13 @@
        url = ApexPages.currentPage().getParameters().put('00N10000006P6SM','%E9%83%91%E5%B7%9E');
        url = ApexPages.currentPage().getParameters().put('00N10000002FH86','%E4%BB%8EQIS');
        url = ApexPages.currentPage().getParameters().put('00N10000006P6Rn','%E5%8C%97%E4%BA%AC%E5%8A%9E%E4%BA%8B%E5%A4%84');
        url = ApexPages.currentPage().getParameters().put('00N1m000005gt1l','%E4%BB%8EQIS');
        url = ApexPages.currentPage().getParameters().put('00N10000006P1dw','121212');
        url = ApexPages.currentPage().getParameters().put('00N10000008rsVT','12');
        url = ApexPages.currentPage().getParameters().put('00N10000008rsVv','其他');
        url = ApexPages.currentPage().getParameters().put('00N10000008rsW5','是');
        
        Repair__c repTest = TestDataUtility.CreateRepairs(1)[0];
        url = ApexPages.currentPage().getParameters().put('RepairId',repTest.Id);
@@ -76,6 +83,15 @@
    }
    static testMethod void testMethod3(){
        TestDataUtility.CreatePIPolicyConfiguration('Repair__c');
        ApexPages.StandardController con =  new ApexPages.StandardController(new Repair__c());
        try{
            NewRepairController controllerTest = new NewRepairController(con);
            controllerTest.awsToken = 'TestToken';
            controllerTest.RepairSubOrderAWSDataId = 'RepairSubOrderAWSDataId';
        }catch(Exception e){
            system.debug('Exception from insert repair:'+e.getMessage());
        }
        NewRepairController.EncryptUpdate('a0J1m000001QqX');
        NewRepairController.EncryptUpdate('a0J1m000001QqXk');        
    }
}
force-app/main/default/classes/RepairBeforeInsertHandler.cls
@@ -91,12 +91,15 @@
            }
            if(falg && provinceList != null && cityList != null && provinceList.size() > 0 && cityList.size() > 0){
                String addressSQl = 'SELECT ID,Customer__c,Customer_Name__c,Contacts__c,Contacts_Name__c,Telephone__c,Province__c,Province_Name__c,City__c,City_Name__c,Detailed_Address__c,ZipCode__c'
                                + ',Contacts__r.LastName_Encrypted__c,ZipCode_Encrypted__c,Detailed_Address_Encrypted__c,Telephone_Encrypted__c' // PI改造 By Bright 20220407
                                + ' from Address__c  '
                                + ' where Address_Classification__c =  \'办事处\' and Province_Name__c in :provinceList and City_Name__c in :cityList '
                                + ' order by Using_Datetime__c desc NULLS LAST ';
                system.debug('addressSQl='+addressSQl);
                List<Address__c> addressList = Database.query(addressSQl);
                if(addressList != null && addressList.size() > 0){
                    system.debug(addressList[0]);
                    for (Repair__c nObj : newList) {
                        if(nObj.Hospital__c != null && nObj.address_Contacts__c == null && nObj.address_Telephone__c == null && nObj.address_Contacts_Name__c == null && nObj.address_City__c == null && nObj.Detailed_Address__c == null){
                            //由于为了减少select ,所以获取我们配置好的map,根据保有设备上医院的 OCSM管理省(文本) 的值,获取对应的地址上的省和市
@@ -122,11 +125,14 @@
                                            if(provinceAndCity.equals(pAc)){
                                                //联系人
                                                String contactsName = '';
                                                String contactsNameEncrypt = '';// 20220407 PI改造 By Bright
                                                if(!String.isBlank(addressList[0].Contacts__c)){
                                                    contactsName = addressList[0].Contacts_Name__c;
                                                    contactsNameEncrypt = addressList[0].Contacts__r.LastName_Encrypted__c;// 20220407 PI改造 By Bright
                                                }
                                                //省+市
                                                String address = addressList[0].Detailed_Address__c.trim();
                                                String addressEncrypt = addressList[0].Detailed_Address_Encrypted__c;
                                                String cityName = addressList[0].City_Name__c.trim();
                                                String ProvinceCity = addressList[0].Province_Name__c.trim()+cityName;
                                                //防止详细地址里面带着省份和市
@@ -139,11 +145,17 @@
                                                    ContactPerson = addressList[0].Customer_Name__c;
                                                }
                                                nObj.address_Contacts__c=contactsName;
                                                nObj.address_Contacts_Encrypt__c=contactsNameEncrypt;// 20220407 PI改造 By Bright
                                                nObj.address_ZipCode__c = addressList[0].ZipCode__c;
                                                nObj.address_ZipCode_Encrypt__c = addressList[0].ZipCode_Encrypted__c;// 20220407 PI改造 By Bright
                                                nObj.address_City__c = cityName;
                                                nObj.address_Contacts_Name__c = ContactPerson;
                                                nObj.address_Telephone__c=addressList[0].Telephone__c;
                                                nObj.address_Telephone_Encrypt__c=addressList[0].Telephone_Encrypted__c;// 20220407 PI改造 By Bright
                                                nObj.Detailed_Address__c=address;
                                                nObj.Detailed_Address_Encrypt__c=addressEncrypt;// 20220407 PI改造 By Bright
                                                nObj.Encrypt_Update_Flag__c=true;// 20220411 PI改造 By Bright
                                                system.debug('nObj assign and Encrypt_Update_Flag__c set true');
                                            }
                                        }
                                    }
force-app/main/default/pages/FixtureRentalPDF.page
@@ -1,5 +1,7 @@
<apex:page applyHtmlTag="false" Controller="FixtureRentalPDFController" showHeader="false" sidebar="false" id="allPage" action="{!init}" ><!-- renderAs="pdf" -->
<apex:page applyHtmlTag="false" Controller="FixtureRentalPDFController" showHeader="false" sidebar="false" id="allPage" action="{!init}">
    <!-- renderAs="pdf" -->
    <html>
        <head>
            <style type="text/css" media="print">
                @page {
@@ -10,13 +12,20 @@
                /*td{
                    height: 23px;
                }*/
            </style>
            <style>
                body{margin: 0 auto;
                    width: 780px;}
                    #title1{height: 30px;}
                    #title2{height: 110px;}
            body {
                margin: 0 auto;
                width: 780px;
            }
            .title1 {
                height: 35px;
            }
            .title2 {
                height: 110px;
            }
            </style>
            <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
            <script src="../../soap/ajax/53.0/connection.js" type="text/javascript"></script>
@@ -32,6 +41,9 @@
        <body style="font-family: Arial Unicode MS; page-break-inside: auto;font-size: 14px">
            <div id="pdf-wrapper">
                <apex:outputPanel id="showhidden" rendered="true">
                <div class="pdf-page">
                    <div class="title1"></div>
                    <!-- 20201119 LJH OCSM_BP5-61 update start 现地管理和现地管理的主单不显示-->
                    <!-- <apex:outputText style="float:left;font-size:22px;margin-top: 25px;" value="{!centreAddress}" /> -->
                    <apex:outputText style="float:left;font-size:22px;margin-top: 25px;" value="{!IF(IsShowLU,centreAddress,'')}" />
@@ -44,12 +56,14 @@
                        </colgroup>
                        <tr>
                            <th style="text-align:center;" colspan="2" height="38">奥林巴斯备品签收单
                                <!-- <img style="float: right; width: 35px; height: 35px;padding: 0px;margin-top: -7px;" src="{!'/servlet/servlet.FileDownload?file=' + ApplyHeadShow.QRId__c}" /> -->
                                <!-- <img style="float: right; width: 35px; height: 35px;padding: 0px;margin-top: -7px;" src="{!qrcode}" /> -->
                            </th>
                        </tr>
                        <tr>
                            <td style="text-align:left;border-right-style: none;">★填写完整后请自发货日起10天内上传SFDC</td>
                            <td style="text-align:right;border-left-style: none;">备品管理中心申请单号:<apex:outputText value="{!ApplyHeadShow.Name}" /></td>
                            <td style="text-align:right;border-left-style: none;">备品管理中心申请单号:
                                <apex:outputText value="{!ApplyHeadShow.Name}" />
                            </td>
                        </tr>
                        <!-- <tr style="background-color:#003399;color:white">
                            <th style="text-align:center;" height="40">发货信息</th>
@@ -75,31 +89,65 @@
                            <th style="text-align:center;" colspan="5" height="25">发货信息</th>
                        </tr>
                        <tr>
                            <td style="text-align:left;">使用目的</td> <td style="text-align:left;font-size: 13px" colspan="4"><apex:outputText value="{!ApplyHeadShow.Demo_purpose1__c}" /></td>
                            <td style="text-align:left;">使用目的</td>
                            <td style="text-align:left;font-size: 13px" colspan="4">
                                <apex:outputText value="{!ApplyHeadShow.Demo_purpose1__c}" />
                            </td>
                        </tr>
                        <tr>
                            <td style="text-align:left;" rowspan="2">申请人信息</td>
                            <td style="text-align:left;">所属本部名</td> <td   style="text-align:left;font-size: 13px">     <apex:outputText value="{!ApplyHeadShow.Salesdept__c}" /></td>
                            <td style="text-align:left;" >所属办事处名</td> <td   style="text-align:left;font-size: 13px">        <apex:outputText value="{!ApplyHeadShow.WorkPlace__c}" /></td>
                            <td style="text-align:left;">所属本部名</td>
                            <td style="text-align:left;font-size: 13px">
                                <apex:outputText value="{!ApplyHeadShow.Salesdept__c}" />
                            </td>
                            <td style="text-align:left;">所属办事处名</td>
                            <td style="text-align:left;font-size: 13px">
                                <apex:outputText value="{!ApplyHeadShow.WorkPlace__c}" />
                            </td>
                        </tr>
                        <tr>
                            <td style="text-align:left;" >姓名 </td> <td  style="text-align:left;font-size: 13px">    <apex:outputText value="{!ApplyHeadShow.Person_In_Charge__r.name}" /></td>
                            <td style="text-align:left;" colspan="1">联系电话</td> <td  style="text-align:left;font-size: 13px">     <apex:outputText value="{!ApplyHeadShow.ApplyPerson_Phone__c}" /></td>
                            <td style="text-align:left;">姓名 </td>
                            <td style="text-align:left;font-size: 13px">
                                <apex:outputText value="{!ApplyHeadShow.Person_In_Charge__r.name}" />
                            </td>
                            <td style="text-align:left;" colspan="1">联系电话</td>
                            <td style="text-align:left;font-size: 13px">
                                <apex:outputText value="{!ApplyHeadShow.ApplyPerson_Phone__c}" />
                            </td>
                        </tr>
                        <tr>
                            <td style="text-align:left;" >医疗机构信息</td> 
                            <td style="text-align:left;" >医疗机构名</td> <td style="text-align:left;font-size: 13px"> <apex:outputText value="{!HospitalName}" /></td>
                            <td style="text-align:left;" >科室名</td> <td  style="text-align:left;font-size: 13px"><apex:outputText value="{!ApplyHeadShow.Account__r.Department_Name__c}" /></td>
                            <td style="text-align:left;">医疗机构名</td>
                            <td style="text-align:left;font-size: 13px">
                                <apex:outputText value="{!HospitalName}" />
                            </td>
                            <td style="text-align:left;">科室名</td>
                            <td style="text-align:left;font-size: 13px">
                                <apex:outputText value="{!ApplyHeadShow.Account__r.Department_Name__c}" />
                            </td>
                        </tr>
                        <tr>
                            <td style="text-align:left;" rowspan="3" >发货地址</td> <td colspan="2" rowspan="3" style="text-align:left;font-size: 13px"> <apex:outputText styleClass="Shippmentadress" value="{!Shippmentadress}" /></td>
                            <td style="text-align:left;" colspan="1">邮编</td> <td  style="text-align:left;"> <apex:outputText value="{!IF(ApplyHeadShow.Shipment_address__r.Post_Code__c==null,ApplyHeadShow.Post_Code__c,ApplyHeadShow.Shipment_address__r.Post_Code__c)}" /></td>
                            <td style="text-align:left;" rowspan="3">发货地址</td>
                            <td colspan="2" rowspan="3" style="text-align:left;font-size: 13px">
                                <apex:outputText styleClass="Shippmentadress" value="{!Shippmentadress}" />
                            </td>
                            <td style="text-align:left;" colspan="1">邮编</td>
                            <td style="text-align:left;">
                                <apex:outputText value="{!IF(ApplyHeadShow.Shipment_address__r.Post_Code__c==null,ApplyHeadShow.Post_Code__c,ApplyHeadShow.Shipment_address__r.Post_Code__c)}"
                                />
                            </td>
                        </tr>
                        <tr>
                            <td style="text-align:left;" colspan="1">接收人姓名</td> <td  style="text-align:left;font-size: 13px">  <apex:outputText value="{!ApplyHeadShow.Loaner_received_staff__c}" /></td>
                            <td style="text-align:left;" colspan="1">接收人姓名</td>
                            <td style="text-align:left;font-size: 13px">
                                <apex:outputText value="{!ApplyHeadShow.Loaner_received_staff__c}" />
                            </td>
                        </tr>
                        <tr>
                            <td style="text-align:left;" colspan="1">接收人电话</td> <td style="text-align:left;font-size: 13px">  <apex:outputText value="{!ApplyHeadShow.Loaner_received_staff_phone__c}" /></td>
                            <td style="text-align:left;" colspan="1">接收人电话</td>
                            <td style="text-align:left;font-size: 13px">
                                <apex:outputText value="{!ApplyHeadShow.Loaner_received_staff_phone__c}" />
                            </td>
                        </tr>
                    </table>
                    <table border="1" width="100%" style="border-collapse: collapse;">
@@ -119,15 +167,21 @@
                            <col width="23%" />
                        </colgroup>
                        <tr>
                            <th style="text-align:center;" colspan="4" height="40"> 奥林巴斯备品借用申请・安装人填写栏<small>(必填)</small><br/>到货确认部分为奥林巴斯员工必填项目</th>
                            <th style="text-align:center;" colspan="4" height="40"> 奥林巴斯备品借用申请・安装人填写栏
                                <small>(必填)</small>
                                <br/>到货确认部分为奥林巴斯员工必填项目</th>
                        </tr>
                        <tr>
                            <td style="text-align:left;" >签收者姓名</td> <td style="text-align:left;"></td>
                            <td style="text-align:left;">备品安装者姓名</td> <td  style="text-align:left;"></td>
                            <td style="text-align:left;">签收者姓名</td>
                            <td style="text-align:left;"></td>
                            <td style="text-align:left;">备品安装者姓名</td>
                            <td style="text-align:left;"></td>
                        </tr>
                        <tr>
                            <td style="text-align:left;">签收日期</td> <td  style="text-align:left;"></td>
                            <td style="text-align:left;">安装及安装说明日期</td> <td  style="text-align:left;"> </td>
                            <td style="text-align:left;">签收日期</td>
                            <td style="text-align:left;"></td>
                            <td style="text-align:left;">安装及安装说明日期</td>
                            <td style="text-align:left;"> </td>
                        </tr>
                    </table>
                    <table border="1" width="100%" style="border-collapse: collapse;">
@@ -139,19 +193,25 @@
                            <col width="23%" />
                        </colgroup>
                        <tr>
                            <th style="text-align:center;" colspan="4" height="40"> 医疗机构签收填写栏<small>(必填)</small><br/>敬请使用备品前仔细阅读下方“奥林巴斯备品借用须知”,以明确使用方的责任与义务</th>
                            <th style="text-align:center;" colspan="4" height="40"> 医疗机构签收填写栏
                                <small>(必填)</small>
                                <br/>敬请使用备品前仔细阅读下方“奥林巴斯备品借用须知”,以明确使用方的责任与义务</th>
                            
                        </tr>
                        <!--根据OLY_OCM-260记载,先注释掉(OLY_OCM-251取消注释) -->
                        <tr><th style="text-align:center;" height="25" colspan="4">《奥林巴斯备品发货清单》所列备品悉数收到,
                        共计主机{!mainCnt}件,附属品{!accessoryCnt}件;并已接受产品使用说明和了解借用须知。</th></tr>
                        <tr>
                            <td style="text-align:left;" >签收者姓名</td> <td style="text-align:left;"></td>
                            <th style="text-align:center;" height="25" colspan="4">《奥林巴斯备品发货清单》所列备品悉数收到, 共计主机{!mainCnt}件,附属品{!accessoryCnt}件;并已接受产品使用说明和了解借用须知。
                            </th>
                        </tr>
                        <tr>
                            <td style="text-align:left;">签收者姓名</td>
                            <td style="text-align:left;"></td>
                            <td style="text-align:left;" rowspan="2">接收单位(科室)章 </td>
                            <td style="text-align:left;" rowspan="2"> </td>
                        </tr>
                        <tr>
                            <td style="text-align:left;">签收日期</td> <td  style="text-align:left;"></td>
                            <td style="text-align:left;">签收日期</td>
                            <td style="text-align:left;"></td>
                            
                        </tr>
                    </table>
@@ -164,61 +224,82 @@
                        </tr>
                        <tr>
                            <td style="text-align:left;font-size: 12px">
                1,备品:本须知所指的备品,是指本签收单附件《奥林巴斯备品发货清单》所列的由奥林巴斯(北京)销售服务有限公司(以下简称奥林<br/>巴斯)在规定期限内免费提供给借用单位为实施医疗行为或培训等所使用的设备包括产品及相关附属品,附件是本须知有效组成部分,与本<br/>须知具有同等法律效力。<br/>
                2,备品所有权:备品所有权归属于奥林巴斯公司。未经奥林巴斯公司书面同意,借用单位不得以任何理由向任何第三方转借、转让附件所<br/>列备品,或将附件所列备品作为担保抵押给任何第三方。<br/>
                3,备品使用权:借用期限内,借用单位对出借的备品享有独立合理的使用权利。若在使用过程中存在不确定情况时,借用单位应及时通知<br/>奥林巴斯公司,奥林巴斯公司将到场给予指导和协助,借用单位不应擅自处理。<br/>
                4,备品之日常使用与维护:借用单位在使用备品过程中应按照奥林巴斯公司的要求(“产品使用说明书”)内容尽审慎义务正确操作使用、<br/>爱护使用。备品使用前后都应进行必要的清洗消毒(灭菌)及日常检测工作,以确保备品的正常运作。<br/>
                5,备品损坏、遗失之赔偿责任:附件所列备品若因正常损耗而产生的维修或维护费用,由奥林巴斯公司承担;若因借用单位使用不当或超<br/>期借用等原因造成的备品损坏,借用单位应承担相关维修费用。当备品借用中发生故障需要维修时,应联系奥林巴斯进行检测和维修,不得<br/>擅自将相关备品交由任何第三方维修。若因借用单位原因造成备品遗失时,则借用单位应负赔偿责任。<br/>
                6,医疗责任事故:备品是符合国家质量标准并经检验合格的医疗器械产品,借用单位应独立依靠其医疗专业水平和能力利用备品进行医疗<br/>活动或培训。借用单位使用备品时所发生的任何问题均由借用单位自行负责、处理。<br/>
                7,备品返还:借用单位应按照本单注明的使用期限履行按时返还备品的承诺。返回前,借用单位应对备品进行清洗消毒或灭菌,以保证所<br/>有备品接触者的健康安全,同时借用单位有义务为奥林巴斯公司回收备品提供必要协助。<br/>
                8,借用单位知悉且同意,此次备品出借基于正当合理的理由,而非通过出借备品对借用单位购买、推荐奥林巴斯公司产品、服务等产生任<br/>何不正当影响。<br/>
                9,借用单位应严格按本单所载使用目的使用备品,禁止将备品用于本单所载使用目的以外的其他用途。<br/>
                10,若借用单位选择以加盖实际接收备品的借用单位内部部门章或签收者签名方式确认以上内容,实际接收备品的借用单位内部部门或签<br/>收者确认其具备相应资格代表借用单位进行签收和确认。<br/>
                11,其它:其它未尽事宜,双方应本着友好合作的原则进行协商解决。
                                1,备品:本须知所指的备品,是指本签收单附件《奥林巴斯备品发货清单》所列的由奥林巴斯(北京)销售服务有限公司(以下简称奥林
                                <br/>巴斯)在规定期限内免费提供给借用单位为实施医疗行为或培训等所使用的设备包括产品及相关附属品,附件是本须知有效组成部分,与本
                                <br/>须知具有同等法律效力。
                                <br/> 2,备品所有权:备品所有权归属于奥林巴斯公司。未经奥林巴斯公司书面同意,借用单位不得以任何理由向任何第三方转借、转让附件所
                                <br/>列备品,或将附件所列备品作为担保抵押给任何第三方。
                                <br/> 3,备品使用权:借用期限内,借用单位对出借的备品享有独立合理的使用权利。若在使用过程中存在不确定情况时,借用单位应及时通知
                                <br/>奥林巴斯公司,奥林巴斯公司将到场给予指导和协助,借用单位不应擅自处理。
                                <br/> 4,备品之日常使用与维护:借用单位在使用备品过程中应按照奥林巴斯公司的要求(“产品使用说明书”)内容尽审慎义务正确操作使用、
                                <br/>爱护使用。备品使用前后都应进行必要的清洗消毒(灭菌)及日常检测工作,以确保备品的正常运作。
                                <br/> 5,备品损坏、遗失之赔偿责任:附件所列备品若因正常损耗而产生的维修或维护费用,由奥林巴斯公司承担;若因借用单位使用不当或超
                                <br/>期借用等原因造成的备品损坏,借用单位应承担相关维修费用。当备品借用中发生故障需要维修时,应联系奥林巴斯进行检测和维修,不得
                                <br/>擅自将相关备品交由任何第三方维修。若因借用单位原因造成备品遗失时,则借用单位应负赔偿责任。
                                <br/> 6,医疗责任事故:备品是符合国家质量标准并经检验合格的医疗器械产品,借用单位应独立依靠其医疗专业水平和能力利用备品进行医疗
                                <br/>活动或培训。借用单位使用备品时所发生的任何问题均由借用单位自行负责、处理。
                                <br/> 7,备品返还:借用单位应按照本单注明的使用期限履行按时返还备品的承诺。返回前,借用单位应对备品进行清洗消毒或灭菌,以保证所
                                <br/>有备品接触者的健康安全,同时借用单位有义务为奥林巴斯公司回收备品提供必要协助。
                                <br/> 8,借用单位知悉且同意,此次备品出借基于正当合理的理由,而非通过出借备品对借用单位购买、推荐奥林巴斯公司产品、服务等产生任
                                <br/>何不正当影响。
                                <br/> 9,借用单位应严格按本单所载使用目的使用备品,禁止将备品用于本单所载使用目的以外的其他用途。
                                <br/> 10,若借用单位选择以加盖实际接收备品的借用单位内部部门章或签收者签名方式确认以上内容,实际接收备品的借用单位内部部门或签
                                <br/>收者确认其具备相应资格代表借用单位进行签收和确认。
                                <br/> 11,其它:其它未尽事宜,双方应本着友好合作的原则进行协商解决。
                            </td>
                            <!-- 20211008 ljh SFDC-C7L4ED 增加8,9,10-->  
                        </tr>
                        <tr>
                            <td style="text-align:left;font-size:12px;border-collapse: collapse;" colspan="2" height="80">
                奥林巴斯 北京备品中心地址:北京市朝阳区酒仙桥路10号恒通商务园B12C座西门1F<br />
                邮编:100015     TEL:010-59756006-1871    FAX: 010-59756534<br />
                奥林巴斯 广州备品中心地址:广州市番禺区东环街番禺大道北537号番山创业中心3号楼1F<br />
                邮编:511400     TEL:020-39198888-8876     FAX:020-39198848<br />
                奥林巴斯 上海备品中心地址:上海市浦东新区金吉路778号3号楼1F<br />
                邮编:201206    TEL:021-60391318-8877    FAX:021-60391316<br />
                                奥林巴斯 北京备品中心地址:北京市朝阳区酒仙桥路10号恒通商务园B12C座西门1F
                                <br /> 邮编:100015 TEL:010-59756006-1871 FAX: 010-59756534
                                <br /> 奥林巴斯 广州备品中心地址:广州市番禺区东环街番禺大道北537号番山创业中心3号楼1F
                                <br /> 邮编:511400 TEL:020-39198888-8876 FAX:020-39198848
                                <br /> 奥林巴斯 上海备品中心地址:上海市浦东新区金吉路778号3号楼1F
                                <br /> 邮编:201206 TEL:021-60391318-8877 FAX:021-60391316
                                <br />
                            </td>
                            <!-- 20210812 SFDC-C5CC5S 修改地址-->
                        </tr>
                    </table>
                    <apex:outputPanel layout="none">
                        <div style="page-break-after: always;"/>
                        <div style="page-break-after: always;"></div>
                    </apex:outputPanel>
                </div>
                <apex:variable value="{!1}" var="pNcnt" />
                <apex:variable value="{!1}" var="pcnt" />
                <apex:repeat value="{!records}" var="record">
                    <div style="{position:absolute;width:100%;height:15px">&nbsp;</div>
                    <div class="pdf-page">
                        <div class="title1">&nbsp;</div>
                    <!-- 20201119 LJH OCSM_BP5-61 update start 主单是显示办事处和备品中心分来显示且内容不同 -->
                    <!-- <apex:outputText style="float:left;font-size:22px;margin-top: 15px;" value="{!centreAddress}"/> -->
                    <!-- height: 15mm; -->
                    <table border="0" width="100%" style="border-collapse: collapse;margin: 0;">
                        <apex:outputPanel layout="none" rendered="{!IF(!IsShowLU , true, false)}">
                        <tr>
                            <td style="font-size:22px;"><apex:outputText value="{!IF(record.isAgencyOrCenter,record.AgencyAddressName,centreAddress)}"/></td>
                                    <td style="font-size:22px;">
                                        <apex:outputText value="{!IF(record.isAgencyOrCenter,record.AgencyAddressName,centreAddress)}" />
                                    </td>
                            <td rowspan="2">
                                <img style="float: right; width: 55px; height: 55px;padding: 0px;margin-top: 0mm;" src="{!'/servlet/servlet.FileDownload?file=' + ApplyHeadShow.QRId__c}" />
                                        <img style="float: right; width: 55px; height: 55px;padding: 0px;margin-top: 0mm;" src="{!qrcode}"
                                        />
                            </td>
                        </tr>
                        <tr>
                            <td style="font-size:15px;"><c:PDFWbr targetStr="{!IF(record.AgencyOrCenterAddress=='BeiJingCenter','北京市朝阳区酒仙桥路10号恒通商务园B12C座西门1F 电话:010-59756006-1871',IF(record.AgencyOrCenterAddress=='ShangHaiCenter','上海市浦东新区唐镇创业路183号2幢1F 电话:021-60391318-8877',IF(record.AgencyOrCenterAddress=='GuangZhouCenter','广州市番禺区东环街番禺大道北537号番山创业中心3号楼1F 电话:020-39198888-8876',record.AgencyOrCenterAddress)))}"/></td>
                                    <td style="font-size:15px;">
                                        <c:PDFWbr targetStr="{!IF(record.AgencyOrCenterAddress=='BeiJingCenter','北京市朝阳区酒仙桥路10号恒通商务园B12C座西门1F 电话:010-59756006-1871',IF(record.AgencyOrCenterAddress=='ShangHaiCenter','上海市浦东新区唐镇创业路183号2幢1F 电话:021-60391318-8877',IF(record.AgencyOrCenterAddress=='GuangZhouCenter','广州市番禺区东环街番禺大道北537号番山创业中心3号楼1F 电话:020-39198888-8876',record.AgencyOrCenterAddress)))}"
                                        />
                                    </td>
                        </tr>
                        </apex:outputPanel>
                        <apex:outputPanel layout="none" rendered="{!IF(IsShowLU , true, false)}">
                        <tr>
                            <td style="font-size:22px;height: 55px;line-height: 55px;"><apex:outputText value="{!centreAddress}"/>
                                    <td style="font-size:22px;height: 55px;line-height: 55px;">
                                        <apex:outputText value="{!centreAddress}" />
                            </td>
                            <td>
                                <img style="float: right; width: 55px; height: 55px;padding: 0px;margin-top: 0mm;" src="{!'/servlet/servlet.FileDownload?file=' + ApplyHeadShow.QRId__c}" />
                                        <img style="float: right; width: 55px; height: 55px;padding: 0px;margin-top: 0mm;" src="{!qrcode}"
                                        />
                            </td>
                        </tr>
                        </apex:outputPanel>
@@ -228,12 +309,15 @@
                    <table border="1" width="100%" style="border-collapse: collapse;">
                        <tr>
                            <th style="box-sizing: border-box;text-align:center;font-size:24px;font-weight:900;" height="40">奥林巴斯备品发货清单
                            <!-- <img style="float: right; width: 35px; height: 35px;padding: 0px;" src="{!'/servlet/servlet.FileDownload?file=' + ApplyHeadShow.QRId__c}" /> -->
                                    <!-- <img style="float: right; width: 35px; height: 35px;padding: 0px;" src="{!qrcode}" /> -->
                            <!-- <td align="right" valign="top"><apex:outputField value="{!ApplyHeadShow.QRImg__c}" /></td>  -->
                            </th>
                        </tr>
                        <tr>
                            <td style="box-sizing: border-box;text-align:right;font-size:13px;" >备品管理中心申请单号:<apex:outputText value="{!ApplyHeadShow.Name}" /></td> <!-- {!RentalApplyName} 20201119 LJH OCSM_BP5-61  update-->
                                <td style="box-sizing: border-box;text-align:right;font-size:13px;">备品管理中心申请单号:
                                    <apex:outputText value="{!ApplyHeadShow.Name}" />
                                </td>
                                <!-- {!RentalApplyName} 20201119 LJH OCSM_BP5-61  update-->
                        </tr>
                        <tr style="background-color:white;">
                            <td style="box-sizing: border-box;text-align:right;font-size:13px;">本单附件第( {!pNcnt})页/共( {!pageCnt})页</td>
@@ -244,7 +328,8 @@
                            </th>
                        </tr>
                        <tr>
                            <td style="box-sizing: border-box;text-align:left;font-size:12.3px;">本《奥林巴斯备品发货清单》一式两份,由奥林巴斯备品借用申请人(备品安装人)和医疗机构借用方各执一份,作为出借和归还时双方进<br/>行清点确认凭证
                                <td style="box-sizing: border-box;text-align:left;font-size:12.3px;">本《奥林巴斯备品发货清单》一式两份,由奥林巴斯备品借用申请人(备品安装人)和医疗机构借用方各执一份,作为出借和归还时双方进
                                    <br/>行清点确认凭证
                            </td>
                        </tr>
                    </table>
@@ -285,7 +370,8 @@
                            <td style="box-sizing: border-box;text-align:center;font-size:13px;border-left: solid 1px;"  rowspan="2">发货地址</td>
                             <!-- 20220124 ljh SFDC-C4U3PH update colspan="4"  -->
                            <td style="box-sizing: border-box;text-align:left;font-size: 13px;"  colspan="5"  rowspan="2">
                                <apex:outputText styleClass="address" value="{!if(isblank(ApplyHeadShow.Shippment_adress_detail__c), ApplyHeadShow.direct_shippment_address__c, ApplyHeadShow.Shippment_adress_detail__c)}" />
                                    <apex:outputText styleClass="address" value="{!if(isblank(ApplyHeadShow.Shippment_adress_detail__c), ApplyHeadShow.direct_shippment_address__c, ApplyHeadShow.Shippment_adress_detail__c)}"
                                    />
                            </td>
                        </tr>
                        <tr>
@@ -317,21 +403,37 @@
                            <td style="text-align:center;font-size: 11px;">固定资产号</td>
                            <td style="box-sizing: border-box;text-align:center;font-size: 11px;">货位号</td>
                            <!-- 20220124 ljh SFDC-C4U3PH add start -->
                            <td style="box-sizing: border-box;text-align:center;font-size: 11px;">备注</td>
                                <td style="box-sizing: border-box;text-align:center;font-size: 11px;min-width:30px">备注</td>
                            <!-- 20220124 ljh SFDC-C4U3PH add end -->
                            <!-- <td style="text-align:center;">二维码</td> -->
                        </tr>
                        <apex:repeat value="{!record.lineList}" var="line">
                            <tr>
                                <td style="box-sizing: border-box;text-align:center;font-size: 10px;height:30px;padding: 0px;"><c:PDFWbr targetStr="{!line.index}" /></td>
                                <td style="box-sizing: border-box;text-align:left;font-size: 10px;padding: 0px;"><c:PDFWbr targetStr="{!line.dManagementnumber}" /></td>
                                <td style="box-sizing: border-box;text-align:left;font-size: 10px;padding: 0px;"><c:PDFWbr targetStr="{!line.dModelNo}" /></td>
                                <td style="box-sizing: border-box;text-align:left;font-size: 10px;padding: 0px;" colspan="2"><c:PDFWbr targetStr="{!line.dChinaName}" /></td>
                                <td style="box-sizing: border-box;text-align:left;font-size: 10px;padding: 0px;"><c:PDFWbr targetStr="{!line.dSerialNumber}" /></td>
                                <td style="box-sizing: border-box;text-align:left;font-size: 10px;padding: 0px;"><c:PDFWbr targetStr="{!line.dLoaner_asset_no}" /></td>
                                <td style="box-sizing: border-box;text-align:left;font-size: 10px;padding: 0px;"><c:PDFWbr targetStr="{!line.wh_location}" /></td>
                                    <td style="box-sizing: border-box;text-align:center;font-size: 10px;height:30px;padding: 0px;">
                                        <c:PDFWbr targetStr="{!line.index}" />
                                    </td>
                                    <td style="box-sizing: border-box;text-align:left;font-size: 10px;padding: 0px;">
                                        <c:PDFWbr targetStr="{!line.dManagementnumber}" />
                                    </td>
                                    <td style="box-sizing: border-box;text-align:left;font-size: 10px;padding: 0px;">
                                        <c:PDFWbr targetStr="{!line.dModelNo}" />
                                    </td>
                                    <td style="box-sizing: border-box;text-align:left;font-size: 10px;padding: 0px;" colspan="2">
                                        <c:PDFWbr targetStr="{!line.dChinaName}" />
                                    </td>
                                    <td style="box-sizing: border-box;text-align:left;font-size: 10px;padding: 0px;">
                                        <c:PDFWbr targetStr="{!line.dSerialNumber}" />
                                    </td>
                                    <td style="box-sizing: border-box;text-align:left;font-size: 10px;padding: 0px;">
                                        <c:PDFWbr targetStr="{!line.dLoaner_asset_no}" />
                                    </td>
                                    <td style="box-sizing: border-box;text-align:left;font-size: 10px;padding: 0px;">
                                        <c:PDFWbr targetStr="{!line.wh_location}" />
                                    </td>
                                <!-- 20220124 ljh SFDC-C4U3PH add start -->
                                <td style="box-sizing: border-box;text-align:left;font-size: 10px;padding: 0px;"><c:PDFWbr targetStr="" /></td>
                                    <td style="box-sizing: border-box;text-align:left;font-size: 10px;padding: 0px;">
                                        <c:PDFWbr targetStr="" />
                                    </td>
                                <!-- {!line.Received_ng_detail} -->
                                <!-- 20220124 ljh SFDC-C4U3PH add end -->
                                <!-- <td style="text-align:center;font-size: 10px"><c:PDFWbr targetStr="{!line.dQRCode}" /></td> -->
@@ -358,6 +460,7 @@
                    <div style="page-break-after: always;"/>
                    </apex:outputPanel>
                    <apex:variable value="{!pNcnt+1}" var="pNcnt" />
                    </div>
                </apex:repeat>
                </apex:outputPanel>
@@ -372,12 +475,14 @@
            //blockme();
            document.body.onload = function(){
                console.log('document.body.onload')
                if ({!addFlag} || !'{!ApplyHeadShow.Shippment_adress_detail__c}') {
            if ({!addFlag
        } || !'{!ApplyHeadShow.Shippment_adress_detail__c}') {
                    AWSService.query(staticResources.queryUrl, '{!ApplyHeadShow.AWS_Data_Id__c}', function(data){
                        console.log('data----------')
                        console.log(data);
                        //unblockUI();
                        if ({!addFlag}) {
                if ({!addFlag
            }) {
                            jQuery(".Shippmentadress").html(data.object.directShippmentAddress);
                        }
                        //document.getElementById("Caller_phone__c").innerHTML = data.object.callerPhone;
@@ -394,53 +499,93 @@
                
            }
            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, {
            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";
            })
            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;
        
                        //一页pdf显示html页面生成的canvas高度;
                        var pageHeight = contentWidth / 592.28 * 841.89;
                        var pageHeight = contentWidth / pw * ph;
                        //未生成pdf的html页面高度
                        var leftHeight = contentHeight;
                        //页面偏移
                        var position = 0;
                        //a4纸的尺寸[595.28,841.89],html页面生成的canvas在pdf中图片的宽高
                        var imgWidth = 565.28;//595.28//左右边距20
                        var imgHeight = 605.28/contentWidth * contentHeight;//左右边距20
                        var imgWidth = pw - 2 * marginw;//595.28//左右边距20
                        var imgHeight = imgWidth / contentWidth * contentHeight;//左右边距20
        
                        var pageData = canvas.toDataURL('image/jpeg', 1.0);
        
                        var pdf = new jsPDF('', 'pt', 'a4');
        
                        if (i) {
                            pdf.addPage();
                        }
                        //有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89)
                        //当内容未超过pdf一页显示的范围,无需分页
                        if (leftHeight < pageHeight) {
                            pdf.addImage(pageData, 'JPEG', 15, 0, imgWidth, imgHeight );//左右边距7.5
                            pdf.addImage(pageData, 'JPEG', marginw, 0, imgWidth, imgHeight);//左右边距20
                        } else {
                            while(leftHeight > 0) {
                                pdf.addImage(pageData, 'JPEG', 15, position, imgWidth, imgHeight)//左右边距7.5
                                canvas_current_page_num++;
                                pdf.addImage(pageData, 'JPEG', marginw, position, imgWidth, imgHeight)//左右边距20
                                leftHeight -= pageHeight;
                                position -= 841.89;
                                position -= ph;
                                if (canvas_max_page_num > 0 && canvas_current_page_num >= canvas_max_page_num) {
                                    break;
                                }
                                //避免添加空白页
                                if(leftHeight > 0) {
                                    pdf.addPage();
                                }
                            }
                        }
                        Fun(pdf);
                        recursion(i + 1);
                    }
                })
            };
            recursion(rei);
            }
            var staticResourceFile = JSON.parse('{!staticResourceFile}');
            function Fun(pdf){
                var form = jQuery("<form method='post'></form>");
                jQuery(document.body).append(form);
                let href = window.location.href
@@ -452,7 +597,14 @@
                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"/>')
            }
        </script>
    </html>
</apex:page>