From 90fac0710272079084730d97f6467ce87cd82448 Mon Sep 17 00:00:00 2001 From: buli <137736985@qq.com> Date: 星期五, 07 七月 2023 14:29:21 +0800 Subject: [PATCH] ProdLEXCode0707 --- force-app/main/default/triggers/ConsumableOrderDetail2Trigger.trigger | 1441 +++++++++++++++++++++++++++++++++------------------------ 1 files changed, 830 insertions(+), 611 deletions(-) diff --git a/force-app/main/default/triggers/ConsumableOrderDetail2Trigger.trigger b/force-app/main/default/triggers/ConsumableOrderDetail2Trigger.trigger index 8529340..ae0c34a 100644 --- a/force-app/main/default/triggers/ConsumableOrderDetail2Trigger.trigger +++ b/force-app/main/default/triggers/ConsumableOrderDetail2Trigger.trigger @@ -1,76 +1,97 @@ -trigger ConsumableOrderDetail2Trigger on Consumable_order_details2__c (after insert, after update, after delete) { - Set<String> orderSet = new Set<String>(); - - if (StaticParameter.EscapeOrderDetail2Trigger) { - return ; +trigger ConsumableOrderDetail2Trigger on Consumable_order_details2__c( + after insert, + after update, + after delete +) { + Set<String> orderSet = new Set<String>(); + + if (StaticParameter.EscapeOrderDetail2Trigger) { + return; + } + if (Trigger.isInsert) { + for (Consumable_order_details2__c local : Trigger.New) { + if ( + local.Consumable_order_minor__c != null && + local.Dealer_Returned__c == false + ) + orderSet.add(local.Consumable_order_minor__c); } - if (trigger.isInsert){ - for (Consumable_order_details2__c local : Trigger.New) { - if (local.Consumable_order_minor__c!=null && - local.Dealer_Returned__c == false) - orderSet.add(local.Consumable_order_minor__c); - } + } + + if (Trigger.isUpdate) { + for (Consumable_order_details2__c local : Trigger.New) { + //if (local.Consumable_order_minor__c!=null && + // local.Dealer_Arrive__c != Trigger.oldMap.get(local.Id).get('Dealer_Arrive__c')) + if (local.Consumable_order_minor__c != null) + orderSet.add(local.Consumable_order_minor__c); + } + } + + if (Trigger.isDelete) { + for (Consumable_order_details2__c local : Trigger.old) { + if (local.Consumable_order_minor__c != null) + orderSet.add(local.Consumable_order_minor__c); + } + } + + if (orderSet.size() > 0) { + // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鏇挎崲 SQL start by 寮犵帀灞� + list<Consumable_order_details2__c> allresults = [ + SELECT + Consumable_order_minor__c, + Deliver_date__c, + Dealer_Returned__c, + Dealer_Arrive__c, + RemoveBox_No__c, + Cancellation_Date__c + FROM Consumable_order_details2__c + WHERE Consumable_order_minor__c IN :orderSet + ]; + // 2018骞�8鏈�9鏃� HWAG-B3D9UV end by 寮犵帀灞� + + // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鏇挎崲涓嬮潰鍘熸湁SQL 浣跨敤 map 瀹屾垚璧嬪�� start by 寮犵帀灞� + map<string, Integer> orderSetResults = new Map<string, Integer>(); + for (Consumable_order_details2__c results1 : allresults) { + if ( + results1.Dealer_Arrive__c == false || + results1.Dealer_Returned__c == true || + (results1.RemoveBox_No__c != null && + results1.RemoveBox_No__c != 1) + ) { + continue; + } + string Consumable_order_minor_str = String.valueOf( + results1.Consumable_order_minor__c + ); + + if (orderSetResults.containsKey(Consumable_order_minor_str)) { + orderSetResults.put( + Consumable_order_minor_str, + orderSetResults.get(Consumable_order_minor_str) + 1 + ); + } else { + orderSetResults.put(Consumable_order_minor_str, 1); + } } - if (trigger.isUpdate){ - for (Consumable_order_details2__c local : Trigger.New) { - //if (local.Consumable_order_minor__c!=null && - // local.Dealer_Arrive__c != Trigger.oldMap.get(local.Id).get('Dealer_Arrive__c')) - if (local.Consumable_order_minor__c!=null) orderSet.add(local.Consumable_order_minor__c); + List<Consumable_Order__c> consumableOrderlist = new List<Consumable_Order__c>(); + for (String strOrder : orderSet) { + Integer cnt = 0; + for (string key : orderSetResults.keySet()) { + if (key.equals(strOrder)) { + cnt = orderSetResults.get(key); + break; } + } + + Consumable_Order__c consumableOrder = new Consumable_Order__c(); + consumableOrder.Id = strOrder; + consumableOrder.OrderNumber_arrived__c = cnt; + consumableOrderlist.add(consumableOrder); } + // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鏇挎崲涓嬮潰鍘熸湁SQL 浣跨敤 map 瀹屾垚璧嬪�� end end by 寮犵帀灞� - if (trigger.isDelete){ - for (Consumable_order_details2__c local : Trigger.old) { - if (local.Consumable_order_minor__c!=null) orderSet.add(local.Consumable_order_minor__c); - } - } - - - if (orderSet.size()>0){ - // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鏇挎崲 SQL start by 寮犵帀灞� - list<Consumable_order_details2__c> allresults = - [SELECT Consumable_order_minor__c, Deliver_date__c, - Dealer_Returned__c, Dealer_Arrive__c, RemoveBox_No__c,Cancellation_Date__c - FROM Consumable_order_details2__c - WHERE Consumable_order_minor__c in :orderSet ]; - // 2018骞�8鏈�9鏃� HWAG-B3D9UV end by 寮犵帀灞� - - // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鏇挎崲涓嬮潰鍘熸湁SQL 浣跨敤 map 瀹屾垚璧嬪�� start by 寮犵帀灞� - map<string,Integer> orderSetResults = new map<string,Integer>(); - for(Consumable_order_details2__c results1 : allresults){ - if(results1.Dealer_Arrive__c == false || results1.Dealer_Returned__c== true - || (results1.RemoveBox_No__c !=null && results1.RemoveBox_No__c !=1)){ - continue; - } - string Consumable_order_minor_str = String.valueOf(results1.Consumable_order_minor__c); - - if(orderSetResults.containsKey(Consumable_order_minor_str)){ - orderSetResults.put(Consumable_order_minor_str, - orderSetResults.get(Consumable_order_minor_str)+1); - }else{ - orderSetResults.put(Consumable_order_minor_str,1); - } - } - - List<Consumable_Order__c> consumableOrderlist = new List<Consumable_Order__c>(); - for (String strOrder:orderSet){ - Integer cnt =0; - for (string key : orderSetResults.keySet()) { - if(key.equals(strOrder)){ - cnt = orderSetResults.get(key); - break; - } - } - - Consumable_Order__c consumableOrder = new Consumable_Order__c(); - consumableOrder.Id = strOrder; - consumableOrder.OrderNumber_arrived__c = cnt; - consumableOrderlist.add(consumableOrder); - } - // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鏇挎崲涓嬮潰鍘熸湁SQL 浣跨敤 map 瀹屾垚璧嬪�� end end by 寮犵帀灞� - - /* 2018骞�8鏈�9鏃� HWAG-B3D9UV 鍘熸湁SQL 涓庤祴鍊� start by 寮犵帀灞� + /* 2018骞�8鏈�9鏃� HWAG-B3D9UV 鍘熸湁SQL 涓庤祴鍊� start by 寮犵帀灞� AggregateResult[] results = [SELECT Consumable_order_minor__c,count(Id) cnt FROM Consumable_order_details2__c WHERE Consumable_order_minor__c in :orderSet @@ -95,111 +116,130 @@ } 2018骞�8鏈�9鏃� HWAG-B3D9UV 鍘熸湁SQL 涓庤祴鍊� end by 寮犵帀灞� */ - if (consumableOrderlist.size() > 0){ - update consumableOrderlist; + if (consumableOrderlist.size() > 0) { + update consumableOrderlist; + } + + //鏇存柊娑堣�楀搧璁㈠崟鐨勫彂璐ф棩鏈� + // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鏇挎崲涓嬮潰鍘熸湁SQL 浣跨敤 map 瀹屾垚璧嬪�� start by 寮犵帀灞� + 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); } - - //鏇存柊娑堣�楀搧璁㈠崟鐨勫彂璐ф棩鏈� - // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鏇挎崲涓嬮潰鍘熸湁SQL 浣跨敤 map 瀹屾垚璧嬪�� start by 寮犵帀灞� - 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); - } - //鑾峰彇鏈�鏃╁彂璐ф椂闂� 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); - 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 + } else { + DeliverdateResults.put( + Consumable_order_minor_str, + results1.Deliver_date__c + ); + resultsKeySet.add(Consumable_order_minor_str); + } + //鑾峰彇鏈�鏃╁彂璐ф椂闂� 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 + ); + resultsKeySet.add(Consumable_order_minor_str); } - - //涓や釜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); - // } + } else { + DeliverdateminResults.put( + Consumable_order_minor_str, + results1.Deliver_date__c + ); + resultsKeySet.add(Consumable_order_minor_str); + } + //鑾峰彇鏈�鏃╁彂璐ф椂闂� pk part1 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); - // } - // } + //涓や釜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); + } - // if(consumableOrderminlist.size() > 0){ - // update consumableOrderminlist; - // } - // system.debug('DeliverdateResults==============' + DeliverdateResults); - // //鑾峰彇鏈�鏃╁彂璐ф棩鏈� end + //鑾峰彇鏈�鏃╁彂璐ф椂闂� 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 涓庤祴鍊� start by 寮犵帀灞� + // 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); + // } + + // }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 FROM Consumable_order_details2__c WHERE Consumable_order_minor__c in :orderSet @@ -217,46 +257,55 @@ } } 2018骞�8鏈�9鏃� HWAG-B3D9UV 鍘熸湁SQL 涓庤祴鍊� end by 寮犵帀灞� */ - if (consumableOrderlist.size() > 0){ - update consumableOrderlist; - } - - //鏇存柊寰呯‘璁ゆ敹璐ф暟閲� - // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鏇挎崲涓嬮潰鍘熸湁SQL 浣跨敤 map 瀹屾垚璧嬪�� start by 寮犵帀灞� - map<string,Integer> resultsMap2 = new map<string,Integer>(); - for(Consumable_order_details2__c results1 : allresults){ - if(results1.Dealer_Arrive__c == true || results1.Dealer_Returned__c== true || - results1.Cancellation_Date__c!=null){ - continue; - } - string Consumable_order_minor_str = String.valueOf(results1.Consumable_order_minor__c); - if(resultsMap2.containsKey(Consumable_order_minor_str)){ - resultsMap2.put(Consumable_order_minor_str, - resultsMap2.get(Consumable_order_minor_str)+1); - }else{ - resultsMap2.put(Consumable_order_minor_str,1); - } - } - consumableOrderlist = new List<Consumable_Order__c>(); - for (String strOrder:orderSet){ - Integer cnt =0; - for (string key : resultsMap2.keySet()) { - if(key.equals(strOrder)){ - cnt = resultsMap2.get(key); - break; - } - } + if (consumableOrderlist.size() > 0) { + update consumableOrderlist; + } - 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); + //鏇存柊寰呯‘璁ゆ敹璐ф暟閲� + // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鏇挎崲涓嬮潰鍘熸湁SQL 浣跨敤 map 瀹屾垚璧嬪�� start by 寮犵帀灞� + map<string, Integer> resultsMap2 = new Map<string, Integer>(); + for (Consumable_order_details2__c results1 : allresults) { + if ( + results1.Dealer_Arrive__c == true || + results1.Dealer_Returned__c == true || + results1.Cancellation_Date__c != null + ) { + continue; + } + string Consumable_order_minor_str = String.valueOf( + results1.Consumable_order_minor__c + ); + if (resultsMap2.containsKey(Consumable_order_minor_str)) { + resultsMap2.put( + Consumable_order_minor_str, + resultsMap2.get(Consumable_order_minor_str) + 1 + ); + } else { + resultsMap2.put(Consumable_order_minor_str, 1); + } + } + consumableOrderlist = new List<Consumable_Order__c>(); + for (String strOrder : orderSet) { + Integer cnt = 0; + for (string key : resultsMap2.keySet()) { + if (key.equals(strOrder)) { + cnt = resultsMap2.get(key); + break; } + } - // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鏇挎崲涓嬮潰鍘熸湁SQL 浣跨敤 map 瀹屾垚璧嬪�� end by 寮犵帀灞� - - /* 2018骞�8鏈�9鏃� HWAG-B3D9UV 鍘熸湁SQL 涓庤祴鍊� start by 寮犵帀灞� + 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); + } + + // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鏇挎崲涓嬮潰鍘熸湁SQL 浣跨敤 map 瀹屾垚璧嬪�� end by 寮犵帀灞� + + /* 2018骞�8鏈�9鏃� HWAG-B3D9UV 鍘熸湁SQL 涓庤祴鍊� start by 寮犵帀灞� AggregateResult[] results2 = [SELECT Consumable_order_minor__c,count(Id) cnt FROM Consumable_order_details2__c WHERE Consumable_order_minor__c in :orderSet @@ -280,345 +329,473 @@ consumableOrderlist.add(consumableOrder2); } 2018骞�8鏈�9鏃� HWAG-B3D9UV 鍘熸湁SQL 涓庤祴鍊� end by 寮犵帀灞� */ - if (consumableOrderlist.size() > 0){ - update consumableOrderlist; - } + if (consumableOrderlist.size() > 0) { + 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']; - // 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>(); - if (trigger.isUpdate || trigger.isInsert || trigger.isDelete){ - if (trigger.isUpdate || trigger.isInsert){ - for (Consumable_order_details2__c detail2 : Trigger.New) { - Consumable_order_details2__c oldDetail2 = null; - if (Trigger.isUpdate) oldDetail2 = Trigger.oldMap.get(detail2.Id); - if (detail2.Consumable_Arrived_order__c != null) { - arrivedSet.add(detail2.Consumable_Arrived_order__c); - } + } - if ((oldDetail2 == null || oldDetail2.Consumable_Return_order__c == null) && detail2.Consumable_Return_order__c != null) { - returnSet.add(detail2.Consumable_Return_order__c); - } - } + // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鑾峰彇鎵�鏈夌殑record ID start by 寮犵帀灞� + List<RecordType> allrtList = [ + SELECT Id, DeveloperName + FROM RecordType + WHERE SobjectType = 'Consumable_orderdetails__c' + ]; + // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鑾峰彇鎵�鏈夌殑record ID end by 寮犵帀灞� + //鍒拌揣鍜岃繑鍝佹椂,鐢熸垚鎴栦慨鏀规秷璐瑰搧璁㈣揣鏄庣粏 + Set<String> arrivedSet = new Set<String>(); + Set<String> returnSet = new Set<String>(); + if (Trigger.isUpdate || Trigger.isInsert || Trigger.isDelete) { + if (Trigger.isUpdate || Trigger.isInsert) { + for (Consumable_order_details2__c detail2 : Trigger.New) { + Consumable_order_details2__c oldDetail2 = null; + if (Trigger.isUpdate) + oldDetail2 = Trigger.oldMap.get(detail2.Id); + if (detail2.Consumable_Arrived_order__c != null) { + arrivedSet.add(detail2.Consumable_Arrived_order__c); } - if (trigger.isDelete){ - for (Consumable_order_details2__c det2 : Trigger.old) { - if (det2.Consumable_Arrived_order__c != null) { - arrivedSet.add(det2.Consumable_Arrived_order__c); - } - if (det2.Consumable_Return_order__c != null) { - returnSet.add(det2.Consumable_Return_order__c); - } - } + if ( + (oldDetail2 == null || + oldDetail2.Consumable_Return_order__c == null) && + detail2.Consumable_Return_order__c != null + ) { + returnSet.add(detail2.Consumable_Return_order__c); } - System.debug('arrivedSet +++++' + arrivedSet); + } + } + if (Trigger.isDelete) { + for (Consumable_order_details2__c det2 : Trigger.old) { + if (det2.Consumable_Arrived_order__c != null) { + arrivedSet.add(det2.Consumable_Arrived_order__c); + } + + if (det2.Consumable_Return_order__c != null) { + returnSet.add(det2.Consumable_Return_order__c); + } + } + } + System.debug('arrivedSet +++++' + arrivedSet); // 2018骞�8鏈�14鏃� HWAG-B3D9UV 鍦ㄨ繘琛孨FM110澶勭悊鏃� 璺宠繃arrivedset start by 寮犵帀灞� - if (StaticParameter.EscapeConsumableOrderDetail2Trigger) { - return ; - } + if (StaticParameter.EscapeConsumableOrderDetail2Trigger) { + return; + } // 2018骞�8鏈�14鏃� HWAG-B3D9UV 鍦ㄨ繘琛孨FM110澶勭悊鏃� 璺宠繃arrivedset start by 寮犵帀灞� - if (arrivedSet.size() > 0) { - 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); - } + if (arrivedSet.size() > 0) { + 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); + } - arrivedSet.clear(); - for (Consumable_order__c arrivedCo : arrivedMap.values()) { - if (arrivedCo.RecordType.DeveloperName == 'Arrive') { - arrivedSet.add(arrivedCo.Id); - } - } + arrivedSet.clear(); + for (Consumable_order__c arrivedCo : arrivedMap.values()) { + if (arrivedCo.RecordType.DeveloperName == 'Arrive') { + arrivedSet.add(arrivedCo.Id); + } + } - AggregateResult[] results = [select Consumable_Arrived_order__c, Asset_Model_No__c, count(bar_code__c) recordCount - from Consumable_order_details2__c - where Consumable_Arrived_order__c in :arrivedSet - and Dealer_Arrive__c = true - //and Dealer_Returned__c <> true - 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'))); - } - //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 + AggregateResult[] results = [ + SELECT + Consumable_Arrived_order__c, + Asset_Model_No__c, + count(bar_code__c) recordCount + FROM Consumable_order_details2__c + WHERE + Consumable_Arrived_order__c IN :arrivedSet + AND Dealer_Arrive__c = TRUE + //and Dealer_Returned__c <> true + 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>(); - /* 2018骞�8鏈�9鏃� HWAG-B3D9UV 鍘熻幏鍙� recordtype start by 寮犵帀灞� + 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); + } + } + // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鏇夸唬涓嬮潰SQL select end by 寮犵帀灞� + + /* 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 寮犵帀灞� */ - //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 - group by Consumable_order__c]; - System.debug('results +++++' + results); - Map<Id, Integer> noCount = new Map<Id, Integer>(); - for(AggregateResult ar: results){ - noCount.put((Id)ar.get('Consumable_order__c'), Integer.valueOf(ar.get('noCount'))); + Id recordTypeId = null; + if (rtList.size() > 0) + recordTypeId = rtList[0].Id; + + results = [ + SELECT Consumable_order__c, count(Id) noCount + FROM Consumable_orderdetails__c + WHERE Consumable_order__c IN :arrivedSet + GROUP BY Consumable_order__c + ]; + System.debug('results +++++' + results); + Map<Id, Integer> noCount = new Map<Id, Integer>(); + for (AggregateResult ar : results) { + noCount.put( + (Id) ar.get('Consumable_order__c'), + Integer.valueOf(ar.get('noCount')) + ); + } + System.debug('noCount +++++' + noCount); + Map<String, Consumable_orderdetails__c> upsertMap = new Map<String, Consumable_orderdetails__c>(); + Map<String, Consumable_orderdetails__c> deletetMap = new Map<String, Consumable_orderdetails__c>(); + Map<String, String> assetModelNoMap = new Map<String, String>(); + if (Trigger.isUpdate || Trigger.isInsert) { + for (Consumable_order_details2__c detail2 : Trigger.New) { + //Dataloader銇у垵鏈熷湪搴櫥閷层倰銇椼仧銇傘仺銆併儑銉笺偪淇銇屽叆銇c仧銇ㄣ亶銇槑绱�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; + //if (upsertMap.get(key) != null) continue; + Integer count = keyCount.get(key); + Consumable_orderdetails__c detail1 = detail1Map.get(key); + + if (detail1 == null) + detail1 = new Consumable_orderdetails__c(); + detail1.Consumable_Arrivecount__c = count; + if (detail1.Id == null) { + Consumable_order__c co = arrivedMap.get( + detail2.Consumable_Arrived_order__c + ); + Integer index = noCount.get(co.Id); + if (index == null) + index = 0; + if (assetModelNoMap.containsKey(detail2.Asset_Model_No__c)) { + continue; + } else { + assetModelNoMap.put( + detail2.Asset_Model_No__c, + detail2.Asset_Model_No__c + ); + noCount.put(co.Id, index + 1); } - System.debug('noCount +++++' + noCount); - Map<String, Consumable_orderdetails__c> upsertMap = new Map<String, Consumable_orderdetails__c>(); - Map<String, Consumable_orderdetails__c> deletetMap = new Map<String, Consumable_orderdetails__c>(); - Map<String, String> assetModelNoMap = new Map<String, String>(); - if (trigger.isUpdate || trigger.isInsert){ - for (Consumable_order_details2__c detail2 : Trigger.New) { - //Dataloader銇у垵鏈熷湪搴櫥閷层倰銇椼仧銇傘仺銆併儑銉笺偪淇銇屽叆銇c仧銇ㄣ亶銇槑绱�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; - //if (upsertMap.get(key) != null) continue; - Integer count = keyCount.get(key); - Consumable_orderdetails__c detail1 = detail1Map.get(key); - - if (detail1 == null) detail1 = new Consumable_orderdetails__c(); - detail1.Consumable_Arrivecount__c = count; - if (detail1.Id == null) { - Consumable_order__c co = arrivedMap.get(detail2.Consumable_Arrived_order__c); - Integer index = noCount.get(co.Id); - if (index == null) index = 0; - if(assetModelNoMap.containsKey(detail2.Asset_Model_No__c)){ - continue; - }else{ - assetModelNoMap.put(detail2.Asset_Model_No__c, detail2.Asset_Model_No__c); - noCount.put(co.Id, index + 1); - } - noCount.put(co.Id, index + 1); - String newName = co.Name+'-'; - System.debug('index +++++' + index); - if (index < 99) { - newName += '0'; - } - if (index < 9) { - newName += '0'; - } - newName += String.valueOf(index + 1); - System.debug('newName +++++' + newName); - detail1.Name = newName; - //detail1.Asset_Model_No__c = detail2.Asset_Model_No__c; - detail1.Consumable_product__c = detail2.Consumable_product__c; - detail1.Consumable_order__c = co.Id; - detail1.RecordTypeId = recordTypeId; - //detail1.Consumable_principal__c = co.Id; - detail1.Intra_Trade_List_RMB__c = detail2.Intra_Trade_List_RMB__c; - - } - upsertMap.put(key, detail1); - } + noCount.put(co.Id, index + 1); + String newName = co.Name + '-'; + System.debug('index +++++' + index); + if (index < 99) { + newName += '0'; } - - if (trigger.isUpdate){ - for (Consumable_order_details2__c detail2 : Trigger.old) { - //Dataloader銇у垵鏈熷湪搴櫥閷层倰銇椼仧銇傘仺銆併儑銉笺偪淇銇屽叆銇c仧銇ㄣ亶銇槑绱�1銇屾洿鏂般仌銈屻仾銇勩�� - //if (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); - if ((count == null || count ==0) && detail1 !=null){ - //delete detail1; - deletetMap.put(key,detail1); - continue; - } - if (detail1 == null) continue; - detail1.Consumable_Arrivecount__c = count; - - if (detail1.Id == null) { - Consumable_order__c co = arrivedMap.get(detail2.Consumable_Arrived_order__c); - Integer index = noCount.get(co.Id); - if (index == null) index = 0; - System.debug('indexUp +++++' + index); - noCount.put(co.Id, index + 1); - System.debug('noCountUp +++++' + noCount); - String newName = co.Name+'-'; - if (index < 99) { - newName += '0'; - } - if (index < 9) { - newName += '0'; - } - newName += String.valueOf(index + 1); - System.debug('newNameUp +++++' + newName); - detail1.Name = newName; - //detail1.Asset_Model_No__c = detail2.Asset_Model_No__c; - detail1.Consumable_product__c = detail2.Consumable_product__c; - detail1.Consumable_order__c = co.Id; - detail1.RecordTypeId = recordTypeId; - //detail1.Consumable_principal__c = co.Id; - detail1.Intra_Trade_List_RMB__c = detail2.Intra_Trade_List_RMB__c; - - - } - upsertMap.put(key, detail1); - } + if (index < 9) { + newName += '0'; } - - if (trigger.isDelete){ - for (Consumable_order_details2__c detail2 : Trigger.old) { - 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); - if ((count == null || count ==0) && detail1 !=null){ - //delete detail1; - deletetMap.put(key,detail1); - continue; - } - if (detail1 == null) detail1 = new Consumable_orderdetails__c(); - detail1.Consumable_Arrivecount__c = count; - - if (detail1.Id == null) { - Consumable_order__c co = arrivedMap.get(detail2.Consumable_Arrived_order__c); - Integer index = noCount.get(co.Id); - if (index == null) index = 0; - noCount.put(co.Id, index + 1); - String newName = co.Name+'-'; - if (index < 99) { - newName += '0'; - } - if (index < 9) { - newName += '0'; - } - newName += String.valueOf(index + 1); - detail1.Name = newName; - //detail1.Asset_Model_No__c = detail2.Asset_Model_No__c; - detail1.Consumable_product__c = detail2.Consumable_product__c; - detail1.Consumable_order__c = co.Id; - detail1.RecordTypeId = recordTypeId; - //detail1.Consumable_principal__c = co.Id; - detail1.Intra_Trade_List_RMB__c = detail2.Intra_Trade_List_RMB__c; - - } - upsertMap.put(key, detail1); - } - } - - Database.upsert(upsertMap.values(), true); - if(deletetMap.size()>0){ - Database.delete(deletetMap.values(),true); - } - + newName += String.valueOf(index + 1); + System.debug('newName +++++' + newName); + detail1.Name = newName; + //detail1.Asset_Model_No__c = detail2.Asset_Model_No__c; + detail1.Consumable_product__c = detail2.Consumable_product__c; + detail1.Consumable_order__c = co.Id; + detail1.RecordTypeId = recordTypeId; + //detail1.Consumable_principal__c = co.Id; + detail1.Intra_Trade_List_RMB__c = detail2.Intra_Trade_List_RMB__c; + } + upsertMap.put(key, detail1); } - } - // 2018骞�8鏈�14鏃� HWAG-B3D9UV 鍦ㄨ繘琛孨FM110澶勭悊鏃� 璺宠繃returnSet start by 寮犵帀灞� + } - if (trigger.isUpdate || trigger.isInsert){ - if (StaticParameter.EscapeConsumableOrderDetail2Trigger) { - return ; + if (Trigger.isUpdate) { + for (Consumable_order_details2__c detail2 : Trigger.old) { + //Dataloader銇у垵鏈熷湪搴櫥閷层倰銇椼仧銇傘仺銆併儑銉笺偪淇銇屽叆銇c仧銇ㄣ亶銇槑绱�1銇屾洿鏂般仌銈屻仾銇勩�� + //if (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); + if ((count == null || count == 0) && detail1 != null) { + //delete detail1; + deletetMap.put(key, detail1); + continue; + } + if (detail1 == null) + continue; + detail1.Consumable_Arrivecount__c = count; + + if (detail1.Id == null) { + Consumable_order__c co = arrivedMap.get( + detail2.Consumable_Arrived_order__c + ); + Integer index = noCount.get(co.Id); + if (index == null) + index = 0; + System.debug('indexUp +++++' + index); + noCount.put(co.Id, index + 1); + System.debug('noCountUp +++++' + noCount); + String newName = co.Name + '-'; + if (index < 99) { + newName += '0'; + } + if (index < 9) { + newName += '0'; + } + newName += String.valueOf(index + 1); + System.debug('newNameUp +++++' + newName); + detail1.Name = newName; + //detail1.Asset_Model_No__c = detail2.Asset_Model_No__c; + detail1.Consumable_product__c = detail2.Consumable_product__c; + detail1.Consumable_order__c = co.Id; + detail1.RecordTypeId = recordTypeId; + //detail1.Consumable_principal__c = co.Id; + detail1.Intra_Trade_List_RMB__c = detail2.Intra_Trade_List_RMB__c; + } + upsertMap.put(key, detail1); + } + } + + if (Trigger.isDelete) { + for (Consumable_order_details2__c detail2 : Trigger.old) { + 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); + if ((count == null || count == 0) && detail1 != null) { + //delete detail1; + deletetMap.put(key, detail1); + continue; + } + if (detail1 == null) + detail1 = new Consumable_orderdetails__c(); + detail1.Consumable_Arrivecount__c = count; + + if (detail1.Id == null) { + Consumable_order__c co = arrivedMap.get( + detail2.Consumable_Arrived_order__c + ); + Integer index = noCount.get(co.Id); + if (index == null) + index = 0; + noCount.put(co.Id, index + 1); + String newName = co.Name + '-'; + if (index < 99) { + newName += '0'; + } + if (index < 9) { + newName += '0'; + } + newName += String.valueOf(index + 1); + detail1.Name = newName; + //detail1.Asset_Model_No__c = detail2.Asset_Model_No__c; + detail1.Consumable_product__c = detail2.Consumable_product__c; + detail1.Consumable_order__c = co.Id; + detail1.RecordTypeId = recordTypeId; + //detail1.Consumable_principal__c = co.Id; + detail1.Intra_Trade_List_RMB__c = detail2.Intra_Trade_List_RMB__c; + } + upsertMap.put(key, detail1); + } + } + + Database.upsert(upsertMap.values(), true); + if (deletetMap.size() > 0) { + Database.delete(deletetMap.values(), true); + } + } + } + // 2018骞�8鏈�14鏃� HWAG-B3D9UV 鍦ㄨ繘琛孨FM110澶勭悊鏃� 璺宠繃returnSet start by 寮犵帀灞� + + if (Trigger.isUpdate || Trigger.isInsert) { + if (StaticParameter.EscapeConsumableOrderDetail2Trigger) { + return; } // 2018骞�8鏈�14鏃� HWAG-B3D9UV 鍦ㄨ繘琛孨FM110澶勭悊鏃� 璺宠繃returnSet start by 寮犵帀灞� - if (returnSet.size() > 0) { - Map<Id, Consumable_order__c> returnMap = new Map<Id, Consumable_order__c>([select Id, RecordType.DeveloperName, Name from Consumable_order__c where Id in :returnSet]); - 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 :returnSet]; - 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); - } + if (returnSet.size() > 0) { + Map<Id, Consumable_order__c> returnMap = new Map<Id, Consumable_order__c>( + [ + SELECT Id, RecordType.DeveloperName, Name + FROM Consumable_order__c + WHERE Id IN :returnSet + ] + ); + 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 :returnSet + ]; + Map<String, Consumable_orderdetails__c> detail1Map = new Map<String, Consumable_orderdetails__c>(); - returnSet.clear(); - for (Consumable_order__c returnCo : returnMap.values()) { - if (returnCo.RecordType.DeveloperName == 'ReturnGoods') { - returnSet.add(returnCo.Id); - } - } + for (Consumable_orderdetails__c detail1 : detail1List) { + String key = + '' + + detail1.Consumable_order__c + + detail1.Asset_Model_No__c; + detail1Map.put(key, detail1); + } - AggregateResult[] results = [select Consumable_Return_order__c, Asset_Model_No__c, count(Id) recordCount - from Consumable_order_details2__c - where Consumable_Return_order__c in :returnSet - and Dealer_Returned__c = true - group by Consumable_Return_order__c, Asset_Model_No__c]; - Map<String, Integer> keyCount = new Map<String, Integer>(); - for(AggregateResult ar: results){ - 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); - // } - // } - // 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 寮犵帀灞� + returnSet.clear(); + for (Consumable_order__c returnCo : returnMap.values()) { + if (returnCo.RecordType.DeveloperName == 'ReturnGoods') { + returnSet.add(returnCo.Id); + } + } + + AggregateResult[] results = [ + SELECT + Consumable_Return_order__c, + Asset_Model_No__c, + count(Id) recordCount + FROM Consumable_order_details2__c + WHERE + Consumable_Return_order__c IN :returnSet + AND Dealer_Returned__c = TRUE + GROUP BY Consumable_Return_order__c, Asset_Model_No__c + ]; + Map<String, Integer> keyCount = new Map<String, Integer>(); + for (AggregateResult ar : results) { + String key = + '' + + ar.get('Consumable_Return_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_ReturnGoods'.equals(rtl.DeveloperName)) { + rtList.add(rtl); + } + } + // 2018骞�8鏈�9鏃� HWAG-B3D9UV 鏇夸唬涓嬮潰SQL select end by 寮犵帀灞� + + /* 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 = Schema.SObjectType.Consumable_Orderdetails__c.getRecordTypeInfosByDeveloperName().get('Detail1_ReturnGoods').getRecordTypeId(); - //if (rtList.size() > 0) recordTypeId = rtList[0].Id; + Id recordTypeId = null; + if (rtList.size() > 0) + recordTypeId = rtList[0].Id; - results = [select Consumable_order__c, count(Id) noCount - from Consumable_orderdetails__c - where Consumable_order__c in :returnSet - group by Consumable_order__c]; - Map<Id, Integer> noCount = new Map<Id, Integer>(); - for(AggregateResult ar: results){ - noCount.put((Id)ar.get('Consumable_order__c'), Integer.valueOf(ar.get('noCount'))); + results = [ + SELECT Consumable_order__c, count(Id) noCount + FROM Consumable_orderdetails__c + WHERE Consumable_order__c IN :returnSet + GROUP BY Consumable_order__c + ]; + Map<Id, Integer> noCount = new Map<Id, Integer>(); + for (AggregateResult ar : results) { + noCount.put( + (Id) ar.get('Consumable_order__c'), + Integer.valueOf(ar.get('noCount')) + ); + } + + Map<String, Consumable_orderdetails__c> upsertMap = new Map<String, Consumable_orderdetails__c>(); + Map<String, Integer> updatedSaleCount = new Map<String, Integer>(); + Set<Id> updatedSaleId = new Set<Id>(); + Map<String, Integer> updatedShipmentCount = new Map<String, Integer>(); + Set<Id> updatedShipmentId = new Set<Id>(); + Map<String, Integer> updatedConInvoiceCount = new Map<String, Integer>(); + Map<String, String> shipmentIdMap = new Map<String, String>(); + Set<Id> updatedConInvoiceId = new Set<Id>(); + Integer returnCount = 0; + + for (Consumable_order_details2__c detail2 : Trigger.New) { + Consumable_order_details2__c oldDetail2 = null; + if (detail2.Consumable_Return_order__c == null) + continue; + + String key = + '' + + detail2.Consumable_Return_order__c + + detail2.Asset_Model_No__c; + + if (Trigger.isUpdate) + oldDetail2 = Trigger.oldMap.get(detail2.Id); + if (oldDetail2 != null) { + if (keyCount.containsKey(key)) { + returnCount += 1; + if (oldDetail2.Consumable_Sale_order__c != null) { + Integer sCount = updatedSaleCount.containsKey( + '' + + oldDetail2.Consumable_Sale_order__c + + detail2.Asset_Model_No__c + ) + ? updatedSaleCount.get( + '' + + oldDetail2.Consumable_Sale_order__c + + detail2.Asset_Model_No__c + ) + : 0; + sCount += 1; + updatedSaleCount.put( + '' + + oldDetail2.Consumable_Sale_order__c + + detail2.Asset_Model_No__c, + sCount + ); + updatedSaleId.add(oldDetail2.Consumable_Sale_order__c); } + if (oldDetail2.Consumable_Shipment_order__c != null) { + Integer sCount = updatedShipmentCount.containsKey( + '' + + oldDetail2.Consumable_Shipment_order__c + + detail2.Asset_Model_No__c + ) + ? updatedShipmentCount.get( + '' + + oldDetail2.Consumable_Shipment_order__c + + detail2.Asset_Model_No__c + ) + : 0; + sCount += 1; - Map<String, Consumable_orderdetails__c> upsertMap = new Map<String, Consumable_orderdetails__c>(); - Map<String, Integer> updatedSaleCount = new Map<String, Integer>(); - Set<Id> updatedSaleId = new Set<Id>(); - Map<String, Integer> updatedShipmentCount = new Map<String, Integer>(); - Set<Id> updatedShipmentId = new Set<Id>(); - Map<String, Integer> updatedConInvoiceCount = new Map<String, Integer>(); - Map<String, String> shipmentIdMap = new Map<String, String>(); - Set<Id> updatedConInvoiceId = new Set<Id>(); - Integer returnCount = 0; - - for (Consumable_order_details2__c detail2 : Trigger.New) { - Consumable_order_details2__c oldDetail2 = null; - if (detail2.Consumable_Return_order__c == null) continue; - - String key = '' + detail2.Consumable_Return_order__c + detail2.Asset_Model_No__c; - - if(Trigger.isUpdate) oldDetail2 = Trigger.oldMap.get(detail2.Id); - if (oldDetail2 != null) { - if (keyCount.containsKey(key)) { - returnCount += 1; - if (oldDetail2.Consumable_Sale_order__c != null) { - Integer sCount = updatedSaleCount.containsKey(''+oldDetail2.Consumable_Sale_order__c+detail2.Asset_Model_No__c) ? updatedSaleCount.get(''+oldDetail2.Consumable_Sale_order__c+detail2.Asset_Model_No__c) : 0; - sCount += 1; - updatedSaleCount.put(''+oldDetail2.Consumable_Sale_order__c+detail2.Asset_Model_No__c, sCount); - updatedSaleId.add(oldDetail2.Consumable_Sale_order__c); - } - if (oldDetail2.Consumable_Shipment_order__c != null) { - Integer sCount = updatedShipmentCount.containsKey(''+oldDetail2.Consumable_Shipment_order__c+detail2.Asset_Model_No__c) ? updatedShipmentCount.get(''+oldDetail2.Consumable_Shipment_order__c+detail2.Asset_Model_No__c) : 0; - sCount += 1; - - updatedShipmentCount.put(''+oldDetail2.Consumable_Shipment_order__c+detail2.Asset_Model_No__c, sCount); - updatedShipmentId.add(oldDetail2.Consumable_Shipment_order__c); - } - /*if (oldDetail2.Invoice_No__c != null) { + updatedShipmentCount.put( + '' + + oldDetail2.Consumable_Shipment_order__c + + detail2.Asset_Model_No__c, + sCount + ); + updatedShipmentId.add(oldDetail2.Consumable_Shipment_order__c); + } + /*if (oldDetail2.Invoice_No__c != null) { Integer sCount = updatedConInvoiceCount.containsKey(''+oldDetail2.Invoice_No__c+oldDetail2.Consumable_Sale_order__c+detail2.Asset_Model_No__c) ? updatedConInvoiceCount.get(''+oldDetail2.Invoice_No__c+oldDetail2.Consumable_Sale_order__c+detail2.Asset_Model_No__c) : 0; sCount += 1; if(oldDetail2.Consumable_Shipment_order__c == null){ @@ -631,82 +808,105 @@ updatedConInvoiceId.add(oldDetail2.Invoice_No__c); }*/ - } - } - if (upsertMap.get(key) != null) continue; - Integer count = keyCount.get(key); + } + } + if (upsertMap.get(key) != null) + continue; + Integer count = keyCount.get(key); - Consumable_orderdetails__c detail1 = detail1Map.get(key); + Consumable_orderdetails__c detail1 = detail1Map.get(key); - if (detail1 == null) detail1 = new Consumable_orderdetails__c(); - detail1.RrturnPro_count__c = count; + if (detail1 == null) + detail1 = new Consumable_orderdetails__c(); + detail1.RrturnPro_count__c = count; - if (detail1.Id == null) { - Consumable_order__c co = returnMap.get(detail2.Consumable_Return_order__c); - Integer index = noCount.get(co.Id); - if (index == null) index = 0; - noCount.put(co.Id, index + 1); - String newName = co.Name+'-'; - if (index < 99) { - newName += '0'; - } - if (index < 9) { - newName += '0'; - } - newName += String.valueOf(index + 1); - detail1.Name = newName; - //detail1.Asset_Model_No__c = detail2.Asset_Model_No__c; - detail1.Consumable_product__c = detail2.Consumable_product__c; - detail1.Consumable_order__c = co.Id; - detail1.RecordTypeId = recordTypeId; - //detail1.Consumable_principal__c = co.Id; - detail1.Intra_Trade_List_RMB__c = detail2.Intra_Trade_List_RMB__c; - - } - upsertMap.put(key, detail1); - } + if (detail1.Id == null) { + Consumable_order__c co = returnMap.get( + detail2.Consumable_Return_order__c + ); + Integer index = noCount.get(co.Id); + if (index == null) + index = 0; + noCount.put(co.Id, index + 1); + String newName = co.Name + '-'; + if (index < 99) { + newName += '0'; + } + if (index < 9) { + newName += '0'; + } + newName += String.valueOf(index + 1); + detail1.Name = newName; + //detail1.Asset_Model_No__c = detail2.Asset_Model_No__c; + detail1.Consumable_product__c = detail2.Consumable_product__c; + detail1.Consumable_order__c = co.Id; + detail1.RecordTypeId = recordTypeId; + //detail1.Consumable_principal__c = co.Id; + detail1.Intra_Trade_List_RMB__c = detail2.Intra_Trade_List_RMB__c; + } + upsertMap.put(key, detail1); + } - Database.upsert(upsertMap.values(), true); - // 2018骞�8鏈�8鏃� HWAG-B3D9UV 鍑忓皯 select 鏁伴噺 start by 寮犵帀灞� - List<Consumable_orderdetails__c> Consumable_orderdetailsList = - [select Id, Name, Asset_Model_No__c, RrturnPro_count__c, - Consumable_order__c,Invoicedet1_OD_link__c - from Consumable_orderdetails__c - where Consumable_order__c in :updatedSaleId - or Consumable_order__c in :updatedShipmentId - or Consumable_order__c in :updatedConInvoiceId]; - - List<Consumable_orderdetails__c> detail1SaleList - = new List<Consumable_orderdetails__c>(); - - for (Consumable_orderdetails__c orderdetails : Consumable_orderdetailsList){ - if(updatedSaleId.contains(orderdetails.id) - && 'Sale'.equals(orderdetails.Consumable_order__r.RecordType.DeveloperName)){ - detail1SaleList.add(orderdetails); - } - } + Database.upsert(upsertMap.values(), true); + // 2018骞�8鏈�8鏃� HWAG-B3D9UV 鍑忓皯 select 鏁伴噺 start by 寮犵帀灞� + List<Consumable_orderdetails__c> Consumable_orderdetailsList = [ + SELECT + Id, + Name, + Asset_Model_No__c, + RrturnPro_count__c, + Consumable_order__c, + Invoicedet1_OD_link__c + FROM Consumable_orderdetails__c + WHERE + Consumable_order__c IN :updatedSaleId + OR Consumable_order__c IN :updatedShipmentId + OR Consumable_order__c IN :updatedConInvoiceId + ]; - List<Consumable_orderdetails__c> detail1ShipmentList - = new List<Consumable_orderdetails__c>(); + List<Consumable_orderdetails__c> detail1SaleList = new List<Consumable_orderdetails__c>(); - for (Consumable_orderdetails__c orderdetails : Consumable_orderdetailsList){ - if(updatedShipmentId.contains(orderdetails.id) - && 'Shipment'.equals(orderdetails.Consumable_order__r.RecordType.DeveloperName)){ - detail1ShipmentList.add(orderdetails); - } - } + for ( + Consumable_orderdetails__c orderdetails : Consumable_orderdetailsList + ) { + if ( + updatedSaleId.contains(orderdetails.id) && + 'Sale' + .equals(orderdetails.Consumable_order__r.RecordType.DeveloperName) + ) { + detail1SaleList.add(orderdetails); + } + } - List<Consumable_orderdetails__c> detail1ConInvoiceList - = new List<Consumable_orderdetails__c>(); + List<Consumable_orderdetails__c> detail1ShipmentList = new List<Consumable_orderdetails__c>(); - for (Consumable_orderdetails__c orderdetails : Consumable_orderdetailsList){ - if(updatedConInvoiceId.contains(orderdetails.id) - && 'Order_Invoice'.equals(orderdetails.Consumable_order__r.RecordType.DeveloperName)){ - detail1ConInvoiceList.add(orderdetails); - } - } - // 2018骞�8鏈�8鏃� HWAG-B3D9UV 鍑忓皯 select 鏁伴噺 end by 寮犵帀灞� - /* 2018骞�8鏈�8鏃� HWAG-B3D9UV 娉ㄩ噴 鏇挎崲涓轰笂闈㈢殑閭d釜 end by 寮犵帀灞� + for ( + Consumable_orderdetails__c orderdetails : Consumable_orderdetailsList + ) { + if ( + updatedShipmentId.contains(orderdetails.id) && + 'Shipment' + .equals(orderdetails.Consumable_order__r.RecordType.DeveloperName) + ) { + detail1ShipmentList.add(orderdetails); + } + } + + List<Consumable_orderdetails__c> detail1ConInvoiceList = new List<Consumable_orderdetails__c>(); + + for ( + Consumable_orderdetails__c orderdetails : Consumable_orderdetailsList + ) { + if ( + updatedConInvoiceId.contains(orderdetails.id) && + 'Order_Invoice' + .equals(orderdetails.Consumable_order__r.RecordType.DeveloperName) + ) { + detail1ConInvoiceList.add(orderdetails); + } + } + // 2018骞�8鏈�8鏃� HWAG-B3D9UV 鍑忓皯 select 鏁伴噺 end by 寮犵帀灞� + /* 2018骞�8鏈�8鏃� HWAG-B3D9UV 娉ㄩ噴 鏇挎崲涓轰笂闈㈢殑閭d釜 end by 寮犵帀灞� List<Consumable_orderdetails__c> detail1SaleList = [select Id, Name, Asset_Model_No__c, RrturnPro_count__c, Consumable_order__c from Consumable_orderdetails__c @@ -726,33 +926,52 @@ where Consumable_order__c in :updatedConInvoiceId and Consumable_order__r.RecordType.DeveloperName = 'Order_Invoice']; */ - List<Consumable_orderdetails__c> updateData = new List<Consumable_orderdetails__c>(); + List<Consumable_orderdetails__c> updateData = new List<Consumable_orderdetails__c>(); - for (Consumable_orderdetails__c detail1Sale : detail1SaleList) { - Integer count = updatedSaleCount.get(''+detail1Sale.Consumable_order__c+detail1Sale.Asset_Model_No__c); - if (count != null) { - detail1Sale.RrturnPro_count__c += count; - updateData.add(detail1Sale); - } - - } - for (Consumable_orderdetails__c detail1Shipment : detail1ShipmentList) { - Integer count = updatedShipmentCount.get(''+detail1Shipment.Consumable_order__c+detail1Shipment.Asset_Model_No__c); - if (count != null) { - detail1Shipment.RrturnPro_count__c += count; - updateData.add(detail1Shipment); - } - } - for (Consumable_orderdetails__c detail1ConInvoice : detail1ConInvoiceList) { - Integer count = updatedConInvoiceCount.get(''+detail1ConInvoice.Consumable_order__c+detail1ConInvoice.Invoicedet1_OD_link__c+detail1ConInvoice.Asset_Model_No__c); - if (count != null && (detail1ConInvoice.Invoicedet1_OD_link__c == shipmentIdMap.get(''+detail1ConInvoice.Invoicedet1_OD_link__c+detail1ConInvoice.Asset_Model_No__c)) ) { - detail1ConInvoice.RrturnPro_count__c += count; - //updateData.add(detail1ConInvoice); - } - } - - Database.upsert(updateData, true); + for (Consumable_orderdetails__c detail1Sale : detail1SaleList) { + Integer count = updatedSaleCount.get( + '' + detail1Sale.Consumable_order__c + detail1Sale.Asset_Model_No__c + ); + if (count != null) { + detail1Sale.RrturnPro_count__c += count; + updateData.add(detail1Sale); } - + } + for (Consumable_orderdetails__c detail1Shipment : detail1ShipmentList) { + Integer count = updatedShipmentCount.get( + '' + + detail1Shipment.Consumable_order__c + + detail1Shipment.Asset_Model_No__c + ); + if (count != null) { + detail1Shipment.RrturnPro_count__c += count; + updateData.add(detail1Shipment); + } + } + for ( + Consumable_orderdetails__c detail1ConInvoice : detail1ConInvoiceList + ) { + Integer count = updatedConInvoiceCount.get( + '' + + detail1ConInvoice.Consumable_order__c + + detail1ConInvoice.Invoicedet1_OD_link__c + + detail1ConInvoice.Asset_Model_No__c + ); + if ( + count != null && + (detail1ConInvoice.Invoicedet1_OD_link__c == + shipmentIdMap.get( + '' + + detail1ConInvoice.Invoicedet1_OD_link__c + + detail1ConInvoice.Asset_Model_No__c + )) + ) { + detail1ConInvoice.RrturnPro_count__c += count; + //updateData.add(detail1ConInvoice); + } + } + + Database.upsert(updateData, true); } -} \ No newline at end of file + } +} -- Gitblit v1.9.1