GWY
2022-05-21 a3460549533111815e7f73d6cef601a58031525d
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
public without sharing class CertificationDetailTriggerHandler {
    
    public static void updateDealerPurchaseDetail(List<CertificationDetails__c> newList, Map<Id, CertificationDetails__c> newMap, 
                                                  List<CertificationDetails__c> oldList, Map<Id, CertificationDetails__c> oldMap) {
        // SBG203证照变更后,新增证照明细,给代理商购买明细中的证照明细字段赋值-ANI辐射证照已更新-新源志勤-XHL
        Map<String,List<CertificationDetails__c>> certificationDetailMap = new Map<String,List<CertificationDetails__c>>();
        List<CertificationDetails__c> detailList = new List<CertificationDetails__c>();
        String dealerId = '';
        for (CertificationDetails__c detail : newList) {
 
            if (detail.ActivitieTypes__c == '销售' && detail.IsActive__c == true) {
                dealerId = detail.CertificationDetailAccountId__c;
                if (certificationDetailMap.containsKey(dealerId)) {
                    detailList =  certificationDetailMap.get(dealerId);
                    detailList.add(detail);
                    certificationDetailMap.put(dealerId, detailList);
                } else {
                    detailList.add(detail);
                    certificationDetailMap.put(dealerId, detailList);
                }
            }
            
            
        }
 
        if (String.isNotBlank(dealerId) && certificationDetailMap != null && certificationDetailMap.size() > 0) {
            Map<String, PurchaseDetails__c> dealerModelQuantityMap = RadiationUtil.GetPurchaseDetailsMap(dealerId);
            if (dealerModelQuantityMap != null && dealerModelQuantityMap.size() > 0) {
                for (CertificationDetails__c detail : certificationDetailMap.get(dealerId)) {
 
                    if ('Delta和Vanta'.equals(detail.ProdustionType__c)) {
 
                        List<String> childModels = new List<String> {'Delta', 'Vanta'};
                        for (String childModel : childModels) {
 
                            if (dealerModelQuantityMap.containsKey(childModel)) {
                                dealerModelQuantityMap.get(childModel).PurchaseDetail__c = detail.Id;
                            }
                            
                        }
 
                    } else {
                        if (dealerModelQuantityMap.containsKey(detail.ProdustionType__c)) {
                            dealerModelQuantityMap.get(detail.ProdustionType__c).PurchaseDetail__c = detail.Id;
                        }
                    }
 
                } 
 
                update dealerModelQuantityMap.values();
 
            }       
        }
 
    }
}