From e53fdfdd78538a21cddd45b9d3faa1a7e9e37a0a Mon Sep 17 00:00:00 2001
From: 19626 <1962676589@qq.com>
Date: 星期五, 21 七月 2023 13:36:24 +0800
Subject: [PATCH] 修改附件

---
 force-app/main/default/classes/NFM401Controller.cls |  127 ++++++++++++++++++++++++++++++++----------
 1 files changed, 97 insertions(+), 30 deletions(-)

diff --git a/force-app/main/default/classes/NFM401Controller.cls b/force-app/main/default/classes/NFM401Controller.cls
index 4d90ab0..e4e7d33 100644
--- a/force-app/main/default/classes/NFM401Controller.cls
+++ b/force-app/main/default/classes/NFM401Controller.cls
@@ -117,6 +117,13 @@
         public String GLOBAL_ATTRIBUTE1;
         public String RECORD_INSERTED_DATE;
     }
+    public class ContentDocmentCtl{
+        public String title;
+        public Blob versionData;
+        public Integer contentSize;
+        public String parentId;
+        public String Id;
+    }
 
     webservice static void sendToETQ(String iflog_Id,BatchIF_Log__c rowDataSFDC, List<String> repairIds,String statu){
         if(statu == '' || statu == null){
@@ -244,21 +251,34 @@
 
             
             // 鏍规嵁淇悊鍜孮IS ID鍙栧緱淇悊闄勪欢鐩稿叧淇℃伅
-            List<Attachment> attachmentList = [select Id,
-                                                Name,
-                                                Body,
-                                                ParentId,
-                                                BodyLength 
-                                            from Attachment
-                                            where ParentId in : repairIds];
-            Map<String,List<Attachment>> rAMap = new Map<String,List<Attachment>>();
-            for (Attachment ra: attachmentList ) {
-                if (!rAMap.containsKey(ra.ParentId)) {
-                    rAMap.put(ra.ParentId, new List<Attachment>());
+            // List<Attachment> attachmentList = [select Id,
+            //                                     Name,
+            //                                     Body,
+            //                                     ParentId,
+            //                                     BodyLength 
+            //                                 from Attachment
+            //                                 where ParentId in : repairIds];
+            // Map<String,List<Attachment>> rAMap = new Map<String,List<Attachment>>();
+            // for (Attachment ra: attachmentList ) {
+            //     if (!rAMap.containsKey(ra.ParentId)) {
+            //         rAMap.put(ra.ParentId, new List<Attachment>());
+            //     }
+            //     rAMap.get(ra.ParentId).add(ra);
+            // }
+            // 鏍规嵁淇悊鍜孮IS ID鍙栧緱淇悊鏂囦欢鐩稿叧淇℃伅
+            List<ContentDocumentLink> links = [
+                select
+                ContentDocumentId,
+                LinkedEntityId
+                from ContentDocumentLink where LinkedEntityId in: repairIds
+            ];
+            Map<String,List<ContentDocumentLink>> rAMap = new Map<String,List<ContentDocumentLink>>();
+            for (ContentDocumentLink ra: links ) {
+                if (!rAMap.containsKey(ra.LinkedEntityId)) {
+                    rAMap.put(ra.LinkedEntityId, new List<ContentDocumentLink>());
                 }
-                rAMap.get(ra.ParentId).add(ra);
+                rAMap.get(ra.LinkedEntityId).add(ra);
             }
-
 
             // 鏍规嵁淇悊ID鍙栧緱QIS鐩稿叧淇℃伅
             List<QIS_Report__c> qISList = [select id,Name,
@@ -544,19 +564,43 @@
 
                  //ATTACHMENT
                 RepairRequest.ATTACHMENT = new List<Attachment_element>();
-                List<Attachment> attList = rAMap.get(rr.id);
-                if (attList != null && attList.size() > 0) {
-                    for(Attachment rpd : attList){
+                // List<Attachment> attList = rAMap.get(rr.id);
+                // if (attList != null && attList.size() > 0) {
+                //     for(Attachment rpd : attList){
 
+                //         //2020-11-05  濡傛灉闄勪欢澶у皬瓒呰繃1.5mb 鍙戦�侀偖浠舵彁绀�
+                //         if (rpd.BodyLength > 1048576) {
+                //             sendemail(rpd,'淇悊'+rr.Name);
+                //         }else{
+                //             Attachment_element Attachmentdet = new Attachment_element();
+                //             RepairRequest.ATTACHMENT.add(Attachmentdet);
+                //             Attachmentdet.FILE_DATA = EncodingUtil.base64Encode(rpd.body);
+                //             Attachmentdet.ATTACHMENT_FIELD_NAME = 'COMPLAINTS_DOCUMENT_ATTACHMENT';
+                //             Attachmentdet.FILE_NAME = rpd.Name;
+                //             Attachmentdet.GLOBAL_ATTRIBUTE1 = 'COMPLAINT';
+                //             Attachmentdet.RECORD_INSERTED_DATE = NFMUtil.formatDate2Str(Date.today());
+                //         }
+                //     }
+                // }
+                List<ContentDocumentLink> attList = rAMap.get(rr.id);
+                if (attList != null && attList.size() > 0) {
+                    for(ContentDocumentLink rpd : attList){
+                        ContentVersion version = [
+                            select
+                            Title,
+                            VersionData,
+                            ContentSize
+                            from ContentVersion where ContentDocumentId =: rpd.ContentDocumentId
+                        ];
                         //2020-11-05  濡傛灉闄勪欢澶у皬瓒呰繃1.5mb 鍙戦�侀偖浠舵彁绀�
-                        if (rpd.BodyLength > 1048576) {
-                            sendemail(rpd,'淇悊'+rr.Name);
+                        if (version.ContentSize > 1048576) {
+                            sendemail(version,'淇悊'+rr.Name);
                         }else{
                             Attachment_element Attachmentdet = new Attachment_element();
                             RepairRequest.ATTACHMENT.add(Attachmentdet);
-                            Attachmentdet.FILE_DATA = EncodingUtil.base64Encode(rpd.body);
+                            Attachmentdet.FILE_DATA = EncodingUtil.base64Encode(version.VersionData);
                             Attachmentdet.ATTACHMENT_FIELD_NAME = 'COMPLAINTS_DOCUMENT_ATTACHMENT';
-                            Attachmentdet.FILE_NAME = rpd.Name;
+                            Attachmentdet.FILE_NAME = version.Title;
                             Attachmentdet.GLOBAL_ATTRIBUTE1 = 'COMPLAINT';
                             Attachmentdet.RECORD_INSERTED_DATE = NFMUtil.formatDate2Str(Date.today());
                         }
@@ -702,24 +746,47 @@
 
                 // ATTACHMENT
                 RepairRequest.ATTACHMENT = new List<Attachment_element>();
-                List<Attachment> attList = rAMap.get(qr.id);
+                // List<Attachment> attList = rAMap.get(qr.id);
+                // if (attList != null && attList.size() > 0) {
+                //     for(Attachment rpd :attList){
+                //          //2020-11-05  濡傛灉闄勪欢澶у皬瓒呰繃1.5mb 鍙戦�侀偖浠舵彁绀�
+                //         if (rpd.BodyLength > 1048576) {
+                //             sendemail(rpd,'QIS '+qr.Name);
+                //         }else{
+                //             Attachment_element Attachmentdet = new Attachment_element();
+                //             RepairRequest.ATTACHMENT.add(Attachmentdet);
+                //             Attachmentdet.FILE_DATA = EncodingUtil.base64Encode(rpd.body);
+                //             Attachmentdet.ATTACHMENT_FIELD_NAME = 'COMPLAINTS_DOCUMENT_ATTACHMENT';
+                //             Attachmentdet.FILE_NAME = rpd.Name;
+                //             Attachmentdet.GLOBAL_ATTRIBUTE1 = 'COMPLAINT';
+                //             Attachmentdet.RECORD_INSERTED_DATE = NFMUtil.formatDate2Str(Date.today());
+                //         }
+                //     }
+                // }
+                List<ContentDocumentLink> attList = rAMap.get(qr.id);
                 if (attList != null && attList.size() > 0) {
-                    for(Attachment rpd :attList){
+                    for(ContentDocumentLink rpd :attList){
                          //2020-11-05  濡傛灉闄勪欢澶у皬瓒呰繃1.5mb 鍙戦�侀偖浠舵彁绀�
-                        if (rpd.BodyLength > 1048576) {
-                            sendemail(rpd,'QIS '+qr.Name);
+                        ContentVersion version = [
+                            select
+                            VersionData,
+                            Title,
+                            ContentSize
+                            from ContentVersion where ContentDocumentId =: rpd.ContentDocumentId
+                        ];
+                        if (version.ContentSize > 1048576) {
+                            sendemail(version,'QIS '+qr.Name);
                         }else{
                             Attachment_element Attachmentdet = new Attachment_element();
                             RepairRequest.ATTACHMENT.add(Attachmentdet);
-                            Attachmentdet.FILE_DATA = EncodingUtil.base64Encode(rpd.body);
+                            Attachmentdet.FILE_DATA = EncodingUtil.base64Encode(version.VersionData);
                             Attachmentdet.ATTACHMENT_FIELD_NAME = 'COMPLAINTS_DOCUMENT_ATTACHMENT';
-                            Attachmentdet.FILE_NAME = rpd.Name;
+                            Attachmentdet.FILE_NAME = version.Title;
                             Attachmentdet.GLOBAL_ATTRIBUTE1 = 'COMPLAINT';
                             Attachmentdet.RECORD_INSERTED_DATE = NFMUtil.formatDate2Str(Date.today());
                         }
                     }
                 }
-
 
                 if (statu == 'Q1') {
                     RepairRequest.AWARE_DATE = NFMUtil.formatDate2Str(qr.Trable_occur_daY_collect__c);
@@ -816,16 +883,16 @@
 
     //add by rentx 2020-11-05 start
     //鍙戦�佹彁绀洪檮浠惰繃澶х數瀛愰偖浠�
-    public static void SendEmail(Attachment rpd,String str){
+    public static void SendEmail(ContentVersion rpd,String str){
         
         // sendMails = new List<Messaging.SingleEmailMessage>();
         //鍙戦�侀偖浠�
         String title = '';
         String body = '';
-        title = str+' 涓殑闄勪欢 '+rpd.Name+' 鍙戦�乪tq澶辫触鎻愰啋';
+        title = str+' 涓殑鏂囦欢 '+rpd.Title+' 鍙戦�乪tq澶辫触鎻愰啋';
         body =  '鎮ㄥソ,';
         body += '<br/>';
-        body += str+'涓殑闄勪欢'+rpd.Name+'杩囧ぇ,瀵艰嚧鍙戦�丒TQ澶辫触!';
+        body += str+'涓殑鏂囦欢'+rpd.Title+'杩囧ぇ,瀵艰嚧鍙戦�丒TQ澶辫触!';
         body += '<br/>';
         body += '璇锋墜鍔ㄤ笂浼犲埌ETQ';
         List<String> toMailList = new List<String>();

--
Gitblit v1.9.1