| | |
| | | } |
| | | |
| | | protected override void beforeUpdate() { |
| | | SetIsReactionOpp(); //lt DB202304062844 20230515 项目终止流程开发 add |
| | | //反逻辑删除 fxk |
| | | changeRelateOppDate(); |
| | | updateTenDel(); |
| | |
| | | List<String> oppIds = new List<String>();//询价 |
| | | // 获得要更新的询价 |
| | | for (Tender_information__c record: newList) { |
| | | if ( ( ('3-5:中标通知'.equals((oldMap.get(record.Id).subInfoType__c)) || '3-6:合同公告'.equals((oldMap.get(record.Id).subInfoType__c)) ) && ('3-1:废标公告'.equals(record.subInfoType__c) || '3-2:流标公告'.equals(record.subInfoType__c) )) || (!'3:结果'.equals(record.InfoType__c) && '3:结果'.equals((oldMap.get(record.Id).InfoType__c)))) { |
| | | //lt 20230425 招标终止 add || ('批准'.equals(record.TerminateApprovalStatus__c) && !'批准'.equals((oldMap.get(record.Id).TerminateApprovalStatus__c))) |
| | | if ( ( ('3-5:中标通知'.equals((oldMap.get(record.Id).subInfoType__c)) || '3-6:合同公告'.equals((oldMap.get(record.Id).subInfoType__c)) ) && ('3-1:废标公告'.equals(record.subInfoType__c) || '3-2:流标公告'.equals(record.subInfoType__c) )) || (!'3:结果'.equals(record.InfoType__c) && '3:结果'.equals((oldMap.get(record.Id).InfoType__c))) || ('批准'.equals(record.TerminateApprovalStatus__c) && !'批准'.equals((oldMap.get(record.Id).TerminateApprovalStatus__c)))) { |
| | | Tenids.add(record.id); |
| | | } |
| | | } |
| | | Map<String,String> InfoTypeMap = new Map<String,String>(); //判断是否是因为中标修改得 |
| | | Map<String,String> TerminationStateMap = new Map<String,String>(); //lt 20230425 招标终止 add |
| | | if(null!=Tenids && Tenids.size()>0){ |
| | | |
| | | List<Tender_Opportunity_Link__c> TenOppLinkList = [select id, Tender_information__c,Tender_information__r.InfoType__c, Opportunity__c from Tender_Opportunity_Link__c where Tender_information__c in :Tenids]; |
| | | //lt 20230425 招标终止 add Tender_information__r.TerminateApprovalStatus__c, |
| | | List<Tender_Opportunity_Link__c> TenOppLinkList = [select id, Tender_information__c,Tender_information__r.InfoType__c, Tender_information__r.TerminateApprovalStatus__c, Opportunity__c from Tender_Opportunity_Link__c where Tender_information__c in :Tenids]; |
| | | if(null!=TenOppLinkList && TenOppLinkList.size()>0){ |
| | | for(Tender_Opportunity_Link__c topl :TenOppLinkList){ |
| | | String oppid =String.valueOf(topl.Opportunity__c); |
| | |
| | | if (!oppIds.contains(topl.Opportunity__c)) { |
| | | oppIds.add(topl.Opportunity__c); |
| | | } |
| | | if(!'3:结果'.equals(topl.Tender_information__r.InfoType__c)){ |
| | | //lt DB202304062844 20230515 项目终止流程开发 update if(!'3:结果'.equals(topl.Tender_information__r.InfoType__c)) --- if(!'3:结果'.equals(NewMap.get(topl.Tender_information__c).InfoType__c)) |
| | | if(!'3:结果'.equals(NewMap.get(topl.Tender_information__c).InfoType__c)){ |
| | | InfoTypeMap.put(topl.Opportunity__c,topl.Tender_information__c); |
| | | } |
| | | //lt 20230425 招标终止 start |
| | | System.debug('---lt123---topl.Tender_information__r.TerminateApprovalStatus__c:'+topl.Tender_information__r.TerminateApprovalStatus__c); |
| | | if('批准'.equals(newMap.get(topl.Tender_information__c).TerminateApprovalStatus__c)){ |
| | | TerminationStateMap.put(topl.Opportunity__c,topl.Tender_information__c); |
| | | } |
| | | //lt 20230425 招标终止 end |
| | | } |
| | | } |
| | | } |
| | | if (null!=oppTens && oppTens.size()>0) { |
| | | //20221208 you DB202211594688 有确认任务的询价不清 |
| | | 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,RecordType.Name,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)) and taskStatus__c <> '03 完成']; |
| | | List<Opportunity> opportunities = [select id, Bidding_Project_Name_Bid__c, Opp_Order__c,ConfirmationofAward__c from Opportunity where id in :oppIds]; |
| | | //lt 20230425 招标终止 add Tender_information_Task__r.TerminateApprovalStatus__c 20230510 add and taskStatus__c <> '04 取消' |
| | | //lt DB202304062844 20230515 项目终止流程开发 update taskStatus__c <> '03 完成' and taskStatus__c <> '04 取消' --- taskStatus__c = '02 接受' |
| | | List<task__c> taskList = [select id,taskStatus__c,RecordType.Name,Tender_information_Task__c, |
| | | OpportunityId__c,Tender_information_Task__r.TerminateApprovalStatus__c |
| | | from task__c |
| | | where ((RecordType.Name ='失单报告任务' and OpportunityId__c in:oppIds) |
| | | or (RecordType.Name ='中标结果确认' and Opp_Tender__c in :oppTens)) |
| | | and taskStatus__c = '02 接受']; |
| | | for(task__c tsk : taskList){ |
| | | if(tsk.RecordType.Name =='失单报告任务' && oppIds.contains(tsk.OpportunityId__c) && tsk.taskStatus__c !='03 完成'){ |
| | | System.debug('---lt123---TerminationStateMap:'+TerminationStateMap); |
| | | System.debug('---lt123---tsk.Tender_information_Task__r.TerminateApprovalStatus__c:'+tsk.Tender_information_Task__r.TerminateApprovalStatus__c); |
| | | //lt DB202304062844 20230515 项目终止流程开发 update !='03 完成' --- == '02 接受' |
| | | if(tsk.RecordType.Name =='失单报告任务' && oppIds.contains(tsk.OpportunityId__c) && tsk.taskStatus__c == '02 接受'){ |
| | | //不做操作 |
| | | }else{ |
| | | tsk.taskStatus__c = '04 取消'; |
| | | tsk.cancelDate__c = date.today(); |
| | | if(null!=InfoTypeMap && InfoTypeMap.containsKey(tsk.OpportunityId__c)){ |
| | | tsk.cancelReasonSelect__c = '修改项目阶段'; |
| | | }else{ |
| | | } |
| | | //lt 20230425 招标终止 start |
| | | else if(null!=TerminationStateMap && TerminationStateMap.containsKey(tsk.OpportunityId__c)){ |
| | | tsk.cancelReasonSelect__c = '项目终止'; |
| | | } |
| | | //lt 20230425 招标终止 end |
| | | else{ |
| | | tsk.cancelReasonSelect__c = '流标/废标'; |
| | | } |
| | | } |
| | | } |
| | | update taskList; |
| | | if(taskList.size() > 0){ |
| | | for (task__c tlink : taskList) { |
| | | for (Opportunity opp : opportunities) { |
| | | if (opp.Id == tlink.OpportunityId__c) { |
| | | if(tlink.RecordType.Name =='失单报告任务' && tlink.taskStatus__c !='03 完成'){ |
| | | //不做操作 |
| | | }else{ |
| | | //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 taskList; |
| | | //lt DB202304062844 20230515 项目终止流程开发 start |
| | | // if(taskList.size() > 0){ |
| | | if(opportunities.size() > 0){ |
| | | for (Opportunity opp : opportunities) { |
| | | Boolean upd_flg = null!=TerminationStateMap && TerminationStateMap.containsKey(opp.Id) && opp.ConfirmationofAward__c == '竞争对手中标' ? false : true; |
| | | if (!upd_flg) { |
| | | continue; |
| | | } |
| | | for (task__c tlink : taskList) { |
| | | if (opp.Id == tlink.OpportunityId__c) { |
| | | //lt DB202304062844 20230515 项目终止流程开发 update !='03 完成' --- == '02 接受' |
| | | if(tlink.RecordType.Name =='失单报告任务' && tlink.taskStatus__c == '02 接受'){ |
| | | upd_flg = false; |
| | | break; |
| | | //不做操作 |
| | | // }else{ |
| | | // //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; |
| | | // //lt DB202304062844 20230515 项目终止流程开发 start |
| | | // if(tlink.Tender_information_Task__r.TerminateApprovalStatus__c == '批准' && opp.ConfirmationofAward__c == 'OLY中标'){ |
| | | // opp.Closing_Bid_Date__c = null; |
| | | // } |
| | | // //lt DB202304062844 20230515 项目终止流程开发 end |
| | | // //opp.Closing_Bid_Date__c = null; |
| | | // //20220718 you 询价任务 end |
| | | } |
| | | } |
| | | } |
| | | if (upd_flg) { |
| | | //lt DB202304062844 20230515 项目终止流程开发 start |
| | | if(null!=TerminationStateMap && TerminationStateMap.containsKey(opp.Id) && opp.ConfirmationofAward__c == 'OLY中标'){ |
| | | opp.Closing_Bid_Date__c = null; |
| | | } |
| | | //lt DB202304062844 20230515 项目终止流程开发 end |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | //lt DB202304062844 20230515 项目终止流程开发 end |
| | | StaticParameter.EscapeOppandStaTrigger = true; //lt DB202304062844 20230515 项目终止流程开发 跳过询价trigger start |
| | | update opportunities; |
| | | StaticParameter.EscapeOppandStaTrigger = false; //lt DB202304062844 20230515 项目终止流程开发 end |
| | | } |
| | | } |
| | | //20220718 you 询价任务 end |
| | |
| | | } |
| | | } |
| | | **/ |
| | | |
| | | //lt DB202304062844 20230515 项目终止流程开发 start subInfoType__c |
| | | //如果项目阶段发生变化 或者阶段补充说明发生变化 或者终止审批发生变化且审批通过 把招标项目上的IsReactionOpp__c设置为true |
| | | public void SetIsReactionOpp() { |
| | | for(Tender_information__c newTen : newList){ |
| | | Tender_information__c oldTen = oldMap.get(newTen.Id); |
| | | if(newTen.InfoType__c != oldTen.InfoType__c || newTen.subInfoType__c != oldTen.subInfoType__c || (newTen.TerminateApprovalStatus__c != oldTen.TerminateApprovalStatus__c && newTen.TerminateApprovalStatus__c == '批准')){ |
| | | newTen.IsReactionOpp__c = true; |
| | | } |
| | | } |
| | | } |
| | | //lt DB202304062844 20230515 项目终止流程开发 end |
| | | } |