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/classes/OPDPlanHandler.cls |   79 ++++++++++++++++++++++++++++++++-------
 1 files changed, 64 insertions(+), 15 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() {

--
Gitblit v1.9.1