public without sharing class BatchSelectRepairPDFDelete {
|
public void deletePDF(List<Repair__c> repList){
|
// 20231103 Lightning文件修改 Start
|
//修改删除附件,改为删除文件(lightning改造)
|
List<String> attachmentNameList = new List<String>();
|
List<Id> parentIdList = new List<Id>();
|
List<ContentDocumentLink> isGeneratedPDFLinkList = new List<ContentDocumentLink>();
|
List<ContentDocument> isGeneratedPDFList = new List<ContentDocument>();
|
for(Repair__c re : repList){
|
attachmentNameList.add(re.name + '_' + 'MaintenanceCommission.pdf');
|
parentIdList.add(re.Id);
|
}
|
isGeneratedPDFLinkList = [select ContentDocumentId from ContentDocumentLink where LinkedEntityId in: parentIdList];
|
List<Id> attachmentIdList = new List<Id>();
|
for (ContentDocumentLink PDFLink : isGeneratedPDFLinkList) {
|
attachmentIdList.add(PDFLink.ContentDocumentId);
|
}
|
isGeneratedPDFList = [select Id from ContentDocument where Id in: attachmentIdList and Title in: attachmentNameList];
|
if(isGeneratedPDFList.size() > 0){
|
delete isGeneratedPDFList;
|
}
|
|
|
|
|
|
|
|
|
|
// List<String> attachmentNameList = new List<String>();
|
// List<Attachment> isGeneratedPDFList = new List<Attachment>();
|
// for(Repair__c re : repList){
|
// attachmentNameList.add(re.name + '_' + 'MaintenanceCommission.pdf');
|
// }
|
// isGeneratedPDFList = [select id from Attachment where name IN:attachmentNameList];
|
// System.debug(LoggingLevel.INFO, '*** isGeneratedPDFList: ' + isGeneratedPDFList);
|
// if(isGeneratedPDFList.size() > 0){
|
// delete isGeneratedPDFList;
|
// }
|
// 20231103 Lightning文件修改 End
|
}
|
|
public void createPDF(List<Repair__c> repList){
|
// 20231103 Lightning文件修改 Start
|
// PageReference pdfPage;
|
// List<Attachment> attachments = new List<Attachment>();
|
// for(Repair__c re : repList){
|
// pdfPage = new PageReference('/apex/MaintenanceCommissionPDF?id=' + re.Id);
|
// Blob pdfBody;
|
// if(System.Test.isRunningTest()) {
|
// pdfBody = blob.valueOf('Unit.Test');
|
// } else {
|
// pdfBody = pdfPage.getContentAsPDF();
|
// }
|
// Attachment attach = new Attachment();
|
// attach.Body = pdfBody;
|
// attach.Name = re.name + '_' + 'MaintenanceCommission.pdf';
|
// attach.ParentId = re.id;
|
// attachments.add(attach);
|
// }
|
// System.debug(LoggingLevel.INFO, '*** attachments: ' + attachments);
|
// insert attachments;
|
|
PageReference pdfPage;
|
List<ContentVersion> versions = new List<ContentVersion>();
|
for(Repair__c re : repList){
|
pdfPage = new PageReference('/apex/MaintenanceCommissionPDF?id=' + re.Id);
|
Blob pdfBody;
|
if(System.Test.isRunningTest()) {
|
pdfBody = blob.valueOf('Unit.Test');
|
} else {
|
pdfBody = pdfPage.getContentAsPDF();
|
}
|
ContentVersion version = new ContentVersion();
|
version.VersionData = pdfBody;
|
version.Title = re.name + '_' + 'MaintenanceCommission.pdf';
|
version.ContentLocation = 's';
|
version.PathOnClient = re.name + '_' + 'MaintenanceCommission.pdf';
|
versions.add(version);
|
}
|
if (versions.size() > 0) {
|
insert versions;
|
}
|
List<Id> idList = new List<Id>();
|
for (ContentVersion newVersion : versions) {
|
idList.add(newVersion.Id);
|
}
|
versions = [select ContentDocumentId from ContentVersion where Id in: idList];
|
List<ContentDocumentLink> links = new List<ContentDocumentLink>();
|
Integer i = 0;
|
for (ContentVersion newVersion : versions) {
|
ContentDocumentLink link = new ContentDocumentLink();
|
link.ContentDocumentId = newVersion.ContentDocumentId;
|
link.LinkedEntityId = repList[i].Id;
|
link.ShareType = 'I';
|
link.Visibility = 'AllUsers';
|
links.add(link);
|
i++;
|
}
|
if (links.size() > 0) {
|
insert links;
|
}
|
// 20231103 Lightning文件修改 End
|
|
}
|
|
}
|