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 
 | 
        } 
 | 
    } 
 | 
} 
 |