From e9e1806b0f4b5bae1fc36204ccc5d6fdad52d66f Mon Sep 17 00:00:00 2001 From: buli <137736985@qq.com> Date: 星期一, 05 六月 2023 11:22:08 +0800 Subject: [PATCH] Merge branch 'master' into LightningUpgradeProject --- force-app/main/default/classes/LostCancelReportHandler.cls | 122 ++++++++++++++++++++++++++++++++++------ 1 files changed, 102 insertions(+), 20 deletions(-) diff --git a/force-app/main/default/classes/LostCancelReportHandler.cls b/force-app/main/default/classes/LostCancelReportHandler.cls index a864cd5..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,15 +291,19 @@ 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) { - //20220930 lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 start if(lcr.ProductClass__c == '涓绘満'){ opp.RivalHostsNumber__c += lcr.Quantity__c; @@ -326,12 +390,13 @@ opp.of_lost_system_processor__c=lcr.PCLLostBrand__r.Lost_cancel_report__r.of_lost_system_processor__c; } } - //20230215 lt DB202302247719 start + //20230215 lt DB202302247719 start if(arrMap.get(lcro).TotalAmountLost__c != null){ if(opp.LostPrices__c == null){ opp.LostPrices__c = 0; } opp.LostPrices__c+=arrMap.get(lcro).TotalAmountLost__c; + // System.debug('lt123---opp.LostPrices__c---澶卞崟閲戦2锛� '+opp.LostPrices__c); } //20230215 lt DB202302247719 end @@ -345,7 +410,6 @@ oppList.add(opp); } update oppList; - } // tcm 20211126 鏇存柊璇环淇℃伅 end @@ -404,13 +468,31 @@ } System.debug('oppIds: ' + oppIds); if (oppIds.size() > 0) { - List<Opportunity> opps = [select Id, StageName, Final_Contract_Proceeded_Date__c, Lost_Opportunity_Date__c from Opportunity where Id in :oppIds and StageName in ('鏁楁垿', '鍓婇櫎')]; - System.debug('opps: ' + opps); + //DB202303237846 lt 20230316 add , Lost_Cancel_Report__c,Lost_Cancel_Report__r.Report_Status__c,Lost_Cancel_Report__r.LostType__c + List<Opportunity> opps = [select Id, StageName, Final_Contract_Proceeded_Date__c, Lost_Opportunity_Date__c, Lost_Cancel_Report__c,Lost_Cancel_Report__r.Report_Status__c,Lost_Cancel_Report__r.LostType__c from Opportunity where Id in :oppIds and StageName in ('鏁楁垿', '鍓婇櫎')]; + System.debug('opps: ' + opps); + //DB202303237846 lt 20230316 start + Set<String> oppSet = new Set<String>(); + List<Lost_Cancel_Report__c> oppreps = [select Id, Report_Status__c, LostType__c, Opportunity__c from Lost_Cancel_Report__c where Opportunity__c in :opps and Report_Status__c='鎵瑰噯' and LostType__c = '澶卞崟']; + if(oppreps.Size() > 0){ + for(Lost_Cancel_Report__c lcp : oppreps){ + oppSet.add(lcp.Opportunity__c); + } + } if (opps.size() > 0) { for (Opportunity opp : opps) { - opp.StageName = '寮曞悎'; - opp.Final_Contract_Proceeded_Date__c = null; - opp.Lost_Opportunity_Date__c = null; + if(oppSet.size() > 0 && oppSet.contains(opp.Id)){ + continue; + }else{ + opp.StageName = '寮曞悎'; + opp.Final_Contract_Proceeded_Date__c = null; + opp.Lost_Opportunity_Date__c = null; + } + + // if(opp.Lost_Cancel_Report__c == null || (opp.Lost_Cancel_Report__c != null && (opp.Lost_Cancel_Report__r.Report_Status__c != '鎵瑰噯' || opp.Lost_Cancel_Report__r.LostType__c != '澶卞崟'))){ + + // } + //DB202303237846 lt 20230316 end } update opps; } -- Gitblit v1.9.1