| trigger DailyReportLink2OlympusCalendar on Daily_Report__c (before insert , before update) { | 
|     Map<Date, Id> dateCalendarMap = new Map<Date, Id>(); | 
|     if (Trigger.isInsert) { | 
|         for (Daily_Report__c dr : Trigger.new) { | 
|             dateCalendarMap.put(dr.Reported_Date__c, null); | 
|         } | 
|         if (dateCalendarMap.size() > 0) { | 
|             for (OlympusCalendar__c cal : [ | 
|                         Select Id, Date__c | 
|                         from OlympusCalendar__c | 
|                         Where Date__c in :dateCalendarMap.keySet() | 
|                     ] | 
|                 ) { | 
|                 dateCalendarMap.put(cal.Date__c, cal.Id); | 
|             } | 
|             for (Daily_Report__c dr : Trigger.new) { | 
|                 dr.OlympusCalendar__c = dateCalendarMap.get(dr.Reported_Date__c); | 
|             } | 
|         } | 
|     } | 
|     system.debug('测试触发器' + Trigger.isUpdate); | 
|     if (Trigger.isUpdate || Trigger.isInsert) { | 
|         //system.debug('测试触发器isInsert'+Trigger.isInsert); | 
|         //system.debug('测试触发器isBefore'+Trigger.isBefore); | 
|         /* | 
|         // SWAG-BD28RR  SWAG-BD28RR 2019-6-21修改之前begin | 
|         if(Trigger.isBefore){ | 
|             Map<Date, Map<String, String>> WorkDayMap = New Map<Date, Map<String, String>>(); | 
|             List<Date> allDateList = New List<Date>(); | 
|             for(Daily_Report__c dr : Trigger.new){ | 
|                 allDateList.add(dr.Reported_Date__c); | 
|             } | 
|             allDateList.sort(); | 
|             RentalApplyWebService RAS = New RentalApplyWebService(); | 
|             //WorkDayMap = RAS.getDateMap(allDateList[0],allDateList[allDateList.size()-1],0); | 
|             //system.debug('测试触发器getDateMap@0:::::::::::'+WorkDayMap); | 
|             WorkDayMap = RAS.getDateMap(allDateList[0],allDateList[allDateList.size()-1],1); | 
|             system.debug('测试触发器getDateMap@1:::::::::::'+WorkDayMap); | 
|             for (Daily_Report__c dr : Trigger.new) { | 
|                 integer days = 0; | 
|                 List<String> YMD = New List<String>(); | 
|                 Map<String ,String> buffMid = WorkDayMap.get(dr.Reported_Date__c); | 
|                 if(buffMid!=null){ | 
|                     String BuffString = buffMid.get('Next'); | 
|                     if(BuffString!=null){ | 
|                         YMD = BuffString.split('-'); | 
|                         dr.Closest_Work_Day__c = Date.newInstance(Integer.valueOf(YMD[0]), Integer.valueOf(YMD[1]), Integer.valueOf(YMD[2])) ; | 
|                     }else{ | 
|                         continue; | 
|                     } | 
|                 }else{ | 
|                     continue; | 
|                 } | 
|                 //YMD = WorkDayMap.get(dr.Reported_Date__c).get('Next').split('-'); | 
|             } | 
|         } | 
|         //SWAG-BD28RR  2019-6-21修改之前end | 
|         */ | 
|         // SWAG-BD28RR  2019-6-21修改之后begin | 
|         if (Trigger.isBefore) { | 
|             Map<Date, Map<String, String>> WorkDayMap = New Map<Date, Map<String, String>>(); | 
|             List<Date> allDateList = New List<Date>(); | 
|             for (Daily_Report__c dr : Trigger.new) { | 
|                 if (dr.Submit_Date_Latest__c != null) { | 
|                     allDateList.add(dr.Submit_Date_Latest__c); | 
|                 } | 
|                 if (dr.Reported_Date__c != null) { | 
|                     allDateList.add(dr.Reported_Date__c); | 
|                 } | 
|             } | 
|             allDateList.sort(); | 
|             RentalApplyWebService RAS = New RentalApplyWebService(); | 
|             //WorkDayMap = RAS.getDateMap(allDateList[0],allDateList[allDateList.size()-1],0); | 
|             //system.debug('测试触发器getDateMap@0:::::::::::'+WorkDayMap); | 
|             WorkDayMap = RAS.getDateMap(allDateList[0], allDateList[allDateList.size() - 1], 1); | 
|             system.debug('测试触发器getDateMap@1:::::::::::' + WorkDayMap); | 
|             for (Daily_Report__c dr : Trigger.new) { | 
|                 if (dr.Submit_Date_Latest__c != null) { | 
|                     integer days = 0; | 
|                     List<String> YMD = New List<String>(); | 
|                     Map<String , String> buffMid = WorkDayMap.get(dr.Submit_Date_Latest__c); | 
|                     if (buffMid != null) { | 
|                         String BuffString = buffMid.get('Next'); | 
|                         if (BuffString != null) { | 
|                             YMD = BuffString.split('-'); | 
|                             dr.Closest_Confirm_Work_Day__c = Date.newInstance(Integer.valueOf(YMD[0]), Integer.valueOf(YMD[1]), Integer.valueOf(YMD[2])) ; | 
|                         } else { | 
|                             continue; | 
|                         } | 
|                     } else { | 
|                         continue; | 
|                     } | 
|                 } | 
|             } | 
|             for (Daily_Report__c dr : Trigger.new) { | 
|                 integer days = 0; | 
|                 List<String> YMD = New List<String>(); | 
|                 Map<String , String> buffMid = WorkDayMap.get(dr.Reported_Date__c); | 
|                 if (buffMid != null) { | 
|                     String BuffString = buffMid.get('Next'); | 
|                     if (BuffString != null) { | 
|                         YMD = BuffString.split('-'); | 
|                         dr.Closest_Work_Day__c = Date.newInstance(Integer.valueOf(YMD[0]), Integer.valueOf(YMD[1]), Integer.valueOf(YMD[2])) ; | 
|                     } else { | 
|                         continue; | 
|                     } | 
|                 } else { | 
|                     continue; | 
|                 } | 
|   | 
|   | 
|                 //YMD = WorkDayMap.get(dr.Reported_Date__c).get('Next').split('-'); | 
|             } | 
|             // SWAG-BD28RR  2019-6-21修改之后end | 
|         } | 
|     } | 
| } |