|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | system.debug('orderSet---------------1--------------'+orderSet); | 
|---|
|  |  |  | if (orderSet.size()>0){ | 
|---|
|  |  |  | // 2018年8月9日 HWAG-B3D9UV  替换 SQL start by 张玉山 | 
|---|
|  |  |  | list<Consumable_order_details2__c> allresults = | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 张玉山 | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //更新消耗品订单的发货日期 | 
|---|
|  |  |  | // 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); | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | ){ | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | //     }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 张玉山 | 
|---|
|  |  |  | 
|---|
|  |  |  | if (consumableOrderlist.size() > 0){ | 
|---|
|  |  |  | update consumableOrderlist; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //更新待确认收货数量 | 
|---|
|  |  |  | // 2018年8月9日 HWAG-B3D9UV  替换下面原有SQL 使用 map 完成赋值  start by 张玉山 | 
|---|
|  |  |  | map<string,Integer> resultsMap2 =  new map<string,Integer>(); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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) { | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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)){ | 
|---|
|  |  |  | 
|---|
|  |  |  | deletetMap.put(key,detail1); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | system.debug('detail1========================'+detail1); | 
|---|
|  |  |  | if (detail1 == null) continue; | 
|---|
|  |  |  | detail1.Consumable_Arrivecount__c = count; | 
|---|
|  |  |  |  | 
|---|