| | |
| | | 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>(); |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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>(); |
| | |
| | | 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'))); |
| | | } |
| | | // 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 |
| | |
| | | //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); |
| | |
| | | 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 |