From ec47f5ab5923a315bf22e0df5af7371e9668589e Mon Sep 17 00:00:00 2001
From: 张宇恒 <bxyun0@163.com>
Date: 星期五, 23 十二月 2022 11:16:18 +0800
Subject: [PATCH] 修理接口推送触发条件新加故障描述修理内容等
---
force-app/main/default/classes/TenderOpportunityLinkHandler.cls | 328 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 320 insertions(+), 8 deletions(-)
diff --git a/force-app/main/default/classes/TenderOpportunityLinkHandler.cls b/force-app/main/default/classes/TenderOpportunityLinkHandler.cls
index eabe83f..c52d66e 100644
--- a/force-app/main/default/classes/TenderOpportunityLinkHandler.cls
+++ b/force-app/main/default/classes/TenderOpportunityLinkHandler.cls
@@ -26,6 +26,12 @@
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) {
@@ -195,27 +201,49 @@
}
// 鏇存柊璇环淇℃伅
-public void updateOppotunityByInsert(List<Tender_Opportunity_Link__c> records) {
+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 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 fy start
+ // List<String> TenderIds = new List<String>();
+ //SWAG-CHL67J 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 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 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 fy start
+ // if (!TenderIds.contains(record.Tender_information__c)) {
+ // TenderIds.add(record.Tender_information__c);
+ // }
+ //SWAG-CHL67J 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 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)) {
+ /**
+ 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) {
@@ -226,32 +254,165 @@
}
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锛宭ink.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 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 fy start
+ // if (TenderIds.size() > 0) {
+ // updateTender(TenderIds);
+ // }
+ //SWAG-CHL67J 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 fy end
}
}
+//SWAG-CHL67J 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 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 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 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 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 fy start
+ // List<String> TenderIds = new List<String>();
+ //SWAG-CHL67J 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 fy end
// 鑾峰緱瑕佹洿鏂扮殑璇环
for (Tender_Opportunity_Link__c record: records) {
if (!oppIds.contains(record.Opportunity__c)) {
oppIds.add(record.Opportunity__c);
}
+ //SWAG-CHL67J 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 fy start
+ // if (!TenderIds.contains(record.Tender_information__c)) {
+ // TenderIds.add(record.Tender_information__c);
+ // }
+ //SWAG-CHL67J 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 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')));
@@ -260,23 +421,174 @@
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锛宭ink.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 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 fy start
+ // if (TenderIds.size() > 0) {
+ // updateTender(TenderIds);
+ // }
+ //SWAG-CHL67J 銆愬鎵樸�戙�怓Y23璇环鏀瑰杽銆�-璇环椤甸潰/鎷涙爣椤圭洰澧炲姞缁熻瀛楁 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++;
+ }
}
\ No newline at end of file
--
Gitblit v1.9.1