高章伟
2022-02-24 2aa8da8af66aa8ae00f25831aed6bb0364176e7b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
public class NFM301SendEmail {
    // @future (callout=true)
    // public static void sendEmailOnNFM301(List<ReceivingNote__c> rectivingNote,List<ReceivingNoteSummary__c> rectivingNoteSum,List<ReceivingNoteDetail__c> rectivingNoteDet,List<Asset> assetY,List<Asset> assetN) {
    public static void sendEmailOnNFM301(List<String> rectivingNoteId,List<String> rectivingNoteSumId,List<String> rectivingNoteDetId,List<String> assetYId,List<String> assetNId) {
        // 子表单符合条件的List集合
        // 查询所有的有效信息
        List<ReceivingNote__c> rectivingNote = [select id,DateOfDelivery__c,Sales_order_number__c,Managment_Code__c from ReceivingNote__c where id = :rectivingNoteId];
        List<ReceivingNoteSummary__c> rectivingNoteSum = [select id,Product_Serial_No__c from ReceivingNoteSummary__c where id = :rectivingNoteSumId ];
        List<ReceivingNoteDetail__c> rectivingNoteDet = [select id,Product_Serial_No__c from ReceivingNoteDetail__c where id = :rectivingNoteDetId];
        List<Asset> assetY = [select id,Product_Serial_No__c from Asset where id = :assetYId];
        List<Asset> assetN = [select id,Product_Serial_No__c from Asset where id = :assetNId];
        // 邮件List集合
        Messaging.SingleEmailMessage[] theEmails = new Messaging.SingleEmailMessage[]{};
        String emailBody = '';
        // 收货清单
        if(rectivingNote.size() > 0){
            emailBody += '收货清单:<br/>';
            for(ReceivingNote__c recenote :rectivingNote){
                emailBody += '&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspWaring!&nbsp订单编号('+recenote.Sales_order_number__c+')+发货日期('+recenote.DateOfDelivery__c.format().replace('/', '')+')已存在。不处理收货清单。<br/>';
            }
        }
        // 收货清单配套一览
        if(rectivingNoteSum.size() > 0){
            emailBody += '收货清单一览:<br/>';
            for(ReceivingNoteSummary__c recenotesum :rectivingNoteSum){
                emailBody += '&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspWaring!&nbsp'+recenotesum.Product_Serial_No__c+'已存在。不处理收货清单一览。<br/>';
            }
        }
        // 收货清单配套一览明细
        if(rectivingNoteDet.size() > 0){
            emailBody += '收货清单一览明细:<br/>';
            for(ReceivingNoteDetail__c recenotedet :rectivingNoteDet){
                emailBody += '&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspWaring!&nbsp'+recenotedet.Product_Serial_No__c+'已存在。不处理收货清单一览明细。<br/>';
            }
        }
        // 保有设备
        if(assetY.size() > 0 || assetN.size() > 0){
            emailBody += '保有设备:<br/>';
            // emailBody += '&nbsp&nbsp&nbsp&nbspProcessType(处理方式)=1:新建的时候,<br/>';
            if(assetY.size() > 0){
                // emailBody += '&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp收货清单一览明细的收货状态(RND_Status__c)=“待收货”的时候,更新<br/>';
                for(Asset yasset :assetY){
                    emailBody += '&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspWaring!&nbsp'+yasset.Product_Serial_No__c+'已存在“待数据确认”的设备。更新保有设备('+yasset.Id+')。<br/>';
                }
            }
            if(assetN.size() > 0){
                // emailBody += '&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp收货清单一览明细的收货状态(RND_Status__c)<>“待收货”的时候,不更新<br/>';
                for(Asset nasset :assetN){
                    emailBody += '&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspWaring!&nbsp'+nasset.Product_Serial_No__c+'已存在不是“待数据确认”的设备。不处理保有设备。<br/>';
                }
            }
            
        }
        // emailBody += '</span>';
        // 发件人
        List<User> userList = [select id,email from User where name = '精琢 技术'];
        List<String> emailList = new List<String>();
        for(User usr : userList){
            emailList.add(usr.Email);
        }
        emailList.add('IT_SFDC@olympus.com.cn');
        // emailList.add('jhtaizxt@163.com');
        Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
        // mail.setToAddresses(new List<string> {'1666755024@qq.com','jhtaizxt@163.com'});
        mail.setToAddresses(emailList);
        mail.setSenderDisplayName('NFM301更新邮件');
        mail.setSubject('NFM301更新邮件');
        mail.setHtmlBody(emailBody);
        theEmails.add(mail);
        // for(Customer__c atr : atrList) {
        //     // 自定义html邮件模版
        //     String emailBody = '<span style="display: inline-block; width:28px;"></span>尊敬的'+atr.VipLeve__c +':'+ atr.Name + ':</br>您好: '+'电影《'+move.Name+'》将在'+move.Release_time__c+'在本电影院上映,欢迎来本电影院观看';
        //     Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
        //     mail.setToAddresses(new List<string> {atr.Email__c});
        //     mail.setSenderDisplayName('某某电影院');
        //     mail.setSubject('观影推送');
        //     mail.setHtmlBody(emailBody);
        //     theEmails.add(mail);
 
        // }
 
        Messaging.Email[] allMails = new Messaging.Email[]{};
        for(Integer j = 0; j < theEmails.size(); j++) {
            allMails.add(theEmails.get(j));
        }
        // Messaging.sendEmail(allMails);
 
        // 打印错误信息
        // Messaging.SendEmailResult[] results = Messaging.sendEmail(allMails);
        // Messaging.SendEmailError[] errors = new Messaging.SendEmailError[]{};
        // String emailErrorReport = '';
        // for(Messaging.SendEmailResult currentResult : results) {
        //     errors = currentResult.getErrors();
        //     if(null != errors) {
        //         for(Messaging.SendEmailError currentError : errors) {
        //             emailErrorReport = emailErrorReport + ' (' + currentError.getStatusCode() + ') ' + currentError.getMessage();
        //             System.debug(emailErrorReport);
        //         }
        //     }
        // }
        System.debug('===========SUCCESS'); 
    }
    
}