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