From 1312ba82d4c880bdb5357d28e0d4af5b285f610f Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期四, 10 三月 2022 15:54:39 +0800
Subject: [PATCH] 最近一月修改内容

---
 force-app/main/default/classes/InventorySendMailBatch.cls |   62 ++++++++++++++++---------------
 1 files changed, 32 insertions(+), 30 deletions(-)

diff --git a/force-app/main/default/classes/InventorySendMailBatch.cls b/force-app/main/default/classes/InventorySendMailBatch.cls
index 85b0129..0ab9959 100644
--- a/force-app/main/default/classes/InventorySendMailBatch.cls
+++ b/force-app/main/default/classes/InventorySendMailBatch.cls
@@ -10,26 +10,24 @@
     }
 
     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);
         }	
     }
 
@@ -62,12 +60,13 @@
 			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 = '';
@@ -85,24 +84,27 @@
 			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;
-				}
+		}
+		//鍦ㄥ崟涓簨鍔′腑锛屽彧鑳借皟鐢╯end鏂规硶 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;

--
Gitblit v1.9.1