From 5b5c1e16deaa3a9d6d0ed1ffca390655ed103df7 Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期五, 14 七月 2023 14:56:14 +0800
Subject: [PATCH] lex community

---
 force-app/main/default/triggers/ConsumableOrderDetail2Trigger.trigger |  170 ++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 102 insertions(+), 68 deletions(-)

diff --git a/force-app/main/default/triggers/ConsumableOrderDetail2Trigger.trigger b/force-app/main/default/triggers/ConsumableOrderDetail2Trigger.trigger
index 3606100..8529340 100644
--- a/force-app/main/default/triggers/ConsumableOrderDetail2Trigger.trigger
+++ b/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,6 @@
     }
 
         
-
     if (orderSet.size()>0){
         // 2018骞�8鏈�9鏃� HWAG-B3D9UV  鏇挎崲 SQL start by 寮犵帀灞�
         list<Consumable_order_details2__c> allresults = 
@@ -102,72 +101,103 @@
 
         //鏇存柊娑堣�楀搧璁㈠崟鐨勫彂璐ф棩鏈�
         // 2018骞�8鏈�9鏃� HWAG-B3D9UV  鏇挎崲涓嬮潰鍘熸湁SQL 浣跨敤 map 瀹屾垚璧嬪��  start by 寮犵帀灞�
-        map<string,Date> DeliverdateResults =  new map<string,Date>();
+        Set<string> resultsKeySet =  new Set<String>();
+        map<string,Date> DeliverdateResults =  new map<string,Date>();//鏈�鏂板彂璐ф椂闂�
+        map<string,Date> DeliverdateminResults =  new map<string,Date>();//鏈�鏃╁彂璐ф椂闂�
         for(Consumable_order_details2__c results1 : allresults){
             if(results1.Dealer_Arrive__c == true || results1.Dealer_Returned__c== true){
                 continue;
             }
             string Consumable_order_minor_str = String.valueOf(results1.Consumable_order_minor__c);
-
             if(DeliverdateResults.containsKey(Consumable_order_minor_str)){
                 if(DeliverdateResults.get(Consumable_order_minor_str)
                     < results1.Deliver_date__c
                     ){
                     DeliverdateResults.put(Consumable_order_minor_str,results1.Deliver_date__c);
+                    resultsKeySet.add(Consumable_order_minor_str);
                 }
-
             }else{
                 DeliverdateResults.put(Consumable_order_minor_str,results1.Deliver_date__c);
+                resultsKeySet.add(Consumable_order_minor_str);
             }
-        }
-
-        consumableOrderlist = new List<Consumable_Order__c>();
-        for (string key : DeliverdateResults.keySet()) {
-           if(DeliverdateResults.get(key)!=null){
-                Consumable_Order__c consumableOrder1 = new Consumable_Order__c();
-                consumableOrder1.Id = key;
-                consumableOrder1.Shipment_Date__c = DeliverdateResults.get(key);
-                consumableOrderlist.add(consumableOrder1);
-            }
-
-        }
-        // 2018骞�8鏈�9鏃� HWAG-B3D9UV  鏇挎崲涓嬮潰鍘熸湁SQL 浣跨敤 map 瀹屾垚璧嬪��  end by 寮犵帀灞�
-        
-        //鑾峰彇鏃╁彂璐ф棩鏈� start
-        system.debug('DeliverdateResults==============' + DeliverdateResults);
-        system.debug('璧板埌鏈�鏃╁彂璐ф棩鏈�');
-        map<string,Date> DeliverdateminResults =  new map<string,Date>();
-        for(Consumable_order_details2__c results1 : allresults){
-            if(results1.Dealer_Arrive__c == true || results1.Dealer_Returned__c== true){
-                continue;
-            }
-            string Consumable_order_minor_str = String.valueOf(results1.Consumable_order_minor__c);
+            //鑾峰彇鏈�鏃╁彂璐ф椂闂� pk part1 start
             if(DeliverdateminResults.containsKey(Consumable_order_minor_str)){
                 if(DeliverdateminResults.get(Consumable_order_minor_str)
                     > results1.Deliver_date__c
                     ){
-                        DeliverdateminResults.put(Consumable_order_minor_str,results1.Deliver_date__c);
+                    DeliverdateminResults.put(Consumable_order_minor_str,results1.Deliver_date__c);
+                    resultsKeySet.add(Consumable_order_minor_str);
                 }
-
             }else{
                 DeliverdateminResults.put(Consumable_order_minor_str,results1.Deliver_date__c);
+                resultsKeySet.add(Consumable_order_minor_str);
             }
+            //鑾峰彇鏈�鏃╁彂璐ф椂闂� pk part1 end
         }
-        List<Consumable_Order__c> consumableOrderminlist = new List<Consumable_Order__c>();
-        for (string key : DeliverdateminResults.keySet()) {
-           if(DeliverdateminResults.get(key)!=null){
-                Consumable_Order__c consumableOrder1 = new Consumable_Order__c();
-                consumableOrder1.Id = key;
-                consumableOrder1.First_Delivery__c = DeliverdateResults.get(key);
-                consumableOrderminlist.add(consumableOrder1);
+        
+        //涓や釜DeliverdateResults.keySet()锛孌eliverdateminResults.keySet() 鍚堝苟浣滀负涓�涓狶ist 锛岄亶鍘哃ist
+        //鑾峰彇鏈�鏃╁彂璐ф椂闂� pk part2 start
+        consumableOrderlist = new List<Consumable_Order__c>();
+        for(string temp : resultsKeySet){
+            Consumable_Order__c consumableOrder1 = new Consumable_Order__c();
+            consumableOrder1.Id = temp;
+            if(DeliverdateResults.get(temp)!=null){
+                consumableOrder1.Shipment_Date__c = DeliverdateResults.get(temp);
             }
+            if(DeliverdateminResults.get(temp)!=null){
+                consumableOrder1.First_Delivery__c = DeliverdateResults.get(temp);
+            }
+            consumableOrderlist.add(consumableOrder1);
         }
+        
+        //鑾峰彇鏈�鏃╁彂璐ф椂闂� pk part2 end
+        // List<Consumable_Order__c> consumableOrderminlist = new List<Consumable_Order__c>();//鏈�鏃╁彂璐ф椂闂�
+        // for (string key : DeliverdateminResults.keySet()) {
+        //    if(DeliverdateminResults.get(key)!=null){
+        //         Consumable_Order__c consumableOrder1 = new Consumable_Order__c();
+        //         consumableOrder1.Id = key;
+        //         consumableOrder1.First_Delivery__c = DeliverdateResults.get(key);
+        //         consumableOrderminlist.add(consumableOrder1);
+        //     }
+        // }
+        
+        // 2018骞�8鏈�9鏃� HWAG-B3D9UV  鏇挎崲涓嬮潰鍘熸湁SQL 浣跨敤 map 瀹屾垚璧嬪��  end by 寮犵帀灞�
+        
+        //鑾峰彇鏃╁彂璐ф棩鏈� start
+        // system.debug('DeliverdateResults==============' + DeliverdateResults);
+        // system.debug('璧板埌鏈�鏃╁彂璐ф棩鏈�');
+        // map<string,Date> DeliverdateminResults =  new map<string,Date>();
+        // for(Consumable_order_details2__c results1 : allresults){
+        //     if(results1.Dealer_Arrive__c == true || results1.Dealer_Returned__c== true){
+        //         continue;
+        //     }
+        //     string Consumable_order_minor_str = String.valueOf(results1.Consumable_order_minor__c);
+        //     if(DeliverdateminResults.containsKey(Consumable_order_minor_str)){
+        //         if(DeliverdateminResults.get(Consumable_order_minor_str)
+        //             > results1.Deliver_date__c
+        //             ){
+        //                 DeliverdateminResults.put(Consumable_order_minor_str,results1.Deliver_date__c);
+        //         }
 
-        if(consumableOrderminlist.size() > 0){
-            update consumableOrderminlist; 
-        }
-        system.debug('DeliverdateResults==============' + DeliverdateResults);
-        //鑾峰彇鏈�鏃╁彂璐ф棩鏈� end
+        //     }else{
+        //         DeliverdateminResults.put(Consumable_order_minor_str,results1.Deliver_date__c);
+        //     }
+        // }
+        // List<Consumable_Order__c> consumableOrderminlist = new List<Consumable_Order__c>();
+        // for (string key : DeliverdateminResults.keySet()) {
+        //    if(DeliverdateminResults.get(key)!=null){
+        //         Consumable_Order__c consumableOrder1 = new Consumable_Order__c();
+        //         consumableOrder1.Id = key;
+        //         consumableOrder1.First_Delivery__c = DeliverdateResults.get(key);
+        //         consumableOrderminlist.add(consumableOrder1);
+        //     }
+        // }
+
+        // if(consumableOrderminlist.size() > 0){
+        //     update consumableOrderminlist; 
+        // }
+        // system.debug('DeliverdateResults==============' + DeliverdateResults);
+        // //鑾峰彇鏈�鏃╁彂璐ф棩鏈� end
 
         /* 2018骞�8鏈�9鏃� HWAG-B3D9UV  鍘熸湁SQL 涓庤祴鍊� start by 寮犵帀灞�
         AggregateResult[] results1 = [SELECT Consumable_order_minor__c,max(Deliver_date__c) Deliver_date__c
@@ -190,7 +220,7 @@
         if (consumableOrderlist.size() > 0){
            update consumableOrderlist;
         }
-
+        
         //鏇存柊寰呯‘璁ゆ敹璐ф暟閲�
         // 2018骞�8鏈�9鏃� HWAG-B3D9UV  鏇挎崲涓嬮潰鍘熸湁SQL 浣跨敤 map 瀹屾垚璧嬪��  start by 寮犵帀灞�
         map<string,Integer> resultsMap2 =  new map<string,Integer>();
@@ -220,6 +250,7 @@
             Consumable_Order__c consumableOrder2 = new Consumable_Order__c();
             consumableOrder2.Id = strOrder;
             consumableOrder2.Delivery_detail_count__c = cnt;
+            if(consumableOrder2.Delivery_detail_count__c == 0){consumableOrder2.More_than_seven_days__c = 0;}
             consumableOrderlist.add(consumableOrder2);
         }
 
@@ -253,10 +284,11 @@
            update consumableOrderlist;
         }
     }
-
+    //Back up by DTT - Li Jun 2023-06-14 Start for reduce soql times
     // 2018骞�8鏈�9鏃� HWAG-B3D9UV  鑾峰彇鎵�鏈夌殑record ID start by 寮犵帀灞�
-    List<RecordType> allrtList = [select Id,DeveloperName from RecordType where SobjectType = 'Consumable_orderdetails__c'];
+    //List<RecordType> allrtList = [select Id,DeveloperName from RecordType where SobjectType = 'Consumable_orderdetails__c'];
     // 2018骞�8鏈�9鏃� HWAG-B3D9UV  鑾峰彇鎵�鏈夌殑record ID end by 寮犵帀灞�
+    //Back up by DTT - Li Jun 2023-06-14 Start
     //鍒拌揣鍜岃繑鍝佹椂,鐢熸垚鎴栦慨鏀规秷璐瑰搧璁㈣揣鏄庣粏
     Set<String> arrivedSet = new Set<String>();
     Set<String> returnSet = new Set<String>();
@@ -295,7 +327,6 @@
             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>();
-            
             for (Consumable_orderdetails__c detail1 : detail1List) {
                 String key = '' + detail1.Consumable_order__c + detail1.Asset_Model_No__c;
                 detail1Map.put(key, detail1);
@@ -316,26 +347,30 @@
                                          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')));
             }
-            // 2018骞�8鏈�9鏃� HWAG-B3D9UV  鏇夸唬涓嬮潰SQL select start by 寮犵帀灞�
-            List<RecordType> rtList = new List<RecordType>();
-            for(RecordType rtl : allrtList){
-                if('Detail1_Arrival'.equals(rtl.DeveloperName)){
-                    rtList.add(rtl);
-                }
-            }
+            //Back up by DTT - Li Jun 2023-06-14 Start
+            // 2018骞�8鏈�9鏃� HWAG-B3D9UV  鏇夸唬涓嬮潰SQL select start by 寮犵帀灞�           
+            // List<RecordType> rtList = new List<RecordType>();
+            // for(RecordType rtl : allrtList){
+            //     if('Detail1_Arrival'.equals(rtl.DeveloperName)){
+            //         rtList.add(rtl);
+            //     }
+            // }
             // 2018骞�8鏈�9鏃� HWAG-B3D9UV  鏇夸唬涓嬮潰SQL select end by 寮犵帀灞�
+            //Back up by DTT - Li Jun 2023-06-14 End          
 
             /* 2018骞�8鏈�9鏃� HWAG-B3D9UV  鍘熻幏鍙� recordtype start by 寮犵帀灞�
             List<RecordType> rtList = [select Id from RecordType where DeveloperName = 'Detail1_Arrival' and SobjectType = 'Consumable_orderdetails__c'];
              2018骞�8鏈�9鏃� HWAG-B3D9UV  鍘熻幏鍙� recordtype end by 寮犵帀灞� */
-            Id recordTypeId = null;
-            if (rtList.size() > 0) recordTypeId = rtList[0].Id;
-
+            //Back up by DTT - Li Jun 2023-06-14 Start
+            // Id recordTypeId = null;
+            // if (rtList.size() > 0) recordTypeId = rtList[0].Id;
+            //Back up by DTT - Li Jun 2023-06-14 End            
+            Id recordtypeId = Schema.SObjectType.Consumable_Orderdetails__c.getRecordTypeInfosByDeveloperName().get('Detail1_Arrival').getRecordTypeId();
             results = [select Consumable_order__c, count(Id) noCount 
                        from Consumable_orderdetails__c 
                        where Consumable_order__c in :arrivedSet 
@@ -355,7 +390,6 @@
                     //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;
-
                     //if (upsertMap.get(key) != null) continue;
                     Integer count = keyCount.get(key);
                     Consumable_orderdetails__c detail1 = detail1Map.get(key);
@@ -525,22 +559,22 @@
                 String key = '' + ar.get('Consumable_Return_order__c') + ar.get('Asset_Model_No__c');
                 keyCount.put(key, Integer.valueOf(ar.get('recordCount')));
             }
-
+             //Back up by DTT - Li Jun 2023-06-14 Start for reduce soql times
             // 2018骞�8鏈�9鏃� HWAG-B3D9UV  鏇夸唬涓嬮潰SQL select start by 寮犵帀灞�
-            List<RecordType> rtList = new List<RecordType>();
-            for(RecordType rtl : allrtList){
-                if('Detail1_ReturnGoods'.equals(rtl.DeveloperName)){
-                    rtList.add(rtl);
-                }
-            }
+            // List<RecordType> rtList = new List<RecordType>();
+            // for(RecordType rtl : allrtList){
+            //     if('Detail1_ReturnGoods'.equals(rtl.DeveloperName)){
+            //         rtList.add(rtl);
+            //     }
+            // }
             // 2018骞�8鏈�9鏃� HWAG-B3D9UV  鏇夸唬涓嬮潰SQL select end by 寮犵帀灞�
-
+             //Back up by DTT - Li Jun 2023-06-14 End
             /* 2018骞�8鏈�9鏃� HWAG-B3D9UV  鍘熻幏鍙� recordtype start by 寮犵帀灞�
             List<RecordType> rtList = [select Id from RecordType where DeveloperName = 'Detail1_ReturnGoods' and SobjectType = 'Consumable_orderdetails__c'];
              2018骞�8鏈�9鏃� HWAG-B3D9UV  鍘熻幏鍙� recordtype end by 寮犵帀灞� */
 
-            Id recordTypeId = null;
-            if (rtList.size() > 0) recordTypeId = rtList[0].Id;
+            Id recordTypeId = Schema.SObjectType.Consumable_Orderdetails__c.getRecordTypeInfosByDeveloperName().get('Detail1_ReturnGoods').getRecordTypeId();
+            //if (rtList.size() > 0) recordTypeId = rtList[0].Id;
 
             results = [select Consumable_order__c, count(Id) noCount 
                        from Consumable_orderdetails__c 

--
Gitblit v1.9.1