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