111
沙世明
2022-11-22 928399eceec50e3d37ea08669a12789a9410a9d2
force-app/main/default/classes/OpportunityTrigger.cls
@@ -184,6 +184,24 @@
                    }
                }
                //20221017  lt SWAG-CHL5XA【FY23询价改善】-统计主机台数 start
                System.debug('lt123 oly主机'+op.OlyNumberHosts__c);
                System.debug('lt123 老oly主机'+oldopp.OlyNumberHosts__c);
                System.debug('lt123 对手主机'+op.RivalHostsNumber__c);
                System.debug('lt123 老对手主机'+oldopp.RivalHostsNumber__c);
                if(op.OlyNumberHosts__c != oldopp.OlyNumberHosts__c || op.RivalHostsNumber__c != oldopp.RivalHostsNumber__c || op.InquireNumberHosts__c != oldopp.InquireNumberHosts__c){
                    for (Tender_Opportunity_Link__c link : links){
                        if (link.Opportunity__c == op.Id){
                            Tender_information__c temptender = new Tender_information__c();
                            temptender.Id = link.Tender_information__c;
                            temptender.IsReactionOpp__c = true;
                            tenderMap.put(temptender.id ,temptender);
                        }
                    }
                }
                //20221017  lt SWAG-CHL5XA【FY23询价改善】-统计主机台数 end
            // }else {
            //     //新建时判断询价的招标项目是不是从无到有
            //     if(String.isNotBlank(op.Bidding_Project_Name_Bid__c) ){
@@ -366,13 +384,39 @@
        }
        Set<Id> oppoIds = new Set<Id>();
        Map<Id,String> mapoppid = new Map<Id,String>();
        list<task__c> taskUpdateList = new list<task__c>();
        for(Opportunity op : newList){
            Opportunity oldopp =  oldMap.get(op.Id);
            //询价中标结果确认竞争对手中标时实时创建失单任务 且 询价状态1等于询价
            if (oldopp.ConfirmationofAward__c != '竞争对手中标' && op.ConfirmationofAward__c == '竞争对手中标' && op.StageName__c == '询价'){
            if (oldopp.ConfirmationofAward__c != '竞争对手中标' && op.ConfirmationofAward__c == '竞争对手中标' && op.StageName__c == '询价' && op.LeakageNumber__c !=1){
                oppoIds.add(op.Id);
            }
            //20220929 you  SWAG-CJP7TL 手动更改询价所有人,同步修改任务所有人
            if(String.isNotBlank(op.OwnerId) && op.OwnerId !=oldopp.OwnerId){
                 mapoppid.put(op.id,op.OwnerId);
            }
        }
        if(mapoppid.size() > 0){
            List<Task__c> taskList = [
                    SELECT Id,OpportunityId__c,taskStatus__c
                    FROM task__c
                    WHERE OpportunityId__c in :mapoppid.keySet()
                    AND (RecordType.Name = '中标结果确认' OR RecordType.Name = '失单报告任务')
                    AND taskStatus__c = '02 接受'];
            system.debug(mapoppid.keySet()+'test1-----'+taskList);
            for(Task__c t: taskList){
                if(mapoppid.containsKey(t.OpportunityId__c)){
                   t.Ownerid = mapoppid.get(t.OpportunityId__c);
                   t.assignee__c = mapoppid.get(t.OpportunityId__c);
                   taskUpdateList.add(t);
                }
            }
             if (taskUpdateList != null && taskUpdateList.size() > 0) {
                update taskUpdateList;
            }
        }
        if (!oppoIds.isEmpty()) {
            // 有效失单状态一览
@@ -472,20 +516,23 @@
        if(!oppoIds.isEmpty()){
            list<Tender_Opportunity_Link__c> toppLinkList = [Select Id, Opportunity__c, Tender_information__c,Tender_information__r.ResultDate__c FROM Tender_Opportunity_Link__c WHERE Opportunity__c in :oppoIds];
            list<Tender_Opportunity_Link__c> toppLinkList = [Select Id, Opportunity__c, Tender_information__c,Tender_information__r.ResultDate__c,Tender_information__r.InfoType__c FROM Tender_Opportunity_Link__c WHERE Opportunity__c in :oppoIds and Tender_information__r.InfoType__c = '3:结果'];
            Map<String, Tender_Opportunity_Link__c> toopLinkMap = new Map<String, Tender_Opportunity_Link__c>();
            
            for(Tender_Opportunity_Link__c tol : toppLinkList){
                toopLinkMap.put(tol.Opportunity__c, tol);
                Opportunity oppoTemp = newMap.get(tol.Opportunity__c);
                //询价关联到招标项目才进行操作
                if(oppoTemp.Bidding_Project_Name_Bid__c == tol.Tender_information__c){
                    toopLinkMap.put(tol.Opportunity__c, tol);
                }
            }
            
            for (String key : toopLinkMap.keySet()) {
                Opportunity oppoTemp = newMap.get(key);
                //20220628会议新需求  OLY中标 7.中标日(结果记录日)= 招标项目.结果记录日
                oppoTemp.Closing_Bid_Date__c = toopLinkMap.get(key).Tender_information__r.ResultDate__c;
                System.debug('============'+toopLinkMap.get(key).Tender_information__r.ResultDate__c);
                
                //是否按时确认:3个工作日内按时1,不按时0
                //String inttemp = CalendarUtil.getWorkDayNum(String.valueOf(oppoTemp.Task_createTime__c), String.valueOf(oppoTemp.ConfirmationofAward_createTime__c));
@@ -633,6 +680,68 @@
        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++;
    }
}