李彤
2022-04-02 1949e7ccb3bfab67ad2b16d7e0172851c3f823bb
force-app/main/default/triggers/AccountTrigger.trigger
@@ -2,10 +2,7 @@
 * 客户同步 在SP、GI主担当变化时更新询价权限
 */
trigger AccountTrigger on Account (after insert, after update, before delete, before insert, before update, after delete ) {
    if (StaticParameter.EscapeAccountTrigger) {
System.debug('Escape、EscapeAccountTrigger:::::' + StaticParameter.EscapeAccountTrigger);
        return;
    }
    if ((Trigger.isAfter && Trigger.isInsert) || (Trigger.isAfter && Trigger.isUpdate) || (Trigger.isBefore && Trigger.isDelete)) {
        // 同步到 Account2__c
        AccountTrigger.syncAccount2(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
@@ -130,5 +127,94 @@
            }
        }
        //HWAG-B4PCZ5 2018-09-19 end 
        if (StaticParameter.EscapeAccountTrigger) {
            System.debug('Escape、EscapeAccountTrigger:::::' + StaticParameter.EscapeAccountTrigger);
            return;
        }
        //NFM112 2021/11/10 start
        List<String> IdList = new List<String>();
        for(Account account : Trigger.new){
           Account old = Trigger.oldMap.get(account.Id);
           if(old.FirstParagraph__c != account.FirstParagraph__c  || old.MonthlyPayment__c != account.MonthlyPayment__c){
                IdList.add(account.Id);
            }
        }
        if(IdList.size()>0){
            for(String Id : IdList){
                BatchIF_Log__c iflog = new BatchIF_Log__c();
                iflog.Type__c = 'NFM112';
                iflog.Log__c  = 'callout start\n';
                insert iflog;
                //iflog = [Select Id, Name from BatchIF_Log__c where Id = :iflog.Id];
                //System.debug(Logginglevel.DEBUG, 'NFM112_' + iflog.Name + ' start');
                NFM112Controller.executeNotFuture(iflog.Id, Id);
            }
        }
        //NFM112 2021/11/10 end
    }
 //add            wangweipeng              2022/02/10                            start
    //经销商的性质发生变化,那么需要发邮件,其中一个收件人为大区助理
    //大区助理:根据此经销商所在的那个大区,来判断到底发给谁,每个大区助理都有一个人,目前是存到自定义源数据里面了
    if(Trigger.isBefore){
        //用于存放此经销商是那个大区
        Set<String> setStaff = new Set<String>();
        if(Trigger.isUpdate){
            for (Account acc : Trigger.new) {
                //判断当前修改的客户是否为经销商
                if(acc.RecordTypeId == '01210000000Qem1'){
                    //如果是修改经销商,那么判断此经销商的先款标识是否发生变化,如果发送变化,那么就更新一下大区
                    if(acc.FirstParagraphEnd__c != Trigger.oldMap.get(acc.Id).FirstParagraphEnd__c){
                        setStaff.add(acc.Salesdepartment_HP__c);
                    }
                }
            }
        }else if(Trigger.isInsert){
            for (Account acc : Trigger.new) {
                //判断当前新增的客户是否为经销商
                if(acc.RecordTypeId == '01210000000Qem1'){
                    setStaff.add(acc.Salesdepartment_HP__c);
                }
            }
        }
        if(setStaff.size() > 0){
            //获取对应的自定义元数据
            List<FSE_Regional_Assistant_Account__mdt> usrList = [select id,MasterLabel,DeveloperName,UserName__c,UserId__c from FSE_Regional_Assistant_Account__mdt where MasterLabel in :setStaff];
            if(usrList != null && usrList.size() > 0){
                //获取大区对应的助理人的id
                if(Trigger.isUpdate){
                    for (Account acc : Trigger.new) {
                        for(FSE_Regional_Assistant_Account__mdt fraam : usrList){
                            if(acc.FirstParagraphEnd__c != Trigger.oldMap.get(acc.Id).FirstParagraphEnd__c){
                                if(fraam.MasterLabel == acc.Salesdepartment_HP__c){
                                    acc.FSE_Regional_Assistant_Account__c = fraam.UserId__c;
                                }
                            }
                        }
                    }
                }else if(Trigger.isInsert){
                    for (Account acc : Trigger.new) {
                       for(FSE_Regional_Assistant_Account__mdt fraam : usrList){
                            if(fraam.MasterLabel == acc.Salesdepartment_HP__c){
                                acc.FSE_Regional_Assistant_Account__c = fraam.UserId__c;
                            }
                        }
                    }
                }
            }
        }
    }
    //add            wangweipeng              2022/02/10                            end
    // if(Trigger.isUpdate){
    //     List<String> IdList = new List<String>();
    //     for(Account account : Trigger.new){
    //        Account old = Trigger.oldMap.get(account.Id);
    //        if(old.FirstParagraph__c != account.FirstParagraph__c  || old.MonthlyPayment__c != account.MonthlyPayment__c){
    //                 IdList.add(account.Id);
    //         }
    //     }
    //     if(IdList.size()>0){
    //         UpdateContractAimAmountHandler.sendToSAP(IdList);
    //     }
    // }
}