From 928399eceec50e3d37ea08669a12789a9410a9d2 Mon Sep 17 00:00:00 2001
From: 沙世明 <shashiming@prec-tech.com>
Date: 星期二, 22 十一月 2022 16:51:16 +0800
Subject: [PATCH] 111

---
 force-app/main/default/classes/TenderOpportunityLinkHandler.cls |  136 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 128 insertions(+), 8 deletions(-)

diff --git a/force-app/main/default/classes/TenderOpportunityLinkHandler.cls b/force-app/main/default/classes/TenderOpportunityLinkHandler.cls
index 81e4d7d..1923d0b 100644
--- a/force-app/main/default/classes/TenderOpportunityLinkHandler.cls
+++ b/force-app/main/default/classes/TenderOpportunityLinkHandler.cls
@@ -204,6 +204,7 @@
 public void updateOppotunityByInsert(List<Tender_Opportunity_Link__c> records) {   
     if (records != null && records.size() > 0) {
         List<String> oppIds = new List<String>();
+        Set<Id> oppIdsSet = new Set<Id>();// 20221028 ljh SWAG-CKL5UC
         //SWAG-CHL67J 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 fy start 
         // List<String> TenderIds = new List<String>();
         //SWAG-CHL67J 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 fy end
@@ -211,19 +212,27 @@
         for (Tender_Opportunity_Link__c record: records) {
             if (!oppIds.contains(record.Opportunity__c)) {
                 oppIds.add(record.Opportunity__c);
+                // 20221028 ljh SWAG-CKL5UC add start
+                system.debug('zheli00:'+record.IsLeakage__c);
+                if(record.IsLeakage__c){
+                    oppIdsSet.add(record.Opportunity__c);
+                }
+                // 20221028 ljh SWAG-CKL5UC add end
             }
             //SWAG-CHL67J 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 fy start 
             // if (!TenderIds.contains(record.Tender_information__c)) {
             //     TenderIds.add(record.Tender_information__c);
             // }
             //SWAG-CHL67J 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 fy end
+            
         }
         if (oppIds.size() > 0) {
             List<String> tenIds = new List<String>();//20220715 you 鎷涙爣椤圭洰鎻掑叆鏃讹紝鏄惁闇�瑕佸彂閫佽浠蜂换鍔� 鏂扮殑鎷涙爣椤圭洰
             //20220615 you SWAG-CFD4SU 鏀归�� start 濮嬬粓鏄剧ず鏈�鏂扮殑 鈶� 3锛氱粨鏋�,鈶� 4锛氬彉鏇�,鈶� 2锛氬叕鍛�,鈶� 1锛氶鍛�,鈶� 5锛氬叾浠� 
-            List<Opportunity> opportunities = [select id,Tender_Number__c, Bidding_Project_Name_Bid__c, Bidding_Project_Name_Bid__r.InfoType__c, TenderBeginDate_Text__c, InfoTypeBid_text__c,Opp_Order__c from Opportunity where id in :oppIds ];//and Bidding_Project_Name_Bid__r.InfoType__c != '3锛氱粨鏋�'];
+            // 20221028 ljh SWAG-CKL5UC 鏌ヨ澧炲姞 LeakageNumber__c 
+            List<Opportunity> opportunities = [select id,Tender_Number__c, Bidding_Project_Name_Bid__c, Bidding_Project_Name_Bid__r.InfoType__c, TenderBeginDate_Text__c, InfoTypeBid_text__c,Opp_Order__c,LeakageNumber__c   from Opportunity where id in :oppIds ];//and Bidding_Project_Name_Bid__r.InfoType__c != '3锛氱粨鏋�'];
             if (opportunities.size() > 0) {
-                List<Tender_Opportunity_Link__c> links = [select id, Opportunity__c, Tender_information__c, Tender_information__r.InfoType__c, Tender_information__r.TenderBeginTime__c,Tender_information__r.Tender_Order__c,Tender_information__r.subInfoType__c from Tender_Opportunity_Link__c where Opportunity__c in :oppIds order by Opportunity__c,Tender_information__r.Tender_Order__c desc, Tender_information__r.relativeTime_F__c desc];
+                List<Tender_Opportunity_Link__c> links = [select id, Opportunity__c, Tender_information__c, Tender_information__r.InfoType__c, Tender_information__r.TenderBeginTime__c,Tender_information__r.TenderDate__c,Tender_information__r.Tender_Order__c,Tender_information__r.subInfoType__c from Tender_Opportunity_Link__c where Opportunity__c in :oppIds order by Opportunity__c,Tender_information__r.Tender_Order__c desc, Tender_information__r.relativeTime_F__c desc];
                 for (Opportunity opp : opportunities) {
                     for (Tender_Opportunity_Link__c link : links) {
                         boolean defaultFlag = false;
@@ -248,7 +257,7 @@
                             **/
                             if(opp.Opp_Order__c <= link.Tender_information__r.Tender_Order__c){
                               opp.Bidding_Project_Name_Bid__c = link.Tender_information__c;
-                              opp.TenderBeginDate_Text__c = link.Tender_information__r.TenderBeginTime__c;
+                              //opp.TenderBeginDate_Text__c =  link.Tender_information__r.TenderDate__c;//鏇存敼璇环鐘舵��2鏃讹紝寮曠敤瓒�20锛宭ink.Tender_information__r.TenderBeginTime__c;
                               opp.InfoTypeBid_text__c = link.Tender_information__r.InfoType__c;
                               //20220715 you 鎷涙爣椤圭洰 start
                               if(String.isNotBlank(link.Tender_information__r.InfoType__c) && link.Tender_information__r.InfoType__c=='3锛氱粨鏋�' && String.isNotBlank(link.Tender_information__r.subInfoType__c) && (link.Tender_information__r.subInfoType__c=='3-5锛氫腑鏍囬�氱煡' || link.Tender_information__r.subInfoType__c=='3-6锛氬悎鍚屽叕鍛�')){
@@ -272,7 +281,11 @@
                     }
                     opp.Tender_Number__c =returncount;
                     //20220829 you SWAG-CHL67J end
-                    
+                    // 20221028 ljh SWAG-CKL5UC add start
+                    if(oppIdsSet.contains(opp.Id) && opp.LeakageNumber__c != 1){
+                        opp.LeakageNumber__c = 1;
+                    }
+                    // 20221028 ljh SWAG-CKL5UC add end
                 }
                 update opportunities;
             }
@@ -387,16 +400,19 @@
             //     TenderIds.add(record.Tender_information__c);
             // }
             //SWAG-CHL67J 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 fy end
+
         }
         if (oppIds.size() > 0) {
             List<String> tenIds = new List<String>();//20220715 you 鎷涙爣椤圭洰鎻掑叆鏃讹紝鏄惁闇�瑕佸彂閫佽浠蜂换鍔� 鏂扮殑鎷涙爣椤圭洰
             //20220615 you SWAG-CFD4SU 鏀归�� 澧炲姞鏌ヨ鏉′欢
             List<Opportunity> opportunities = [select id, Bidding_Project_Name_Bid__c,Tender_Number__c, TenderBeginDate_Text__c,Opp_Order__c from Opportunity where id in :oppIds];
+            
             if (opportunities.size() > 0) {
                 //20220615 you SWAG-CFD4SU 鏀归�� 澧炲姞鏌ヨ鏉′欢
-                List<Tender_Opportunity_Link__c> links = [select id, Opportunity__c, Tender_information__c, Tender_information__r.InfoType__c,Tender_information__r.subInfoType__c,Tender_information__r.Tender_Order__c,Tender_information__r.TenderBeginTime__c from Tender_Opportunity_Link__c where Opportunity__c in :oppIds order by Opportunity__c,Tender_information__r.Tender_Order__c desc, Tender_information__r.relativeTime_F__c desc];
+                List<Tender_Opportunity_Link__c> links = [select id, Opportunity__c, Tender_information__c, Tender_information__r.InfoType__c,Tender_information__r.subInfoType__c,Tender_information__r.Tender_Order__c,Tender_information__r.TenderBeginTime__c,Tender_information__r.TenderDate__c from Tender_Opportunity_Link__c where Opportunity__c in :oppIds order by Opportunity__c,Tender_information__r.Tender_Order__c desc, Tender_information__r.relativeTime_F__c desc];
                 List<AggregateResult> sum_list = [select count(id) cnt, Opportunity__c from Tender_Opportunity_Link__c where Opportunity__c in :oppIds group by Opportunity__c];
                 Map<String, Integer> sum_map = new Map<String, Integer>();
+               
                 if (sum_list != null && sum_list.size() > 0) {
                     for (AggregateResult result : sum_list) {
                         sum_map.put(String.valueOf(result.get('Opportunity__c')), Integer.valueOf(result.get('cnt')));
@@ -405,7 +421,7 @@
                 for (Opportunity opp : opportunities) {
                     if (sum_map.get(opp.Id) == null || sum_map.get(opp.Id) == 0) {
                         opp.Bidding_Project_Name_Bid__c = null;
-                        opp.TenderBeginDate_Text__c = null;
+                        //opp.TenderBeginDate_Text__c = null;
                         opp.InfoTypeBid_text__c = null;
                         //20220718 you 璇环浠诲姟 start
                         opp.ConfirmationofAward__c = null;
@@ -415,6 +431,9 @@
                         opp.Is_ConfirmationofAward__c =null;
                         opp.Closing_Bid_Date__c = null;
                         //20220718 you 璇环浠诲姟 end
+                        // 20221028 ljh SWAG-CKL5UC start
+                        opp.LeakageNumber__c = null;
+                        // 20221028 ljh SWAG-CKL5UC end
                     } else {
                         for (Tender_Opportunity_Link__c link : links) {
                             if (opp.Id == link.Opportunity__c) {
@@ -426,9 +445,10 @@
                                     break;
                                 }
                                 **/
-                                if(opp.Opp_Order__c <= link.Tender_information__r.Tender_Order__c){
+                                //records[0].addError(opp.Opp_Order__c+'ceshi==='+links.size()+'==='+link.Tender_information__r.Tender_Order__c);
+                                if(opp.Opp_Order__c >= link.Tender_information__r.Tender_Order__c){
                                   opp.Bidding_Project_Name_Bid__c = link.Tender_information__c;
-                                  opp.TenderBeginDate_Text__c = link.Tender_information__r.TenderBeginTime__c;
+                                  //opp.TenderBeginDate_Text__c = link.Tender_information__r.TenderDate__c;//鏇存敼璇环鐘舵��2鏃讹紝寮曠敤瓒�20锛宭ink.Tender_information__r.TenderBeginTime__c;
                                   opp.InfoTypeBid_text__c = link.Tender_information__r.InfoType__c;
                                   //20220718 you 鎷涙爣椤圭洰 start
                                   if(String.isNotBlank(link.Tender_information__r.InfoType__c) && link.Tender_information__r.InfoType__c=='3锛氱粨鏋�' && String.isNotBlank(link.Tender_information__r.subInfoType__c) && (link.Tender_information__r.subInfoType__c=='3-5锛氫腑鏍囬�氱煡'  || link.Tender_information__r.subInfoType__c=='3-6锛氬悎鍚屽叕鍛�')){
@@ -471,4 +491,104 @@
         //SWAG-CHL67J 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 fy end
     }
 }
+ @TestVisible
+    public static void testI() {
+        integer i = 0;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1