From 9b197b7fac92278fb591ea8f4942c7d5687cb5ce Mon Sep 17 00:00:00 2001
From: 李金换 <lijinhuan@prec-tech.com>
Date: 星期一, 28 三月 2022 18:01:22 +0800
Subject: [PATCH] LJPH-C8FB4P【委托】配合PBI设备覆盖率的数据准备0328
---
force-app/main/default/classes/CampaignTriggerBefInsHandler.cls | 136 ++++++++++++++++++++++-----------------------
1 files changed, 67 insertions(+), 69 deletions(-)
diff --git a/force-app/main/default/classes/CampaignTriggerBefInsHandler.cls b/force-app/main/default/classes/CampaignTriggerBefInsHandler.cls
index 53f23da..26f873e 100644
--- a/force-app/main/default/classes/CampaignTriggerBefInsHandler.cls
+++ b/force-app/main/default/classes/CampaignTriggerBefInsHandler.cls
@@ -28,6 +28,9 @@
campaign.StartDate__c = campaign.CeremonyDate__c == null ?
campaign.Lesson1Date__c : campaign.CeremonyDate__c;
}
+ // OBPM甯傚満娲诲姩鑱斿姩 add 鎵嬪姩缁戝畾鍐宠淇℃伅鏃讹紝浠庡喅瑁佷笂鑾峰彇淇℃伅骞跺啓鍏� start
+ GetInfoFromAdjudication();
+ // OBPM甯傚満娲诲姩鑱斿姩 add 鎵嬪姩缁戝畾鍐宠淇℃伅鏃讹紝浠庡喅瑁佷笂鑾峰彇淇℃伅骞跺啓鍏� end
}
protected override void beforeUpdate() {
beforeDateModifyDecide();
@@ -197,105 +200,100 @@
List<String> app_ids = new List<String>();
List<String> cam_ids = new List<String>();
for (Campaign cam : this.newList) {
- Campaign old_cam = this.oldMap.get(cam.Id);
- // 浼氳鍐宠鍙戠敓鍙樺寲涓斾笉涓虹┖鏃�
+ Campaign old_cam = this.oldMap != null ? this.oldMap.get(cam.Id) : new Campaign();
+ // 浼氳鍐宠涓嶄负绌烘椂
if (String.isNotBlank(cam.Meeting_Approved_No__c) && cam.Meeting_Approved_No__c != old_cam.Meeting_Approved_No__c) {
app_ids.add(cam.Meeting_Approved_No__c);
- cam_ids.add(cam.Id);
+ if (String.isNotBlank(cam.Id)) {
+ cam_ids.add(cam.Id);
+ }
}
}
if (app_ids.size() > 0) {
+ List<OPDPlan__c> plans = cam_ids.size() > 0 ? [select Id, Campaign__c, IF_Approved__c, Approved_Status__c, Approved_No__c from OPDPlan__c where Campaign__c in :cam_ids] : null;
List<Application_for_Conference_Adjudication__c> apps = [select Id,
MeetingApprovedNo__c,
+ Num__c,
+ ProcessState__c,
+ StartDate__c,
+ EndDate__c,
+ BudgetType__c,
+ OfficeCategory__c,
+ MeetingType__c,
ActivityTypeName__c,
+ WorkshopPlace__c,
+ HostName__c,
+ CooperatorCompany__c,
ExpectedOlympusAttendance__c,
ExpectedHcpAttendance__c,
StateMaster__c,
CityMaster__c,
IsPaidToSponsor__c,
SponsorshipCategory__c,
- ConveningParticipantsNum__c
+ ConveningParticipantsNum__c,
+ Type_of_adjudication_meeting__c
from
Application_for_Conference_Adjudication__c
where
Id in :app_ids];
if (apps != null && apps.size() > 0) {
- init_state_city();
+ List<Application_for_Conference_Adjudication__c> set_cam_num_apps = new List<Application_for_Conference_Adjudication__c>();
for (Application_for_Conference_Adjudication__c app : apps) {
for (Campaign cam : this.newList) {
if (cam.Meeting_Approved_No__c == app.Id && cam_ids.contains(cam.Id)) {
cam.MeetingApprovedNo__c = app.MeetingApprovedNo__c;
- cam.Meeting_Approved_No__c = app.Id;
+ // 闈炶禐鍔╀細鐨勬儏鍐典笅鏇存柊浠ヤ笅鍐呭
+ if (app.MeetingType__c != '璧炲姪浼�') {
+ cam.StartDate = app.StartDate__c;
+ cam.EndDate = app.EndDate__c;
+ cam.Budget_Type__c = app.BudgetType__c;
+ cam.OfficeCategory__c = app.OfficeCategory__c;
+ cam.Meeting_Type__c = app.MeetingType__c;
- cam.Activity_Type_Name__c = app.ActivityTypeName__c;
- cam.Expected_Olympus_Attendance__c = app.ExpectedOlympusAttendance__c;
- cam.Expected_Hcp_Attendance__c = app.ExpectedHcpAttendance__c;
- // 杩欓噷闇�瑕侀澶栧姞鎿嶄綔
- cam.State_Master__c = get_state(app.StateMaster__c);
- cam.City_Master__c = get_city(app.CityMaster__c);
- cam.IsPaidToSponsor__c = app.IsPaidToSponsor__c;
- cam.SponsorshipCategory__c = app.SponsorshipCategory__c;
- cam.Convening_Participants_Num__c = app.ConveningParticipantsNum__c;
+ cam.WorkshopPlace__c = app.WorkshopPlace__c;
+ cam.HostName__c = app.HostName__c;
+ cam.cooperatorCompany__c = app.CooperatorCompany__c;
+ cam.Convening_Participants_Num__c = app.ConveningParticipantsNum__c;
+
+ // OBPM瀵规帴 鏂板瀛楁
+ cam.Expected_Olympus_Attendance__c = app.ExpectedOlympusAttendance__c;
+ 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.Type_of_adjudication_meeting__c;
+ // 杩欓噷闇�瑕侀澶栧姞鎿嶄綔
+ cam.State_Master__c = StateCityUtil.get_state(app.StateMaster__c);
+ cam.City_Master__c = StateCityUtil.get_city(app.CityMaster__c);
+
+ if (cam.Num__c != app.Num__c) {
+ app.Num__c = cam.Num__c;
+ set_cam_num_apps.add(app);
+ }
+ }
+ // opd璁″垝涓婄殑鍐呭鏇存柊
+ if (plans != null && plans.size() > 0) {
+ for (OPDPlan__c plan : plans) {
+ if (plan.Campaign__c == cam.Id) {
+ plan.IF_Approved__c = true;
+ plan.Approved_Status__c = cam.Approved_Status__c;
+ plan.Approved_No__c = cam.Meeting_Approved_No__c;
+ break;
+ }
+ }
+ }
break;
}
}
}
+ if (set_cam_num_apps.size() > 0) {
+ update set_cam_num_apps;
+ }
+ if (plans != null && plans.size() > 0) {
+ update plans;
+ }
}
}
- }
-
- // 鍒濆鍖栫渷甯備俊鎭�
- 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;
}
// OBPM甯傚満娲诲姩鑱斿姩 add 鎵嬪姩缁戝畾鍐宠淇℃伅鏃讹紝浠庡喅瑁佷笂鑾峰彇淇℃伅骞跺啓鍏� end
}
\ No newline at end of file
--
Gitblit v1.9.1