public without sharing class MaintenanceUpdateProductHandler extends Oly_TriggerHandler { private Map newMap; private Map oldMap; private List newList; private List oldList; public String query; public static Integer FIELDMAX = 200; public MaintenanceUpdateProductHandler() { this.newMap = (Map) Trigger.newMap; this.oldMap = (Map) Trigger.oldMap; this.newList = (List) Trigger.new; this.oldList = (List) Trigger.old; } protected override void beforeUpdate() { beforeUpdateProduct(this.newList); } protected override void afterUpdate() { updateProduct(this.newList); } private void beforeUpdateProduct(List nList){ List mpdIds = new List(); for (Maintenance_Product_Data__c newMpd : nList) { Maintenance_Product_Data__c old = oldMap.get(newMpd.Id); if(newMpd.Status__c=='审批中-服务' && newMpd.Status__c != old.Status__c){ //newMpd.addError('请填写完整价格相关的信息!'); mpdIds.add(newMpd.Id); } } if(mpdIds.size()>0){ List mpddList = [select Id, Name ,ProductsID__c,Maintenance_Product_Data__c,GuranteeType__c,Intra_Trade_Service_RMB__c,Virtual_Contract__c,Intra_Trade_Gurantee_RMB__c,Maintenance_Price_Year__c from Maintenance_Product_Data_Details__c where Maintenance_Product_Data__c in :mpdIds ]; List mpdList = [select Id, Name ,Intra_Trade_Service_RMB_Sum__c,Intra_Trade_Gurantee_RMB_Sum__c,Maintenance_Price_Year_Sum__c from Maintenance_Product_Data__c where id in :mpdIds ]; Boolean isWarning = false; Boolean attachmentSize =false; Boolean attachmentChange = false; String contentWarning = ''; for(Maintenance_Product_Data_Details__c mpdDetails : mpddList){ // 1.2 多年保修类型为服务时,NoDiscount价格不能填写,多年保修计提价格\维修合同报价必须填写; // 1.1 多年保修类型为市场时,NoDiscount价格\多年保修计提价格\维修合同报价必须填写; //Intra_Trade_Service_RMB__c Intra_Trade_Gurantee_RMB__c Maintenance_Price_Year__c if(mpdDetails.GuranteeType__c==null||mpdDetails.GuranteeType__c.length()==0){ if((mpdDetails.Intra_Trade_Service_RMB__c !=null&&mpdDetails.Intra_Trade_Service_RMB__c.format()!='0') ||(mpdDetails.Intra_Trade_Gurantee_RMB__c!=null&&mpdDetails.Intra_Trade_Gurantee_RMB__c.format()!='0') ||(mpdDetails.Maintenance_Price_Year__c !=null&&mpdDetails.Maintenance_Price_Year__c.format() !='0') ){ isWarning = true; contentWarning = 'NoDiscount价格、多年保修计提价格、维修合同报价必须为空!'; } }else{ if(mpdDetails.GuranteeType__c.equals('市场')){ if(mpdDetails.Intra_Trade_Service_RMB__c==null ||mpdDetails.Intra_Trade_Gurantee_RMB__c==null ||mpdDetails.Maintenance_Price_Year__c==null){ isWarning = true; contentWarning = '必须填写NoDiscount价格、多年保修计提价格以及维修合同报价!'; } } if(mpdDetails.GuranteeType__c.equals('服务')){ if((mpdDetails.Intra_Trade_Service_RMB__c !=null&&mpdDetails.Intra_Trade_Service_RMB__c.format() !='0') ||mpdDetails.Intra_Trade_Gurantee_RMB__c==null ||mpdDetails.Maintenance_Price_Year__c==null){ isWarning = true; if(mpdDetails.Intra_Trade_Gurantee_RMB__c==null ||mpdDetails.Maintenance_Price_Year__c==null){ contentWarning = '必须填写多年保修计提价格、维修合同报价!'; } if(mpdDetails.Intra_Trade_Service_RMB__c !=null&&mpdDetails.Intra_Trade_Service_RMB__c.format() !='0'){ contentWarning = 'NoDiscount价格必须为空!'; } } } } } for(String id:mpdIds){ List attachmentinfo = [SELECT Id, Name,OwnerId FROM Attachment WHERE parentid =:mpdIds ]; if(attachmentinfo.size() ==0){ attachmentSize = true; } } for(Maintenance_Product_Data__c mpdChange : mpdList){ if(mpdChange.Intra_Trade_Service_RMB_Sum__c>0 || mpdChange.Intra_Trade_Gurantee_RMB_Sum__c>0 ||mpdChange.Maintenance_Price_Year_Sum__c>0){ attachmentChange = true; } } for (Maintenance_Product_Data__c newMpd : nList) { Maintenance_Product_Data__c old = oldMap.get(newMpd.Id); if(newMpd.Status__c=='审批中-服务'&& newMpd.Status__c != old.Status__c && isWarning){ newMpd.addError(contentWarning); } if(newMpd.Status__c=='审批中-服务'&& newMpd.Status__c != old.Status__c && attachmentSize&&attachmentChange){ newMpd.addError('还没有上传附件,请上传附件!'); } } } } private void updateProduct(List nList){ List mpdId = new List(); List EmailMPD = new List(); for (Maintenance_Product_Data__c newMpd : nList) { Maintenance_Product_Data__c old = oldMap.get(newMpd.Id); if(newMpd.Status__c=='完成'&&newMpd.Status__c != old.Status__c){ mpdId.add(newMpd.Id); EmailMPD.add(newMpd); } } if(mpdId.size()>0){ String sqlTail = '(\''; for(Integer i = 0 ; i< mpdId.size();i++){ if(i mpdList = Database.query(query); List product2Update = new List(); //Map mpdId = new Map(); List mpdDetailsStatus = new List(); for(Maintenance_Product_Data_Details__c mpdDetails : mpdList){ Maintenance_Product_Data_Details__c pdd = new Maintenance_Product_Data_Details__c(); Product2 product2 = new Product2(); //mpdId.put(mpdDetails.Maintenance_Product_Data__c,mpdDetails.Maintenance_Product_Data__c); pdd.Id = mpdDetails.Id; if(mpdDetails.RecordType.DeveloperName.equals('GuranteeMain')||mpdDetails.RecordType.DeveloperName.equals('GuranteeMain')){ pdd.Intra_Trade_Service_RMB_DateFrom__c = Date.toDay(); pdd.Intra_Trade_Gurantee_RMB_DateFrom__c = Date.toDay(); } pdd.Status__c = '已更新'; mpdDetailsStatus.add(pdd); //五个记录类型 if(mpdDetails.RecordType.DeveloperName.equals('ImportantProduct')){ product2.Id = mpdDetails.ProductsID__c; //product2.Tier1_Category__c = mpdDetails.Tier1_Category__c; product2.ENG_DeaerProFlag__c = mpdDetails.ENG_DeaerProFlag__c; product2.Dealer_special_Object__c = mpdDetails.Dealer_special_Object__c; product2.Important_Endopartner_product__c = mpdDetails.Important_Endopartner_product__c; //需要做处理 //MaintenanceProductDataDetails SS_Batch_Column_Mapping__c mpdMapping = SS_Batch_Column_Mapping__c.getValues('MaintenanceProductDataDetails'); Map tempImportantRroduct = new Map(); for (Integer i = 1; i <= FIELDMAX; i++) { String lpadI = ('00' + i).right(3); String fromColumn = 'From_Column_' + lpadI + '__c'; String apiStr = String.valueOf(mpdMapping.get(fromColumn)); if (String.isBlank(apiStr) == false) { String ssColumn = 'SS_Column_' + lpadI + '__c'; String ssApiStr = String.valueOf(mpdMapping.get(ssColumn)); tempImportantRroduct.put(ssApiStr,apiStr); } } String keyOld; String old_BF; String old_ENT; String old_ET; String old_GI; String old_GS; String old_GYN; String old_OTH; String old_URO; String keyNew; String new_BF; String new_ENT; String new_ET; String new_GI; String new_GS; String new_GYN; String new_OTH; String new_URO; if(String.isNotBlank(mpdDetails.Key_product_147P_Old__c)){ keyOld = tempImportantRroduct.get(mpdDetails.Key_product_147P_Old__c); if(String.isNotBlank(keyOld)){ old_BF = 'Important_Rroduct_'+keyOld+'BF__c'; old_ENT = 'Important_Rroduct_'+keyOld+'ENT__c'; old_ET = 'Important_Rroduct_'+keyOld+'ET__c'; old_GI = 'Important_Rroduct_'+keyOld+'GI__c'; old_GS = 'Important_Rroduct_'+keyOld+'GS__c'; old_GYN = 'Important_Rroduct_'+keyOld+'GYN__c'; old_OTH = 'Important_Rroduct_'+keyOld+'OTH__c'; old_URO = 'Important_Rroduct_'+keyOld+'URO__c'; } } if(String.isNotBlank(mpdDetails.Key_product_147P__c)){ keyNew = tempImportantRroduct.get(mpdDetails.Key_product_147P__c); System.debug('====keyNew:'+keyNew); new_BF = 'Important_Rroduct_'+keyNew+'BF__c'; new_ENT = 'Important_Rroduct_'+keyNew+'ENT__c'; new_ET = 'Important_Rroduct_'+keyNew+'ET__c'; new_GI = 'Important_Rroduct_'+keyNew+'GI__c'; new_GS = 'Important_Rroduct_'+keyNew+'GS__c'; new_GYN = 'Important_Rroduct_'+keyNew+'GYN__c'; new_OTH = 'Important_Rroduct_'+keyNew+'OTH__c'; new_URO = 'Important_Rroduct_'+keyNew+'URO__c'; } if(String.isNotBlank(mpdDetails.Key_product_147P__c)){ if(mpdDetails.Key_product_147P_Old__c !=null&&!mpdDetails.Key_product_147P__c.equals(mpdDetails.Key_product_147P_Old__c)){ //old的false 新的true if(String.isNotBlank(keyNew)){ product2.put(new_BF,true);product2.put(new_ENT,true); product2.put(new_ET,true);product2.put(new_GI,true); product2.put(new_GS,true);product2.put(new_GYN,true); product2.put(new_OTH,true);product2.put(new_URO,true); } if(String.isNotBlank(keyOld)){ product2.put(old_BF,false);product2.put(old_ENT,false); product2.put(old_ET,false);product2.put(old_GI,false); product2.put(old_GS,false);product2.put(old_GYN,false); product2.put(old_OTH,false);product2.put(old_URO,false); } }else if(mpdDetails.Key_product_147P_Old__c == null){ //old的空只需要新的true System.debug('====keyNew:'+keyNew); if(String.isNotBlank(keyNew)){ product2.put(new_BF,true);product2.put(new_ENT,true); product2.put(new_ET,true);product2.put(new_GI,true); product2.put(new_GS,true);product2.put(new_GYN,true); product2.put(new_OTH,true);product2.put(new_URO,true); } } } else if(String.isNotBlank(mpdDetails.Key_product_147P_Old__c)){ //old的false 新的true if(String.isNotBlank(keyOld)){ product2.put(old_BF,false);product2.put(old_ENT,false); product2.put(old_ET,false);product2.put(old_GI,false); product2.put(old_GS,false);product2.put(old_GYN,false); product2.put(old_OTH,false);product2.put(old_URO,false); } } } if(mpdDetails.RecordType.DeveloperName.equals('GuranteeMain')){ product2.Id = mpdDetails.ProductsID__c; if(mpdDetails.GuranteeType_Old__c !=null&&String.isNotBlank(mpdDetails.GuranteeType_Old__c)){ if(mpdDetails.GuranteeType__c !=null&&!mpdDetails.GuranteeType__c.equals(mpdDetails.GuranteeType_Old__c)){ if(mpdDetails.GuranteeType__c==null||mpdDetails.GuranteeType__c.equals('')){ product2.Extend_new_product_gurantee__c = false;//服务 product2.Extend_new_product_gurantee_MD__c = false; product2.Entend_gurantee_period_MD__c = null; product2.Extend_Gurantee_Start_MD__c = null; product2.Extend_Gurantee_End_MD__c = null; product2.Entend_gurantee_period__c = null; product2.Extend_Gurantee_Start__c = null; product2.Extend_Gurantee_End__c = null; }else{ if(mpdDetails.GuranteeType__c.equals('市场')){ product2.Extend_new_product_gurantee__c = false;//服务 product2.Extend_new_product_gurantee_MD__c = true; product2.Entend_gurantee_period_MD__c = mpdDetails.Entend_gurantee_period__c; product2.Extend_Gurantee_Start_MD__c = mpdDetails.Gurantee_Start_Date__c; product2.Extend_Gurantee_End_MD__c = mpdDetails.Gurantee_End_Date__c; } if(mpdDetails.GuranteeType__c.equals('服务')){ product2.Extend_new_product_gurantee_MD__c = false;//市场 product2.Extend_new_product_gurantee__c = true; product2.Entend_gurantee_period__c = mpdDetails.Entend_gurantee_period__c; product2.Extend_Gurantee_Start__c = mpdDetails.Gurantee_Start_Date__c; product2.Extend_Gurantee_End__c = mpdDetails.Gurantee_End_Date__c; } } }else{ if(mpdDetails.GuranteeType__c==null){ product2.Extend_new_product_gurantee__c = false;//服务 product2.Extend_new_product_gurantee_MD__c = false; product2.Entend_gurantee_period_MD__c = null; product2.Extend_Gurantee_Start_MD__c = null; product2.Extend_Gurantee_End_MD__c = null; product2.Entend_gurantee_period__c = null; product2.Extend_Gurantee_Start__c = null; product2.Extend_Gurantee_End__c = null; }else{ if(mpdDetails.GuranteeType__c.equals('市场')){ if(mpdDetails.Entend_gurantee_period__c != mpdDetails.Entend_gurantee_period_Old__c){product2.Entend_gurantee_period_MD__c = mpdDetails.Entend_gurantee_period__c;} if(mpdDetails.Gurantee_Start_Date__c !=mpdDetails.Gurantee_Start_Date_Old__c ){product2.Extend_Gurantee_Start_MD__c = mpdDetails.Gurantee_Start_Date__c;} if(mpdDetails.Gurantee_End_Date__c != mpdDetails.Gurantee_End_Date_Old__c){product2.Extend_Gurantee_End_MD__c = mpdDetails.Gurantee_End_Date__c; } } if(mpdDetails.GuranteeType__c.equals('服务')){ if(mpdDetails.Entend_gurantee_period__c != mpdDetails.Entend_gurantee_period_Old__c){product2.Entend_gurantee_period__c = mpdDetails.Entend_gurantee_period__c;} if(mpdDetails.Gurantee_Start_Date__c !=mpdDetails.Gurantee_Start_Date_Old__c ){product2.Extend_Gurantee_Start__c = mpdDetails.Gurantee_Start_Date__c;} if(mpdDetails.Gurantee_End_Date__c != mpdDetails.Gurantee_End_Date_Old__c){product2.Extend_Gurantee_End__c = mpdDetails.Gurantee_End_Date__c;} } } } }else{ if(mpdDetails.GuranteeType__c!=null&&mpdDetails.GuranteeType__c.equals('市场')){ product2.Extend_new_product_gurantee__c = false;//服务 product2.Extend_new_product_gurantee_MD__c = true; product2.Entend_gurantee_period_MD__c = mpdDetails.Entend_gurantee_period__c; product2.Extend_Gurantee_Start_MD__c = mpdDetails.Gurantee_Start_Date__c; product2.Extend_Gurantee_End_MD__c = mpdDetails.Gurantee_End_Date__c; } if(mpdDetails.GuranteeType__c !=null&&mpdDetails.GuranteeType__c.equals('服务')){ product2.Extend_new_product_gurantee_MD__c = false;//市场 product2.Extend_new_product_gurantee__c = true; product2.Entend_gurantee_period__c = mpdDetails.Entend_gurantee_period__c; product2.Extend_Gurantee_Start__c = mpdDetails.Gurantee_Start_Date__c; product2.Extend_Gurantee_End__c = mpdDetails.Gurantee_End_Date__c; } } product2.CanNotCancelledGurantee__c = mpdDetails.CanNotCancelledGurantee__c;//20201012 ljh CHAN-BTR67N add //两个价格 //1.NoDiscount价格 //Date dateFrom_Service = mpdDetails.Intra_Trade_Service_RMB_DateFrom__c; Date dateFrom_Service = Date.toDay(); Date dateTo_Service = Date.valueOf(System.Label.dateTo_Service); if(mpdDetails.Intra_Trade_Service_RMB__c==null|| mpdDetails.Intra_Trade_Service_RMB__c.format()=='0'){ product2.Intra_Trade_Service_RMB_Date1__c = null; product2.Intra_Trade_Service_RMB_EndDate1__c = null; }else{ product2.Intra_Trade_Service_RMB_Date1__c = dateFrom_Service; product2.Intra_Trade_Service_RMB_EndDate1__c = dateTo_Service; } product2.Intra_Trade_Service_RMB_1__c = mpdDetails.Intra_Trade_Service_RMB__c; //2.多年保修计提价格 //Date dateFrom_Gurantee = mpdDetails.Intra_Trade_Gurantee_RMB_DateFrom__c; Date dateFrom_Gurantee = Date.toDay(); Date dateTo_Gurantee = Date.valueOf(System.Label.dateTo_Gurantee); if(mpdDetails.Intra_Trade_Gurantee_RMB__c==null || mpdDetails.Intra_Trade_Gurantee_RMB__c.format()=='0'){ product2.Intra_Trade_Gurantee_RMB_Date1__c = null; product2.Intra_Trade_Gurantee_RMB_End_Date1__c = null; }else{ product2.Intra_Trade_Gurantee_RMB_Date1__c = dateFrom_Gurantee; product2.Intra_Trade_Gurantee_RMB_End_Date1__c = dateTo_Gurantee; } product2.Intra_Trade_Gurantee_RMB_1__c = mpdDetails.Intra_Trade_Gurantee_RMB__c; product2.Maintenance_Price_Year__c = mpdDetails.Maintenance_Price_Year__c; //2021/01/19 liying start product2.Virtual_Contract__c = mpdDetails.Virtual_Contract__c; //2021/01/19 liying end } if(mpdDetails.RecordType.DeveloperName.equals('GuranteePrice')){ product2.Id = mpdDetails.ProductsID__c; //2021/01/19 liying start product2.Virtual_Contract__c = mpdDetails.Virtual_Contract__c; //2021/01/19 liying end //两个价格 //1.NoDiscount价格 //Date dateFrom_Service_G = mpdDetails.Intra_Trade_Service_RMB_DateFrom__c; Date dateFrom_Service_G = Date.toDay(); Date dateTo_Service = Date.valueOf(System.Label.dateTo_Service); if(mpdDetails.Intra_Trade_Service_RMB__c==null|| mpdDetails.Intra_Trade_Service_RMB__c.format()=='0'){ product2.Intra_Trade_Service_RMB_Date1__c = null; product2.Intra_Trade_Service_RMB_EndDate1__c = null; }else{ product2.Intra_Trade_Service_RMB_Date1__c = dateFrom_Service_G; product2.Intra_Trade_Service_RMB_EndDate1__c = dateTo_Service; } product2.Intra_Trade_Service_RMB_1__c = mpdDetails.Intra_Trade_Service_RMB__c; //2.多年保修计提价格 //Date dateFrom_Gurantee_G = mpdDetails.Intra_Trade_Gurantee_RMB_DateFrom__c; Date dateFrom_Gurantee_G = Date.toDay(); Date dateTo_Gurantee = Date.valueOf(System.Label.dateTo_Gurantee); if(mpdDetails.Intra_Trade_Gurantee_RMB__c==null || mpdDetails.Intra_Trade_Gurantee_RMB__c.format()=='0'){ product2.Intra_Trade_Gurantee_RMB_Date1__c = null; product2.Intra_Trade_Gurantee_RMB_End_Date1__c = null; }else{ product2.Intra_Trade_Gurantee_RMB_Date1__c = dateFrom_Gurantee_G; product2.Intra_Trade_Gurantee_RMB_End_Date1__c = dateTo_Gurantee; } product2.Intra_Trade_Gurantee_RMB_1__c = mpdDetails.Intra_Trade_Gurantee_RMB__c; product2.Maintenance_Price_Year__c = mpdDetails.Maintenance_Price_Year__c; } if(mpdDetails.RecordType.DeveloperName.equals('RepairInfo')){ product2.Id = mpdDetails.ProductsID__c; product2.RepairListPriceLevelA__c = mpdDetails.RepairListPriceLevelA__c; product2.RepairListPriceLevelB__c = mpdDetails.RepairListPriceLevelB__c; product2.RepairListPriceLevelC__c = mpdDetails.RepairListPriceLevelC__c; product2.CanRepairAccsessary__c = mpdDetails.CanRepairAccsessary__c; product2.Repair_Product_Code__c = mpdDetails.Repair_Product_Code__c; product2.PartSupplyFinishDate__c = mpdDetails.PartSupplyFinishDate__c; product2.Maintenance_Price_Year__c = mpdDetails.Maintenance_Price_Year__c; //LJPH-C6A3DF 【委托】 【重要】产品主数据中增加服务用产品分类 liuyan 20210831 Star product2.Can_Repair__c = mpdDetails.Can_Repair__c; product2.Service_Category1__c = mpdDetails.Service_Category1__c; product2.Service_Category2__c = mpdDetails.Service_Category2__c; product2.Service_Category3__c = mpdDetails.Service_Category3__c; product2.Service_Category4__c = mpdDetails.Service_Category4__c; product2.Service_Category5__c = mpdDetails.Service_Category5__c; product2.Service_Category6__c = mpdDetails.Service_Category6__c; product2.Service_Category7__c = mpdDetails.Service_Category7__c; //LJPH-C6A3DF 【委托】 【重要】产品主数据中增加服务用产品分类 liuyan 20210831 Star } if(mpdDetails.RecordType.DeveloperName.equals('EquipmentInfo')){ product2.Id = mpdDetails.ProductsID__c; product2.Asset_loaner_category__c = mpdDetails.Asset_loaner_category__c; product2.Special_Model__c = mpdDetails.Special_Model__c; product2.Fixture_Model_No__c = mpdDetails.Fixture_Model_No__c; product2.Packing_list_Fixture__c = mpdDetails.Packing_list_Fixture__c; product2.Default_Fixture_Arrival_Process__c = mpdDetails.Default_Fixture_Arrival_Process__c; product2.Default_Fixture_Arrival_Product__c = mpdDetails.Default_Fixture_Arrival_Product__c; } //跟新标识 product2.IsFromSAP__c = true; product2Update.add(product2); } if(product2Update.size()>0 && product2Update !=null ){ Database.SaveResult[] lsr = Database.update(product2Update, false); Boolean flag = true; for (Integer tIdx = 0; tIdx < lsr.size(); tIdx++) { Database.SaveResult sr = lsr[tIdx]; System.debug('sr.isSuccess:' + sr.isSuccess()); if (!sr.isSuccess()) { Database.Error emsg = sr.getErrors()[0]; flag = false; } } if(flag){ update mpdDetailsStatus; } } //------------------------- //发送邮件 sendMailtoComplete(EmailMPD); } } private static List getEmail(String label){ List toEmailList = new List(); String query = 'select id , Email from user where id in ('; query += label.replaceall('\'','\\\'') +')'; system.debug('===test:'+query); List tempUserList = Database.Query(query); for (user toUser : tempUserList) { if (!String.isBlank(toUser.Email)) { toEmailList.add(toUser.Email); } } return toEmailList; } private static boolean sendMailtoComplete(list EmailMPD){ boolean rs = true; List sendMails = new List(); Messaging.SingleEmailMessage messageNEW = new Messaging.SingleEmailMessage(); String ImportantProduct = Schema.SObjectType.Maintenance_Product_Data__c.getRecordTypeInfosByDeveloperName().get('ImportantProduct').getRecordTypeId(); String GuranteeMain = Schema.SObjectType.Maintenance_Product_Data__c.getRecordTypeInfosByDeveloperName().get('GuranteeMain').getRecordTypeId(); String GuranteePrice = Schema.SObjectType.Maintenance_Product_Data__c.getRecordTypeInfosByDeveloperName().get('GuranteePrice').getRecordTypeId(); String RepairInfo = Schema.SObjectType.Maintenance_Product_Data__c.getRecordTypeInfosByDeveloperName().get('RepairInfo').getRecordTypeId(); String EquipmentInfo = Schema.SObjectType.Maintenance_Product_Data__c.getRecordTypeInfosByDeveloperName().get('EquipmentInfo').getRecordTypeId(); String profileId = UserInfo.getProfileId();//18位 for (Maintenance_Product_Data__c mpdEmail:EmailMPD) { String title = ''; String body = ''; List toMailsList = new List(); String ApplyPersion = '\''+mpdEmail.ApplyPersion__c+'\'';//申请人 String BuchangApprovalRecommend = '\''+mpdEmail.BuchangApprovalRecommend__c+'\'';//部长推广 //重点产品 重点产品+基础2+基础3 if(mpdEmail.RecordTypeId.equals(ImportantProduct)){ String label01 = ApplyPersion+','+BuchangApprovalRecommend+','+System.Label.Maintenance_ImportantProduct; label01 +=','+System.Label.Maintenance_base02+','+System.Label.Maintenance_base03; toMailsList.addall(getEmail(label01)); } //多年保主数据 基础1+基础3 if(mpdEmail.RecordTypeId.equals(GuranteeMain)){ String label02 = ApplyPersion+','+BuchangApprovalRecommend+','+System.Label.Maintenance_base01+','+System.Label.Maintenance_base03; //String label02_2 = ApplyPersion+','+BuchangApprovalRecommend+','+System.Label.Maintenance_base01+','+System.Label.Maintenance_base03; //if(UserInfo.getUserId().equals('00510000002ZJQTAA4')){ toMailsList.addall(getEmail(label02)); //} //if(UserInfo.getUserId().equals('00510000007cXA9AAM')){ //toMailsList.addall(getEmail(label02_2)); //} } //多年保价格 基础1+基础3+多年保价格 if(mpdEmail.RecordTypeId.equals(GuranteePrice)){ String label03 = ApplyPersion+','+BuchangApprovalRecommend+','+System.Label.Maintenance_GuranteePrice; //label03 +=','+System.Label.Maintenance_base01+','+System.Label.Maintenance_base02; label03 +=','+System.Label.Maintenance_base01+','+System.Label.Maintenance_base03; toMailsList.addall(getEmail(label03)); } //修理 (申请人、部长)简档 if(mpdEmail.RecordTypeId.equals(RepairInfo)){ String label04_1 = System.Label.Maintenance_RepairInfo01; String label04_2 = System.Label.Maintenance_RepairInfo02; if(label04_1.contains(mpdEmail.ApplyPersion__c)){ label04_1 = ApplyPersion+','+BuchangApprovalRecommend+','+System.Label.Maintenance_RepairInfo01; toMailsList.addall(getEmail(label04_1)); } if(label04_2.contains(mpdEmail.ApplyPersion__c)){ label04_2 = ApplyPersion+','+BuchangApprovalRecommend+','+System.Label.Maintenance_RepairInfo02; toMailsList.addall(getEmail(label04_2)); } } //备品 (申请人、部长) if(mpdEmail.RecordTypeId.equals(EquipmentInfo)){ String label05 = ApplyPersion+','+BuchangApprovalRecommend+','+System.Label.Maintenance_EquipmentInfo; toMailsList.addall(getEmail(label05)); } title = '产品主数据维护审批申请已批准'; body += '以下产品主数据维护审批申请已批准,请了解。'; body += '
'; body += '
'; body += '产品维护单链接:'; body += '' + URL.getSalesforceBaseUrl().toExternalForm() + '/apex/MaintenanceProductData?id=' + mpdEmail.id + '
'; body += '
'; body += '
'; body += '谢谢!'; messageNEW = new Messaging.SingleEmailMessage(); messageNEW.setSubject(title); messageNEW.setHtmlBody(body); messageNEW.setCharset('UTF-8'); messageNEW.setToAddresses(toMailsList); List toCcMailsList = new List(); toCcMailsList.add('olympus@prec-tech.com'); messageNEW.setCcAddresses(toCcMailsList); sendMails.add(messageNEW); } system.debug('sendMailtoComplete:' + sendMails); if (sendMails.size() > 0) { // Messaging.Email[] allMails = new Messaging.Email[]{}; for(Integer j = 0; j < sendMails.size(); j++) { allMails.add(sendMails.get(j)); } system.debug('allMails:'+allMails); //Messaging.sendEmail(allMails); Messaging.SendEmailResult[] results = Messaging.sendEmail(allMails); for (Integer i = 0; i < results.size(); i++) { if (results[i].success == false) { system.debug('=====send mail error:' + results[i].errors[0].message); rs = false; } } } return rs; } }