From 9b197b7fac92278fb591ea8f4942c7d5687cb5ce Mon Sep 17 00:00:00 2001
From: 李金换 <lijinhuan@prec-tech.com>
Date: 星期一, 28 三月 2022 18:01:22 +0800
Subject: [PATCH] LJPH-C8FB4P【委托】配合PBI设备覆盖率的数据准备0328
---
force-app/main/default/classes/LastbuyProductHandler.cls | 191 +++++++++++++++++++++++++----------------------
1 files changed, 102 insertions(+), 89 deletions(-)
diff --git a/force-app/main/default/classes/LastbuyProductHandler.cls b/force-app/main/default/classes/LastbuyProductHandler.cls
index 4858b68..0fb8f6f 100644
--- a/force-app/main/default/classes/LastbuyProductHandler.cls
+++ b/force-app/main/default/classes/LastbuyProductHandler.cls
@@ -1,7 +1,12 @@
/**
- * 20220210 lt UpdateIdentification()--鏇存柊浜у搧涓婄殑鈥滈鐣欎骇鍝佲�濇爣璇�
- * 棰勭暀浜у搧瀵硅薄浼氬叧鑱斾竴涓骇鍝佷富鏁版嵁
- * 鍒涘缓棰勭暀浜у搧鏃讹紝灏嗕骇鍝佷富鏁版嵁涓婄殑鈥滈鐣欎骇鍝佲�濇爣璇� 鏇存柊涓� true
+ * 20220210 lt 鏇存柊浜у搧涓婄殑鈥滈鐣欎骇鍝佲�濇爣璇�
+ * 浜у搧 鏈� 鏈夋晥棰勭暀浜у搧 鈥滈鐣欎骇鍝佲�濇爣璇� true
+ * 浜у搧 娌℃湁 鏈夋晥棰勭暀浜у搧(鏃犻鐣欎骇鍝� 鎴� 棰勭暀浜у搧 鏃犳晥) 鈥滈鐣欎骇鍝佲�濇爣璇� false
+ * (1) 鏂板缓 鏈夋晥棰勭暀浜у搧 --true
+ * (2) 鏇存柊 鈥滄槸鍚︽湁鏁堚�� false 鍙樹负 true --true
+ * (3) 鏇存柊 鈥滀骇鍝佲�� 鍚� --true
+ * (4) 鏇存柊 鈥滄槸鍚︽湁鏁堚�� true 鍙樹负 false 鐨勪骇鍝佷笅鏃犳湁鏁堥鐣欎骇鍝� --false
+ * (5) 鏇存柊 鈥滀骇鍝佲�� 鍓嶇殑浜у搧 鏃犻鐣欎骇鍝� 鎴� 鏃犳湁鏁堥鐣欎骇鍝� --false
*/
public without sharing class LastbuyProductHandler extends Oly_TriggerHandler {
private Map<Id, LastbuyProduct__c> newMap;
@@ -21,111 +26,119 @@
}
protected override void afterInsert(){
- UpdateIdentification();
+ ReservedPro();
}
protected override void afterUpdate(){
- Invalid();
+ ReservedPro();
}
- //鏇存柊鏍囪瘑
- private void UpdateIdentification(){
-
- //瀛樹骇鍝佺殑ID
- List<Id> pList = new List<Id>();
- for(LastbuyProduct__c lbp : newList){
- if(lbp.ProductName__c != null){
- pList.add(lbp.ProductName__c);
+ protected override void afterDelete(){
+ ReservedPro();
+ }
+
+ private void ReservedPro(){
+ //1.鏂板缓鎴栬�呮洿鏂颁骇鍝佸悗锛岃嫢棰勭暀浜у搧鏈夋晥锛屸�滈鐣欎骇鍝佲�濇爣璇嗕负true
+ if(trigger.isInsert || trigger.isUpdate){
+
+ //瀛樹骇鍝佺殑ID
+ List<Id> pList = new List<Id>();
+ for(LastbuyProduct__c lbp : newList){
+ if(lbp.ProductName__c != null && lbp.effectiveFLG__c == true){
+ pList.add(lbp.ProductName__c);
+ }
}
- }
- List<Product2> proList = [select id, LastbuyProductFLG__c from Product2 where Id in :pList];
- List<Product2> pflgList = new List<Product2>();
+ List<Product2> proList = [select id, LastbuyProductFLG__c from Product2 where Id in :pList];
+ List<Product2> pflgList = new List<Product2>();
- for(Product2 pro : proList){
- if(pro.LastbuyProductFLG__c == false){
- pro.LastbuyProductFLG__c = true;
- pflgList.add(pro);
+ for(Product2 pro : proList){
+ if(pro.LastbuyProductFLG__c == false){
+ pro.LastbuyProductFLG__c = true;
+ pflgList.add(pro);
+ }
}
- }
- if(pflgList.size() > 0){
- update pflgList;
+ if(pflgList.size() > 0){
+ update pflgList;
+ }
}
- }
+ //2.(1)"鏄惁鏈夋晥" 鍙樹负 false 妫�绱骇鍝佷富鏁版嵁涓嬬殑鎵�鏈夐鐣欎骇鍝侊紝鍏ㄦ棤鏁堝垯鎶婁骇鍝佷富鏁版嵁鐨�"棰勭暀浜у搧"鏍囪瘑 鍙樹负 false
+ // (2)"浜у搧" 棰勭暀浜у搧 鏇存敼 浜у搧涓绘暟鎹箣鍓嶇殑浜у搧 -- 妫�绱骇鍝佷富鏁版嵁涓嬬殑鎵�鏈夐鐣欎骇鍝侊紙娌℃湁/鍏ㄦ棤鏁堬級
+ // "棰勭暀浜у搧"鏍囪瘑 鍙樹负 false
+ if(trigger.isUpdate || trigger.isDelete){
+ //"鏄惁鏈夋晥" 鍙樹负 "鍚�" 鏃� 鎵�瀵瑰簲鐨勪骇鍝佷富鏁版嵁Id &&棰勭暀浜у搧 鏇存敼 浜у搧涓绘暟鎹箣鍓嶇殑浜у搧
+ List<Id> pfList = new List<Id>();
- //褰�"鏄惁鏈夋晥"鍙戠敓鍙樺寲涓斿彉鎴�"鍚�"鏃讹紝妫�绱㈠悓涓�浜у搧鐨勬墍鏈夐鐣欎骇鍝侊紝
- //濡傛灉杩欎釜浜у搧鎵�鏈夌殑棰勭暀浜у搧閮芥棤鏁堜簡锛屾妸浜у搧涓绘暟鎹笂鐨勯鐣欎骇鍝佹爣绛捐缃垚false銆�
- //褰�"鏄惁鏈夋晥"鍙戠敓鍙樺寲涓斿彉鎴�"鏄�"鏃讹紝浜у搧涓绘暟鎹笂鐨勯鐣欎骇鍝佹爣绛捐缃垚true銆�
- private void Invalid(){
- List<Id> pfList = new List<Id>(); //"鏄惁鏈夋晥" 鍙樹负 "鍚�" 鏃� 鎵�瀵瑰簲鐨勪骇鍝佷富鏁版嵁Id
- List<Id> ptList = new List<Id>(); //"鏄惁鏈夋晥" 鍙樹负 "鏄�" 鏃� 鎵�瀵瑰簲鐨勪骇鍝佷富鏁版嵁Id
-
- for(LastbuyProduct__c lbp1 : newList){
- LastbuyProduct__c oldLbp1 = oldMap.get(lbp1.Id);
- if(oldLbp1.effectiveFLG__c != lbp1.effectiveFLG__c){
- if(lbp1.effectiveFLG__c == false){
- pfList.add(lbp1.ProductName__c);
- }else{ //lbp1.effectiveFLG__c == true
- ptList.add(lbp1.ProductName__c);
- }
-
- }
- }
- //"棰勭暀浜у搧"鏍囪瘑 鍙�"false"
- if(pfList.size() > 0){
- //Map<浜у搧Id锛岄鐣欎骇鍝�>
- Map<String,LastbuyProduct__c> lbpMap = new Map<String,LastbuyProduct__c>();
- //鍙戠敓鍙樺寲鐨勪骇鍝両d涓嬬殑鎵�鏈夐鐣欎骇鍝�
- List<LastbuyProduct__c> lbpList = [select id, effectiveFLG__c,ProductName__c from LastbuyProduct__c where ProductName__c in :pfList];
- System.debug('lt123鍙樺寲鐨勯鐣欎骇鍝乴bpList'+lbpList);
- //p1List effectiveFLG__c涓簍rue 鐨勪骇鍝両d
- List<Id> p1List = new List<Id>();
- //p2List 杩欎釜浜у搧鎵�鏈夌殑棰勭暀浜у搧閮芥棤鏁� 鐨勪骇鍝両d
- List<Id> p2List = new List<Id>();
-
- for(LastbuyProduct__c lbm : lbpList){
- lbpMap.put(lbm.ProductName__c,lbm);
- if(lbm.effectiveFLG__c == true){
- p1List.add(lbm.ProductName__c);
- }
- }
-
- if(p1List.size() > 0){
- for(Id p1 : p1List){
- if(!lbpMap.containsKey(p1)){
- p2List.add(p1);
+ if(trigger.isUpdate){
+ for(LastbuyProduct__c lbp1 : newList){
+ LastbuyProduct__c oldLbp1 = oldMap.get(lbp1.Id);
+ if(oldLbp1.effectiveFLG__c != lbp1.effectiveFLG__c){
+ if(lbp1.effectiveFLG__c == false){
+ pfList.add(lbp1.ProductName__c);
+ }
+ }
+ //浜у搧鍙戠敓鍙樺寲鏃讹紝妫�绱袱涓骇鍝佺殑鏍囪瘑
+ if(oldLbp1.ProductName__c != lbp1.ProductName__c){
+ pfList.add(oldLbp1.ProductName__c);
}
}
- }else{
- for(LastbuyProduct__c lbm : lbpList){
- p2List.add(lbm.ProductName__c);
+ }
+ else if(trigger.isDelete){
+ for(LastbuyProduct__c lbp2 : oldList){
+ pfList.add(lbp2.ProductName__c);
}
}
- List<Product2> pro1List = [select Id, LastbuyProductFLG__c from Product2 where Id in :p2List];
- List<Product2> prflgList = new List<Product2>();
- for(Product2 pro1 : pro1List){
- pro1.LastbuyProductFLG__c = false;
- System.debug('lt123棰勭暀浜у搧鏍囪瘑'+pro1.LastbuyProductFLG__c);
- prflgList.add(pro1);
- }
- if(prflgList.size() > 0){
- update prflgList;
- }
- }
+
+ System.debug('lt123闇�妫�绱㈡墍鏈夐鐣欎骇鍝佺殑浜у搧ID-pfList'+pfList);
+
+ //妫�绱骇鍝佷笅鐨勬墍鏈夐鐣欎骇鍝侊紝鍏ㄦ棤鏁堝皢浜у搧涓绘暟鎹笅鐨勬爣璇嗙疆涓篺alse
+ if(pfList.size() > 0){
+ //Map<浜у搧Id锛岄鐣欎骇鍝�>
+ Map<String,LastbuyProduct__c> lbpMap = new Map<String,LastbuyProduct__c>();
+ //鍙戠敓鍙樺寲鐨勪骇鍝両d涓嬬殑鎵�鏈夐鐣欎骇鍝�
+ List<LastbuyProduct__c> lbpList = [select id, effectiveFLG__c,ProductName__c from LastbuyProduct__c where ProductName__c in :pfList];
+ //p1List effectiveFLG__c涓簍rue 鐨勪骇鍝両d
+ List<Id> p1List = new List<Id>();
+ //p2List 杩欎釜浜у搧鎵�鏈夌殑棰勭暀浜у搧閮芥棤鏁� 鐨勪骇鍝両d
+ List<Id> p2List = new List<Id>();
+
+ if(lbpList.size() > 0){ //浜у搧鏈夐鐣欎骇鍝� 妫�鏌ラ鐣欎骇鍝佺殑"鏄惁鏈夋晥"
+ for(LastbuyProduct__c lbm : lbpList){
+ lbpMap.put(lbm.ProductName__c,lbm);
+ if(lbm.effectiveFLG__c == true){
+ p1List.add(lbm.ProductName__c);
+ }
+ }
- //"棰勭暀浜у搧"鏍囪瘑 鍙�"true"
- if(ptList.size() > 0){
- List<Product2> protList = [select Id, LastbuyProductFLG__c from Product2 where Id in :ptList];
- List<Product2> ptflgList = new List<Product2>();
- for(Product2 prot : protList){
- prot.LastbuyProductFLG__c = true;
- ptflgList.add(prot);
- }
- if(ptflgList.size() > 0){
- update ptflgList;
+ if(p1List.size() > 0){
+ for(Id p1 : p1List){
+ if(!lbpMap.containsKey(p1)){
+ p2List.add(p1);
+ }
+ }
+ }else{
+ for(LastbuyProduct__c lbm : lbpList){
+ p2List.add(lbm.ProductName__c);
+ }
+ }
+
+ }
+ else{ //浜у搧 娌℃湁棰勭暀浜у搧 鏍囪瘑false
+ p2List = pfList;
+ }
+
+ List<Product2> pro1List = [select Id, LastbuyProductFLG__c from Product2 where Id in :p2List];
+ List<Product2> prflgList = new List<Product2>();
+ for(Product2 pro1 : pro1List){
+ pro1.LastbuyProductFLG__c = false;
+ prflgList.add(pro1);
+ }
+ if(prflgList.size() > 0){
+ update prflgList;
+ }
}
}
--
Gitblit v1.9.1