From 988f9735377909b6310301e582c15804e004783f Mon Sep 17 00:00:00 2001
From: 19626 <1962676589@qq.com>
Date: 星期六, 07 十月 2023 10:36:13 +0800
Subject: [PATCH] 近期修改cjw
---
force-app/main/default/triggers/ContentDocumentTrigger.trigger | 283 ++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 244 insertions(+), 39 deletions(-)
diff --git a/force-app/main/default/triggers/ContentDocumentTrigger.trigger b/force-app/main/default/triggers/ContentDocumentTrigger.trigger
index 807b2a5..dba11fa 100644
--- a/force-app/main/default/triggers/ContentDocumentTrigger.trigger
+++ b/force-app/main/default/triggers/ContentDocumentTrigger.trigger
@@ -1,14 +1,24 @@
-trigger ContentDocumentTrigger on ContentDocument (before delete) {
+trigger ContentDocumentTrigger on ContentDocument (before delete,before update) {
+ if(StaticParameter.ContentDocumentTrigger == false){
+ return;
+ }
if((!Test.isRunningTest())&&UserInfo.getUserId()==System.Label.ByPassTrigger){
return;
}
+
+ // LHJ CHAN-BCLD4P 20190618 Start
+ List<String> specIds = new List<String>();
+ // LHJ CHAN-BCLD4P 20190618 End
System.debug('enter ContentDocumentTrigger');
List<String> rentaldelIds = new List<String>();
List<String> attdelIds = new List<String>();
// LHJ CHAN-BCLD4P 20190618 Start
List<String> specDelIds = new List<String>();
// LHJ CHAN-BCLD4P 20190618 End
-
+ List<String> accIds = new List<String>();
+ //20221014 yc 鍖婚櫌瀹℃壒浼樺寲 start
+ List<String> accAppIds = new List<String>();
+ //20221014 yc 鍖婚櫌瀹℃壒浼樺寲 end
List<String> OpporFileIds = new List<String>();
Map<String,String> OpporFileUndeleteMap = new Map<String,String>();
List<String> DeleteReIds = new List<String>();
@@ -28,8 +38,45 @@
String invoiceStart = System.Label.invoiceStart;
List<String> rentaldelIdsZhj = new List<String>();
List<String> attdelIdsZhj = new List<String>();
+ if (Trigger.isBefore && Trigger.isUpdate) {
+ List<Id> idList = new List<Id>();
+ for(ContentDocument doc: Trigger.old){
+ idList.add(doc.Id);
+ }
+ List<ContentDocumentLink> linkList = [select LinkedEntityId from ContentDocumentLink where ContentDocumentId in: idList];
+ for (ContentDocumentLink link : linkList) {
+ if (String.valueOf(link.LinkedEntityId).startsWith('a5C') || String.valueOf(link.LinkedEntityId).startsWith('a5A')) {
+ accAppIds.add(link.LinkedEntityId);
+ }
+
+ if (String.valueOf(link.LinkedEntityId).startsWith('001')) {
+ accIds.add(link.LinkedEntityId);
+ }
+ }
+ }
if (Trigger.isBefore && Trigger.isDelete) {
+ List<Id> idList = new List<Id>();
+ for(ContentDocument doc: Trigger.old){
+ idList.add(doc.Id);
+ }
+ List<ContentDocumentLink> linkList = [select LinkedEntityId from ContentDocumentLink where ContentDocumentId in: idList];
+ System.debug('Link鐨勬潯鏁帮細' + linkList.size());
+ for (ContentDocumentLink link : linkList) {
+ if (String.valueOf(link.LinkedEntityId).startsWith('001')) {
+ accIds.add(link.LinkedEntityId);
+ }
+ // LHJ CHAN-BCLD4P 20190618 Start
+ if(String.valueOf(link.LinkedEntityId).startsWith(System.Label.OppSpecialApply)){
+ specIds.add(link.LinkedEntityId);
+ }
+ // LHJ CHAN-BCLD4P 20190618 End
+ //20221014 yc 鍖婚櫌瀹℃壒浼樺寲 start
+ if (String.valueOf(link.LinkedEntityId).startsWith('a5C') || String.valueOf(link.LinkedEntityId).startsWith('a5A')) {
+ accAppIds.add(link.LinkedEntityId);
+ }
+ //20221014 yc 鍖婚櫌瀹℃壒浼樺寲 end
+ }
for (ContentDocument cd : Trigger.old) {
System.debug('cd.Id = ' + cd.Id);
List<ContentDocumentLink> cdlList = [SELECT id, LinkedEntityId FROM ContentDocumentLink WHERE ContentDocumentId = :cd.Id];
@@ -69,51 +116,69 @@
for (ContentDocument doc : Trigger.old) {
idList.add(doc.Id);
}
- List<ContentDocumentLink> link = [select LinkedEntityId from ContentDocumentLink where ContentDocumentId in: idList limit 1];
+ List<ContentDocumentLink> linkList = [select ContentDocumentId,LinkedEntityId from ContentDocumentLink where ContentDocumentId in: idList];
List<ContentVersion> version = [select Id from ContentVersion where ContentDocumentId in: idList];
+ System.debug('Version鐨勬潯鏁帮細' + version.size());
+ Id cid;
+ ContentDocumentLink link;
+ for(ContentDocumentLink lin: linkList){
+ System.debug('...' + lin.LinkedEntityId.getSObjectType().getDescribe().getName());
+ if(lin.LinkedEntityId.getSObjectType().getDescribe().getName() != 'User'){
+ cid = lin.LinkedEntityId;
+ link = lin;
+ }
+ }
+ if(cid == null){
+ return;
+ }
for (ContentDocument doc : Trigger.old) {
//if (att.Name.toUpperCase() == '鍚堝悓涔�.PDF' && String.valueOf(att.ParentId).startsWith('a0t')) {
// 娣讳粯銇椼仧濂戠磩鏇搞伄銉曘偂銈ゃ儷鍚嶃伅鎸囧畾銇с亶銇亜
- if (String.valueOf(link[0].LinkedEntityId).startsWith('a2K')) {
- rentaldelIds.add(link[0].LinkedEntityId);
+ if (String.valueOf(cid).startsWith('a2K')) {
+ rentaldelIds.add(cid);
attdelIds.add(version[0].Id);
}
- if(String.valueOf(link[0].LinkedEntityId).startsWith(System.Label.Oppor_sepKey)){
- OpporFileIds.add(link[0].LinkedEntityId);
+ if(String.valueOf(cid).startsWith(System.Label.Oppor_sepKey)){
+ OpporFileIds.add(cid);
}
// LHJ CHAN-BCLD4P 20190618 Start
- if(String.valueOf(link[0].LinkedEntityId).startsWith(System.Label.OppSpecialApply)){
- specDelIds.add(link[0].LinkedEntityId);
+ if(String.valueOf(cid).startsWith(System.Label.OppSpecialApply)){
+ specDelIds.add(cid);
}
// LHJ CHAN-BCLD4P 20190618 End
- if(String.valueOf(link[0].LinkedEntityId).startsWith('a3Z')){
- oFOrderIds.add(link[0].LinkedEntityId);
- oFOrderIdMap.put(link[0].LinkedEntityId,false);
+ if(String.valueOf(cid).startsWith('a3Z')){
+ oFOrderIds.add(cid);
+ oFOrderIdMap.put(cid,false);
}
//2023-2-10 sx澶囧搧 澶囧搧妫�娴嬪垎鏋愭姤鍛� start
- Id cid = link[0].LinkedEntityId;
String parentLabel = cid.getSObjectType().getDescribe().getName();
+ System.debug('...' + cid.getSObjectType().getDescribe().getName());
if(parentLabel.equals('Rental_Apply_Fault__c')){
- rentaldeleteApplyFaultIds.add(link[0].LinkedEntityId);
- conDeleteList.add(link[0]);
+ rentaldeleteApplyFaultIds.add(cid);
+ conDeleteList.add(link);
if(deleteImages.containskey(version[0].Id)){
- deleteImages.get(link[0].LinkedEntityId).add(version[0].Id);
+ deleteImages.get(cid).add(version[0].Id);
}else{
List<Id> temp = new List<Id>();
temp.add(version[0].Id);
- deleteImages.put(link[0].LinkedEntityId,temp);
+ deleteImages.put(cid,temp);
}
}
//2023-2-10 sx澶囧搧 澶囧搧妫�娴嬪垎鏋愭姤鍛� end
}
//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 = '宸插弽棣�')];
+ List<Id> docList = new List<Id>();
for (Rental_Apply_Fault__c raf : rafList) {
for (ContentDocumentLink link1 : conDeleteList) {
if (link1.LinkedEntityId == raf.Id) {
- // ContentDocument doc = [select Id from ContentDocument where Id =: link.ContentDocumentId];
- link1.addError('闈炶崏妗堜腑鐨勬娴嬪垎鏋愭姤鍛婁笉鍏佽鍒犻櫎宸蹭笂浼犵殑鏁呴殰鍥剧墖');
+ docList.add(link1.ContentDocumentId);
}
+ }
+ }
+ for(ContentDocument doc: Trigger.old){
+ if(docList.contains(doc.Id)){
+ doc.addError('闈炶崏妗堜腑鐨勬娴嬪垎鏋愭姤鍛婁笉鍏佽鍒犻櫎宸蹭笂浼犵殑鏁呴殰鍥剧墖');
}
}
//2023-2-10 sx澶囧搧 澶囧搧妫�娴嬪垎鏋愭姤鍛� end
@@ -130,13 +195,19 @@
system.debug('renList====='+renList);
for(Rental_Apply_Fault__c ren : renList){
if(deleteImages.containskey(ren.Id)){
-
+ System.debug('att1' + ren.AttachmentId1__c);
+ System.debug('att2' + ren.AttachmentId2__c);
+ System.debug('ver' + deleteImages.get(ren.Id));
if(deleteImages.get(ren.Id).contains(ren.AttachmentId1__c)){
ren.AttachmentId1__c = '';
}
if(deleteImages.get(ren.Id).contains(ren.AttachmentId2__c)){
ren.AttachmentId2__c = '';
}
+ // if(!(deleteImages.get(ren.Id).contains(ren.AttachmentId2__c)) && !(deleteImages.get(ren.Id).contains(ren.AttachmentId1__c))){
+ // ren.AttachmentId2__c = '';
+ // ren.AttachmentId1__c = '';
+ // }
}
}
system.debug('renList====='+renList);
@@ -189,30 +260,101 @@
idList.add(doc.Id);
}
List<ContentDocumentLink> link = [select LinkedEntityId from ContentDocumentLink where ContentDocumentId in: idList];
+ Id enId;
+ for(ContentDocumentLink lin: link){
+ if(lin.LinkedEntityId.getSObjectType().getDescribe().getName() != 'User'){
+ enId = lin.LinkedEntityId;
+ }
+ }
for(ContentDocument doc : Trigger.old){
- if(OpporFileUndeleteMap.containsKey(link[0].LinkedEntityId)){
+ if(OpporFileUndeleteMap.containsKey(enId)){
doc.addError('澶囪揣宸插鎵癸紝涓嶅彲鍒犻櫎闄勪欢');
return;
}else{
+ DeleteReIds.add(enId);
}
}
}
- if(Trigger.isDelete && Trigger.isAfter){
- List<Id> idList = new List<Id>();
- for(ContentDocument doc : Trigger.old){
- idList.add(doc.Id);
+ // if(Trigger.isDelete && Trigger.isAfter){
+ // List<Id> idList = new List<Id>();
+ // for(ContentDocument doc : Trigger.old){
+ // idList.add(doc.Id);
+ // }
+ // List<ContentDocumentLink> linkList = [select LinkedEntityId from ContentDocumentLink where ContentDocumentId in: idList];
+ // ContentDocumentLink link;
+ // for(ContentDocumentLink lin: linkList){
+ // if(lin.LinkedEntityId.getSObjectType().getDescribe().getName() != 'User'){
+ // link = lin;
+ // }
+ // }
+ // for(ContentDocument doc : Trigger.old){
+ // // List<ContentDocumentLink> link = [select LinkedEntityId from ContentDocumentLink where ContentDocumentId =: doc.Id];
+ // if(OpporFileUndeleteMap.containsKey(link.LinkedEntityId)){
+ // doc.addError('澶囪揣宸插鎵癸紝涓嶅彲鍒犻櫎闄勪欢');
+ // return;
+ // }else{
+ // DeleteReIds.add(link.LinkedEntityId);
+ // }
+ // }
+ // }
+ //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<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)){
- link[0].addError('澶囪揣宸插鎵癸紝涓嶅彲鍒犻櫎闄勪欢');
- return;
- }else{
- DeleteReIds.add(link[0].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.isUpdate && Trigger.isBefore){
+ for(ContentDocument doc : Trigger.New){
+ if(accapp.Is_Active__c != '鑽夋涓�'){
+ doc.addError('闈炶崏妗堜腑锛岄檮浠朵笉鍏佽缂栬緫銆�');
+
+ return;
+ }
+ }
+ }
+ if(Trigger.isDelete && Trigger.isBefore){
+ for(ContentDocument doc : Trigger.old){
+ // if(attMap.containsKey(att.ParentID) && accapp.Is_Active__c != '鑽夋涓�'){
+ if(accapp.Is_Active__c != '鑽夋涓�'){
+ doc.addError('闈炶崏妗堜腑锛岄檮浠朵笉鍏佽鍒犻櫎銆�');
+
+ return;
+ }
+ }
+ }
+ }
+
}
+
+ //20221207 lt 鍖婚櫌瀹℃壒浼樺寲 end
+
}
+ try {
+ if (updAccAppList.size() > 0) update updAccAppList;
+ } catch (Exception e) {
+ linkList[0].addError(e.getMessage());
+ }
+
}
+ //20221014 yc 鍖婚櫌瀹℃壒浼樺寲 end
+
// List<Attachment> atcList = [select id,ParentId,createddate,createdbyid from Attachment where ParentId in:DeleteReIds];
@@ -222,21 +364,28 @@
for (ContentDocumentLink link : linkList) {
idList.add(link.ContentDocumentId);
}
- List<ContentDocument> docList = [select Id,ArchivedDate,ArchivedById from ContentDocument where Id =: idList];
+ List<ContentDocument> docList = [select Id,CreatedDate,CreatedById from ContentDocument where Id =: idList];
System.debug(DeleteReIds+'222222222222');
+ List<Id> oldList = new List<Id>();
+ for(ContentDocument doc : Trigger.old){
+ oldList.add(doc.Id);
+ }
if(docList.size()>0){
for(String ids : DeleteReIds){
for(ContentDocument doc : docList){
+ if(oldList.contains(doc.Id)){
+ continue;
+ }
if(OppordeleteReTimeMap.containsKey(ids)){
- if(doc.ArchivedDate > OppordeleteReTimeMap.get(ids)){
- OppordeleteReTimeMap.put(ids,doc.ArchivedDate);
- OppordeleteReUserMap.put(ids,doc.ArchivedById);
+ if(doc.CreatedDate > OppordeleteReTimeMap.get(ids)){
+ OppordeleteReTimeMap.put(ids,doc.CreatedDate);
+ OppordeleteReUserMap.put(ids,doc.CreatedById);
}else{
continue;
}
}else{
- OppordeleteReTimeMap.put(ids,doc.ArchivedDate);
- OppordeleteReUserMap.put(ids,doc.ArchivedById);
+ OppordeleteReTimeMap.put(ids,doc.CreatedDate);
+ OppordeleteReUserMap.put(ids,doc.CreatedById);
}
}
}
@@ -296,5 +445,61 @@
}
}
+ 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.isUpdate && Trigger.isBefore){
+ for(ContentDocument link: Trigger.Old){
+ System.debug(link + 'old');
+ }
+ for(ContentDocument link : Trigger.New){
+ System.debug(link + 'new');
+ if(attMap.containsKey(acc.Id) &&acc.Is_Active__c != '鑽夋涓�'){
+ System.debug('lt123---鑽夋涓�---');
+ link.addError('闈炶崏妗堜腑锛岄檮浠朵笉鍏佽缂栬緫銆�');
+
+ return;
+ }
+ }
+ }
+ if(Trigger.isDelete && (Trigger.isBefore)){
+ for(ContentDocument link : Trigger.old){
+ if(acc.Is_Active__c != '鑽夋涓�'){
+ link.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;
+
+}
}
\ No newline at end of file
--
Gitblit v1.9.1