From a2f7f78e8b02e3613c9ff9cf584de2ec0bda075d Mon Sep 17 00:00:00 2001 From: 李彤 <litong@prec-tech.com> Date: 星期四, 12 五月 2022 09:34:08 +0800 Subject: [PATCH] 替换字段 --- 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..d4eda24 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.Implementation_Purpose__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