张宇恒
2022-12-23 ec47f5ab5923a315bf22e0df5af7371e9668589e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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
        }
    }
}