|  |  | 
 |  |  | trigger ConsumableOrderDetail2Trigger on Consumable_order_details2__c (after insert, after update, after delete) { | 
 |  |  |     Set<String> orderSet = new Set<String>(); | 
 |  |  |  | 
 |  |  |      | 
 |  |  |     if (StaticParameter.EscapeOrderDetail2Trigger) { | 
 |  |  |         return ; | 
 |  |  |     } | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |          | 
 |  |  |  | 
 |  |  |     if (orderSet.size()>0){ | 
 |  |  |         // 2018年8月9日 HWAG-B3D9UV  替换 SQL start by 张玉山 | 
 |  |  |         list<Consumable_order_details2__c> allresults =  | 
 |  |  | 
 |  |  |  | 
 |  |  |         //更新消耗品订单的发货日期 | 
 |  |  |         // 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(),DeliverdateminResults.keySet() 合并作为一个List ,遍历List | 
 |  |  |         //获取最早发货时间 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 | 
 |  |  | 
 |  |  |         if (consumableOrderlist.size() > 0){ | 
 |  |  |            update consumableOrderlist; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |          | 
 |  |  |         //更新待确认收货数量 | 
 |  |  |         // 2018年8月9日 HWAG-B3D9UV  替换下面原有SQL 使用 map 完成赋值  start by 张玉山 | 
 |  |  |         map<string,Integer> resultsMap2 =  new map<string,Integer>(); | 
 |  |  | 
 |  |  |             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); | 
 |  |  | 
 |  |  |                                          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'))); | 
 |  |  | 
 |  |  |                     //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); |