高章伟
2022-02-18 650847118307a1c9ae0ada15b7c69bbf5792c54c
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
public without sharing class SendEmailController {
 
    public Mail_Merge__c mail{get; set;}
 
    public String id{get;set;}
 
    public String openType{get;set;}
 
    public String handleType{get;set;}
 
    public String errorMessage{get;set;}
 
    public Integer lineNum{get;set;}
 
    public String fileId{get;set;}
 
    public String type{get;set;}
 
    public String typeid{get;set;}
 
    public Integer allFileSize{get;set;}
 
    public Attachment attachment{get;set;}
 
    public List<Attachment> attachmentList{get;set;}
 
    //SWO_Email_Member__c 这个对象只是为了生成页面上的人员明细行
    // public List<SWO_Email_Member__c> lineDataList_new{get;set;}
    public List<MemberLine> memberLineDatas{get;set;}
    //用于接收人员查找页面查找返回的数据
    public String memberName{get;set;}
    //用于接收人员查找页面查找返回的数据
    public String memberEmail{get;set;}
    //用于接收人员查找页面查找返回的数据
    public String memberId{get;set;}
 
    public String baseUrl {get;set;}
 
    public String name {get;set;}
 
    public Boolean isOnClick{get;set;}
 
 
    public List<String> toAddresses ;
    public List<String> ccAddresses ;
    public List<String> bccAddresses ;
 
    public SendEmailController() {
        id = System.currentPageReference().getParameters().get('id');
        type = System.currentPageReference().getParameters().get('type');
        typeid = System.currentPageReference().getParameters().get('typeid');
        openType = System.currentPageReference().getParameters().get('openType');
    }
 
    public SendEmailController(ApexPages.StandardController stdController) {
        id = System.currentPageReference().getParameters().get('id');
        type = System.currentPageReference().getParameters().get('type');
        typeid = System.currentPageReference().getParameters().get('typeid');
        openType = System.currentPageReference().getParameters().get('openType');
    }
 
    public void init(){
        //URL获取
        baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
        String path = URL.getCurrentRequestUrl().getPath();
        if (path.indexOf('/apex') > 0) {
            baseUrl += path.substring(0,path.indexOf('/apex'));
        } else if (path.indexOf('production/') > 0) {
            baseUrl += '/production';
        }
 
 
        attachment = new Attachment();
        mail = new Mail_Merge__c();
        mail.RECORD__c = typeid;
        mail.RECORD_TYPE__c = type;
        memberLineDatas = new List<MemberLine>();
        if(id == null){
            isOnClick = false;
            mail.FROM__c = UserInfo.getUserEmail();
            mail.TYPE__c = 'send';        
            MemberLine member = new MemberLine();
            member.lineNum = 0;
            member.to = true;
            memberLineDatas.add(member);
            // SWO不是批准后状态不能发送邮件
            if ('Quotes'.equals(mail.RECORD_TYPE__c)) {
                List<Quotes__c> quotesList = new List<Quotes__c>();
                quotesList = [SELECT  Id, Name, BILLING_SCHEDULE__c, BILL_TO__c, SHIP_TO__c, BILL_TO_SELECT__c,SWOStatusMark__c  FROM Quotes__c WHERE Id = :typeid];
                
                if (quotesList.size() > 0 ) {
                    if (quotesList[0].SWOStatusMark__c < 2) {
                        isOnClick = true;
                    }    
                }
            }
        }else{
            mail = [select id,send__c,MESSAGE__c,SUBJECT__c,TYPE__c,FROM__c,DATE__c,RECIPIENT__c,CC__c,BCC__c,RECORD__c,RECORD_TYPE__c,toName__c,ccName__c,bccName__c,ALL_MEMBER__c,ALL_MEMBER_NAME__c,ALL_MEMBER_TYPE__c,EMAIL_SENT__c,SWO__c,CaseF__c,Quotes__c from Mail_Merge__c where id =:id];
            //mail.TYPE__c == 'reply' 邮件为回复邮件 或者是系统自动发送的邮件
            //EMAIL_SENT__c =='YES' 邮件已发送
            if(mail.TYPE__c == 'reply' || mail.EMAIL_SENT__c =='YES'){
                //isOnClick = true; 在邮件页面所有的按钮都不可点击
                isOnClick = true;
            }
            type = mail.RECORD_TYPE__c;
            if(mail.RECORD_TYPE__c == 'SWO') typeid = mail.SWO__c;
            if(mail.RECORD_TYPE__c == 'Case') typeid = mail.CaseF__c;
            if(mail.RECORD_TYPE__c == 'Quotes') typeid = mail.Quotes__c;
            mail.RECORD__c = typeid;
            typeid = mail.RECORD__c;
            List<String> allEmails = String.isNotBlank(mail.ALL_MEMBER__c)?mail.ALL_MEMBER__c.split(';'):new List<String>();
            List<String> allName = String.isNotBlank(mail.ALL_MEMBER_NAME__c)?mail.ALL_MEMBER_NAME__c.split(';'):new List<String>();
            List<String> allType = String.isNotBlank(mail.ALL_MEMBER_TYPE__c)?mail.ALL_MEMBER_TYPE__c.split(';'):new List<String>();
            
            if(String.isNotBlank(openType) && openType == 'Reply' && mail.EMAIL_SENT__c == 'YES'){
                if(mail.EMAIL_SENT__c == 'YES' || mail.TYPE__c == 'reply'){
                    mail.Id = null;
                    mail.EMAIL_SENT__c = 'NO';
                }
                mail.TYPE__c = 'send';
                isOnClick = false;
                //mail.DATE__c = Datetime.now();
                if(String.isNotBlank(UserInfo.getUserEmail()) && !UserInfo.getUserEmail().equals(mail.FROM__c)){
                    MemberLine member_line = new MemberLine();
                    member_line.emailAddress = mail.FROM__c;
                    member_line.name = '';
                    member_line.to = true;
                    member_line.cc = false;
                    member_line.bcc = false;
                    member_line.lineNum = 0;
                    memberLineDatas.add(member_line);
                }
                isOnClick = false;
                String mailToAddressName = '';
                String mailCcAdressName = '';
                if(allEmails.size() != 0){
                    for(Integer i = 0 ; i<allEmails.size() ; i++){
                        if(allType[i] == 'to'){
                            mailToAddressName += allEmails[i]+';';
                        }
                        if(allType[i] == 'cc'){
                            mailCcAdressName += allEmails[i]+';';
                        }
                    }
                }
                String replyEmailHead = '';
                replyEmailHead    = '\n\n\n\n';
                replyEmailHead    += '-------------邮件原件--------------\n';
                replyEmailHead    += '发件人:' + mail.FROM__c + ';\n';
                replyEmailHead    += '发件时间:' + mail.DATE__c.addHours(8) + ';\n';
                replyEmailHead    += '收件人:' + mailToAddressName + '\n';
                replyEmailHead    += '抄送:' + mailCcAdressName + '\n';
                replyEmailHead    += '主题:' + mail.SUBJECT__c + ';\n\n';
                mail.MESSAGE__c   = replyEmailHead+(String.isNotBlank(mail.MESSAGE__c)?mail.MESSAGE__c:'');
                
                if(String.isNotBlank(mail.SUBJECT__c) && !mail.SUBJECT__c.replaceAll(' ','').contains('回复')){
                    mail.SUBJECT__c = '回复:'+mail.SUBJECT__c;
                }
            }
 
            if(allEmails.size() != 0){
                for(Integer i = 0 ; i<allEmails.size() ; i++){
                    MemberLine member_line = new MemberLine();
                    member_line.emailAddress = allEmails[i];
                    if(String.isNotBlank(openType) && openType == 'Reply'){
                        if(allEmails[i].equals(UserInfo.getUserEmail())){
                            continue;
                        }
                    }
                    //拆分name时 如果是拆分出“-”,则name为空
                    member_line.name = allName[i]=='-'?'':allName[i];
                    if(allType[i] == 'to'){
                        member_line.to = true;
                        member_line.cc = false;
                        member_line.bcc = false;
                    }
                    if(allType[i] == 'cc'){
                        member_line.to = false;
                        member_line.cc = true;
                        member_line.bcc = false;
                    }
                    if(allType[i] == 'bcc'){
                        member_line.to = false;
                        member_line.cc = false;
                        member_line.bcc = true;
                    }
                    member_line.lineNum = i+memberLineDatas.size();
                    memberLineDatas.add(member_line);
                }
            }else{
                 /*MemberLine member_line = new MemberLine();
                 member_line.lineNum = 0;
                 member_line.to = true;
                 memberLineDatas.add(member_line);*/
                 addLine();
            }
            attachmentList = [select Id,Name,CreatedDate,BodyLength,Body from Attachment where ParentId=:id];
            /*if(String.isNotBlank(openType) && openType == 'Reply'){
                attachmentList.clear();
            }*/
        }
        mail.DATE__c = Datetime.now();
        mail.FROM__c = UserInfo.getUserEmail();
    }
 
    public PageReference SendEmail(){
        save();
        // System.debug('进入邮件发送');
        // List<String> toAddresses = new List<String>();
        // List<String> ccAddresses = new List<String>();
        // List<String> bccAddresses = new List<String>();
        // mail.RECIPIENT__c = '';
        // mail.toName__c = '';
        // mail.CC__c = '';
        // mail.ccName__c = '';
        // mail.BCC__c = '';
        // mail.bccName__c = '';
        // mail.ALL_MEMBER__c = '';
        // mail.ALL_MEMBER_NAME__c = '';
        // mail.ALL_MEMBER_TYPE__c = '';
        // if(memberLineDatas!=null && memberLineDatas.size()!=0){
        //     System.debug('memberLineDatas--->'+memberLineDatas);
        //     //拼接邮件收件信息
        //     for(MemberLine line : memberLineDatas){
        //         if(String.isNotBlank(line.emailAddress)){
        //             mail.ALL_MEMBER__c = mail.ALL_MEMBER__c + line.emailAddress + ';';
        //             //手动输入邮件地址时 name会空 用-占位保存 用于初始化时拆分
        //             mail.ALL_MEMBER_NAME__c = mail.ALL_MEMBER_NAME__c + (String.isNotBlank(line.name) ? line.name : '-') + ';';
        //             if(line.to){
        //                 if(String.isNotBlank(line.emailAddress)){
        //                     toAddresses.add(line.emailAddress);
        //                     mail.RECIPIENT__c = mail.RECIPIENT__c + line.emailAddress + ';';
        //                     mail.toName__c = mail.toName__c + (String.isNotBlank(line.name) ? line.name : line.emailAddress) + ';';
        //                     mail.ALL_MEMBER_TYPE__c = mail.ALL_MEMBER_TYPE__c + 'to;';
        //                 }
        //             }
        //             if(line.cc){
        //                 if(String.isNotBlank(line.emailAddress)){
        //                     ccAddresses.add(line.emailAddress);
        //                     mail.CC__c = mail.CC__c + line.emailAddress + ';';
        //                     mail.ccName__c = mail.ccName__c + (String.isNotBlank(line.name) ? line.name : line.emailAddress) + ';';
        //                     mail.ALL_MEMBER_TYPE__c = mail.ALL_MEMBER_TYPE__c + 'cc;';
        //                 }
        //             }
        //             if(line.bcc){
        //                 if(String.isNotBlank(line.emailAddress)){
        //                     bccAddresses.add(line.emailAddress);
        //                     mail.BCC__c = mail.BCC__c + line.emailAddress + ';';
        //                     mail.bccName__c = mail.bccName__c + (String.isNotBlank(line.name) ? line.name : line.emailAddress) + ';';
        //                     mail.ALL_MEMBER_TYPE__c = mail.ALL_MEMBER_TYPE__c + 'bcc;';
        //                 }
        //             }
        //         }
        //     }
        // }
        // if('SWO'.equals(mail.RECORD_TYPE__c)){
        //     mail.SWO__c = mail.RECORD__c;
        //     SWO__c swo = [select Id,Name from SWO__c where Id=:mail.RECORD__c];
        //     name = 'SWO:'+swo.Name;
        // }
        // if('Case'.equals(mail.RECORD_TYPE__c)){
        //     mail.CaseF__c = mail.RECORD__c;
        //     User_FaultInfo__c caseInfo = [select Id,Name from User_FaultInfo__c where Id=:mail.RECORD__c];
        //     name = 'Case:'+caseInfo.Name;
        // }
        // if('Quotes'.equals(mail.RECORD_TYPE__c)){
        //     mail.Quotes__c = mail.RECORD__c;
        //     Quotes__c quotes = [select Id,Name from Quotes__c where Id=:mail.RECORD__c];
        //     name = 'Quotes:'+quotes.Name;
        // }
        // //判断是否时点击发送按钮,进入提交方法
        // if(String.isNotBlank(handleType) && !'send'.equals(handleType)){
        //     mail.EMAIL_SENT__c = 'NO';
        //     upsert mail;
        //     id = mail.Id;
        // }
        System.debug('邮件标题mail.subject'+mail.SUBJECT__c);
        System.debug('邮件Name'+mail.toName__c);
        errorMessage = '';
        System.debug('handleType:'+handleType);
        //点击发送按钮,并且邮件接收地址不为空 发送邮件
        if(String.isNotBlank(handleType) && 'send'.equals(handleType)){
            if(toAddresses.size()!=0){
                mail.DATE__c = Datetime.now();
                if(String.isNotBlank(mail.SUBJECT__c) && String.isNotBlank(mail.MESSAGE__c)){
                    //关联信息拼入到标题中供,回复邮件关联使用
                    //mail.SUBJECT__c = mail.SUBJECT__c;
                    mail.Name = mail.SUBJECT__c;
                    mail.SUBJECTCOPY__c = mail.SUBJECT__c + '~' + (name!=null ? name : '');
                    System.debug('标题:'+mail.SUBJECTCOPY__c);
                    Messaging.SingleEmailMessage sendMail = new Messaging.SingleEmailMessage();
                    sendMail.setToAddresses(toAddresses);
                    sendMail.setBccAddresses(bccAddresses);
                    //sendMail.setReplyTo('');
                    sendMail.setSubject(mail.SUBJECTCOPY__c);
                    sendMail.setPlainTextBody(mail.MESSAGE__c);
                    sendMail.setBccSender(false);
                    sendMail.setUseSignature(false);
                    //如果给客户发送报价单SWO需要抓取发送时间 是否抓取时间的标记
                    Boolean isSaveTime = false;
                    if(attachmentList!=null&&attachmentList.size()!=0){
                        List<Messaging.EmailFileAttachment> sendMailFileList = new List<Messaging.EmailFileAttachment>();
                        for(Attachment att : attachmentList){
                            Messaging.EmailFileAttachment sendMailFile = new Messaging.EmailFileAttachment();
                            sendMailFile.setBody(att.Body);
                            sendMailFile.setFileName(att.Name);
                            //报价页面发送邮件,如果包含“报价单”开头的附件则SWO需要抓取当前时间
                            if('Quotes'.equals(mail.RECORD_TYPE__c) && att.Name.startsWith('报价单')){
                                // isSaveTime = true;
                                continue;
                            }
                            sendMailFileList.add(sendMailFile);
                        }
                        if (!isSaveTime && 'Quotes'.equals(mail.RECORD_TYPE__c)) {
                            sendMailFileList.add(SendEmailaddPDF());
                            isSaveTime = true;
                        }
                        sendMail.setFileAttachments(sendMailFileList);
                    } else {
                        List<Messaging.EmailFileAttachment> sendMailFileList = new List<Messaging.EmailFileAttachment>();
                        if ('Quotes'.equals(mail.RECORD_TYPE__c)) {
                            sendMailFileList.add(SendEmailaddPDF());
                            isSaveTime = true;
                        }
                        sendMail.setFileAttachments(sendMailFileList);
                        isSaveTime = true;
                    }
                    //三种邮件客户回复时,回复到不同的邮件服务监听中。
                    if('SWO'.equals(mail.RECORD_TYPE__c)){
                        SWO__c swo = new SWO__c();
                        swo.Id =  mail.RECORD__c;
                        //标记跳过邮件回复监听
                        swo.notSaveEmail__c = true;
                        update swo;
                    }
                    if('Case'.equals(mail.RECORD_TYPE__c)){
                        User_FaultInfo__c caseInfo = new User_FaultInfo__c();
                        caseInfo.Id = mail.RECORD__c;
                        //标记跳过邮件回复监听
                        caseInfo.notSaveEmail__c = true;
                        update caseInfo;
                    }
                    if('Quotes'.equals(mail.RECORD_TYPE__c)){
                        Quotes__c quotes = [select Id,Name,notSaveEmail__c,SWO__c,SWO__r.Quotation_send__c from Quotes__c where Id=:mail.RECORD__c];
                       /* Quotes__c quotes = new Quotes__c();
                        quotes.Id = mail.RECORD__c;*/
                        //标记跳过邮件回复监听
                        quotes.notSaveEmail__c = true;
                        update quotes;
                        if (isSaveTime && String.isNotBlank(quotes.SWO__c) && quotes.SWO__r.Quotation_send__c == null) {
                            SWO__c swo = new SWO__c();
                            swo.Id = quotes.SWO__c;
                            swo.Quotation_send__c = Datetime.now();
                            update swo;
                        }    
                    }
 
                
                    //ccAddresses.add('email@sqtxllncwbyghx9lphlh50gefur2jyyj95io4r968llbumzh7.0t-8aptuaq.cs112.apex.sandbox.salesforce.com');
                    ccAddresses.add(System.label.EmailComeBackListen);
                    ccAddresses.add('dai_Prectech@olympus.com.cn');
                    ccAddresses.add('Xin_Prectech@olympus.com.cn');
 
                    sendMail.setCcAddresses(ccAddresses);
                    system.debug('=====sendMail---->'+sendMail);
                    Messaging.SendEmailResult[] result_list = Messaging.sendEmail(new Messaging.SingleEmailMessage[] { sendMail });
                    for (Integer i = 0; i < result_list.size(); i++) {
                        if (result_list[i].success == true ) {
                            system.debug('=====send mail success');
                        } else {
                            system.debug('=====send mail error:' + result_list[i].errors[0].message);
                        }
                    }
                    mail.EMAIL_SENT__c = 'YES';
                    upsert mail;
                    // 返回点击邮件页面
                    PageReference ref = new Pagereference('/'+mail.RECORD__c+'?type=mail');
                    ref.setRedirect(true);
                    return ref;
                }else{
                    errorMessage='邮件标题和信息不可为空!';
                }
            }else{
                errorMessage='必须至少有一个收件人!';
            }
        }
        return null;
    }
 
    public void save() {
        toAddresses = new List<String>();
        ccAddresses = new List<String>();
        bccAddresses = new List<String>();
 
        // System.debug('进入邮件发送');
        // List<String> toAddresses = new List<String>();
        // List<String> ccAddresses = new List<String>();
        // List<String> bccAddresses = new List<String>();
        mail.RECIPIENT__c = '';
        mail.toName__c = '';
        mail.CC__c = '';
        mail.ccName__c = '';
        mail.BCC__c = '';
        mail.bccName__c = '';
        mail.ALL_MEMBER__c = '';
        mail.ALL_MEMBER_NAME__c = '';
        mail.ALL_MEMBER_TYPE__c = '';
        if(memberLineDatas!=null && memberLineDatas.size()!=0){
            System.debug('memberLineDatas--->'+memberLineDatas);
            //拼接邮件收件信息
            for(MemberLine line : memberLineDatas){
                if(String.isNotBlank(line.emailAddress)){
                    mail.ALL_MEMBER__c = mail.ALL_MEMBER__c + line.emailAddress + ';';
                    //手动输入邮件地址时 name会空 用-占位保存 用于初始化时拆分
                    mail.ALL_MEMBER_NAME__c = mail.ALL_MEMBER_NAME__c + (String.isNotBlank(line.name) ? line.name : '-') + ';';
                    if(line.to){
                        if(String.isNotBlank(line.emailAddress)){
                            toAddresses.add(line.emailAddress);
                            mail.RECIPIENT__c = mail.RECIPIENT__c + line.emailAddress + ';';
                            mail.toName__c = mail.toName__c + (String.isNotBlank(line.name) ? line.name : line.emailAddress) + ';';
                            mail.ALL_MEMBER_TYPE__c = mail.ALL_MEMBER_TYPE__c + 'to;';
                        }
                    }
                    if(line.cc){
                        if(String.isNotBlank(line.emailAddress)){
                            ccAddresses.add(line.emailAddress);
                            mail.CC__c = mail.CC__c + line.emailAddress + ';';
                            mail.ccName__c = mail.ccName__c + (String.isNotBlank(line.name) ? line.name : line.emailAddress) + ';';
                            mail.ALL_MEMBER_TYPE__c = mail.ALL_MEMBER_TYPE__c + 'cc;';
                        }
                    }
                    if(line.bcc){
                        if(String.isNotBlank(line.emailAddress)){
                            bccAddresses.add(line.emailAddress);
                            mail.BCC__c = mail.BCC__c + line.emailAddress + ';';
                            mail.bccName__c = mail.bccName__c + (String.isNotBlank(line.name) ? line.name : line.emailAddress) + ';';
                            mail.ALL_MEMBER_TYPE__c = mail.ALL_MEMBER_TYPE__c + 'bcc;';
                        }
                    }
                }
            }
        }
        if('SWO'.equals(mail.RECORD_TYPE__c)){
            mail.SWO__c = mail.RECORD__c;
            SWO__c swo = [select Id,Name from SWO__c where Id=:mail.RECORD__c];
            name = 'SWO:'+swo.Name;
        }
        if('Case'.equals(mail.RECORD_TYPE__c)){
            mail.CaseF__c = mail.RECORD__c;
            User_FaultInfo__c caseInfo = [select Id,Name from User_FaultInfo__c where Id=:mail.RECORD__c];
            name = 'Case:'+caseInfo.Name;
        }
        if('Quotes'.equals(mail.RECORD_TYPE__c)){
            mail.Quotes__c = mail.RECORD__c;
            Quotes__c quotes = [select Id,Name from Quotes__c where Id=:mail.RECORD__c];
            name = 'Quotes:'+quotes.Name;
        }
        //判断是否时点击发送按钮,进入提交方法
        if(String.isNotBlank(handleType) && !'send'.equals(handleType)){
            mail.EMAIL_SENT__c = 'NO';
            upsert mail;
            id = mail.Id;
        }
 
        // return mail;
    }
 
    public void addLine(){
        MemberLine member = new MemberLine();
        member.lineNum = memberLineDatas.size();
        member.memberId = '';
        member.name = '';
        member.emailAddress = '';
        member.to = true;
        member.cc = false;
        member.bcc = false;
        memberLineDatas.add(member);
    }
 
    public void deLine(){
        //保证页面上最少有一行人员信息栏
        if(memberLineDatas.size() == 1){
            memberLineDatas[0].memberId = '';
            memberLineDatas[0].emailAddress = '';
            memberLineDatas[0].name = '';
            memberLineDatas[0].to = true;
            memberLineDatas[0].cc = false;
            memberLineDatas[0].bcc = false;
            return;
        }
        memberLineDatas.remove(lineNum);
        //删除一行人员信息,重新给行标赋值
        for(Integer i = 0 ; i<memberLineDatas.size() ; i++){
            memberLineDatas[i].lineNum = i;
        }
    }
    
    public void kong(){
        System.debug('空提交');
    }
 
    public PageReference uploadFile(){
        handleType = 'uploadFile';
        SendEmail();
        PageReference ref = new Pagereference('/p/attach/NoteAttach?pid=' + id + '&retURL=%2Fapex/SendEmail?id=' + id + '&type=' + type + '&typeid='+typeid);
        ref.setRedirect(true);
        return ref;
    }
 
    public void uploadFileS(){
        handleType = 'uploadFile';
        save();
        
    }
 
    public PageReference RefreshPage(){
        PageReference ref = new Pagereference('/apex/SendEmail?id=' + id + '&type=' + type + '&typeid='+typeid);
        ref.setRedirect(true);
        return ref;
    }
 
    public PageReference seeFile(){
        if(String.isNotBlank(fileId)){
            for(Integer i = 0; i< attachmentList.size();i++){
                if(fileId.equals(attachmentList[i].Id)){
                    PageReference acctPage = new ApexPages.StandardController(attachmentList[i]).view();
                    acctPage.setRedirect(true);
                    return acctPage;
                }
            }
        }
        return null;
    }
 
    public void deleteFile(){
        System.debug('fileId'+fileId);
        if(String.isNotBlank(fileId)){
            for(Integer i = 0; i< attachmentList.size();i++){
                if(fileId.equals(attachmentList[i].Id)){
                    System.debug('id'+attachmentList[i].Id);
                    System.debug('fileId'+fileId);
                    delete attachmentList[i];
                    attachmentList.remove(i);
                    break;
                }
            }
        }
    }
 
    public void addPDF(){
        handleType = 'uploadFile';
        SendEmail();
        PageReference pdfPage ;
        pdfPage = new PageReference('/apex/QuotesPDF?id='+typeid);
        // pdfPage.getParameters().put('id',laId);
        pdfPage.setRedirect(false);
        Blob b = pdfPage.getContentAsPDF();
        // attach the pdf to the Opportunity
        Attachment attach = new Attachment();
        attach.Body = b;
        attach.Name = '报价单.pdf';
        System.debug('id--'+ id );
        attach.ParentId = id;
        insert attach;
        attachmentList = [select Id,Name,CreatedDate,BodyLength,Body from Attachment where ParentId=:id];
 
    }
 
    public Messaging.EmailFileAttachment SendEmailaddPDF(){
        handleType = 'uploadFile';
        
        if (String.isBlank(id)) {
            SendEmail();   
        }
        
        PageReference pdfPage ;
        pdfPage = new PageReference('/apex/QuotesPDF?id='+typeid);
        // pdfPage.getParameters().put('id',laId);
        pdfPage.setRedirect(false);
        Blob b = pdfPage.getContentAsPDF();
        // attach the pdf to the Opportunity
        Attachment attach = new Attachment();
        attach.Body = b;
        attach.Name = '报价单.pdf';
        System.debug('id--'+ id );
        attach.ParentId = id;
        insert attach;
        Messaging.EmailFileAttachment sendMailFile = new Messaging.EmailFileAttachment();
        sendMailFile.setBody(attach.Body);
        sendMailFile.setFileName(attach.Name);
        return sendMailFile;
        // attachmentList = [select Id,Name,CreatedDate,BodyLength,Body from Attachment where ParentId=:id];
 
    }
 
    //上传附件
    @RemoteAction
    public static String AddAttachment(List<String> nameList, List<String> typeList, List<String> bodyList, String parentId) {
        String operateResult;
        if (nameList.size() > 0) {
            List<Attachment> insertAttachmentList = new List<Attachment>();
            for (Integer num = 0; num < nameList.size(); num ++ ) {
                Attachment tmpAttachment = new Attachment();
                tmpAttachment.Name = nameList[num];
                tmpAttachment.Body = EncodingUtil.base64Decode(bodyList[num]);
                tmpAttachment.ParentId = parentId;
                tmpAttachment.ContentType = typeList[num];
                insertAttachmentList.add(tmpAttachment);
            }
 
            try {
                insert insertAttachmentList;
                operateResult = '文件上传成功';
            } catch (Exception e) {
                operateResult = '文件上传失败';
            }
        }
 
 
        return operateResult;
    }
    public void addMemberData(){
        System.debug(memberName);
        System.debug('memberEmail:'+memberEmail);
        System.debug(memberId);
        if(lineNum!=null){
            if(String.isNotBlank(memberName)){
                memberLineDatas[lineNum].name = memberName;
            }
            if(String.isNotBlank(memberEmail)){
                memberLineDatas[lineNum].emailAddress = memberEmail;
            }
            if(String.isNotBlank(memberId)){
                memberLineDatas[lineNum].memberId = memberId;
            }
        }
    }
 
    public class MemberLine{
        public String memberId{get;set;}
        public String emailAddress{get;set;}
        public String name{get;set;}
        public Boolean to{get;set;}
        public Boolean cc{get;set;}
        public Boolean bcc{get;set;}
        public Integer lineNum{get;set;}
    }
}