19626
2023-07-21 e53fdfdd78538a21cddd45b9d3faa1a7e9e37a0a
force-app/main/default/classes/NFM401Controller.cls
@@ -117,6 +117,13 @@
        public String GLOBAL_ATTRIBUTE1;
        public String RECORD_INSERTED_DATE;
    }
    public class ContentDocmentCtl{
        public String title;
        public Blob versionData;
        public Integer contentSize;
        public String parentId;
        public String Id;
    }
    webservice static void sendToETQ(String iflog_Id,BatchIF_Log__c rowDataSFDC, List<String> repairIds,String statu){
        if(statu == '' || statu == null){
@@ -244,21 +251,34 @@
            
            // 根据修理和QIS ID取得修理附件相关信息
            List<Attachment> attachmentList = [select Id,
                                                Name,
                                                Body,
                                                ParentId,
                                                BodyLength
                                            from Attachment
                                            where ParentId in : repairIds];
            Map<String,List<Attachment>> rAMap = new Map<String,List<Attachment>>();
            for (Attachment ra: attachmentList ) {
                if (!rAMap.containsKey(ra.ParentId)) {
                    rAMap.put(ra.ParentId, new List<Attachment>());
            // List<Attachment> attachmentList = [select Id,
            //                                     Name,
            //                                     Body,
            //                                     ParentId,
            //                                     BodyLength
            //                                 from Attachment
            //                                 where ParentId in : repairIds];
            // Map<String,List<Attachment>> rAMap = new Map<String,List<Attachment>>();
            // for (Attachment ra: attachmentList ) {
            //     if (!rAMap.containsKey(ra.ParentId)) {
            //         rAMap.put(ra.ParentId, new List<Attachment>());
            //     }
            //     rAMap.get(ra.ParentId).add(ra);
            // }
            // 根据修理和QIS ID取得修理文件相关信息
            List<ContentDocumentLink> links = [
                select
                ContentDocumentId,
                LinkedEntityId
                from ContentDocumentLink where LinkedEntityId in: repairIds
            ];
            Map<String,List<ContentDocumentLink>> rAMap = new Map<String,List<ContentDocumentLink>>();
            for (ContentDocumentLink ra: links ) {
                if (!rAMap.containsKey(ra.LinkedEntityId)) {
                    rAMap.put(ra.LinkedEntityId, new List<ContentDocumentLink>());
                }
                rAMap.get(ra.ParentId).add(ra);
                rAMap.get(ra.LinkedEntityId).add(ra);
            }
            // 根据修理ID取得QIS相关信息
            List<QIS_Report__c> qISList = [select id,Name,
@@ -544,19 +564,43 @@
                 //ATTACHMENT
                RepairRequest.ATTACHMENT = new List<Attachment_element>();
                List<Attachment> attList = rAMap.get(rr.id);
                if (attList != null && attList.size() > 0) {
                    for(Attachment rpd : attList){
                // List<Attachment> attList = rAMap.get(rr.id);
                // if (attList != null && attList.size() > 0) {
                //     for(Attachment rpd : attList){
                //         //2020-11-05  如果附件大小超过1.5mb 发送邮件提示
                //         if (rpd.BodyLength > 1048576) {
                //             sendemail(rpd,'修理'+rr.Name);
                //         }else{
                //             Attachment_element Attachmentdet = new Attachment_element();
                //             RepairRequest.ATTACHMENT.add(Attachmentdet);
                //             Attachmentdet.FILE_DATA = EncodingUtil.base64Encode(rpd.body);
                //             Attachmentdet.ATTACHMENT_FIELD_NAME = 'COMPLAINTS_DOCUMENT_ATTACHMENT';
                //             Attachmentdet.FILE_NAME = rpd.Name;
                //             Attachmentdet.GLOBAL_ATTRIBUTE1 = 'COMPLAINT';
                //             Attachmentdet.RECORD_INSERTED_DATE = NFMUtil.formatDate2Str(Date.today());
                //         }
                //     }
                // }
                List<ContentDocumentLink> attList = rAMap.get(rr.id);
                if (attList != null && attList.size() > 0) {
                    for(ContentDocumentLink rpd : attList){
                        ContentVersion version = [
                            select
                            Title,
                            VersionData,
                            ContentSize
                            from ContentVersion where ContentDocumentId =: rpd.ContentDocumentId
                        ];
                        //2020-11-05  如果附件大小超过1.5mb 发送邮件提示
                        if (rpd.BodyLength > 1048576) {
                            sendemail(rpd,'修理'+rr.Name);
                        if (version.ContentSize > 1048576) {
                            sendemail(version,'修理'+rr.Name);
                        }else{
                            Attachment_element Attachmentdet = new Attachment_element();
                            RepairRequest.ATTACHMENT.add(Attachmentdet);
                            Attachmentdet.FILE_DATA = EncodingUtil.base64Encode(rpd.body);
                            Attachmentdet.FILE_DATA = EncodingUtil.base64Encode(version.VersionData);
                            Attachmentdet.ATTACHMENT_FIELD_NAME = 'COMPLAINTS_DOCUMENT_ATTACHMENT';
                            Attachmentdet.FILE_NAME = rpd.Name;
                            Attachmentdet.FILE_NAME = version.Title;
                            Attachmentdet.GLOBAL_ATTRIBUTE1 = 'COMPLAINT';
                            Attachmentdet.RECORD_INSERTED_DATE = NFMUtil.formatDate2Str(Date.today());
                        }
@@ -702,24 +746,47 @@
                // ATTACHMENT
                RepairRequest.ATTACHMENT = new List<Attachment_element>();
                List<Attachment> attList = rAMap.get(qr.id);
                // List<Attachment> attList = rAMap.get(qr.id);
                // if (attList != null && attList.size() > 0) {
                //     for(Attachment rpd :attList){
                //          //2020-11-05  如果附件大小超过1.5mb 发送邮件提示
                //         if (rpd.BodyLength > 1048576) {
                //             sendemail(rpd,'QIS '+qr.Name);
                //         }else{
                //             Attachment_element Attachmentdet = new Attachment_element();
                //             RepairRequest.ATTACHMENT.add(Attachmentdet);
                //             Attachmentdet.FILE_DATA = EncodingUtil.base64Encode(rpd.body);
                //             Attachmentdet.ATTACHMENT_FIELD_NAME = 'COMPLAINTS_DOCUMENT_ATTACHMENT';
                //             Attachmentdet.FILE_NAME = rpd.Name;
                //             Attachmentdet.GLOBAL_ATTRIBUTE1 = 'COMPLAINT';
                //             Attachmentdet.RECORD_INSERTED_DATE = NFMUtil.formatDate2Str(Date.today());
                //         }
                //     }
                // }
                List<ContentDocumentLink> attList = rAMap.get(qr.id);
                if (attList != null && attList.size() > 0) {
                    for(Attachment rpd :attList){
                    for(ContentDocumentLink rpd :attList){
                         //2020-11-05  如果附件大小超过1.5mb 发送邮件提示
                        if (rpd.BodyLength > 1048576) {
                            sendemail(rpd,'QIS '+qr.Name);
                        ContentVersion version = [
                            select
                            VersionData,
                            Title,
                            ContentSize
                            from ContentVersion where ContentDocumentId =: rpd.ContentDocumentId
                        ];
                        if (version.ContentSize > 1048576) {
                            sendemail(version,'QIS '+qr.Name);
                        }else{
                            Attachment_element Attachmentdet = new Attachment_element();
                            RepairRequest.ATTACHMENT.add(Attachmentdet);
                            Attachmentdet.FILE_DATA = EncodingUtil.base64Encode(rpd.body);
                            Attachmentdet.FILE_DATA = EncodingUtil.base64Encode(version.VersionData);
                            Attachmentdet.ATTACHMENT_FIELD_NAME = 'COMPLAINTS_DOCUMENT_ATTACHMENT';
                            Attachmentdet.FILE_NAME = rpd.Name;
                            Attachmentdet.FILE_NAME = version.Title;
                            Attachmentdet.GLOBAL_ATTRIBUTE1 = 'COMPLAINT';
                            Attachmentdet.RECORD_INSERTED_DATE = NFMUtil.formatDate2Str(Date.today());
                        }
                    }
                }
                if (statu == 'Q1') {
                    RepairRequest.AWARE_DATE = NFMUtil.formatDate2Str(qr.Trable_occur_daY_collect__c);
@@ -816,16 +883,16 @@
    //add by rentx 2020-11-05 start
    //发送提示附件过大电子邮件
    public static void SendEmail(Attachment rpd,String str){
    public static void SendEmail(ContentVersion rpd,String str){
        
        // sendMails = new List<Messaging.SingleEmailMessage>();
        //发送邮件
        String title = '';
        String body = '';
        title = str+' 中的附件 '+rpd.Name+' 发送etq失败提醒';
        title = str+' 中的文件 '+rpd.Title+' 发送etq失败提醒';
        body =  '您好,';
        body += '<br/>';
        body += str+'中的附件'+rpd.Name+'过大,导致发送ETQ失败!';
        body += str+'中的文件'+rpd.Title+'过大,导致发送ETQ失败!';
        body += '<br/>';
        body += '请手动上传到ETQ';
        List<String> toMailList = new List<String>();