From 0a3f9325599467015aecc4af7543dd10fe70ec56 Mon Sep 17 00:00:00 2001
From: yumenghui <953181891@qq.com>
Date: 星期五, 04 八月 2023 14:14:28 +0800
Subject: [PATCH] 附件修改

---
 force-app/main/default/pages/ReceivingNoteQR.page                   |   58 ++
 force-app/main/default/pages/TransferApplyPDF.page                  |    2 
 force-app/main/default/pages/TransferApplyQR.page                   |   63 ++
 force-app/main/default/pages/RentalApplyQR.page                     |   62 ++
 force-app/main/default/classes/OPDPlanHandler.cls                   |   79 +++
 force-app/main/default/classes/RentalApplyFaultHandler.cls          |  513 +++++++++++++++++++++++++++
 force-app/main/default/classes/RentalApplyFaultHandler.cls-meta.xml |    5 
 force-app/main/default/pages/RentalApplyBR.page                     |   58 ++
 force-app/main/default/pages/ReceivingNoteWaitingReceipt.page       |  227 ++++++++---
 force-app/main/default/classes/RepairAndQISToPDFController.cls      |   58 ++
 force-app/main/default/pages/ReceivingNotePDF.page                  |    2 
 11 files changed, 980 insertions(+), 147 deletions(-)

diff --git a/force-app/main/default/classes/OPDPlanHandler.cls b/force-app/main/default/classes/OPDPlanHandler.cls
index 7540370..b4430a6 100644
--- a/force-app/main/default/classes/OPDPlanHandler.cls
+++ b/force-app/main/default/classes/OPDPlanHandler.cls
@@ -556,6 +556,7 @@
                 }
             }
 
+
             if (Trigger.isInsert && String.isNotBlank(t.OriginalOpdPlan__c)) {
                 
                 reapplyopdMap.put(t.OriginalOpdPlan__c, t.Id);
@@ -666,25 +667,73 @@
                     insert insertCloneList;
                 }
             }
-            List<Attachment> getAttachmentList = [SELECT Id, Body, Name, ParentId
-                                        FROM Attachment
-                                        WHERE ParentId In:reapplyopdMap.keySet()];
-            List<Attachment> insertAttachmentCloneList = new List<Attachment>();
-            if (getAttachmentList.size() > 0 ) {
-                for(Attachment att :getAttachmentList){
-                    Attachment attClone = new Attachment();
-                    attClone = att.clone();
-                    attClone.Id = null;
-                    attClone.Body = att.Body;
-                    attClone.Name = att.Name;
-                    attClone.ParentId = reapplyopdMap.get(att.ParentId);
-                    insertAttachmentCloneList.add(attClone);
+            List<ContentDocumentLink> getdocLink = [SELECT ContentDocumentId,LinkedEntityId FROM ContentDocumentLink WHERE LinkedEntityId In:reapplyopdMap.keySet()];
+            List<Id> idList = new List<Id>();
+            for (ContentDocumentLink link : getdocLink) {
+                idList.add(link.ContentDocumentId);
+            }
+            List<Id> linkIdList = new List<Id>();
+            for (ContentDocumentLink link : getdocLink) {
+                linkIdList.add(link.LinkedEntityId);
+            }
+            List<ContentVersion> cvList = [SELECT VersionData,Title,PathOnClient,ContentDocumentId FROM ContentVersion WHERE ContentDocumentId In: idList];
+            List<ContentVersion> insertContentVersion = new List<ContentVersion>();
+            if (cvList.size()>0) {
+                for (ContentVersion cv : cvList) {
+                    ContentVersion newCV = new ContentVersion();
+                    newCV.VersionData = cv.VersionData;
+                    newCV.Title = cv.Title;
+                    newCV.PathOnClient = cv.PathOnClient;
+                    insertContentVersion.add(newCV);
                 }
+                if (insertContentVersion.size() > 0) {
+                    insert insertContentVersion;
+                    List<Id> versionIdList = new List<Id>();
+                    for (ContentVersion ver : insertContentVersion) {
+                        versionIdList.add(ver.Id);
+                    }
 
-                if (insertAttachmentCloneList.size() > 0) {
-                    insert insertAttachmentCloneList;
+                    List<ContentDocumentLink> insertContentDocumentLink = new List<ContentDocumentLink>();
+                    List<ContentDocumentLink> getdocLinkList = [SELECT ContentDocumentId,LinkedEntityId FROM ContentDocumentLink WHERE ContentDocumentId In: idList 
+                                                                    AND LinkedEntityId In:linkIdList];
+                    if (getdocLinkList.size()>0) {
+                        for (ContentVersion ver : insertContentVersion) {
+                            Id docId = [SELECT ContentDocumentId FROM ContentVersion WHERE Id = :ver.Id].ContentDocumentId;
+                            for (ContentDocumentLink cdl  : getdocLinkList) {
+                                ContentDocumentLink newCDL = new ContentDocumentLink();
+                                newCDL.ContentDocumentId = docId;
+                                // newCDL.LinkedEntityId = cdl.LinkedEntityId;
+                                newCDL.LinkedEntityId = reapplyopdMap.get(cdl.LinkedEntityId);
+                                newCDL.ShareType = 'I';
+                                newCDL.Visibility = 'AllUsers';
+                                insertContentDocumentLink.add(newCDL);   
+                            }
+                        }
+                        if (insertContentDocumentLink.size()>0) {
+                            insert insertContentDocumentLink;
+                        }
+                    }
                 }
             }
+            // List<Attachment> getAttachmentList = [SELECT Id, Body, Name, ParentId
+            //                             FROM Attachment
+            //                             WHERE ParentId In:reapplyopdMap.keySet()];
+            // List<Attachment> insertAttachmentCloneList = new List<Attachment>();
+            // if (getAttachmentList.size() > 0 ) {
+            //     for(Attachment att :getAttachmentList){
+            //         Attachment attClone = new Attachment();
+            //         attClone = att.clone();
+            //         attClone.Id = null;
+            //         attClone.Body = att.Body;
+            //         attClone.Name = att.Name;
+            //         attClone.ParentId = reapplyopdMap.get(att.ParentId);
+            //         insertAttachmentCloneList.add(attClone);
+            //     }
+
+            //     if (insertAttachmentCloneList.size() > 0) {
+            //         insert insertAttachmentCloneList;
+            //     }
+            // }
     }
 
     private void updateOppPlan() {
diff --git a/force-app/main/default/classes/RentalApplyFaultHandler.cls b/force-app/main/default/classes/RentalApplyFaultHandler.cls
new file mode 100644
index 0000000..925535a
--- /dev/null
+++ b/force-app/main/default/classes/RentalApplyFaultHandler.cls
@@ -0,0 +1,513 @@
+public without sharing class RentalApplyFaultHandler extends Oly_TriggerHandler {
+    private Map<Id, Rental_Apply_Fault__c> newMap;
+    private Map<Id, Rental_Apply_Fault__c> oldMap;
+    private List<Rental_Apply_Fault__c> newList;
+    private List<Rental_Apply_Fault__c> oldList;
+
+    public RentalApplyFaultHandler(){
+        this.newMap =  (Map<Id, Rental_Apply_Fault__c>) Trigger.newMap;
+        this.oldMap =  (Map<Id, Rental_Apply_Fault__c>) Trigger.oldMap;
+        this.newList = (List<Rental_Apply_Fault__c>) Trigger.new;
+        this.oldList = (List<Rental_Apply_Fault__c>) Trigger.old;
+
+        
+    }
+
+
+    protected override void beforeInsert() {
+
+        //List 澶囧搧鍊熷嚭鐢宠
+        List<String> raListIds = new List<String>();
+        Set<String> radListIds = new Set<String>();
+        //鐢宠鍗旾d, List<鏁呴殰鎶ュ憡>
+        Map<Id, List<Rental_Apply_Fault__c>> raMap = new Map<Id, List<Rental_Apply_Fault__c>>();
+
+        //Name 瑙勫垯 锛� 澶囧搧鍊熷嚭鐢宠鍗� + 001 ~999
+        for(Rental_Apply_Fault__c raf: newList){
+            //鑾峰彇鎵�鏈夌殑鐢宠鍗旾d
+            radListIds.add(raf.Rental_Apply_Equipment_Set_Detail__c);
+        }
+
+        
+        // 鑾峰彇鐢宠鍗曚笅鎵�鏈夋槑缁嗙殑Id
+        List<Rental_Apply_Equipment_Set_Detail__c> raesdList = [SELECT Id,Rental_Apply__c from Rental_Apply_Equipment_Set_Detail__c WHERE Id in :radListIds];
+        for(Rental_Apply_Equipment_Set_Detail__c rae : raesdList){
+            raListIds.add(rae.Rental_Apply__c);
+        }
+
+        raesdList = [SELECT Id,Rental_Apply__c from Rental_Apply_Equipment_Set_Detail__c WHERE Rental_Apply__c in :raListIds];
+        for(Rental_Apply_Equipment_Set_Detail__c rea : raesdList){
+            radListIds.add(rea.Id);
+        }
+
+        system.debug('radListIds===='+radListIds);
+        
+        //鏌ュ嚭 鐢宠鍗曚笅鍏ㄩ儴鐨勬娴嬫姤鍛�
+        List<Rental_Apply_Fault__c> raList = [SELECT Id, Rental_Apply_Equipment_Set_Detail__c, Rental_Apply_Equipment_Set_Detail__r.Rental_Apply__r.Id,Rental_Apply_Equipment_Set_Detail__r.Rental_Apply__r.Name from Rental_Apply_Fault__c where Rental_Apply_Equipment_Set_Detail__c in :radListIds];
+
+        //鏌ュ嚭 鎵�鏈夌敵璇峰崟鏄庣粏
+        Map<Id,Rental_Apply_Equipment_Set_Detail__c> radMap = new Map<Id,Rental_Apply_Equipment_Set_Detail__c>([
+                Select Id,Rental_Apply__r.Name, Rental_Apply__r.Id, Rental_Apply__r.Person_In_Charge__c, Rental_Apply__r.demo_purpose2__c,
+                        Rental_Apply__r.Rental_Assistant__c, Rental_Apply__r.Rental_Assistant2__c, Rental_Apply__r.Loaner_Storage_mail_address__c,
+                        Rental_Apply__r.ZongjianApprovalManager__c, Rental_Apply__r.BuchangApprovalManagerSales__c, SerialNumber_F__c,
+                        Rental_Apply__r.SalesManager__c, Rental_Apply__r.Loaner_centre_mail_address__c, Rental_Apply__r.Hospital__r.Name,
+                        Fixture_Model_No__c, Rental_Apply__r.OCM_dept_category__c, Rental_Apply__r.WorkPlace__c, (select id from Rental_Apply_Equipment_Set_Detail_Fault__r)
+                from Rental_Apply_Equipment_Set_Detail__c 
+                where id in :radListIds]);
+
+        system.debug('radMap===='+radMap);
+        for (Rental_Apply_Fault__c raf : raList) {
+            system.debug('raf.Rental_Apply_Equipment_Set_Detail__c==='+raf.Rental_Apply_Equipment_Set_Detail__c);
+            system.debug('radMap.get(raf.Rental_Apply_Equipment_Set_Detail__c).Rental_Apply__r.Id===' + radMap.get(raf.Rental_Apply_Equipment_Set_Detail__c).Rental_Apply__r.Id);
+            if(raMap.containsKey(radMap.get(raf.Rental_Apply_Equipment_Set_Detail__c).Rental_Apply__r.Id)){
+                raMap.get(radMap.get(raf.Rental_Apply_Equipment_Set_Detail__c).Rental_Apply__r.Id).add(raf);
+            } else {
+                List<Rental_Apply_Fault__c> tempList = new List<Rental_Apply_Fault__c>();
+                tempList.add(raf);
+                raMap.put(radMap.get(raf.Rental_Apply_Equipment_Set_Detail__c).Rental_Apply__r.Id,tempList);
+            }
+        }
+
+        system.debug('raMap===='+raMap);
+
+        for(Rental_Apply_Fault__c raf : newList){
+
+            //褰撳墠鍊熷嚭鏄庣粏Id
+            String radId = raf.Rental_Apply_Equipment_Set_Detail__c;
+            //褰撳墠鐢宠鍗旾d
+            String raId = radMap.get(radId).Rental_Apply__r.Id;
+
+            if( radMap.containsKey(raf.Rental_Apply_Equipment_Set_Detail__c) && radMap.get(raf.Rental_Apply_Equipment_Set_Detail__c).Rental_Apply_Equipment_Set_Detail_Fault__r.size() >= 1 ){
+                raf.addError('宸插瓨鍦ㄦ娴嬪垎鏋愭姤鍛�');
+            }
+
+            if(raMap.containsKey(raId)){
+                
+                Integer rafSize = raMap.get(raId).size() + 1;
+                system.debug('rafSize===='+rafSize);
+                String rafSizeString = '000' + rafSize;
+                String cutString = rafSizeString.substring(rafSizeString.length()-3, rafSizeString.length());
+
+                if(rafSize == 0) {
+                    raf.Name = radMap.get(radId).Rental_Apply__r.Name + '-JCBG-001';
+                }else{
+                    raf.Name = radMap.get(radId).Rental_Apply__r.Name + '-JCBG-' + cutString;
+                }
+            }else{
+                raf.Name = radMap.get(radId).Rental_Apply__r.Name + '-JCBG-001';
+            }
+
+            raf.RentalApplyNo__c = radMap.get(radId).Rental_Apply__r.Name;
+            raf.demo_purpose2__c = radMap.get(radId).Rental_Apply__r.demo_purpose2__c;
+            raf.HospitalText__c = radMap.get(radId).Rental_Apply__r.Hospital__r.Name;
+            raf.Repair_product_body_number__c = radMap.get(radId).SerialNumber_F__c;
+            raf.Fixture_Model_No__c = radMap.get(radId).Fixture_Model_No__c;
+            raf.OCM_dept_category__c = radMap.get(radId).Rental_Apply__r.OCM_dept_category__c;
+            raf.WorkPlace__c = radMap.get(radId).Rental_Apply__r.WorkPlace__c;
+            raf.Person_In_Charge_User__c = radMap.get(radId).Rental_Apply__r.Person_In_Charge__c;
+            raf.Rental_Assistant__c = radMap.get(radId).Rental_Apply__r.Rental_Assistant__c;
+            raf.Rental_Assistant2__c = radMap.get(radId).Rental_Apply__r.Rental_Assistant2__c;
+            raf.ZongjianApprovalManager__c = radMap.get(radId).Rental_Apply__r.ZongjianApprovalManager__c;
+            raf.BuchangApprovalManagerSales__c = radMap.get(radId).Rental_Apply__r.BuchangApprovalManagerSales__c;
+            raf.SalesManager__c = radMap.get(radId).Rental_Apply__r.SalesManager__c;
+            raf.Loaner_centre_mail_address__c = radMap.get(radId).Rental_Apply__r.Loaner_centre_mail_address__c;
+            raf.Loaner_Storage_mail_address__c = radMap.get(radId).Rental_Apply__r.Loaner_Storage_mail_address__c;
+            
+            raf.status__c = '鑽夋涓�';
+        }
+    }
+
+    protected override void afterInsert() {
+        // 缁欏鍝佸嚭鍊熸媴褰撳鍔犺鍐欐潈闄�
+        List<Rental_Apply_Fault__Share> rafShareList = new List<Rental_Apply_Fault__Share>();
+        for (Rental_Apply_Fault__c raf: newList) {
+            // 澶囧搧鍑哄�熸媴褰�
+            if (raf.Person_In_Charge_User__c != null) {
+                Rental_Apply_Fault__Share rafShare = new Rental_Apply_Fault__Share();
+                rafShare.AccessLevel = 'Edit';
+                rafShare.UserOrGroupId = raf.Person_In_Charge_User__c;
+                rafShare.ParentID = raf.Id;
+                rafShareList.add(rafShare);
+            }
+
+            Rental_Apply_Fault__c tempRaf = [select id, ZongjianApprovalManager__r.isActive, BuchangApprovalManagerSales__r.isActive, SalesManager__r.isActive from Rental_Apply_Fault__c where Id =:raf.id ];
+
+            System.debug('-------------temp.ZongjianApprovalManager__r.isActive-------------' + tempRaf.ZongjianApprovalManager__r.isActive);
+            System.debug('-------------raf.ZongjianApprovalManager__r.isActive--------------' + raf.ZongjianApprovalManager__r.isActive);
+
+            // CL4 楂樼骇鎬荤洃
+            if (raf.ZongjianApprovalManager__c != null && tempRaf.ZongjianApprovalManager__r.isActive) {
+                Rental_Apply_Fault__Share rafShare = new Rental_Apply_Fault__Share();
+                rafShare.AccessLevel = 'READ';
+                rafShare.UserOrGroupId = raf.ZongjianApprovalManager__c;
+                rafShare.ParentID = raf.Id;
+                rafShareList.add(rafShare);
+            }
+
+            // CL5 鎬荤洃绾�
+            if (raf.BuchangApprovalManagerSales__c != null && tempRaf.BuchangApprovalManagerSales__r.isActive) {
+                Rental_Apply_Fault__Share rafShare = new Rental_Apply_Fault__Share();
+                rafShare.AccessLevel = 'READ';
+                rafShare.UserOrGroupId = raf.BuchangApprovalManagerSales__c;
+                rafShare.ParentID = raf.Id;
+                rafShareList.add(rafShare);
+            }
+
+            // CL6 缁忕悊绾�
+            if (raf.SalesManager__c != null && tempRaf.SalesManager__r.isActive) {
+                Rental_Apply_Fault__Share rafShare = new Rental_Apply_Fault__Share();
+                rafShare.AccessLevel = 'READ';
+                rafShare.UserOrGroupId = raf.SalesManager__c;
+                rafShare.ParentID = raf.Id;
+                rafShareList.add(rafShare);
+            }
+        }
+
+        if (!rafShareList.isEmpty()) {
+            insert rafShareList;
+        }
+        
+    }
+
+    protected override void beforeUpdate() {
+        Date today = Date.today();
+        List<Rental_Apply_Fault__c> deleteAttachmentIds = new List<Rental_Apply_Fault__c>();
+        Set<Id> deleteIds = new Set<Id>();
+        for(Rental_Apply_Fault__c raf: newList){
+            Rental_Apply_Fault__c oldRaf = oldMap.get(raf.Id);
+
+            if (raf.status__c == '宸插彂閫�' && oldRaf.status__c != '宸插彂閫�') {
+                raf.SendDate__c = today;
+            }
+
+            if (raf.status__c == '宸插弽棣�' && oldRaf.status__c != '宸插弽棣�') {
+                raf.LoanerFeedback_date__c = today;
+
+                if (raf.UseExplain__c == null) {
+                    raf.adderror('銆愬鍝佷娇鐢ㄦ儏鍐佃鏄庛�戜笉鑳戒负绌�');
+                    return;
+                }
+            }
+
+            if ((String.isBlank(raf.AttachmentId1__c) && !String.isBlank(oldRaf.AttachmentId1__c)) 
+                || (String.isBlank(raf.AttachmentId2__c) && !String.isBlank(oldRaf.AttachmentId2__c))) {
+                deleteAttachmentIds.add(raf);
+                if (String.isBlank(raf.AttachmentId1__c) && !String.isBlank(oldRaf.AttachmentId1__c)) {
+                    deleteIds.add(oldRaf.AttachmentId1__c);
+                }
+                if (String.isBlank(raf.AttachmentId2__c) && !String.isBlank(oldRaf.AttachmentId2__c)) {
+                    deleteIds.add(oldRaf.AttachmentId2__c);
+                }
+            }
+        }
+
+
+        if (!deleteAttachmentIds.isEmpty()) {
+            List<Attachment> attList = [SELECT Id,ParentId FROM Attachment WHERE ParentId IN: deleteAttachmentIds Order by ParentId,Id];
+
+            Map<String, List<Attachment>> parentMap = new Map<String, List<Attachment>>();
+            for (Attachment att : attList) {
+                if (!deleteIds.contains(att.Id)) {
+                    if (!parentMap.isEmpty() && parentMap.containskey(att.ParentId)) {
+                        List<Attachment> attTemp = parentMap.get(att.ParentId);
+                        attTemp.add(att);
+                        parentMap.put(att.ParentId, attTemp);
+                    } else {
+                        List<Attachment> attTemp = new List<Attachment>();
+                        attTemp.add(att);
+                        parentMap.put(att.ParentId, attTemp);
+                    }
+                }
+            }
+
+            for (Rental_Apply_Fault__c raf : deleteAttachmentIds) {
+                if (!parentMap.isEmpty() && parentMap.containskey(raf.Id)) {
+                    Rental_Apply_Fault__c oldObj = oldMap.get(raf.Id);
+
+                    List<Attachment> attTemp = parentMap.get(raf.Id);
+                    System.debug('========================================' + attTemp);
+                    if (attTemp.size() == 1) {
+                        raf.AttachmentId1__c = attTemp[0].Id;
+                        raf.AttachmentId2__c = null;
+                    } else {
+                        raf.AttachmentId1__c = attTemp[0].Id;
+                        raf.AttachmentId2__c = attTemp[1].Id;
+                    }
+                }
+            }
+        }
+    }
+
+    protected override void afterUpdate() {
+        Set<Id> feedbackIds = new Set<Id>();
+        Set<Id> sendReportIds = new Set<Id>();
+        for(Rental_Apply_Fault__c raf: newList){
+            Rental_Apply_Fault__c oldRaf = oldMap.get(raf.Id);
+
+            if (raf.status__c == '宸插彂閫�' && oldRaf.status__c != '宸插彂閫�') {
+                sendReportIds.add(raf.Id);
+            }
+
+            if (raf.status__c == '宸插弽棣�' && oldRaf.status__c != '宸插弽棣�') {
+                feedbackIds.add(raf.Id);
+            }
+        }
+
+        if (!sendReportIds.isEmpty()) {
+            //澶囧搧涓績鎺ㄩ�侀偖浠剁粰鐜板満
+            sendEmail(sendReportIds, '1');
+        }
+        
+        if (!feedbackIds.isEmpty()) {
+            //鐜板満鍥炲鍚庢帹閫佺殑閭欢
+            sendEmail(feedbackIds, '2');
+        }
+    }
+
+    //鎺ㄩ�侀偖浠跺鐞�
+    public void sendEmail(Set<Id> rafIds, String flag) {
+        List<Rental_Apply_Fault__c> rafList = [
+                SELECT Id, Person_In_Charge_User__r.Email, Owner.Email, Rental_Assistant__r.Email, Rental_Assistant2__r.Email,
+                        Loaner_centre_mail_address__c, Loaner_Storage_mail_address__c, ZongjianApprovalManager__r.Email,
+                        BuchangApprovalManagerSales__r.Email, SalesManager__r.Email, Salesdept__c, StorageCheckEmail__c
+                FROM Rental_Apply_Fault__c 
+                WHERE Id IN: rafIds];
+
+        EmailTemplate et = null;
+        if (flag == '1') {
+            et = [Select id from EmailTemplate where name = '澶囧搧妫�娴嬪垎鏋愭姤鍛�' limit 1];
+        } else if (flag == '2') {
+            et = [Select id from EmailTemplate where name = '澶囧搧妫�娴嬪垎鏋愭姤鍛婃搷浣滀笉褰撴彁閱掑凡鍥炲' limit 1];
+        } else {
+            return;
+        }
+        
+        List<Messaging.SingleEmailMessage> emails = new List<Messaging.SingleEmailMessage>();
+
+        for (Rental_Apply_Fault__c raf : rafList) {
+            String[] toAddresses = new String[]{};
+            String[] ccAddresses = new String[]{};
+
+            if (flag == '1') {
+                //7鏈�31鏃ユ紨绀烘敞閲� start 
+                //To 鐢宠浜�
+                //toAddresses.add(raf.Person_In_Charge_User__r.Email);
+                //To 澶囧搧璺熻繘鍔╃悊
+                // if(raf.Rental_Assistant__r.Email != null) {
+                //     toAddresses.add(raf.Rental_Assistant__r.Email);
+                // }
+                // if(raf.Rental_Assistant2__r.Email != null){
+                //     toAddresses.add(raf.Rental_Assistant2__r.Email);
+                // }
+
+                //CC   閮ㄥ 澶囧搧瀹℃壒娴佷汉鍛樺強鎵�灞炴�荤洃---cl4鎬荤洃閭 澶囧搧鎬荤獥鍙�
+                //閮ㄥ唴 鐧芥�汇�佸彜閮ㄩ暱锛屾灄閮ㄩ暱   鐧界锛屽彜鑺充附锛屾灄鑺�
+                //     ocmasset鍏叡閭
+                //     妫�娴嬩粨搴撳叕鍏遍偖绠�  
+                 
+                //ccAddresses = System.Label.RentalApplyFaultReplyToBuNei.split(';');
+
+                //cc 閮ㄥ 澶囧搧瀹℃壒娴佷汉鍛樺強鎵�灞炴�荤洃---cl4鎬荤洃閭  澶囧搧鎬荤獥鍙�  
+                //setEmailAddress(raf, ccAddresses);
+                //7鏈�31鏃ユ紨绀烘敞閲� end
+                if(raf.Loaner_Storage_mail_address__c!=null){
+                    ccAddresses.add(raf.Loaner_Storage_mail_address__c);
+                }
+                ccAddresses.add(raf.Loaner_centre_mail_address__c);
+                ccAddresses.add('sunxia@prec-tech.com');
+                toAddresses.add('lijinghuan@prec-tech.com');
+                //ccAddresses.add(raf.StorageCheckEmail__c);
+
+            } else if (flag == '2') {
+                //To ocmasset鍏叡閭 妫�娴嬩粨搴撳叕鍏遍偖绠� 妫�娴嬫媴褰�
+                //7鏈�31鏃ユ紨绀烘敞閲� start
+                // toAddresses.add(raf.Loaner_centre_mail_address__c);
+                // toAddresses.add(raf.Loaner_Storage_mail_address__c);
+                // //toAddresses.add(raf.StorageCheckEmail__c);
+                // toAddresses.add(raf.Owner.Email);
+
+                //閮ㄥ唴  鐧芥�汇�佸彜閮ㄩ暱锛屾灄閮ㄩ暱
+                
+                //ccAddresses = System.Label.RentalApplyFaultReplyToBuNei.split(';');
+
+                //cc 閮ㄥ 澶囧搧瀹℃壒娴佷汉鍛樺強鎵�灞炴�荤洃---cl4鎬荤洃閭  澶囧搧鎬荤獥鍙�  
+                //setEmailAddress(raf, ccAddresses);
+                //7鏈�31鏃ユ紨绀烘敞閲� end
+                ccAddresses.add('sunxia@prec-tech.com');
+                toAddresses.add('lijinghuan@prec-tech.com');
+
+                //Cc 澶囧搧璺熻繘鍔╃悊
+                /*if(raf.Rental_Assistant__r.Email != null) {
+                    ccAddresses.add(raf.Rental_Assistant__r.Email);
+                }
+                if(raf.Rental_Assistant2__r.Email != null){
+                    ccAddresses.add(raf.Rental_Assistant2__r.Email);
+                }*/
+            }
+            
+            Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
+            mail = Messaging.renderStoredEmailTemplate(et.Id, null, raf.Id);
+            mail.setSaveAsActivity(false);
+            mail.setToAddresses(toAddresses);
+            System.debug('=============' + ccAddresses);
+            mail.setCcAddresses(ccAddresses);
+            emails.add(mail);
+        }
+
+        Messaging.sendEmail(emails);
+    }
+
+    public void setEmailAddress(Rental_Apply_Fault__c rafObj, String[] ccAddr) {
+        //鏈儴                绐楀彛    CL5鎬荤洃锛堝鍝佸鎵癸級 CL4楂樼骇鎬荤洃锛堝鍝佸鎵癸級   寤鸿鎶勯�佷汉1  寤鸿鎶勯�佷汉2  澶囨敞
+        //鍗庡寳                璧甸潠鑻�  鏄�                  鍚�                      鎱曟捣闇�       鏉庨阜
+        //涓滃寳                鍏宠礉濡�  鏄�                  鍚�                      璧靛織鎴�       鏉庨阜 
+        //瑗垮寳                寮犲獩濯�  鏄�                  鍚�                      棰滃ぇ搴�       瀹嬬惏
+        //瑗垮崡                璧甸洴闆�  鏄�                  鏄�
+        //鍗庝笢                寰愭槑妤�  鏄�                  鍚�                      瀹嬬湡         鏉ㄥ墤娓�  
+        //鍗庡崡                澶忎繆娲�  鏄�                  鏄�                      淇炴緶         涓ヨ晩鑺�  
+        //MA                  鏃�     鏄�                  鍚�                       闄嗗悏       
+        //SOLUTION            娈蜂匠楠�  鏄�                  鍚�
+        //鍖荤枟鏈嶅姟鏈儴         鏃�      鏄�                                         闄嗗悏锛堢悊璁轰笂娌℃湁锛�
+        //澶栫浜嬩笟鏈儴         鏉庢捣绾�  鏄�                  鍚� 
+        //甯傚満浼佸垝鏈儴         鏃�      鏄�                                         闄嗗悏锛堢悊璁轰笂娌℃湁锛� 
+        //娑堝寲.鍛煎惛鍐呴暅浜嬩笟鏈儴 鏃�      鏄�                 鍚�                      闄嗗悏  
+        //娑堝寲.鍛煎惛棰嗗煙瑙e喅鏂规鏈儴   鏃�   鏄�                                      闄嗗悏锛堢悊璁轰笂娌℃湁锛�  
+        if (rafObj.Salesdept__c == '鍖荤枟鍗庡寳钀ヤ笟鏈儴') {
+            if (rafObj.BuchangApprovalManagerSales__c != null) {
+                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
+            }
+            if (rafObj.SalesManager__c != null) {
+                ccAddr.add(rafObj.SalesManager__r.Email);
+            }
+            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Huabei) && System.Label.RentalApplyFaultReplyTo_Huabei != 'null') {
+                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Huabei.split(';'));
+            }
+        } else if (rafObj.Salesdept__c == '鍖荤枟涓滃寳钀ヤ笟鏈儴') {
+            if (rafObj.BuchangApprovalManagerSales__c != null) {
+                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
+            }
+            if (rafObj.SalesManager__c != null) {
+                ccAddr.add(rafObj.SalesManager__r.Email);
+            }
+            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Dongbei) && System.Label.RentalApplyFaultReplyTo_Dongbei != 'null') {
+                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Dongbei.split(';'));
+            }
+        } else if (rafObj.Salesdept__c == '鍖荤枟瑗垮寳钀ヤ笟鏈儴') {
+            if (rafObj.BuchangApprovalManagerSales__c != null) {
+                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
+            }
+            if (rafObj.SalesManager__c != null) {
+                ccAddr.add(rafObj.SalesManager__r.Email);
+            }
+            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Xibei) && System.Label.RentalApplyFaultReplyTo_Xibei != 'null') {
+                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Xibei.split(';'));
+            }
+        } else if (rafObj.Salesdept__c == '鍖荤枟瑗垮崡钀ヤ笟鏈儴') {
+            if (rafObj.BuchangApprovalManagerSales__c != null) {
+                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
+            }
+            if (rafObj.SalesManager__c != null) {
+                ccAddr.add(rafObj.SalesManager__r.Email);
+            }
+            if (rafObj.ZongjianApprovalManager__c != null) {
+                ccAddr.add(rafObj.ZongjianApprovalManager__r.Email);
+            }
+            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Xinan) && System.Label.RentalApplyFaultReplyTo_Xinan != 'null') {
+                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Xinan.split(';'));
+            }
+        } else if (rafObj.Salesdept__c == '鍖荤枟鍗庝笢钀ヤ笟鏈儴') {
+            if (rafObj.BuchangApprovalManagerSales__c != null) {
+                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
+            }
+            if (rafObj.SalesManager__c != null) {
+                ccAddr.add(rafObj.SalesManager__r.Email);
+            }
+            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Huadong) && System.Label.RentalApplyFaultReplyTo_Huadong != 'null') {
+                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Huadong.split(';'));
+            }
+        } else if (rafObj.Salesdept__c == '鍖荤枟鍗庡崡钀ヤ笟鏈儴') {
+            if (rafObj.BuchangApprovalManagerSales__c != null) {
+                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
+            }
+            if (rafObj.SalesManager__c != null) {
+                ccAddr.add(rafObj.SalesManager__r.Email);
+            }
+            if (rafObj.ZongjianApprovalManager__c != null) {
+                ccAddr.add(rafObj.ZongjianApprovalManager__r.Email);
+            }
+            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Huanan) && System.Label.RentalApplyFaultReplyTo_Huanan != 'null') {
+                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Huanan.split(';'));
+            }
+        } else if (rafObj.Salesdept__c == 'MA鏈儴') {
+            if (rafObj.BuchangApprovalManagerSales__c != null) {
+                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
+            }
+            if (rafObj.SalesManager__c != null) {
+                ccAddr.add(rafObj.SalesManager__r.Email);
+            }
+            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_MA) && System.Label.RentalApplyFaultReplyTo_MA != 'null') {
+                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_MA.split(';'));
+            }
+        } else if (rafObj.Salesdept__c == 'Solution鏈儴') {
+            if (rafObj.BuchangApprovalManagerSales__c != null) {
+                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
+            }
+            if (rafObj.SalesManager__c != null) {
+                ccAddr.add(rafObj.SalesManager__r.Email);
+            }
+            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_SOLUTION) && System.Label.RentalApplyFaultReplyTo_SOLUTION != 'null') {
+                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_SOLUTION.split(';'));
+            }
+        } else if (rafObj.Salesdept__c == '鍖荤枟鏈嶅姟鏈儴') {
+            if (rafObj.BuchangApprovalManagerSales__c != null) {
+                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
+            }
+            if (rafObj.SalesManager__c != null) {
+                ccAddr.add(rafObj.SalesManager__r.Email);
+            }
+            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Yiliao) && System.Label.RentalApplyFaultReplyTo_Yiliao != 'null') {
+                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Yiliao.split(';'));
+            }
+        } else if (rafObj.Salesdept__c == '澶栫浜嬩笟鏈儴') {
+            if (rafObj.BuchangApprovalManagerSales__c != null) {
+                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
+            }
+            if (rafObj.SalesManager__c != null) {
+                ccAddr.add(rafObj.SalesManager__r.Email);
+            }
+            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Waike) && System.Label.RentalApplyFaultReplyTo_Waike != 'null') {
+                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Waike.split(';'));
+            }
+        } else if (rafObj.Salesdept__c == '甯傚満浼佸垝鏈儴') {
+            if (rafObj.BuchangApprovalManagerSales__c != null) {
+                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
+            }
+            if (rafObj.SalesManager__c != null) {
+                ccAddr.add(rafObj.SalesManager__r.Email);
+            }
+            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_Shichang) && System.Label.RentalApplyFaultReplyTo_Shichang != 'null') {
+                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_Shichang.split(';'));
+            }
+        } else if (rafObj.Salesdept__c == '娑堝寲路鍛煎惛鍐呴暅浜嬩笟鏈儴') {
+            if (rafObj.BuchangApprovalManagerSales__c != null) {
+                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
+            }
+            if (rafObj.SalesManager__c != null) {
+                ccAddr.add(rafObj.SalesManager__r.Email);
+            }
+            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_HXNJ) && System.Label.RentalApplyFaultReplyTo_HXNJ != 'null') {
+                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_HXNJ.split(';'));
+            }
+        } else if (rafObj.Salesdept__c == '娑堝寲路鍛煎惛棰嗗煙瑙e喅鏂规鏈儴') {
+            if (rafObj.BuchangApprovalManagerSales__c != null) {
+                ccAddr.add(rafObj.BuchangApprovalManagerSales__r.Email);
+            }
+            if (rafObj.SalesManager__c != null) {
+                ccAddr.add(rafObj.SalesManager__r.Email);
+            }
+            if (!String.isBlank(System.Label.RentalApplyFaultReplyTo_HXLY) && System.Label.RentalApplyFaultReplyTo_HXLY != 'null') {
+                ccAddr.addAll(System.Label.RentalApplyFaultReplyTo_HXLY.split(';'));
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/classes/RentalApplyFaultHandler.cls-meta.xml b/force-app/main/default/classes/RentalApplyFaultHandler.cls-meta.xml
new file mode 100644
index 0000000..541584f
--- /dev/null
+++ b/force-app/main/default/classes/RentalApplyFaultHandler.cls-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>50.0</apiVersion>
+    <status>Active</status>
+</ApexClass>
diff --git a/force-app/main/default/classes/RepairAndQISToPDFController.cls b/force-app/main/default/classes/RepairAndQISToPDFController.cls
index 990068c..eadeb63 100644
--- a/force-app/main/default/classes/RepairAndQISToPDFController.cls
+++ b/force-app/main/default/classes/RepairAndQISToPDFController.cls
@@ -57,7 +57,7 @@
         PageReference pdfPage ;
         
         List<Repair__c> updateRpr = new List<Repair__c>();
-        List<Attachment> attachments = new List<Attachment>();
+        // List<Attachment> attachments = new List<Attachment>();
         for(Repair__c re : repList){
             String generatedFields = re.GeneratedPDFField__c;
             if (checkFieldisGeneratedPDF('ProblemDescription__c',re)) {
@@ -75,15 +75,29 @@
             } else {
                 pdfBody = pdfPage.getContentAsPDF();
             }
-            Attachment attach = new Attachment();
-            attach.Body = pdfBody;
-            attach.Name = re.name + '_' + 'Problem_Discription.pdf';
-            attach.ParentId = re.id;
-            attachments.add(attach);
+            ContentVersion version = new ContentVersion();
+            version.VersionData = pdfBody;
+            version.Title = re.name + '_' + 'Problem_Discription.pdf';
+            version.PathOnClient = re.name + '_' + 'Problem_Discription.pdf'+'.pdf';
+            insert version;
+            Id docId = [SELECT ContentDocumentId FROM ContentVersion WHERE Id = :version.Id].ContentDocumentId;
+            ContentDocumentLink cdl = new ContentDocumentLink();
+            cdl.ContentDocumentId = docId;
+            cdl.LinkedEntityId = re.id;
+            cdl.ShareType = 'I';
+            cdl.visibility = 'AllUser';
+            insert cdl;
+
+            // Attachment attach = new Attachment();
+            // attach.Body = pdfBody;
+            // attach.Name = re.name + '_' + 'Problem_Discription.pdf';
+            // attach.ParentId = re.id;
+            // attachments.add(attach);
             re.GeneratedPDFField__c = 'ProblemDescription__c';
             updateRpr.add(re);
         }
-        insert attachments;
+        
+        // insert attachments;
         update updateRpr;
         return null;
     }
@@ -94,7 +108,7 @@
         System.debug('1111111111111111111111111111111111111111111111111generateAttachment鎵ц浜�-----------');
 
         List<QIS_Report__c> updateQis = new List<QIS_Report__c>();
-        List<Attachment> attachments = new List<Attachment>();
+        // List<Attachment> attachments = new List<Attachment>();
         PageReference pdfPage ;
         for(QIS_Report__c qis : qisReports){
 
@@ -126,16 +140,30 @@
                 } else {
                    pdfBody = pdfPage.getContentAsPDF();
                 }
-                Attachment attach = new Attachment();
-                attach.Body = pdfBody;
+                ContentVersion version = new ContentVersion();
+                version.VersionData = pdfBody;
+                // Attachment attach = new Attachment();
+                // attach.Body = pdfBody;
                 if ('problem_detail_photo__c'.equals(apiName)) {
-                    attach.Name =  substringApiName(qis.name) + '_Problem_Discription.pdf';
+                    // attach.Name =  substringApiName(qis.name) + '_Problem_Discription.pdf';
+                    version.Title = substringApiName(qis.name) + '_Problem_Discription.pdf';
                 }else {
-                    attach.Name = substringApiName(qis.name) + '_' + 'Problem_' + apiName.substring(0,apiName.length()-3) + '.pdf';
+                    // attach.Name = substringApiName(qis.name) + '_' + 'Problem_' + apiName.substring(0,apiName.length()-3) + '.pdf';
+                    version.Title = substringApiName(qis.name) + '_' + 'Problem_' + apiName.substring(0,apiName.length()-3) + '.pdf';
                 }
-                attach.ParentId = qis.id;
+                version.PathOnClient = substringApiName(qis.name) + '_' + 'Problem_' + apiName.substring(0,apiName.length()-3) + '.pdf'+'.pdf';
+                // attach.ParentId = qis.id;
+                // attachments.add(attach);
+                
+                insert version;
+                Id docId = [SELECT ContentDocumentId FROM ContentVersion WHERE Id = :version.Id].ContentDocumentId;
+                ContentDocumentLink cdl = new ContentDocumentLink();
+                cdl.ContentDocumentId = docId;
+                cdl.LinkedEntityId = qis.id;
+                cdl.ShareType = 'I';
+                cdl.visibility = 'AllUser';
+                insert cdl;
 
-                attachments.add(attach);
                 if (generatedFields == null) {
                     qis.GeneratedPDFField__c = apiName;
                 }else {
@@ -144,7 +172,7 @@
             }
             updateQis.add(qis);
         }
-        insert attachments;
+        // insert attachments;
         update updateQis;
         
         return null;
diff --git a/force-app/main/default/pages/ReceivingNotePDF.page b/force-app/main/default/pages/ReceivingNotePDF.page
index 8cebb19..969dd2f 100644
--- a/force-app/main/default/pages/ReceivingNotePDF.page
+++ b/force-app/main/default/pages/ReceivingNotePDF.page
@@ -41,7 +41,7 @@
             <!-- 鍚堝悓缂栫爜 -->
             <td style="padding: 0;box-sizing: border-box;text-align:left;font-size:13px;width:13%;" colspan="1">鍚堝悓缂栫爜锛�</td>
             <td style="padding: 0;box-sizing: border-box;text-align:left;font-size:13px;width:20%;" colspan="1">{!receivingNoteHeadShow.Sales_order_number__c}</td>
-            <td rowspan="6" style="box-sizing: border-box;text-align:right" colspan="1"><img style="width: 90px; height: 90px;padding: 0px;margin-top: 0mm;" src="{!'/servlet/servlet.FileDownload?file=' + receivingNoteHeadShow.QRId__c}" /></td>
+            <td rowspan="6" style="box-sizing: border-box;text-align:right" colspan="1"><img style="width: 90px; height: 90px;padding: 0px;margin-top: 0mm;" src="{!'/sfc/servlet.shepherd/version/download/' + receivingNoteHeadShow.QRId__c}" /></td>
         </tr>
         <tr>
             <!-- 璁㈠崟缂栫爜 -->
diff --git a/force-app/main/default/pages/ReceivingNoteQR.page b/force-app/main/default/pages/ReceivingNoteQR.page
index 6980fa8..dd1b059 100644
--- a/force-app/main/default/pages/ReceivingNoteQR.page
+++ b/force-app/main/default/pages/ReceivingNoteQR.page
@@ -13,29 +13,59 @@
 
             sforce.connection.sessionId = '{!GETSESSIONID()}';
             //20210312 you WLIG-BV8CHF start
-            var record = sforce.connection.query("select id from Attachment where ParentId = \'{!ReceivingNote__c.Id}\' and name = \'QRCode-{!ReceivingNote__c.ReceivingNoteNo_New__c}\'");
+            // var record = sforce.connection.query("select id from Attachment where ParentId = \'{!ReceivingNote__c.Id}\' and name = \'QRCode-{!ReceivingNote__c.ReceivingNoteNo_New__c}\'");
+            var record = sforce.connection.query("select Id,ContentDocumentId from ContentDocumentLink where LinkedEntityId = \'{!ReceivingNote__c.Id}\'");
+            if(record.size > 0){
+                var records = record.getArray("records");
+                var idList = records.map(obj => "'" + obj.ContentDocumentId + "'").join(",");
+                record = sforce.connection.query("select Id from ContentDocument where Id in (" + idList + ") and Title = \'QRCode-{!ReceivingNote__c.ReceivingNoteNo_New__c}\'");
+            }   
             //20210312 you WLIG-BV8CHF end
             // 涓嶅瓨鍦╭r鏂囦欢鏃讹紝鏂扮敓鎴愪竴涓紝骞惰繛鍒版竻鍗曚笂
             if (record.size == 0) {
-                var atta = new sforce.SObject("Attachment");
-                //20210312 you WLIG-BV8CHF start
-                atta.Name = "QRCode-{!ReceivingNote__c.ReceivingNoteNo_New__c}";
-                //20210312 you WLIG-BV8CHF end
-                atta.ParentId = "{!ReceivingNote__c.Id}";
-                atta.Body = src;
-                var result = sforce.connection.create([atta]);
+                var version = new sforce.SObject("ContentVersion");
+                version.VersionData = src;
+                version.Title = "QRCode-{!ReceivingNote__c.ReceivingNoteNo_New__c}";
+                version.ContentLocation = 's';
+                version.PathOnClient= "QRCode-{!ReceivingNote__c.ReceivingNoteNo_New__c}.jpg";
+                var versionResult = sforce.connection.create([version]);
+                record = sforce.connection.query("SELECT ContentDocumentId FROM ContentVersion WHERE Id =\'" + versionResult[0].id + "\'");
+                var records = record.getArray("records");
+                var link = new sforce.SObject("ContentDocumentLink");
+                link.ContentDocumentId = records[0].ContentDocumentId;
+                link.LinkedEntityId = "{!ReceivingNote__c.Id}";
+                link.ShareType = 'I';
+                link.Visibility = 'AllUsers';
+                var result = sforce.connection.create([link]);
+
+
+
+                // var atta = new sforce.SObject("Attachment");
+                // //20210312 you WLIG-BV8CHF start
+                // atta.Name = "QRCode-{!ReceivingNote__c.ReceivingNoteNo_New__c}";
+                // //20210312 you WLIG-BV8CHF end
+                // atta.ParentId = "{!ReceivingNote__c.Id}";
+                // atta.Body = src;
+                // var result = sforce.connection.create([atta]);
 
                 var es = new sforce.SObject("ReceivingNote__c");
                 es.Id = "{!ReceivingNote__c.Id}";
-                es.QRId__c = result[0].id;
+                es.QRId__c = versionResult[0].id;
                 result = sforce.connection.update([es]);
-            // 瀛樺湪qr鏃讹紝缁戝埌娓呭崟涓�
+            
             } else {
                 var records = record.getArray("records");
-                var es = new sforce.SObject("ReceivingNote__c");
-                es.Id = "{!ReceivingNote__c.Id}";
-                es.QRId__c = records[0].Id;
-                result = sforce.connection.update([es]);
+                var version = new sforce.SObject("ContentVersion");
+                version = sforce.connection.query("select Id,ContentDocumentId from ContentVersion where ContentDocumentId = \'" + records[0].id + "\'");
+                version = version.getArray("records"); 
+                // 瀛樺湪qr鏃讹紝缁戝埌娓呭崟涓�
+                if(version[0].Id != "{!ReceivingNote__c.QRId__c}"){
+                    var es = new sforce.SObject("ReceivingNote__c");
+                    es.Id = "{!ReceivingNote__c.Id}";
+                    es.QRId__c = version[0].id;
+                    result = sforce.connection.update([es]);
+                }
+                
             }
         }
 
diff --git a/force-app/main/default/pages/ReceivingNoteWaitingReceipt.page b/force-app/main/default/pages/ReceivingNoteWaitingReceipt.page
index e869658..1ad77b2 100644
--- a/force-app/main/default/pages/ReceivingNoteWaitingReceipt.page
+++ b/force-app/main/default/pages/ReceivingNoteWaitingReceipt.page
@@ -5,6 +5,33 @@
     <apex:stylesheet value="{!URLFOR($Resource.ReceivingNotePageCss)}"/>
     <apex:includeScript value="{!URLFOR($Resource.ReceivingNotePageJS)}"/>
     <apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/>
+    <apex:stylesheet value="{!URLFOR($Resource.StyleUtilCss)}"/>
+    <style type="text/css">
+        table.list .col_ReceivingNoteDetailNo__c {width:100px;}
+        table.list .col_OT_CODE__c {width:100px;}
+        table.list .col_Fixture_Model_No_F__c {width:100px;}
+        table.list .col_Fixture_Model_Name_F__c {width:100px;}
+        table.list .col_Fixture_Arrival_Process__c {width:100px;}
+        table.list .col_Fixture_Arrival_Product__c {width:200px;}
+        table.list .col_Internal_Asset_number_key__c {width:100px;}
+        table.list .col_SerialNumber_Origin__c {width:100px;}
+        table.list .col_SerialNumber__c {width:100px;}
+        table.list .col_PeriodOfUse_Old_F__c {width:100px;}
+        table.list .col_PeriodOfUse_Final__c {width:100px;}
+        table.list .col_Packing_list_Fixture_F__c {width:100px;}
+        table.list .col_RND_Status__c {width:100px;}
+        table.list .col_Asset_loaner_category_F__c {width:100px;}
+        table.list .col_EquipmentSet_Managment_Code__c {width:100px;}
+        table.list .col_Salesdepartment__c {width:100px;}
+        table.list .col_SalesProvince__c {width:100px;}
+        table.list .col_Product_category__c {width:100px;}
+        table.list .col_Equipment_Type__c {width:100px;}
+        table.list .col_Manage_type__c {width:100px;}
+        table.list .col_unknow_serial_NO_product__c {width:100px;}
+        table.list .col_Loaner_accsessary__c {width:100px;}
+        table.list .col_Change_Point__c {width:100px;}
+        /* table.list .noClick .col_DataConfirmation__c {width:100px;} */
+    </style>
     <apex:form >
         <!-- 姝ゅ闅愬紡鐢熸垚浜岀淮鐮佸浘鐗囷紝闃叉PDF椤典笂鐨勪簩缁寸爜宕╁潖 -->
         <apex:includeScript value="{!URLFOR($Resource.qrcode)}"/>
@@ -20,28 +47,61 @@
 
                 sforce.connection.sessionId = '{!GETSESSIONID()}';
                  // 20210312 you WLIG-BV8CHF start
-                var record = sforce.connection.query("select id from Attachment where ParentId = \'{!pageB.rn.Id}\' and name = \'QRCode-{!pageB.rn.ReceivingNoteNo_New__c}\'");
-                 // 20210312 you WLIG-BV8CHF end
+               // var record = sforce.connection.query("select id from Attachment where ParentId = \'{!pageB.rn.Id}\' and name = \'QRCode-{!pageB.rn.ReceivingNoteNo_New__c}\'");
+               var record = sforce.connection.query("select Id,ContentDocumentId from ContentDocumentLink where LinkedEntityId = \'{!pageB.rn.Id}\'");
+                if(record.size > 0){
+                    var records = record.getArray("records");
+                    var idList = records.map(obj => "'" + obj.ContentDocumentId + "'").join(",");
+                    record = sforce.connection.query("select Id from ContentDocument where Id in (" + idList + ") and Title =  \'QRCode-{!pageB.rn.ReceivingNoteNo_New__c}\'");
+                }   
+                // 20210312 you WLIG-BV8CHF end
                 // 涓嶅瓨鍦╭r鏂囦欢鏃讹紝鏂扮敓鎴愪竴涓紝骞惰繛鍒版竻鍗曚笂
                 if (record.size == 0) {
-                    var atta = new sforce.SObject("Attachment");
-                    // 20210312 you WLIG-BV8CHF start
-                    atta.Name = "QRCode-{!pageB.rn.ReceivingNoteNo_New__c}";
-                    // 20210312 you WLIG-BV8CHF end
-                    atta.ParentId = "{!pageB.rn.Id}";
-                    atta.Body = src;
-                    var result = sforce.connection.create([atta]);
+                    var version = new sforce.SObject("ContentVersion");
+                    version.VersionData = src;
+                    version.Title = "QRCode-{!pageB.rn.ReceivingNoteNo_New__c}";
+                    version.ContentLocation = 's';
+                    version.PathOnClient= "QRCode-{!pageB.rn.ReceivingNoteNo_New__c}.jpg";
+                    var versionResult = sforce.connection.create([version]);
+                    record = sforce.connection.query("SELECT ContentDocumentId FROM ContentVersion WHERE Id =\'" + versionResult[0].id + "\'");
+                    var records = record.getArray("records");
+                    var link = new sforce.SObject("ContentDocumentLink");
+                    link.ContentDocumentId = records[0].ContentDocumentId;
+                    link.LinkedEntityId = "{!pageB.rn.Id}";
+                    link.ShareType = 'I';
+                    link.Visibility = 'AllUsers';
+                    var result = sforce.connection.create([link]);
+
+
+                    // var atta = new sforce.SObject("Attachment");
+                    // // 20210312 you WLIG-BV8CHF start
+                    // atta.Name = "QRCode-{!pageB.rn.ReceivingNoteNo_New__c}";
+                    // // 20210312 you WLIG-BV8CHF end
+                    // atta.ParentId = "{!pageB.rn.Id}";
+                    // atta.Body = src;
+                    // var result = sforce.connection.create([atta]);
                     var es = new sforce.SObject("ReceivingNote__c");
                     es.Id = "{!pageB.rn.Id}";
-                    es.QRId__c = result[0].id;
+                    es.QRId__c = versionResult[0].id;
                     result = sforce.connection.update([es]);
                 // 瀛樺湪qr鏃讹紝缁戝埌娓呭崟涓�
                 } else {
                     var records = record.getArray("records");
+                    var version = new sforce.SObject("ContentVersion");
+                    version = sforce.connection.query("select Id,ContentDocumentId from ContentVersion where ContentDocumentId = \'" + records[0].id + "\'");
+                    version = version.getArray("records"); 
+                    
                     var es = new sforce.SObject("ReceivingNote__c");
                     es.Id = "{!pageB.rn.Id}";
-                    es.QRId__c = records[0].Id;
+                    es.QRId__c = versionResult[0].id;
                     result = sforce.connection.update([es]);
+                    
+                    
+                    // var records = record.getArray("records");
+                    // var es = new sforce.SObject("ReceivingNote__c");
+                    // es.Id = "{!pageB.rn.Id}";
+                    // es.QRId__c = records[0].Id;
+                    // result = sforce.connection.update([es]);
                 }
 
             }
@@ -223,7 +283,8 @@
                             </td>
                         </tr>
                     </table>
-                    <table class="searchTable">
+                    <table class="searchTable" style="margin-bottom:5px;margin-top:5px;">
+                        <!-- <tr> -->
                         <tr>
                             <td>
                                 鏀惰揣鐘舵��:
@@ -262,75 +323,60 @@
 
                     <table class="searchTable" style="width:100%">
                         <tr>
-                            <td>
+                            <td style="padding-top:5px;">
                                 <!-- 鎵�鍦ㄥ湴鍖�(鏈儴) -->
                                 {!$ObjectType.ReceivingNoteDetail__c.fields.Salesdepartment__c.label}
                                 <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Salesdepartment__c.InlineHelpText}"/>
-                                <apex:selectList id="appSalesdepartment" value="{!pageB.assetInput.Salesdepartment__c}" size="1">
+                                <!-- lightning鏀归��   zyh   start -->
+                                <br />
+                                <!-- <apex:selectList id="appSalesdepartment" value="{!pageB.assetInput.Salesdepartment__c}" size="1"> -->
+                                <apex:selectList style="width:180px;" id="appSalesdepartment" value="{!pageB.assetInput.Salesdepartment__c}" size="1">
+                                <!-- lightning鏀归��   zyh   end -->
                                     <apex:selectOptions value="{!SalesdepartmentOps}"/>
                                 </apex:selectList>
                             </td>
                                 <!-- 鎵�鍦ㄥ湴鍖�(鐪�) -->
-                            <td>
+                            <td style="padding-top:5px;">
                                 {!$ObjectType.Asset.fields.SalesProvince__c.label}
                                 <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.SalesProvince__c.InlineHelpText}"/>
-                                <apex:selectList id="appSalesProvince" value="{!pageB.assetInput.SalesProvince__c}" size="1">
+                                <!-- lightning鏀归��   zyh   start -->
+                                <br />
+                                <!-- <apex:selectList id="appSalesProvince" value="{!pageB.assetInput.SalesProvince__c}" size="1"> -->
+                                <apex:selectList style="width:180px;" id="appSalesProvince" value="{!pageB.assetInput.SalesProvince__c}" size="1">
+                                <!-- lightning鏀归��   zyh   end -->
                                     <apex:selectOptions value="{!SalesProvinceOps}"/>
                                 </apex:selectList>
                             </td>
-                            <td>
+                            <td style="padding-top:5px;">
                                 <!-- 浜у搧鍒嗙被(GI/SP) -->
                                 {!$ObjectType.Asset.fields.Product_category__c.label}:
                                 <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Product_category__c.InlineHelpText}"/>
-                                <apex:selectList id="appProduct_category" value="{!pageB.assetInput.Product_category__c}" size="1">
+                                <!-- lightning鏀归��   zyh   start -->
+                                <br />
+                                <!-- <apex:selectList id="appProduct_category" value="{!pageB.assetInput.Product_category__c}" size="1"> -->
+                                <apex:selectList style="width:180px;" id="appProduct_category" value="{!pageB.assetInput.Product_category__c}" size="1">
+                                <!-- lightning鏀归��   zyh   end -->
                                     <apex:selectOptions value="{!ProductCategoryOps}"/>
                                 </apex:selectList>
                             </td>
-                            <td>
+                            <td style="padding-top:5px;">
                                 <!-- 澶囧搧鍒嗙被 -->
                                 {!$ObjectType.Asset.fields.Equipment_Type__c.label}:
                                 <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Equipment_Type__c.InlineHelpText}"/>
-                                <apex:selectList id="appEquipment_Type" value="{!pageB.assetInput.Equipment_Type__c}" size="1">
+                                <!-- lightning鏀归��   zyh   start -->
+                                <br />
+                                <!-- <apex:selectList id="appEquipment_Type" value="{!pageB.assetInput.Equipment_Type__c}" size="1"> -->
+                                <apex:selectList style="width:180px;" id="appEquipment_Type" value="{!pageB.assetInput.Equipment_Type__c}" size="1">
+                                <!-- lightning鏀归��   zyh   end -->
                                     <apex:selectOptions value="{!EquipmentTypeOps}"/>
                                 </apex:selectList>
                             </td>
-                            <td>
-                                <!-- 绠$悊绉嶇被 -->
-                                {!$ObjectType.Asset.fields.Manage_type__c.label}:
-                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Manage_type__c.InlineHelpText}"/>
-                                <apex:selectList id="appManage_type" value="{!pageB.assetInput.Manage_type__c}" size="1">
-                                    <apex:selectOptions value="{!ManageTypeOps}"/>
-                                </apex:selectList>
-                            </td>
-                            <td>
-                                <!-- 鏃犳満韬彿鐮佽澶� -->
-                                {!$ObjectType.Asset.fields.unknow_serial_NO_product__c.label}:
-                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.unknow_serial_NO_product__c.InlineHelpText}"/>
-                                <apex:selectList id="appunknow_serial_NO_product" value="{!pageB.assetInput.unknow_serial_NO_product__c}" size="1">
-                                    <apex:selectOptions value="{!UnknowSerialNOProductOps}"/>
-                                </apex:selectList>
-                            </td>
-                            <td>
-                                <!-- 澶囧搧鐢ㄩ�旈檮灞炲搧 -->
-                                {!$ObjectType.Asset.fields.Loaner_accsessary__c.label}:
-                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Loaner_accsessary__c.InlineHelpText}"/>
-                                <apex:selectList id="appLoaner_accsessary" value="{!pageB.assetInput.Loaner_accsessary__c}" size="1">
-                                    <apex:selectOptions value="{!LoanerAccsessaryOps}"/>
-                                </apex:selectList>
-                            </td>
-                            <td>
-                                <!-- 澶囧搧鍏ュ簱浜у搧 -->
-                                {!$ObjectType.ReceivingNoteDetail__c.fields.Fixture_Arrival_Product__c.label}:
-                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Fixture_Arrival_Product__c.InlineHelpText}"/>
-                                <apex:inputField id="appLoaner_fixture_arrival_product" value="{!rndInfo[0].Fixture_Arrival_Product__c}"/>
-                                <!-- value="{!pageB.assetInput.Fixture_Arrival_Product__c}" -->
-                            </td>
-                            <td>
+                            <td rowspan="2">
                                 <span style="margin-left: 10px;">
-                                    <apex:commandButton value="缂栬緫" onclick="blockme();" action="{!changeFixModel}" reRender="allForm,checEventFrame" oncomplete="unblockUI();windowResize();"/><!-- 20210804 ljh add checEventFrame -->
+                                    <apex:commandButton value="缂栬緫" style="margin-top: 10px;" onclick="blockme();" action="{!changeFixModel}" reRender="allForm,checEventFrame" oncomplete="unblockUI();windowResize();"/><!-- 20210804 ljh add checEventFrame -->
                                 </span>
                                 <span style="margin-left: 10px;">
-                                    <apex:commandButton value="閫傜敤" onclick="applyJs();return false;"/>
+                                    <apex:commandButton value="閫傜敤" style="margin-top: 10px;" onclick="applyJs();return false;"/>
                                     <script type="text/javascript">
                                     // 閫傜敤鎸夐挳
                                     function applyJs() {
@@ -559,20 +605,77 @@
                                 </script>
                                 </span>
                                 <span style="margin-left: 10px;">
-                                    <apex:commandButton value="閫夋嫨閰嶅" action="{!selectRNS}" rendered="{!showSelectRnsButton}"/>
+                                    <apex:commandButton value="淇濆瓨" style="margin-top: 10px;" onclick="blockme();" action="{!saveRecord}"/>
                                 </span>
                                 <span style="margin-left: 10px;">
-                                    <apex:commandButton value="鍨嬪彿鎻愰啋閭欢" onclick="return setEmailBody();" />
+                                    <apex:commandButton value="杩斿洖" style="margin-top: 10px;" onclick="window.close();"/>
+                                </span>
+                                <!-- lightning鏀归��   zyh   start -->
+                                <br />
+                                <!-- lightning鏀归��   zyh   end -->
+                                <span style="margin-left: 10px;">
+                                    <apex:commandButton value="閫夋嫨閰嶅" style="margin-top: 10px;" action="{!selectRNS}" rendered="{!showSelectRnsButton}"/>
                                 </span>
                                 <span style="margin-left: 10px;">
-                                    <apex:commandButton value="淇濆瓨" onclick="blockme();" action="{!saveRecord}"/>
+                                    <apex:commandButton value="鍨嬪彿鎻愰啋閭欢" style="margin-top: 10px;" onclick="return setEmailBody();" />
                                 </span>
+                                <!-- lightning鏀归��   zyh   start -->
+                                <!-- <br /> -->
+                                <!-- lightning鏀归��   zyh   end -->
                                 <span style="margin-left: 10px;">
-                                    <apex:commandButton value="鎵撳嵃鏀惰揣娓呭崟" onclick="window.open('/apex/ReceivingNotePDF?rnid={!parId}');return false;"/>
+                                    <apex:commandButton value="鎵撳嵃鏀惰揣娓呭崟" style="margin-top: 10px;" onclick="window.open('/apex/ReceivingNotePDF?rnid={!parId}');return false;"/>
                                 </span>
-                                <span style="margin-left: 10px;">
-                                    <apex:commandButton value="杩斿洖" onclick="window.close();"/>
-                                </span>
+                            </td>
+                        <!-- lightning鏀归��   zyh   start -->
+                        </tr>
+                        <tr>
+                        <!-- lightning鏀归��   zyh   end -->
+                            <td style="padding-top:5px;">
+                                <!-- 绠$悊绉嶇被 -->
+                                {!$ObjectType.Asset.fields.Manage_type__c.label}:
+                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Manage_type__c.InlineHelpText}"/>
+                                <!-- lightning鏀归��   zyh   start -->
+                                <br />
+                                <!-- <apex:selectList id="appManage_type" value="{!pageB.assetInput.Manage_type__c}" size="1"> -->
+                                <apex:selectList style="width:180px;" id="appManage_type" value="{!pageB.assetInput.Manage_type__c}" size="1">
+                                <!-- lightning鏀归��   zyh   end -->
+                                    <apex:selectOptions value="{!ManageTypeOps}"/>
+                                </apex:selectList>
+                            </td>
+                            <td style="padding-top:5px;">
+                                <!-- 鏃犳満韬彿鐮佽澶� -->
+                                {!$ObjectType.Asset.fields.unknow_serial_NO_product__c.label}:
+                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.unknow_serial_NO_product__c.InlineHelpText}"/>
+                                <!-- lightning鏀归��   zyh   start -->
+                                <br />
+                                <!-- <apex:selectList id="appunknow_serial_NO_product" value="{!pageB.assetInput.unknow_serial_NO_product__c}" size="1"> -->
+                                <apex:selectList style="width:180px;" id="appunknow_serial_NO_product" value="{!pageB.assetInput.unknow_serial_NO_product__c}" size="1">
+                                <!-- lightning鏀归��   zyh   end -->
+                                    <apex:selectOptions value="{!UnknowSerialNOProductOps}"/>
+                                </apex:selectList>
+                            </td>
+                            <td style="padding-top:5px;">
+                                <!-- 澶囧搧鐢ㄩ�旈檮灞炲搧 -->
+                                {!$ObjectType.Asset.fields.Loaner_accsessary__c.label}:
+                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Loaner_accsessary__c.InlineHelpText}"/>
+                                <!-- lightning鏀归��   zyh   start -->
+                                <br />
+                                <!-- <apex:selectList id="appLoaner_accsessary" value="{!pageB.assetInput.Loaner_accsessary__c}" size="1"> -->
+                                <apex:selectList style="width:180px;" id="appLoaner_accsessary" value="{!pageB.assetInput.Loaner_accsessary__c}" size="1">
+                                <!-- lightning鏀归��   zyh   end -->
+                                    <apex:selectOptions value="{!LoanerAccsessaryOps}"/>
+                                </apex:selectList>
+                            </td>
+                            <td style="padding-top:5px;">
+                                <!-- 澶囧搧鍏ュ簱浜у搧 -->
+                                {!$ObjectType.ReceivingNoteDetail__c.fields.Fixture_Arrival_Product__c.label}:
+                                <img src="/img/s.gif" alt="" class="helpOrb" title="{!$ObjectType.ReceivingNoteDetail__c.fields.Fixture_Arrival_Product__c.InlineHelpText}"/>
+                                <!-- lightning鏀归��   zyh   start -->
+                                <br />
+                                <!-- <apex:inputField id="appLoaner_fixture_arrival_product" value="{!rndInfo[0].Fixture_Arrival_Product__c}"/> -->
+                                <apex:inputField style="width:180px;" id="appLoaner_fixture_arrival_product" value="{!rndInfo[0].Fixture_Arrival_Product__c}"/>
+                                <!-- lightning鏀归��   zyh   end -->
+                                <!-- value="{!pageB.assetInput.Fixture_Arrival_Product__c}" -->
                             </td>
                         </tr>
                     </table>
@@ -676,7 +779,7 @@
                                     </apex:outputPanel>
 
                                     <!-- <apex:inputField value="{!var.rnd[info.value]}" onchange="setChangeFlg('{!var.lineNo}')" rendered="{!info.value != 'Asset_loaner_category__c' || var.haveAsset }" style="{!IF('Fixture_Arrival_Product__c' == info.value, 'width:70%;', '')}"/> -->
-                                    <apex:inputField value="{!var.rnd[info.value]}" onchange="setChangeFlg('{!var.lineNo}')" rendered="{!(info.value != 'Asset_loaner_category__c' || var.haveAsset) && ((var.rnd['Asset_loaner_category_F__c'] =='鍥哄畾璧勪骇' && info.value != 'unknow_serial_NO_product__c' && info.value != 'Manage_type__c') || var.rnd['Asset_loaner_category_F__c'] !='鍥哄畾璧勪骇')}" style="{!IF('Fixture_Arrival_Product__c' == info.value, 'width:70%;', '')}"/>
+                                    <apex:inputField value="{!var.rnd[info.value]}" onchange="setChangeFlg('{!var.lineNo}')" rendered="{!(info.value != 'Asset_loaner_category__c' || var.haveAsset) && ((var.rnd['Asset_loaner_category_F__c'] =='鍥哄畾璧勪骇' && info.value != 'unknow_serial_NO_product__c' && info.value != 'Manage_type__c') || var.rnd['Asset_loaner_category_F__c'] !='鍥哄畾璧勪骇')}" style="{!IF('Fixture_Arrival_Product__c' == info.value || 'EquipmentSet_Managment_Code__c' == info.value, 'width:90%;', '')}"/>
                                     <!-- 20210804 ljh add id -->
                                 <!-- update by rentx 20210727 end 鏂板搧鏀惰揣_闆嗕腑澶囧搧_寤虹珛鏁版嵁閫昏緫闄愬埗  -->
                                 </apex:outputPanel>
diff --git a/force-app/main/default/pages/RentalApplyBR.page b/force-app/main/default/pages/RentalApplyBR.page
index e13a18f..a428d4e 100644
--- a/force-app/main/default/pages/RentalApplyBR.page
+++ b/force-app/main/default/pages/RentalApplyBR.page
@@ -52,29 +52,61 @@
             src = srcNew.substring(22, srcNew.length);
             sforce.connection.sessionId = '{!GETSESSIONID()}';
 
-            var record = sforce.connection.query("select id from Attachment where ParentId = \'{!Rental_Apply__c.Id}\' and name = \'BRCode-{!Rental_Apply__c.Name_No__c}\'");
+            // var record = sforce.connection.query("select id from Attachment where ParentId = \'{!Rental_Apply__c.Id}\' and name = \'BRCode-{!Rental_Apply__c.Name_No__c}\'");
+            var record = sforce.connection.query("select ContentDocumentId from ContentDocumentLink where LinkedEntityId = \'{!Rental_Apply__c.Id}\'");
+            console.log("333333333333",record.size);
+            if(record.size > 0){
+                var records = record.getArray("records");
+                var idList = records.map(obj => "'" + obj.ContentDocumentId + "'").join(",");
+                record = sforce.connection.query("select Id from ContentDocument where Id in (" + idList + ") and Title = \'BRCode-{!Rental_Apply__c.Name_No__c}\'");
+            }
             // 鏃€伀銇傘倢銇扮劇瑕�
             if (record.size == 0) {
-                var atta = new sforce.SObject("Attachment");
-                atta.Name = "BRCode-{!Rental_Apply__c.Name_No__c}";
-                atta.ParentId = "{!Rental_Apply__c.Id}";
-                atta.Body = src;
-                var result = sforce.connection.create([atta]);
+                var version = new sforce.SObject("ContentVersion");
+                version.VersionData = src;
+                version.Title = "BRCode-{!Rental_Apply__c.Name_No__c}";
+                version.ContentLocation = 's';
+                version.PathOnClient= "BRCode-{!Rental_Apply__c.Name_No__c}.jpg";
+                var versionResult = sforce.connection.create([version]);
+                record = sforce.connection.query("SELECT ContentDocumentId FROM ContentVersion WHERE Id =\'" + versionResult[0].id + "\'");
+                var records = record.getArray("records");
+                var link = new sforce.SObject("ContentDocumentLink");
+                link.ContentDocumentId = records[0].ContentDocumentId;
+                link.LinkedEntityId = "{!Rental_Apply__c.Id}";
+                link.ShareType = 'I';
+                link.Visibility = 'AllUsers';
+                var result = sforce.connection.create([link]);
+
+                // var atta = new sforce.SObject("Attachment");
+                // atta.Name = "BRCode-{!Rental_Apply__c.Name_No__c}";
+                // atta.ParentId = "{!Rental_Apply__c.Id}";
+                // atta.Body = src;
+                // var result = sforce.connection.create([atta]);
 
                 var es = new sforce.SObject("Rental_Apply__c");
                 es.Id = "{!Rental_Apply__c.Id}";
-                es.BRId__c = result[0].id;
+                es.BRId__c = versionResult[0].id;
                 result = sforce.connection.update([es]);
             //鐢宠涔︽洿鏂板け璐ョ殑璇濆啀娆℃洿鏂�
             } else if ("{!Rental_Apply__c.BRId__c}" == '' || "{!Rental_Apply__c.BRId__c}" == null) {
-                var records = record.getArray("records");
-                var es = new sforce.SObject("Rental_Apply__c");
-                es.Id = "{!Rental_Apply__c.Id}";
-                es.BRId__c = records[0].Id;
-                result = sforce.connection.update([es]);
+                // var records = record.getArray("records");
+                // var es = new sforce.SObject("Rental_Apply__c");
+                // es.Id = "{!Rental_Apply__c.Id}";
+                // es.BRId__c = records[0].Id;
+                // result = sforce.connection.update([es]);
                 // TODO Name澶夈倧銈嬪彲鑳芥�с亗銈娿�乽psert銇仐銇俱仚
+                var records = record.getArray("records");
+                var version = new sforce.SObject("ContentVersion");
+                version = sforce.connection.query("select Id,ContentDocumentId from ContentVersion where ContentDocumentId = \'" + records[0].id + "\'");
+                version = version.getArray("records"); 
+                if(version[0].Id != "{!Rental_Apply__c.QRId__c}"){
+                    var es = new sforce.SObject("Rental_Apply__c");
+                    es.Id = "{!Rental_Apply__c.Id}";
+                    es.QRId__c = version[0].id;
+                    result = sforce.connection.update([es]);
+                }
             } else {
-                alert(record[0].id);
+                // alert(record[0].id);
             }
         }
         // BRcode鐢熸垚寰屻�丄ttachment銈掍綔鎴�
diff --git a/force-app/main/default/pages/RentalApplyQR.page b/force-app/main/default/pages/RentalApplyQR.page
index d6ec2e1..95f27a0 100644
--- a/force-app/main/default/pages/RentalApplyQR.page
+++ b/force-app/main/default/pages/RentalApplyQR.page
@@ -13,29 +13,63 @@
 
             sforce.connection.sessionId = '{!GETSESSIONID()}';
 
-            var record = sforce.connection.query("select id from Attachment where ParentId = \'{!Rental_Apply__c.Id}\' and name = \'QRCode-{!Rental_Apply__c.Name}\'");
-            // 鏃€伀銇傘倢銇扮劇瑕�
+            // var record = sforce.connection.query("select id from Attachment where ParentId = \'{!Rental_Apply__c.Id}\' and name = \'QRCode-{!Rental_Apply__c.Name}\'");
+            console.log("22222222222222222222222222");
+            var record = sforce.connection.query("select ContentDocumentId from ContentDocumentLink where LinkedEntityId = \'{!Rental_Apply__c.Id}\'");
+            console.log("2222222222222222222--------",record.size);
+            if(record.size > 0){
+                var records = record.getArray("records");
+                var idList = records.map(obj => "'" + obj.ContentDocumentId + "'").join(",");
+                record = sforce.connection.query("select Id from ContentDocument where Id in (" + idList + ") and Title = \'QRCode-{!Rental_Apply__c.Name}\'");
+            }           
+             // 鏃€伀銇傘倢銇扮劇瑕�
             if (record.size == 0) {
-                var atta = new sforce.SObject("Attachment");
-                atta.Name = "QRCode-{!Rental_Apply__c.Name}";
-                atta.ParentId = "{!Rental_Apply__c.Id}";
-                atta.Body = src;
-                var result = sforce.connection.create([atta]);
+
+                var version = new sforce.SObject("ContentVersion");
+                version.VersionData = src;
+                version.Title = "QRCode-{!Rental_Apply__c.Name}";
+                version.ContentLocation = 's';
+                version.PathOnClient= "QRCode-{!Rental_Apply__c.Name}.jpg";
+                var versionResult = sforce.connection.create([version]);
+                record = sforce.connection.query("SELECT ContentDocumentId FROM ContentVersion WHERE Id =\'" + versionResult[0].id + "\'");
+                var records = record.getArray("records");
+                var link = new sforce.SObject("ContentDocumentLink");
+                link.ContentDocumentId = records[0].ContentDocumentId;
+                link.LinkedEntityId = "{!Rental_Apply__c.Id}";
+                link.ShareType = 'I';
+                link.Visibility = 'AllUsers';
+                var result = sforce.connection.create([link]);
+
+                // var atta = new sforce.SObject("Attachment");
+                // atta.Name = "QRCode-{!Rental_Apply__c.Name}";
+                // atta.ParentId = "{!Rental_Apply__c.Id}";
+                // atta.Body = src;
+                // var result = sforce.connection.create([atta]);
 
                 var es = new sforce.SObject("Rental_Apply__c");
                 es.Id = "{!Rental_Apply__c.Id}";
-                es.QRId__c = result[0].id;
+                es.QRId__c = versionResult[0].id;
                 result = sforce.connection.update([es]);
             //鐢宠涔︽洿鏂板け璐ョ殑璇濆啀娆℃洿鏂�
             } else if ("{!Rental_Apply__c.QRId__c}" == '' || "{!Rental_Apply__c.QRId__c}" == null) {
-                var records = record.getArray("records");
-                var es = new sforce.SObject("Rental_Apply__c");
-                es.Id = "{!Rental_Apply__c.Id}";
-                es.QRId__c = records[0].Id;
-                result = sforce.connection.update([es]);
+                // var records = record.getArray("records");
+                // var es = new sforce.SObject("Rental_Apply__c");
+                // es.Id = "{!Rental_Apply__c.Id}";
+                // es.QRId__c = records[0].Id;
+                // result = sforce.connection.update([es]);
                 // TODO Name澶夈倧銈嬪彲鑳芥�с亗銈娿�乽psert銇仐銇俱仚
+                var records = record.getArray("records");
+                var version = new sforce.SObject("ContentVersion");
+                version = sforce.connection.query("select Id,ContentDocumentId from ContentVersion where ContentDocumentId = \'" + records[0].id + "\'");
+                version = version.getArray("records"); 
+                if(version[0].id != "{!Rental_Apply__c.QRId__c}"){
+                    var es = new sforce.SObject("Rental_Apply__c");
+                    es.Id = "{!Rental_Apply__c.Id}";
+                    es.QRId__c = version[0].id;
+                    result = sforce.connection.update([es]);
+                }
             } else {
-                alert(record[0].id);
+                // alert(record[0].Id);
             }
         }
 
diff --git a/force-app/main/default/pages/TransferApplyPDF.page b/force-app/main/default/pages/TransferApplyPDF.page
index 9ed23b1..d8c13d7 100644
--- a/force-app/main/default/pages/TransferApplyPDF.page
+++ b/force-app/main/default/pages/TransferApplyPDF.page
@@ -47,7 +47,7 @@
                 <apex:outputText value="{!ApplyHeadShow.RecordTypeName__c}" />
             </td>
             <td  rowspan="4">
-                <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="{!'/sfc/servlet.shepherd/version/download/' + ApplyHeadShow.QRId__c}" />
             </td>
         </tr>
         <tr>
diff --git a/force-app/main/default/pages/TransferApplyQR.page b/force-app/main/default/pages/TransferApplyQR.page
index e5f8627..32340dd 100644
--- a/force-app/main/default/pages/TransferApplyQR.page
+++ b/force-app/main/default/pages/TransferApplyQR.page
@@ -13,29 +13,68 @@
 
             sforce.connection.sessionId = '{!GETSESSIONID()}';
 
-            var record = sforce.connection.query("select id from Attachment where ParentId = \'{!TransferApply__c.Id}\' and name = \'QRCode-{!TransferApply__c.Name}\'");
+            // var record = sforce.connection.query("select id from Attachment where ParentId = \'{!TransferApply__c.Id}\' and name = \'QRCode-{!TransferApply__c.Name}\'");
+            var record = sforce.connection.query("select Id,ContentDocumentId from ContentDocumentLink where LinkedEntityId = \'{!TransferApply__c.Id}\'");
+            if(record.size > 0){
+                var records = record.getArray("records");
+                var idList = records.map(obj => "'" + obj.ContentDocumentId + "'").join(",");
+                record = sforce.connection.query("select Id from ContentDocument where Id in (" + idList + ") and Title = \'QRCode-{!TransferApply__c.Name}\'");
+            }
+            console.log("qqqqqqqqqqqqqqqqq",record.size);
             // 鏃€伀銇傘倢銇扮劇瑕�
             if (record.size == 0) {
-                var atta = new sforce.SObject("Attachment");
-                atta.Name = "QRCode-{!TransferApply__c.Name}";
-                atta.ParentId = "{!TransferApply__c.Id}";
-                atta.Body = src;
-                var result = sforce.connection.create([atta]);
+                var version = new sforce.SObject("ContentVersion");
+                version.VersionData = src;
+                version.Title = "QRCode-{!TransferApply__c.Name}";
+                version.ContentLocation = 's';
+                version.PathOnClient= "QRCode-{!TransferApply__c.Name}.jpg";
+                var versionResult = sforce.connection.create([version]);
+                record = sforce.connection.query("SELECT ContentDocumentId FROM ContentVersion WHERE Id =\'" + versionResult[0].id + "\'");
+                var records = record.getArray("records");
+                var link = new sforce.SObject("ContentDocumentLink");
+                link.ContentDocumentId = records[0].ContentDocumentId;
+                link.LinkedEntityId = "{!TransferApply__c.Id}";
+                link.ShareType = 'I';
+                link.Visibility = 'AllUsers';
+                var result = sforce.connection.create([link]);
+
+                // var atta = new sforce.SObject("Attachment");
+                // atta.Name = "QRCode-{!TransferApply__c.Name}";
+                // atta.ParentId = "{!TransferApply__c.Id}";
+                // atta.Body = src;
+                // var result = sforce.connection.create([atta]);
 
                 var es = new sforce.SObject("TransferApply__c");
                 es.Id = "{!TransferApply__c.Id}";
-                es.QRId__c = result[0].id;
+                es.QRId__c = versionResult[0].id;
                 result = sforce.connection.update([es]);
             //鐢宠涔︽洿鏂板け璐ョ殑璇濆啀娆℃洿鏂�
             } else if ("{!TransferApply__c.QRId__c}" == '' || "{!TransferApply__c.QRId__c}" == null) {
                 var records = record.getArray("records");
-                var es = new sforce.SObject("TransferApply__c");
-                es.Id = "{!TransferApply__c.Id}";
-                es.QRId__c = records[0].Id;
-                result = sforce.connection.update([es]);
+                var version = new sforce.SObject("ContentVersion");
+                version = sforce.connection.query("select Id,ContentDocumentId from ContentVersion where ContentDocumentId = \'" + records[0].Id + "\'");
+                version = version.getArray("records"); 
+                if(version[0].Id != "{!TransferApply__c.QRId__c}"){
+                    var es = new sforce.SObject("TransferApply__c");
+                    es.Id = "{!TransferApply__c.Id}";
+                    es.QRId__c = version[0].id;
+                    result = sforce.connection.update([es]);
+                }
                 // TODO Name澶夈倧銈嬪彲鑳芥�с亗銈娿�乽psert銇仐銇俱仚
             } else {
-                alert(record[0].id);
+                // var records = record.getArray("records");
+                // alert(records[0].Id);
+                var records = record.getArray("records");
+                var version = new sforce.SObject("ContentVersion");
+                version = sforce.connection.query("select Id,ContentDocumentId from ContentVersion where ContentDocumentId = \'" + records[0].Id + "\'");
+                version = version.getArray("records"); 
+                // 瀛樺湪qr鏃讹紝缁戝埌娓呭崟涓�
+                if(version[0].Id != "{!TransferApply__c.QRId__c}"){
+                    var es = new sforce.SObject("TransferApply__c");
+                    es.Id = "{!TransferApply__c.Id}";
+                    es.QRId__c = version[0].id;
+                    result = sforce.connection.update([es]);
+                }
             }
         }
 

--
Gitblit v1.9.1