From 2d4a8d2dcad5a17127d2c73c48ddc4b67ec79448 Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期三, 06 四月 2022 11:51:58 +0800
Subject: [PATCH] PIPLDeploy0405

---
 force-app/main/default/classes/NFM503InfoFileBatch.cls |  210 ++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 160 insertions(+), 50 deletions(-)

diff --git a/force-app/main/default/classes/NFM503InfoFileBatch.cls b/force-app/main/default/classes/NFM503InfoFileBatch.cls
index 4ffb76d..25c2b6b 100644
--- a/force-app/main/default/classes/NFM503InfoFileBatch.cls
+++ b/force-app/main/default/classes/NFM503InfoFileBatch.cls
@@ -1,8 +1,20 @@
 global class NFM503InfoFileBatch implements Database.Batchable<sObject>, Database.AllowsCallouts, Database.Stateful {
     public String TenId;
     public String bidInfoFileID;
+    //add staic sushanhu 20220302 start
+	public static String transUrl;
+	public static String transId;
+	public static String token;
+    public static  integer isSuccess=0; 
+    public static List<String> sfRecordIds =new List<String>();
+	//add staic sushanhu 20220302 end
     Boolean IsNeedExecute = false;  //2021-06-28 mzy  WLIG-BYHD79  SFDC鐜batch鍚堝苟璋冩煡  鏄惁绗﹀悎鎵ц鏉′欢
-
+    //add nfm 503 aws response start sushanhu 20220301
+    global class File{
+        public String key;
+        public String name;
+    }
+    //add nfm 503 aws response sushanhu 20220301 end
     //2021-06-28  mzy update  鍗冮噷椹�-Batch start
     global NFM503InfoFileBatch() {
         this.IsNeedExecute = true;
@@ -18,8 +30,8 @@
 
     global Database.QueryLocator start(Database.BatchableContext bc) {
         String query = 'select Id, Tender_information__c, infoAddress__c, ' +
-                       'Tender_information__r.InfoType__c, isProcessed__c, ' +
-                       ' ErrorMessage__c from bidInfoFile__c where isProcessed__c = false ';
+                        'Tender_information__r.InfoType__c, isProcessed__c, ' +
+                        ' ErrorMessage__c from bidInfoFile__c where isProcessed__c = false ';
         if (String.isNotBlank(TenId)) {
             query += 'and Tender_information__r.Id =: TenId';
         }
@@ -33,9 +45,12 @@
     global void execute(Database.BatchableContext BC, list<bidInfoFile__c> bidInfoFileList) {
         Savepoint sp;
         bidInfoFile__c bidInfoFile = bidInfoFileList[0];
-
+        List<String> queryfileList = new List<String>();
+        queryfileList.add(bidInfoFile.infoAddress__c);
         try {
-            String token;
+           //update 鍚宻taic 20220302 satrt
+			// String token;
+			//update 鍚宻taic 20220302 end
             Datetime oldTime;
             // 浠庤浆鎹㈣〃涓幏鍙杢oken
             BatchIF_Transfer__c token503 = [Select ID, NFM501_Token__c
@@ -55,77 +70,172 @@
                 timeslot = newTime.getTime() - oldTime.getTime();
             }
             // System.debug('++++1++++' + token + '  : ' + timeslot);
+            PIHelper.piIntegration pi =PIHelper.getPIIntegrationInfo('NFM503');
             if (string.isblank(token) || timeslot > 1800000) {
-                NFMUtil.response response = NFMUtil.receiveToken();
-                if (String.isBlank(response.responseBody)) {
-                    bidInfoFile.ErrorMessage__c = '503token:' + response.status;
-                }
-                token = response.responseBody;
+                //UP TO AWAS TOKEN 20220225 SUSHANHU START
+                // NFMUtil.response response = NFMUtil.getAWSToken();
+                // //UP TO AWAS TOKEN 20220225 SUSHANHU END
+                // if (String.isBlank(response.responseBody)) {
+                //     bidInfoFile.ErrorMessage__c = '503token:' + response.status;
+                // }
+                token = pi.token;
                 oldTime = Datetime.now();
                 token503.NFM501_Token__c = token;
                 oldTime503.NFM501_Gain_End_Time__c = oldTime;
             }
-            // 瀛樻斁瓒呰繃12M鐨勯檮浠�
-            List<Attachment> TenOtherAttList = new List<Attachment>();
-            // 瀛樻斁鎵�鏈夐檮浠�
-            List<String> FileList = new List<String>();
-            // 濡傛灉鏂囦欢澶у皬瓒呰繃12M鏇存柊
-            List< Tender_information__c> updateTenderList = new  List< Tender_information__c>();
-            // 鑾峰彇鎺ュ彛3涓暟鎹�
-            NFMUtil.response503 response = NFMUtil.getFileData(token, bidInfoFile.infoAddress__c);
-            // 鏂囦欢澶у皬瓒呰繃12M
-            if (response.Name.equals('鏂囦欢澶у皬瓒呰繃12M')) {
-                id tendID = bidInfoFile.Tender_information__c;
-                Tender_information__c tempTender = new Tender_information__c();
-                tempTender.id = tendID;
-                tempTender.File_Surpass_12M__c = true;
-                if (String.isBlank(tempTender.Overstep_12M_infofile__c)) {
-                    tempTender.Overstep_12M_infofile__c = bidInfoFile.infoAddress__c;
-                } else {
-                    if (!tempTender.Overstep_12M_infofile__c.contains(bidInfoFile.infoAddress__c)) {
-                        // List<String> urlList = singleFile.split(',');
-                        tempTender.Overstep_12M_infofile__c += bidInfoFile.infoAddress__c + ',';
-                    }
-                }
-                updateTenderList.add(tempTender);
+            // // 瀛樻斁瓒呰繃12M鐨勯檮浠�
+            // List<Attachment> TenOtherAttList = new List<Attachment>();
+            // // 瀛樻斁鎵�鏈夐檮浠�
+            // List<String> FileList = new List<String>();
+            // // 濡傛灉鏂囦欢澶у皬瓒呰繃12M鏇存柊
+            // List< Tender_information__c> updateTenderList = new  List< Tender_information__c>();
+            // // 鑾峰彇鎺ュ彛3涓暟鎹�
+            // NFMUtil.response503 response = NFMUtil.getFileData(token, bidInfoFile.infoAddress__c);
+            //UP TO NEW  AWS method sushanhu start 20220301
+            // List< Tender_information__c> updateTenderList = new  List< Tender_information__c>();
+            List<FileAddress__c> fileList = new List<FileAddress__c>();
+            transUrl =pi.searchUrl;
+            NFMUtil.response response = NFMUtil.getAWSQLMData(pi.newUrl ,JSON.serialize(queryfileList), token);
+            system.debug('aws result'+response.responseBody);
+            Map<String, Object> result = (Map<String, Object>)JSON.deserializeUntyped(response.responseBody);
+            system.debug('NFM503 aws result--'+response.responseBody+'status'+response.status);
+            transId =(String)result.get('txId');
+            //UP TO NEW  AWS method sushanhu start 20220301 
+            // 鏂板緱瀛樺偍 涓嶉渶瑕佸垽鏂枃浠惰秴杩�12m
+            // // 鏂囦欢澶у皬瓒呰繃12M
+            // if (response.Name.equals('鏂囦欢澶у皬瓒呰繃12M')) {
+            //     id tendID = bidInfoFile.Tender_information__c;
+            //     Tender_information__c tempTender = new Tender_information__c();
+            //     tempTender.id = tendID;
+            //     tempTender.File_Surpass_12M__c = true;
+            //     if (String.isBlank(tempTender.Overstep_12M_infofile__c)) {
+            //         tempTender.Overstep_12M_infofile__c = bidInfoFile.infoAddress__c;
+            //     } else {
+            //         if (!tempTender.Overstep_12M_infofile__c.contains(bidInfoFile.infoAddress__c)) {
+            //             // List<String> urlList = singleFile.split(',');
+            //             tempTender.Overstep_12M_infofile__c += bidInfoFile.infoAddress__c + ',';
+            //         }
+            //     }
+            //     updateTenderList.add(tempTender);
+            // }
+            // // 灏嗚幏鍙栧埌鐨勬暟鎹瓨鎴愰檮浠�
+            // Attachment WebAtt = new Attachment();
+            // WebAtt.ParentId = bidInfoFile.Tender_information__c;
+            // WebAtt.Body = response.responseBody;
+            // WebAtt.Name = bidInfoFile.Tender_information__r.InfoType__c + ':' + response.Name;
+            // if (!response.Name.equals('鏂囦欢澶у皬瓒呰繃12M')) {
+            //     TenOtherAttList.add(WebAtt);
+            // }
+            // sp = Database.setSavepoint();
+
+            // if (updateTenderList.size() > 0) {
+            //     update updateTenderList;
+            // }
+
+            // System.debug('----1----' + TenOtherAttList);
+            // if (TenOtherAttList.size() > 0 ) {
+            //     upsert TenOtherAttList;
+            // }
+
+            // bidInfoFileList[0].isProcessed__c = true;
+            // bidInfoFileList[0].ErrorMessage__c = '';
+
+            // update bidInfoFileList;
+            // if (System.Test.isRunningTest()) {
+            //     throw new ControllerUtil.myException('aaa');
+            // }
+            // return;
+            String statusCode =String.valueOf(result.get('status')) ;
+            system.debug('statuscode aws-- '+statusCode);
+            if (!'0'.equals(statusCode)) {
+                System.debug('response.responseBody:' + response.responseBody);
+                return;
             }
-            // 灏嗚幏鍙栧埌鐨勬暟鎹瓨鎴愰檮浠�
-            Attachment WebAtt = new Attachment();
-            WebAtt.ParentId = bidInfoFile.Tender_information__c;
-            WebAtt.Body = response.responseBody;
-            WebAtt.Name = bidInfoFile.Tender_information__r.InfoType__c + ':' + response.Name;
-            if (!response.Name.equals('鏂囦欢澶у皬瓒呰繃12M')) {
-                TenOtherAttList.add(WebAtt);
-            }
+            Map<String, Object> fileMap = (Map<String, Object >)result.get('object');
+            system.debug('fileMap'+fileMap.toString());
+            Map<String, Object> fileVO =(Map<String, Object>)fileMap.get(bidInfoFile.infoAddress__c);
+
+            String Name =(String)fileVO.get('name');
+            // if (Name.equals('鏂囦欢澶у皬瓒呰繃12M')) {
+            //     id tendID = bidInfoFile.Tender_information__c;
+            //     Tender_information__c tempTender = new Tender_information__c();
+            //     tempTender.id = tendID;
+            //     tempTender.File_Surpass_12M__c = true;
+            //     if (String.isBlank(tempTender.Overstep_12M_infofile__c)) {
+            //         tempTender.Overstep_12M_infofile__c = bidInfoFile.infoAddress__c;
+            //     } else {
+            //         if (!tempTender.Overstep_12M_infofile__c.contains(bidInfoFile.infoAddress__c)) {
+            //             // List<String> urlList = singleFile.split(',');
+            //             tempTender.Overstep_12M_infofile__c += bidInfoFile.infoAddress__c + ',';
+            //         }
+            //     }
+            //     updateTenderList.add(tempTender);
+            // }
+           
+            //灏嗚幏鍙栫殑AWS鏂囦欢鍦板潃瀛樺偍
+            FileAddress__c file = new FileAddress__c();
+            file.ParentRecordId__c = bidInfoFile.Tender_information__c;
+            file.FileName__c = bidInfoFile.Tender_information__r.InfoType__c + ':' + Name;
+            file.DownloadLink__c =pi.undeleteUrl+(String)fileVO.get('key')+'&fileName='+file.FileName__c;
+            file.ViewLink__c = pi.queryUrl+(String)fileVO.get('key');
+            file.AWS_File_Key__c =(String)fileVO.get('key');
+            fileList.add(file);
             sp = Database.setSavepoint();
 
-            if (updateTenderList.size() > 0) {
-                update updateTenderList;
-            }
-
-            System.debug('----1----' + TenOtherAttList);
-            if (TenOtherAttList.size() > 0 ) {
-                upsert TenOtherAttList;
+            System.debug('----1----' + fileList);
+            if (fileList.size() > 0 ) {
+                upsert fileList;
             }
 
             bidInfoFileList[0].isProcessed__c = true;
             bidInfoFileList[0].ErrorMessage__c = '';
 
             update bidInfoFileList;
+            // add 纭浜嬪姟 sushanhu 20220302 start
+            
+            if (fileList.size() > 0 ) {
+			for (FileAddress__c fileAddress : fileList) {
+                system.debug('fileAddress.Id---'+json.serialize(fileAddress));
+				sfRecordIds.add(fileAddress.Id);
+                system.debug('fileAddress.Id---'+fileAddress.Id);
+			}
+            }
+            system.debug('鎴愬姛鐨則oken'+token);
+            isSuccess =1;
+           
+            // if (!confirm) {
+			// 	//鍥炴粴
+            //     if (sp != null) {
+            //         Database.rollback(sp);
+            //     }
+			// }
+            // add 纭浜嬪姟 sushanhu 20220302 end
             if (System.Test.isRunningTest()) {
                 throw new ControllerUtil.myException('aaa');
             }
-            return;
+            // return;
         } catch (Exception ex) {
             if (sp != null) {
                 Database.rollback(sp);
             }
+            // //add 纭浜嬪姟 20220302 sushanhu start
+            // system.debug('澶辫触鐨則oken'+token);
+            //  PIHelper.confirmFileTrans('NFM503',0,'',transId,token,transUrl);
+            //add 纭浜嬪姟 20220302 sushanhu end
             bidInfoFile.ErrorMessage__c = '503鎶涘嚭寮傚父锛�' + ex.getMessage() + '\n' + ex.getStackTraceString();
+            system.debug('ErrorMessage'+bidInfoFile.ErrorMessage__c);
         }
         update bidInfoFile;
     }
 
     global void finish(Database.BatchableContext BC) {
-
+        // add confirm transaction for pipl  sushanhu 20220314 start
+        if (isSuccess==0) {
+            PIHelper.confirmFileTrans('NFM503',isSuccess,'',transId,token,transUrl);
+        }else {
+            PIHelper.confirmFileTrans('NFM503',isSuccess,JSON.serialize(sfRecordIds),transId,token,transUrl);
+        }
+         
+         // add confirm transaction for pipl  sushanhu 20220314 end
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1