黄千龙
2023-03-08 296a7fad75bf71c7988e56aca3023c195808421b
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
trigger ProDocMidTblBefUpd on Product_and_document_middle_table__c (before insert, before update) {
    List<Product2> pnList = new List<Product2>();
    for (Product_and_document_middle_table__c pdmt : Trigger.new) {
        if (Trigger.isInsert || Trigger.isUpdate && pdmt.Product_name__c != Trigger.oldMap.get(pdmt.Id).get('Product_name__c')) {
            if (!String.isBlank(pdmt.Product_name__c)) {
                pnList.add(new Product2(Id = pdmt.Product_name__c));
            }
        }
    }
    
    Map<String, String> pr2Map = new Map<String, String>();
    if (pnList.size() > 0) {
        List<Product2__c> pr2List = ControllerUtil.pr2SelectForSync(pnList);
        for (Product2__c pr2 : pr2List) {
            pr2Map.put(pr2.Product2__c, pr2.Id);
        }
    }
    
    for (Product_and_document_middle_table__c pdmt : Trigger.new) {
        if (pdmt.Product_name__c != null && pr2Map.containsKey(pdmt.Product_name__c)) {
            pdmt.Product2__c = pr2Map.get(pdmt.Product_name__c);
        } else {
            pdmt.Product2__c = null;
        }
    }
}