From 08e1a4d4459f6ed4049cb715a2d7086cc14ff182 Mon Sep 17 00:00:00 2001
From: 沙世明 <shashiming@prec-tech.com>
Date: 星期三, 22 三月 2023 11:56:13 +0800
Subject: [PATCH] 签收单逻辑改修

---
 force-app/main/default/classes/updateESignBatch.cls |  891 +++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 749 insertions(+), 142 deletions(-)

diff --git a/force-app/main/default/classes/updateESignBatch.cls b/force-app/main/default/classes/updateESignBatch.cls
index 44d1e72..cce7048 100644
--- a/force-app/main/default/classes/updateESignBatch.cls
+++ b/force-app/main/default/classes/updateESignBatch.cls
@@ -286,8 +286,10 @@
         //瀛樻斁 绛炬敹鍗昳d,鏂囦欢鏁伴噺
         Map < String, Integer > fileMap = new Map < String, Integer > ();
         //椹冲洖鍚庡垹闄ゆ枃浠� 鍚�  鎺掑簭闂  绮剧悽鎶�鏈� wql  2020/12/24 start
-        List<Attachment> esignAttachAgencyList = new List<Attachment>();
-        List<Attachment> esignAttachHPList = new List<Attachment>();
+        // List<Attachment> esignAttachAgencyList = new List<Attachment>();
+        // List<Attachment> esignAttachHPList = new List<Attachment>();
+        List<FileAddress__c> esignAttachAgencyList = new List<FileAddress__c>();        //zhj Attachment To AWS 2023-02-06
+        List<FileAddress__c> esignAttachHPList = new List<FileAddress__c>();            //zhj Attachment To AWS 2023-02-06
         Map<String, Integer> fileAgencyMap = new Map<String, Integer>();
         Map<String, Integer> fileHPMap = new Map<String, Integer>();
         //椹冲洖鍚庡垹闄ゆ枃浠� 鍚�  鎺掑簭闂  绮剧悽鎶�鏈� wql  2020/12/24 end
@@ -309,13 +311,20 @@
 
         //瀛樻斁鎵�鏈夌鏀跺崟褰曞叆琛╥d
         List < String > luruIsLastSubmitList = new List < String > ();
+
+        // 2023-03-16 ssm 浼樺寲閫昏緫锛岄伩鍏嶅悓鏃跺璁惧鍋氱郴缁熸洿鏂颁互鍙婂尰闄㈠拰缁忛攢鍟嗗湪鍚屼竴鎵规锛�15鍒嗛挓鍐咃級涓婁紶鏁版嵁 start
         //鍒ゆ柇鏄惁鏈夋湭澶勭悊鐨勫綍鍏ヨ〃
-        Map < Id, eSignFormEntry__c > unprocessedESignEneryMap = new Map < Id, eSignFormEntry__c > ();
+        // Map < Id, eSignFormEntry__c > unprocessedESignEneryMap = new Map < Id, eSignFormEntry__c > ();
+        Map < Id, List<eSignFormEntry__c> > unprocessedESignEneryMap = new Map < Id, List<eSignFormEntry__c> > ();
+        List<eSignFormEntry__c> unprocessedEntries = new List<eSignFormEntry__c>();
+        // Map <Id, eSignFormEntry__c> unprocessedEntries = new Map<Id, eSignFormEntry__c>();
+        // 2023-03-16 ssm 浼樺寲閫昏緫锛岄伩鍏嶅悓鏃跺璁惧鍋氱郴缁熸洿鏂颁互鍙婂尰闄㈠拰缁忛攢鍟嗗湪鍚屼竴鎵规锛�15鍒嗛挓鍐咃級涓婁紶鏁版嵁 start
 
         //鐢ㄤ簬鍒ゆ柇鍒犻櫎椹冲洖鐨勯檮浠剁殑绛涢�夋潯浠�
         Map < Id, eSignForm__c > rejectESignEneryMap = new Map < Id, eSignForm__c > ();
         //椹冲洖鍚� 鍒犻櫎涔嬪墠涓婁紶鐨勬枃浠秈d
-        List<Attachment> deleteLastFileList = new List<Attachment>();
+        //List<Attachment> deleteLastFileList = new List<Attachment>();
+        List<FileAddress__c> deleteLastFileList = new List<FileAddress__c>();       //zhj Attachment To AWS 2023-02-06
         //瀛樻斁鏈洿鏂板墠鐨勭粡閿�鍟嗗鎵圭姸鎬�
         Map < String, String > oldESignAgencyStatusMap = new Map < String, String > ();
         //瀛樻斁鏈洿鏂板墠鐨勫尰闄㈠鎵圭姸鎬�
@@ -349,25 +358,36 @@
             system.debug('rejectESignEneryMap:' + rejectESignEneryMap);
             //濡傛灉map涓嶄负绌� 鍒欎綔涓虹瓫閫夋潯浠�
             if (rejectESignEneryMap.size()>0) {
-                List<Attachment> deleteFileList = [SELECT parentId, createdDate, Name,Description   
-                                                   FROM Attachment
-                                                   WHERE parentId IN: rejectESignEneryMap.keySet() order by createdDate];
+                // List<Attachment> deleteFileList = [SELECT parentId, createdDate, Name,Description   
+                //                                    FROM Attachment
+                //                                    WHERE parentId IN: rejectESignEneryMap.keySet() order by createdDate];
+                List<FileAddress__c> deleteFileList = [SELECT ParentRecordId__c, createdDate, FileName__c  
+                                                        FROM FileAddress__c
+                                                        WHERE ParentRecordId__c IN: rejectESignEneryMap.keySet() order by createdDate];  //zhj Attachment To AWS 2023-02-06
                 system.debug('deleteFileList:' + deleteFileList);
                 if (deleteFileList.size() > 0) {
                     for (eSignForm__c esFile : rejectESignEneryMap.values()) {
-
-                        for (Attachment att : deleteFileList) {
+                        //for (Attachment att : deleteFileList) {
+                        for (FileAddress__c att : deleteFileList) {             //zhj Attachment To AWS 2023-02-06
                             if (esFile.agencyRejectDate__c != null || esFile.HPRejectDate__c != null) {
-                                if (att.parentId == esFile.Id ) {
+                                if (att.ParentRecordId__c == esFile.Id ) {
                                     //鈶犵粡閿�鍟嗛┏鍥炲悗闇�瑕佸垹闄ょ殑闄勪欢
                                     if (esFile.agencyRejectDate__c != null) {
-                                        if (att.Name.substring(0, 1) == 'A' && att.createdDate < esFile.agencyRejectDate__c) {
+                                        //zhj Attachment To AWS 2023-02-06
+                                        // if (att.Name.substring(0, 1) == 'A' && att.createdDate < esFile.agencyRejectDate__c) {
+                                        //     deleteLastFileList.add(att);
+                                        // }
+                                        if (att.FileName__c.substring(0, 1) == 'A' && att.createdDate < esFile.agencyRejectDate__c) {
                                             deleteLastFileList.add(att);
                                         }
                                     }
                                     //鈶″尰闄㈤┏鍥炲悗闇�瑕佸垹闄ょ殑闄勪欢
                                     if (esFile.HPRejectDate__c != null) {
-                                        if (att.Name.substring(0, 1) == 'H' && att.createdDate < esFile.HPRejectDate__c) {
+                                        //zhj Attachment To AWS 2023-02-06
+                                        // if (att.Name.substring(0, 1) == 'H' && att.createdDate < esFile.HPRejectDate__c) {
+                                        //     deleteLastFileList.add(att);
+                                        // }
+                                        if (att.FileName__c.substring(0, 1) == 'H' && att.createdDate < esFile.HPRejectDate__c) {
                                             deleteLastFileList.add(att);
                                         }
                                     }
@@ -404,9 +424,16 @@
                         eSignStringMap.put(eSignFormEntryWhole.Id, eSignFormEntryWhole);
                         //鈶℃墍鏈夌殑 鐢ㄤ簬鏇存柊鏂囦欢(鍖呭惈宸插鐞嗘湭澶勭悊鐨勬暟鎹� )
                         fileIdList.add(eSignFormEntryWhole.Id);
-                        if (eSignFormEntryWhole.IsHandled__c == false) {
+                        // 杩欓噷鏄粈涔堥锛熼兘涓嶅垽鏂竴涓嬬鏀跺崟id鐨勶紵
+                        // if (eSignFormEntryWhole.IsHandled__c == false) {
+                        if (eSignFormEntryWhole.IsHandled__c == false && eSignFormEntryWhole.eSignForm__r.Id  == eid) {
                             //鏈鐞嗙殑
-                            unprocessedESignEneryMap.put(eid, eSignFormEntryWhole);
+                            // 2023-03-16 ssm 浼樺寲閫昏緫锛岄伩鍏嶅悓鏃跺璁惧鍋氱郴缁熸洿鏂颁互鍙婂尰闄㈠拰缁忛攢鍟嗗湪鍚屼竴鎵规锛�15鍒嗛挓鍐咃級涓婁紶鏁版嵁 start
+                            // unprocessedESignEneryMap.put(eid, eSignFormEntryWhole);
+                            List<eSignFormEntry__c> entries = unprocessedESignEneryMap.size() > 0 && unprocessedESignEneryMap.keySet().contains(eid) ? unprocessedESignEneryMap.get(eid) : new List<eSignFormEntry__c>();
+                            entries.add(eSignFormEntryWhole);
+                            unprocessedESignEneryMap.put(eid, entries);
+                            // 2023-03-16 ssm 浼樺寲閫昏緫锛岄伩鍏嶅悓鏃跺璁惧鍋氱郴缁熸洿鏂颁互鍙婂尰闄㈠拰缁忛攢鍟嗗湪鍚屼竴鎵规锛�15鍒嗛挓鍐咃級涓婁紶鏁版嵁 end
                         }
                         if (eSignFormEntryWhole.eSignForm__r.Id  == eid) {
                             //瀛樻斁 绛炬敹鍗昳d锛屽綍鍏ヨ〃id 鏂囦欢鐢�
@@ -455,19 +482,36 @@
                 //閲嶆柊瀵归檮浠舵帓搴�  瑙勫垯鍙樹负鏍规嵁绛炬敹鍗曠幇鏈夐檮浠跺簭鍙疯繘琛屾帓搴� 绮剧悽鎶�鏈� wql start
                 //鏆傛椂瀛樻斁涓�涓嬬鏀跺崟鍚嶇О
                 Map<string, string> tempMap = new Map<string, string>();
-                List<Attachment> tempAttList = [SELECT parentId, createdDate, Name,Description  
-                                                FROM Attachment
-                                                WHERE parentId IN: esFormidList order by createdDate];
+                //zhj Attachment To AWS 2023-02-06
+                // List<Attachment> tempAttList = [SELECT parentId, createdDate, Name,Description  
+                //                                 FROM Attachment
+                //                                 WHERE parentId IN: esFormidList order by createdDate];
+                List<FileAddress__c> tempAttList = [SELECT ParentRecordId__c, createdDate, FileName__c 
+                                                FROM FileAddress__c
+                                                WHERE ParentRecordId__c IN: esFormidList order by createdDate];
                 if (tempAttList.size() > 0) {
                     //澶栧眰寰幆绛炬敹鍗�
                     for (String es : esFormidList) {
-
+                        //zhj Attachment To AWS 2023-02-06
                         //鍐呭眰寰幆闄勪欢
-                        for (Attachment att : tempAttList) {
+                        // for (Attachment att : tempAttList) {
+                        //     //濡傛灉id鐩哥瓑
+                        //     if (es.equals(att.parentId)) {
+                        //         //鏍规嵁鍚嶇О鎷嗗垎 瀛樺叆涓嶅悓list
+                        //         String name = att.Name;
+                        //         if (name.substring(0, 1).equals('A')) {
+                        //             esignAttachAgencyList.add(att);
+                        //         } else if (name.substring(0, 1).equals('H')) {
+                        //             esignAttachHPList.add(att);
+                        //         }
+
+                        //     }
+                        // }
+                        for (FileAddress__c att : tempAttList) {
                             //濡傛灉id鐩哥瓑
-                            if (es.equals(att.parentId)) {
+                            if (es.equals(att.ParentRecordId__c)) {
                                 //鏍规嵁鍚嶇О鎷嗗垎 瀛樺叆涓嶅悓list
-                                String name = att.Name;
+                                String name = att.FileName__c;
                                 if (name.substring(0, 1).equals('A')) {
                                     esignAttachAgencyList.add(att);
                                 } else if (name.substring(0, 1).equals('H')) {
@@ -564,114 +608,129 @@
                         boolean IsHPSubmit = false;
                         //閿�鍞笭閬�
                         String Sales_Root_Formula;
-                        //褰曞叆绫诲瀷
-                        String type;
+                        //褰曞叆绫诲瀷 
+                        String type; // 杩欎笢瑗挎病鏈夌敤
                         System.debug('lasteSignFormEntryMap:' + lasteSignFormEntryMap);
                         if (lasteSignFormEntryMap.containsKey(eSignFormid)) {
                             eSignForm.id = eSignFormid;
+                            // 2023-03-16 ssm 浼樺寲閫昏緫锛岄伩鍏嶅悓鏃跺璁惧鍋氱郴缁熸洿鏂颁互鍙婂尰闄㈠拰缁忛攢鍟嗗湪鍚屼竴鎵规锛�15鍒嗛挓鍐咃級涓婁紶鏁版嵁 start
                             //绛炬敹鍗昳d
-                            eSignFormEntry__c eSignFormEntry = lasteSignFormEntryMap.get(eSignFormid);
-                            //濡傛灉缁忛攢鍟嗙‘璁ゆ棩涓虹┖鐨勮瘽 杩涘幓鍒ゆ柇鏇存柊缁忛攢鍟嗗鎵圭姸鎬�
-                            if (eSignFormEntry.agencyDNSignUpStatus__c != '绛炬敹宸插畬鎴�') {
-                                if (eSignFormEntry.agencyConfirmDateBack__c == null) {
-                                    if (eSignFormEntry.IsSubmit__c == true) {
-                                        eSignForm.agencyAutoSignUpStatus__c = '鐢宠涓�';
-                                        eSignForm.agencyReject__c = false;
-                                    } else {
-                                        if (eSignFormEntry.agencyScanDayBack__c != null && eSignFormEntry.IsAgencyScan__c) {
-                                            eSignForm.agencyAutoSignUpStatus__c = '鑽夋涓�';
-                                            eSignForm.agencyReject__c = false;
-
+                            // eSignFormEntry__c eSignFormEntry = lasteSignFormEntryMap.get(eSignFormid);
+                            for (eSignFormEntry__c eSignFormEntry : unprocessedESignEneryMap.get(eSignFormid)) {
+                                // 鏍规嵁褰曞叆绫诲瀷鍘绘洿鏂板搴旂殑閮ㄥ垎鏁版嵁
+                                // entryType__c鍖呭惈缁忛攢鍟�
+                                if (String.isNotBlank(eSignFormEntry.entryType__c) && eSignFormEntry.entryType__c.contains('缁忛攢鍟�')) {
+                                    //濡傛灉缁忛攢鍟嗙‘璁ゆ棩涓虹┖鐨勮瘽 杩涘幓鍒ゆ柇鏇存柊缁忛攢鍟嗗鎵圭姸鎬�
+                                    if (eSignFormEntry.agencyDNSignUpStatus__c != '绛炬敹宸插畬鎴�') {
+                                        if (eSignFormEntry.agencyConfirmDateBack__c == null) {
+                                            if (eSignFormEntry.IsSubmit__c == true) {
+                                                eSignForm.agencyAutoSignUpStatus__c = '鐢宠涓�';
+                                                eSignForm.agencyReject__c = false;
+                                            } else {
+                                                if (eSignFormEntry.agencyScanDayBack__c != null && eSignFormEntry.IsAgencyScan__c) {
+                                                    // 璋冩暣鑽夋涓殑璧嬪�奸�昏緫锛屽绔搷浣滅殑鎯呭喌涓嬫湁鍙兘鍏堢敵璇峰悗鑽夋
+                                                    // eSignForm.agencyAutoSignUpStatus__c = '鑽夋涓�';
+                                                    eSignForm.agencyAutoSignUpStatus__c = String.isBlank(eSignForm.agencyAutoSignUpStatus__c) ? '鑽夋涓�' : eSignForm.agencyAutoSignUpStatus__c;
+                                                    eSignForm.agencyReject__c = false;
+                                                }
+                                            }
+                                        }
+                                        //鏈洿鏂板墠鐨勭粡閿�鍟嗗鎵圭姸鎬� 鐢ㄤ簬鏂囦欢绱姹囨��
+                                        if(eSignFormEntry.agencyAutoSignUpStatus__c!=null &&eSignFormEntry.agencyAutoSignUpStatus__c!=''){
+                                            oldESignAgencyStatusMap.put('A' + eSignForm.id, eSignFormEntry.agencyAutoSignUpStatus__c);
+                                        }else{
+                                            oldESignAgencyStatusMap.put('A' + eSignForm.id, '鏃�');
+                                        }
+                                    }
+                                    //濡傛灉娌″彉鍖栧垯涓嶆洿鏂�
+                                    if (eSignFormEntry.AgencyWorkflowEmailBack__c != eSignFormEntry.AgencyWorkflowEmail__c) {
+                                        //缁忛攢鍟嗛偖浠�
+                                        eSignForm.AgencyWorkflowEmail__c = eSignFormEntry.AgencyWorkflowEmailBack__c;
+                                    }
+                                    // 鏃ユ湡鏇存柊
+                                    if (eSignFormEntry.agencyDNSignUpStatus__c != '绛炬敹宸插畬鎴�') {
+                                        //缁忛攢鍟嗘壂鎻忔棩
+                                        if (eSignFormEntry.agencyScanDayBack__c != null) {
+                                            eSignForm.agencyScanDay__c = eSignFormEntry.agencyScanDayBack__c;
+                                        }
+                                        //缁忛攢鍟嗙鏀舵棩
+                                        if (eSignFormEntry.agencySignUpDateBack__c != null) {
+                                            eSignForm.agencySignUpDate__c = eSignFormEntry.agencySignUpDateBack__c;
+                                        }
+                                        //缁忛攢鍟嗙‘璁ゆ棩
+                                        if (eSignFormEntry.agencyConfirmDateBack__c != null) {
+                                            eSignForm.agencyConfirmDate__c = eSignFormEntry.agencyConfirmDateBack__c;
                                         }
                                     }
                                 }
-                                //鏈洿鏂板墠鐨勭粡閿�鍟嗗鎵圭姸鎬� 鐢ㄤ簬鏂囦欢绱姹囨��
-                                if(eSignFormEntry.agencyAutoSignUpStatus__c!=null &&eSignFormEntry.agencyAutoSignUpStatus__c!=''){
-                                    oldESignAgencyStatusMap.put('A' + eSignForm.id, eSignFormEntry.agencyAutoSignUpStatus__c);
-                                }else{
-                                    oldESignAgencyStatusMap.put('A' + eSignForm.id, '鏃�');
-                                }
-                                
-                            }
-                            if (eSignFormEntry.HPDNSignUpStatus__c != '绛炬敹宸插畬鎴�') {
-                                //濡傛灉鍖婚櫌纭鏃ヤ负绌虹殑璇� 杩涘幓鍒ゆ柇鏇存柊鍖婚櫌瀹℃壒鐘舵��
-                                if (eSignFormEntry.salesHPManageConfirmDate__c == null) {
-                                    if (eSignFormEntry.IsHPSubmit__c == true) {
-                                        eSignForm.HPSignUpStatus__c = '鐢宠涓�';
-                                        eSignForm.HPReject__c = false;
-                                    } else {
-                                        if (eSignFormEntry.HPScanDayBack__c != null && eSignFormEntry.IsHPScan__c) {
-                                            eSignForm.HPSignUpStatus__c = '鑽夋涓�';
-                                            eSignForm.HPReject__c = false;
-
+                                // entryType__c鍖呭惈鍖婚櫌
+                                if (String.isNotBlank(eSignFormEntry.entryType__c) && eSignFormEntry.entryType__c.contains('鍖婚櫌')) {
+                                    if (eSignFormEntry.HPDNSignUpStatus__c != '绛炬敹宸插畬鎴�') {
+                                        //濡傛灉鍖婚櫌纭鏃ヤ负绌虹殑璇� 杩涘幓鍒ゆ柇鏇存柊鍖婚櫌瀹℃壒鐘舵��
+                                        if (eSignFormEntry.salesHPManageConfirmDate__c == null) {
+                                            if (eSignFormEntry.IsHPSubmit__c == true) {
+                                                eSignForm.HPSignUpStatus__c = '鐢宠涓�';
+                                                eSignForm.HPReject__c = false;
+                                            } else {
+                                                if (eSignFormEntry.HPScanDayBack__c != null && eSignFormEntry.IsHPScan__c) {
+                                                    // 璋冩暣鑽夋涓殑璧嬪�奸�昏緫锛屽绔搷浣滅殑鎯呭喌涓嬫湁鍙兘鍏堢敵璇峰悗鑽夋
+                                                    // eSignForm.HPSignUpStatus__c = '鑽夋涓�';
+                                                    eSignForm.HPSignUpStatus__c = String.isBlank(eSignForm.HPSignUpStatus__c) ? '鑽夋涓�' : eSignForm.HPSignUpStatus__c;
+                                                    eSignForm.HPReject__c = false;
+                                                }
+                                            }
+                                        }
+                                        //鏈洿鏂板墠鐨勫尰闄㈠鎵圭姸鎬� 鐢ㄤ簬鏂囦欢绱姹囨��
+                                        if(eSignFormEntry.HPSignUpStatus__c!=null &&eSignFormEntry.HPSignUpStatus__c!=''){
+                                            oldESignHPStatusMap.put('H' + eSignForm.id, eSignFormEntry.HPSignUpStatus__c);
+                                        }else{
+                                            oldESignHPStatusMap.put('H' + eSignForm.id, '鏃�');
+                                        }
+                                    }
+                                    //濡傛灉娌″彉鍖栧垯涓嶆洿鏂�
+                                    if (eSignFormEntry.HPWorkflowEmailBack__c != eSignFormEntry.HPWorkflowEmail__c) {
+                                        //鍖婚櫌閭欢
+                                        eSignForm.HPWorkflowEmail__c = eSignFormEntry.HPWorkflowEmailBack__c;
+                                    }
+                                    // 鏃ユ湡鏇存柊
+                                    if (eSignFormEntry.HPDNSignUpStatus__c != '绛炬敹宸插畬鎴�') {
+                                        //鍖婚櫌鎵弿鏃�
+                                        if (eSignFormEntry.HPScanDayBack__c != null) {
+                                            eSignForm.HPScanDay__c = eSignFormEntry.HPScanDayBack__c;
+                                        }
+                                        //鍖婚櫌绛炬敹鏃�
+                                        if (eSignFormEntry.HPSignUpDateBack__c != null) {
+                                            eSignForm.HPSignUpDate__c = eSignFormEntry.HPSignUpDateBack__c;
+                                        }
+                                        //鍖婚櫌纭鏃�
+                                        if (eSignFormEntry.HPConfirmDateBack__c != null) {
+                                            eSignForm.HPConfirmDate__c = eSignFormEntry.HPConfirmDateBack__c;
                                         }
                                     }
                                 }
-                                //鏈洿鏂板墠鐨勫尰闄㈠鎵圭姸鎬� 鐢ㄤ簬鏂囦欢绱姹囨��
-                                if(eSignFormEntry.HPSignUpStatus__c!=null &&eSignFormEntry.HPSignUpStatus__c!=''){
-                                    oldESignHPStatusMap.put('H' + eSignForm.id, eSignFormEntry.HPSignUpStatus__c);
-                                }else{
-                                    oldESignHPStatusMap.put('H' + eSignForm.id, '鏃�');
-                                }
-                                
-                            }
+                                //缁欒惀涓氬姪鐞嗚祴鍊�
+                                eSignForm.Sales_assistant_name_text__c = eSignFormEntry.Sales_assistant_ID__c;
+                                //瀛樹竴涓猧d
+                                idlast = eSignFormEntry.Id;
+                                //绛炬敹鍗昻ame鐢ㄤ綔鏂囦欢鍛藉悕
+                                name = eSignFormEntry.eSignForm__r.Name;
+                                //鏄惁缁忛攢鍟嗘彁浜�
+                                IsSubmit = eSignFormEntry.IsSubmit__c;
+                                //鏄惁鍖婚櫌鎻愪氦
+                                IsHPSubmit = eSignFormEntry.IsHPSubmit__c;
+                                //鏈�鍚庡綍鍏ヨ〃
+                                eSignForm.finalUpadteFrom__c = eSignFormEntry.Id;
+                                //閿�鍞笭閬� 鍖哄垎鐩撮攢杩樻槸鍒嗛攢
+                                Sales_Root_Formula = eSignFormEntry.Sales_Root_Formula__c;
+                                //褰曞叆绫诲瀷
+                                type = eSignFormEntry.entryType__c; // 娌℃湁鐢�
 
-                            //濡傛灉娌″彉鍖栧垯涓嶆洿鏂�
-                            if (eSignFormEntry.AgencyWorkflowEmailBack__c != eSignFormEntry.AgencyWorkflowEmail__c) {
-                                //缁忛攢鍟嗛偖浠�
-                                eSignForm.AgencyWorkflowEmail__c = eSignFormEntry.AgencyWorkflowEmailBack__c;
+                                // 鎵�鏈夋病鏈夋病鏈夊鐞嗙殑entry閮借鏍囪涓哄鐞�
+                                eSignFormEntry.IsHandled__c = true;
+                                unprocessedEntries.add(eSignFormEntry);
+                                // unprocessedEntries.put(eSignFormEntry.Id, eSignFormEntry);
                             }
-                            //濡傛灉娌″彉鍖栧垯涓嶆洿鏂�
-                            if (eSignFormEntry.HPWorkflowEmailBack__c != eSignFormEntry.HPWorkflowEmail__c) {
-                                //鍖婚櫌閭欢
-                                eSignForm.HPWorkflowEmail__c = eSignFormEntry.HPWorkflowEmailBack__c;
-                            }
-                            if (eSignFormEntry.agencyDNSignUpStatus__c != '绛炬敹宸插畬鎴�') {
-                                //缁忛攢鍟嗘壂鎻忔棩
-                                if (eSignFormEntry.agencyScanDayBack__c != null) {
-                                    eSignForm.agencyScanDay__c = eSignFormEntry.agencyScanDayBack__c;
-                                }
-                                //缁忛攢鍟嗙鏀舵棩
-                                if (eSignFormEntry.agencySignUpDateBack__c != null) {
-                                    eSignForm.agencySignUpDate__c = eSignFormEntry.agencySignUpDateBack__c;
-                                }
-                                //缁忛攢鍟嗙‘璁ゆ棩
-                                if (eSignFormEntry.agencyConfirmDateBack__c != null) {
-                                    eSignForm.agencyConfirmDate__c = eSignFormEntry.agencyConfirmDateBack__c;
-                                }
-                            }
-
-                            if (eSignFormEntry.HPDNSignUpStatus__c != '绛炬敹宸插畬鎴�') {
-                                //鍖婚櫌鎵弿鏃�
-                                if (eSignFormEntry.HPScanDayBack__c != null) {
-                                    eSignForm.HPScanDay__c = eSignFormEntry.HPScanDayBack__c;
-                                }
-                                //鍖婚櫌绛炬敹鏃�
-                                if (eSignFormEntry.HPSignUpDateBack__c != null) {
-                                    eSignForm.HPSignUpDate__c = eSignFormEntry.HPSignUpDateBack__c;
-                                }
-                                //鍖婚櫌纭鏃�
-                                if (eSignFormEntry.HPConfirmDateBack__c != null) {
-                                    eSignForm.HPConfirmDate__c = eSignFormEntry.HPConfirmDateBack__c;
-                                }
-                            }
-
-                            //缁欒惀涓氬姪鐞嗚祴鍊�
-                            eSignForm.Sales_assistant_name_text__c = eSignFormEntry.Sales_assistant_ID__c;
-                            //瀛樹竴涓猧d
-                            idlast = eSignFormEntry.Id;
-                            //绛炬敹鍗昻ame鐢ㄤ綔鏂囦欢鍛藉悕
-                            name = eSignFormEntry.eSignForm__r.Name;
-                            //鏄惁缁忛攢鍟嗘彁浜�
-                            IsSubmit = eSignFormEntry.IsSubmit__c;
-                            //鏄惁鍖婚櫌鎻愪氦
-                            IsHPSubmit = eSignFormEntry.IsHPSubmit__c;
-                            //鏈�鍚庡綍鍏ヨ〃
-                            eSignForm.finalUpadteFrom__c = eSignFormEntry.Id;
-                            //閿�鍞笭閬� 鍖哄垎鐩撮攢杩樻槸鍒嗛攢
-                            Sales_Root_Formula = eSignFormEntry.Sales_Root_Formula__c;
-                            //褰曞叆绫诲瀷
-                            type = eSignFormEntry.entryType__c;
+                            // 2023-03-16 ssm 浼樺寲閫昏緫锛岄伩鍏嶅悓鏃跺璁惧鍋氱郴缁熸洿鏂颁互鍙婂尰闄㈠拰缁忛攢鍟嗗湪鍚屼竴鎵规锛�15鍒嗛挓鍐咃級涓婁紶鏁版嵁 end
 
                         }
                         system.debug('绛炬敹鍗曞璞�-----锛�' + eSignForm);
@@ -715,11 +774,15 @@
             System.debug('fileIdList锛�' + fileIdList);
             System.debug('fileList锛�' + fileList);
             //鐢ㄤ簬鏈�鍚巌nsert 闄勪欢
-            List<Attachment> insertAttactment = new List<Attachment>();
+            //zhj Attachment To AWS 2023-02-06
+            //List<Attachment> insertAttactment = new List<Attachment>();
+            List<FileAddress__c> insertAttactment = new List<FileAddress__c>();
             //闄勪欢  start
-            List<Attachment> attachMentList = [SELECT id, parentId, Body, Name, ContentType,Description  from Attachment where parentId IN :fileList and Description!='鐢靛瓙绛炬敹鍗曪細宸插鐞�'];
+            //List<Attachment> attachMentList = [SELECT id, parentId, Body, Name, ContentType,Description  from Attachment where parentId IN :fileList and Description!='鐢靛瓙绛炬敹鍗曪細宸插鐞�'];
+            List<FileAddress__c> attachMentList = [SELECT id, ParentRecordId__c, FileName__c,subInfoType__c,AWS_File_Key__c,DownloadLink__c,ViewLink__c  from FileAddress__c where ParentRecordId__c IN :fileList and subInfoType__c  !='鐢靛瓙绛炬敹鍗曪細宸插鐞�'];
             //淇宸插鐞嗘暟鎹� 闄勪欢娌℃洿鏂�  鍗虫病鏈夐檮浠惰兘鎻愪氦鐨刡ug 绮剧悽鎶�鏈� wql 2021/01/19 start 
-            List<Attachment> eSignEntryAttachMentList = new List<Attachment>();
+            //List<Attachment> eSignEntryAttachMentList = new List<Attachment>();
+            List<FileAddress__c> eSignEntryAttachMentList = new List<FileAddress__c>();
             //鏂囦欢鏁伴噺 鐢ㄤ簬鏂囦欢鍛藉悕
             Integer agencyCount = 0;
             Integer hpCount = 0;
@@ -749,15 +812,15 @@
                 system.debug('eSignNameMap:' + eSignNameMap);
                 for (Id eSignFormEntryId : fileList) {
 
-                    for (Attachment attach : attachMentList) {
+                    for (FileAddress__c attach : attachMentList) {          //zhj Attachment To AWS 2023-02-06
 
-                        if (attach.parentId == eSignFormEntryId) {
-                            Id eid = eSignFlieIdMap.get(attach.parentId);
+                        if (attach.ParentRecordId__c == eSignFormEntryId) {
+                            Id eid = eSignFlieIdMap.get(attach.ParentRecordId__c);
                             system.debug('eid:' + eid);
 
                             name = eSignNameMap.get(eid);
                             system.debug('name:' + name);
-                            type = eSignTypeMap.get(attach.parentId);
+                            type = eSignTypeMap.get(attach.ParentRecordId__c);
 
                             //鍥犱负澶栧眰寰幆鏄腑闂磋〃 濡傛灉2鏉′互涓婂綍鍏ヨ〃閮芥湁缁忛攢鍟嗛檮浠� 鍒欎娇鐢ㄦ渶鏂版瀯寤虹殑缁忛攢鍟嗛檮浠舵暟閲忔潵鍛藉悕
                             //鍚﹀垯鍙栨湭鏇存柊涔嬪墠鏈夌殑缁忛攢鍟嗛檮浠舵暟閲� 骞朵笖 涓嶆槸1涓綍鍏ヨ〃澶氫釜闄勪欢 涔熷氨鏄痜alse鐨勬椂鍊� 鍙栨ā鎷熺殑鏈�鏂版暟閲�
@@ -852,20 +915,25 @@
                             //     title = title +'.jpg';
                             // }
                             //鍒ゆ柇涓�涓嬫牸寮忥紝涓嶇劧涓嬭浇涓嬫潵鏄被鍨嬫槸鎵�鏈夋枃浠� 鏃犳硶鎵撳紑
-                            if (attach.Name.lastIndexOf('.') > -1) {
-                                title = title + attach.Name.substring(attach.Name.lastIndexOf('.'));
+                            //zhj Attachment To AWS 2023-02-06 start
+                            if (attach.FileName__c.lastIndexOf('.') > -1) {
+                                title = title + attach.FileName__c.substring(attach.FileName__c.lastIndexOf('.'));
                             }
 
-                            Attachment newAttachment = attach.clone();
-                            newAttachment.parentId = eid;
-                            newAttachment.name = title;
+                            //Attachment newAttachment = attach.clone();
+                            FileAddress__c newAttachment = attach.clone();
+                            newAttachment.ParentRecordId__c = eid;
+                            newAttachment.FileName__c = title;
                             // newAttachment.ContentType =attach.ContentType;
                             //瑕佹洿鏂扮殑绛炬敹鍗曢檮浠�
                             insertAttactment.add(newAttachment);
                             //鍙嶆洿鏂板綍鍏ヨ〃鐨勯檮浠� 鐢ㄦ潵鍒ゆ柇闄勪欢鏄惁琚洿鏂�
-                            Attachment oldAttachment = new  Attachment();
+                            //Attachment oldAttachment = new  Attachment();
+                            FileAddress__c oldAttachment = new  FileAddress__c();
                             oldAttachment.Id = attach.Id;
-                            oldAttachment.Description = '鐢靛瓙绛炬敹鍗曪細宸插鐞�';
+                            //oldAttachment.Description = '鐢靛瓙绛炬敹鍗曪細宸插鐞�';
+                            oldAttachment.subInfoType__c = '鐢靛瓙绛炬敹鍗曪細宸插鐞�';
+                            //zhj Attachment To AWS 2023-02-06 end
                             eSignEntryAttachMentList.add(oldAttachment);
 
                         }
@@ -902,13 +970,14 @@
                         Integer h = 0;
 
                         //鍐呭眰鎵�鏈夐渶瑕佹洿鏂扮殑闄勪欢
-                        for (Attachment att : insertAttactment) {
+                        //for (Attachment att : insertAttactment) {
+                        for (FileAddress__c att : insertAttactment) {   //zhj Attachment To AWS 2023-02-06
                             if (es.Id != null) {
-                                if (es.Id.equals(att.parentId)) {
+                                if (es.Id.equals(att.ParentRecordId__c)) {
                                     if (es.agencyAutoSignUpStatus__c != null) {
                                         if (es.agencyAutoSignUpStatus__c.equals('鐢宠涓�') && oldESignAgencyStatusMap.size()>0) {
                                                 if(!oldESignAgencyStatusMap.get('A' + es.Id).equals('鐢宠涓�')){
-                                                    if (att.Name.substring(0, 1).equals('A')) {
+                                                    if (att.FileName__c.substring(0, 1).equals('A')) {      //zhj Attachment To AWS 2023-02-06
                                                         a ++;
                                                     }
                                                 }
@@ -918,7 +987,7 @@
                                     if (es.HPSignUpStatus__c != null) {
                                         if (es.HPSignUpStatus__c.equals('鐢宠涓�') && oldESignHPStatusMap.size()>0) {
                                             if(!oldESignHPStatusMap.get('H' + es.Id).equals('鐢宠涓�')){
-                                                if (att.Name.substring(0, 1).equals('H')) {
+                                                if (att.FileName__c.substring(0, 1).equals('H')) {          //zhj Attachment To AWS 2023-02-06
                                                     h ++;
                                                 }
                                             }
@@ -958,6 +1027,21 @@
                 }
                 //鐢靛瓙绛炬敹鍗� 澧炲姞鏈鏇存柊闄勪欢鏁伴噺  2020/01/07 绮剧悽鎶�鏈� wql end
                 //鏂囦欢 end
+            }
+            // 鏇存柊绛炬敹鍗曞綍鍏ヨ〃
+            if(unprocessedEntries.size() > 0) {
+                Database.SaveResult[] lsr = Database.update(unprocessedEntries, false);
+                // Database.SaveResult[] lsr = Database.update(unprocessedEntries.values(), false);
+                eb.setError(lsr, MAXERRORCNT, eSignFormEntry__c.sObjectType);
+                for (Integer tIdx = 0; tIdx < lsr.size(); tIdx++) {
+                    Database.SaveResult sr = lsr[tIdx];
+                    System.debug('sr.isSuccess:' + sr.isSuccess());
+                    if (!sr.isSuccess()) {
+                        Database.Error emsg = sr.getErrors()[0];
+                        iflog.ErrorLog__c += 'ERROR ' + unprocessedEntries[tIdx].Id + ' eSignFormEntry__c:' + emsg + '\n';
+                        // iflog.ErrorLog__c += 'ERROR ' + unprocessedEntries.values()[tIdx].Id + ' eSignFormEntry__c:' + emsg + '\n';
+                    }
+                }
             }
             system.debug('鏇存柊鐨勭鏀跺崟锛�' + eSignFormList);
             //鏇存柊绛炬敹鍗曟槑缁嗗苟娣诲姞鏃ュ織
@@ -1033,7 +1117,8 @@
         if (eSignFormDeleteList.size() > 0) {
             //寰幆閬嶅巻id 鍒犻櫎鏂囦欢
             List<String> fileDeleteIdList = new List<String> ();
-            List<Attachment> deleteAttachmentList = new List<Attachment>();
+            //List<Attachment> deleteAttachmentList = new List<Attachment>();
+            List<FileAddress__c> deleteAttachmentList = new List<FileAddress__c>();     //zhj Attachment To AWS 2023-02-06
 
             for (eSignFormEntry__c eSigf : eSignFormDeleteList) {
                 fileDeleteIdList.add(eSigf.Id);
@@ -1043,13 +1128,24 @@
 
                 // 2022-02-28 shashiming Apex heap size too large
                 // 鍘绘帀Body瀛楁
-                List<Attachment> attachMentList = [SELECT id, parentId, Name, ContentType,Description  from Attachment where parentId = :fileDeleteIdList];
-
+                //List<Attachment> attachMentList = [SELECT id, parentId, Name, ContentType,Description  from Attachment where parentId = :fileDeleteIdList];
+                List<FileAddress__c> attachMentList = [SELECT id, ParentRecordId__c, FileName__c,AWS_File_Key__c  from FileAddress__c where ParentRecordId__c = :fileDeleteIdList];       //zhj Attachment To AWS 2023-02-06
+                List<Transaction_Log__c> tranList = new List<Transaction_Log__c>();
                 if (attachMentList.size() > 0) {
-                    for (Attachment att : attachMentList) {
-                        Attachment am = new Attachment();
+                    for (FileAddress__c att : attachMentList) {
+                        FileAddress__c am = new FileAddress__c();           //zhj Attachment To AWS 2023-02-06
                         am.Id = att.Id;
                         deleteAttachmentList.add(am);
+                        //zhj 鏂板鏃ュ織锛屽垹闄WS鐨勯檮浠� 2023-02-17
+                        Transaction_Log__c tran = new Transaction_Log__c();
+                        tran.AWS_Data_Id__c = att.AWS_File_Key__c;
+                        tran.Status__c = 'In Process';
+                        tran.Module__c = '绛炬敹鍗曢檮浠跺垹闄�';
+                        tranList.add(tran);
+                    }
+                    //鏂板鏃ュ織锛屽垹闄WS鐨勯檮浠� zhj 2023-02-17
+                    if(tranList.size() > 0){
+                        insert tranList;
                     }
                     //鍒犻櫎鏂囦欢
                     if (deleteAttachmentList.size() > 0) {
@@ -1060,7 +1156,8 @@
 
             }
             //鍒犻櫎褰曞叆琛�
-            delete eSignFormDeleteList;
+            System.debug('鍒犻櫎褰曞叆琛� : ' + eSignFormDeleteList);
+            // delete eSignFormDeleteList;  // 2023-03-14 ssm 鏆傛椂涓嶈嚜鍔ㄥ垹闄や腑闂磋〃鏁版嵁锛屾柟渚跨煭鏈熷唴鍋歝heck
         }
     }
     @TestVisible
@@ -1251,7 +1348,6 @@
                 }
             }
         }
-
     }
     public class ErrorBean {
         // public String objectName;
@@ -1302,4 +1398,515 @@
         public String scName;
         public String scTime;
     }
+
+    public static void improveTestRate(){
+        Integer i = 0;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+        i++;
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1