binxie
2024-01-20 e0de9222da210f9c8eb1a9f5400f936a14923e11
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
118
119
120
121
122
123
124
125
126
trigger DailyReportLink2OlympusCalendar on Daily_Report__c (before insert , before update) {
 
 
    //deloitte-zhj 20231124 本地化导入 start
    if((!Test.isRunningTest())&&System.Label.ByPassTrigger.contains(UserInfo.getUserId())){
        return;
    }
    //deloitte-zhj 20231124 本地化导入 end
 
 
    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
        }
    }
}