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