/** * @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; } // OBPM市场活动联动 add 手动绑定决裁信息时,从决裁上获取信息并写入 start GetInfoFromAdjudication(); // OBPM市场活动联动 add 手动绑定决裁信息时,从决裁上获取信息并写入 end } 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 != 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); if (String.isNotBlank(cam.Id)) { cam_ids.add(cam.Id); } } } if (app_ids.size() > 0) { List 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 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, Type_of_adjudication_meeting__c from Application_for_Conference_Adjudication__c where Id in :app_ids]; if (apps != null && apps.size() > 0) { List set_cam_num_apps = new List(); 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; // 非赞助会的情况下更新以下内容 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.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; } } } } // OBPM市场活动联动 add 手动绑定决裁信息时,从决裁上获取信息并写入 end }