global with sharing class BatchFileUploadController { public String newUrl {get; set;} public String staticResource {get; set;} public BatchFileUploadController(){ 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;} } @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; } } }