/** * @author 张玉山 * @DateTime 2019-03-11T14:20:19+0800 * 时间修改申请日期处理 * 开班日期初始化 */ public with sharing class CampaignTriggerBefInsHandler extends Oly_TriggerHandler { private Map newMap; private Map oldMap; private List newList; private List oldList; public CampaignTriggerBefInsHandler() { this.newMap = (Map) Trigger.newMap; this.oldMap = (Map) Trigger.oldMap; this.newList = (List) Trigger.new; this.oldList = (List) Trigger.old; } private static Map states; private static Map cities; protected override void beforeInsert() { for (Campaign campaign : newList) { if (campaign.RecordTypeid != (ID) system.label.RecordType_CampaignService) continue; campaign.StartDate__c = campaign.CeremonyDate__c == null ? campaign.Lesson1Date__c : campaign.CeremonyDate__c; } } protected override void beforeUpdate() { beforeDateModifyDecide(); CampaignToContact(); // OBPM市场活动联动 add 手动绑定决裁信息时,从决裁上获取信息并写入 start GetInfoFromAdjudication(); // OBPM市场活动联动 add 手动绑定决裁信息时,从决裁上获取信息并写入 end } protected override void afterInsert() { } protected override void afterUpdate(){ sendToComPlat(); } //通过触发器更新操作发送活动信息到智慧医疗 精琢技术 thh 2021-09-23 start public void sendToComPlat() { List qisIdList = new List(); for(Campaign campaign : newList){ Campaign old = oldMap.get(campaign.Id); if(campaign.IF_Submit__c && campaign.IF_Submit__c != old.IF_Submit__c){ qisIdList.add(campaign.Id); } } if(qisIdList.size() > 0){ BatchIF_Log__c iflog = new BatchIF_Log__c(); iflog.Type__c = 'NFM622'; iflog.Log__c = 'callout start\n'; insert iflog; iflog = [Select Id, Name from BatchIF_Log__c where Id = :iflog.Id]; NFM622Controller.callout(iflog.Id, qisIdList); } } //通过触发器更新操作发送活动信息到智慧医疗 精琢技术 thh 2021-09-23 end private void CampaignToContact() { list unApprovedCampaignList = new list(); //list approvedCampaignList = new list(); for (Campaign campaign : NewList) { if (campaign.RecordTypeid != (ID) system.label.RecordType_CampaignService) continue; Campaign old = oldMap.get(campaign.Id); //if (old.Status.equals('申请中') && campaign.Status.equals('公开中')) { // approvedCampaignList.add(campaign); //} else campaign.Status.equals('草案中') || if (campaign.Status.equals('取消')) { unApprovedCampaignList.add(campaign); } } list updateContact = new list(); //if (approvedCampaignList.size() > 0) { // list CampaignMemberlist = // [select id, Contact_ID__c, Campaign__c // from CampaignMember__c // where Campaign__c in: approvedCampaignList]; // for (CampaignMember__c CampaignMember : CampaignMemberlist) { // Contact temContact = new Contact(id = CampaignMember.Contact_ID__c, Campaign__c = CampaignMember.Campaign__c ); // updateContact.add(temContact); // } //} if (unApprovedCampaignList.size() > 0) { list CampaignMemberlist = [select id, Contact_ID__c, Campaign__c from CampaignMember__c where Campaign__c in: unApprovedCampaignList]; for (CampaignMember__c CampaignMember : CampaignMemberlist) { Contact temContact = new Contact(id = CampaignMember.Contact_ID__c, Campaign__c = null); updateContact.add(temContact); } } if (updateContact.size() > 0) { ControllerUtil.updateSObjectContact(updateContact); } } private void beforeDateModifyDecide() { for (Campaign campaign : newList) { if (campaign.RecordTypeid != (ID) system.label.RecordType_CampaignService) continue; Campaign old = oldMap.get(campaign.Id); //服务技师 2018/12/18 Start System.debug(campaign.Status + '____________' + campaign.is_true_or_false__c + '___________' + campaign.is_pass_or_fail__c); if (campaign.Status == '时间修改申请中' && campaign.is_true_or_false__c == true && campaign.is_pass_or_fail__c == 1) { campaign.CeremonyDate_copy__c = null; campaign.CeremonyDate_original__c = null; campaign.Lesson1Date_copy__c = null; campaign.Lesson1Date_original__c = null; campaign.Lesson2Date_copy__c = null; campaign.Lesson2Date_original__c = null; campaign.Lesson3Date_copy__c = null; campaign.Lesson3Date_original__c = null; campaign.Lesson4Date_copy__c = null; campaign.Lesson4Date_original__c = null; campaign.Lesson5Date_copy__c = null; campaign.Lesson5Date_original__c = null; campaign.Lesson6Date_copy__c = null; campaign.Lesson6Date_original__c = null; campaign.Lesson7Date_copy__c = null; campaign.Lesson7Date_original__c = null; campaign.Lesson8Date_copy__c = null; campaign.Lesson8Date_original__c = null; campaign.FinalExamDate_copy__c = null; campaign.FinalExamDate_original__c = null; campaign.Status = '公开中'; campaign.is_true_or_false__c = false; //campaign.is_pass_or_fail__c = 0; //system.debug(campaign.Status); } if (campaign.Status == '时间修改申请中' && campaign.is_true_or_false__c == true && campaign.is_pass_or_fail__c == 2) { campaign.CeremonyDate__c = campaign.CeremonyDate_original__c; campaign.Lesson1Date__c = campaign.Lesson1Date_original__c; campaign.Lesson2Date__c = campaign.Lesson2Date_original__c; campaign.Lesson3Date__c = campaign.Lesson3Date_original__c; campaign.Lesson4Date__c = campaign.Lesson4Date_original__c; campaign.Lesson5Date__c = campaign.Lesson5Date_original__c; campaign.Lesson6Date__c = campaign.Lesson6Date_original__c; campaign.Lesson7Date__c = campaign.Lesson7Date_original__c; campaign.Lesson8Date__c = campaign.Lesson8Date_original__c; campaign.FinalExamDate__c = campaign.FinalExamDate_original__c; campaign.CeremonyDate_copy__c = null; campaign.CeremonyDate_original__c = null; campaign.Lesson1Date_copy__c = null; campaign.Lesson1Date_original__c = null; campaign.Lesson2Date_copy__c = null; campaign.Lesson2Date_original__c = null; campaign.Lesson3Date_copy__c = null; campaign.Lesson3Date_original__c = null; campaign.Lesson4Date_copy__c = null; campaign.Lesson4Date_original__c = null; campaign.Lesson5Date_copy__c = null; campaign.Lesson5Date_original__c = null; campaign.Lesson6Date_copy__c = null; campaign.Lesson6Date_original__c = null; campaign.Lesson7Date_copy__c = null; campaign.Lesson7Date_original__c = null; campaign.Lesson8Date_copy__c = null; campaign.Lesson8Date_original__c = null; campaign.FinalExamDate_copy__c = null; campaign.FinalExamDate_original__c = null; campaign.Status = '公开中'; campaign.is_true_or_false__c = false; //campaign.is_pass_or_fail__c = 0; } campaign.StartDate__c = campaign.CeremonyDate__c == null ? campaign.Lesson1Date__c : campaign.CeremonyDate__c; //system.debug(campaign.Status + '_______1_____' + campaign.is_true_or_false__c + '_______1____' + campaign.is_pass_or_fail__c); // 服务技师 2018/12/18 END } } // OBPM市场活动联动 add 手动绑定决裁信息时,从决裁上获取信息并写入 start public void GetInfoFromAdjudication() { List app_ids = new List(); List cam_ids = new List(); for (Campaign cam : this.newList) { Campaign old_cam = this.oldMap.get(cam.Id); // 会议决裁发生变化且不为空时 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 (app_ids.size() > 0) { List apps = [select Id, MeetingApprovedNo__c, ActivityTypeName__c, ExpectedOlympusAttendance__c, ExpectedHcpAttendance__c, StateMaster__c, CityMaster__c, IsPaidToSponsor__c, SponsorshipCategory__c, ConveningParticipantsNum__c from Application_for_Conference_Adjudication__c where Id in :app_ids]; if (apps != null && apps.size() > 0) { init_state_city(); 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; 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; break; } } } } } } // 初始化省市信息 public static void init_state_city() { if (states == null || states.size() <= 0) { states = new Map(); List 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(); List 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 }