From b4b8a2df1f478030bb321b6ac558f13fbbffbb07 Mon Sep 17 00:00:00 2001
From: 张宇恒 <bxyun0@163.com>
Date: 星期五, 23 十二月 2022 11:22:36 +0800
Subject: [PATCH] 修理接口新增触发条件
---
force-app/main/default/classes/ApplicationForCAHandler.cls | 125 +++++++++++++++++++----------------------
1 files changed, 57 insertions(+), 68 deletions(-)
diff --git a/force-app/main/default/classes/ApplicationForCAHandler.cls b/force-app/main/default/classes/ApplicationForCAHandler.cls
index 1c36095..ee8b8d8 100644
--- a/force-app/main/default/classes/ApplicationForCAHandler.cls
+++ b/force-app/main/default/classes/ApplicationForCAHandler.cls
@@ -21,6 +21,8 @@
}
protected override void beforeUpdate() {
+ // 鏇存柊鏃跺垽鏂槸鍚︽洿鏂颁簡缁戝畾鐨勫浼氾紝濡傛灉缁戝畾澶氫釜瀛︿細涓斾笉鏄禐鍔╀細鏃讹紝娓呯┖缁戝畾鍏崇郴
+ clean_binding();
clean_campaign();
update_campaign();
}
@@ -30,18 +32,40 @@
update_status_on_opd();
}
+ // 鏇存柊鏃跺垽鏂槸鍚︽洿鏂颁簡缁戝畾鐨勫浼氾紝濡傛灉缁戝畾澶氫釜瀛︿細涓斾笉鏄禐鍔╀細鏃讹紝娓呯┖缁戝畾鍏崇郴
+ private void clean_binding() {
+ Map<String, String> app_cam_binds = new Map<String, String>();
+ for (Application_for_Conference_Adjudication__c app : this.newList) {
+ Application_for_Conference_Adjudication__c old_app = this.oldMap.get(app.Id);
+ if (String.isNotBlank(old_app.Num__c) && !old_app.Num__c.equals(app.Num__c) && app.MeetingType__c != '璧炲姪浼�') {
+ app_cam_binds.put(old_app.Id, old_app.Num__c);
+ }
+ }
+ if (app_cam_binds.size() > 0) {
+ List<Campaign> cams = [select Id, MeetingApprovedNo__c, Meeting_Approved_No__c, RecordTypeId, Meeting_Type__c from Campaign where Meeting_Approved_No__c in :app_cam_binds.keySet() and Num__c in :app_cam_binds.values()];
+ if (cams != null && cams.size() > 0) {
+ for (Campaign cam : cams) {
+ cam.MeetingApprovedNo__c = null;
+ cam.Meeting_Approved_No__c = null;
+ }
+ update cams;
+ }
+ }
+ }
+
// 瀹℃壒涓嶉�氳繃鐨勬椂鍊� 娓呯┖浼氳鍜孫PD璁″垝涓婄殑鍐宠淇℃伅
private void clean_campaign() {
List<String> approved_nos = new List<String>();
for (Application_for_Conference_Adjudication__c app : this.newList) {
if (app.ProcessState__c == '椹冲洖' ||
app.ProcessState__c == '缁堟鐢宠' ||
- app.ProcessState__c == '鍙栨秷') {
+ app.ProcessState__c == '鍙栨秷' ||
+ app.ProcessState__c == '鍒犻櫎') {
approved_nos.add(app.Id);
}
}
if (approved_nos.size() > 0) {
- List<Campaign> campaigns = [select Id, MeetingApprovedNo__c, Meeting_Approved_No__c from Campaign where Meeting_Approved_No__c in :approved_nos];
+ List<Campaign> campaigns = [select Id, MeetingApprovedNo__c, Meeting_Approved_No__c , RecordTypeId, Meeting_Type__c from Campaign where Meeting_Approved_No__c in :approved_nos];
if (campaigns != null && campaigns.size() > 0) {
for (Campaign cam : campaigns) {
cam.MeetingApprovedNo__c = null;
@@ -65,7 +89,7 @@
List<String> app_ids = new List<String>();
Map<String, Application_for_Conference_Adjudication__c> app_nos = new Map<String, Application_for_Conference_Adjudication__c>();
for (Application_for_Conference_Adjudication__c app : this.newList) {
- if (app.ProcessState__c == '瀹℃壒鎴愬姛') {
+ if (app.ProcessState__c != oldMap.get(app.Id).ProcessState__c && app.ProcessState__c == '瀹℃壒鎴愬姛') { //20221206 lt DB202212060256 update
app.Approved_Date__c = Date.today();
app_ids.add(app.Id);
// 琛ュ厖鍐宠
@@ -76,7 +100,7 @@
}
Map<String, Campaign> wait_upd_campaigns = new Map<String, Campaign>();
if (app_ids.size() > 0) {
- List<Campaign> campaigns = [select Id, Num__c, MeetingApprovedNo__c, Meeting_Approved_No__c from Campaign where Meeting_Approved_No__c in :app_ids];
+ List<Campaign> campaigns = [select Id, Num__c, MeetingApprovedNo__c, Meeting_Approved_No__c, WorkshopPlace__c, State_Master__c, City_Master__c, RecordTypeId, Meeting_Type__c from Campaign where Meeting_Approved_No__c in :app_ids and Meeting_Type__c != '璧炲姪浼�'];
if (campaigns.size() > 0) {
for (Campaign cam : campaigns) {
Application_for_Conference_Adjudication__c app = this.newMap.get(cam.Meeting_Approved_No__c);
@@ -88,7 +112,7 @@
}
}
if (app_nos.size() > 0) {
- List<Campaign> campaigns = [select Id, Num__c, MeetingApprovedNo__c, Meeting_Approved_No__c from Campaign where MeetingApprovedNo__c in :app_nos.keySet()];
+ List<Campaign> campaigns = [select Id, Num__c, MeetingApprovedNo__c, Meeting_Approved_No__c, WorkshopPlace__c, State_Master__c, City_Master__c, RecordTypeId, Meeting_Type__c from Campaign where MeetingApprovedNo__c in :app_nos.keySet()];
if (campaigns.size() > 0) {
for (Campaign cam : campaigns) {
Application_for_Conference_Adjudication__c app = app_nos.get(cam.MeetingApprovedNo__c);
@@ -128,15 +152,33 @@
// 鏇存柊鍐宠鐨勪俊鎭埌瀛︿細涓�
private Campaign update_info_from_app(Campaign cam, Application_for_Conference_Adjudication__c app) {
- init_state_city();
- cam.StartDate = app.StartDate__c;
- cam.EndDate = app.EndDate__c;
- cam.Budget_Type__c = app.BudgetType__c;
+ //20221206 lt DB202212060256 start
+ Id RtId = Schema.SObjectType.Campaign.getRecordTypeInfosByDeveloperName().get('Society').getRecordTypeId();
+ Id RtId2 = Schema.SObjectType.Campaign.getRecordTypeInfosByDeveloperName().get('BusinessTraining').getRecordTypeId();
+ System.debug('lt123-------Cam------璁板綍绫诲瀷----'+cam.RecordTypeId);
+ System.debug('lt123-------Cam------浼氳绫诲瀷----'+cam.Meeting_Type__c);
+ System.debug('lt123-------Cam------璁板綍绫诲瀷RtId----'+RtId);
+ if(cam.RecordTypeId == RtId || cam.RecordTypeId == RtId2){
+ System.debug('lt123-------App------1----');
+ if (cam.Meeting_Type__c != '涓诲姙浼�'){
+ System.debug('lt123-------App------2----');
+ cam.StartDate = app.StartDate__c;
+ cam.EndDate = app.EndDate__c;
+ }
+ }
+ if(cam.RecordTypeId != RtId && cam.RecordTypeId != RtId2){
+ System.debug('lt123-------App------3----');
+ cam.StartDate = app.StartDate__c;
+ cam.EndDate = app.EndDate__c;
+ }
+ // cam.StartDate = app.StartDate__c;
+ // cam.EndDate = app.EndDate__c;
+ //20221206 lt DB202212060256 end
+ cam.Implementation_Purpose__c = app.Implementation_Purpose1__c;
cam.OfficeCategory__c = app.OfficeCategory__c;
cam.Meeting_Type__c = app.MeetingType__c;
- cam.Activity_Type_Name__c = app.ActivityTypeName__c;
- cam.WorkshopPlace__c = app.WorkshopPlace__c;
+ cam.WorkshopPlace__c = String.isNotBlank(app.WorkshopPlace__c) ? app.WorkshopPlace__c : cam.WorkshopPlace__c;
cam.HostName__c = app.HostName__c;
cam.cooperatorCompany__c = app.CooperatorCompany__c;
cam.Convening_Participants_Num__c = app.ConveningParticipantsNum__c;
@@ -146,65 +188,12 @@
cam.Expected_Hcp_Attendance__c = app.ExpectedHcpAttendance__c;
cam.SponsorshipCategory__c = app.SponsorshipCategory__c;
cam.IsPaidToSponsor__c = app.IsPaidToSponsor__c;
- cam.Activity_Type_Name__c = app.ActivityTypeName__c;
+ // cam.Activity_Type_Name__c = app.ActivityTypeName__c;
+ cam.Activity_Type_Name__c = app.Type_of_adjudication_meeting__c;
// 杩欓噷闇�瑕侀澶栧姞鎿嶄綔
- cam.State_Master__c = get_state(app.StateMaster__c);
- cam.City_Master__c = get_city(app.CityMaster__c);
+ cam.State_Master__c = String.isNotBlank(app.StateMaster__c) ? StateCityUtil.get_state(app.StateMaster__c) : cam.State_Master__c;
+ cam.City_Master__c = String.isNotBlank(app.CityMaster__c) ? StateCityUtil.get_city(app.CityMaster__c) : cam.City_Master__c;
return cam;
- }
-
- // 鍒濆鍖栫渷甯備俊鎭�
- public static void init_state_city() {
- if (states == null || states.size() <= 0) {
- states = new Map<String, String>();
- List<Address_Level__c> lst_state = [select Id, Name from Address_Level__c];
- for (Address_Level__c level1 : lst_state) {
- states.put(level1.Name, level1.Id);
- }
- }
- if (cities == null || cities.size() <= 0) {
- cities = new Map<String, String>();
- List<Address_Level2__c> lst_city = [select Id, Name from Address_Level2__c];
- for (Address_Level2__c level2 : lst_city) {
- cities.put(level2.Name, level2.Id);
- }
- }
- }
-
- // 璁剧疆浼氳涓婄殑鐪�
- public static String get_state(String state_name) {
- if (String.isBlank(state_name)) {
- return null;
- }
- if (states == null || states.size() <= 0) {
- return null;
- }
- // 澶勭悊绌烘牸 鎴栬鍚庣画杩樻湁鍒殑澶勭悊
- state_name = state_name.trim().replace(' ', '');
- for(String state : states.keySet()) {
- if (state_name.contains(state) || state.contains(state_name)) {
- return states.get(state);
- }
- }
- return null;
- }
-
- // 璁剧疆浼氳涓婄殑甯�
- public static String get_city(String city_name) {
- if (String.isBlank(city_name)) {
- return null;
- }
- if (cities == null || cities.size() <= 0) {
- return null;
- }
- // 澶勭悊绌烘牸 鎴栬鍚庣画杩樻湁鍒殑澶勭悊
- city_name = city_name.trim().replace(' ', '');
- for(String city : cities.keySet()) {
- if (city_name.contains(city) || city.contains(city_name)) {
- return cities.get(city);
- }
- }
- return null;
}
}
\ No newline at end of file
--
Gitblit v1.9.1