From 19ae52ae3e06c44c646ae6b45dc2b0d7f2cead88 Mon Sep 17 00:00:00 2001
From: 李彤 <litong@prec-tech.com>
Date: 星期一, 15 五月 2023 18:55:53 +0800
Subject: [PATCH] 招标项目终止

---
 force-app/main/default/classes/LostCancelReportHandler.cls |   89 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 77 insertions(+), 12 deletions(-)

diff --git a/force-app/main/default/classes/LostCancelReportHandler.cls b/force-app/main/default/classes/LostCancelReportHandler.cls
index ebce451..5044614 100644
--- a/force-app/main/default/classes/LostCancelReportHandler.cls
+++ b/force-app/main/default/classes/LostCancelReportHandler.cls
@@ -30,7 +30,7 @@
 
     //2022-6-22 yjk 璇环璺熻繘浠诲姟 start
     protected override void afterInsert() {
-        updateTask();    
+        updateTask();  
     }
 
     // 2022-7-29 ssm XLIU-CGSC8R 銆愬鎵樸�慬鏀瑰杽銆戣浠烽噷鍒犻櫎鎵瑰噯鐨勫け鍗曟姤鍛婄姸鎬�1鑷姩鍙�
@@ -41,14 +41,15 @@
 
     private void updateTask(){
         List<Id> oppIdList = new List<Id>();
-        Set<Id> oppIdSet = new Set<Id>();
+        Set<Id> oppIdSet = new Set<Id>(); 
         Set<Id> sdoppidSet = new Set<Id>();
         List<Id> updateOppId = new List<Id>(); 
         List<Opportunity> updateOpp = new List<Opportunity>();
+        Map<String,String> cancelMap = new Map<String,String>();//lt 20230425 鎷涙爣缁堟 add
         
         for(Lost_cancel_report__c lcr : newList){
             oppIdList.add(lcr.Opportunity__c);
-			
+            cancelMap.put(lcr.Opportunity__c, lcr.RecordType.Name);//lt 20230425 鎷涙爣缁堟 add
         }
         // 20221202 ljh DB202211594688  start
         // List<task__c> taskList = [select id,taskStatus__c,OpportunityId__c from task__c where RecordType.Name ='涓爣缁撴灉纭' and taskStatus__c = '02 鎺ュ彈' and OpportunityId__c in :oppIdList];
@@ -57,8 +58,22 @@
         //     //updateOppId.add(tsk.OpportunityId__c); //20220823 you 娌℃湁浠诲姟鏃讹紝
         // }
         // LoseListTask 澶卞崟鎶ュ憡浠诲姟   winBiddingTask  涓爣缁撴灉纭
-        List<task__c> taskList = [select id,taskStatus__c,OpportunityId__c,RecordType.Name from task__c where (RecordType.Name ='涓爣缁撴灉纭' or RecordType.Name ='澶卞崟鎶ュ憡浠诲姟')  and OpportunityId__c in :oppIdList];
-        for(task__c tsk : taskList){
+        List<task__c> taskList = [select id,taskStatus__c,OpportunityId__c,RecordType.Name
+                                  from task__c 
+                                  where (RecordType.Name ='涓爣缁撴灉纭' or RecordType.Name ='澶卞崟鎶ュ憡浠诲姟')  
+                                  and OpportunityId__c in :oppIdList];
+        // 20230508 ljh DB202305008316 start
+        /*for(task__c tsk : taskList){
+            //lt 20230425 鎷涙爣缁堟 start
+            System.debug('---lt123---cancelMap:'+cancelMap);
+            System.debug('---lt123---cancelMap.get(tsk.OpportunityId__c):'+cancelMap.get(tsk.OpportunityId__c));
+            if(cancelMap.containsKey(tsk.OpportunityId__c)){
+                if(cancelMap.get(tsk.OpportunityId__c) == 'PCL_Cancel_report'){
+                    tsk.taskStatus__c = '04 鍙栨秷';
+                    tsk.cancelReasonSelect__c = '椤圭洰缁堟';
+                }
+            }else
+            //lt 20230425 鎷涙爣缁堟 end
             if(tsk.RecordType.Name == '涓爣缁撴灉纭' && tsk.taskStatus__c == '02 鎺ュ彈'){
                 tsk.taskStatus__c = '03 瀹屾垚';
             }
@@ -67,7 +82,28 @@
                 sdoppidSet.add(tsk.OpportunityId__c);
             }
             oppIdSet.add(tsk.OpportunityId__c);
+        }*/
+        List<task__c> Uptask = new List<task__c>();
+        for(task__c tsk : taskList){
+            task__c temp = new task__c();
+            temp.Id = tsk.Id;
+            if(cancelMap.containsKey(tsk.OpportunityId__c)){
+                if(cancelMap.get(tsk.OpportunityId__c) == 'PCL_Cancel_report'){
+                    temp.taskStatus__c = '04 鍙栨秷';
+                    temp.cancelReasonSelect__c = '椤圭洰缁堟';
+                }
+            }else
+            if(tsk.RecordType.Name == '涓爣缁撴灉纭' && tsk.taskStatus__c == '02 鎺ュ彈'){
+                temp.taskStatus__c = '03 瀹屾垚';
+            }
+            if(tsk.RecordType.Name == '澶卞崟鎶ュ憡浠诲姟'){
+                sdoppidSet.add(tsk.OpportunityId__c);
+            }
+            oppIdSet.add(tsk.OpportunityId__c);
+            Uptask.add(temp);
         }
+        // 20230508 ljh DB202305008316 end
+
         // for(Id oppId : oppIdList){//20220823 you
         for(Id oppId : oppIdSet){
         // 20221202 ljh DB202211594688  end
@@ -89,9 +125,12 @@
             updateOpp.add(opptemp);
         }
         
-        
 		update updateOpp;
-        update taskList;
+        // 20230508 ljh DB202305008316 start
+        // update taskList;
+        update Uptask;
+        // 20230508 ljh DB202305008316 end
+        
     }
     //2022-6-22 yjk 璇环璺熻繘浠诲姟 end
 
@@ -191,11 +230,28 @@
 
         //20220708 璇环浠诲姟寮�鍙戯紝缁撴潫澶卞崟浠诲姟鐘舵�侊紝绛涢�夐渶瑕佺殑淇敼鐨勫け鍗曚换鍔� start
         Set<String> oppIdSet = new Set<String>();
+        Set<String> passOppIdSet = new Set<String>();
         for (Lost_cancel_report__c n: newList) {
             if ((n.Report_Status__c != oldMap.get(n.Id).Report_Status__c) && n.Report_Status__c == '鐢宠涓�') {
                 oppIdSet.add(n.Opportunity__c);
             }
+            if ((n.Report_Status__c != oldMap.get(n.Id).Report_Status__c) && n.Report_Status__c == '鎵瑰噯') {
+                passOppIdSet.add(n.Opportunity__c);
+            }
         }
+        // 20230411 澶氬け鍗曟姤鍛婂悎骞讹紝鍙栧嚭寰呭悎骞剁殑璇环 start
+        Map<String, Opportunity> mapOpps = new Map<String, Opportunity>();
+        List<Opportunity> lstOpps = [select Id, RivalHostsNumber__c, CompetitorProduct1__c, 
+                                        CompetitorProduct2__c, CompetitorProduct3__c, Lost_reason_main__c, 
+                                        Lost_Reason_Sub__c, Agencies__c, PCLLostBrands__c, of_lost_system_processor__c, 
+                                        LostPrices__c 
+                                    from Opportunity 
+                                    where Id in :passOppIdSet];
+        for(Opportunity opp : lstOpps) {
+            mapOpps.put(opp.Id, opp);
+        }
+        System.debug('mapOpps: ' + mapOpps);
+        // 20230411 澶氬け鍗曟姤鍛婂悎骞讹紝鍙栧嚭寰呭悎骞剁殑璇环 end
         // 20220720 ljh add 璁板綍鍙栨秷/澶卞崟鎶ュ憡鎻愪氦鏃剁偣鐨勬垬鐣ヤ骇鍝佸垽鏂� start
         if(oppIdSet.size() > 0 ){
             List<OpportunityLineItem> OppLIlist = [select Id,Key_product_147P_Text__c,Key_product_147P__c from OpportunityLineItem  where OpportunityId in :oppIdSet];
@@ -204,9 +260,13 @@
             }
             update OppLIlist;
         // 20220720 ljh add 璁板綍鍙栨秷/澶卞崟鎶ュ憡鎻愪氦鏃剁偣鐨勬垬鐣ヤ骇鍝佸垽鏂� end
-	        List<task__c> taskList = [select id,taskStatus__c from task__c where RecordType.Name ='澶卞崟鎶ュ憡浠诲姟' and taskStatus__c = '02 鎺ュ彈' and OpportunityId__c in :oppIdSet];
+	        List<task__c> taskList = [select id,taskStatus__c
+                                      from task__c 
+                                      where RecordType.Name ='澶卞崟鎶ュ憡浠诲姟' 
+                                      and taskStatus__c = '02 鎺ュ彈' 
+                                      and OpportunityId__c in :oppIdSet];
 	        for(task__c tsk : taskList){
-	            tsk.taskStatus__c = '03 瀹屾垚';
+                tsk.taskStatus__c = '03 瀹屾垚';
 	        }
 	        update taskList;
         }// 20220720 ljh update
@@ -231,11 +291,16 @@
             List<String> ppList=new List<String>();     //澶卞崟鍝佺墝
             // List<String> yyList=new List<String>();     //澶卞崟鍘熷洜
             //鍒濆鍖�
-            Opportunity opp=new Opportunity();
+            // 20230411 澶氬け鍗曟姤鍛婂悎骞讹紝鍙栧嚭寰呭悎骞剁殑璇环 start
+            Opportunity opp = mapOpps != null && mapOpps.containsKey(arrMap.get(lcro).Opportunity__c) ? mapOpps.get(arrMap.get(lcro).Opportunity__c) : new Opportunity();
             //20220930  lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 start
-            opp.RivalHostsNumber__c = 0;
+            opp.RivalHostsNumber__c = opp.RivalHostsNumber__c != null ? opp.RivalHostsNumber__c : 0;
             //20220930  lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 end
-            opp.Id=arrMap.get(lcro).Opportunity__c; opp.PCLLostBrands__c=''; opp.Agencies__c='';    //Id ,鍝佺墝,缁忛攢鍟�
+            opp.Id = String.isNotBlank(opp.Id) ? opp.Id : arrMap.get(lcro).Opportunity__c; 
+            opp.PCLLostBrands__c = String.isNotBlank(opp.PCLLostBrands__c) ? opp.PCLLostBrands__c : ''; 
+            opp.Agencies__c = String.isNotBlank(opp.Agencies__c) ? opp.Agencies__c : ''; 
+            System.debug('opp: ' + opp);
+            // 20230411 澶氬け鍗曟姤鍛婂悎骞讹紝鍙栧嚭寰呭悎骞剁殑璇环 end
             // for浜у搧
             for (PCLLostProduct__c lcr : lcrList) {
                 if (opp.Id==lcr.Opportunity__c) {

--
Gitblit v1.9.1