高章伟
2022-02-24 2aa8da8af66aa8ae00f25831aed6bb0364176e7b
force-app/main/default/triggers/ConsumableOrderDetail2Trigger.trigger
@@ -1,6 +1,6 @@
trigger ConsumableOrderDetail2Trigger on Consumable_order_details2__c (after insert, after update, after delete) {
    Set<String> orderSet = new Set<String>();
    if (StaticParameter.EscapeOrderDetail2Trigger) {
        return ;
    }
@@ -27,7 +27,7 @@
    }
        
    system.debug('orderSet---------------1--------------'+orderSet);
    if (orderSet.size()>0){
        // 2018年8月9日 HWAG-B3D9UV  替换 SQL start by 张玉山
        list<Consumable_order_details2__c> allresults = 
@@ -35,6 +35,7 @@
            Dealer_Returned__c, Dealer_Arrive__c, RemoveBox_No__c,Cancellation_Date__c
            FROM Consumable_order_details2__c
             WHERE Consumable_order_minor__c in :orderSet ];
        system.debug('allresults'+allresults);
        // 2018年8月9日 HWAG-B3D9UV  end by 张玉山
        
        // 2018年8月9日 HWAG-B3D9UV  替换下面原有SQL 使用 map 完成赋值 start by 张玉山
@@ -108,7 +109,7 @@
                continue;
            }
            string Consumable_order_minor_str = String.valueOf(results1.Consumable_order_minor__c);
            system.debug('---------------2---------------' + DeliverdateResults.containsKey(Consumable_order_minor_str));
            if(DeliverdateResults.containsKey(Consumable_order_minor_str)){
                if(DeliverdateResults.get(Consumable_order_minor_str)
                    < results1.Deliver_date__c
@@ -167,7 +168,7 @@
            update consumableOrderminlist; 
        }
        system.debug('DeliverdateResults==============' + DeliverdateResults);
        //获取最早发货日期 end
        // //获取最早发货日期 end
        /* 2018年8月9日 HWAG-B3D9UV  原有SQL 与赋值 start by 张玉山
        AggregateResult[] results1 = [SELECT Consumable_order_minor__c,max(Deliver_date__c) Deliver_date__c
@@ -263,6 +264,7 @@
    if (trigger.isUpdate || trigger.isInsert || trigger.isDelete){
        if (trigger.isUpdate || trigger.isInsert){
            for (Consumable_order_details2__c detail2 : Trigger.New) {
                system.debug('detail2==========='+detail2);
                Consumable_order_details2__c oldDetail2 = null;
                if (Trigger.isUpdate) oldDetail2 = Trigger.oldMap.get(detail2.Id);
                if (detail2.Consumable_Arrived_order__c != null) {
@@ -295,7 +297,7 @@
            Map<Id, Consumable_order__c> arrivedMap = new Map<Id, Consumable_order__c>([select Id, RecordType.DeveloperName, Name from Consumable_order__c where Id in :arrivedSet]);
            List<Consumable_orderdetails__c> detail1List = [select Id, Name, Asset_Model_No__c, Consumable_count__c, Consumable_order__c from Consumable_orderdetails__c where Consumable_order__c in :arrivedSet];
            Map<String,Consumable_orderdetails__c> detail1Map = new Map<String,Consumable_orderdetails__c>();
            system.debug('detail1List'+detail1List);
            for (Consumable_orderdetails__c detail1 : detail1List) {
                String key = '' + detail1.Consumable_order__c + detail1.Asset_Model_No__c;
                detail1Map.put(key, detail1);
@@ -316,7 +318,7 @@
                                         AND (RemoveBox_No__c=null or RemoveBox_No__c=1) 
                                         group by Consumable_Arrived_order__c, Asset_Model_No__c];
            Map<String, Integer> keyCount = new Map<String, Integer>();
            for(AggregateResult ar: results){               
                String key = '' + ar.get('Consumable_Arrived_order__c') + ar.get('Asset_Model_No__c');
                keyCount.put(key, Integer.valueOf(ar.get('recordCount')));
@@ -351,11 +353,13 @@
            Map<String, String> assetModelNoMap = new Map<String, String>();
            if (trigger.isUpdate || trigger.isInsert){
                for (Consumable_order_details2__c detail2 : Trigger.New) {  
                    system.debug('detail2'+detail2);
                    //Dataloaderで初期在庫登録をしたあと、データ修正が入ったときに明細1が更新されない。
                    //if (trigger.isUpdate && detail2.ManualRegisteredStock__c == true) continue;                  
                    if (detail2.Consumable_Arrived_order__c == null) continue;
                    String key = '' + detail2.Consumable_Arrived_order__c + detail2.Asset_Model_No__c;
                    system.debug('key'+key);
                    system.debug('detail1Map==============>'+detail1Map);
                    //if (upsertMap.get(key) != null) continue;
                    Integer count = keyCount.get(key);
                    Consumable_orderdetails__c detail1 = detail1Map.get(key);
@@ -364,6 +368,7 @@
                    detail1.Consumable_Arrivecount__c = count;
                    if (detail1.Id == null) {
                        Consumable_order__c co = arrivedMap.get(detail2.Consumable_Arrived_order__c);
                        system.debug('arrivedMap=============='+arrivedMap);
                        Integer index = noCount.get(co.Id);
                        if (index == null) index = 0;
                        if(assetModelNoMap.containsKey(detail2.Asset_Model_No__c)){
@@ -410,6 +415,7 @@
                        deletetMap.put(key,detail1);
                        continue;
                    }
                    system.debug('detail1========================'+detail1);
                    if (detail1 == null) continue;
                    detail1.Consumable_Arrivecount__c = count;