From fd9df05c48c09b4d7f39a3b401882bda226dedea Mon Sep 17 00:00:00 2001
From: 19626 <1962676589@qq.com>
Date: 星期二, 31 十月 2023 20:38:18 +0800
Subject: [PATCH] 近期修改

---
 force-app/main/default/classes/InsReportPDFOuterController.cls |  117 +++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 91 insertions(+), 26 deletions(-)

diff --git a/force-app/main/default/classes/InsReportPDFOuterController.cls b/force-app/main/default/classes/InsReportPDFOuterController.cls
index cdde55d..d6ff1ca 100644
--- a/force-app/main/default/classes/InsReportPDFOuterController.cls
+++ b/force-app/main/default/classes/InsReportPDFOuterController.cls
@@ -15,47 +15,112 @@
     }
     
     public void saveSign() {
-        // Sign鐢诲儚銇竴銇ゃ仹銇勩亜銇樸們銇亜锛烡elete鈬扞nsert銇仚銈�
-        List<Attachment> atts = [select Id from Attachment where ParentId = :ir.Id and Name = :(ir.Name + '_Sign')];
-        if (atts.size() > 0) delete atts;
+        // 20231103   Lightning鏂囦欢淇敼 Start
+        // // Sign鐢诲儚銇竴銇ゃ仹銇勩亜銇樸們銇亜锛烡elete鈬扞nsert銇仚銈�
+        // List<Attachment> atts = [select Id from Attachment where ParentId = :ir.Id and Name = :(ir.Name + '_Sign')];
+        // if (atts.size() > 0) delete atts;
         
-        Attachment ac = new Attachment();
-        ac.Body = EncodingUtil.base64Decode(this.signStr.removeStart('data:image/png;base64,'));
-        ac.Name = ir.Name + '_Sign';
-        ac.ParentId = ir.Id;
-        ac.ContentType = 'jpg';
+        // Attachment ac = new Attachment();
+        // ac.Body = EncodingUtil.base64Decode(this.signStr.removeStart('data:image/png;base64,'));
+        // ac.Name = ir.Name + '_Sign';
+        // ac.ParentId = ir.Id;
+        // ac.ContentType = 'jpg';
+        // try {
+        //     insert ac;
+        //     //TODO status銆屻偟銈ゃ兂娓堛伩銆嶃伀銇欍倠
+        //     ir.ResponsiblePerson_Sign__c = '<img src="/servlet/servlet.FileDownload?file=' + ac.Id + '"/>';
+        //     ir.SignUrl__c = '/servlet/servlet.FileDownload?file=' + ac.Id;
+        //     ir.Status__c = '宸茬瀛�';
+        //     update ir;
+        // } catch (Exception ex) {
+        //     ApexPages.addMessages(ex);
+        //     //return;
+        // }
+
+        List<ContentDocumentLink> links = [select ContentDocumentId from ContentDocumentLink where LinkedEntityId =: ir.Id];
+        if (links.size() > 0) {
+            List<Id> idList = new List<Id>();
+            for (ContentDocumentLink link : links) {
+                idList.add(link.ContentDocumentId);
+            }
+            List<ContentDocument> cons = [select Id from ContentDocument where Id in: idList and Title =: (ir.Name + '_Sign')];
+            if (cons.size() > 0) {
+                delete cons;
+            }
+        }
+        ContentVersion version = new ContentVersion();
+        version.Title = ir.Name + '_Sign';
+        version.VersionData = EncodingUtil.base64Decode(this.signStr.removeStart('data:image/png;base64,'));
+        version.PathOnClient = ir.Name + '_Sign.jpg';
+        version.ContentLocation = 's';
         try {
-            insert ac;
-            //TODO status銆屻偟銈ゃ兂娓堛伩銆嶃伀銇欍倠
-            ir.ResponsiblePerson_Sign__c = '<img src="/servlet/servlet.FileDownload?file=' + ac.Id + '"/>';
-            ir.SignUrl__c = '/servlet/servlet.FileDownload?file=' + ac.Id;
+            insert version;
+            version = [select Id,ContentDocumentId from ContentVersion where Id =: version.Id];
+            ContentDocumentLink link = new ContentDocumentLink();
+            link.LinkedEntityId = ir.Id;
+            link.ShareType = 'I';
+            link.ContentDocumentId = version.ContentDocumentId;
+            link.Visibility = 'AllUsers';
+            insert link;
+            //     //TODO status銆屻偟銈ゃ兂娓堛伩銆嶃伀銇欍倠
+            // ir.ResponsiblePerson_Sign__c = '<img src="/lightning/r/ContentDocument/'+ link.ContentDocumentId + '/view"/>';
+            // ir.SignUrl__c = '/lightning/r/ContentDocument/'+ link.ContentDocumentId + '/view';
+            ir.ResponsiblePerson_Sign__c = '<img src="/sfc/servlet.shepherd/version/download/'+ version.Id + '"/>';
+            ir.SignUrl__c = '/sfc/servlet.shepherd/version/download/'+ version.Id;
             ir.Status__c = '宸茬瀛�';
             update ir;
-        } catch (Exception ex) {
-            ApexPages.addMessages(ex);
-            //return;
+        } catch (Exception e) {
+            ApexPages.addMessages(e);
         }
+        // 20231103   Lightning鏂囦欢淇敼 End
     }
     
     public void savePDF() {
+        // 20231103   Lightning鏂囦欢淇敼 Start
+        // String pdfPageURL = '/apex/InsReportPDF?id=' + ir.Id;
+        // PageReference pageRef = new PageReference(pdfPageURL);
+
+        // Attachment att = new Attachment();
+        // // TODO TestMethod銇痝etContent銈掋偟銉濄兗銉堛仐銇亜
+        // if (!Test.isRunningTest()) {
+        //     att.body = pageRef.getContent();
+        // } else {
+        //     att.body = EncodingUtil.base64Decode('test');
+        // }
+        // att.Name = ir.Name + '_鐐规鎶ュ憡涔' + String.valueOf(Datetime.now()) + '.pdf';
+        // att.ParentId = ir.Id;
+        // try {
+        //     insert att;
+        // } catch (Exception ex) {
+        //     ApexPages.addMessages(ex);
+        //     //return;
+        // }
         String pdfPageURL = '/apex/InsReportPDF?id=' + ir.Id;
         PageReference pageRef = new PageReference(pdfPageURL);
-
-        Attachment att = new Attachment();
-        // TODO TestMethod銇痝etContent銈掋偟銉濄兗銉堛仐銇亜
+        ContentVersion version = new ContentVersion();
         if (!Test.isRunningTest()) {
-            att.body = pageRef.getContent();
+            version.VersionData = pageRef.getContentAsPDF();
         } else {
-            att.body = EncodingUtil.base64Decode('test');
+            version.VersionData = EncodingUtil.base64Decode('test');
         }
-        att.Name = ir.Name + '_鐐规鎶ュ憡涔' + String.valueOf(Datetime.now()) + '.pdf';
-        att.ParentId = ir.Id;
+        // version.Title = ir.Name + '_鐐规鎶ュ憡涔' + String.valueOf(Datetime.now()) + '.pdf';
+        version.Title = ir.Name + '_鐐规鎶ュ憡涔' + String.valueOf(Datetime.now());
+        version.ContentLocation = 's';
+        version.PathOnClient = ir.Name + '_鐐规鎶ュ憡涔' + String.valueOf(Datetime.now()) + '.pdf';
         try {
-            insert att;
-        } catch (Exception ex) {
-            ApexPages.addMessages(ex);
-            //return;
+            insert version;
+            version = [select ContentDocumentId from ContentVersion where Id =: version.Id];
+            ContentDocumentLink link = new ContentDocumentLink();
+            link.LinkedEntityId = ir.Id;
+            link.ShareType = 'I';
+            link.Visibility = 'AllUsers';
+            link.ContentDocumentId = version.ContentDocumentId;
+            insert link;
+        } catch (Exception e) {
+            ApexPages.addMessages(e);
+            // ApexPages.addMessage(e);
         }
+        // 20231103   Lightning鏂囦欢淇敼 End
     }
     
     private Inspection_Report__c getReportData(String id) {

--
Gitblit v1.9.1