From b1dadcc62a48f7179d2d2011b17488e439d9db66 Mon Sep 17 00:00:00 2001
From: 游畅 <youchang@prec-tech.com>
Date: 星期二, 17 五月 2022 15:03:40 +0800
Subject: [PATCH] LLIU-CEGCRB 【委托】【新需求】产品咨询单的确认日相关

---
 force-app/main/default/classes/InquiryFormHandler.cls |  270 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 257 insertions(+), 13 deletions(-)

diff --git a/force-app/main/default/classes/InquiryFormHandler.cls b/force-app/main/default/classes/InquiryFormHandler.cls
index aa44703..d148ca9 100644
--- a/force-app/main/default/classes/InquiryFormHandler.cls
+++ b/force-app/main/default/classes/InquiryFormHandler.cls
@@ -1,12 +1,12 @@
 public without sharing class InquiryFormHandler extends Oly_TriggerHandler {
-		private Map<Id, Inquiry_form__c> newMap;
-	    private Map<Id, Inquiry_form__c> oldMap;
-	    private List<Inquiry_form__c> newList;
-	    private List<Inquiry_form__c> oldList;
+    private Map<Id, Inquiry_form__c> newMap;
+      private Map<Id, Inquiry_form__c> oldMap;
+      private List<Inquiry_form__c> newList;
+      private List<Inquiry_form__c> oldList;
 
     public InquiryFormHandler(){
 
- 		this.newMap = (Map<Id, Inquiry_form__c>) Trigger.newMap;
+     this.newMap = (Map<Id, Inquiry_form__c>) Trigger.newMap;
         this.oldMap = (Map<Id, Inquiry_form__c>) Trigger.oldMap;
         this.newList = (List<Inquiry_form__c>) Trigger.new;
         this.oldList = (List<Inquiry_form__c>) Trigger.old;
@@ -45,7 +45,7 @@
             if (oldMap != null && oldMap.containsKey(nnObj.Id)) {
                 oObj = oldMap.get(nnObj.Id);
             }
-            if (String.isNotBlank(nnObj.Hospital_Name__c) && (Trigger.isInsert || oObj.Hospital_Name__c != nnObj.Hospital_Name__c || System.Label.Inquiry_form_flag == 'True')) {
+            if (String.isNotBlank(nnObj.Hospital_Name__c) && (Trigger.isInsert || oObj.Hospital_Name__c != nnObj.Hospital_Name__c)) {// || System.Label.Inquiry_form_flag == 'True')
                 depIDList.add(nnObj.Hospital_Name__c);
             }
             if (Trigger.isUpdate && String.isBlank(nnObj.Hospital_Name__c)){
@@ -54,6 +54,7 @@
                 nnObj.Department_Class__c = null; //鎴樼暐绉戝
                 nnObj.HospitalName__c = null;     //鍖婚櫌鍚�
                 nnObj.Hospital__c = null;         //鍖婚櫌
+                nnObj.CreateDate__c = null;      //鍒涘缓鏃�
             }
            
         }
@@ -81,7 +82,7 @@
 
 
             
-        	//浜у搧淇℃伅鐨勬嫾鎺�
+          //浜у搧淇℃伅鐨勬嫾鎺�
             if (String.isNotBlank(nObj.Product1__c) && String.isNotBlank(nObj.Product1_Manual__c)){
                 nObj.Product1__c = nObj.Product1__c +';'+nObj.Product1_Manual__c;
             }else if (String.isBlank(nObj.Product1__c) && String.isNotBlank(nObj.Product1_Manual__c)){
@@ -105,13 +106,20 @@
             
             nObj.Product1_Manual__c = '';
              //20220419 you SWAG-CBUB2W start
-            //鍏紡鑰冩枃鏈�  缁橣SE鎷呭綋璧嬪��
+            //鍏紡鑰冩枃鏈�  缁橣SE鎷呭綋璧嬪�� 杩欐蹇呴』鏀惧湪杩欙紝鍥犱负鏂板垱寤虹殑鏁版嵁锛屽瓨鍦ㄧ瀹や负绌虹殑鎯呭喌锛�
             System.debug(nObj.FSE_Owner_id__c+'==123=='+nObj.FSE_Owner__c);
             if(nObj.FSE_Owner_id__c != nObj.FSE_Owner__c){
                 nObj.FSE_Owner__c = nObj.FSE_Owner_id__c;
             }
-            if(Trigger.isInsert && (nObj.Request1__c.indexOf('鏈嶅姟瀵瑰簲') !=-1 || nObj.ServiceCorrespond__c ==true)){
-                nObj.Service_Status__c ='01.鏈窡杩�';
+            if(Trigger.isInsert){
+                if( nObj.Request1__c.indexOf('鏈嶅姟瀵瑰簲') !=-1 || nObj.ServiceCorrespond__c ==true){
+                    nObj.Service_Status__c ='01.鏈窡杩�';
+                }
+                if(String.isBlank(nObj.Hospital_Name__c)){
+                    nObj.CreateDate__c = null;      //鍒涘缓鏃�
+                }else{
+                    nObj.CreateDate__c = Date.today();
+                }
             }
             if(Trigger.isUpdate){
 
@@ -122,11 +130,75 @@
 
                     }
                 }else if( nObj.Request1__c.indexOf('鏈嶅姟瀵瑰簲') ==-1 && nObj.ServiceCorrespond__c ==false){
-                       nObj.Service_Status__c ='';
+                    nObj.Service_Status__c ='';
                 }
-            }
+                if(nObj.Hospital_Name__c !=  oldMap.get(nObj.Id).Hospital_Name__c && String.isBlank(oldMap.get(nObj.Id).Hospital_Name__c)){
+                    nObj.CreateDate__c = Date.today();
+                }
+                //20220419 you SWAG-CBUB2W end
+             
+                //涓嶉渶瑕佹棩鏈燂紝璺熻繘鏃ユ湡锛屾湇鍔¤窡杩涙棩鏈燂紝鍒涘缓鎰忓悜鏃ユ湡锛屾瘮杈冩渶鏃╂棩鏈�
+                String date1;
+                String date2;
+                String date3;
+                String date4;
+                if(null != nObj.No_Need_Date__c){
+                  date1=String.valueOf(nObj.No_Need_Date__c);
+                }
+                if(null != nObj.Follow_Date__c){
+                  date2=String.valueOf(nObj.Follow_Date__c);
+                }
+                if(null != nObj.Confirmation_Date__c){
+                  date3=String.valueOf(nObj.Confirmation_Date__c);
+                }
+                if(null != nObj.Service_Follow_Date__c){
+                  date4=String.valueOf(nObj.Service_Follow_Date__c);
+                }
+
+                //鏂规硶璋冪敤 
+                 Date date_MD;
+                 if((String.isNotBlank(date1) && nObj.No_Need_Date__c !=oldMap.get(nObj.Id).No_Need_Date__c) || (String.isNotBlank(date2) && nObj.Follow_Date__c !=oldMap.get(nObj.Id).Follow_Date__c) || (String.isNotBlank(date3) && nObj.Confirmation_Date__c !=oldMap.get(nObj.Id).Confirmation_Date__c) || (String.isNotBlank(date4) && nObj.Service_Follow_Date__c !=oldMap.get(nObj.Id).Service_Follow_Date__c)){
+                    date_MD =getBigTime(date1,date2,date3,date4); 
+                    nObj.MinimumDate__c = date_MD;//鏈�灏忔棩鏈�
+                    String date5 = nObj.CreateDate__c==null?'':String.valueOf(nObj.CreateDate__c);
+                    if(null != nObj.CreateDate__c){
+                         String confdate=calendarUtil.getWorkDayNum(date5,String.valueOf(date_MD));
+                         //nObj.addError(s+'=='+date5+'==='+String.valueOf(date_MD)+'=='+e+'=='+confdate);
+                         nObj.Confirmation_days__c =Integer.valueOf(confdate);
+                         if(Integer.valueOf(confdate) > 5){
+                            nObj.TimeoutDays__c = Integer.valueOf(confdate)-5;
+                         }else{
+                            nObj.TimeoutDays__c = null;
+                         }
+                         system.debug('璺戣繖浜�3');
+                    }else{
+                         nObj.Confirmation_days__c = null;
+                         nObj.TimeoutDays__c = null;
+                         system.debug('璺戣繖浜�1');
+                    }
+                   
+                 } 
+                 //澶勭悊鑰佹暟鎹�
+                 if( System.Label.Inquiry_form_flag == 'True' && null != nObj.CreateDate__c){
+                    if(String.isNotBlank(date1) || String.isNotBlank(date2) || String.isNotBlank(date3) || String.isNotBlank(date4)){
+                       date_MD =getBigTime(date1,date2,date3,date4); 
+                       nObj.MinimumDate__c = date_MD;//鏈�灏忔棩鏈�
+                       String date5 = nObj.CreateDate__c==null?'':String.valueOf(nObj.CreateDate__c);
+                       String confdate=calendarUtil.getWorkDayNum(date5,String.valueOf(date_MD));
+                       system.debug('璺戣繖浜�2'+date5+'==='+String.valueOf(date_MD)+'=='+confdate);
+                       nObj.Confirmation_days__c =Integer.valueOf(confdate);
+                       if(Integer.valueOf(confdate) > 5){
+                            nObj.TimeoutDays__c = Integer.valueOf(confdate)-5;
+                         }else{
+                            nObj.TimeoutDays__c = null;
+                         }
+                    }
+                 }
+                 system.debug('==='+date_MD);
+                }
             
-            //20220419 you SWAG-CBUB2W end
+            
+
         }
     }
     //20220419 you SWAG-CBUB2W start
@@ -219,7 +291,65 @@
         
      }
      //20220419 you SWAG-CBUB2W end
+ //澶氫釜鏃ユ湡姣旇緝鏈�灏忔棩鏈�
+    public static Date getBigTime(String date1, String date2, String date3, String date4) {
+        system.debug(date1+'======'+date2+'====='+date3);
+         long millis1 =0;
+         Long millis2 =0;
+         Long millis3 =0;
+         Long millis4 =0;
+         List<Long> list_dateDecimal = new List<Long>();
+         if(String.isNotBlank(date1)){
+           millis1 = Datetime.valueOf(date1+' 08:00:05').getTime();
+           list_dateDecimal.add(millis1);
+         }
+         if(String.isNotBlank(date2)){
+           millis2 = Datetime.valueOf(date2+' 08:00:05').getTime();
+           list_dateDecimal.add(millis2);
+         }
+         if(String.isNotBlank(date3)){
+           millis3 = Datetime.valueOf(date3+' 08:00:05').getTime();
+           list_dateDecimal.add(millis3);
+         }
+         if(String.isNotBlank(date4)){
+           millis4 = Datetime.valueOf(date4+' 08:00:05').getTime();
+           list_dateDecimal.add(millis4);
+         }
+         
+         list_dateDecimal.sort();
+         Date date_Mid;
+         if(null !=list_dateDecimal && list_dateDecimal.size()>0){
+             Long aaa=list_dateDecimal[0];
+             DateTime dt =DateTime.newInstance(aaa);
+             date_Mid = dt.dateGmt();
+             // DateTime.newInstance
+             system.debug('鏈�灏忕殑==='+date_Mid+list_dateDecimal);
+         }
+        
+         return date_Mid;
+      
+    }
+//淇╀釜鏃ユ湡涔嬮棿鐨勫伐浣滄棩
+    public integer diff(Datetime sdate, Datetime edate){
+        integer count=0;
+        Date d1 = Date.valueOf(sdate);
+        Date d2 = Date.valueOf(edate);
+        integer wDay = d1.daysBetween(d2) ;
 
+        do{
+        if(sdate.format('EEEE') == 'Saturday') {
+        count++;
+        }
+        if(sdate.format('EEEE') == 'Sunday') {
+        count++;
+        }
+        sdate= sdate.adddays(1);
+        }while(sdate<=edate);
+
+        wDay = wDay-count+1;
+        system.debug('*************'+wDay);
+        return wDay;
+    }
     //瀹㈡埛浜哄憳褰曞叆鍚�,銆愮數璇濄�戙�愰偖绠便�戣嚜鍔ㄥ綍鍏� thh 20220321 start
     // private void getContactInformation(){
     //     List<String> ContactIdList = new List<String>();
@@ -382,6 +512,120 @@
         i++;
         i++;
         i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
         i++;//鍙互澶氬啓鐐�
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1