From 582ab5d403a12e7ac0834dac34bc087dbbea8dc7 Mon Sep 17 00:00:00 2001 From: 李彤 <litong@prec-tech.com> Date: 星期五, 30 十二月 2022 17:37:36 +0800 Subject: [PATCH] 修改预测日 --- force-app/main/default/classes/ImprovedForecastTimeController.cls | 160 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 160 insertions(+), 0 deletions(-) diff --git a/force-app/main/default/classes/ImprovedForecastTimeController.cls b/force-app/main/default/classes/ImprovedForecastTimeController.cls new file mode 100644 index 0000000..8710c67 --- /dev/null +++ b/force-app/main/default/classes/ImprovedForecastTimeController.cls @@ -0,0 +1,160 @@ +public with sharing class ImprovedForecastTimeController { + @AuraEnabled + public static String GetOppinformationcData(String ParamIdStr) { + //鑾峰彇鏁版嵁 + List<InquiryPredictsDateChange__c> ipdList = Database.query('Select Id,Name,Opportunity__c,Date_InAdvance_Delay__c,CloseDate__c, CloseDate_Old__c, Close_Forecasted_Date__c,Predicted_date_ChangeReason__c,Predicted_Date_Status__c,Close_Forecasted_Date_Old__c, Manager_name__c,Opportunity__r.Sales_manager_departmentID__c,Opportunity__r.Sales_assistant_ID__c,Sales_assistant_name__c From InquiryPredictsDateChange__c Where Opportunity__c = : ParamIdStr order by CreatedDate desc'); + if(ipdList.size() > 0){ + OppInfo opp = new OppInfo(ipdList[0]); + return JSON.serialize(opp); + }else{ + Opportunity arrays = Database.query('Select Id,Name,Opportunity_No__c,CloseDate, Close_Forecasted_Date__c,Sales_manager_departmentID__c,Sales_assistant_ID__c From Opportunity Where id = : ParamIdStr'); + System.debug('lt123arrays'+arrays); + OppInfo opp = new OppInfo(arrays); + return JSON.serialize(opp); + } + } + + public class OppInfo { + // 璇环Id + public String Opportunity { get; set; } + // 璇环缂栫爜 + public String Opportunity_No { get; set; } + // 璇环棰勬祴琛↖d + public String datechangeId { get; set; } + // 棰勬祴KPI褰撳墠鍊� + public Date Close_Forecasted_Date_Old { get; set; } + // 棰勬祴KPI鐩爣鍊� + public Date Close_Forecasted_Date { get; set; } + + // 20220830 聽鈥滄媴褰撯�濆瓧娈靛純鐢� 聽鍙敤鈥渒pi鈥濆瓧娈靛垽鏂� + // // 棰勬祴鎷呭綋褰撳墠鍊� + // public Date Close_Forecasted_Assume_Date_Old { get; set; } + // // 棰勬祴鎷呭綋鐩爣鍊� + // public Date Close_Forecasted_Assume_Date { get; set; } + + // 棰勬祴鍙戣揣褰撳墠鍊� + public Date CloseDate_Old { get; set; } + // 棰勬祴鍙戣揣鐩爣鍊� + public Date CloseDate { get; set; } + // 鎻愬墠/寤跺悗 + public String Date_InAdvance_Delay { get; set; } + // 鍘熷洜 + public String Predicted_date_ChangeReason { get; set; } + // cl6缁忕悊 + public String Manager_name { get; set; } + // 鍔╃悊 + public String Sales_assistant_name { get; set; } + // 鐘舵�� + public String Predicted_Date_Status { get; set; } + + // 澧炲姞涓�涓瓧娈� 鐢ㄦ潵鍋氬垽鏂敤鐨� + public Date Close_Forecasted_Check { get; set; } + + // 浠庤浠蜂笂鑾峰緱鏁版嵁 + public OppInfo(Opportunity opp) { + Opportunity = opp.Id; + Opportunity_No = opp.Opportunity_No__c; + Close_Forecasted_Date_Old = opp.Close_Forecasted_Date__c; + // Close_Forecasted_Assume_Date_Old = opp.Close_Forecasted_Assume_Date__c; + CloseDate_Old = opp.CloseDate; + Manager_name = opp.Sales_manager_departmentID__c; + //Sales_assistant_ID__c鏇挎崲Sales_assistant_name_text__c + Sales_assistant_name = opp.Sales_assistant_ID__c; + + //20220830 聽鈥滄媴褰撯�濆瓧娈靛純鐢� 聽鍙敤鈥渒pi鈥濆瓧娈靛垽鏂� + //Close_Forecasted_Check = opp.Close_Forecasted_Assume_Date__c != null ? opp.Close_Forecasted_Assume_Date__c : opp.Close_Forecasted_Date__c; + Close_Forecasted_Check = opp.Close_Forecasted_Date__c; + } + // 浠庤浠烽娴嬩笂鑾峰緱鏁版嵁 + public OppInfo(InquiryPredictsDateChange__c datechange) { + // 鎶婂綋鍓嶅凡鏈夌殑鍊奸兘璁剧疆涓� + Opportunity = datechange.Opportunity__c; + Opportunity_No = datechange.Name; + datechangeId = datechange.Id; + + Close_Forecasted_Date_Old = datechange.Predicted_Date_Status__c == '宸叉壒鍑�' ? datechange.Close_Forecasted_Date__c : datechange.Close_Forecasted_Date_Old__c; + // Close_Forecasted_Assume_Date_Old = datechange.Predicted_Date_Status__c == '宸叉壒鍑�' ? datechange.Close_Forecasted_Assume_Date__c : datechange.Close_Forecasted_Assume_Date_Old__c; + Close_Forecasted_Date = datechange.Close_Forecasted_Date__c; + // Close_Forecasted_Assume_Date = datechange.Close_Forecasted_Assume_Date__c; + CloseDate_Old = datechange.Predicted_Date_Status__c == '宸叉壒鍑�' ? datechange.CloseDate__c : datechange.CloseDate_Old__c; + CloseDate = datechange.CloseDate__c; + + if(datechange.Predicted_Date_Status__c != '宸叉壒鍑�'){ + // Close_Forecasted_Check = datechange.Close_Forecasted_Assume_Date_Old__c != null ? datechange.Close_Forecasted_Assume_Date_Old__c : datechange.Close_Forecasted_Date_Old__c; + Close_Forecasted_Check = datechange.Close_Forecasted_Date_Old__c; + }else { + // Close_Forecasted_Check = datechange.Close_Forecasted_Assume_Date__c != null ? datechange.Close_Forecasted_Assume_Date__c : datechange.Close_Forecasted_Date__c; + Close_Forecasted_Check = datechange.Close_Forecasted_Date__c; + } + + //Sales_manager_departmentID__c鏇挎崲Manager_name_text__c + Manager_name = datechange.Opportunity__r.Sales_manager_departmentID__c; + Sales_assistant_name = datechange.Opportunity__r.Sales_assistant_ID__c; + + Date_InAdvance_Delay = datechange.Date_InAdvance_Delay__c; + Predicted_date_ChangeReason = datechange.Predicted_date_ChangeReason__c; + Predicted_Date_Status = datechange.Predicted_Date_Status__c; + } + } + + // 鎶婇〉闈笂鐨勬暟鎹祴鍊煎埌璇环棰勬祴鐨勫璞′笂 + private static InquiryPredictsDateChange__c mergeInfo(Map<String, Object> oppMap) { + InquiryPredictsDateChange__c datechange = new InquiryPredictsDateChange__c(); + + if (String.isBlank(String.valueOf(oppMap.get('Predicted_Date_Status'))) || !'宸叉壒鍑�'.equals(String.valueOf(oppMap.get('Predicted_Date_Status')))) { + datechange.Id = String.valueOf(oppMap.get('datechangeId')); + } + if (String.isBlank(datechange.Id)){ + datechange.Opportunity__c = String.valueOf(oppMap.get('Opportunity')); + datechange.Name = String.valueOf(oppMap.get('Opportunity_No')); + } + // 褰撳墠鐨勬棩鏈熼兘浠庡璞′笂鑾峰彇 + if(oppMap.get('Close_Forecasted_Date_Old') != null){ + datechange.Close_Forecasted_Date_Old__c = Date.valueOf(String.valueOf(oppMap.get('Close_Forecasted_Date_Old'))); + } + // if(oppMap.get('Close_Forecasted_Assume_Date_Old') != null){ + // datechange.Close_Forecasted_Assume_Date_Old__c = Date.valueOf(String.valueOf(oppMap.get('Close_Forecasted_Assume_Date_Old'))); + // } + if(oppMap.get('CloseDate_Old') != null){ + datechange.CloseDate_Old__c = Date.valueOf(String.valueOf(oppMap.get('CloseDate_Old'))); + } + // 鏂扮殑鏃ユ湡鍏ㄨ窡棰勬祴鎷呭綋鏈夊叧 + datechange.Close_Forecasted_Date__c = Date.valueOf(String.valueOf(oppMap.get('Close_Forecasted_Date'))); + // datechange.Close_Forecasted_Assume_Date__c = Date.valueOf(String.valueOf(oppMap.get('Close_Forecasted_Assume_Date'))); + datechange.CloseDate__c = Date.valueOf(String.valueOf(oppMap.get('CloseDate'))); + + datechange.Manager_name__c = String.valueOf(oppMap.get('Manager_name')); + datechange.Sales_assistant_name__c = String.valueOf(oppMap.get('Sales_assistant_name')); + + datechange.Date_InAdvance_Delay__c = String.valueOf(oppMap.get('Date_InAdvance_Delay')); + datechange.Predicted_date_ChangeReason__c = String.valueOf(oppMap.get('Predicted_date_ChangeReason')); + + // 鐘舵�佽缃负宸叉彁浜� + datechange.Predicted_Date_Status__c = '宸叉彁浜�'; + + return datechange; + } + + @AuraEnabled + public static String getReason(){ + return System.Label.DateChangeReason; + } + + //淇濆瓨鏁版嵁 JSONData 鏄� json鏍煎紡鐨勫�� + @AuraEnabled + public static string SaveData(String JsonData){ + try{ + // InquiryPredictsDateChange__c ipd = (InquiryPredictsDateChange__c)JSON.deserialize(JsonData,InquiryPredictsDateChange__c.class); + // OppInfo opp = (OppInfo)JSON.deserializeUntyped(JsonData); + Map<String, Object> oppMap = (Map<String, Object>)JSON.deserializeUntyped(JsonData); + System.debug('lt123JsonData'+JsonData); + InquiryPredictsDateChange__c ipd = mergeInfo(oppMap); + // ipd.Predicted_Date_Status__c = '宸叉彁浜�'; + upsert ipd; + }catch(Exception ex) + { + return ex.getLineNumber()+' 琛岄敊璇� : '+ex.getMessage(); + } + return '鎴愬姛'; + } +} \ No newline at end of file -- Gitblit v1.9.1