binxie
2024-01-18 0e0dd1e20e7211f3c3c11d77a41090d998dfd06c
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
trigger PAEDecisionRecordTrigger on PAE_DecisionRecord__c (after update) {
    
    //deloitte-zhj 20231124 本地化导入 start
    if((!Test.isRunningTest())&&System.Label.ByPassTrigger.contains(UserInfo.getUserId())){
        return;
    }
    //deloitte-zhj 20231124 本地化导入 end
    
    if (Trigger.isAfter && Trigger.isUpdate) {
        List<Id> repairIds = new List<Id>();
        List<Id> qisIds = new List<Id>();
        List<Id> repIds = new List<Id>();      //20210907 lt add
        for (PAE_DecisionRecord__c record : Trigger.new){
            // 分别获取 修理和qis的id
            repairIds.add(record.PAE_Repair__c);
            qisIds.add(record.PAE_QIS__c);
            //20210907 lt add
            //获取 报告书的id
            repIds.add(record.PAE_Report__c);
        }
        // 取对应修理和qis的id信息
        Map<Id,Repair__c> repairMap = new Map<Id,Repair__c>([select id,name,PAE_DetermineResults__c,PAE_reappear_confirm__c 
                                                                from Repair__c
                                                                where Id in :repairIds]);
        Map<Id,QIS_Report__c> oisMap = new Map<Id,QIS_Report__c>([select id,name,PAE_DetermineResults__c,PAE_reappear_confirm__c 
                                                                from QIS_Report__c
                                                                where Id in :qisIds]);
        //20210907 lt add
        //取 报告书的id信息
        Map<Id,Report__c> repMap = new Map<Id,Report__c>([select id,name,PAE_DetermineResults__c,PAE_reappear_confirm__c 
                                                                from Report__c
                                                                where Id in :repIds]);
 
        Map<Id,Repair__c> updateRepairs = new  Map<Id,Repair__c>();
        Map<Id,QIS_Report__c> updateQiss = new  Map<Id,QIS_Report__c>();
        Map<Id,Report__c> updateReps = new  Map<Id,Report__c>();   //20210907 lt add
        for (PAE_DecisionRecord__c record : Trigger.new){
            if (String.isNotBlank(record.PAE_Repair__c)) {
                Repair__c rep = repairMap.get(record.PAE_Repair__c);
                // PAE判定结果
                if (Trigger.oldMap.get(record.Id).PAE_DetermineResults_Text__c != record.PAE_DetermineResults_Text__c){
                    Id asrcRecordTypeId = Schema.SObjectType.PAE_DecisionRecord__c.getRecordTypeInfosByDeveloperName().get('ASRCDecision').getRecordTypeId();
                    if(record.RecordtypeId == asrcRecordTypeId){
                        rep.PAE_Determine__c = record.PAE_DetermineResults_Text__c;
                    }else{
                        rep.PAE_DetermineAC__c = record.PAE_DetermineResults_Text__c;
                    }
                    updateRepairs.put(record.PAE_Repair__c,rep);
                }
                // 再现结果确认
                if (Trigger.oldMap.get(record.Id).PAE_reappear_confirm__c != record.PAE_reappear_confirm__c){
                    rep.PAE_reappear_confirm__c = record.PAE_reappear_confirm__c;
                    if (updateRepairs.get(rep.Id) == null){
                        updateRepairs.put(record.PAE_Repair__c,rep);
                    }
                }
            }
            else if(String.isNotBlank(record.PAE_QIS__c)){   //20210907 lt add(if)
                QIS_Report__c qis = oisMap.get(record.PAE_QIS__c);
                System.debug('++++++-----1 ' + qis);
                // PAE判定结果
                if (Trigger.oldMap.get(record.Id).PAE_DetermineResults_Text__c != record.PAE_DetermineResults_Text__c){
                    Id asrcRecordTypeId = Schema.SObjectType.PAE_DecisionRecord__c.getRecordTypeInfosByDeveloperName().get('ASRCDecision').getRecordTypeId();
                    if(record.RecordtypeId == asrcRecordTypeId){
                        qis.PAE_Determine__c = record.PAE_DetermineResults_Text__c;
                    }else{
                        qis.PAE_DetermineAC__c = record.PAE_DetermineResults_Text__c;
                    }
                    updateQiss.put(record.PAE_QIS__c,qis);
                }
                // 再现结果确认
                if (Trigger.oldMap.get(record.Id).PAE_reappear_confirm__c != record.PAE_reappear_confirm__c){
                    // System.debug('++++++----- ' + qis);
                    // System.debug('++++++----- ' + record.PAE_reappear_confirm__c);
                    // System.debug('++++++----- ' + qis.PAE_reappear_confirm__c);
                    // System.debug('++++++----- ' + qis.PAE_reappear_confirm__c + record.PAE_reappear_confirm__c);
                    qis.PAE_reappear_confirm__c = record.PAE_reappear_confirm__c;
                    if (updateQiss.get(qis.Id) == null){
                        updateQiss.put(record.PAE_QIS__c,qis);
                    }
                }
            }
            //20210907 lt add
            //if(String.isNotBlank(record.PAE_Report__c))
            else {
                Report__c report = repMap.get(record.PAE_Report__c);
                // PAE判定结果
                if (Trigger.oldMap.get(record.Id).PAE_DetermineResults_Text__c != record.PAE_DetermineResults_Text__c){
                    Id asrcRecordTypeId = Schema.SObjectType.PAE_DecisionRecord__c.getRecordTypeInfosByDeveloperName().get('ASRCDecision').getRecordTypeId();
                    if(record.RecordtypeId == asrcRecordTypeId){
                        report.PAE_Determine__c = record.PAE_DetermineResults_Text__c;
                    }else{
                        report.PAE_DetermineAC__c = record.PAE_DetermineResults_Text__c;
                    }
                    updateReps.put(record.PAE_Report__c,report);
                }
                // 再现结果确认
                if (Trigger.oldMap.get(record.Id).PAE_reappear_confirm__c != record.PAE_reappear_confirm__c){
                    report.PAE_reappear_confirm__c = record.PAE_reappear_confirm__c;
                    if (updateReps.get(report.Id) == null){
                        updateReps.put(record.PAE_Report__c,report);
                    }
                }
 
            }
            
        }
 
        update updateRepairs.values();
        update updateQiss.values();
        update updateReps.values();   //20210907 lt add
    }
}