| | |
| | | updateManager(); |
| | | //【FY23询价改善】-P:中标结果确认任务开发 20220706 更新失单任务确认时间 |
| | | updateLostTaskTime(); |
| | | |
| | | // 更新营业助理 |
| | | updateSalesAssistant(); |
| | | } |
| | | // 更新审批人 20200302 End |
| | | |
| | |
| | | |
| | | //2022-6-22 yjk 询价跟进任务 start |
| | | protected override void afterInsert() { |
| | | updateTask(); |
| | | updateTask(); |
| | | } |
| | | |
| | | // 2022-7-29 ssm XLIU-CGSC8R 【委托】[改善】询价里删除批准的失单报告状态1自动变 |
| | |
| | | |
| | | 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]; |
| | |
| | | // //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 完成'; |
| | | } |
| | |
| | | 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 |
| | |
| | | updateOpp.add(opptemp); |
| | | } |
| | | |
| | | |
| | | update updateOpp; |
| | | update taskList; |
| | | // 20230508 ljh DB202305008316 start |
| | | // update taskList; |
| | | update Uptask; |
| | | // 20230508 ljh DB202305008316 end |
| | | |
| | | } |
| | | //2022-6-22 yjk 询价跟进任务 end |
| | | |
| | |
| | | |
| | | //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]; |
| | |
| | | } |
| | | 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 |
| | |
| | | |
| | | 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【FY23询价改善】-统计主机台数 |
| | | ,ProductClass__c |
| | | , Quantity__c //20220930 lt SWAG-CHL5XA【FY23询价改善】-统计主机台数 |
| | | from PCLLostProduct__c |
| | | where PCLLostBrand__r.Lost_cancel_report__c in : arrMap.keyset()]; |
| | | List<Opportunity> oppList=new List<Opportunity>(); |
| | |
| | | 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【FY23询价改善】-统计主机台数 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【FY23询价改善】-统计主机台数 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【FY23询价改善】-统计主机台数 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【FY23询价改善】-统计主机台数 end |
| | | |
| | |
| | | // } |
| | | // } |
| | | //失单总金额 |
| | | 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)){ |
| | |
| | | oppList.add(opp); |
| | | } |
| | | update oppList; |
| | | |
| | | } |
| | | // tcm 20211126 更新询价信息 end |
| | | |
| | |
| | | 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); |
| | | } |
| | |
| | | } |
| | | 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; |
| | | } |
| | |
| | | } |
| | | // 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; |
| | | } |
| | | } |
| | | } |
| | | } |