global without sharing class BatchFileUploadController { public String newUrl {get; set;} public String staticResource {get; set;} public BatchFileUploadController(){ //deloitte-zhj 20231208 PIPL还原 // AWS_Integration_Info__mdt awsConfiguration = [SELECT App_Id__c,Token_URL__c,App_Secret__c,Host_URL__c FROM AWS_Integration_Info__mdt WHERE DeveloperName = 'AWS_Default_Configuration']; // if (awsConfiguration == null) { // System.debug('AWS_Integration_Info__mdt没配置'); // }else { // newUrl = awsConfiguration.Host_URL__c + '/api/file/batchupload'; // staticResource = JSON.serialize(PIHelper.getPIIntegrationInfo('Document')); // } } global class Response{ public String recordId{set;get;} public String message{set;get;} public String status{set;get;} } global class ResponseDeleteFile{ public List keyList{set;get;} public String message{set;get;} public String status{set;get;} } //deloitte-zhj 202312085 PIPL还原 start @RemoteAction global static Response saveFile(String fileName,String base64Data, String contentType,String parentId,String bool){ Response response =new Response(); Savepoint sp = Database.setSavepoint(); try { FileAddress__c file = new FileAddress__c(); // 去除filename里得“&” zhj 2022-11-17 fileName = fileName.remove('&'); file.FileName__c =fileName; file.ParentRecordId__c =parentId; ContentVersion version = new ContentVersion(); version.Title = fileName; version.VersionData = EncodingUtil.base64Decode(base64Data); version.ContentLocation = 's'; version.PathOnClient = fileName; version.Origin = 'C'; insert version; version = [select ContentDocumentId from ContentVersion where Id =: version.Id limit 1]; file.DownloadLink__c = '/sfc/servlet.shepherd/version/download/' + version.Id; file.ViewLink__c = '/lightning/page/filePreview?selectedRecordId=' + version.ContentDocumentId; file.View_Link__c = '/sfc/servlet.shepherd/version/renditionDownload?rendition=SVGZ&versionId=' + version.Id + '&operationContext=CHATTER'; insert file; ContentDocumentLink link = new ContentDocumentLink(); link.ContentDocumentId = version.ContentDocumentId; link.LinkedEntityId = file.Id; link.ShareType = 'I'; link.Visibility = 'AllUsers'; insert link; ContentDocumentLink link1 = new ContentDocumentLink(); link1.LinkedEntityId = System.Label.GuestFile; link1.ContentDocumentId = version.ContentDocumentId; link1.Visibility = 'AllUsers'; link1.ShareType = 'I'; insert link1; response.recordId = file.Id; response.status='success'; if(bool == 'true'){ System.debug('成功调用batch'); Database.executeBatch(new SetFrameNumManageBatch(), 100); //上传成功后需要手动跑batch做数据和附件的关联 2022-12-27 } } catch (Exception e) { System.debug('into catch'+e.getMessage()); Database.rollback(sp); response.message=e.getMessage() + '________' + e.getLineNumber(); response.status='fail'; } return response; } @RemoteAction global static ResponseDeleteFile deleteFile(String fileIds){ String[] ids = fileIds.split(','); System.debug('ids = ' + ids); List idList = new List(); for(String str : ids){ idList.add(str); } System.debug('idList = ' + idList); //List fList = [select id,AWS_File_Key__c from FileAddress__c where id in:idList]; List fList = [select id from ContentDocument where id in:idList]; ResponseDeleteFile response =new ResponseDeleteFile(); Savepoint sp = Database.setSavepoint(); try { delete fList; response.keyList = null; response.message = ''; response.status = 'success'; return response; } catch (Exception e) { Database.rollback(sp); response.keyList = null; response.message = e.getMessage(); response.status = 'error'; return response; } } // @RemoteAction // global static Response saveFile(String fileName,String key,String transId,String parentId,String bool){ // FileAddress__c file = new FileAddress__c(); // PIHelper.PIIntegration pI=PIHelper.getPIIntegrationInfo('Document'); // // 去除filename里得“&” zhj 2022-11-17 // fileName = fileName.remove('&'); // file.DownloadLink__c =pI.undeleteUrl+key+'&fileName='+fileName; // file.FileName__c =fileName; // file.ViewLink__c =pI.queryUrl+key; // file.ParentRecordId__c =parentId; // file.AWS_File_Key__c = key; // Response response =new Response(); // Savepoint sp = Database.setSavepoint(); // try { // insert file; // //插入日志 // //update 2022-11-17 加入新的日志方式 // PIHelper.saveTransLog('Document',key,transId,file.Id,JSON.serialize(file),'success',''); // response.recordId=file.Id; // response.status='success'; // if(bool == 'true'){ // System.debug('成功调用batch'); // Database.executeBatch(new SetFrameNumManageBatch(), 100); //上传成功后需要手动跑batch做数据和附件的关联 2022-12-27 // } // return response; // } catch (Exception e) { // System.debug('into catch'+e.getMessage()); // PIHelper.saveTransLog('Document',key,transId,file.Id,JSON.serialize(file),'fail',e.getMessage()); // Database.rollback(sp); // response.message=e.getMessage(); // response.status='fail'; // return response; // } // } // @RemoteAction // global static ResponseDeleteFile deleteFile(String fileIds){ // String[] ids = fileIds.split(','); // System.debug('ids = ' + ids); // List idList = new List(); // for(String str : ids){ // idList.add(str); // } // System.debug('idList = ' + idList); // List fList = [select id,AWS_File_Key__c from FileAddress__c where id in:idList]; // List keyList = new List(); // for(FileAddress__c fa : fList){ // keyList.add(fa.AWS_File_Key__c); // } // System.debug('keyList = ' + keyList); // ResponseDeleteFile response =new ResponseDeleteFile(); // Savepoint sp = Database.setSavepoint(); // try { // delete fList; // response.keyList = keyList; // response.message = ''; // response.status = 'success'; // return response; // } catch (Exception e) { // Database.rollback(sp); // response.keyList = null; // response.message = e.getMessage(); // response.status = 'success'; // return response; // } // } //deloitte-zhj 202312085 PIPL还原 end }