public with sharing class RepairQuoteTrigger { public static void ChangeRepair(List newList, Map newMap, List oldList, Map oldMap) { System.debug('===========> start'); List rqIds = new List(); Map RqMap = new Map(); if (Trigger.isUpdate) { Boolean flag = false; for(Repair_Quotation__c rq : newList){ if(Trigger.isUpdate && rq.ListPrice__c != oldMap.get(rq.id).ListPrice__c){ //rqIds.add(rq.id); flag = true; rqIds.add(rq.id); RqMap.put(rq.id, rq); } } if(flag == false){ return; } for(Repair_Quotation__c rq : newList){ if(Trigger.isUpdate && rq.ListPrice__c != oldMap.get(rq.id).ListPrice__c){ // rqIds.add(rq.id); // RqMap.put(rq.id, rq); } } }else if(Trigger.isInsert){ for(Repair_Quotation__c rq : newList){ rqIds.add(rq.id); RqMap.put(rq.id, rq); } } List RepairUpdateList = new List(); if(rqIds.size() > 0){ //修理的同期中的修理报价de报价金额改变的修理 List RpList = [select id,Repair_Quotation_Id__c from Repair__c where Repair_Quotation_Id__c in :rqIds]; if(RpList.size() > 0){ for(Repair__c rp : RpList){ Repair_Quotation__c Rqa = RqMap.get(rp.Repair_Quotation_Id__c); rp.Repair_Quotation_Price__c = Rqa.ListPrice__c; RepairUpdateList.add(rp); } update RepairUpdateList; } } System.debug('===========> end'); } public static void SendEmailForRentalApproval(List newList, Map newMap, List oldList, Map oldMap) { Set repairIds = new Set(); List repairQuotationList = new List(); for(Repair_Quotation__c rq : newList) { if(Trigger.isUpdate && rq.Rental_Apply_Discount_Status__c != oldMap.get(rq.id).Rental_Apply_Discount_Status__c && rq.Rental_Apply_Discount_Status__c == '批准'){ repairIds.add(rq.Repair__c); repairQuotationList.add(rq); } } if(repairIds.size() > 0){ //查询修理中对应的选择的服务方式和维修中心 Map repairMap = new Map([ select id,On_site_repair__c,work_location_select__c from Repair__c where Id in :repairIds]); List emails = new List(); // 获取Email Template EmailTemplate et = [Select id from EmailTemplate where name = '备品减价申请---批准通过' limit 1]; // Email String userEmail = null; for (Repair_Quotation__c rqTemp :repairQuotationList) { String addToEmail = null; userEmail = rqTemp.RentalApplyDiscountApplyPersonEmail_sys__c; if (!repairMap.isEmpty() && repairMap.containsKey(rqTemp.Repair__c)) { // 服务方式 String siteRepair = repairMap.get(rqTemp.Repair__c).On_site_repair__c; // 维修中心 String workLocation = repairMap.get(rqTemp.Repair__c).work_location_select__c; if (siteRepair == '直送OGZ修理') { // 办事处通知组群设定OGZ addToEmail = System.Label.EmailForRentalApproval_OGZ; } else if (siteRepair == '直送SORC修理') { // 办事处通知组群设定SORC addToEmail = System.Label.EmailForRentalApproval_SORC; } else if (siteRepair == 'RC修理') { if (workLocation == '上海办事处') { // 上海办事处 addToEmail = System.Label.EmailForRentalApproval_RC_SH; } else if (workLocation == '杭州办事处') { // 杭州办事处 + 上海办事处 addToEmail = System.Label.EmailForRentalApproval_RC_HZ + ';' + System.Label.EmailForRentalApproval_RC_SH; } else if (workLocation == '广东办事处') { // 广东办事处 addToEmail = System.Label.EmailForRentalApproval_RC_GZ; } else if (workLocation == '成都办事处') { // 成都办事处 + 广东办事处 addToEmail = System.Label.EmailForRentalApproval_RC_CD + ';' + System.Label.EmailForRentalApproval_RC_GZ; } else if (workLocation == '北京办事处') { // 北京办事处 addToEmail = System.Label.EmailForRentalApproval_RC_BJ; } else if (workLocation == '沈阳办事处') { // 沈阳办事处 addToEmail = System.Label.EmailForRentalApproval_RC_SY; } else if (workLocation == '西安办事处') { // 西安办事处 addToEmail = System.Label.EmailForRentalApproval_RC_XA; } } } if (String.isNotBlank(addToEmail)) { userEmail = userEmail + ';' + addToEmail; } String[] toAddresses = userEmail.split(';'); Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); mail = Messaging.renderStoredEmailTemplate(et.Id, null , rqTemp.Id); mail.setSaveAsActivity(false); mail.setToAddresses(toAddresses); emails.add(mail); } Messaging.sendEmail(emails); } } }