高章伟
2023-03-03 d8dc84a3d56df839895f1c417a4d9cbee763d262
force-app/main/default/classes/TaskObjectTriggerHandle.cls
@@ -93,12 +93,16 @@
        System.debug('进入任务触发器');
        //定义变量保存记录类型
        
        Schema.DescribeFieldResult fieldResult = task__share.RowCause.getDescribe();
        List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
        Id Hcen_TaskId = Schema.SObjectType.task__c.getRecordTypeInfosByDeveloperName().get('HAccountVisit').getRecordTypeId();
        Map<String,String> taskPREMap = gettaskPREMap();
        List<Task__c> needUpdate = new List<Task__c>();
        Set<String> searchTaskId = new Set<String>();
        Set<String> tempSet = new Set<String>(); //2022-01-12  mzy  上级分配的记录类型为其他 的任务可能没有客户,需要把名称变为 其他:任务名称
        Set<String> OtherLeadAssig = new Set<String>();  //2022-01-12  mzy  上级分配的记录类型为其他 的任务可能没有客户,需要把名称变为 其他:任务名称
        String rowCause = 'SharingRecordCollection';//2022-5-10 yjk SWAG-CEA5AM
        for(Task__c task :newList){
            if(task.Id!=null){
                //任务名称为*时,且客户不为空时
@@ -107,8 +111,10 @@
                }
                //2022-01-12 mzy  上级分配的记录类型为其他 的任务可能没有客户,需要把名称变为 其他:任务名称
                if('上级分配任务'.equals(task.TaskDifferent__c)&&task.account__c == null){
                    tempSet.add(task.Id);
                }
            }
        } 
@@ -143,6 +149,15 @@
                        if(t.assignee__c!=null){
                            tempTsk.OwnerId = t.assignee__c;
                        }
                        //2022-5-10 yjk SWAG-CEA5AM
                        Task__Share aos = new Task__Share(
                         RowCause = rowCause,
                         ParentId = tempTsk.Id,
                         UserOrGroupId = t.OwnerId,
                         AccessLevel = 'Edit');
                        insert aos;
                        //如果页面选择询价了,则将询价的以下字段赋值给任务                        
                        //询价等级(分配):记录分配时点的询价等级
                        //预测OCSM签约日(分配):记录分配时点的预测签约日
@@ -190,6 +205,15 @@
                        if(t.assignee__c!=null){
                            tempTsk.OwnerId = t.assignee__c;
                        }
                        //2022-5-10 yjk SWAG-CEA5AM
                        Task__Share aos = new Task__Share(
                            RowCause = rowCause,
                            ParentId = tempTsk.Id,
                            UserOrGroupId = t.OwnerId,
                            AccessLevel = 'Edit');
                        insert aos;
                        //如果页面选择询价了,则将询价的以下字段赋值给任务                        
                        //询价等级(分配):记录分配时点的询价等级
                        //预测OCSM签约日(分配):记录分配时点的预测签约日
@@ -547,5 +571,40 @@
    }
    //2021-11-29  mzy  任务管理改善  end
    //20220720 you 中标任务 you start
    public void BeforeTaskOlympus(List<task__c> newList,List<task__c> oldList,Map<Id,task__c> newMap,Map<Id,task__c> oldMap){
       List<Date> cd = new List<Date>();
       List<Task__c> TaskOlyUpdate = new List<Task__c>();
       for(task__c tsk : newList){
            String datestr =String.valueOf(tsk.CreatedDate);
            cd.add( Date.valueOf(datestr.substring(0,10)) );
        }
        System.debug(LoggingLevel.INFO, '*** cd: ' + cd);
        Map<Date,Date> lm = new Map<Date,Date>();
       for(OlympusCalendar__c oc:[SELECT Id,Date__c,After_3_WorkDay__c FROM OlympusCalendar__c WHERE Date__c IN:cd]){
            lm.put(oc.Date__c,oc.After_3_WorkDay__c);
       }
       System.debug(LoggingLevel.INFO, '*** map赋值: ' + lm);
       for(task__c tsk : newList){
            String datestr =String.valueOf(tsk.CreatedDate);
            Date dt = lm.get(Date.valueOf(datestr.substring(0,10)));
            Task__c tempTsk = new Task__c();
            //if(Trigger.isInsert){空更新数据
            tempTsk.Id = tsk.Id;
            tempTsk.Task_After_3_WorkDay__c = dt;
            TaskOlyUpdate.add(tempTsk);
            System.debug(LoggingLevel.INFO, '*** 任务奥林巴斯赋值: ' + tsk.Task_After_3_WorkDay__c);
            //}else{
            //tsk.Task_After_3_WorkDay__c = dt;
            //}
        }
        if(TaskOlyUpdate.size()>0){
          update TaskOlyUpdate;
        }
    }
    //20220720 you 中标任务 you end
}