From a6700debe3fd28bf950ef33937b31c1a6713af29 Mon Sep 17 00:00:00 2001 From: 李彤 <litong@prec-tech.com> Date: 星期四, 08 十二月 2022 18:04:12 +0800 Subject: [PATCH] 【重要!学会会议】自办会关联OBPM决裁信息不更新会议开始日和结束日 --- 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