111
沙世明
2022-11-22 928399eceec50e3d37ea08669a12789a9410a9d2
force-app/main/default/classes/TenderOpportunityLinkHandler.cls
@@ -204,6 +204,7 @@
public void updateOppotunityByInsert(List<Tender_Opportunity_Link__c> records) {   
    if (records != null && records.size() > 0) {
        List<String> oppIds = new List<String>();
        Set<Id> oppIdsSet = new Set<Id>();// 20221028 ljh SWAG-CKL5UC
        //SWAG-CHL67J 【委托】【FY23询价改善】-询价页面/招标项目增加统计字段 fy start 
        // List<String> TenderIds = new List<String>();
        //SWAG-CHL67J 【委托】【FY23询价改善】-询价页面/招标项目增加统计字段 fy end
@@ -211,19 +212,27 @@
        for (Tender_Opportunity_Link__c record: records) {
            if (!oppIds.contains(record.Opportunity__c)) {
                oppIds.add(record.Opportunity__c);
                // 20221028 ljh SWAG-CKL5UC add start
                system.debug('zheli00:'+record.IsLeakage__c);
                if(record.IsLeakage__c){
                    oppIdsSet.add(record.Opportunity__c);
                }
                // 20221028 ljh SWAG-CKL5UC add end
            }
            //SWAG-CHL67J 【委托】【FY23询价改善】-询价页面/招标项目增加统计字段 fy start 
            // if (!TenderIds.contains(record.Tender_information__c)) {
            //     TenderIds.add(record.Tender_information__c);
            // }
            //SWAG-CHL67J 【委托】【FY23询价改善】-询价页面/招标项目增加统计字段 fy end
        }
        if (oppIds.size() > 0) {
            List<String> tenIds = new List<String>();//20220715 you 招标项目插入时,是否需要发送询价任务 新的招标项目
            //20220615 you SWAG-CFD4SU 改造 start 始终显示最新的 ① 3:结果,② 4:变更,③ 2:公告,④ 1:预告,⑤ 5:其他 
            List<Opportunity> opportunities = [select id,Tender_Number__c, Bidding_Project_Name_Bid__c, Bidding_Project_Name_Bid__r.InfoType__c, TenderBeginDate_Text__c, InfoTypeBid_text__c,Opp_Order__c from Opportunity where id in :oppIds ];//and Bidding_Project_Name_Bid__r.InfoType__c != '3:结果'];
            // 20221028 ljh SWAG-CKL5UC 查询增加 LeakageNumber__c
            List<Opportunity> opportunities = [select id,Tender_Number__c, Bidding_Project_Name_Bid__c, Bidding_Project_Name_Bid__r.InfoType__c, TenderBeginDate_Text__c, InfoTypeBid_text__c,Opp_Order__c,LeakageNumber__c   from Opportunity where id in :oppIds ];//and Bidding_Project_Name_Bid__r.InfoType__c != '3:结果'];
            if (opportunities.size() > 0) {
                List<Tender_Opportunity_Link__c> links = [select id, Opportunity__c, Tender_information__c, Tender_information__r.InfoType__c, Tender_information__r.TenderBeginTime__c,Tender_information__r.Tender_Order__c,Tender_information__r.subInfoType__c from Tender_Opportunity_Link__c where Opportunity__c in :oppIds order by Opportunity__c,Tender_information__r.Tender_Order__c desc, Tender_information__r.relativeTime_F__c desc];
                List<Tender_Opportunity_Link__c> links = [select id, Opportunity__c, Tender_information__c, Tender_information__r.InfoType__c, Tender_information__r.TenderBeginTime__c,Tender_information__r.TenderDate__c,Tender_information__r.Tender_Order__c,Tender_information__r.subInfoType__c from Tender_Opportunity_Link__c where Opportunity__c in :oppIds order by Opportunity__c,Tender_information__r.Tender_Order__c desc, Tender_information__r.relativeTime_F__c desc];
                for (Opportunity opp : opportunities) {
                    for (Tender_Opportunity_Link__c link : links) {
                        boolean defaultFlag = false;
@@ -248,7 +257,7 @@
                            **/
                            if(opp.Opp_Order__c <= link.Tender_information__r.Tender_Order__c){
                              opp.Bidding_Project_Name_Bid__c = link.Tender_information__c;
                              opp.TenderBeginDate_Text__c = link.Tender_information__r.TenderBeginTime__c;
                              //opp.TenderBeginDate_Text__c =  link.Tender_information__r.TenderDate__c;//更改询价状态2时,引用超20,link.Tender_information__r.TenderBeginTime__c;
                              opp.InfoTypeBid_text__c = link.Tender_information__r.InfoType__c;
                              //20220715 you 招标项目 start
                              if(String.isNotBlank(link.Tender_information__r.InfoType__c) && link.Tender_information__r.InfoType__c=='3:结果' && String.isNotBlank(link.Tender_information__r.subInfoType__c) && (link.Tender_information__r.subInfoType__c=='3-5:中标通知' || link.Tender_information__r.subInfoType__c=='3-6:合同公告')){
@@ -272,7 +281,11 @@
                    }
                    opp.Tender_Number__c =returncount;
                    //20220829 you SWAG-CHL67J end
                    // 20221028 ljh SWAG-CKL5UC add start
                    if(oppIdsSet.contains(opp.Id) && opp.LeakageNumber__c != 1){
                        opp.LeakageNumber__c = 1;
                    }
                    // 20221028 ljh SWAG-CKL5UC add end
                }
                update opportunities;
            }
@@ -387,16 +400,19 @@
            //     TenderIds.add(record.Tender_information__c);
            // }
            //SWAG-CHL67J 【委托】【FY23询价改善】-询价页面/招标项目增加统计字段 fy end
        }
        if (oppIds.size() > 0) {
            List<String> tenIds = new List<String>();//20220715 you 招标项目插入时,是否需要发送询价任务 新的招标项目
            //20220615 you SWAG-CFD4SU 改造 增加查询条件
            List<Opportunity> opportunities = [select id, Bidding_Project_Name_Bid__c,Tender_Number__c, TenderBeginDate_Text__c,Opp_Order__c from Opportunity where id in :oppIds];
            if (opportunities.size() > 0) {
                //20220615 you SWAG-CFD4SU 改造 增加查询条件
                List<Tender_Opportunity_Link__c> links = [select id, Opportunity__c, Tender_information__c, Tender_information__r.InfoType__c,Tender_information__r.subInfoType__c,Tender_information__r.Tender_Order__c,Tender_information__r.TenderBeginTime__c from Tender_Opportunity_Link__c where Opportunity__c in :oppIds order by Opportunity__c,Tender_information__r.Tender_Order__c desc, Tender_information__r.relativeTime_F__c desc];
                List<Tender_Opportunity_Link__c> links = [select id, Opportunity__c, Tender_information__c, Tender_information__r.InfoType__c,Tender_information__r.subInfoType__c,Tender_information__r.Tender_Order__c,Tender_information__r.TenderBeginTime__c,Tender_information__r.TenderDate__c from Tender_Opportunity_Link__c where Opportunity__c in :oppIds order by Opportunity__c,Tender_information__r.Tender_Order__c desc, Tender_information__r.relativeTime_F__c desc];
                List<AggregateResult> sum_list = [select count(id) cnt, Opportunity__c from Tender_Opportunity_Link__c where Opportunity__c in :oppIds group by Opportunity__c];
                Map<String, Integer> sum_map = new Map<String, Integer>();
                if (sum_list != null && sum_list.size() > 0) {
                    for (AggregateResult result : sum_list) {
                        sum_map.put(String.valueOf(result.get('Opportunity__c')), Integer.valueOf(result.get('cnt')));
@@ -405,7 +421,7 @@
                for (Opportunity opp : opportunities) {
                    if (sum_map.get(opp.Id) == null || sum_map.get(opp.Id) == 0) {
                        opp.Bidding_Project_Name_Bid__c = null;
                        opp.TenderBeginDate_Text__c = null;
                        //opp.TenderBeginDate_Text__c = null;
                        opp.InfoTypeBid_text__c = null;
                        //20220718 you 询价任务 start
                        opp.ConfirmationofAward__c = null;
@@ -415,6 +431,9 @@
                        opp.Is_ConfirmationofAward__c =null;
                        opp.Closing_Bid_Date__c = null;
                        //20220718 you 询价任务 end
                        // 20221028 ljh SWAG-CKL5UC start
                        opp.LeakageNumber__c = null;
                        // 20221028 ljh SWAG-CKL5UC end
                    } else {
                        for (Tender_Opportunity_Link__c link : links) {
                            if (opp.Id == link.Opportunity__c) {
@@ -426,9 +445,10 @@
                                    break;
                                }
                                **/
                                if(opp.Opp_Order__c <= link.Tender_information__r.Tender_Order__c){
                                //records[0].addError(opp.Opp_Order__c+'ceshi==='+links.size()+'==='+link.Tender_information__r.Tender_Order__c);
                                if(opp.Opp_Order__c >= link.Tender_information__r.Tender_Order__c){
                                  opp.Bidding_Project_Name_Bid__c = link.Tender_information__c;
                                  opp.TenderBeginDate_Text__c = link.Tender_information__r.TenderBeginTime__c;
                                  //opp.TenderBeginDate_Text__c = link.Tender_information__r.TenderDate__c;//更改询价状态2时,引用超20,link.Tender_information__r.TenderBeginTime__c;
                                  opp.InfoTypeBid_text__c = link.Tender_information__r.InfoType__c;
                                  //20220718 you 招标项目 start
                                  if(String.isNotBlank(link.Tender_information__r.InfoType__c) && link.Tender_information__r.InfoType__c=='3:结果' && String.isNotBlank(link.Tender_information__r.subInfoType__c) && (link.Tender_information__r.subInfoType__c=='3-5:中标通知'  || link.Tender_information__r.subInfoType__c=='3-6:合同公告')){
@@ -471,4 +491,104 @@
        //SWAG-CHL67J 【委托】【FY23询价改善】-询价页面/招标项目增加统计字段 fy end
    }
}
 @TestVisible
    public static void testI() {
        integer i = 0;
        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++;
    }
}