| | |
| | | trigger ContentDocumentTrigger on ContentDocument (before delete) { |
| | | List<String> rentalIds = new List<String>(); |
| | | List<String> attIds = new List<String>(); |
| | | if((!Test.isRunningTest())&&UserInfo.getUserId()==System.Label.ByPassTrigger){ |
| | | return; |
| | | } |
| | | System.debug('enter ContentDocumentTrigger'); |
| | | List<String> rentaldelIds = new List<String>(); |
| | | List<String> attdelIds = new List<String>(); |
| | | List<String> rentalApplyIds = new List<String>(); |
| | | List<String> accIds = new List<String>(); |
| | | //20221014 yc 医院审批优化 start |
| | | List<String> accAppIds = new List<String>(); |
| | | //20221014 yc 医院审批优化 end |
| | | // LHJ CHAN-BCLD4P 20190618 Start |
| | | List<String> specIds = new List<String>(); |
| | | List<String> specDelIds = new List<String>(); |
| | | // LHJ CHAN-BCLD4P 20190618 End |
| | | |
| | | // MZY SWAG-BXXBKA 2021-02-19 start |
| | | List<String> opdIds = new List<String>(); |
| | | Map<String,String> opdMap = new Map<String,String>(); |
| | | // MZY SWAG-BXXBKA 2021-02-19 end |
| | | |
| | | List<String> OpporFileIds = new List<String>(); |
| | | Map<String,String> OpporFileUndeleteMap = new Map<String,String>(); |
| | | List<String> DeleteReIds = new List<String>(); |
| | | Map<String,String> OppordeleteReUserMap = new Map<String,String>(); |
| | | Map<String,Datetime> OppordeleteReTimeMap = new Map<String,Datetime>(); |
| | | //CHAN-BCNCRB ---XHL----Start----- |
| | | List<String> opportunity_FileIds = new List<String>(); |
| | | |
| | | List<String> opportunityFileOrderIds = new List<String>(); |
| | | List<String> oFOrderIds = new List<String>(); |
| | | Map<String,Boolean> oFOrderIdMap = new Map<String,Boolean>(); |
| | | |
| | | // sx 20230210start 备品借出申请故障报告附件提取 |
| | | List<String> rentalApplyFaultIds = new List<String>(); |
| | | Map<String,List<Id>> trentalImages = new Map<String,List<Id>>(); |
| | | List<String> rentaldeleteApplyFaultIds = new List<String>(); |
| | | Map<String,List<Id>> deleteImages = new Map<String,List<Id>>(); |
| | | // sx 20230210end 备品借出申请故障报告附件提取 |
| | | |
| | | |
| | | //deloitte-zhj 发票附件删除 20230901 start |
| | | String invoiceStart = System.Label.invoiceStart; |
| | | List<String> rentaldelIdsZhj = new List<String>(); |
| | | List<String> attdelIdsZhj = new List<String>(); |
| | | |
| | | if (Trigger.isBefore && Trigger.isDelete) { |
| | | for (ContentDocument cd : Trigger.old) { |
| | | System.debug('cd.Id = ' + cd.Id); |
| | | List<ContentDocumentLink> cdlList = [SELECT id, LinkedEntityId FROM ContentDocumentLink WHERE ContentDocumentId = :cd.Id]; |
| | | System.debug('cdlList = ' + cdlList); |
| | | System.debug('cd.Id = ' + cd.Id); |
| | | for (ContentDocumentLink cdl : cdlList) { |
| | | if (String.valueOf(cdl.LinkedEntityId).startsWith(invoiceStart)) { |
| | | System.debug('String.valueOf(cdl.LinkedEntityId).startsWith(invoiceStart)'); |
| | | rentaldelIdsZhj.add(cdl.LinkedEntityId); |
| | | attdelIdsZhj.add(cd.Id); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (rentaldelIdsZhj.size() > 0) { |
| | | System.debug('rentaldelIdsZhj = ' + rentaldelIdsZhj); |
| | | System.debug('attdelIdsZhj = ' + attdelIdsZhj); |
| | | List<Consumable_accessories_invoice__c> rentaldelList = new List<Consumable_accessories_invoice__c>(); |
| | | for (Consumable_accessories_invoice__c ra : [ |
| | | SELECT Id |
| | | FROM Consumable_accessories_invoice__c |
| | | WHERE Invoice_code__c IN :rentaldelIdsZhj AND Attachment_ID__c IN :attdelIdsZhj |
| | | ]) { |
| | | rentaldelList.add(ra); |
| | | } |
| | | System.debug('rentaldelList = ' + rentaldelList); |
| | | ControllerUtil.delConsumableAccessoriesInvoiceSet(rentaldelList); |
| | | } |
| | | //deloitte-zhj 发票附件删除 20230901 end |
| | | |
| | | //CHAN-BCNCRB ---XHL----End----- |
| | | |
| | | if (Trigger.isBefore && Trigger.isDelete) { |
| | | // List<Attachment> attDeleteList = new List<Attachment>(); |
| | | List<ContentDocumentLink> conDeleteList = new List<ContentDocumentLink>(); |
| | | List<Id> idList = new List<Id>(); |
| | | for (ContentDocument doc : Trigger.old) { |
| | | List<ContentDocumentLink> link = [select LinkedEntityId from ContentDocumentLink where ContentDocumentId =: doc.Id limit 1]; |
| | | idList.add(doc.Id); |
| | | } |
| | | List<ContentDocumentLink> link = [select LinkedEntityId from ContentDocumentLink where ContentDocumentId in: idList limit 1]; |
| | | List<ContentVersion> version = [select Id from ContentVersion where ContentDocumentId in: idList]; |
| | | for (ContentDocument doc : Trigger.old) { |
| | | //if (att.Name.toUpperCase() == '合同书.PDF' && String.valueOf(att.ParentId).startsWith('a0t')) { |
| | | // 添付した契約書のファイル名は指定できない |
| | | ContentVersion version = [select Id from ContentVersion where ContentDocumentId =: doc.Id]; |
| | | if (String.valueOf(link[0].LinkedEntityId).startsWith('a2K')) { |
| | | rentaldelIds.add(link[0].LinkedEntityId); |
| | | attdelIds.add(version.Id); |
| | | attdelIds.add(version[0].Id); |
| | | } |
| | | if(String.valueOf(link[0].LinkedEntityId).startsWith(System.Label.Oppor_sepKey)){ |
| | | OpporFileIds.add(link[0].LinkedEntityId); |
| | |
| | | if(parentLabel.equals('Rental_Apply_Fault__c')){ |
| | | rentaldeleteApplyFaultIds.add(link[0].LinkedEntityId); |
| | | conDeleteList.add(link[0]); |
| | | if(deleteImages.containskey(version.Id)){ |
| | | deleteImages.get(link[0].LinkedEntityId).add(version.Id); |
| | | if(deleteImages.containskey(version[0].Id)){ |
| | | deleteImages.get(link[0].LinkedEntityId).add(version[0].Id); |
| | | }else{ |
| | | List<Id> temp = new List<Id>(); |
| | | temp.add(version.Id); |
| | | temp.add(version[0].Id); |
| | | deleteImages.put(link[0].LinkedEntityId,temp); |
| | | } |
| | | } |
| | |
| | | //2023-2-10 sx备品 备品检测分析报告 start |
| | | List<Rental_Apply_Fault__c> rafList = [SELECT Id, Name FROM Rental_Apply_Fault__c WHERE Id IN: rentaldeleteApplyFaultIds AND (status__c = '已发送' OR status__c = '已反馈')]; |
| | | for (Rental_Apply_Fault__c raf : rafList) { |
| | | for (ContentDocumentLink link : conDeleteList) { |
| | | if (link.LinkedEntityId == raf.Id) { |
| | | ContentDocument doc = [select Id from ContentDocument where Id =: link.ContentDocumentId]; |
| | | doc.addError('非草案中的检测分析报告不允许删除已上传的故障图片'); |
| | | for (ContentDocumentLink link1 : conDeleteList) { |
| | | if (link1.LinkedEntityId == raf.Id) { |
| | | // ContentDocument doc = [select Id from ContentDocument where Id =: link.ContentDocumentId]; |
| | | link1.addError('非草案中的检测分析报告不允许删除已上传的故障图片'); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | //20221207 lt 医院审批优化 start |
| | | //2023-2-10 sx备品 备品检测分析报告 start |
| | | if(rentalApplyFaultIds.size() > 0){ |
| | | List<Rental_Apply_Fault__c> renList = [SELECT Id,AttachmentId1__c,AttachmentId2__c from Rental_Apply_Fault__c where Id in :rentalApplyFaultIds]; |
| | | |
| | | system.debug('updrentalApplyFaultList====='+renList); |
| | | for(Rental_Apply_Fault__c ren : renList){ |
| | | if(trentalImages.containskey(ren.Id)){ |
| | | if (ren.AttachmentId1__c == null) { |
| | | ren.AttachmentId1__c = trentalImages.get(ren.id)[0]; |
| | | } else if(ren.AttachmentId2__c == null) { |
| | | ren.AttachmentId2__c = trentalImages.get(ren.id)[0]; |
| | | } |
| | | } |
| | | } |
| | | system.debug('updrentalApplyFaultList====='+renList); |
| | | UPDATE renList; |
| | | } |
| | | |
| | | if(rentaldeleteApplyFaultIds.size() > 0){ |
| | | List<Rental_Apply_Fault__c> renList = [SELECT Id,AttachmentId1__c,AttachmentId2__c from Rental_Apply_Fault__c where Id in :rentaldeleteApplyFaultIds]; |
| | |
| | | ControllerUtil.delConsumableAccessoriesInvoiceSet(rentaldelList); |
| | | } |
| | | |
| | | if (rentalIds.size() > 0) { |
| | | List<Consumable_order__c> rentalList = new List<Consumable_order__c>(); |
| | | for (Consumable_order__c ra : [select Id from Consumable_order__c where Id in :rentalIds]) { |
| | | ra.Consumable_pdf_insert_day__c = Date.today(); |
| | | ra.Order_Attachment__c = attIds[0]; |
| | | //ra.Order_status__c = '录入完成'; |
| | | //ra.Contract_pdf_updated__c = true; |
| | | rentalList.add(ra); |
| | | } |
| | | ControllerUtil.updRentalApplyList(rentalList); |
| | | } |
| | | if (rentalApplyIds.size() > 0) { |
| | | List<Rental_Apply__c> rentalApplyList = new List<Rental_Apply__c>(); |
| | | for (Rental_Apply__c ra : [select Id from Rental_Apply__c where Id in :rentalApplyIds]) { |
| | | ra.Contract_pdf_update_day__c = Date.today(); |
| | | ra.Contract_pdf_updated__c = true; |
| | | rentalApplyList.add(ra); |
| | | } |
| | | ControllerUtil.updRentalApplyList(rentalApplyList); |
| | | } |
| | | |
| | | if (accIds.size() > 0) { |
| | | Map<String, String> attMap = new Map<String, String>(); |
| | | // List<Attachment> attList = [select Id, ParentId from Attachment where ParentId = :accIds order by ParentId]; |
| | | List<ContentDocumentLink> linkList = [select LinkedEntityId from ContentDocumentLink where LinkedEntityId =: accIds order by LinkedEntityId]; |
| | | for (ContentDocumentLink link : linkList) { |
| | | attMap.put(link.LinkedEntityId, link.LinkedEntityId); |
| | | } |
| | | List<Account> updAccList = new List<Account>(); |
| | | |
| | | //20221207 lt 医院审批优化 start |
| | | List<Account> accList = [select id,Name, |
| | | Is_Active__c |
| | | from Account |
| | | where id in:accIds ]; |
| | | //20221207 lt 医院审批优化 end |
| | | |
| | | for (String accid : accIds) { |
| | | if(accList.size() > 0){ |
| | | // Account acc = new Account(Id = accid); |
| | | //20221207 lt 医院审批优化 start |
| | | for(Account acc : accList){ |
| | | |
| | | if(Trigger.isDelete && (Trigger.isBefore || Trigger.isAfter)){ |
| | | for(ContentDocument doc : Trigger.old){ |
| | | // if(attMap.containsKey(att.ParentID) && acc.Is_Active__c != '草案中'){ |
| | | if(acc.Is_Active__c != '草案中'){ |
| | | doc.addError('非草案中,附件不允许删除。'); |
| | | |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | acc.Is_upload_file__c = attMap.containsKey(accid); |
| | | updAccList.add(acc); |
| | | } |
| | | } |
| | | //20221207 lt 医院审批优化 end |
| | | } |
| | | |
| | | // for (String accid : accIds) { |
| | | // Account acc = new Account(Id = accid); |
| | | // acc.Is_upload_file__c = attMap.containsKey(accid); |
| | | // updAccList.add(acc); |
| | | // } |
| | | if (updAccList.size() > 0) update updAccList; |
| | | } |
| | | |
| | | //20221014 yc 医院审批优化 start |
| | | if (accAppIds.size() > 0) { |
| | | Map<String, String> attMap = new Map<String, String>(); |
| | | // List<Attachment> attList = [select Id, ParentId from Attachment where ParentId = :accAppIds order by ParentId]; |
| | | List<ContentDocumentLink> linkList = [select LinkedEntityId from ContentDocumentLink where LinkedEntityId =: accAppIds order by LinkedEntityId]; |
| | | for (ContentDocumentLink link : linkList) { |
| | | attMap.put(link.LinkedEntityId, link.LinkedEntityId); |
| | | } |
| | | List<Account_Delay_Apply__c> updAccAppList = new List<Account_Delay_Apply__c>(); |
| | | |
| | | //20221207 lt 医院审批优化 start |
| | | List<Account_Delay_Apply__c> adaList = [select id,Name, |
| | | Is_Active__c |
| | | from Account_Delay_Apply__c |
| | | where id in:accAppIds ]; |
| | | //20221207 lt 医院审批优化 end |
| | | |
| | | for (String accappid : accAppIds) { |
| | | if(adaList.size() > 0){ |
| | | // Account_Delay_Apply__c accapp = new Account_Delay_Apply__c(Id = accappid); |
| | | //20221207 lt 医院审批优化 start |
| | | |
| | | for(Account_Delay_Apply__c accapp : adaList){ |
| | | if(Trigger.isDelete){ |
| | | for(ContentDocument doc : Trigger.old){ |
| | | // if(attMap.containsKey(att.ParentID) && accapp.Is_Active__c != '草案中'){ |
| | | if(accapp.Is_Active__c != '草案中'){ |
| | | doc.addError('非草案中,附件不允许删除。'); |
| | | |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | accapp.Is_upload_file__c = attMap.containsKey(accappid); |
| | | updAccAppList.add(accapp); |
| | | } |
| | | |
| | | } |
| | | |
| | | //20221207 lt 医院审批优化 end |
| | | |
| | | } |
| | | if (updAccAppList.size() > 0) update updAccAppList; |
| | | } |
| | | //20221014 yc 医院审批优化 end |
| | | |
| | | // LHJ CHAN-BCLD4P 20190618 Start |
| | | if (specIds.size() > 0) { |
| | | |
| | | Map<String, String> attMap = new Map<String, String>(); |
| | | // List<Attachment> attList = [select Id, ParentId from Attachment where ParentId = :specIds order by ParentId]; |
| | | List<ContentDocumentLink> linkList = [select LinkedEntityId from ContentDocumentLink where LinkedEntityId =: specIds order by LinkedEntityId]; |
| | | for (ContentDocumentLink link : linkList) { |
| | | attMap.put(link.LinkedEntityId, link.LinkedEntityId); |
| | | } |
| | | List<OpportunitySpecialApply__c> updSpecList = new List<OpportunitySpecialApply__c>(); |
| | | for (String specId : specIds) { |
| | | OpportunitySpecialApply__c spec = new OpportunitySpecialApply__c(Id = specId); |
| | | spec.Is_upload_file__c = attMap.containsKey(specId); |
| | | updSpecList.add(spec); |
| | | } |
| | | if (updSpecList.size() > 0) update updSpecList; |
| | | } |
| | | // LHJ CHAN-BCLD4P 20190618 End |
| | | |
| | | // MZY SWAG-BXXBKA 2021-02-19 start |
| | | System.debug('SWAG-BXXBKA start'); |
| | | if (opdIds.size()>0) { |
| | | List<OPDPlan__c> updateOPDs = new List<OPDPlan__c>(); |
| | | |
| | | OPDPlan__c tempOPD = new OPDPlan__c(); |
| | | for (String i :opdIds ) { |
| | | tempOPD.id = i; |
| | | tempOPD.AttachmentCertificate__c = opdMap.get(i); |
| | | updateOPDs.add(tempOPD); |
| | | } |
| | | System.debug('临时OPD :'+tempOPD); |
| | | if (updateOPDs.size()>0){ |
| | | update updateOPDs; |
| | | } |
| | | } |
| | | System.debug('SWAG-BXXBKA end'); |
| | | // MZY SWAG-BXXBKA 2021-02-19 end |
| | | |
| | | if(OpporFileIds.size()>0){ |
| | | List<Opportunity_File__c> OpporList = [select id,Last_upload_time__c, |
| | |
| | | |
| | | |
| | | if(Trigger.isDelete && Trigger.isBefore){ |
| | | List<Id> idList = new List<Id>(); |
| | | for(ContentDocument doc : Trigger.old){ |
| | | List<ContentDocumentLink> link = [select LinkedEntityId from ContentDocumentLink where ContentDocumentId =: doc.Id]; |
| | | idList.add(doc.Id); |
| | | } |
| | | List<ContentDocumentLink> link = [select LinkedEntityId from ContentDocumentLink where ContentDocumentId in: idList]; |
| | | for(ContentDocument doc : Trigger.old){ |
| | | if(OpporFileUndeleteMap.containsKey(link[0].LinkedEntityId)){ |
| | | doc.addError('备货已审批,不可删除附件'); |
| | | return; |
| | |
| | | } |
| | | } |
| | | if(Trigger.isDelete && Trigger.isAfter){ |
| | | List<Id> idList = new List<Id>(); |
| | | for(ContentDocument doc : Trigger.old){ |
| | | List<ContentDocumentLink> link = [select LinkedEntityId from ContentDocumentLink where ContentDocumentId =: doc.Id]; |
| | | idList.add(doc.Id); |
| | | } |
| | | List<ContentDocumentLink> link = [select LinkedEntityId from ContentDocumentLink where ContentDocumentId in: idList]; |
| | | for(ContentDocument doc : Trigger.old){ |
| | | // List<ContentDocumentLink> link = [select LinkedEntityId from ContentDocumentLink where ContentDocumentId =: doc.Id]; |
| | | if(OpporFileUndeleteMap.containsKey(link[0].LinkedEntityId)){ |
| | | doc.addError('备货已审批,不可删除附件'); |
| | | link[0].addError('备货已审批,不可删除附件'); |
| | | return; |
| | | }else{ |
| | | DeleteReIds.add(link[0].LinkedEntityId); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | //CHAN-BCNCRB ---XHL----Start----- |
| | | if (opportunity_FileIds.size() > 0) { |
| | | List<Opportunity_File__c> opporList = [select id,Last_upload_time__c, |
| | | Is_Locked__c, |
| | | Last_upload_user__c, |
| | | Stock_apply_time__c, |
| | | Oppor_File_Stage__c |
| | | from Opportunity_File__c |
| | | where id in:opportunity_FileIds And Oppor_File_Stage__c = 'G']; |
| | | List<String> ofIds = new List<String>(); |
| | | if (opporList.size() > 0) { |
| | | |
| | | for (Opportunity_File__c oppf : opporList) { |
| | | ofIds.add(oppf.Id); |
| | | } |
| | | |
| | | if (ofIds.size() > 0 ) { |
| | | // List<Attachment> atcList = [select id,ParentId,createddate,createdbyid from Attachment where ParentId in:ofIds]; |
| | | List<ContentDocumentLink> linkList = [select ContentDocumentId from ContentDocumentLink where LinkedEntityId in: ofIds]; |
| | | |
| | | List<Id> idList = new List<Id>(); |
| | | for (ContentDocumentLink link : linkList) { |
| | | idList.add(link.ContentDocumentId); |
| | | } |
| | | List<ContentDocument> docList = [select Id from ContentDocument where Id in: idList]; |
| | | if (docList.size() > 0) { |
| | | delete docList; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | //CHAN-BCNCRB ---XHL----End----- |
| | | |
| | | |
| | | if (opportunityFileOrderIds.size() > 0) { |
| | | List<OpportunityFileOrder__c> ofoList = [select id, |
| | | OpporFileStage__c |
| | | from OpportunityFileOrder__c |
| | | where Id in:opportunityFileOrderIds And OpporFileStage__c = 'G']; |
| | | List<String> ofoIds = new List<String>(); |
| | | if (ofoList.size() > 0) { |
| | | |
| | | for (OpportunityFileOrder__c ofo : ofoList) { |
| | | ofoIds.add(ofo.Id); |
| | | } |
| | | |
| | | if (ofoIds.size() > 0 ) { |
| | | // List<Attachment> atcList = [select id,ParentId,createddate,createdbyid from Attachment where ParentId in:ofoIds]; |
| | | List<ContentDocumentLink> linkList = [select ContentDocumentId from ContentDocumentLink where LinkedEntityId in:ofoIds]; |
| | | |
| | | List<Id> idList = new List<Id>(); |
| | | for (ContentDocumentLink link : linkList) { |
| | | idList.add(link.ContentDocumentId); |
| | | } |
| | | List<ContentDocument> docList = [select Id from ContentDocument where Id in: idList]; |
| | | if (docList.size() > 0) { |
| | | delete docList; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | if (oFOrderIdMap.size() > 0) { |
| | | |