From 988f9735377909b6310301e582c15804e004783f Mon Sep 17 00:00:00 2001
From: 19626 <1962676589@qq.com>
Date: 星期六, 07 十月 2023 10:36:13 +0800
Subject: [PATCH] 近期修改cjw
---
force-app/main/default/classes/LostCancelReportHandler.cls | 163 +++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 135 insertions(+), 28 deletions(-)
diff --git a/force-app/main/default/classes/LostCancelReportHandler.cls b/force-app/main/default/classes/LostCancelReportHandler.cls
index 08ddacd..d85f541 100644
--- a/force-app/main/default/classes/LostCancelReportHandler.cls
+++ b/force-app/main/default/classes/LostCancelReportHandler.cls
@@ -17,7 +17,8 @@
updateManager();
//銆怓Y23璇环鏀瑰杽銆�-P锛氫腑鏍囩粨鏋滅‘璁や换鍔″紑鍙� 20220706 鏇存柊澶卞崟浠诲姟纭鏃堕棿
updateLostTaskTime();
-
+ // 鏇存柊钀ヤ笟鍔╃悊
+ updateSalesAssistant();
}
// 鏇存柊瀹℃壒浜� 20200302 End
@@ -30,7 +31,7 @@
//2022-6-22 yjk 璇环璺熻繘浠诲姟 start
protected override void afterInsert() {
- updateTask();
+ updateTask();
}
// 2022-7-29 ssm XLIU-CGSC8R 銆愬鎵樸�慬鏀瑰杽銆戣浠烽噷鍒犻櫎鎵瑰噯鐨勫け鍗曟姤鍛婄姸鎬�1鑷姩鍙�
@@ -41,14 +42,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 +59,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 +83,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 +126,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 +231,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 +261,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
@@ -214,11 +275,13 @@
List<PCLLostProduct__c> lcrList=[select id,PCLLostBrand__r.Lost_cancel_report__r.of_lost_system_processor__c,
PCLLostBrand__r.Lost_Reason_Sub__c,PCLLostBrand__r.Lost_cancel_report__r.LostTotalAmount__c,
+ PCLLostBrand__r.Lost_cancel_report__r.TotalAmountLost__c, //20230215 lt DB202302247719
PCLLostBrand__r.Lost_cancel_report__r.LostType__c,PCLLostBrand__r.Lost_By_Company__c,
PCLLostBrand__r.Lost_By_Company_Mannual__c,PCLLostBrand__r.LostPrice__c,LostProduct__r.Name,
PCLLostBrand__r.Lost_reason_main__c,PCLLostBrand__r.Agency__r.Name,PCLLostBrand__r.AgencyMannual__c,
PCLLostBrand__r.Lost_cancel_report__r.Opportunity__r.Name,Opportunity__c, LostProductMannual__c
- ,ProductClass__c, Quantity__c //20220930 lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟
+ ,ProductClass__c
+ , Quantity__c //20220930 lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟
from PCLLostProduct__c
where PCLLostBrand__r.Lost_cancel_report__c in : arrMap.keyset()];
List<Opportunity> oppList=new List<Opportunity>();
@@ -230,25 +293,24 @@
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;
- System.debug('lt123鍒濆澶卞崟涓绘満鏁�'+ opp.RivalHostsNumber__c);
+ 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) {
- System.debug('lt123涓绘満111'+ lcr.ProductClass__c);
if (opp.Id==lcr.Opportunity__c) {
-
//20220930 lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 start
- System.debug('lt123涓绘満'+ lcr.ProductClass__c);
if(lcr.ProductClass__c == '涓绘満'){
opp.RivalHostsNumber__c += lcr.Quantity__c;
- System.debug('lt123绱姞澶卞崟涓绘満鏁�'+ opp.RivalHostsNumber__c);
}else{
opp.RivalHostsNumber__c += 0;
- System.debug('lt123涓嶅彉澶卞崟涓绘満鏁�'+ opp.RivalHostsNumber__c);
}
//20220930 lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 end
@@ -325,10 +387,21 @@
// }
// }
//澶卞崟鎬婚噾棰�
- opp.LostPrices__c=lcr.PCLLostBrand__r.Lost_cancel_report__r.LostTotalAmount__c;
+ //opp.LostPrices__c=lcr.PCLLostBrand__r.Lost_cancel_report__r.LostTotalAmount__c;//20230215 lt DB202302247719 娉ㄩ噴
+ // opp.LostPrices__c=lcr.PCLLostBrand__r.Lost_cancel_report__r.TotalAmountLost__c; //20230215 lt DB202302247719
opp.of_lost_system_processor__c=lcr.PCLLostBrand__r.Lost_cancel_report__r.of_lost_system_processor__c;
}
}
+ //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
+
// 20221202 ljh DB202211594688 start
System.debug('zheli00:'+oppIdPZSet+'~'+opp.Id);
if(oppIdPZSet.contains(opp.Id)){
@@ -339,7 +412,6 @@
oppList.add(opp);
}
update oppList;
-
}
// tcm 20211126 鏇存柊璇环淇℃伅 end
@@ -352,7 +424,8 @@
for(Lost_cancel_report__c lcr : newList){
//绛涢�夊嚭闇�瑕佹彁浜ゆ棩鏈変慨鏀圭殑璁㈠崟
Lost_cancel_report__c oldLrc = oldMap.get(lcr.Id);
- if((lcr.Report_Status__c != oldMap.get(lcr.Id).Report_Status__c) && lcr.Report_Status__c == '鐢宠涓�'){ //oldLrc.Submit_Day__c != lcr.Submit_Day__c
+ //DB202309191132 绱ф�ヨ皟鏌ワ細淇敼澶卞崟鎶ュ憡澶卞崟鎶ュ憡纭鏃堕棿琚洿鏂� lt 20230911 add && lcr.ModifyAfterApproval_SubmitDay__c == null
+ if((lcr.Report_Status__c != oldMap.get(lcr.Id).Report_Status__c) && lcr.Report_Status__c == '鐢宠涓�' && lcr.ModifyAfterApproval_SubmitDay__c == null){ //oldLrc.Submit_Day__c != lcr.Submit_Day__c
lostIds.add(lcr.Id);
oppIds.add(lcr.Opportunity__c);
}
@@ -398,13 +471,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;
}
@@ -412,4 +503,20 @@
}
// 2022-7-29 ssm XLIU-CGSC8R 銆愬鎵樸�慬鏀瑰杽銆戣浠烽噷鍒犻櫎鎵瑰噯鐨勫け鍗曟姤鍛婄姸鎬�1鑷姩鍙� end
+ // 鏇存柊钀ヤ笟鍔╃悊
+ private void updateSalesAssistant() {
+ Map<String, Opportunity> opps = new Map<String, Opportunity>();
+ for (Lost_cancel_report__c report : this.newList) {
+ opps.put(report.Opportunity__c, null);
+ }
+ if (opps != null && opps.size() > 0) {
+ List<Opportunity> opplist = [select Id, Sales_assistant_ID__c from Opportunity where Id in :opps.keySet()];
+ for (Opportunity opp : opplist) {
+ opps.put(opp.Id, opp);
+ }
+ for (Lost_cancel_report__c report : this.newList) {
+ report.Sales_assistant__c = opps.get(report.Opportunity__c) != null ? opps.get(report.Opportunity__c).Sales_assistant_ID__c : report.Sales_assistant__c;
+ }
+ }
+ }
}
\ No newline at end of file
--
Gitblit v1.9.1