From 1727a4f4d02e429475608e60f142a63bc24127bc Mon Sep 17 00:00:00 2001
From: 19626 <1962676589@qq.com>
Date: 星期一, 23 十月 2023 10:07:34 +0800
Subject: [PATCH] 近期修改
---
force-app/main/default/classes/TenderOpportunityLinkHandler.cls | 347 ++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 245 insertions(+), 102 deletions(-)
diff --git a/force-app/main/default/classes/TenderOpportunityLinkHandler.cls b/force-app/main/default/classes/TenderOpportunityLinkHandler.cls
index 197d4a5..3eb4da3 100644
--- a/force-app/main/default/classes/TenderOpportunityLinkHandler.cls
+++ b/force-app/main/default/classes/TenderOpportunityLinkHandler.cls
@@ -10,12 +10,13 @@
this.newList = (List<Tender_Opportunity_Link__c>) Trigger.new;
this.oldList = (List<Tender_Opportunity_Link__c>) Trigger.old;
}
-
+
protected override void afterInsert() {
// 鍒ゆ柇鏄惁璺宠繃
+ updateTerminateTender(this.newList); //lt 20230419 椤圭洰缁堟娴佺▼寮�鍙� add
if (!StaticParameter.EscapeTOLinkTrigger) {
updateTender(this.newList);
- updateOppotunityByInsert(this.newList);
+ updateOppotunityByInsert(this.newList);
}
}
@@ -39,6 +40,189 @@
if (link.Tender_Opportunity_Uniq__c == null || link.Tender_Opportunity_Uniq__c == '') {
link.Tender_Opportunity_Uniq__c = link.Tender_information__c + '' + link.Opportunity__c;
}
+ }
+ }
+}
+//DB202306372336 you start
+public void UpdateStrategic_department_Opp(List<Tender_Opportunity_Link__c> tenderList,List<Tender_information__c> UpdateTenders){
+ Map<String, Set<String>> updateTenMap = new Map<String, Set<String>>();//鎷涙爣椤圭洰id锛屾垬鐣ョ瀹ゅ垎绫�
+ //String partment_Opp='';
+ if(tenderList.size() > 0){
+ for (Tender_Opportunity_Link__c tender : tenderList){
+ if(String.isNotBlank(tender.Opportunity__r.Department_Class__r.Department_Class_Label__c)){
+ //String ten_Opp =tender.Opportunity__r.Department_Class__r.name.split(' ')[1];
+ //if(tender.Opportunity__r.Department_Class__r.name.split(' ').size() ==3 ){
+ // ten_Opp =tender.Opportunity__r.Department_Class__r.name.split(' ')[2];
+ //}
+ String ten_Opp =tender.Opportunity__r.Department_Class__r.Department_Class_Label__c;
+ Set<String> temp = new Set<String>();
+ if(ten_Opp.indexOf('鍏朵粬') == -1){
+ if(updateTenMap.containsKey(tender.Tender_information__c)){
+ temp= updateTenMap.get(tender.Tender_information__c);
+ temp.add(ten_Opp);
+ } else{
+ temp.add(ten_Opp);
+ }
+ }else{//鍏朵粬褰掓櫘澶�
+ if(updateTenMap.containsKey(tender.Tender_information__c)){
+ temp= updateTenMap.get(tender.Tender_information__c);
+ temp.add('鏅绉�');
+ } else{
+ temp.add('鏅绉�');
+ }
+ }
+ updateTenMap.put(tender.Tender_information__c,temp);
+ system.debug(tender.Opportunity__r.Department_Class__r.Department_Class_Label__c+'==temp=='+temp);
+ }
+
+ }
+
+ if(null!=updateTenMap && updateTenMap.size()>0){
+ for(String ksy :updateTenMap.keySet()){
+ String partment_Opp=String.join(new List<String>(updateTenMap.get(ksy)), ';');
+ system.debug('=====partment_Opp='+partment_Opp);
+ partment_Opp=partment_Opp.replaceAll(',', ';');
+ if(null ==UpdateTenders || UpdateTenders.size()==0){
+ Tender_information__c tin1 =new Tender_information__c();
+ tin1.id=ksy;
+ tin1.Strategic_department_Opp__c = partment_Opp;
+ UpdateTenders.add(tin1);
+ }else{
+ for (Tender_information__c up : UpdateTenders){
+ if(up.id== ksy){
+ up.Strategic_department_Opp__c = partment_Opp;
+ }else{
+ Tender_information__c tin2 =new Tender_information__c();
+ tin2.id=ksy;
+ tin2.Strategic_department_Opp__c = partment_Opp;
+ UpdateTenders.add(tin2);
+ }
+
+ }
+ }
+
+ }
+ }
+ }
+
+
+
+ //if(tenderList.size() > 0){
+ // for (Tender_Opportunity_Link__c tender : tenderList){
+ // if(String.isNotBlank(partment_Opp)){
+ // partment_Opp.substring(0, partment_Opp.length()-1);
+ // if(null ==UpdateTenders || UpdateTenders.size()==0){
+ // Tender_information__c tin1 =new Tender_information__c();
+ // tin1.id=tender.Tender_information__c;
+ // tin1.Strategic_department_Opp__c = partment_Opp;
+ // UpdateTenders.add(tin1);
+ // }else{
+ // for (Tender_information__c up : UpdateTenders){
+ // if(up.id== tender.Tender_information__c){
+ // up.Strategic_department_Opp__c = partment_Opp;
+ // }else{
+ // Tender_information__c tin2 =new Tender_information__c();
+ // tin2.id=tender.Tender_information__c;
+ // tin2.Strategic_department_Opp__c = partment_Opp;
+ // UpdateTenders.add(tin2);
+ // }
+
+ // }
+ // }
+ // }
+ // }
+ //}
+}
+ //DB202306372336 you end
+//lt 20230419 椤圭洰缁堟娴佺▼寮�鍙� 缁堟鐢宠鐘舵�佹竻闄� add
+//椤圭洰缁堟娴佺▼寮�鍙� -- 娓呴櫎鎷涙爣椤圭洰缁堟鐢宠鐨勪俊鎭紝椤圭洰閲嶅惎鏍囪瘑鎵撳嬀
+public void updateTerminateTender(List<Tender_Opportunity_Link__c> records){
+ if (records != null && records.size() > 0){
+ List<String> tenders = new List<String>();//DB202305552102 you 鍏宠仈鍙栨秷鐨勮浠� 椤圭洰涓嶉噸鍚� 鍙栦竴鏉ink
+ List<String> tenlinks = new List<String>();//DB202306372336 you start 鍙栧綋鍓嶆嫑鏍囦笅鎵�鏈塴ink
+
+ // 鑾峰緱瑕佹洿鏂扮殑鎷涙爣椤圭洰
+ for (Tender_Opportunity_Link__c record: records) {
+ String lhid=record.Tender_information__c+''+record.Opportunity__c;
+ if (!tenders.contains(lhid)) {
+ tenders.add(lhid);
+ }
+ //DB202306372336 you start
+ if(!tenlinks.contains(record.Tender_information__c)){
+ tenlinks.add(record.Tender_information__c);
+ }
+ //DB202306372336 you end
+ /**
+ if (!tenders.contains(record.Tender_information__c)) {
+ tenders.add(record.Tender_information__c);
+ }
+ **/
+ }
+
+
+ /**
+ List<Tender_information__c> UpdateTenders = new List<Tender_information__c>();
+ if (tenders.size() > 0){
+ List<Tender_information__c> tenderList = [SELECT id, status__c, TerminateReason__c, IsTerminate__c,
+ TerminateApprovalStatus__c, TerminateApprovalTime__c,
+ ProjectRestartFLG__c,subInfoType__c
+ FROM Tender_information__c
+ WHERE id in :tenders];
+
+ if(tenderList.size() > 0){
+ for (Tender_information__c tender : tenderList){
+ //if(tender.status__c == '09.缁堟' && tender.TerminateReason__c != '缁忛攢鍟嗗師鍥�' && tender.subInfoType__c != '3-1锛氬簾鏍囧叕鍛�' && tender.subInfoType__c != '3-2锛氭祦鏍囧叕鍛�')
+ if(tender.status__c == '09.缁堟'){
+ tender.ProjectRestartFLG__c = true;
+ tender.IsTerminate__c = null;
+ tender.TerminateApprovalTime__c = null;
+ tender.TerminateApprovalStatus__c = null;
+
+ UpdateTenders.add(tender);
+ }
+ }
+ }
+ }
+ **/
+ //DB202305552102 you start
+ List<Tender_information__c> UpdateTenders = new List<Tender_information__c>();
+ List<Tender_Opportunity_Link__c> tolList = new List<Tender_Opportunity_Link__c>();
+ if (tenders.size() > 0) {
+ tolList = [select id, Opportunity__r.stagename,Opportunity__r.Department_Class__r.Department_Class_Label__c, Tender_information__c,Tender_information__r.status__c,Tender_information__r.ProjectRestartFLG__c,Tender_information__r.IsTerminate__c,Tender_information__r.TerminateApprovalTime__c,Tender_information__r.TerminateApprovalStatus__c from Tender_Opportunity_Link__c where Tender_Opportunity_Uniq__c in :tenders];
+ }
+ if(tolList.size() > 0){
+ for (Tender_Opportunity_Link__c tender : tolList){
+ system.debug(tenders+'======='+tender.Tender_information__r.status__c+'=====缁堟===='+tender.Opportunity__r.stagename);
+ if(tender.Tender_information__r.status__c == '09.缁堟' && tender.Opportunity__r.stagename !='鍓婇櫎'){
+ Tender_information__c tin =new Tender_information__c();
+ tin.id=tender.Tender_information__c;
+ tin.ProjectRestartFLG__c = true;
+ tin.IsTerminate__c = null;
+ tin.TerminateApprovalTime__c = null;
+ tin.TerminateApprovalStatus__c = null;
+ UpdateTenders.add(tin);
+
+ }
+
+ }
+ }
+ //DB202305552102 you end
+ //DB202306372336 you start
+ List<Tender_Opportunity_Link__c> tenderList = new List<Tender_Opportunity_Link__c>();
+ if (tenlinks.size() > 0){
+ tenderList = [SELECT id, Opportunity__r.Department_Class__r.Department_Class_Label__c,Tender_information__c
+ FROM Tender_Opportunity_Link__c
+ WHERE Tender_information__c in :tenlinks];
+ }
+ if(tenderList.size() > 0){
+ UpdateStrategic_department_Opp(tenderList,UpdateTenders);
+ }
+ system.debug('==闇�瑕佹洿鏂扮殑==='+UpdateTenders);
+ //DB202306372336 you end
+ if(UpdateTenders.size() > 0){
+ StaticParameter.EscapeTenderInformationUpdate =false;
+ update UpdateTenders;
+ StaticParameter.EscapeTenderInformationUpdate =true;
}
}
}
@@ -188,13 +372,15 @@
tender.Hospital4__c = fiveHospitalMap.get('Hospital4__c');
}
}
- if (Trigger.isAfter && Trigger.isDelete) {
+ StaticParameter.EscapeTenderInformationUpdate = false;
+ if (Trigger.isAfter && Trigger.isDelete) {
StaticParameter.EscapeOtherUpdateTenOwner = false;
update tender_list;
- StaticParameter.EscapeOtherUpdateTenOwner = true;
+ StaticParameter.EscapeOtherUpdateTenOwner = true;
} else {
update tender_list;
}
+ StaticParameter.EscapeTenderInformationUpdate = true;
}
}
}
@@ -338,6 +524,58 @@
//20220718 you 璇环浠诲姟 start
//鍒犻櫎link鏃讹紝浠诲姟鍙栨秷锛屾竻绌鸿浠蜂腑鏍囦俊鎭�
public void updateOppotunityBeforeDelete(List<Tender_Opportunity_Link__c> records) {
+ //DB202306372336 you start
+ List<String> tenlinks = new List<String>();// 鍙栧綋鍓嶆嫑鏍囦笅鎵�鏈塴ink
+ List<String> tenlink = new List<String>();// 鍙栧綋鍓嶅垹闄ょ殑link
+ if (records != null && records.size() > 0) {
+ for (Tender_Opportunity_Link__c record: records) {
+ if(!tenlinks.contains(record.Tender_information__c)){
+ tenlinks.add(record.Tender_information__c);
+ }
+ if(!tenlink.contains(record.id)){
+ tenlink.add(record.id);
+ }
+ }
+ }
+ List<Tender_information__c> UpdateTenders = new List<Tender_information__c>();
+ List<Tender_Opportunity_Link__c> tenderList = new List<Tender_Opportunity_Link__c>();
+ if (tenlinks.size() > 0){
+ tenderList = [SELECT id, Opportunity__r.Department_Class__r.Department_Class_Label__c,Tender_information__c
+ FROM Tender_Opportunity_Link__c
+ WHERE Tender_information__c in :tenlinks and id not in :tenlink];
+ }
+
+ if(tenderList.size() > 0){
+ UpdateStrategic_department_Opp(tenderList,UpdateTenders);
+ } else{
+ //鍒犻櫎鎷涙爣椤圭洰鏈�鍚庝竴鏉ink
+ List<Tender_Opportunity_Link__c> tenderList1 = [SELECT id, Opportunity__r.Department_Class__r.Department_Class_Label__c,Tender_information__c
+ FROM Tender_Opportunity_Link__c
+ WHERE id in :tenlink];
+ system.debug(tenderList1.size()+'==褰撳墠鍒犻櫎寰條ink=='+tenlink);
+ if(null!=tenderList1 && tenderList1.size()>0){
+ for(Tender_Opportunity_Link__c ti :tenderList1){
+ Tender_information__c tin1 =new Tender_information__c();
+ tin1.id=ti.Tender_information__c;
+ tin1.Strategic_department_Opp__c = '';
+ system.debug('鍒犻櫎杩涙潵浜�');
+ UpdateTenders.add(tin1);
+ }
+
+ }
+
+ }
+ system.debug('=====UpdateTenders====='+UpdateTenders);
+ if(UpdateTenders.size() > 0){
+ StaticParameter.EscapeTenderInformationUpdate =false;
+ update UpdateTenders;
+ StaticParameter.EscapeTenderInformationUpdate =true;
+ }
+
+//DB202306372336 you end
+
+
+
if (records != null && records.size() > 0) {
Set<String> oppTens = new Set<String>();//璇环锛屾嫑鏍囬」鐩� 鎷兼帴
List<String> oppIds = new List<String>();
@@ -395,6 +633,7 @@
// 鏇存柊璇环淇℃伅
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
@@ -444,7 +683,7 @@
//20220718 you 璇环浠诲姟 end
**/
// 20221028 ljh SWAG-CKL5UC start
- opp.LeakageNumber__c = null;
+ //opp.LeakageNumber__c = null; //lt 20230625 DB202306421819 銆怋UG銆戞紡鍗曟暟鏈夎 update
// 20221028 ljh SWAG-CKL5UC end
} else {
for (Tender_Opportunity_Link__c link : links) {
@@ -505,102 +744,6 @@
}
@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