//NFM511 新建众成数据 更新到 招标项目和标的物 //招标项目:bid-projectId(bid为创建招标项目的唯一标记) 没有insert(记录类型:众成) 有update //标 的 物:insert public without sharing class ZCTenderHandler extends Oly_TriggerHandler { private Map newMap; private Map oldMap; private List newList; private List oldList; public ZCTenderHandler() { this.newMap = (Map) Trigger.newMap; this.oldMap = (Map) Trigger.oldMap; this.newList = (List) Trigger.new; this.oldList = (List) Trigger.old; } protected override void afterInsert() { updateTender(); // updateFA(); } Map tendMap = new Map(); //新建(更新)招标项目 private void updateTender(){ List tenproIdList = new List(); //bid List tenproIdList1 = new List(); //sfdc code ...TenderManageCode__c List tennumList = new List(); //项目编号projectNo__c - XmNumber__c List tenderList = new List(); //新建(更新)招标项目 for(ZCData__c zc : newList){ if(Date.valueOf(zc.modifyTime__c) < Date.today()){ continue; } if(String.isBlank(zc.bid__c) == false){ tenproIdList.add(zc.bid__c); } if(String.isBlank(zc.sfdcCode__c) == false){ tenproIdList1.add(zc.sfdcCode__c); } if(String.isBlank(zc.projectNo__c) == false){ tennumList.add(zc.projectNo__c); } Tender_information__c ten = new Tender_information__c(); ten.RecordTypeId = System.Label.ZCrecordTypeId; // ten.ProjectId__c = zc.bid__c; //20231016 ten.ZCProjectId__c = zc.bid__c; //20231016 ten.ZCInfoId__c = zc.winningDetailId__c + ''; //20231017 ten.TenderManageCode__c = zc.sfdcCode__c; ten.InfoTitle__c = zc.title__c; ten.name = zc.title__c.length() >75 ? zc.title__c.substring(0, 75) : zc.title__c; ten.XmNumber__c = zc.projectNo__c; ten.original_url__c = zc.originalUrl__c; ten.ZhaoBiaoUnit1__c = zc.tenderee__c; ten.AreaProvince__c = zc.province__c; ten.AreaCity__c = zc.city__c; ten.AreaCountry__c = zc.district__c; ten.ZhongBiaoUnit1__c = zc.supplier__c; ten.WinnerAmount1__c = zc.projectTotalPrice__c; // ten.Bid_Winning_Date__c = Date.valueOf(zc.publishTime__c); ten.Bid_Winning_Date__c = String.isBlank(zc.publishTime__c) ? Date.valueOf(zc.modifyTime__c).addDays(-1) : Date.valueOf(zc.publishTime__c); //20240104 ten.host_if__c = zc.hostIf__c; ten.funding_source__c = zc.fundingSource__c; ten.url__c = zc.url__c; // ten.InfoQianlimaUrl__c = zc.url__c; //源网址 //20240105 lt start if (!String.isBlank(zc.project_judge_id__c)){ ten.project_judge_id__c = zc.project_judge_id__c; } //20240105 lt end ten.ZCUpdateDate__c = Date.today(); //项目阶段,阶段补充说明 BatchIF転送表 BatchIF_Log__c iflog = new BatchIF_Log__c(); iflog.Type__c = '511ZCHandler'; iflog.Log__c = 'upsert tender start\n'; iflog.ErrorLog__c = ''; insert iflog; Map transferMap = new Map(); List transferList = [ select Table__c, Column__c, External_value__c, Internal_value__c from BatchIF_Transfer__c where Dropped_Flag__c = false and Table__c = 'Tender_information__c']; for (BatchIF_Transfer__c t : transferList) { transferMap.put(t.Column__c + t.External_value__c, t.Internal_value__c); } ten.InfoType__c = NFMUtil.getMapValue(transferMap, 'InfoType__c', zc.noticeType__c, iflog); ten.subInfoType__c = NFMUtil.getMapValue(transferMap, 'subInfoType__c', zc.progress__c, iflog); if(zc.noticeType__c == '中标结果' && (zc.progress__c == '单一来源' ||zc.progress__c == '变更')){ ten.subInfoType__c = '3-5:中标通知'; } if(zc.noticeType__c == '合同验收' && (zc.progress__c == '单一来源' ||zc.progress__c == '变更')){ ten.subInfoType__c = '3-6:合同公告'; } //20240104 优化 start // if(ten.subInfoType__c == '3-5:中标通知' || ten.subInfoType__c == '3-6:合同公告'){ // ten.ResultDate__c = String.isBlank(zc.publishTime__c) ? Date.valueOf(zc.modifyTime__c) : Date.valueOf(zc.publishTime__c); // } if(ten.subInfoType__c != '3-1:废标公告' && ten.subInfoType__c != '3-2:流标公告'){ ten.ResultDate__c = String.isBlank(zc.publishTime__c) ? Date.valueOf(zc.modifyTime__c).addDays(-1) : Date.valueOf(zc.publishTime__c); } //20240104 优化 end // if(ten.subInfoType__c == '2-1:招标公告'){ // ten.InfoType__c = '2:公告'; // } // if(ten.subInfoType__c == '4-1:信息变更'){ // ten.InfoType__c = '4:变更'; // } //项目阶段,阶段补充说明 BatchIF転送表 // //项目阶段 // if(zc.noticeType__c == '合同验收' || zc.noticeType__c == '中标结果'){ // ten.InfoType__c = '3:结果'; // } // //阶段补充说明 // if(zc.progress__c == '单一来源'){ // ten.subInfoType__c = '2-1:招标公告'; // } // if(zc.progress__c == '流标'){ // ten.subInfoType__c = '3-2:流标公告'; // } // if(zc.progress__c == '中标' || zc.progress__c == '中标候选'){ // ten.subInfoType__c = '3-5:中标通知'; // } // if(zc.progress__c == '验收' || zc.progress__c == '合同' || zc.progress__c == '成交'){ // ten.subInfoType__c = '3-6:合同公告'; // } // if(zc.progress__c == '变更'){ // ten.subInfoType__c = '4-1:信息变更'; // } tenderList.add(ten); } List UpdateTenderList = [ //InfoType__c 项目阶段,对应关系需进一步确认(,url__c,original_url__c暂时不要) Select id,name,ZCProjectId__c,InfoTitle__c,XmNumber__c, ZhaoBiaoUnit1__c,AreaProvince__c,AreaCity__c,AreaCountry__c, ZhongBiaoUnit1__c,WinnerAmount1__c,Bid_Winning_Date__c, funding_source__c,url__c,RecordTypeId,TenderManageCode__c,AWS_Data_Id__c, ZCDataUpdate__c,ResultDate__c From Tender_information__c Where ZCProjectId__c in :tenproIdList OR TenderManageCode__c in :tenproIdList1 // OR (XmNumber__c in :tennumList AND ZCDataUpdate__c = false) //20240122 ]; String QLMrecordId = Schema.SObjectType.Tender_information__c.getRecordTypeInfosByDeveloperName().get('QLM').getRecordTypeId(); System.debug('---lt12345---UpdateTenderList:'+UpdateTenderList); System.debug('---lt12345---tenderList:'+tenderList); if(tenderList.size() > 0){ if(UpdateTenderList.size() > 0 ){ for(Tender_information__c uten: UpdateTenderList){ for(Tender_information__c ten :tenderList){ //20231016 ProjectId__c--ZCProjectId__c //20240122 lt delete || uten.XmNumber__c == ten.XmNumber__c if(uten.ZCProjectId__c == ten.ZCProjectId__c || uten.TenderManageCode__c == ten.TenderManageCode__c){ System.debug('---lt12345-2---'); ten.Id = uten.Id; ten.AWS_Data_Id__c = uten.AWS_Data_Id__c; ten.TenderManageCode__c = uten.TenderManageCode__c; ten.AreaProvince__c = String.isBlank(uten.AreaProvince__c) ? ten.AreaProvince__c : uten.AreaProvince__c; ten.AreaCity__c = String.isBlank(uten.AreaCity__c) ? ten.AreaCity__c : uten.AreaCity__c; ten.AreaCountry__c = String.isBlank(uten.AreaCountry__c) ? ten.AreaCountry__c : uten.AreaCountry__c; ten.ResultDate__c = String.isBlank(String.valueOf(uten.ResultDate__c)) ? ten.ResultDate__c : uten.ResultDate__c; ten.Bid_Winning_Date__c = String.isBlank(String.valueOf(uten.Bid_Winning_Date__c)) ? ten.Bid_Winning_Date__c : uten.Bid_Winning_Date__c; System.debug('---lt12345-3---QLMrecordId:'+QLMrecordId); System.debug('---lt12345-3---uten.RecordTypeId:'+uten.RecordTypeId); if(uten.RecordTypeId == QLMrecordId){ System.debug('---lt12345-3---'); ten.ZCDataUpdate__c = true; ten.RecordTypeId = QLMrecordId; } } } } } System.debug('---lt12345---tenderList111:'+tenderList); StaticParameter.EscapeZCUpdateTender = true; upsert tenderList; StaticParameter.EscapeZCUpdateTender = false; } //新建标的物 List tenderDetList = new List(); if(tenderList.size() > 0){ for(Tender_information__c ten :tenderList){ tendMap.put(ten.ZCProjectId__c,ten.Id); //20231016 ProjectId__c--ZCProjectId__c } } System.debug('---20231010---tendMap:'+tendMap); //删除招标项目下原来的标的物 Date today = Date.today(); List TenIdList = tendMap.values(); System.debug('---20231010---TenIdList:'+TenIdList); //1.创建日不等于今天 or 2.来源不是众成 List delTenderDetList = [ Select id,name,CreatedDate,source__c,Tender_information__c From Tender_information_details__c Where Tender_information__c in :TenIdList And (CreatedDate != LAST_N_DAYS:0 Or source__c != '众成') ]; System.debug('---20231010---delTenderDetList:'+delTenderDetList); if(delTenderDetList.Size()>0){ delete delTenderDetList; } //删除招标项目下原来的标的物 for(ZCData__c zc : newList){ if(Date.valueOf(zc.modifyTime__c) < Date.today()){ continue; } Tender_information_details__c tends = new Tender_information_details__c(); if(tendMap.containsKey(zc.bid__c)){ tends.Tender_information__c = tendMap.get(zc.bid__c); } tends.name = zc.contractObject__c.length() > 75 ? zc.contractObject__c.substring(0, 75) : zc.contractObject__c; tends.Name__c = zc.contractObject__c; tends.Brand__c = zc.brand__c; tends.brand_type__c = zc.brandType__c; tends.Model__c = zc.speci__c; tends.Price__c = String.valueOf(zc.bidUnitPrice__c); tends.Number__c = zc.bidQuantity__c; tends.TotalPriceUnit__c = String.valueOf(zc.bidTotalPrice__c); tends.one_class__c = zc.oneClass__c; tends.two_class__c = zc.twoClass__c; tends.three_class__c = zc.threeClass__c; tends.source__c = '众成'; tends.winning_detail_id__c = String.valueOf(zc.winningDetailId__c); //20231018 // + ''; tenderDetList.add(tends); } if(tenderDetList.Size() > 0){ insert tenderDetList; } } // private void updateFA(){ // //新建 文件地址 // List faList = new List(); // List faList1 = new List(); // for(ZCData__c zc : newList){ // FileAddress__c fa = new FileAddress__c(); // FileAddress__c fa1 = new FileAddress__c(); // if(tendMap.containsKey(zc.bid__c)){ // fa.ParentRecordId__c = tendMap.get(zc.bid__c); // fa1.ParentRecordId__c = tendMap.get(zc.bid__c); // } // // fa.ViewLink__c = zc.url__c; // // fa.DownloadLink__c = zc.url__c; // faList.add(fa); // fa1.ViewLink__c = zc.originalUrl__c; // fa1.DownloadLink__c = zc.originalUrl__c; // faList1.add(fa1); // } // if(faList.Size() > 0){ // insert faList; // } // if(faList1.Size() > 0){ // insert faList1; // } // } }