李彤
2022-03-25 2682be2d1932fd43e0226c011bb32ae3c5e643bf
force-app/main/default/classes/LastbuyProductHandler.cls
@@ -33,6 +33,10 @@
        ReservedPro();
    }
    protected override void afterDelete(){
        ReservedPro();
    }
    private void ReservedPro(){
        //1.新建或者更新产品后,若预留产品有效,“预留产品”标识为true
        if(trigger.isInsert || trigger.isUpdate){
@@ -63,24 +67,30 @@
        //2.(1)"是否有效" 变为 false  检索产品主数据下的所有预留产品,全无效则把产品主数据的"预留产品"标识 变为 false
        //  (2)"产品"    预留产品 更改 产品主数据之前的产品 -- 检索产品主数据下的所有预留产品(没有/全无效)
        //                                                  "预留产品"标识 变为 false
        if(trigger.isUpdate){
        if(trigger.isUpdate || trigger.isDelete){
            //"是否有效" 变为 "否" 时 所对应的产品主数据Id &&预留产品 更改 产品主数据之前的产品
            List<Id> pfList = new List<Id>();  
            for(LastbuyProduct__c lbp1 : newList){
                LastbuyProduct__c oldLbp1 = oldMap.get(lbp1.Id);
                if(oldLbp1.effectiveFLG__c != lbp1.effectiveFLG__c){
                    System.debug('lt123无效?'+lbp1.effectiveFLG__c);
                    if(lbp1.effectiveFLG__c == false){
                        System.debug('lt123无效'+lbp1.effectiveFLG__c);
                        pfList.add(lbp1.ProductName__c);
            if(trigger.isUpdate){
                for(LastbuyProduct__c lbp1 : newList){
                    LastbuyProduct__c oldLbp1 = oldMap.get(lbp1.Id);
                    if(oldLbp1.effectiveFLG__c != lbp1.effectiveFLG__c){
                        if(lbp1.effectiveFLG__c == false){
                            pfList.add(lbp1.ProductName__c);
                        }
                    }
                    //产品发生变化时,检索两个产品的标识
                    if(oldLbp1.ProductName__c != lbp1.ProductName__c){
                        pfList.add(oldLbp1.ProductName__c);
                    }
                }
                //产品发生变化时,检索两个产品的标识
                if(oldLbp1.ProductName__c != lbp1.ProductName__c){
                    pfList.add(oldLbp1.ProductName__c);
            }
            else if(trigger.isDelete){
                for(LastbuyProduct__c lbp2 : oldList){
                    pfList.add(lbp2.ProductName__c);
                }
            }
            
            System.debug('lt123需检索所有预留产品的产品ID-pfList'+pfList);
@@ -90,7 +100,6 @@
                Map<String,LastbuyProduct__c> lbpMap = new Map<String,LastbuyProduct__c>();
                //发生变化的产品Id下的所有预留产品
                List<LastbuyProduct__c> lbpList = [select id, effectiveFLG__c,ProductName__c from LastbuyProduct__c where ProductName__c in :pfList];
                System.debug('lt123变化的预留产品lbpList'+lbpList);
                //p1List effectiveFLG__c为true 的产品Id
                List<Id> p1List = new List<Id>();
                //p2List 这个产品所有的预留产品都无效 的产品Id
@@ -125,7 +134,6 @@
                List<Product2> prflgList = new List<Product2>();
                for(Product2 pro1 : pro1List){
                    pro1.LastbuyProductFLG__c = false;
                    System.debug('lt123预留产品标识'+pro1.LastbuyProductFLG__c);
                    prflgList.add(pro1);
                }
                if(prflgList.size() > 0){
@@ -133,6 +141,7 @@
                }
            }
        }
    }
}