| trigger RentalApplyOtherTrigger on Rental_Apply__c (before insert, before update, after insert, after update, after delete) { | 
|     //SWAG-B3U63C 2018/8/21 更新学会培训的申请备品申请单数 start | 
|     if (Trigger.isAfter) { | 
|         list<id> CampaignID = new list<id>(); | 
|         if (Trigger.isInsert || Trigger.isUndelete ) { | 
|             for (Rental_Apply__c local : Trigger.New) { | 
|                 if (String.isNotEmpty(local.Campaign__c)){ | 
|                     CampaignID.add(local.Campaign__c); | 
|                 } | 
|             } | 
|         } | 
|         if (Trigger.isUpdate || Trigger.isDelete) { | 
|             for (Rental_Apply__c local : Trigger.old) { | 
|                 // 2020/11/3 songxiaoqi start 更新申请时,更新前不是取消,然后更新成取消的时候计算 | 
|                 Rental_Apply__c news =null; | 
|                 if (Trigger.isUpdate) { | 
|                     news = Trigger.newMap.get( local.Id ); | 
|                 } | 
|                 // 两种情况需要更新: | 
|                 // 1、删除并且 old包含学会培训; | 
|                 // 2、更新,new 或 old 中包含学会培训,并且状态发生变化 ; | 
|                 if ( | 
|                     (Trigger.isDelete && | 
|                      String.isNotEmpty( local.Campaign__c ) | 
|                     ) | 
|                     || | 
|                     (Trigger.isUpdate && | 
|                      (String.isNotEmpty(local.Campaign__c) || | 
|                       String.isNotEmpty(news.Campaign__c) | 
|                      ) && | 
|                      ( | 
|                          (local.RA_Status__c !=news.RA_Status__c | 
|                           && news.RA_Status__c=='取消')|| | 
|                          (local.Request_approval_day__c != news.Request_approval_day__c) || | 
|                          (local.Campaign__c != news.Campaign__c ) | 
|                      ) | 
|                     ) | 
|                 ){ | 
|                     // 2020/11/3 songxiaoqi end | 
|                     // 如果老的备品借出申请的学会不为空,加入 | 
|                     if( String.isNotEmpty( local.Campaign__c ) ){ | 
|                         CampaignID.add( local.Campaign__c ); | 
|                     } | 
|                     // 如果新的备品借出申请的学会不为空,加入 | 
|                     if( String.isNotEmpty( news.Campaign__c ) ){ | 
|                         CampaignID.add( news.Campaign__c ); | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|         if (CampaignID.size () > 0) { | 
|             List<AggregateResult> TemRentalApplies = | 
|                 [select Count(Id) Cnt_Id, Campaign__c, min(Request_approval_day__c) RADay | 
|                  from Rental_Apply__c | 
|                  where Campaign__c in: CampaignID | 
|                  and RA_Status__c != '取消' | 
|                  group by Campaign__c | 
|                 ]; | 
|             map<id, list<string>> TemRentalAppliesMap = new map<id, list<string>>(); | 
|             for (AggregateResult TemRentalApply : TemRentalApplies) { | 
|                 list<string> temStringList = new list<string>(); | 
|                 temStringList.add(string.valueOf( TemRentalApply.get('Cnt_Id'))); | 
|                 if (TemRentalApply.get('RADay') != null) { | 
|                     temStringList.add(((Date)TemRentalApply.get('RADay')).format()); | 
|                 } | 
|                 TemRentalAppliesMap.put( (ID) TemRentalApply.get('Campaign__c'), | 
|                                         temStringList); | 
|             } | 
|             list<Campaign> UpdateCampaignList = new list<Campaign>(); | 
|             for (Campaign TemCampaign : [select id, Number_Rental_Apply__c | 
|                                          from Campaign where id in: CampaignID | 
|                                          //2020/11/3 songxiaoqi start 创建申请后,草案中的时候计算单数 | 
|                                          and Status != '取消' | 
|                                          //2020/11/3 songxiaoqi end | 
|                                         ]) { | 
|                                             list<string> temStringList = TemRentalAppliesMap.get(TemCampaign.id); | 
|                                             if (temStringList != null) { | 
|                                                 integer RentalApplyNumber = integer.valueof(temStringList[0]); | 
|                                                 TemCampaign.Number_Rental_Apply__c = RentalApplyNumber; | 
|                                                 if (temStringList.size() > 1) { | 
|                                                     Date tempRADay = date.parse(temStringList[1]); | 
|                                                     TemCampaign.Request_approval_day_RA__c = tempRADay; | 
|                                                 } else { | 
|                                                     TemCampaign.Request_approval_day_RA__c = null; | 
|                                                 } | 
|                                             } else { | 
|                                                 TemCampaign.Number_Rental_Apply__c = 0; | 
|                                                 TemCampaign.Request_approval_day_RA__c = null; | 
|                                             } | 
|                                             UpdateCampaignList.add(TemCampaign); | 
|                                         } | 
|             if (UpdateCampaignList.size() > 0) { | 
|                 upsert UpdateCampaignList; | 
|             } | 
|         } | 
|         //SWAG-B3U63C 2018/8/21 更新学会培训的申请备品申请单数 end | 
|     } | 
| } |