From a886e1576fd1f45db37ed84b3c8b61aea4cdd4b1 Mon Sep 17 00:00:00 2001 From: 游畅 <youchang@prec-tech.com> Date: 星期五, 07 四月 2023 09:55:11 +0800 Subject: [PATCH] 20230407招标项目同步询价的中标信息 --- force-app/main/default/classes/OpportunityTrigger.cls | 136 ++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 120 insertions(+), 16 deletions(-) diff --git a/force-app/main/default/classes/OpportunityTrigger.cls b/force-app/main/default/classes/OpportunityTrigger.cls index 3cfea75..8815df5 100644 --- a/force-app/main/default/classes/OpportunityTrigger.cls +++ b/force-app/main/default/classes/OpportunityTrigger.cls @@ -183,6 +183,34 @@ } } } + //DB202304056706 you 20230406 娓呯┖ 鎵撴爣璇嗭紝閲嶆柊鎵цbatch + if(String.isBlank(op.ConfirmationofAward__c) && op.ConfirmationofAward__c!=oldopp.ConfirmationofAward__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銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 start + // System.debug('lt123 oly涓绘満'+op.OlyNumberHosts__c); + // System.debug('lt123 鑰乷ly涓绘満'+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){ + 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銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 end // }else { // //鏂板缓鏃跺垽鏂浠风殑鎷涙爣椤圭洰鏄笉鏄粠鏃犲埌鏈� @@ -366,30 +394,85 @@ } 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 == '璇环' && op.LeakageNumber__c !=1){ + if (oldopp.ConfirmationofAward__c != '绔炰簤瀵规墜涓爣' && op.ConfirmationofAward__c == '绔炰簤瀵规墜涓爣' && op.StageName__c == '璇环' && !op.DirectLossFLG__c ){ 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()) { - // 鏈夋晥澶卞崟鐘舵�佷竴瑙� - List<String> validStatus = new List<String>{'鐢宠涓�', '鎻愪氦', '鎵瑰噯'}; - // 璇环澶卞崟/鍙栨秷鎶ュ憡鏌ヨ - List<Lost_cancel_report__c> lostCancelReportList = [SELECT Id, Opportunity__c from Lost_cancel_report__c WHERE Opportunity__c in :oppoIds and Report_Status__c in: validStatus]; + // 20221206 DB202211594688 start + // // 鏈夋晥澶卞崟鐘舵�佷竴瑙� + // List<String> validStatus = new List<String>{'鐢宠涓�', '鎻愪氦', '鎵瑰噯'}; + // // 璇环澶卞崟/鍙栨秷鎶ュ憡鏌ヨ + // List<Lost_cancel_report__c> lostCancelReportList = [SELECT Id, Opportunity__c from Lost_cancel_report__c WHERE Opportunity__c in :oppoIds and Report_Status__c in: validStatus]; + + // List<Lost_cancel_report__c> lostCancelReportList1 = [SELECT Id, Opportunity__c,DeveloperName__c from Lost_cancel_report__c WHERE Opportunity__c in :oppoIds and Report_Status__c ='鑽夋']; + // //<璇环Id, 澶卞崟鎶ュ憡> + // Map<String, Lost_cancel_report__c> lostCancelReportMap = new Map<String, Lost_cancel_report__c>(); + // for(Lost_cancel_report__c lcr : lostCancelReportList){ + // if (!lostCancelReportMap.isEmpty() && lostCancelReportMap.containsKey(lcr.Opportunity__c)) { + // // no action + // } else { + // lostCancelReportMap.put(lcr.Opportunity__c, lcr); + // } + // } + + //鏈夋晥澶卞崟鐘舵�佷竴瑙� + List<String> validStatus = new List<String>{'鐢宠涓�', '鎻愪氦', '鎵瑰噯'}; + List<String> allStatus = new List<String>{'鐢宠涓�', '鎻愪氦', '鎵瑰噯','鑽夋'}; + // 璇环澶卞崟/鍙栨秷鎶ュ憡鏌ヨ + List<Lost_cancel_report__c> lostCancelReportList = [SELECT Id, Opportunity__c,Report_Status__c,DeveloperName__c from Lost_cancel_report__c WHERE Opportunity__c in :oppoIds and Report_Status__c in: allStatus]; + //<璇环Id, 澶卞崟鎶ュ憡> Map<String, Lost_cancel_report__c> lostCancelReportMap = new Map<String, Lost_cancel_report__c>(); + Map<String, Lost_cancel_report__c> lostCancelReportMap1 = new Map<String, Lost_cancel_report__c>(); for(Lost_cancel_report__c lcr : lostCancelReportList){ - if (!lostCancelReportMap.isEmpty() && lostCancelReportMap.containsKey(lcr.Opportunity__c)) { + if(validStatus.contains(lcr.Report_Status__c)){ + if (!lostCancelReportMap.isEmpty() && lostCancelReportMap.containsKey(lcr.Opportunity__c)) { + // no action + } else { + lostCancelReportMap.put(lcr.Opportunity__c, lcr); + } + }else{ + // 鑽夋 + if (!lostCancelReportMap1.isEmpty() && lostCancelReportMap1.containsKey(lcr.Opportunity__c)) { // no action - } else { - lostCancelReportMap.put(lcr.Opportunity__c, lcr); - } - } - + } else { + lostCancelReportMap1.put(lcr.Opportunity__c, lcr); + } + } + } + // 20221206 DB202211594688 start List<Task__c> insTaskList = new List<Task__c>(); // 瀹氫箟闇�瑕佹洿鏂扮殑璇环浠诲姟 @@ -421,6 +504,18 @@ Opportunity uopp = new Opportunity(); uopp.Id = opp.Id; uopp.LostTask_createTime__c = Date.today(); + //20221205 you DB202211594688 閮ㄥ垎澶卞崟娲惧彂浠诲姟锛屼絾鏄腑鏍囩粨鏋滀笉璧嬪�� + + if(null!=lostCancelReportMap1.get(opp.Id) && lostCancelReportMap1.get(opp.Id).DeveloperName__c =='PCL_PartLost_report'){ + + uopp.ConfirmationofAward__c = ''; + uopp.ConfirmationofAward_createTime__c = null; + uopp.Is_ConfirmationofAward__c =null; + }else{ + if(oldMap.get(opp.Id).ConfirmationofAward__c != '绔炰簤瀵规墜涓爣' && opp.ConfirmationofAward__c == '绔炰簤瀵规墜涓爣'){ + uopp.Closing_Bid_Date__c = null; + } + } updateOpportunity.add(uopp); } } @@ -459,7 +554,7 @@ //20220628浼氳鏂伴渶姹� 瀵规墜涓爣 7.涓爣鏃ユ竻绌� if(oldopp.ConfirmationofAward__c != '绔炰簤瀵规墜涓爣' && op.ConfirmationofAward__c == '绔炰簤瀵规墜涓爣'){ - op.Closing_Bid_Date__c = null; + //op.Closing_Bid_Date__c = null; // 20221206 you op.ConfirmationofAward_createTime__c = Date.today(); if(op.Task_createTime__c!=null){ @@ -472,20 +567,29 @@ 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]; + // 2022-12-02 ssm DB202211552746 澧炲姞娴佹爣搴熸爣鏃舵竻绌虹粨鏋滆褰曟棩鐨勯�昏緫锛岄渶瑕佸垽鏂笉鏄祦鏍囧簾鏍囩殑缁撴灉鏁版嵁鎵嶆洿鏂颁腑鏍囨棩 + 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锛氱粨鏋�' + and Tender_information__r.subInfoType__c != '3-1锛氬簾鏍囧叕鍛�' + and Tender_information__r.subInfoType__c != '3-2锛氭祦鏍囧叕鍛�']; 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)); -- Gitblit v1.9.1