| | |
| | | } |
| | | |
| | | global Database.QueryLocator start(Database.BatchableContext BC) { |
| | | if (Test.isRunningTest()) { |
| | | return Database.getQueryLocator( |
| | | [select Id, Name, Email, Manager.Email from User where isActive = true and (ProfileId = :System.label.ProfileId_2S6 |
| | | or ProfileId = :System.label.ProfileId_2S7 or ProfileId = :System.label.ProfileId_2S8) limit 1] |
| | | ); |
| | | } else { |
| | | return Database.getQueryLocator( |
| | | [select Id, Name, Email, Manager.Email from User where isActive = true and (ProfileId = :System.label.ProfileId_2S6 |
| | | or ProfileId = :System.label.ProfileId_2S7 or ProfileId = :System.label.ProfileId_2S8)] |
| | | ); |
| | | } |
| | | |
| | | return Database.getQueryLocator( |
| | | [SELECT (select userOrGroupId from groupMembers) FROM group WHERE name = '样本盘点小组'] |
| | | ); |
| | | } |
| | | |
| | | global void execute(Database.BatchableContext BC, List<sObject> User) { |
| | | List<User> UserList = User; |
| | | global void execute(Database.BatchableContext BC, List<group> gList) { |
| | | List<String> IdList = new List<String>(); |
| | | if (gList != null && gList.size() > 0) { |
| | | for (Group g : gList) { |
| | | for (GroupMember gm : g.groupMembers) { |
| | | IdList.add(gm.userOrGroupId); |
| | | } |
| | | } |
| | | } |
| | | Date toDate = Date.today(); |
| | | Integer day = Integer.valueOf(toDate.day()); |
| | | if(System.Test.isRunningTest()|| (UserList.size() > 0 && (day == 6 || day == 14))){ |
| | | sendMail(UserList); |
| | | if(System.Test.isRunningTest() || (IdList.size() > 0 && (day == 10 || day == 14))){ |
| | | sendMail(IdList); |
| | | } |
| | | } |
| | | |
| | |
| | | iflog.Log__c += logstr; |
| | | iflog.ErrorLog__c = Errorstr; |
| | | } |
| | | |
| | | insert iflog; |
| | | } |
| | | |
| | | public boolean sendMail(List<User> userList) { |
| | | public boolean sendMail(List<String> IdList) { |
| | | boolean rs = true; |
| | | List<User> userList = [select Id, Name, Email, Manager.Email from User where id IN :IdList]; |
| | | List<Messaging.SingleEmailMessage> sendMails = new List<Messaging.SingleEmailMessage>(); |
| | | for(User user : userList){ |
| | | String title = ''; |
| | | String body = ''; |
| | |
| | | toMailList.add(user.Email); |
| | | //抄送的邮箱 |
| | | List<String> ccMailList = new List<String>(); |
| | | ccMailList.add(user.Manager.Email); |
| | | List<Messaging.SingleEmailMessage> sendMails = new List<Messaging.SingleEmailMessage>(); |
| | | if(user.Manager.Email != null){ |
| | | ccMailList.add(user.Manager.Email); |
| | | } |
| | | Messaging.SingleEmailMessage messageNEW = new Messaging.SingleEmailMessage(); |
| | | messageNEW.subject = title; |
| | | messageNEW.htmlBody = body; |
| | | messageNEW.setCharset('UTF-8'); |
| | | messageNEW.toAddresses = toMailList; |
| | | messageNEW.ccAddresses = ccMailList; |
| | | if(ccMailList.size() > 0){ |
| | | messageNEW.ccAddresses = ccMailList; |
| | | } |
| | | sendMails.add(messageNEW); |
| | | |
| | | Messaging.SendEmailResult[] results = messaging.sendEmail(sendMails); |
| | | for (Integer i = 0; i < results.size(); i++) { |
| | | if (results[i].success == false) { |
| | | system.debug('=====send mail error:' + results[i].errors[0].message); |
| | | result = false; |
| | | Errorstr += 'sendMail error:' + results[i].errors[0].message + '\n'; |
| | | rs = false; |
| | | } |
| | | } |
| | | //在单个事务中,只能调用send方法 10 次。 |
| | | Messaging.SendEmailResult[] results = messaging.sendEmail(sendMails); |
| | | for (Integer i = 0; i < results.size(); i++) { |
| | | if (results[i].success == false) { |
| | | system.debug('=====send mail error:' + results[i].errors[0].message); |
| | | result = false; |
| | | Errorstr += 'sendMail error:' + results[i].errors[0].message + '\n'; |
| | | rs = false; |
| | | } |
| | | } |
| | | return rs; |