| | |
| | | */ |
| | | public without sharing class AttachmentReQisHandler extends Oly_TriggerHandler{ |
| | | @TestVisible |
| | | private Map<Id, Attachment> newMap; |
| | | private Map<Id, ContentDocumentLink> newMap; |
| | | @TestVisible |
| | | private Map<Id, Attachment> oldMap; |
| | | private Map<Id, ContentDocumentLink> oldMap; |
| | | @TestVisible |
| | | private List<Attachment> newList; |
| | | private List<ContentDocumentLink> newList; |
| | | @TestVisible |
| | | private List<Attachment> oldList; |
| | | private List<ContentDocumentLink> oldList; |
| | | public AttachmentReQisHandler() { |
| | | this.newMap = (Map<Id, Attachment>) Trigger.newMap; |
| | | this.oldMap = (Map<Id, Attachment>) Trigger.oldMap; |
| | | this.newList = (List<Attachment>) Trigger.new; |
| | | this.oldList = (List<Attachment>) Trigger.old; |
| | | this.newMap = (Map<Id, ContentDocumentLink>) Trigger.newMap; |
| | | this.oldMap = (Map<Id, ContentDocumentLink>) Trigger.oldMap; |
| | | this.newList = (List<ContentDocumentLink>) Trigger.new; |
| | | this.oldList = (List<ContentDocumentLink>) Trigger.old; |
| | | } |
| | | @TestVisible |
| | | protected override void afterInsert() { |
| | |
| | | NoteMail(); |
| | | } |
| | | private void NoteMail() { |
| | | List<Id> linkIdList = new List<Id>(); |
| | | for (ContentDocumentLink link : newList) { |
| | | linkIdList.add(link.Id); |
| | | } |
| | | newList = [select Id,LinkedEntityId,ContentDocumentId from ContentDocumentLink where Id in: linkIdList]; |
| | | String baseUrl = URL.getSalesforceBaseUrl().toExternalForm(); |
| | | List<Messaging.SingleEmailMessage> sendMails = new List<Messaging.SingleEmailMessage>(); |
| | | List<String> Rlist = new List<String>(); |
| | | List<String> ParentIdList = new List<String>(); |
| | | // QisID |
| | | for (Attachment att : newList) { |
| | | if(String.valueOf(att.ParentId).startsWith('a0J') |
| | | || String.valueOf(att.ParentId).startsWith('a0f')){ |
| | | Rlist.add(att.Id); |
| | | ParentIdList.add(att.ParentId); |
| | | for (ContentDocumentLink link : newList) { |
| | | if(String.valueOf(link.LinkedEntityId).startsWith('a0J') |
| | | || String.valueOf(link.LinkedEntityId).startsWith('a0f')){ |
| | | Rlist.add(link.ContentDocumentId); |
| | | ParentIdList.add(link.LinkedEntityId); |
| | | } |
| | | } |
| | | List<Attachment> NtList = [Select id,ParentId,Name,Body FROM Attachment where Id in : Rlist]; |
| | | // for (Attachment att : newList) { |
| | | // if(String.valueOf(att.ParentId).startsWith('a0J') |
| | | // || String.valueOf(att.ParentId).startsWith('a0f')){ |
| | | // Rlist.add(att.Id); |
| | | // ParentIdList.add(att.ParentId); |
| | | // } |
| | | // } |
| | | // List<Attachment> NtList = [Select id,ParentId,Name,Body FROM Attachment where Id in : Rlist]; |
| | | List<ContentVersion> verList = [select Id,Title,VersionData,ContentDocumentId from ContentVersion where ContentDocumentId in: Rlist]; |
| | | Map<Id,Repair__c> updateRprMap = new Map<Id,Repair__c>(); |
| | | Map<Id,QIS_Report__c> updateQisMap = new Map<Id,QIS_Report__c>(); |
| | | for (Repair__c re :[select id,Name,SerialNumber__c,Delivered_Product__r.Name,HP_Name__c |
| | |
| | | } |
| | | } |
| | | List<User> userList = [select Id, Name, Email, Manager.Email from User where id IN :IdList]; |
| | | for (Attachment nt : NtList) { |
| | | String titName = updateRprMap.containsKey(nt.ParentId)? updateRprMap.get(nt.ParentId).Name : updateQisMap.get(nt.ParentId).Name; |
| | | String prname = updateRprMap.containsKey(nt.ParentId)? updateRprMap.get(nt.ParentId).Delivered_Product__r.Name : updateQisMap.get(nt.ParentId).nonyushohin__r.Name; |
| | | String Serial = updateRprMap.containsKey(nt.ParentId)? updateRprMap.get(nt.ParentId).SerialNumber__c : updateQisMap.get(nt.ParentId).lot_or_serial__c; |
| | | String accountname = updateRprMap.containsKey(nt.ParentId)? updateRprMap.get(nt.ParentId).HP_Name__c : updateQisMap.get(nt.ParentId).Hospital__r.Name; |
| | | for (ContentVersion version : verList) { |
| | | ContentDocumentLink link = [select LinkedEntityId from ContentDocumentLink where ContentDocumentId =: version.ContentDocumentId limit 1]; |
| | | String titName = updateRprMap.containsKey(link.LinkedEntityId)? updateRprMap.get(link.LinkedEntityId).Name : updateQisMap.get(link.LinkedEntityId).Name; |
| | | String prname = updateRprMap.containsKey(link.LinkedEntityId)? updateRprMap.get(link.LinkedEntityId).Delivered_Product__r.Name : updateQisMap.get(link.LinkedEntityId).nonyushohin__r.Name; |
| | | String Serial = updateRprMap.containsKey(link.LinkedEntityId)? updateRprMap.get(link.LinkedEntityId).SerialNumber__c : updateQisMap.get(link.LinkedEntityId).lot_or_serial__c; |
| | | String accountname = updateRprMap.containsKey(link.LinkedEntityId)? updateRprMap.get(link.LinkedEntityId).HP_Name__c : updateQisMap.get(link.LinkedEntityId).Hospital__r.Name; |
| | | String title = ''; |
| | | String body = ''; |
| | | title = '【修理/QIS】:' + titName + '已新增附件,请查看'; |
| | |
| | | body += '<br/>'; |
| | | body += '机身号/批号 :' + Serial; |
| | | body += '<br/>'; |
| | | body += '附件名称/备注名称:' + nt.Name; |
| | | body += '附件名称/备注名称:' + version.Title; |
| | | body += '<br/>'; |
| | | body += '操作担当:' + UserInfo.getName(); |
| | | body += '<br/>'; |
| | | body += '<br/>'; |
| | | body += '链接:' + baseUrl + '/' + nt.ParentId +' '; |
| | | body += '链接:' + baseUrl + '/' + link.LinkedEntityId +' '; |
| | | //收件邮箱 |
| | | List<String> toMailList = new List<String>(); |
| | | String uId = UserInfo.getUserId(); |
| | |
| | | } |
| | | //抄送的邮箱 |
| | | List<String> ccMailList = new List<String>(); |
| | | ccMailList.add('gaozhangwei@prec-tech.com'); |
| | | ccMailList.add('wei_liang@olympus.com.cn'); |
| | | // ccMailList.add('gaozhangwei@prec-tech.com'); |
| | | // ccMailList.add('wei_liang@olympus.com.cn'); |
| | | ccMailList.add('chenjingwu@prec-tech.com'); |
| | | Messaging.SingleEmailMessage messageNEW = new Messaging.SingleEmailMessage(); |
| | | messageNEW.subject = title; |
| | | messageNEW.htmlBody = body; |
| | |
| | | } |
| | | sendMails.add(messageNEW); |
| | | } |
| | | // for (Attachment nt : NtList) { |
| | | // String titName = updateRprMap.containsKey(nt.ParentId)? updateRprMap.get(nt.ParentId).Name : updateQisMap.get(nt.ParentId).Name; |
| | | // String prname = updateRprMap.containsKey(nt.ParentId)? updateRprMap.get(nt.ParentId).Delivered_Product__r.Name : updateQisMap.get(nt.ParentId).nonyushohin__r.Name; |
| | | // String Serial = updateRprMap.containsKey(nt.ParentId)? updateRprMap.get(nt.ParentId).SerialNumber__c : updateQisMap.get(nt.ParentId).lot_or_serial__c; |
| | | // String accountname = updateRprMap.containsKey(nt.ParentId)? updateRprMap.get(nt.ParentId).HP_Name__c : updateQisMap.get(nt.ParentId).Hospital__r.Name; |
| | | // String title = ''; |
| | | // String body = ''; |
| | | // title = '【修理/QIS】:' + titName + '已新增附件,请查看'; |
| | | // body += '用户名:' + accountname; |
| | | // body += '<br/>'; |
| | | // body += '产品名称/型号 :' + prname; |
| | | // body += '<br/>'; |
| | | // body += '机身号/批号 :' + Serial; |
| | | // body += '<br/>'; |
| | | // body += '附件名称/备注名称:' + nt.Name; |
| | | // body += '<br/>'; |
| | | // body += '操作担当:' + UserInfo.getName(); |
| | | // body += '<br/>'; |
| | | // body += '<br/>'; |
| | | // body += '链接:' + baseUrl + '/' + nt.ParentId +' '; |
| | | // //收件邮箱 |
| | | // List<String> toMailList = new List<String>(); |
| | | // String uId = UserInfo.getUserId(); |
| | | // for (User u : userList) { |
| | | // if (u.Id != uId) { |
| | | // toMailList.add(u.Email); |
| | | // } |
| | | // } |
| | | // //抄送的邮箱 |
| | | // List<String> ccMailList = new List<String>(); |
| | | // ccMailList.add('gaozhangwei@prec-tech.com'); |
| | | // ccMailList.add('wei_liang@olympus.com.cn'); |
| | | // Messaging.SingleEmailMessage messageNEW = new Messaging.SingleEmailMessage(); |
| | | // messageNEW.subject = title; |
| | | // messageNEW.htmlBody = body; |
| | | // messageNEW.setCharset('UTF-8'); |
| | | // messageNEW.toAddresses = toMailList; |
| | | // if(ccMailList.size() > 0){ |
| | | // messageNEW.ccAddresses = ccMailList; |
| | | // } |
| | | // sendMails.add(messageNEW); |
| | | // } |
| | | //在单个事务中,只能调用send方法 10 次。 |
| | | Messaging.SendEmailResult[] results = messaging.sendEmail(sendMails); |
| | | } |