| trigger XinEventServicePileUp on Event_Service__c (after delete, after update) { | 
|     List<String> serviceIds = new List<String>(); | 
|      | 
|     if (Trigger.isDelete) { | 
|         for (Event_Service__c es : Trigger.old) { | 
|             serviceIds.add(es.Service__c);               // 必須のはず | 
|         } | 
|     } else { | 
|         for (Event_Service__c es : Trigger.new) { | 
|             serviceIds.add(es.Service__c);               // 必須のはず | 
|         } | 
|     } | 
|      | 
|     // 先に親をlockする | 
|     List<Maintenance_Contract__c> mcs = ControllerUtil.mcSelectForLock(serviceIds); | 
|   | 
|     // 最大フォロー日 | 
|     AggregateResult[] ar = ControllerUtil.selectForService_Last_Follow_Up_Date(serviceIds); | 
|     Map<String, Date> maxDateMap = new Map<String, Date>(); | 
|     for (Integer i = 0; i < ar.size(); i++) { | 
|         maxDateMap.put(String.valueOf(ar[i].get('Service__c')), Date.valueOf(ar[i].get('maxD'))); | 
|     } | 
|     List<Maintenance_Contract__c> upds = new List<Maintenance_Contract__c>(); | 
|     for (Maintenance_Contract__c mc : mcs) { | 
|         if (mc.Xin_Last_Follow_Day__c != maxDateMap.get(mc.Id)) { | 
|             mc.Xin_Last_Follow_Day__c = maxDateMap.get(mc.Id); | 
|             upds.add(mc); | 
|         } | 
|     } | 
|     if (upds.size() > 0) { | 
|         StaticParameter.EscapeMaintenanceContractAfterUpdateTrigger = true; | 
| System.debug('XinEventServicePileUpから、サビコントリガをEscape'); | 
| System.debug('EscapeMaintenanceContractAfterUpdateTrigger:::::' + StaticParameter.EscapeMaintenanceContractAfterUpdateTrigger); | 
|         ControllerUtil.updMcList(upds); | 
|     } | 
| } |