张宇恒
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
trigger PAEDecisionRecordTrigger on PAE_DecisionRecord__c (after update) {
    if (Trigger.isAfter && Trigger.isUpdate) {
        List<Id> repairIds = new List<Id>();
        List<Id> qisIds = new List<Id>();
        for (PAE_DecisionRecord__c record : Trigger.new){
            // 分别获取 修理和qis的id
            repairIds.add(record.PAE_Repair__c);
            qisIds.add(record.PAE_QIS__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]);
 
        Map<Id,Repair__c> updateRepairs = new  Map<Id,Repair__c>();
        Map<Id,QIS_Report__c> updateQiss = new  Map<Id,QIS_Report__c>();
        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{
                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);
                    }
                }
            }
            
        }
 
        update updateRepairs.values();
        update updateQiss.values();
    }
}