游畅
2022-05-17 b1dadcc62a48f7179d2d2011b17488e439d9db66
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
            //公式考文本  给FSE担当赋值
            //公式考文本  给FSE担当赋值 这段必须放在这,因为新创建的数据,存在科室为空的情况,
            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++;//可以多写点
    }
}