| | |
| | | updateOppotunityByDelete(this.oldList); |
| | | } |
| | | } |
| | | protected override void beforeDelete() { |
| | | // 判断是否跳过 |
| | | if (!StaticParameter.EscapeTOLinkTrigger) { |
| | | updateOppotunityBeforeDelete(this.oldList); |
| | | } |
| | | } |
| | | |
| | | protected override void beforeInsert() { |
| | | if (this.newList != null && this.newList.size() > 0) { |
| | |
| | | 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 |
| | | // 获得要更新的询价 |
| | | 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<Opportunity> opportunities = [select id, Bidding_Project_Name_Bid__c, Bidding_Project_Name_Bid__r.InfoType__c, TenderBeginDate_Text__c, InfoTypeBid_text__c from Opportunity where id in :oppIds and Bidding_Project_Name_Bid__r.InfoType__c != '3:结果']; |
| | | List<String> tenIds = new List<String>();//20220715 you 招标项目插入时,是否需要发送询价任务 新的招标项目 |
| | | //20220615 you SWAG-CFD4SU 改造 start 始终显示最新的 ① 3:结果,② 4:变更,③ 2:公告,④ 1:预告,⑤ 5:其他 |
| | | // 20221028 ljh SWAG-CKL5UC 查询增加 LeakageNumber__c , TenderBeginDate_Text__c |
| | | List<Opportunity> opportunities = [select id,Tender_Number__c, Bidding_Project_Name_Bid__c, Bidding_Project_Name_Bid__r.InfoType__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 from Tender_Opportunity_Link__c where Opportunity__c in :oppIds]; |
| | | 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; |
| | | if (opp.Id.equals(link.Opportunity__c)) { |
| | | /** |
| | | if (opp.Bidding_Project_Name_Bid__c == null || ''.equals(opp.Bidding_Project_Name_Bid__c)) { |
| | | opp.Bidding_Project_Name_Bid__c = link.Tender_information__c; |
| | | opp.TenderBeginDate_Text__c = link.Tender_information__r.TenderBeginTime__c; |
| | | opp.InfoTypeBid_text__c = link.Tender_information__r.InfoType__c; |
| | | } |
| | | |
| | | if ('3:结果'.equals(link.Tender_information__r.InfoType__c)) { |
| | | opp.Bidding_Project_Name_Bid__c = link.Tender_information__c; |
| | | if (opp.TenderBeginDate_Text__c == null) { |
| | |
| | | } |
| | | break; |
| | | } |
| | | **/ |
| | | 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.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:合同公告')){ |
| | | tenIds.add(link.Opportunity__c); //符合条件生成任务 |
| | | } |
| | | //20220715 you 招标项目 end |
| | | break; |
| | | } |
| | | |
| | | } |
| | | } |
| | | //20220829 you SWAG-CHL67J start |
| | | Integer returncount =0; |
| | | for (Tender_Opportunity_Link__c link : links) { |
| | | if (opp.Id.equals(link.Opportunity__c)) { |
| | | if(String.isNotBlank(link.Tender_information__r.InfoType__c) && link.Tender_information__r.InfoType__c!='1:预告' && String.isNotBlank(link.Tender_information__r.subInfoType__c) && link.Tender_information__r.subInfoType__c!='3-1:废标公告' && link.Tender_information__r.subInfoType__c!='3-2:流标公告'){ |
| | | system.debug('test1进来了'); |
| | | returncount += 1; |
| | | } |
| | | } |
| | | } |
| | | 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; |
| | | } |
| | | //20220615 you SWAG-CFD4SU 改造 end |
| | | //20220715 you 招标任务 start |
| | | |
| | | if (tenIds !=null && tenIds.size() > 0) { |
| | | Database.executeBatch(new TenderResultConfirmTaskBatch(tenIds)); |
| | | } |
| | | //20220715 you 招标任务 end |
| | | } |
| | | //SWAG-CHL67J 【委托】【FY23询价改善】-询价页面/招标项目增加统计字段 fy start |
| | | // if (TenderIds.size() > 0) { |
| | | // updateTender(TenderIds); |
| | | // } |
| | | //SWAG-CHL67J 【委托】【FY23询价改善】-询价页面/招标项目增加统计字段 fy end |
| | | } |
| | | } |
| | | //SWAG-CHL67J 【委托】【FY23询价改善】-询价页面/招标项目增加统计字段 fy start |
| | | //跟新招标项目的中标数和应标数 |
| | | // public void updateTender(List<String> TenderIds) { |
| | | // List<Tender_Opportunity_Link__c> TenderOpportunityLinkList2 = [select Tender_information__c,Opportunity__r.NumberOfBids__c,Opportunity__r.BidWinningNumber__c from Tender_Opportunity_Link__c where Tender_information__c in:TenderIds]; |
| | | // Map<String,Tender_information__c> TenderinformationMap = new Map<String,Tender_information__c>(); |
| | | // if(TenderOpportunityLinkList2.size()>0){ |
| | | // for(Tender_Opportunity_Link__c TenderOpportunity2 :TenderOpportunityLinkList2){ |
| | | // if(TenderinformationMap.containsKey(TenderOpportunity2.Tender_information__c)){ |
| | | // Tender_information__c Tender_informationvalue = new Tender_information__c(); |
| | | // Tender_informationvalue = TenderinformationMap.get(TenderOpportunity2.Tender_information__c); |
| | | // Tender_informationvalue.NumberOfBids__c=Tender_informationvalue.NumberOfBids__c+TenderOpportunity2.Opportunity__r.NumberOfBids__c; |
| | | // Tender_informationvalue.BidWinningNumber__c=Tender_informationvalue.BidWinningNumber__c+TenderOpportunity2.Opportunity__r.BidWinningNumber__c; |
| | | // TenderinformationMap.put(TenderOpportunity2.Tender_information__c, Tender_informationvalue); |
| | | // }else{ |
| | | // Tender_information__c Tender_informationvalue = new Tender_information__c(); |
| | | // Tender_informationvalue.Id=TenderOpportunity2.Tender_information__c; |
| | | // Tender_informationvalue.NumberOfBids__c=TenderOpportunity2.Opportunity__r.NumberOfBids__c; |
| | | // Tender_informationvalue.BidWinningNumber__c=TenderOpportunity2.Opportunity__r.BidWinningNumber__c; |
| | | // TenderinformationMap.put(TenderOpportunity2.Tender_information__c, Tender_informationvalue); |
| | | // } |
| | | // } |
| | | // } |
| | | // if(TenderinformationMap.size()>0){ |
| | | // List<Tender_information__c> Tender_informationList = new List<Tender_information__c>(); |
| | | // for (Tender_information__c value : TenderinformationMap.values()) { |
| | | // Tender_informationList.add(value); |
| | | // } |
| | | // update Tender_informationList; |
| | | // } |
| | | // } |
| | | //SWAG-CHL67J 【委托】【FY23询价改善】-询价页面/招标项目增加统计字段 fy end |
| | | //20220718 you 询价任务 start |
| | | //删除link时,任务取消,清空询价中标信息 |
| | | public void updateOppotunityBeforeDelete(List<Tender_Opportunity_Link__c> records) { |
| | | if (records != null && records.size() > 0) { |
| | | Set<String> oppTens = new Set<String>();//询价,招标项目 拼接 |
| | | List<String> oppIds = new List<String>(); |
| | | // 获得要更新的询价 |
| | | for (Tender_Opportunity_Link__c record: records) { |
| | | String oppid =String.valueOf(record.Opportunity__c); |
| | | String tenid =String.valueOf(record.Tender_information__c); |
| | | oppTens.add(oppid.subString(0,15)+tenid.subString(0,15)); |
| | | if (!oppIds.contains(record.Opportunity__c)) { |
| | | oppIds.add(record.Opportunity__c); |
| | | } |
| | | } |
| | | if (null!=oppTens && oppTens.size()>0) { |
| | | List<Opportunity> opportunities = [select id, Bidding_Project_Name_Bid__c,Opp_Order__c from Opportunity where id in :oppIds]; |
| | | List<task__c> taskList = [select id,taskStatus__c,Tender_information_Task__c,OpportunityId__c from task__c where (RecordType.Name ='失单报告任务' and OpportunityId__c in:oppIds) or (RecordType.Name ='中标结果确认' and Opp_Tender__c in :oppTens)]; |
| | | for(task__c tsk : taskList){ |
| | | tsk.taskStatus__c = '04 取消'; |
| | | tsk.cancelDate__c = date.today(); |
| | | tsk.cancelReasonSelect__c = '取消询价关联'; |
| | | } |
| | | update taskList; |
| | | if(taskList.size() > 0){ |
| | | for (task__c tlink : taskList) { |
| | | for (Opportunity opp : opportunities) { |
| | | if (opp.Id == tlink.OpportunityId__c) { |
| | | //20220718 you 询价任务 start |
| | | opp.ConfirmationofAward__c = null; |
| | | opp.Task_createTime__c = null; |
| | | opp.ConfirmationofAward_createTime__c =null; |
| | | opp.LostTask_comfirmTime__c =null; |
| | | opp.Is_ConfirmationofAward__c =null; |
| | | opp.LostTask_createTime__c =null; |
| | | opp.Closing_Bid_Date__c = null; |
| | | //20220718 you 询价任务 end |
| | | } |
| | | } |
| | | } |
| | | } |
| | | update opportunities; |
| | | } |
| | | |
| | | } |
| | | } |
| | | //20220718 you 询价任务 end |
| | | |
| | | // 更新询价信息 |
| | | public void updateOppotunityByDelete(List<Tender_Opportunity_Link__c> records) { |
| | | if (records != null && records.size() > 0) { |
| | | List<String> oppIds = new List<String>(); |
| | | //SWAG-CHL67J 【委托】【FY23询价改善】-询价页面/招标项目增加统计字段 fy start |
| | | // List<String> TenderIds = new List<String>(); |
| | | //SWAG-CHL67J 【委托】【FY23询价改善】-询价页面/招标项目增加统计字段 fy end |
| | | // 获得要更新的询价 |
| | | for (Tender_Opportunity_Link__c record: records) { |
| | | if (!oppIds.contains(record.Opportunity__c)) { |
| | | oppIds.add(record.Opportunity__c); |
| | | } |
| | | //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<Opportunity> opportunities = [select id, Bidding_Project_Name_Bid__c, TenderBeginDate_Text__c from Opportunity where id in :oppIds]; |
| | | 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,Opp_Order__c from Opportunity where id in :oppIds]; |
| | | |
| | | if (opportunities.size() > 0) { |
| | | List<Tender_Opportunity_Link__c> links = [select id, Opportunity__c, Tender_information__c, Tender_information__r.InfoType__c from Tender_Opportunity_Link__c where Opportunity__c in :oppIds]; |
| | | //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,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'))); |
| | |
| | | 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; |
| | | opp.Task_createTime__c = null; |
| | | opp.ConfirmationofAward_createTime__c =null; |
| | | opp.LostTask_comfirmTime__c =null; |
| | | 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) { |
| | | //20220615 you SWAG-CFD4SU 改造 start |
| | | /** |
| | | opp.Bidding_Project_Name_Bid__c = link.Tender_information__c; |
| | | if ('3:结果'.equals(link.Tender_information__r.InfoType__c)) { |
| | | opp.Bidding_Project_Name_Bid__c = link.Tender_information__c; |
| | | break; |
| | | } |
| | | **/ |
| | | //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.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:合同公告')){ |
| | | tenIds.add(link.Opportunity__c); //符合条件生成任务 |
| | | } |
| | | //20220718 you 招标项目 end |
| | | break; |
| | | } |
| | | //20220615 you SWAG-CFD4SU 改造 end |
| | | } |
| | | } |
| | | } |
| | | //20220829 you SWAG-CHL67J start |
| | | Integer returncount =0; |
| | | for (Tender_Opportunity_Link__c link1 : links) { |
| | | if (opp.Id == link1.Opportunity__c) { |
| | | if(String.isNotBlank(link1.Tender_information__r.InfoType__c) && link1.Tender_information__r.InfoType__c!='1:预告' && String.isNotBlank(link1.Tender_information__r.subInfoType__c) && link1.Tender_information__r.subInfoType__c!='3-1:废标公告' && link1.Tender_information__r.subInfoType__c!='3-2:流标公告'){ |
| | | system.debug('jinlaile'); |
| | | returncount += 1; |
| | | } |
| | | |
| | | } |
| | | } |
| | | opp.Tender_Number__c= returncount; |
| | | //20220829 you SWAG-CHL67J end |
| | | } |
| | | update opportunities; |
| | | |
| | | } |
| | | //20220718 you 招标任务 start |
| | | if (tenIds !=null && tenIds.size() > 0) { |
| | | Database.executeBatch(new TenderResultConfirmTaskBatch(tenIds)); |
| | | } |
| | | //20220718 you 招标任务 end |
| | | } |
| | | //SWAG-CHL67J 【委托】【FY23询价改善】-询价页面/招标项目增加统计字段 fy start |
| | | // if (TenderIds.size() > 0) { |
| | | // updateTender(TenderIds); |
| | | // } |
| | | //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++; |
| | | } |
| | | } |